- Mac OS nanokernel
Before Mac OS X,
PowerPC versions of theMac OS were based on ananokernel , or extremely simpleoperating system kernel. The initial revision of this software is an extremely simple, single tasking system which delegates most tasks to anemulator running theMotorola 68K version of the operating system. The second major revision supportsmultitasking ,multiprocessing , andmessage passing , and would be more properly called amicrokernel . Unlike the 68K-derived Mac OS kernel running within it, the PowerPC kernel exists in aprotected memory space and executesdevice driver s inuser mode . The nanokernel is completely different from theCopland OS microkernel, although they were created in succession with similar goals.System 7.1.2—Mac OS 8.5.1
The original
nanokernel , and the tightly integratedMac 68K emulator , were written by emulation consultant Gary Davidian. Its main purpose was to allow the existingMotorola 68K version of the operating system to run on new hardware. As such, the "normal" state of the system was to be running 68K code. The operating system did little until activated by aninterrupt , which would be quickly mapped to its 68K equivalent within the virtual machine.Other tasks may include switching back to PowerPC mode, if necessary, upon completion of the interrupt handler, and mapping the Macintosh
virtual memory system to the PowerPC hardware. However, as the software is little documented, these might instead be handled by the emulator running inuser mode .This nanokernel was stored on the Mac OS ROM chip integrated into
Old World ROM computers, or inside the Mac OS ROM file on disk on theNew World ROM computers, rather than being installed in the familiar sense.Interim development
Progress after 1994 demanded additional functionality. A forward-looking architecture was introduced for PCI card drivers in anticipation of
Copland OS , which supportedmemory protection . TheOpen Transport networking architecture introduced standardized PowerPC synchronization primitives. TheDayStar Digital Genesis MPMacintosh clone required kernel extensions to support multiprocessing. This evolution would later affect the overhaul to the nanokernel in Mac OS 8.6.Mac OS 8.6 and later
Mac OS 8.6's nanokernel was rewritten by René A. Vega to add
Multiprocessing Services 2.0 support. PowerMacInfo is an application that can display various info about this nanokernel.References
* [http://developer.apple.com/documentation/mac/PPCSoftware/PPCSoftware-12.html#HEADING12-0 Inside Macintosh: PowerPC System Software]
* [http://groups.google.ca/group/comp.sys.mac.programmer.help/browse_frm/thread/dcd2be8c07663aa8/e85a0fbc3072abb9?lnk=st&q=Gary+nanokernel&rnum=2&hl=en#e85a0fbc3072abb9]
* [http://groups.google.ca/group/comp.sys.mac.programmer.help/browse_frm/thread/b4ed22b933444c67/7aa9eef71c1f3ca1?lnk=st&q=Gary+nanokernel&rnum=1&hl=en#7aa9eef71c1f3ca1]
* [http://developer.apple.com/technotes/tn/tn1084.html TN1084: Running CFM-68K Code at Interrupt Time: Is Your Code at Risk?]
Wikimedia Foundation. 2010.