6 ms·
The Linux Programming Interface as a university course text
- agiacalone 7mo agoI use TLPI as an optional text for my CS Operating Systems course! It's honestly the best resource for a comprehensive look at the innards of Linux. I actually even snip select pages for lectures.
- le-mark 7mo agoIt’s a big book, can you describe what parts you use and how?
- Joel_Mckay 7mo agoPeople should do a foundation course to figure out which deprecated parts of the kernel source to avoid. It is nontrivial, but talking with the active developers will save a lot of guess work. =3 Introductory LFD103 is a free course: https://training.linuxfoundation.org/training/a-beginners-guide-to-linux-kernel-development-lfd103/ https://training.linuxfoundation.org/training/a-beginners-gu... Some channels to get some experience handling the modern kernel source: https://www.youtube.com/@johannes4gnu_linux96/videos https://www.youtube.com/@johannes4gnu_linux96/videos https://www.youtube.com/@nirlichtman/videos https://www.youtube.com/@nirlichtman/videos
- shiroiuma 7mo agoWhat a horrible selection for a university textbook! It doesn't get trivially updated every year to prevent reuse and reselling, so how is this supposed to generate more profit for the booksellers? /s Seriously though, this book is fantastic, and far better than typical course textbooks. I'm honestly a little surprised that universities would select it.
- catfood 7mo agoOne of the greatest texts ever written. Ok maybe just one of my favorites. I wouldn't mind a 2nd edition though... surely the system call interface has changed a bit since 2010.
- looopTools 7mo agoWe did not get as recommend or required reading in a course. But the professor did recommend it to me outside of class.
- jll29 7mo agoMy favorite book about systems programming on UNIX systems is the book by the late Stevens, but this book more detailed, Linux-specific and if updated (after 16 years, in which Linux did not stand still), could steal the crown from Stevens.
- jumploops 7mo agoSo much of practical CS is abiding by standards created by solo programmers in the past. My university frowned on any industry-related classes (i.e. teaching software engineering tools vs. theoretical CS), but I was fortunate enough to know a passionate grad student who created a 1-credit seminar course on this exact topic. This course covered CLIs/git/Unix/shell/IDEs/vim/emacs/regex/etc. and, although I had experience with Linux/git already, was invaluable to my early education (and adoption of Vim!). It makes sense that this isn't a core topic, as a CS education should be as pure as possible, but when you're learning/building, you're forced to live within an operating system and architecture that are built on decades of trade-offs and technical debt.
- eru 7mo ago> It makes sense that this isn't a core topic, as a CS education should be as pure as possible, [...] I don't think that's a good goal. Otherwise, why let you near a computer at all, and not restrict you to chalk and blackboards?
- ratorx 7mo agoPure CS is not necessarily equivalent to pure maths. For the “science” bit of CS, you do need to do the equivalent of experiments (for more applied topics). For example, a physics degree is expected to have experiments. You are not required, expected (and possibly do not want) to know the tools required to professionally build a bridge because you did courses on mechanics. But you might do an experiment on the structural integrity and properties of small structures. Whether this is a good split is an entirely different question.
- kgwxd 7mo agoIf you've made it that far in life without learning how to use a screwdriver, engineering would be a bad choice of major. And paying insane amounts of money for someone to explain how to use one would be an even poorer choice.
- ferguess_k 7mo ago
- pjmlp 7mo agoI guess it is more appealing to current university students, than reading about UNIX Lion's commentary, Minix, BSD design, and other academix books with UNIX like implementations.
- pikachu0625 7mo agoOne of the best books I've read. It helped me lead meetings and solve complex problems where other engineers struggled.
- markus_zhang 7mo agoThanks for sharing. What kind of problems do you solve in daily work? Sounds like an interesting career path.
- phanarch 7mo agocatfood's point about a 2nd edition is worth unpacking: The syscall ABI itself is remarkably stable, backward compact is practically Linux's religion, but the conceptual model has shifted substantially. Namespaces and cgroups went from obscure subsystems to the foundational abstraction containers run on. io_uring rewrote the async I/O model. eBPF changed how you think about observability and policy enforcement.
- 2OEH8eoCRo0 7mo agoExcited to see there is a new edition coming.
- evanjrowley 7mo agoThis is the curriculum I wish my university’s CS program had back in the day.
- wang_pp8 7mo ago[dead]
- Agingcoder 7mo agoThis is one of the books I recommend to my coworkers who are interested in operating systems - it teaches a surprising amount of things by telling you what an OS will do for you and therefore why you need it, instead of telling you how it works inside. It also remains being very pleasant to read in spite of its very large size( I read the whole book cover to cover ). Obviously you can also read the classics ( minix book, tanenbaum, Bach , and probably modern references ) but this one somehow gives the operating system a purpose which I find absent in the others I’ve read .