I am very happy about the direction in which the Mac OS X GUI is going, although sadly many Mac users aren’t interested in (or don’t know about) the “lower levels” of the Macintosh Operating System. Have you ever wondered why the Terminal greets you with the words “Welcome to Darwin”? Why do BSD and Mac OS share certain bits of code? Why does Wikipedia describe Mac OS X as a graphical operating system? Today we’re going to take a look at the underlying open source technology which powers your fancy Leopard OS – the hidden core set of components, named Darwin.
Let’s take a trip back in time…
Every Operating System has a core, called a “kernel”. Mac OS X uses a hybrid kernel – the Mach microkernel developed until about 15 years ago at Carnegie Mellon University. The Berkeley Software Distribution project, a Unix derivative from which FreeBSD and similar distributions were born, used this kernel for its BSD version of UNIX. During the development of this kernel and the growth of the BSD project, a certain Steve Jobs founded the NeXT company. Apple bought this company in 1996, effectively bringing Steve Jobs back to Apple as interim CEO (most of you probably know he left Apple in 1985). NeXtStep was a very important “step” towards Mac OS X. After a few failed attempts at using various projects, like Taligent or Copland to base their new OS project on, Apple decided to simply buy NeXT and use OpenStep, a programmer-friendly OS by NeXT, as its foundation for further development.
OpenStep used the Mach kernel. The developers at Apple then took advantage of the permissive BSD licence (which is not as aggressive towards commercial use as the GPL, for instance) to build the first Darwin with BSD code, along with other Free Software projects’ code. Thus, Darwin was born. That is why the Darwin kernel is based on both FreeBSD and Mach 3.0 technologies.
Yes, your shiny Mac OS X and the ultra-geeky NetBSD have a lot in common. Like most UNIX systems, Darwin includes the standard set of UNIX tools, along with Apache, sendmail and similar services.
A new version of Mac OS X is prepared by putting together the different pieces of Darwin and Apple’s Quartz graphics system. Of course, the developers at Apple include their own applications and modifications, making Darwin a user-friendly environment. Your iPhone runs Darwin, too.
So now you know! You may think you don’t need this knowledge, but maybe sometime in the future you will see some potential in the UNIX base. That is why you can run X natively, for instance.
Go read the Mac Terminal Introduction by Alex and learn more!
Again, “Welcome to Darwin”!
P.S. I would like to hear comments from developers. I did my homework, but if you have more information please let us know about it!