I'll just note that Darwin is essentially dead at this point. Apple
essentially killed it a while back, around the time they announced the
move to Intel (Darwin was always more active on x86 than it was on PPC).
BSD is both a kernel and some userspace tools (with some GNU tools,
mostly the gcc toolchain also necessary), it's much more integrated than
say Linux, which is an amalgam of a bunch of not necessarily related
projects (Almost none of which are from the BSD project). FreeBSD is one
of several descendents of 386BSD, the original free BSD. When the 386BSD
project foundered, two splinter project became OS's in ther own right,
FreeBSD and NetBSD, all current BSD OS's are descended from one of the
two(OS X uses code from both, although it's heavily weighted toward
FreeBSD).
Mach isn't a kernel, it's a micro-kernel, and only handles the lowest
level interaction with hardware, Part of the FreeBSD kernel lives on top
of it, as well as some other stuff which would be considered part of the
kernel on other systems (IOKit, some parts of Quartz). You are correct
in that the BSD userspace is mostly seperate from the GUI userspace on
OS X, although there is some interaction, primarily for network services
(OS X's firewall is a straight ipfw implementation for example)
-Adam
Godfrey DiGiorgi wrote:
Close but no cigar, gw.
Berkeley System Design (BSD) UNIX components are a mixture of
presentation and service layers above the OS kernel. Most Linux systems
run an ELF kernel, with derivatives of FreeBSD, the Open Source
versions of BSD components, fitted on top. Mac OS X uses an Mach kernel
with FreeBSD fitted on top.
If you want just a command-line computing environment, you can get this
from Apple for free by subscribing to the Open Source Darwin project.
Darwin is the Mac OS X Mach kernel plus FreeBSD components.. It has
been ported to many different processors.
Of course, Mac OS X includes a huge number of Apple exclusive
additional components that live above the level of the Mach kernel and
alongside BSD ... such as the Quartz graphics libraries, user interface
libraries, system management components, applications, development
tools, OOP tools, scripting services, IOKit drivers, etc etc. Very few
of these things are dependent upon FreeBSD .. they use underlying
libraries that are mostly separate from BSD components, and more
efficient.
BTW: There's no such thing as MAC, unless you're talking about the
manufacturer of hand tools, MAC Tools http://mactools.com/ or Media
Access Control (MAC) address such as in your ethernet/wireless card.
"Mac" is a common shorthand but ambiguous as to whether you are
referring to the early hardware systems ("Macintosh") or operating
system ("Mac OS", "Mac OS X"). It is best to talk of "Mac OS" or "Mac
OS X" when referring to Apple's operating system in generic terms.
Godfrey
On Apr 6, 2006, at 9:07 AM, graywolf wrote:
Besides that MAC OSX is a propietory version of BSD. There are
basically two free Unix type OS in the world BSD and Linux (you can
not make a propiatory version of Linux due to the GNU Public
License). Almost all Unix type software can be run on any of those if
you can get the source code and compile it for your system. Windows
is another whole ball of wax. So there are two major OS camps in the
world today Unix and Windows. IBM has embraced Linux for all its
major computers above the PC level (they do support it at the PC
level). MAC has embraced BSD. However about 90% of the PC's in the
world are running Windows because it is cheap (for OEM's, not
consumers).