Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I was reading an article referred to me from another thread on the Windows OS boot process, and while reading, I couldn't help but wonder --

When a computer turns on, why can't it start loading the OS earlier on in the boot process?

Regarding the gradual unfolding of a computer's boot processes from power-on -> OS loaded, why are there so many "hoops" to jump through in the boot process? It seems like the BIOS has to point to this location, this location can then read that location, that location can then load this location, this location runs this to load that location, etc., progressively higher and higher level. Even accessing a hard drive, it seems like there are multiple incarnations of "drivers" that need to be used until the highest-level drivers within the OS can take over.

I can sort of understand why it's necessary for a lifeless piece of machinery be able to go from a powerless, very low-level functionality and climb the ladder to higher functionality (with analogies like needing to start in lower gears to work up speed toward higher gears), but as far as computers go, I don't particularly understand the specifics of why it can't be done in less "hoops". I'd guess it's a large part of what the BIOS->UEFI transition is for -- a higher-level intermediary between powerless low-level hardware and higher-functioning OS abilities...?

I think I can catch the drift analogy-wise, but if anyone can provide specifics, it'd be much appreciated.

share|improve this question
1  
It loads the Bootloader as quickly as it can. We are already at nearly instantly loading with windows 8 and ssd devices –  Ramhound Feb 1 '14 at 4:22
2  
Ya think that many of those layers are starting at a low level and very compatable with thing in general. Then it get on to the more complicated and "speedy" and feature filled and all. I would not want it any different, because when things do not work right, things still "work" which is a lot better than they cannot work until everything works together and correctally. –  Psycogeek Feb 1 '14 at 4:48
    
Have a look at this channel9.msdn.com/Shows/Going+Deep/… –  David Marshall Feb 1 '14 at 11:35
    
@Ramhound It still jumps through all those hoops. Just jumps through them faster now. –  Milind R Feb 3 '14 at 13:51

1 Answer 1

Because your OS is stored on disk.

You need to read it off it and put it into memory. Interacting with hardware is not easy. Interacting with them with high-performance is hard. So you do it awkwardly and slowly with BIOS services, then load your own drivers for disk access, then set up the rest of your OS stuff in memory. Meanwhile you NEED a display, to see what's happening and debug any issues. So you need to use BIOS services for that. Same for keyboard. And the network, if you want to boot off an installation image on the network. And a SCSI controller, if your boot disk is connected to it. And your CD/DVD drive, if you want to boot from it. And so on....

If there was a way to directly put the kernel + drivers into memory, then booting would immediately be a relic. And that day won't be far off, since we now have non-volatile RAM.

With UEFI, we have a more standard platform to build on. It will not be hard to have a non-volatile ram stick in the first slot, and normal DDR SDRAM in the others. The processor can be redirected to any memory location to execute by the firmware. The kernel initialization code can be kept at a specific location. The entire set up of registers and interrupts and drivers will take a fraction of a second if it's already in memory.

I await this day.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.