what operating system concepts should every programmer be aware of?

Viewed 7979

I am compiling various lists of competencies that self taught programmers must have.

Among all subjects, Operating Systems is the trickiest one, because creating even a toy operating system is a rather non-trivial task. However, at the same time an application developer (who may not have formally learned CS) must at least be aware of and hopefully should have implemented some key concepts to appreciate how an OS works, and to be a better developer.

I have a few specific questions:

  • What key concepts of operating systems are important for a self taught programmer to understand so they can be better software developers (albeit working on regular application development)?
  • Is it even remotely possible to learn such a subject in byte sized practical pieces ? (Even a subject like compiler construction can be learned in a hands on way, at a rather low level of complexity)
8 Answers
Related