For someone comfortable with programming in C (say, enough to pass tech interviews with the language) what are some good textbooks or other resources to learn more about operating systems.
If you want a quick, concise, pragmatic course to learn about OS, I would recommend Paul Krzyzanowski's OS Course that he teaches at Rutgers University. [1]. See course material at [2].
Operating Systems: Three Easy Pieces[0] coupled with Xv6[1].
Once you understand the fundamental ideas, you can move on to a specific real world implementation like The Design and Implementation of the FreeBSD Operating System by Marshall Kirk McKusick et. al or Linux Kernel Development by Robert Love.
Try ops-class.org from Geoffrey Challen that uses OS/161 for programming assignments, all of the material is free. I'm doing that one now. Highly recommend Operating Systems in Three Easy pieces as well.
I can second the recommendation of Robert Love's books on Linux (https://rlove.org/) as well as "How Linux Works" by Brian Ward. I personally enjoyed "Linux Kernel Development" by Robert Love more than the former as it teaches you more about Kernel internals (IMHO). The drawback is that it's a bit outdated already (it's based on the 2.6 kernel) but on the other hand most things are still relevant as far as I know. Andrew Tanenbaum et. al.'s "Modern Operating Systems" is a good reference to learn about operating systems otherwise, independent of Linux.
This is false. Linux kernel even in the early stages didn't share any code with MINIX. MINIX had a restrictive license and this was partly why Linus decided to roll his own OS kernel.
Further, the two OSs differ fundamentally from an architecture standpoint (microkernel vs monolithic kernel).
12 comments
[ 3.2 ms ] story [ 35.7 ms ] thread[1] https://www.cs.rutgers.edu/~pxk/416/index.html [2] https://www.cs.rutgers.edu/~pxk/416/syllabus.html
Once you understand the fundamental ideas, you can move on to a specific real world implementation like The Design and Implementation of the FreeBSD Operating System by Marshall Kirk McKusick et. al or Linux Kernel Development by Robert Love.
[0]: http://pages.cs.wisc.edu/~remzi/OSTEP/
[1]: https://pdos.csail.mit.edu/6.828/2012/xv6.html
[0]: https://www.amazon.com/dp/1119456339/
The book is about MINIX operating system, a operating system without hacks, to showcase the concepts.
Linux is a fork from MINIX.
This is false. Linux kernel even in the early stages didn't share any code with MINIX. MINIX had a restrictive license and this was partly why Linus decided to roll his own OS kernel.
Further, the two OSs differ fundamentally from an architecture standpoint (microkernel vs monolithic kernel).
https://docs.microsoft.com/en-us/sysinternals/learn/windows-...
The Thomas Anderson books are a multi-volume guide to OSs.