Booting

The boot process is fairly simple:

  • Perform a first pass over the devicetree, initialize the frame allocator with memory regions found from it.
  • Perform a second pass over the devicetree, initializing interrupt controllers.
  • Perform a third pass over the devicetree, initializing the rest of the devices.
  • Print "Hello, world!" to all serial ports.
  • Panic.