top | item 36027606

Ask HN: I'd like to start reading the Linux source code. Where should I start?

27 points| markchristian | 2 years ago

13 comments

order

molteanu|2 years ago

Since you do not mention if you're already a pro with OS internals and implementations, I will assume, maybe incorrectly, that you're not.

So in that spirit, try the XinuOS. It has the complete source code for a minimal, clean and practical OS. Search for the book explaining it inside out.

xv6, a re-implementation of Dennis Ritchie's and Ken Thompson's Unix Version 6 (v6) also comes to mind.

And C. Don't forget to sharpen your C skills.

Agingcoder|2 years ago

Read the Linux programming interface by Michael Kerrisk. It will tell you what Linux should be doing for you ( the api basically and what subsystems exist). Read lwn, kernel newbies to get a feel of what’s happening in the kernel.

Get knowledge of operating systems ( I like the minix book by tanenbaum ). Learn about Linux internals ( I like linux kernel development by Robert love)

Then, pick bits you’re interested in and jump !

unmole|2 years ago

Linux Kernel Development by Robert Love. It's spectacularly out of date but is still a good starting point. And Elixir is very helpful for browsing the source code and comparing chnages across kernel version: https://elixir.bootlin.com/linux/latest/source

cf100clunk|2 years ago

Have you considered ''Linux From Scratch'' as an element of your research?

https://www.linuxfromscratch.org/

Building a Linux kernel and system with your own specific configuration tweaks may reveal things that the best of books, manuals, courses, etc. might not cover.

wmf|2 years ago

Something I've done a couple times is trace the execution of a system call by reading the code. LXR is really helpful.

bombcar|2 years ago

Understanding the Linux Kernel, Third Edition is now horribly out of date, but it's a good place to start if you've never read it before.