3 ms·
Talking about specifically boot? Once all other bottlenecks (such as mechanical HDDs or insufficient RAM) are eliminated? Plug and play. Enumerating buses for
by throwaheyy 6y ago
Talking about specifically boot? Once all other bottlenecks (such as mechanical HDDs or insufficient RAM) are eliminated?
Plug and play. Enumerating buses for hardware, and loading drivers for it all. Starting off in backward-compatible hardware modes (eg. a BIOS using PIO in the case of storage devices) and progressively enabling faster and more complicated modes (e.g. DMA or AHCI as drivers get loaded).
The same mechanisms that allow you to plug in hardware to a desktop and have it “just work” make your computer slower to start up than it could theoretically be. There’s a trade-off between that configurability and startup performance. Embedded systems can start up faster because addresses of its peripherals, resources, accessories etc. are computed ahead of time and hardcoded. It doesn’t have to dynamically rediscover them every time it starts.
Extend the “plug and play” concept to software — modular software packages, frameworks, reusable components, dynamic plugins. That’s why, once the OS is loaded, software is slow to start up.
The configurability/performance trade off is true at every level of computing, even down to the function call - https://stackoverflow.com/questions/4667882/is-a-statically-linked-executable-faster-than-a-dynamically-linked-executable https://stackoverflow.com/questions/4667882/is-a-statically-...