Slashdot Mirror


Darwin/Mac OS X: The Fifth BSD

LiquidPC writes: "Lance M. Westerhoff from AppleLust has written a superb article on the history of BSD. The article talks about the first versions of BSD and continues with the stories of NetBSD, OpenBSD, FreeBSD, BSDi, and it finishes off with Darwin/MacOSX."

1 of 64 comments (clear)

  1. Darwin strength by aphor · · Score: 5, Informative

    Darwin is a Mach kernel, which is a microkernel, based OS. Microkernels ONLY manage/arbitrate the connections between the upper half of device drivers and the IO buffer interface that software can see. The FreeBSD kernel is wrapped around Mach, rather than attatching drivers directly. As a result, the kernel (managing all kinds of goofy stuff like tables of TCP/UDP sockets in use) is preemptable by drivers that need realtime processing (like a FireWire video stream). Also, since the FreeBSD kernel layer only sees a virtual device interface, devices can be attatched and detatched at will without crashing the kernel. You can unload the device driver, recompile it, reload it, and you have just upgraded a device driver without needing to reboot. If your hardware wouldn't fry in the process, you could rip the video card out of a runnig machine, and replace it. Applications may decide to die when they get the message they are not allowed to write to the framebuffer, but then again they could be written to wait patiently...

    The same sort of technique is used to "virtualise" filesystems. So, you have Mac, Mac-extended, UFS, FAT, EXT2FS partitions on the disk, the software is insulated from the differences. It's as if everything looks like it's wrapped in an NFS mount to the OS. This may not be totally accurate on a technical level, but you should understand that there is another layer of abstraction to the Mach kernel architecture..

    Theoretically, you could have heterogenous CPUs in a system. Mach would treat them just like another device with a driver and IO to route here and there. Not that this isn't possible in other OSes, but Mach makes it much easier to do the software side.

    --
    --- Nothing clever here: move along now...