When the bootloader passes control to the kernel it has to pass some basic information, which may include some of the following:
- The machine number, which is used on PowerPC, and ARM platforms without support for a device tree, to identify the type of the SoC
- Basic details of the hardware detected so far, including at least the size and location of the physical RAM, and the CPU clock speed
- The kernel command line
- Optionally, the location and size of a device tree binary
- Optionally, the location and size of an initial RAM disk, called the initial RAM file system (initramfs)
The kernel command line is a plain ASCII string which controls the behavior of Linux by giving, for example, the name of the device that contains the root filesystem. I will look at the details of this in the next chapter. It is common to provide the root filesystem as a RAM...