6 ms·
Just don't make something so complicated just to boot an OS. The damn thing is an operating system on its own now.
by RedShift1 3y ago
Just don't make something so complicated just to boot an OS. The damn thing is an operating system on its own now.
- p_l 3y agoIt's arguably less complicated than late stage BIOSes were, and I'm not including UEFI Class 1 systems (what many systems people thought still had BIOS actually were)
- weinzierl 3y agoI used to think like that but I changed my mind. I don't say UEFI is no over complicated, over engineered mess but I worked on embedded systems for a while and I'd say it's no sunshine there either. Booting a modern OS on modern hardware involves a lot of essential complexity you cannot get away from.
- temac 3y agoThe design of UEFI also involves tons of non-essential complexity.
- weinzierl 3y agoSure, but it is easy to keep essentially simple things simple; accidental complexity is unforgivable in this case. Systems that are inherently complex tend to naturally accrue accidental complexity. It's understandably hard to keep these systems lean. My point is that modern boot systems in general fall into the second category, contrary to other comments that imply the first.
- Avamander 3y agoIt just is that complicated to bring up all the pieces of hardware in a timely manner and with the right configuration. Not to mention if you want to let user configure things. Just look at say DRAM init: https://www.systemverilog.io/design/ddr4-initialization-and-calibration/ https://www.systemverilog.io/design/ddr4-initialization-and-... Of course you're gonna give that hard task to a memory controller, but then you have to initialise that. This goes on for all the subsystems, with complex interactions and features, all of which need handling. It's not a single microcontroller you're powering on, even if it were, those too require a bunch of initialisation code to function properly.
- temac 3y agoDRAM init as little to do with UEFI or BIOS and Intel probably ships x86 components for more exotic or even allow custom bootloaders. At least at a time they did. I don't know the current situation but when I played with all of that, I saw one of their "Memory Reference Code" in particular the parts in charge of calibration of the memory controller timing, and that was a quite short piece of x86 assembly completely independent from the UEFI architecture insanities. Well because it was written in assembly it had an obvious bug, but that's another story.
- jeroenhd 3y agoI disagree. UEFI makes my life, as an end user, so much easier. The amount of times I've needed to buy a different flash drive because the BIOS of a particular motherboard didn't like the way my existing flash drives smelled has gone down to 0. The thing even supports filesystems _not_ formatted by a tool written for Windows 95 that arranges the FAT partition in _just_ the right way to get it recognised. Previously, we had motherboards do the same stuff, except now they called into ROM memory on the network card, and ran a bunch of non-standard, proprietary code to render the fancy graphics and do online updating. I don't believe for a second that things were easier before UEFI standardised it all, they were just hidden from plain view better.
- p_l 3y agoIt helps that unlike with BIOS, the modern tooling doesn't have huge amounts of "we never read the spec but it booted on my machine" that was prevalent even with grub2. TL;DR a BIOS doesn't have to boot a drive if there's no primary partition marked "active", no matter whether your boot code uses that or not.