3 ms·
Xnu is based on Mach 3, only the older NeXT/OpenStep kernels were based on a mix of Mach 2.0 and 2.5. MacOS uses a BSD personality colocated in the same addres
by johndoe0815 3y ago
Xnu is based on Mach 3, only the older NeXT/OpenStep kernels were based on a mix of Mach 2.0 and 2.5.
MacOS uses a BSD personality colocated in the same address space as the Mach part, so it is no pure microkernel system.
You can check the last (OpenStep-based) Rhapsody kernel sources from Darwin 0.3 at
https://github.com/evolver56k/Darwin-0.3/tree/master/kernel-7/mach https://github.com/evolver56k/Darwin-0.3/tree/master/kernel-...
and the first archived version of the MacOS X xnu kernel at
https://github.com/apple/darwin-xnu/tree/xnu-123.5/osfmk https://github.com/apple/darwin-xnu/tree/xnu-123.5/osfmk
- p_l 3y agoSpecifically XNU is continuation of OSFMK, which was mix of 2.0 and 3.0 stuff, with built-in bsd server instead of separate process, and which was the basis for OSF/1 (and thus also Tru64, and quite possibly common with WPOS - IBM at one point was involved partially in the OSF consortium)
- pjmlp 3y agoCurrently Apple has been in the process of fixing this, by forbinding any kind of third party code as kernel extensions. Their long term roadmap being every time a new framework for userspace drivers gets introduced, the developer community is given one year transition period to migrate their kernel extensions to userspace, before that capability is removed from the following macOS version. End goal being macOS will provide a microkernel like experience for everyone outside Apple's HQ.
- pgeorgi 3y agoIt also frees them to significantly modify the kernel or even replace it outright without breaking anybody, too.