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

