uncholowapo wrote:I was reading somewhere (forgot the page) that Mac OS X has a UNIX base. Is that true?
Yes - very true.
MacOS X is based on BSD UNIX. Roughly speaking, this is sort of the "Father" of Linux. (I don't want to take this analogy too far, though
)
There's a good history about BSD here:
http://en.wikipedia.org/wiki/BsdMacOS X is not based on standard BSD, though - it's an open source fork called Darwin. The main difference is in the kernel. Unlike the kernels found in BSD & Linux, MacOS X uses a modified Mach kernel.
Simply put, most UNIX kernels include some low, low, low level "modules" to improve performance. This is kinda bad because if the module crashes, so does your kernel. But - especially in the early days of PCs - this was necessary to make them perform efficiently. A Mach kernel is basically nothing but kernel - it can launch, prioritize and kill threads. You implement your modules on top of this in normal "user" space - not in "kernel" space. If a module dies, the kernel can restart it safely.
(Well - that's the theory anyway.
)
Again - more about Mach here:
http://en.wikipedia.org/wiki/Mach_kernelSince UNIX doesn't particularly care about graphics, Apple runs its own graphic system on top of Darwin called "Quartz". This is a replacement for the X Windows that Linux systems generally run, and was originally based on Visual Postscript. (Yes - the same thing that runs LaserPrinters). It's programmable via a native GUI library called "Cocoa" or a partial backwards compatible Mac OS 9 GUI library called "Carbon".
Interestingly enough - since it's BSD based, you can run X Windows on a Mac as well. It's a quite decent implentation, too - it runs simultaneously with Quartz, and a few applications like The Gimp & OpenOffice use X Windows for their display on the Mac.
So - in conclusion - Mac OS X is a BSD UNIX system (
Darwin), using a Mach kernel (
XNU) with a custom graphics layer called
Quartz that offers X Windows support.
Sound good?
Cheers,
Paul