Learning to program at the operating system level

Mulyadi Santosa mulyadi.santosa at gmail.com
Sat Jan 22 00:21:02 EST 2011

Hi Vorad...

On Fri, Jan 21, 2011 at 17:15, vorad <vorad.1100 at gmail.com> wrote:
> What does programming at the operating system level mean and what does it
> involve ? How's that different than what's currently happening in software
> development, what are the constraints and what should an engineer expect
> when it enters the realm of OSs ?
> Thanks!
> [1] http://lwn.net/Articles/355416/

First of all, I appreciate you did initial research on the topic, that
helps us all to better answer it.

I'd just add few of my own answers:
in programming OS, you have to think "broad"...in the real sense. For
example, in "usual" programming, you probably don't really bother if
the "if" will hit the true most of the times, or false .... but in the
low level programming, it matters.... it could introduce hell lot of
latency. For better example on this like this, search for Ulrich
Drepper article in LWN describing about memory architecture.

Perhaps in user space, IMO the one that has near level of complexity
is game programming. You need to make it fast, make it "user
friendly", you need to think how each sprite interact (same like the
way you think how to make VFS and VM layer interact), how to exploit
the graphic card at its best etc.

And it comes to one thing: you need to know your hardware.... deeply.
Not just "OK I know RAM stores data....period" or "OK, I know my
ethernet card allow me to send or receive data".

Of course, you need to practice gradually...learn how to code in each
subsystem first, for example virtual memory management...then embarks
into another field.

Finally, you also have to remember that programming OS is quite
complex, such that we need teamwork...a real good one. Maybe you ask
"Linus can did it initially, alone"...yeah, but that only produce
quite "primitive" one.

So if you can learn how to do all such things, I think you gradually
ready to become OS developer. And, don't forget to share what you have
learned in forums, like this kernelnewbies mailing list :)


Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com

More information about the Kernelnewbies mailing list