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? > Or can you recommend alternative resources? 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. One thing that might be useful to you is to play around with something like FreeRTOS. A simple os for micro-controllers. What 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. One excellent but little known OS book is; "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. Don't underestimate the value of reading source code if you really want to develop a deep understanding. With Linux being open source, the world is at your fingertips. By reading the source you may find out how some problems currently solved - if you are able to wrap your head around something multiple people trying to do for multiple years. 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.