Unix

Mac OS X Boot Process

What is Mac OS X Boot Process:

The Mac OS X boot process involves several stages, in which the operating system performs various tasks to prepare the system for use.

  1. When the Mac is powered on, the firmware (a low-level software that controls the hardware) performs a power-on self-test (POST) to check the hardware components.
  2. The firmware loads the bootloader, which is responsible for loading the operating system kernel and transferring control to it. In Mac OS X, the bootloader is called the boot.efi file.
  3. The operating system kernel, which is the core of the operating system, initializes the system and starts the system services.
  4. The system services, such as the device drivers, are loaded and initialized.
  5. The operating system loads the user profile and starts the user interface, such as the desktop or the login screen.
  6. The user can log in and start using the system.

This is a general overview of the Mac OS X boot process. The exact sequence of events may vary depending on the specific version of Mac OS X and the hardware configuration of the system.

Boot ROM Firmware. Part of Hardware system
BootROM firmware is activated
POST Power-On Self Test
initializes some hardware interfaces and verifies that sufficient memory is available and in a good state.
EFI Extensible Firmware Interface
EFI does basic hardware initialization and selects which operating system to use.
BOOTX boot.efi boot loader
load the kernel environment
Rooting/Kernel The init routine of the kernel is executed
boot loader starts the kernel’s initialization procedure
Various Mach/BSD data structures are initialized by the kernel.
The I/O Kit is initialized.
The kernel starts /sbin/mach_init
Run Level mach_init starts /sbin/init
init determines the runlevel, and runs /etc/rc.boot, which sets up the machine enough to run single-user.
rc.boot figures out the type of boot (Multi-User, Safe, CD-ROM, Network etc.)



    • Power is turned on.
    • Open Firmware code is executed.
    • Hardware information is collected and hardware is initialized.
    • Something (usually the OS, but also things like the Apple Hardware Test, etc.) is selected to boot. The user may be prompted to select what to boot.
    • Control passes to /System/Library/CoreServices/BootX, the boot loader. BootX loads the kernel and also draws the OS badges, if any.
    • BootX tries to load a previously cached list of device drivers (created/updated by /usr/sbin/kextcache). Such a cache is of the type mkext and contains the info dictionaries and binary files for multiple kernel extensions. Note that if the mkext cache is corrupt or missing, BootX would look in /System/Library/Extensions for extensions that are needed in the current scenario (as determined by the value of the OSBundleRequired property in the Info.plist file of the extension’s bundle.
    • The init routine of the kernel is executed. The root device of the booting system is determined. At this point, Open Firmware is not accessible any more.
    • Various Mach/BSD data structures are initialized by the kernel.
    • The I/O Kit is initialized.
    • The kernel starts /sbin/mach_init, the Mach service naming (bootstrap) daemon. mach_init maintains mappings between service names and the Mach ports that provide access to those services.

From here on, the startup becomes user-level:

    • mach_init starts /sbin/init, the traditional BSD init process. init determines the runlevel, and runs /etc/rc.boot, which sets up the machine enough to run single-user.
    • rc.boot figures out the type of boot (Multi-User, Safe, CD-ROM, Network etc.). In case of a network boot (the sysctl variable kern.netboot will be set to 1 in which case), it runs /etc/rc.netboot with a start argument.

Source: http://osxbook.com/book/bonus/ancient/whatismacosx/arch_startup.html

Etienne Noumen

Sports Lover, Linux guru, Engineer, Entrepreneur & Family Man.

Recent Posts

Tips for Ensuring Success Throughout Your Career

For most people, a satisfactory career is essential for leading a happy life. However, ensuring…

3 days ago

Different Career Paths in the Pipeline Industry

The pipeline industry is more than pipework and construction, and we explore those details in…

3 days ago

SQL Interview Questions and Answers

SQL Interview Questions and Answers In the world of data-driven decision-making, SQL (Structured Query Language)…

2 weeks ago

Things To Consider When Switching Internet Providers

Before you make the decision to switch your home’s interest service provider, take the time…

4 weeks ago

A Daily Chronicle of AI Innovations in April 2024

AI Innovations in April 2024. Welcome to the April 2024 edition of the Daily Chronicle,…

4 weeks ago

Everything To Know About Bioreactors and How They Work

A bioreactor is the silent hero behind the scenes contributing to many of everyday life’s…

1 month ago