1. 23
  1.  

  2. 3

    Saw this and my first thought was: Operating System Design - The Xinu Approach.

    Really enjoyed working through that book in our operating systems class.

    1. 3

      OS Design & Impl (aka the MINIX book) is oddly missing in Tanenbaum’s section.

      1. 2

        If by “Operating System” you mean “Unix”, then sure :-/

        It’s probably heresy, but I’m not a huge fan of the MINIX book. I got a free copy and I’m glad I didn’t pay for it. It’s around 50% code samples from Minix. A few chapters are interesting, the rest are too much detail in a specific system. If you want to contribute to Minix, it’s great. If you don’t… not so much.

        On the other hand, his Modern Operating Systems is still an all-time favourite.

        I’d also recommend Mark R’s Windows Internals books. The NT kernel made some core design decisions that are completely the opposite of the UNIX view. Some of these have stood out as better, some have led to headaches. It’s very interesting to compare the NT and UNIX models and see what has stood the test of time. Both Linux and NT are about the same age (though both were heavily influenced by earlier systems) and both made early design decisions that have been regrettable in hindsight.

        1. 1

          If you want to contribute to Minix, it’s great. If you don’t… not so much.

          The other books are about BSD 4.3, FreeBSD, MULTICS, etc. I don’t see the problem, unless you hate MINIX for some reason.

          it’s around 50% code samples from Minix.

          Fortunately, MINIX is small, and quite readable. It’s definitely helpful to follow the source code along.

          I’d also recommend Mark R’s Windows Internals books.

          Definitely.

          1. 1

            The other books are about BSD 4.3, FreeBSD, MULTICS, etc. I don’t see the problem, unless you hate MINIX for some reason.

            I don’t hate MINIX. There’s a huge value in understanding the design decisions behind the core functionality. There’s significantly less value in a step-by-step walk through of the code. The *BSD books have a few code snippets but mostly talk about the design rationale. The FreeBSD version is not as good for becoming a FreeBSD developer than the MINIX book is for becoming a MINIX developer but is much better for becoming an OS developer who understands how FreeBSD is similar and different to other systems than the MINIX book is for becoming an OS developer who understands how MINIX is similar and different to other systems.

            1. 2

              The MINIX book is good because it goes from ground up and provides some historical context which is great for beginners, depends on your audience.

              1. 1

                It’s been about 15 years since I read either cover to cover, but I remember that being true of Modern Operating Systems. I found the MINIX book skipped over a lot of historical things and, particularly the MINIX 3 book, described design decisions that made sense based on the current status of x86 hardware, and gave deep dives into how MINIX implemented things in far greater quantity than it described why MINIX did those things and what the design space looked like.

                1. 2

                  Right, and difbsd?

                  1. 1

                    Kirk includes a huge amount of history going right back to the early BSDs, explaining why design decisions were made back in the ’80s and how the code has evolved over time. It helps that he was around when they were making some of those design decisions.

                    1. 2

                      No doubt about Kirk.

      2. 3

        If by “Operating System” you mean “Unix”, then sure :-/

        1. 2

          di4.3BSD boasts that 4.3BSD has fault tolerance capabilities where upon hitting a fault it will reboot and continue operation :) (after you’ve cleaned up the disk I guess)

          1. 3

            That sounds like the sort of thing that’s in the Unix Haters Handbook, which should be on this list IMO, at least as light-reading.

            1. 2

              That sounds like the sort of thing that’s in the Unix Haters Handbook, which should be on this list IMO, at least as light-reading.

              The UNIX Haters’ Handbook should be required reading for any OS class. A few of the objections are a bit dated but there’s an increasing tendency to teach the UNIX way (or even the Linux way) as the canonical way of writing an OS and ignore anything else. This leads to a myopic view where things are done just because that’s an approach that made sense on a ‘70s PDP-7. The UNIX Haters’ Handbook gives a good counterbalance and encourages people to think about some of these decisions a bit more carefully.

          2. 2

            I also have a copy of The Design and Implementation of the 4.3 BSD UNIX Operating System, bought second hand about 15 years ago. I found it surprisingly easy to read - it’s quite accessible even for those who don’t have a heavy OS implementation background.