4 ms·
The intersection point between simple and useful is this: - Firmware understands some sort of minimal filesystem and how to talk to a device containing it. -
by tenebrisalietum 5y ago
The intersection point between simple and useful is this:
- Firmware understands some sort of minimal filesystem and how to talk to a device containing it.
- Firmware has a configuration store that holds a few variables and a device tree.
- Firmware has the ability to load binary images into RAM from the minimal filesystem above.
- On boot, configuration is checked, the kernel and initrd are binary-loaded into RAM, and the firmware jumps to the kernel with a pointer to the commandline, initrd, and device tree.
U-Boot more or less does this and it's beautiful. The bootloader loads your OS and then gets out of the way. No multistage crap or overengineered firmware interfaces.
- userbinator 5y agoI don't think firmware should care at all about filesystems, because that's already halfway towards being an OS. It should just load the first sector from the selected boot device and jump to it.
- tenebrisalietum 5y ago- You're already getting into "halfway towards being an OS" territory if you want to netboot. - Eliminating variable code from the boot process makes it more secure and reliable. Why do I need to load a separate loader to load my OS which is overwriteable by my OS if the firmware can do it in a standard, fixed way? - At least have some mechanism to load an arbitrary number of sectors.