![]() |
|
![]() |
| Well-deserved, congrats Andrew. I still have his distributed systems textbooks from way back when, and still wish Minix had won and its microkernel model had become the basis of the FOSS *nix ecosystem.
Also in case anyone is not aware, Andrew runs the election science blog Electoral Vote [1], using an electoral college poll model to analyze and predict US elections. One of the better US political sites out there. [1]:https://www.electoral-vote.com/evp2024/Info/welcome.html |
![]() |
| Not to mention MINIX is hidden away in almost every modern Intel CPU as part of its Management Engine. This little known fact makes it one of the most widely distributed operating systems. |
![]() |
| Why did they use Minix and not e.g. L4 or sel4?
Which version of Minix did they actually use? There is Minix v3.1 (released in 2005 with the book), 3.2 (released in 2012) and 3.3 (released in 2014). |
![]() |
| One of the best textbooks I had to read for my degree, back in the 80s. The appendix containg the Minix source code was my first exposure to a large body of well-written C code. |
![]() |
| It's funny to see how they highlight that it inspired Linux, ehile Tanenbaum heavily criticized it for not being a microkernel :D |
![]() |
| My favorite thing about that whole thread is the unanimous consensus among everyone involved that we will all be running GNU/Hurd in 2 years so these stopgap OSes are just academic hobbies. |
![]() |
| > he was the person behind electoral-vote.com
electoral-vote.com is still going strong: https://www.electoral-vote.com/ I'm sure you know this, but I want to emphasize it for anyone who is not aware. Prof Tanenbaum has a co-writer now (Prof Bates, history at UCLA/Cal Poly), and the site is published every day (used to be weekdays only and only during election cycles). |
![]() |
| is MINIX abandonware now? Many years ago I tried to install the release that works (or comes bundled) with a light window manager but it was not trivial and it looked pretty abandoned even back then. |
![]() |
| MINIX3's development has stalled years ago.
Basically, around MINIX 3.2.0 (just before I stated contributing) the OS ditched its homegrown userland and adopted the NetBSD source tree + pkgsrc. While that boosted the software compatibility of MINIX3 in the short term, the maintenance burden of keeping up with upstream with such a large diff proved unsustainable in the long term, especially after the grant money dried up. In hindsight, my opinion is that MINIX3 should've gone with NetBSD binary compatibility. The NetBSD syscall table would've been a far slower moving target to keep up with than the entire NetBSD source tree. The OS also had a significant amount of tech debt, especially in the microkernel which was uniprocessor and 32-bit only, as well as outdated hardware support which meant nobody was daily-driving it anymore. It also was an aging design: while the system was divided up into user-mode servers with message-based communication, you couldn't containerize a process by spawning a parallel userland ecosystem for example because it wasn't capability-based or namespaceable. It's too bad really, because the base system had really impressive capabilities. It could transparently survive crashes of stateless drivers, even when stress-testing it by injecting faults into the drivers at runtime. You could live-update the various system services at runtime without losing state or impacting clients. Some really good papers came out of MINIX3 [1]. I've ranted more in detail before, both on HN [2] as well on Google Groups [3]. I do not fault the maintainers for the current state of affairs because keeping up the MINIX3 userland against modern software standards was a major maintenance burden, so adopting NetBSD's one way or another was inevitable. At any rate, there are other micro-kernel based operating systems [4], some under active development, so MINIX's spirit lives on. [1] https://wiki.minix3.org/doku.php?id=publications [2] https://news.ycombinator.com/item?id=34916261 [3] https://groups.google.com/g/minix3/c/qUdPZ0ansVw/m/7LuOv0YOA... |
![]() |
| Hell yeah! Well deserved. I had a blast with some of his books. Especially _Operating Systems: Design and Implementation_ and _Computer Networks_. Legend |
![]() |
| Still have a cd-rom with copy of minix3, from when he had a talk in my university. His books on OS and Networking are very approachable and fun read! |
![]() |
| Sounds like you like myself have taken Rob Pike’s take from long ago to heart http://www.herpolhode.com/rob/utah2000.pdf
While plenty of things have happened since that paper, I have this sinking feeling that he was right and we just stopped trying to really expand and explore what’s possible. But it may be more a matter of the state of academia than about the domain itself. It’s not like people were getting a bunch of conference invitations for GPGPU applications with ML until hype freight trains hit. This sobering reality of academic hegemony and grant chasing kept me from ever getting terribly interested in systems research unfortunately. |
![]() |
| > running a distributed operating system where processes could be be freely migrated between my phone, desktop, laptop and NAS without too much of a hitch.
This was what i always wanted ever since i read Tanenbaum's "Modern Operating Systems" and in particular his "Amoeba distributed OS" - https://en.wikipedia.org/wiki/Amoeba_(operating_system) Also see Plan 9/Inferno from Bell Labs. But instead what we got (due to industry shenanigans) is this garbage/duct-tape of distribution gone crazy in the "Cloud". |
![]() |
| > Why should we have?
Because that is what an OS is supposed to do viz. provide a uniform interface and transparent access to various Compute, Storage and Network resources wherever they might be. A Distributed OS (https://en.wikipedia.org/wiki/Distributed_operating_system) is a natural extension to a Single Node OS. Note that we have in a sense realized our distributed OS in the IaaS and PaaS layers of a Cloud network. However they are done in such a manner as to take control away from us unless of course you use some open source offerings setting up which is much more complex than a distributed OS should be. |
![]() |
| Hey! Don't let out the secrets :-) This is something i have been long thinking about (but have done nothing practical so far). The problem is how to bridge/shim between Erlang and those platforms which do not support it eg. Android (though some people seem to have done it - https://github.com/JeromeDeBretagne/erlanglauncher). Joe Armstrong actually called the Erlang/OTP System as a AOS (Application Operating System) in his paper i.e. it contains much of the functionality of a traditional OS but people seem to ignore it and insist on calling it "just another language".
|
Along with K&R (and K and Plauger’s “Software Tools”), the Dragon book, Bentley’s Programming Pearls, and Holzmann’s Beyond Photography, AST’s books were the most formative in my life (I started coding in 1976 but was self-taught until early 80s when I got to college and read all these brilliant works). Long overdue recognition; so many people benefited from the lucidity of these minds.