Everyone when they first start programming usually ask ambisous questions like this, I've been programming for 17 years and I vagually remember when I first started programming I posted on some board "I want to develop my own operating system how do i do it?" I personally actually like when people ask questions like this, it shows a great level of ambition in people, that I think is personally lacking in to many people.
I do love these threads where someone comes in, with little or no prior programming experience, and sets themselves ridiculously lofty goals such as "learning every aspect of C so I can work with the kernal from scratch", and expects a single book or a short timescale.
It kinda ****es on the 4 years at uni and over 15 years in industry that I (and others) have, and I still don't know "every aspect" of anything.
Why would you want to know every aspect of everything? Over 17 years I've specialized in a lot of different areas, and I can tell you over the years it all starts to blur together and as I'm sure your aware with every new thing you learn the more cynical you get
First of all to be a Kernel Developer learn how to spell Kernel.Lol seriously get over yourself : ).
You have no idea how difficult and time consuming this is going to be.
I'm aware of how hard it really is
Lets start off by saying, you want to do something that is really boring
and what you want to do has very little pay off at the end of the day
. A kernel is really the unspoken "hero" of any modern operating system, its basically a abstraction layer between the hardware, memory, and software. There are just too many concepts there that you need to know that you don't know, and you won't be able to learn all of the stuff before you get bored and give up.
On the off chance you actually coded a kernel that was a half assed best thing you could come up with, no one will use because of a few things.
I would steer clear of any type of kernel development.
- There is a good chance it will be a insecure nightmare. No beginner programmer can even fathom how to code something securely because you don't know how a computer really works.
- You won't have any drivers, so your kernel couldn't fully use key devices like the graphics card. Unless you force all of your programmers to code there stuff for every single device out there(anyone remember the DMX sound engine? ).
- IHV - Indepedent hardware vendors half ass their driver code to the point that all of their drivers(even if you code a 100% complient linux kernel) that won't work under your kernel besides you did something different than whats in the main stream linux kernels.
Let us assume that you are superman and can learn everything on the job. You can still do operating system level coding without having to touch the kernel stuff, you can basically grab a unix(not LINUX, but UNIX) kernel and try and build something off of that. But again this is all very dry and boring stuff.
Frankly if you have very little coding experience I would basically start else were(if your favorite game has public source code out there, I would do some basic mods for that first). You want a challenge that not to many people are doing that you can learn how to think while learning how to program, hell try some kinect stuff. Focus your ambition in a area that you can get a decent pay off at the end of day.
its just that some of us with more experience (and I'm not claiming to be one) see the warning signs and are trying to warn you
A lot of professional developers with years of experience always try and bite off more than they can chew(DNF anyone?), its a human trait to always to do something AWESOME and BAD ASS
. You will notice really quickly why programmers are hid away in isolated areas in a company that no body goes to; were arrogant, personality challenged individuals.
Don't stop programming because of some of stuff on here, and if you continue programming you will soon end up like us...its inevitable.