Mac OS nanokernel

The Mac OS nanokernel is an operating system kernel which served as the foundation of PowerPC-based system software from versions 7.1.2 through 9.2.2 of classic Mac OS, predating Mac OS X.
The initial revision of this software is a single tasking system which delegates most tasks to an emulator running the 68k version of the operating system. The second major revision supports multitasking, multiprocessing, and , and would be more properly called a microkernel. Unlike the 68K-derived Mac OS kernel running within it, the PowerPC kernel exists in a protected memory space and executes device drivers in .
The nanokernel is very different from the Copland OS microkernel, although they were created in succession with similar goals.
==Development history==
===System 7.1.2 to Mac OS 8.5.1===
The original nanokernel, and the tightly integrated Mac 68k emulator, were written by emulation consultant Gary Davidian. Its main purpose is to allow the existing version of the operating system, which was designed for Motorola 68k processors, to run on new PowerPC hardware. As such, the normal state of the system is to be running 68K code. The operating system does little until activated by an interrupt, which is 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 in .
This nanokernel is stored on the Mac OS ROM chip integrated into Old World ROM computers, or inside the Mac OS ROM file on disk on the New 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 the Copland microkernel called NuKernel, which supports memory protection. The Open Transport networking architecture introduced standardized PowerPC synchronization primitives. The DayStar Digital Genesis MP Macintosh clone requires kernel extensions to support multiprocessing. This evolution would later affect the overhaul to the nanokernel in Mac OS 8.6.
===Mac OS 8.6 to 9.2.2===
The nanokernel in Mac OS 8.6 was rewritten by René A. Vega to add Multiprocessing Services 2.0 support. PowerMacInfo, distributed in the Multiprocessing SDK, is an application that displays statistics about the nanokernel's operation.
===Mac OS X and macOS===
The development of Mac OS 9 and the classic nanokernel was retired by Steve Jobs with a mock funeral at the 2002 Worldwide Developers Conference. Mac OS X (and its derivatives) were developed from the Mach kernel that was adapted by NeXT and acquired by Apple.What is Mach?, Indiana University Knowledge Base. Archived 2018-01-18.
==References==
==External links==
*Explanation of the Mac OS nanokernel by René A. Vega at comp.sys.mac.programmer.help (2001-06-01)
**Supervisor mode by Don Krieger (2001-01-25)
**Question from a non-programmer by Lisa Gardner (2001-05-27)
*Using QEMU to explore the Mac OS Nanokernel by Elliot Nunn at Emaculation (2016-10-23)
*Reverse-engineered Mac OS NanoKernel by Elliot Nunn at GitHub (2018-12-02)
* at Wikipedia
Category:Classic Mac OS
Category:Kernels
Category:1994 introductions