BootX (Apple)

BootX is a software-based bootloader designed and developed by Apple Inc. for use on the company's Macintosh computer range. BootX is used to prepare the computer for use, by loading all required device drivers and then starting-up Mac OS X by booting the kernel on all PowerPC Macintoshes running the Mac OS X 10.2 operating system or later versions.

Using BootROM, a read-only memory (ROM) computer chip containing Open Firmware, a graphical bootsplash is shown briefly on all compatible Macintosh computers as a grey Apple logo with a spinning cursor that appears during the startup sequence.

The program is freely available as part of the Darwin operating system under the open-source Apple Public Source License.

BootX was superseded by another nearly identical bootloader named  and an Extensible Firmware Interface ROM on the release of the Intel-based Mac.

History
Older Macintoshes dating from 1983 until 1998 utilized a basic bootloader; the bootloader was solely a ROM chip varying in sizes up to 4 megabytes (MB), which contained both the computer code to boot the computer and to run the Mac OS operating system. The ROM-resident portion of the Mac OS is the Macintosh Toolbox and the boot-ROM part of that ROM was retroactively named Old World ROM upon the release of the New World ROM Macs, starting with the first iMac. The ROM-resident Macintosh Toolbox differs greatly from the design of the modern Macintosh, which generally use a hard drive of large capacity to store the operating system. This bootloader was used in all Macintosh computers until mid-1998.

With the advent of the iMac series of Macintoshes, the firmware was updated. The ROM was reduced in size to 1 MB, called BootROM, and the remainder of the ROM was moved to the file  in the Mac OS System Folder, stored on the hard drive. This ROM used a full implementation of the Open Firmware standard (contained in BootROM) and was named the New World ROM.

In 2001, with the release of Mac OS X 10.0, the  file was replaced with the   bootloader file. In 2002, with the release of Mac OS X 10.2, the historical "Happy Mac" start-up picture was replaced with a grey Apple logo. By introducing the Intel Mac in 2006, BootROM was replaced by the near identical Extensible Firmware Interface ROM (although Apple still calls it BootROM) and the  file.

Features
To make the boot loader appealing to other operating system developers, Apple added features to allow flexibility in the booting process such as network boot using TFTP and load Mach-O and ELF formatted kernels. BootX can also boot from HFS, HFS+, UFS and ext2 formatted volumes. The boot loader can be manipulated at startup by holding down various key combinations to alter the booting process. Such functions include Verbose Mode, achieved by holding down the Command and V key at startup, which replaces the default Apple logo with text-based information on the boot process and Single User Mode, achieved by holding down the Command and S, which, depending on the operating system, may boot into a more basic command-line or text-based version of the operating system, to facilitate maintenance and recovery action. The ROM can also be set to require a password to access these technical functions using the OpenFirmware interface.

Boot process
In PowerPC-based Macintoshes, the boot process starts with the activation of BootROM, the basic Macintosh ROM, which performs a Power On Self Test to test hardware essential to startup. On the passing of this test, the startup chime is played and control of the computer is passed to OpenFirmware. OpenFirmware initializes the Random Access Memory, Memory Management Unit and hardware necessary for the ROM's operation. The OpenFirmware then checks settings, stored in NVRAM, and builds a list of all devices on a device tree by gathering their stored FCode information.

On the completion of this task, BootX takes over the startup process configuring the keyboard and display, claiming and reserving memory for various purposes and checking to see if various key combinations are being pressed. After this process has been completed BootX displays the grey Apple logo, spins the spinning wait cursor, and proceeds to load the kernel and some kernel extensions and start the kernel.