Chapter 1. Introduction

Table of Contents

First things first
What is Darwin?
What license is Darwin under?
What is OpenDarwin?
Who would want to use OpenDarwin?
Can I run Mac OS X programs on Darwin?
Can I take components of Darwin, modify them and use them in Mac OS X?
What's with that cute little mascot guy?
Getting and Installing OpenDarwin
What is the latest version of OpenDarwin?
Where can I get the installer from?
The ISO image checksum doesn't match. Is my file corrupt?
Can I use boot floppies instead of a CD?
Compatibility issues
What hardware is supported?
Does Darwin support multiple processors?
Does Darwin support wireless networking?
Why does Darwin use Mach-O instead of ELF as its binary format?

First things first

What is Darwin?

Darwin is an advanced BSD UNIX operating system for PowerPC and x86 compatible architectures, currently owned and developed by Apple Computer, Inc. It forms the core of Apple's flagship Mac OS X operating system, which has been catapulted from its release in 2001 to being the most widely distributed UNIX-based operating system.

Building on FreeBSD 5 and Mach 3.0, Darwin provides many advanced features, such as pre-emptive cooperative multitasking, symmetric multiprocessing (SMP), real-time threads, 64-bit kernel services, loadable file systems (including HFS+ and UFS), and more. Darwin also has a powerful, object-oriented device driver subsystem called I/O Kit, widely regarded as being one of the best available for any platform.

To learn more about Darwin, it is highly recommended that you visit Apple Developer Connection's Darwin site. You may also find the following resources interesting:

What license is Darwin under?

Most of Darwin (the components developed by Apple) is licensed under the OSI-approved Apple Public Source License, which as of version 2.0 conforms to the Free Software Foundation's definition of a Free Software License.

Some components included in Darwin are covered by the GNU GPL. Both the Apple Darwin and OpenDarwin releases include some binary-only drivers, which are covered by a different license. A few components may be covered by other licenses, see /Library/Acknowledgements.rtf for details.

Components developed by The OpenDarwin Project are generally released under the BSD license.

What is OpenDarwin?

The OpenDarwin Project is an offshoot from Apple's Darwin initiative. It was created as an independent environment, free of ties to Apple proper, which would allow innovation by the community to take place in a more effective manner.

Firstly, the OpenDarwin Project provides infrastructure (web, CVS, mailing lists) for a variety of Darwin-related subprojects, such as DarwinPorts, Darwine and XPostFacto. This provides an important hub for the community, bringing people with valuable expertise together and enabling collaboration on many levels.

Secondly, the OpenDarwin Project makes periodic OpenDarwin releases. OpenDarwin is an operating system based on Apple's Darwin, but with certain "value added" features. For examle, there are various commands, libraries and drivers that are not included in Apple's Darwin release but that we feel are extremely useful when running Darwin. These are often things that Apple has no interest in expending resources on. For example, there are some additional drivers in OpenDarwin for hardware that Apple no longer wishes to officially support (such as older Macs) or has no interest in supporting (such as i386). There are also utilities that provide alternative access to functionality that is normally configured using the GUI in Mac OS X.

You can see the changes made from the official Apple Darwin releases to the corresponding OpenDarwin release on this page.

Who would want to use OpenDarwin?

OpenDarwin in its current state is not a fully-featured operating system that is recommended to be deployed on production machines. While it could be used on a web server, there are many other operating systems that are far more mature, better supported and so on. That's not to say that it's not possible to use OpenDarwin as a web server -- the releases even include Apache httpd by default -- it's just that you might find it more effort to set up and configure it than other operating systems.

While it is possible to use OpenDarwin as a desktop machine, again you may find it's not the best choice. However, OpenDarwin includes X11 and a wide range of software (including fully-fledged desktop environments like KDE and GNOME) can be installed using DarwinPorts. Just don't expect a trouble-free, high-performance multimedia machine.

Hardware support is patchy at best, especially on x86. As Apple does not produce Mac OS X for x86 there has not been such a big investment in producing the drivers for all the diverse hardware configurations out there in the x86 world as there has been on ensuring that everything runs well on recent PowerPC-based Mac systems.

So, OpenDarwin's target audience at the moment is definitely the developer/power user crowd. There are those coming from OS X looking to learn more about the core of their operating system and find out why things work as they do, look at source to help them better understand what's going on under the hood so they can improve their products, and so on. There are also those coming from other UNIX-like operating systems that are interested in the advanced features and technologies Darwin offers.

In the long-term, we'd love to see OpenDarwin up to par with the rest of the BSD family, so that a person of sound mind would be perfectly able to choose it as a web server or desktop machine. We believe that the technology it's based on is very sound, and is constantly undergoing improvements and developments at the hands of Apple.

There's also the probability that useful enhancements to OpenDarwin will be picked up by Apple and taken upstream into their Darwin distrubution, making their way into an official release of Mac OS X.

Can I run Mac OS X programs on Darwin?

Probably not.

Many parts of OS X are not open source and are not available as part of Darwin. Any applications that depend on these parts - including but not limited to Cocoa, Carbon, Quartz and Java - will not run on Darwin. However, command-line programs and those which use X11 for their user interface should run without modification on Darwin. Having said that, if the binary was compiled on Mac OS X it's almost undoubtedly PowerPC-only and you won't be able to run it on Darwin for x86.

Can I take components of Darwin, modify them and use them in Mac OS X?

Maybe.

If you find the component from the release corresponding to the version of Mac OS X that you are using, then you should be OK. Be aware however that there are certain components where not all the source code is released via Darwin (for example CoreFoundation) or none is released at all (for example certain drivers). This is often because Apple does not have the rights to release the code or because the code contains Apple's trade secrets.

A general rule of thumb is to be careful. You can easily end up with an unbootable system. If you're not sure about something, feel free to ask on the mailing list.

What's with that cute little mascot guy?

That's Hexley, the creation of Jon Hooper. He's the offical OpenDarwin mascot and the unofficial mascot for Darwin in general. Find out more at http://www.hexley.com.