How does windows 8 prevent BIOS access

4

I am trying to get a better understanding of how BIOS and operating systems work. From what I understand, BIOS is a basic piece of software that is the first thing to be run when a computer turns on and loads the operating system. I also understand that the BIOS is written by the company that makes the computer. For example, Dell writes the BIOS for Dell computers. Please correct me if any of this is wrong.

I have been told that computers that get Windows 8 OS installed can no longer access the BIOS when the computer turns on. How does this work? It seems that the only way this would work is if the BIOS was dependent on the OS, but that doesn't really make sense.

jlars62

Posted 2014-01-10T03:59:34.250

Reputation: 171

I believe this is a better question for Super User – Steve M – 2014-01-10T04:03:16.803

@svenoaks I wasn't aware of Super User until now. I agree, is there an easy way to migrate it over? – jlars62 – 2014-01-10T04:05:51.750

1I don't think this is a [su] question. It's a lack of understanding of the bootstrap process, processor modes, etc. – John Saunders – 2014-01-10T04:14:12.257

Answers

5

When an x86 computer is first turned on, it is operating in what is known as "real mode". The hardware starts running the BIOS, which loads the operating system, and transfers control to it.

Shortly after this, the operating system turns on what is known as "protected mode". In protected mode, there are basically two kinds of code: kernel code (like the operating system and drivers), and user code (like everything else).

In order to use the features of the BIOS, it is necessary to operate in kernel mode. Once Windows starts, only Windows is able to run in kernel mode (Windows, and anything else that Windows decides can also run in kernel mode).

Normal (user mode) code cannot call on the BIOS once the operating system has started. Only the operating system and drivers and other such kernel mode software can access the BIOS.

John Saunders

Posted 2014-01-10T03:59:34.250

Reputation: 486

Thank you that makes a lot of sense. A follow-up question I have then is how does an OS know how to talk to the BIOS to use its features? Is there some type of standard protocol/API to do this? – jlars62 – 2014-01-10T04:23:02.327

The OS uses very few of the features of the BIOS these days. And there are even fewer features. A BIOS is very primitive. It has calls like "read disk block" and "write disk block". And, yes, there is a standard API for that. – John Saunders – 2014-01-10T04:24:33.740

See "BIOS interrupt call" for the ancient history.

– John Saunders – 2014-01-10T04:25:28.823

I'm not sure that I'd use the word "cool", unless you mean "cold and dead" ;-) That's not what Windows uses to talk to disks, for instance. – John Saunders – 2014-01-10T04:34:45.053

0

Answering an old question but I noticed the last paragraph of it had never been answered.

Windows 8 and 10 do not disable access to the BIOS. What they do is set the Fast/Quick Boot flag. I believe that this only works on UEFI motherboards, which nearly everything is these days.

With that flag set the UEFI jumps immediately into the preset boot loader without waiting for any user input. In order to change settings you need to go into Windows, find Advanced Startup and click its Restart Now button. That will disable the fast boot and reboot into the UEFI option settings.

On my Windows 10 it is in Settings, Update & Security, Recovery.

Note that some motherboards will still let you into the settings while booting but you need to be holding down a key during boot. On others if your Windows install is horribly messed up you will need to find a button or jumper on the board to do a reset. Or just disconnect all the hard drives. On a tablet there are emergency reset button combinations, like "hold down volume up and power for 10 seconds" kind of things.

Zan Lynx

Posted 2014-01-10T03:59:34.250

Reputation: 1 518