A little info for the debate of what's BSD in Mac OS X

Hey drop us a line about the show. Feel free to ask questions, provide feedback and criticism, or just ramble on about anything your little heart desires.

Moderators: snarkout, Patrick, dann

Post Reply
Tsuroerusu
Posts: 2551
Joined: Mon Sep 05, 2005 8:51 am
Location: Silkeborg, Denmark
Contact:

A little info for the debate of what's BSD in Mac OS X

Post by Tsuroerusu » Mon Nov 21, 2005 2:10 pm

I was just doing a little reading at Wikipedia and Wikibooks and I ran into this info about the Mach-implementation in Mac OS X:

Code: Select all

    * Name: The kernel is called xnu. It consists of a modified Mach microkernel and a "server" which is a port of the BSD kernel.
    * Processor architecture: Because NextStep used both x86 and PowerPC hardware in the past, the Darwin kernel contains code to support both processor architectures. Mac OS X runs on Macintosh hardware, which is PowerPC hardware, but a Darwin/x86 port is available.
    * Dualithic: The kernel uses a dualithic design. The Mach microkernel contains device drivers, multitasking, and interprocess communication. Other kernel services, such as networking, filesystems, and traditional Unix system calls, must be provided by "servers".
          o Darwin uses one server, a port of the BSD kernel. Thus networking is similar to other *BSD systems and the UFS filesystem from BSD is also available. This is in contrast to GNU Hurd, which uses a difficult design consisting of many servers.
          o NextStep probably introduced the dualithic design because Mach microkernel was more portable than BSD, or provided better multitasking benefits than BSD. They could port Mach to x86 and PowerPC. Since then, NetBSD has made *BSD very portable and created a monolithic NetBSD/macppc port. FreeBSD and OpenBSD are taking the NetBSD code for their Macintosh hardware ports.
          o Apple (before it bought NextStep) used a similar strategy to port Linux, an x86 operating system, to PowerPC. The mkLinux (microkernel Linux) project started by porting Linux/x86 to use Mach. Then Mach was ported to Macintosh hardware. After Linux 2.0 appeared, Linux was more portable and the monolithic Linux/powerpc port displaced mkLinux. Apple bought NextStep and switched to using Darwin.
          o The microkernel and server are tightly integrated. The microkernel expects the Darwin BSD server, so using another server, such as the mkLinux server, would be difficult.
    * Device drivers: Because they are handled by Mach, device drivers are much different than in NetBSD/macppc. With Darwin, Apple made many replacements to the NextStep drivers.
          o Darwin/powerpc only runs on Apple "New World" hardware. Older Macintosh hardware does not work, though it might have worked with NextStep.
          o Darwin/x86 has broader hardware support, perhaps because there is not yet any Macintosh hardware for x86.
    * HFS+ filesystem: Darwin also contains an implementation of the HFS+ filesystem from classic Mac OS. This, and not UFS, is the preferred filesystem for Darwin.
Image
Image

"Hatred does not cease by hatred, but only by love. This is the eternal rule."
- Siddhattha Gotama (Buddha), founder of Buddhism.

Post Reply