2 ms·
To me, this sounds kinda like the following: - XNU was born from a fork of the Mach microkernel - When the microkernel hype simmered down due to them being wa
by qalmakka 5y ago
To me, this sounds kinda like the following:
- XNU was born from a fork of the Mach microkernel
- When the microkernel hype simmered down due to them being way too slow for '90s machines, NeXT bolted on lots of chunks taken from BSD to speed up XNU
- After 20+ years, computers are fast enough to run true microkernels, so Apple is bringing them back again
So it's finally time for microkernels to shine again?
- pjmlp 5y agoOutside UNIX land they were always kind of shining, even if the light wasn't like footbal stadium. QNX, Symbian, Nintendo Switch, type 1 hypervisors,....
- pram 5y agoBSD was actually grafted into Mach early on, it wasn't something NeXT did.
- qalmakka 5y agoWasn't Mach a re-implementation of the original 4.2BSD completely based on IPC in place of syscalls? I distinctly recall some documents saying that XNU achieved much better performances than plain OSFMK thanks to NeXT reworking the BSD parts as components of the kernel instead of being binaries in user space, like in the case of plain Mach.
- pram 5y agoOSFMK is basically Mach 3 onward. That is the actual “microkernel” version. NeXT started with the versions before that, which still had memory management and a litany of other things living in the kernel and not user space. It was basically a gradual evolution of migrating things out. So to your point: all NeXT was essentially doing was turning Mach 3 back into how Mach 2 worked lol Thus XNU is a novel implementation of Mach 2: an up to date OSFMK kernel and all its IPC, plus all the BSD parts that used to live in it
- qalmakka 5y agoThanks for your explanation, now it's much clearer. It puzzles me why NeXT went through the extra effort of patching OSFMK instead of just doing like everybody else was doing and just fork a monolithic BSD kernel - probably they were already too invested in Mach to pull back?
- pram 5y agoYep, the NeXT Driver Kit relied upon Mach threads and messaging. Dumping it wasn't an option. Those all lived in user space, just like Apple DriverKit. It's the 90s all over again!