Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have only a very basic idea about linux system programming. I have not done any real projects using linux system programming. In my current company I do system admin type work, but I am more interested in Linux System Programming. I want to do some projects on my own, so that I could put those projects in my resume when I apply for jobs at another companies. Kindly tell me the whether there is any projects where I could learn more linux system programming by doing some real programming stuff.

Please note that I only have experience in C programming and not in Linux System Programming. But I know very basic things about linux system programming.


share|improve this question

closed as too broad by Braiam, slm Nov 7 '14 at 4:00

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

not a answer, but I recommend the APUE2e for starting to learn the Unix API – xenoterracide Jan 28 '11 at 10:30

C is fine for system programming. As a starting point you could take a look at the books from this questions. As system programming is a broad field, perhaps they give you a hint where you could start.

The ultimate project would definitely be the linux kernel, but it's hard as your first project.

A smoother entrance to the field would be, to rewrite some command line tools. Take ls or cat or some other command line tool, and try to rewrite it. Start with the most basic functionality of the command and then you can try to add more functionality over time. During this process you might get ideas to improve the existing tools or to do a complete new one on your own.

share|improve this answer
+1 for reimplementing existing tools. Writing a shell is excellent for learning - working with files, forking, etc. – André Paramés Jan 28 '11 at 16:19

In your system admin type work, does some task you do either puzzle you (How does that work?) or irritate you (Shouldn't that work better/faster?)?

Find several of those tasks, identify the very basic feature that you don't understand, or that irritates or puzzles you. Try to implement the puzzling, irritating or slow feature in C.

You will get a more thorough education if you have something practical motivating you, and you will have a stopping point. When you've implemented your very basic feature in C, you can stop, evaluate what you've done, then pick another task that still puzzles you, or irritates you. In light of what you've learned, several tasks will now seem different than they did.

share|improve this answer

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