This question already has an answer here:

I have done some hobby application development, but now I'm interested in checking out systems programming (mainly operating systems, Linux kernel etc.). I know low-level languages like C, and I know minimal amounts of x86 Assembly (should I improve on it?).

What resources/books/websites/projects etc. do you recommend for one to get started with systems programming and what topics are important?

Note that I know close to nothing about the subject, so whatever resources you suggest should be introductory resources. I still know what the subject is and what it includes etc., but I have not done systems programming before (but some application development, as previously noted, and I'm familiar with a bunch of programming languages as well as software engineering in general and algorithms, data structures etc.).

marked as duplicate by gnat, Kilian Foth, BЈовић, Martijn Pieters, Jalayn Jun 6 '13 at 12:08

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 1
    Only IBM mainframe people call it systems programming any more. You might want to look at "kernel development" or "device driver development" as Google search words. You're going to get more hits. After doing a search, please update your question showing what's wrong with the top Google hits. – S.Lott Mar 10 '11 at 18:28
  • 4
    @S.Lott Maybe he wants his question answered by some helpful folks on a site called Programmers, and not by random people found via Google. Kernel and driver development are also not the only areas of low-level/systems/OS programming. – Matthew Read Mar 10 '11 at 18:56
  • @Matthew Read: Maybe a little reading before asking a vague, broad question would get focused, useful answers. Some folks here can't read minds, don't know @Anto's background, and can't really guess. – S.Lott Mar 10 '11 at 20:11
  • 1
    This is awfully broad. What sort of "systems programming" did you have in mind? Please decide what you want, with whatever criteria you like, and edit the question to include that. – David Thornley Mar 10 '11 at 20:54
  • 1
    @Anto: "Note that I know close to nothing about the subject" goes without saying. What have you read so far? What web sites are you currently thinking about reading? Please do a little bit of reading so that you can focus your question. – S.Lott Mar 10 '11 at 21:20

Mmm OS stuff really doesn't use ALL that much assembly. But for starters take a look at Linux kernal programming, making device drivers/inserting your own modules.

It's a good start and it's where I started. It can be a bit confusing but once you get a hang of it it's actually pretty fun/cool.

I highly suggest "Linux Device Drivers" by oreily. and Linux kernel Development (third edition, Robert Love) is what im using now.

Not the answer you're looking for? Browse other questions tagged or ask your own question.