Why does BIOS operate in 16-bits instead of 32/64-bits?

2

1

My teacher tells me that BIOS (or Legacy Mode) always boot-up my PC in 16 bits.

In other words, I can have an Intel Core i291832 with 23.9GHz, but my PC will operate in 16-bits mode if I'm using Legacy Mode. Is that true? If so, why does it happen?

P.S: you can be very technical, I'm coursing computer science probably will understand what you say. P.S2: I know the differences between UEFI and Legacy Mode.

Fernando Paladini

Posted 2015-10-18T12:11:52.520

Reputation: 721

Wikipedia: "BIOS limitations (such as 16-bit processor mode, 1 MB addressable space and PC AT hardware) had become too restrictive for the larger server platforms Itanium was targeting. The effort to address these concerns began in 1998 and was initially called Intel Boot Initiative; it was later renamed to EFI." – ChrisInEdmonton – 2015-10-18T12:31:36.303

Wtf? Why my question was downvoted? Your reply didn't answer anything, @ChrisInEdmonton , sorry, but I really didn't get it from your explanation. – Fernando Paladini – 2015-10-18T16:44:07.410

I didn't downvote you. I was just pointing out that the current standard, EFI (or UEFI) is 32-bit. – ChrisInEdmonton – 2015-10-18T21:03:47.177

1Ok, thank you for the answer and sorry for being rude, I thought that you don't like the question and downvoted it without any apparent reason. Sorry and thank you for the time / patience / comment <3 – Fernando Paladini – 2015-10-18T22:03:19.597

Answers

5

Backwards compatibility.

A modern x86 processor can run software written for the original 8088 such as MS DOS without resorting to software emulation. Note that some things may not run well, many games for example relied on the clock speed for timing, so what used to happen in 10 seconds at 5 MHz now happens something closer to 0.02 seconds at 2.5 GHz. Good luck reacting in time.

Real mode (16 bit) behaves differently from protected mode (32 bit) and long mode (64 bit). A program written for real mode can not run in protected or long mode, it uses different instructions.

Since backwards compatibility is one of the most important qualities of x86, all x86 processors continue to start up in real mode. (Otherwise we probably would have moved to a less insane architecture by now. Remember that even Intel wanted to switch to Itanium.)

The BIOS and UEFI are parts of the motherboard, not the CPU. So BIOS, remaining backwards compatible to the original IBM PC, and being very simple itself, leaves the CPU in real mode as it passes control to the boot loader. UEFI, was not designed for such backwards compatibility, and thus is free to switch into protected mode before passing on control. But if you take the same x86 CPU out of a UEFI computer and place it into a BIOS computer with a compatible motherboard, it will still work, what was jumping into 32 bit protected mode before loading the boot loader is now staying in 16 bit mode before the boot loader.

8bittree

Posted 2015-10-18T12:11:52.520

Reputation: 2 595