Debian GNU/Hurd now can compile 71% of the packages from the Debian archive
gnu.org
gnu.org
PCI Express is the IPC standard for most of these and IOMMUs have brought in proper isolation.
… in a way, it's a very inflexible, inhomogenous and intransparent microkernel getup.
I think Apple are currently the only people who actively understand this and are trying to use it to their benefit, with their ongoing deep integration of peripherals. I just wish they'd get rid of the inflexibility and intransparency :(
I've always thought Hurd seemed pretty cool but the thing that stops me from using nearly any OS less popular than Linux is always driver and software support.
(Edit: https://media.ccc.de/v/34c3-8941-console_security_-_switch and https://en.m.wikipedia.org/wiki/Nintendo_Switch_system_softw... )
https://en.wikipedia.org/wiki/Nintendo_Switch_system_softwar...
Given that the Tegra X1 chip it runs was already a couple of years old when Switch released, they might have had to perform some magic to get performance what it is even with a cut-down Android; even under their custom OS, their flagship game, TLoZ: Breath of The Wild, doesn't run smoothly.
https://en.m.wikipedia.org/wiki/Nintendo_Switch_system_softw...
But after the honeymoon ends and you now have to build and add features to it as the platform grows and you realise you don't have an army of OSS contributors helping you ship and innovate. Isn't it frustrating for them?
When you strip it down to the actual amount of code Nintendo maintains, by ripping out the NVIDIA, NetFront, graphical and audio assets, it’s manageable. Compared to the complexity of the hundreds of video games that Nintendo has worked on, it’s probably not as difficult as it would seem.
There’s a reason why it’s small though - every game card comes with a copy of the required OS version and can self-update the console if needed. Not only can the game card update the console - other Switch players, using the version synchronization feature, can even update each other’s consoles wirelessly without internet for both the game and OS.
> but don't their developers also hate them
No idea where you got this from. The primary complaint regarding the Switch is the dated chip and performance metrics, not the system. Nintendo as a company meanwhile has a 98%+ retention rate. There were five people who worked on the original Super Mario Bros in 1985, all five of them worked in some capacity on Super Mario Bros Wonder in 2023.
Anyway if the entire OS is hand rolled how are they able to get WebKit and Nvidia drivers to run without much effort.
Like I'm assuming they very much needed to build their own linker, their own executable format. Even their own libc, sounds like a lot of work to QC, document and implement.
If it were their own flavour of Unix I wouldn't have so many questions. Unix already defines standards pretty well like file systems, process management, scheduler, drivers, a plethora of helpful daemons. So is it basically just a highly modified Unix, implying a lot of Unix things just has to be ported over to their micro kernel Unix or is it more proprietary.
I ask this with just a thirst for this knowledge, I talked to a few enthusiast OS Devs that build their own toy kernels, bootloaders etc. from scratch and those things, though being great accomplishments, still have huge pains they never stop talking about. Like USB drivers are notorious to implement because of the standard being so complex. If Nintendo made their OS entirely from scratch did they go through all of that.
I can see the appeal of microkernels in theory, but in practice? Here's what I gathered are the general problems:
* A microkernel won't stop some very bad things, like filesystem corruption. Some kinds of bugs are still a huge pain.
* Devices like hard disks and video cards have gotten smarter. They have lots of state, their own firmware, and can possibly DMA over system memory bypassing OS protections. This means that the effectiveness of splitting things into processes is likely limited when the video card can just take your entire system down anyway.
* The "system can tolerate a part of it crashing" is great, IF anyone bothers to take advantage of it, and IF things like hardware can be properly reinitialized. In practice your desktop probably doesn't account for that so your user session goes down. Might as well reboot.
* HURD specifically used to be limited to a 32 bit address space for filesystems which means it couldn't handle disks larger than 2GB (or some such size) for a long time.
* HURD processes can't trust each other. You can't have part A tell part B to drop their cache reliably to free up system memory. Every bit is separate from another, and can just ignore such a request.
* HURD specifically contained design decisions made to appeal to Stallman's pet peeves about sysadmin power. This is irrelevant today, but likely hampered adoption.
* Performance is bad.
* A monolithic kernel can always imitate a microkernel where convenient. The reverse doesn't hold true.
HURD introduced a bunch of difficulties and limitations. Linux could mostly ignore the costs of a microkernel and get things done well enough much faster. Where microkernels had some upside like usermode filesystems, Linux could just hack it in and only pay the price if you wanted that.
Is there any Benchmark?
Some are not bad, but some are awful. It's going to depend. A microkernel means more context switches, so in general it should be guaranteed to lose. By a lot if you get into the really pathological cases.
Windows moved to user mode display drivers (https://en.wikipedia.org/wiki/User-Mode_Driver_Framework) at least in part Microsoft was getting blamed for many blue screens caused by the extremely crappy video drivers of that era. Seems to have worked out for them.
[0] https://en.wikipedia.org/wiki/Nintendo_3DS_system_software
Elsewhere it is written that Zarquon shows up in Milliways™, the restaurant at the end of the universe where he'll utter the following phrase just before the end of the universe: Sorry I’m a bit late, had a terrible time... All sort of things cropping up at the last moment. Uh, how are we for time?
It is left up to you, dear reader, to interpret in what way the Coming of the Hurd (and Zarquon, naturally) will signify a massive change for the universe.