7 ms·
Pretty much, yeah. https://groups.google.com/g/minix3/c/nUG1NwxXXkg https://groups.google.com/g/minix3/c/nUG1NwxXXkg Short story as I watched it: Tanenbaum go
by cxr 6y ago
Pretty much, yeah.
https://groups.google.com/g/minix3/c/nUG1NwxXXkg 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.
- Pet_Ant 6y agoI would support a Patreon for someone to work on it. I wonder how many would?
- noobermin 6y agoMoney is often the issue but if they have multimillion grants then that isn't the issue here.
- pyb 6y agoThey had one such grant, many years ago.
- rualca 6y agoYou can dump all the money in the world into a project, but if there is zero ownership among those involved, including top leadership, then that money simply goes to waste.
- the_af 6y agoFrom the description, I don't think the problem was directly money related.
- ajross 6y ago> that involved clang replacing ack, so builds went from ~10 minutes to 3+ hours Are those real numbers? Yikes. I mean, I don't disbelieve it, it's just a reminder about how far we've fallen. Modern compilers are indeed amazing tools, but those last 8-10% of features (performance, safety, etc...) have come at an absolutely staggering price. And clang isn't really that big an offender, being only a tiny bit slower than GCC. C++ and Rust are a solid order of magnitude slower still.
- ori_b 6y agoEasily believable. Keep in mind that clang is part of the userspace that clang is building. Moving to clang means building that instead of building ack, you're building clang. Plan 9 is similar: a full system rebuild takes about 45 seconds on my hardware. A clang (and just a clang build) build on similar hardware takes about 2 hours.
- xfer 6y agoYes, i miss the days when i could make changes to the system and recompile in under a minute on Plan9. Such a distraction free programming environment.
- sim_card_map 6y agoWhat compiler does plan9 use?
- cratermoon 6y ago> 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 Yeah, software development is a difficult profession, not a thing a grad student in CS can manage. But code written in academia is for the most part garbage in general.
- vs4vijay 6y agoTrue that.
- bch 6y agoIf that’s how the grants panned out, that makes this flip-sounding comment[0] from BSDCan all the more painful to hear. Minix is conceptually interesting, but if the mismanagement ran deep, I guess that’s why it couldn’t capitalize on its simplicity alone (no 64-bit processor support? No USB?)[1] [0] https://youtu.be/jMkR9VF2GNY?t=280 https://youtu.be/jMkR9VF2GNY?t=280 [1] https://en.wikipedia.org/wiki/Minix_3 https://en.wikipedia.org/wiki/Minix_3
- jacquesm 6y agoI disagree that Minix is conceptually interesting. It's a half-way house between monolithic kernels and microkernels with the disadvantages of both and none of the advantages. I'm a big fan of microkernels, I think Tanenbaum had it right in his spat with Linus but at the same time Minix' implementation is very far from what could have been a fantastic little OS.
- lproven 6y agoHow is it a half-way house? Genuinely interested and curious, not snarking.
- jacquesm 6y agoBecause it is 'not quite a microkernel'. For instance, many things that would be processes in a real microkernel are built-ins in Minix. Which makes them impossible to replace at runtime, nor can the kernel function without them. I get it, these are hard problems to solve especially when bootstrapping but it saddled Minix with a bunch of heritage that it has not been able to shake. Posix compliance on the one side and running a true microkernel on the other is a hard problem, and after all the real goal of Minix was not to 'be the best microkernel' but to simply provide an OS for study purposes to students at VU and other universities. If you want to see what an ideal microkernel looks like take a look at the QnX architecture, that's much closer.
- snvzz 6y ago>Posix compliance on the one side and running a true microkernel on the other is a hard problem >If you want to see what an ideal microkernel looks like take a look at the QnX architecture, that's much closer. Have you looked at Genode + seL4?
- floatingatoll 6y ago(For others: the above groups.google.com link is 2020, more recent than the 2018 in the HN post title.)
- im3w1l 6y agoIt may sound drastic, but why not just roll it all back if it was that bad?
- moonchild 6y agoPresumably the remainder of the netbsd userland relies on features not supported by ack.
- eddieh 6y agoHmm, I thought Linus famously didn't use project infrastructure, no project management, no bug tracker—just emails and patches. Linux hasn't suffered. I'd wager Minix suffered from its original license (not really open source or "free" software) and Tanenbaum not being an egomaniac like Torvalds (for better or worse).
- hutzlibu 6y agoBut Linus is still in total charge of linux and we have yet to see, how it works out without him. And with Minix, itseems Tannenbaum is not really in charge anymore?
- ghaff 6y agoThat's not really true even if he is in a sort of BDFL role. There are maintainers who handle most of the day to day decision-making and there's enough money involved you can be pretty sure that Linux would keep on going with or without any single individual.
- happycube 6y agoThis. You even have people who do the final merges other than Linus - in the form of LTS (security/bugfix) updates.
- Kliment 6y agoLinux certainly has project management, bug tracking, and lots of infrastructure. What it famously rejected were inadequate centralized systems that break the way kernel developers and maintainers actually work. Before the tools were there there already was a large human-operated distributed management system that ran on top of email. A lot of linux project operations are still a large semi-automated distributed management system that runs on top of email. It's gotten somewhat more centralized now, as a single source of truth is very useful for tracking bugs, but just because there's a single root to the tree of maintainers doesn't mean it's a a project run by Linus alone, and just because it's not using jira or gitlab or whatever the flavour of the day is doesn't mean it has no project infrastructure.
- phicoh 6y agoAs somebody who maintains a fork of MINIX2, just for private pleasure, I know the limitations of ACK. In the end, you either need gcc or clang if you want to compile modern source code. I doubt that clang would be reason not to volunteer for MINIX3. That said, I personally don't like what MINIX3 has become. In the end, if you want to have a small, volunteer-based software project, you need somebody with a vision and who is also able to contribute quite a lot of time to the project (and possibily also quite a bit of resources). The MINIX3 didn't have such a person in the community so the transition from paid developers to a community supported project failed.
- anthk 6y agoWould tcc or pcc work?
- boricj 6y agoIt would've provided C99, but these days an operating system needs among other things a proper C++ compiler to support running modern software. Besides, the switch to NetBSD userland also brought build.sh and easy cross-compiling, which was a huge benefit for programmers. As for the MINIX2 fork I assume it's Minix-vmd. MINIX didn't switch to ELF before the 3.2.0 release, so you either need a toolchain that can output the traditional a.out file format or add ELF support to MINIX2. Not impossible, but probably more work than maintaining a MINIX2 fork for private pleasure warrants.
- phicoh 6y agoIt is indeed Minix-vmd. The current toolchain is way too old. Most of the software I want to run is written in C, often C89, or C99. So it doesn't cause a lot of issues at the the moment. I think adding minimal ELF support would not be a lot of work.
- boricj 6y agoIndeed, if you stick to ET_EXEC then it's only marginally more complex than a.out. I doubt it would take more than 150 lines of code to pull it off and it's a much saner executable file format for the 21st century. I'm assuming there's no dynamic linking support here and that you only care for a basic ELF loader. Do you have pointers to online resources on Minix-vmd and a public source tree repository somewhere? minix-vmd.org seems down... No guarantees, but I do seem to be the type that does random drive-by contributions to open-source software.
- thecleaner 6y agoYeah and should you do decide to make a fork, make it paid and make some money out of it. Take some lessons from the dhcpd guy and do not work for free. Otherwise most likely Amazon will copy the software, spin it into some service and not contribute a single line of code or a single cent.
- rjsw 6y agoNetBSD userland can be built with GCC or clang so it could be an option to use GCC for Minix.
- boricj 6y agoThe change of userland to NetBSD came just before I got involved as a contributor, but to characterize it as making a mess of things isn't very fair. The reason why it was done is because the MINIX3 project felt that they didn't have the manpower to maintain a compiler toolchain, base userland and packages on top of the actual operating system. Which, in retrospect, was spot on. Having a modern toolchain also enabled work such as live updates of almost every driver and service without interruption of services, by instrumenting LLVM to generate all required information, as well as the ARM port. This also brought vastly increased compatibility when compared to other Unix-likes, enabling a fair amount of pkgsrc packages to build and run without patches. Reinventing the wheel from scratch as with SerenityOS is fun, but not very helpful if you want to run other people's software, especially if all you have is a C89 compiler (ACK). There is a bug tracker in the form of GitHub issues that came as part of the migration to GitHub and a Gerrit server, which also happened before I got involved. Now, I'm not Andy Tanenbaum nor one of the MINIX3 gurus and I certainly don't have the full picture myself, but merely saying the project slumbered because of poor ownership isn't actually helpful to learn lessons from it. Software project management is anything but easy, especially if you lack paid contributors.
- slig 6y ago> Shades of excuses #1, #2, and #3 from jwz's "nomo zilla" are pretty appropriate here as well. Interesting read, thanks for sharing. jwz.org/gruntle/nomo.html edit: JWZ doesn't like HN, copy and paste the link
- disgruntledphd2 6y agoFor all the first time clickers to the above website, you probably want to copy and paste the link rather than clicking.
- slig 6y agoThanks for pointing it out, edited my reply.