Ask HN: Gaining a deep understanding of operating systems

  • > 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.