[SDBUG] Mac OSX - Hopefully once and for all.
Jeremiah Gowdy
jeremiah at freedomvoice.com
Sun Jan 18 15:29:39 PST 2004
Mac OSX runs on the Mach microkernel, with a BSD API compatibility layer.
That means that the LOWEST level of "kernel" code is the Mach microkernel.
But since this doesn't do very much except the basics to run the hardware
and abstract it into a common interface, it has to be tied to some sort of
API layer so programs can actually have services.
It's much like the difference between the BIOS and DOS. (This analogy isn't
a perfect fit, but go with it.) If you've ever done any DOS programming,
you know that the BIOS provides simple access to the video, disk, keyboard,
timer, and other basic services. But if you want to write an application
that actually does something more complicated than spitting words onto the
screen, you need to access the functionality that DOS loads on top of that
system. Much in the same way, if you were to try to "run" something on the
Mach microkernel alone, you would find yourself easily able to page memory
and schedule processes, but less able to create directories or even mount a
disk/filesystem/partition or many other higher level functions (See
/usr/include/sys/syscall.h), without writing all the code into your
application. The BSD API layer on top of the Mach microkernel in OSX allows
applications to function in this way.
So while everyone on earth seems to enjoy jumping into a conversation and
shouting "It's Mach not BSD" (particularly pro-Linux types), and although
Mach can't be said to actually have BSD code IN it, you will find that using
Mach without something like a BSD or Linux layer running underneath it is
relatively useless *from an application programmer's perspective.* Do not
post telling me Mach isn't useless after reading that last sentence, that's
not what I said.
Here's what Apple has to say about it:
(http://developer.apple.com/darwin/projects/darwin/faq.html)
"Darwin is a version of the BSD UNIX operating system"
Darwin and BSD
Q. Why is Darwin based on BSD UNIX?
A. There are several reasons for this. The first one is historical. Mac OS X
draws a lot of its code base from a system called OPENSTEP, created by NeXT
Software, which Apple bought in 1997. OPENSTEP and its predecessor,
NEXTSTEP, were based on 4.3 BSD. BSD has always had a rich academic
developer community behind it, and while much of the original BSD UNIX was
not free, its source code was available to anyone who obtained a license for
it. The wide development community that arose to support BSD contributed to
many of the ideas that drive today's open source community. That community
also facilitated a great deal of research, including work to put BSD on Mach
at Carnegie Mellon University-code that eventually found its way to NeXT and
now to Apple.
Second, BSD is widely respected as clean, robust, and maintainable code.
There remains a strong developer community that knows the code base very
well and continues the work started at UC Berkeley. In addition, the BSD
license is very open, which has made it easy for us to leverage its
compelling core technology to enhance the Mac OS.
Best of all, as a result of making this choice, Apple is now an active
participant in the BSD community. This allows us to make sure that the
capabilities important to Mac users are added to BSD. Being part of the BSD
community also gives us access to excellent peer review and keeps us on a
path to adopt and contribute to open standards, the benefits of which are
well known to our developers. The BSD community has been extremely
supportive of Apple since we first approached NetBSD, FreeBSD, and others
about doing a better job of sharing code. That happened even before we
announced Darwin. Now we're pleased to have become an even more active
participant in the community.
Q. Where does Darwin fit into the BSD family?
A. The purpose of Darwin is to provide the core system software for Mac OS
X. It is not designed to be an alternative to other excellent BSD options
such as FreeBSD, NetBSD, and OpenBSD. Darwin is simply BSD tweaked in ways
we think will help Apple deliver the next great version of the Mac OS. We
should note, however, that apart from a few architectural differences (such
as our use of the Mach kernel), we try to keep Darwin as compatible as
possible with FreeBSD (our BSD reference platform).
----- Original Message -----
From: "Peter Leftwich" <Hostmaster at Video2Video.Com>
To: "SDBUG" <SDBug at SDBug.Org>
Sent: Saturday, January 17, 2004 10:10 PM
Subject: [SDBUG] Mac OSX
> As I somewhat understand it, the kernel is *unix*-inspired but is still
> Apple. Userland is the part that is considered BSD. Is this correct?
>
> Why are there so many levels complicating this (OSX, 10, 10.1, 10.2...
> Mach, command-line, apple hardware... Jaguar??) Is anything in OSX based
> on or inspired by XFree86 or any of the windows managers... just curious?
>
> --
> Peter Leftwich
> President & Founder, Video2Video Services
> Box 13692, La Jolla, CA, 92039 USA
> http://Www.Video2Video.Com
> _______________________________________________
> San Diego's BSD Users Group
> http://www.sdbug.org
> SDBUG at sdbug.org
> http://www.sdbug.org/mailman/listinfo/sdbug
More information about the SDBUG
mailing list
More information about M5 Hosting