Technical information

CHAPTER 5
System Software
84 What Is Different
3. Open Firmware loads the Mac OS ROM image file, based on defaults and
NV-RAM settings.
4. 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.
5. 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.
6. 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.
7. The Trampoline code transfers control to the
HardwareInit routine in the Mac
OS ROM Image.
8. The HardwareInit routine copies data structures to their correct places in
memory, and then calls the NanoKernel.
9. The NanoKernel fills in its data structures and then calls the 68K emulator.
10. The 68K emulator initializes itself, then transfers control to the startup
initialization code.
11. 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.
What Is Different 5
Even though ROM-in-RAM involves a fundamental change to the construction
of the product-specific part of the Mac OS, the changes in the code and its
execution are not that large. Many components are in changed locations, but
their functions with respect to boot time and run time have not greatly changed.
Many Mac OS components remain untouched.