kernel

So, you want to do kernel programming. Great.

That means you have to first seriously learn C. Write at least 10,000 lines of functioning C code. Get it reviewed and critiqued by experts. Make sure it's production worthy. This will probably take you half a year, working 20% of your time. Sorry, but owning one book is just a tiny step into a very long voyage there.

Then learn about the kernel. Read the book SirDice recommended, and understand it. Ask someone to give you a little quiz, and make sure you can do the quizzes. Honestly, I would also read a good undergraduate operating systems textbook, like Tanenbaum, and do the homework problems. That's like taking a 1-semester undergraduate OS class; again 20% of your time for half a year.

You want to work on the network part? For that, you need to understand how networking works. The fact that you ask "the part that connects to the internet" shows that you have no clue about that. There are oodles of TCP/IP books. Get one, understand it.

Once you have done these things, the question of "where is the source code" will be irrelevant, and you will know the answer.

I don't think you even understand the complexity of the question you have asked.
 
XTime, we think it's cool you want to be a kernel developer. There is no doubt there, we want you to be one.

However, we are kindly showing you that you are missing a critical point in our advice to you. This is a god-tier level of work and skill.

Saying that you own some books is not enough. It does not say how capable you are.

You have to prove you have a fundamental understanding in computer science (like data structures), proof on working in a serious C project or two (like maybe from github), and understanding core OS and Networking concepts.

This is quite the huge jump and we all care that you care, but we do not think you understand what you are jumping into.

Don't say I have book X or Y. Either say "I will learn this to the best of my abilities" or show you actually know something if you do :)
 
This is a god-tier level of work and skill.

I wouldn't necessarily put it that way. There are plenty of challenging things outside of kernel development (say, databases) and, conversely, not every kernel subsystem is a complicated mess. If you are a competent programmer with an unhealthy inclination for writing low level code, you certainly can find something to work on, no superhuman skills required.
 
Back
Top