5 ms·
Wasn'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
by qalmakka 5y ago
Wasn'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!