Thoughts about boot

NOTE: This section is in early draft phase.


These may end-up being broken down into their own sub-pages, and this page will be edited without a public history (for now).

This page collects some often repeated opinions and thoughts about boot. These may change over time, these are not absolutes.


Confusing terminology about boot

Booting is hard.

But what is harder still is trying to communicate the issues, since the well-known expressions and terminology about boot are severely overloaded, and may or may not mean the same thing for different people.

Boot

What even is boot? What is being booted?

Well, it depends.

To shed some light on the situation, I think the best thing to do is to re-define the termiology and never use boot as an unqualified word.

System startup is the process in which the Application Processor (the CPU, the SoC) is starting, and assumed to then load the platform firmware.

OS Boot (or Operating System Boot) is the process in which a previously running system starts, in any way, an operating system. This may or may not be from a bootloader.

By using these words, it is now possible to describe systems in a more understandable way. For example:

Most Rockchip SoCs, at system startup load the platform firmware from the first valid source in order of: SPI Flash, eMMC (but not boot hardware partitions), SD.

The platform firmware on Rockchip SoCs can then do the OS boot in any order they are configured to do so.

Bootloader

What even is a bootloader? Why are people calling platform firmwares bootloaders?

Non-Wintel Boot

Or: why we should be thankful for the 90s Microsoft monopolistic practices.

In a nutshell, the only reason boring old x86 made-for-windows computers are easy to boot is because Microsoft mandated ACPI (and related technologies), and later UEFI, to reduce their own workload

From: Bill Gates
Sent: Sunday, January 24, 1999 8:41 AM
To: Jeff Westerinen; Ben Fathi
Cc: Carl Stork (Exchange); Nathan Myhrvold; Eric Rudder
Subject: ACPI extensions

One thing I find myself wondering about is whether we shouldn't try
and make the "ACPI" extensions somehow Windows specific.

If seems unfortunate if we do this work and get our partners to do
the work and the result is that Linux works great without having to
do the work.

Maybe there is no way to avoid this problem but it does bother me.

Maybe we could define the APIs so that they work well with NT and
not the others even if they are open.

Or maybe we could patent something related to this.

— Plaintiff exhibit #3020, Comes v. Microsoft Corp.

As they feared, it made it easy for many platforms to work well in trivial manners.

NOTE: This section is incomplete…

See also: