Slashdot Mirror


Mac OS Mach/BSD Kernel Inseparable

Anonymous Coward writes: "One of the more significant statements of the session [at Apple's WorldWide Developer's Conference] came when Magee told the audience that the Mach kernel and the BSD layer which lays upon it are inseparable. "Every application [that runs in Mac OS X] is a BSD application," said Magee. "You can't keep the system running without the Mach kernel and the BSD layer." This quashes the public rumour that Apple will be able to ship a "lite" version of Mac OS X which will contain only the smallest possible bit of BSD, or another that questions Apple reluctance to move its tools to Linux."

3 of 181 comments (clear)

  1. What GNU/Linux can learn from OS/X by mfterman · · Score: 5

    The thing that GNU/Linux can learn is a cleaned up and unified configuration system. To my mind the area where GNU/Linux really needs to clean things up is over in /etc (and maybe /dev and /var and a few of the other utilitarian filesystems). Create a unified, consistant and extendable XML setup for system, application and user configuration files.

    The main advantage here is that it allows for the creation of universal configuration tools that don't have to be recoded every time a new application comes out. Just plop in a new XML file (and possibly a DTD) and all of a sudden you've got a whole new application to manipulate easily. Not to mention developers have a nice little API for creating and managing configurations that allows system defaults and user overrides of said defaults transparently.

    Little things like file bundles should be included in this restructuring as well. There are some nice nifty little bits in Mac OS/X. Apple really cleaned up some of the nastier bits of Unix when they tossed out historical precedents. Not that I totally agree with all of their decisions, but a lot of Unix simply evolved rather than was desgined coherently. It's time those parts were cleaned up. A lot of the usability issues with Unix are going to be stalled until they are.

    Note that this does not mean babyfying Linux in any way. The thing with file bundles is you can open them up if you want granularity. Going to XML for all the configuration files in /etc (as well as pulling in configuration files from elsewhere and giving them structure) is there to make things consistant. If anything it will be easier for those writing administration scripts to work if said configuration files are standardized and organized. Quite the opposite.

    I'm using GNU/Linux here because some things are handled at the kernel level but a large chunk of it is in the GNU tools that are traditionally bundled with Linux. Both need some modification here to come up with a coherent and unified system.

    Migration is going to be a nightmare (remember glibc?) however once migration is done things can really start to move forward in terms of usability. The GNOME/KDE people would love to be able to set up pretty GUI-based configuration tools to manage everything, and the Perl/Python people would be in heaven because they could write real libraries to manipulate those things (not to mention all the people who use those libraries).

    Backwards compatibility is all fine and well, but we all know of how backwards compatibility can drag back progress in the computing world. This is one of those cases where things have reached the point that areas need to be scrapped and rebuilt in the name of future progress.

  2. Re:I don't get it by Read+The+Fine+Manual · · Score: 5
    I am speculating here, but my guess is that MacOS X's kernel is a descendant (at least in spirit) of the old NeXT OS (NeXTStep?) which was a Mach-2.5-based BSD system. When Apple bought NeXT, they probably decided to use NeXT's existing OS technology and talent to build their own new OS; I guess that is about the only reason why Darwin (the BSD OS core MacOS X uses) today is Mach-based.

    So why did NeXT use Mach in the first place? I'm speculating again. I guess they started out from OSF/1, and the OSF/1 developers had your goals (a) and (b) in mind.

    Remember: The Open Software Foundation (OSF, now a merged with the Open Group) was a group of vendors that wanted to develop an Unix platform independent from then-AT&T's UNIX. OSF/1 was to be their kernel. DEC used it to build DEC OSF/1 (now Compaq Tru64 UNIX or whatever it is called this week), and I guess that NeXT took it to build NeXTStep.

    The first version of OSF/1 (the one out of which vendors made successful products) was a BSD single server on top of Mach 2.5. At the time it was developed, it was not yet well established that Mach-based systems are slow. In fact, the Mach-2.5-based OSF/1 probably was not that slow: Mach 2.5 had considerably less bloat than Mach 3.0, and it was not really a microkernel-based system as it was closely integrated with a BSD kernel - that is, the microkernel and the BSD server shared the kernel address space (this is sometimes called ``colocation''; the OSF recently rediscovered this technique to speed up MkLinux on top of Mach 3.0). Only with the advent of Mach 3.0, the first ``real'' microkernel, people started to notice that there is something wrong with Mach's original approach.

    That said, it does not necessarily follow that microkernel-based system, or even Mach-based systems in particular, need to be slow. I do microkernel-related research myself, and my group has shown with L4Linux that a Unix single server can be implemented with very reasonable overhead on top of a ``real,'' second-generation microkernel - in this case, L4 (macrobenchmarks indicate that L4Linux has an overhead of about 2% to 3% when compared to the original monolithic Linux kernel).

    I do not really know MacOS X's architecture well enough to give a well-informed statement, but my guess is that they have enough talent to avoid the most stupid mistakes.

  3. Re:Remember... by John+Carmack · · Score: 5

    I specifically asked Steve Jobs about this last time I talked with him (several months ago), and he said that terminal won't be hidden away.

    Not that he isn't allowed to change his mind about things...

    I was pushing for including at least the command line compile/link tools with every install, but NeXT had an established history of having the development tools all on a separate CD, so it doesn't look like that is going to happen.

    John Carmack