https://groups.google.com/g/minix3/c/nUG1NwxXXkg
Short story as I watched it: Tanenbaum got a couple grants totalling several million Euro. He hired some of his grad students to work on making it a production system. They made a lot of improvements, research-wise, but they also sort of made a mess of things. What they didn't do is set up any reasonable project infrastructure (e.g., a bug tracker) that would allow Minix as a project to grow into a healthy, thriving project at a size beyond those who were being paid to work on it, and for it to outlive their interest in it. The userspace was largely replaced by NetBSD's, and that involved clang replacing ack, so builds went from ~10 minutes to 3+ hours. Lots of small stuff like this, adding up to a project where no one is willing to exercise ownership and few outsiders are equipped to deal with it in its current state (even if interested).
The best thing that you could do if you want Minix to be a thing is to prepare yourself for a deep dive and not look to "the community" with the belief that there is some consensus/approval to be had. Take charge in a fork of your own and make it the project you want it to be. If you wait for anyone else to take ownership, you're going to be waiting for a long time. If Minix is "dead", it's because poor ownership + the bystander effect killed it.
Shades of excuses #1, #2, and #3 from jwz's "nomo zilla" are pretty appropriate here as well.
While others have noted that grant money has run out, for me MINIX3 is only as good as its weakest link: its microkernel has a really dated design. Imagine taking 1980s Unix and gutting it until you have a microkernel: it has a fork() primitive oddly enough, it's not SMP-safe, it's 32 bit only, processes only have one thread... It's the one area of the OS that hasn't changed that much since 1987.
So while there has been some very good research done on it (https://wiki.minix3.org/doku.php?id=publications, especially of note reliability in face of drivers and services misbehaving or crashing as well as live update of almost all drivers and services without interruption of service), it cannot take advantage of modern 64 bit, multi-core processors.
Furthermore, the second weakest link is driver support. Running on bare metal is possible but vintage hardware is best suited for it because of the limited hardware support. Especially problematic is the lack of USB support on x86. NetBSD's rumpkernel would have been a potential in-tree solution to fix this, but sadly it has never been done.
Anyways, these days the Zircon microkernel seems extremely promising. The design seems well thought-out, the object/handle/IPC mechanisms are especially interesting because it's rather unlike everything else done at this point that I'm aware of and processes can only interact with the rest of the system through handles, so it's trivial to sandbox things.
As for me on OS development, right now I'm having fun hacking on SerenityOS. It's a sin for a micro-kernel guy like me, but who's to say I can't have a little bit of fun on the side?
I knew I specifically wanted to dig into minix as a pastime. In my mind, the text book(s), and a fully featured Unix with a small code base were a unique combination...
That is, until I sat down to actually buy the book. The $200 price tag was beyond sticker shock. It was literally offensive.
I didn’t take long to find Operating Systems: Three Easy Pieces (OSTEP)[1]. The book can be had for Legally FREE or Affordable. And the introduction contained (among everything else) a brief manifesto admonishing the crazy high prices of college text books.
The book is funny, technically excellent, and also features a tiny-sized Unix like operating system: xv6.
Pouring my hours into this book and learning the XV6 operating system was time well spent.
[1]: https://pages.cs.wisc.edu/~remzi/OSTEP/?source=techstories.o...
Does anyone have any OS course / book recommendations?
I've worked my way through the excellent MIT course on xv6 [0], but I'm not sure what to work on next. Something related to Linux or one of the BSDs would be nice to see how things are done in the real world.
I cannot recommend this MIT course enough for those getting started. The projects are set up in a very nice way (i.e. if you can't complete one tricky assignment, you don't need it as a prereq for later ones) and the code is very simple. They've also gone to great lengths to set it up in a simple way (e.g. using cross-compilation for RISCV on qemu). It's also a great experience to really understand OS, as you'll make mistakes that will leave you scratching your head until you realize you messed up your page table and yeeted your kernel stack out of your address space.
Sounded interesting, and somehow I found a copy of Minix for my 386 that I cobbled together from parts. Not sure where I got it, but probably downloaded from a BBS. A year or two later after getting a job, I'd discover Sun, SGI, and Linux. My experience with Minix helped me get around at the shell.
https://www.networkworld.com/article/3236064/minix-the-most-...
For futureproofing it, perhaps make a Docker container of it
Interestingly, Linux might be right behind it, at second place, dominating servers, cars, and all sorts of industrial devices.
But funnily enough in the end, when it comes to laptop and desktop computers, the Windows NT kernel, and the macOS Darwin kernel are still the reigning champions. It’s funny, because I think in the 90s, every OS designer was trying to take the place of MS-DOS/Windows/Mac. The two flamewar[*] buddies won out in the end, but likely not in the market segments they had initially expected to win.