3 ms·
You may want to start with the earliest Linux kernels as they will be considerably smaller and simpler. You'll also be able to fit the whole kernel in your hea
by rogerbinns 14y ago
You may want to start with the earliest Linux kernels as they will be considerably smaller and simpler. You'll also be able to fit the whole kernel in your head.
From that point you can look at yearly diffs to find subsystems that have changed of interest. (Are 4 rewrites of USB interesting?)
- chubot 14y agoYeah I agree. The first versions of Linux were 10k LOC or less. Should be pretty readable. One thing I just did was build the first version of git (just sync backwards in the git/git repo and type "make"). I ran the commands manually, and looked at the data file formats, and at the source code, and it greatly improved my understanding of git. It's all still relevant. The first version of git was shockingly small, like 500 LOC of plain C code or so, but it does a surprising amount of the core work. I also gained a lot of respect for Linus' coding style. People have said that Linux itself has too many hands in it -- e.g. the system call interface is a huge mess. So I wasn't sure if I would like Linus' code, but I definitely do after reading it. I think he doesn't care about consistency when merging, because git's interface is a huge mess, just like the Linux syscall interface. But his code is consistent and good for sure.
- kkuduk 14y agoIn case somebody looked for the first version of git, here it is: http://goo.gl/mKYnR http://goo.gl/mKYnR
- nitrogen 14y agoThere's no need to post shortened URLs to HN, and in fact this is discouraged. If you post a very long URL, HN will elide the text beyond some limit so it fits better in the page.