Ask HN: Gaining a deep understanding of operating systems
I really want to have deep understanding of operating systems and I found a course which I hope will help me gain that. It’s https://www.ops-class.org. There doesn’t seem to be a active community around it like with some moocs so I’m searching for people who would be interested in participating. You can reach me via email: haasis_noah@yahoo.de
Is anyone here who already completed the course? Or can you recommend alternative resources?
5 comments
[ 2.9 ms ] story [ 24.5 ms ] threadWhat is useful about that it's simple enough to understand the various parts and how they work. Long time ago I ported µC/OS to a new microprocessor. It was very instructive.
Understanding OSes better by understanding a particular OS better is part of the reason why I moved from Windows to Ubuntu to Archlinux. Having your whole OS being open source (Windows -> Ubuntu) and using an OS that doesn't try to add a bunch of superfluous infrastructure over what's actually needed (Ubuntu -> Archlinux) makes understanding the system much easier.
As an alternative resource, I suggest installing Archlinux, read the documentation of the base system (manpages, info manuals, the Archlinux wiki, online documentation on particular projects like https://x.org/ for xorg/x11 documentation, etc.), experiment with it, see how it's built, look into the source code of anything you want to know in detail.
Also, there's the LFS (Linux From Scratch) project, which teaches you how to build a Linux distro without depending on an installation .iso. You get to download, build, and install the kernel from kernel.org, glibc from gnu.org, etc.
"UNIX Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers" by Curt Schimmel.
PS: Would appreciate recommendations for other in-depth books on OS' like the above.
For deep understanding you need to understand what were the problems an OS had to overcome andwhat were the trials and errors which lead to the OS we have now.
If you are curious about a specific part eg. memory handling, fine jump deep into linux source but don't expect to gather more knowledge than reading about the different algorithms born and die in the last decades trying to solve it.