Archive of UserLand's first discussion group, started October 5, 1998.

Building on Linux

Author:Ken MacLeod
Posted:2/16/2000; 12:25:09 PM
Topic:scriptingNews outline for 2/16/00
Msg #:15047 (In response to 15040)
Prev/Next:15046 / 15048

It depends on what you call "Linux". What most people call Linux is the Linux kernel written by Linus Torvalds (leading a small army) with a massive amount of other free software added on top. BSD (the base of Darwin) uses the same massive amount of other free software. In effect, Linux and BSD are 99.5% the same thing.

What differs between the two is primarily the kernel. There are two major reasons for Apple to use the Mach kernel instead of the Linux kernel.

The Mach kernel is more modular than the Linux kernel

It is much easier in Mach to tune various aspects of the kernel to fit how it is used. In many ways, Mach is closer to the BeOS kernel than it is to the Linux kernel. The Mach kernel, like the BeOS kernel, provides a much more flexible foundation to build a great user interface on top of, a UI that includes real-time graphics and audio, near immediate user response, etc. Ask a BeOS person how well BeOS applications would run on a Linux kernel. Sure, it's possible, but would you want to?

Darwin has a device driver model designed for modern desktop computers

The Linux kernel uses the same device driver model that has been in use since Unix's inception. Traditional Unix device drivers were never meant to be modular or flexible; they don't "stack" on top of each other well so that a SCSI or FireWire driver can be easily used by a hard disk driver which can be easily used by a file system driver. Support for power management, hot-swapping, and the live-swapping features of FireWire and USB are very immature in Linux because they are difficult to support in Unix's traditional driver model. The Darwin device driver model, by comparision, handles all of this with ease, and is even simpler to write new drivers for. Darwin's drivers depend on features found in Mach but not yet available in Linux.

There are responses to this message:

This page was archived on 6/13/2001; 4:54:19 PM.

© Copyright 1998-2001 UserLand Software, Inc.