Just to substantiate my previous email:

Just for trivia, I was running mkLinux (single-server Linux on top of
CMU Mach) in 1996.  :)


On 7/26/05, Orlando Andico <[EMAIL PROTECTED]> wrote:
> On 7/26/05, Eduardo Tongson <[EMAIL PROTECTED]> wrote:
> ..
> > It's actually Darwin (which is based on FreeBSD). But the device driver 
> > model is
> >  very different and Darwin doesn't use mach as a microkernel. Aqua or OSX
> > probably have run on x86 since day one because of Darwin.
> 
> No, Darwin (FreeBSD) *does* run on top of CMU Mach 4.4 just like the
> old Nextstep/Openstep on which it's based. I think they have migrated
> to a newer version of Mach, but it's still Mach.
> 
> Regardless, the point does not change: you can't use FreeBSD x86
> drivers, because FreeBSD is just a client on top of Mach. You have to
> provide Mach drivers for all the x86 hardware you want to support.

FROM http://arstechnica.com/reviews/2q00/macos-qna/macos-x-qa-3.html

Q: I have read that Mac OS X uses the BSD kernel, but I have also read
that it uses the Mach kernel. Which is it?

A: The Mach microkernel is the foundation of Mac OS X. (A brief
introduction to Mach is available at Stepwise.) Mach provides basic
hardware abstraction, memory allocation, process management (including
threads), and interprocess communication. But Mach by itself is not a
complete kernel. It does not provide device i/o, networking, file
system support, high-level APIs suitable for application development,
or many other services associated with a full-fledged operating system
kernel.

Mach is designed to host these missing services on top of its
platform-independent base functionality. The most common source for
these services has historically been BSD Unix. The BSD subsystem
implements the full set of APIs and services provided by BSD Unix, but
it leverages Mach to perform memory allocation, process management,
and so on. In an operating system with a real BSD kernel (e.g.
FreeBSD, NetBSD, OpenBSD), the BSD kernel does all this heavy lifting
itself.

When the BSD subsystem is implemented as a user-level process running
on top of Mach, Mach is said to be a "pure microkernel." If the BSD
subsystem crashes, Mach will not be affected. Many embedded systems
use Mach (or some other microkernel) in this fashion to ensure maximum
stability in even the most extreme situations. But pure microkernels
have several drawbacks, the biggest of which is the performance hit
incurred by the necessary (but computationally expensive) message
passing between Mach and the user-level subsystem process.

Most modern desktop and server operating systems (including Windows
2000) use what is often called a "modified microkernel" architecture.
Mac OS X does this as well. Instead of running as a user-level process
on top of Mach, Mac OS X's BSD subsystem runs in kernel mode in the
same address space as Mach itself. Most message passing between Mach
and BSD is eliminated in this situation; the BSD subsystem can
interact with Mach via normal function calls.
_________________________________________________
Philippine Linux Users' Group (PLUG) Mailing List
[email protected] (#PLUG @ irc.free.net.ph)
Read the Guidelines: http://linux.org.ph/lists
Searchable Archives: http://archives.free.net.ph

Reply via email to