NewWorld Boot Process
Here is a high-level view of the execution path take when a NewWorld-based computer boots.
-
The POST code runs (preliminary diagnostics, boot beep, initialization, and setup), with possible intervention in the mini nub, a small debugging tool.
-
Open Firmware initializes and begins execution, including building the device tree and the interrupt trees.
-
Open Firmware loads the Mac OS ROM image file, based on defaults and NV-RAM settings.
-
Open Firmware executes the Forth script in the bootinfo file, which contains instructions to read both the Trampoline code and the compressed Mac OS ROM Image and place them into a temporary place in memory.
-
The Forth script transfers control to the Trampoline code, which functions as the transition between Open Firmware and the beginning of the Mac OS execution.
-
The Trampoline code decompresses the Mac OS ROM Image, gathers information about the system from Open Firmware, creates data structures based on this information, terminates Open Firmware, and rearranges the contents of memory to an interim location in physical memory space.
-
The Trampoline code transfers control to the
HardwareInit
routine in the Mac OS ROM Image.
-
The
HardwareInit
routine copies data structures to their correct places in memory, and then calls the NanoKernel.
-
The NanoKernel fills in its data structures and then calls the 68K emulator.
-
The 68K emulator initializes itself, then transfers control to the startup initialization code.
-
The startup initialization code begins execution, initializing data structures and managers, and booting the Mac OS.
All functions found in the old Mac OS ROM are present in the NewWorld boot process, but occur at different times and places. To accomplish this, the code in the Mac OS ROM Image and POST is simplified, while the Trampoline code addresses the new functionality.
\xA9 1998 Apple Computer, Inc. (Last Updated 5 Jan 99)