I am sort of looking at a microkernel design - inside the kernel there are only 2 drivers: tmpfs (implemented on top of NSDictionary and NSData) and tar (on top of NSArray and NSData) to make initramfs (which is a simple tar archive of all pre-filesystem kexts and services) work, and everything else must be loaded from kexts that is written in Objective-C. And, the kexts are minimal too - character mode video driver and hardware abstraction layer (that is, it enumerates all hardware in [[OSKernel extensionWithName:OSHALExtensionName] PCIDevices] and all other drivers, even including root filesystem drivers as FUSE, run in user mode.)
Scheduler is built to support libdispatch and threads are actually dispatch queues. IPC is built with Distributed Objects in mind.
Graham. Sent from my bed
The search term you're looking for is DriverKit.
|