6 ms·
They pulled some of the low-level I/O drivers into the kernel because the IPC overhead was too great. They call it a "hybrid" kernel rather than a pure microker
by berti 8y ago
They pulled some of the low-level I/O drivers into the kernel because the IPC overhead was too great. They call it a "hybrid" kernel rather than a pure microkernel.
- glhaynes 8y agoTo my understanding (please correct if wrong!) it's not only drivers, it's most of a BSD-style kernel that XNU runs in the same memory space as Mach. I'm not sure what difference that makes in practice versus the more conventional BSD kernels — I think a lot of IPC happens through Mach ports? … and I think Mach shows in the realms of signal delivery, what resources are waited on with `select`, etc.
- berti 8y agoYep, my understanding aligns with yours. Mach ports are the IPC mechanism for anything outside kernel address space.
- AlphaSite 8y agoFrom what I remember Mach ports aren’t even used much anymore.
- berti 8y agoI was thinking kernel to/from outside kernel IPC, sorry for the ambiguity. Some documentation can be found at https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/Mach/Mach.html#//apple_ref/doc/uid/TP30000905-CH209-TPXREF104 https://developer.apple.com/library/archive/documentation/Da...