Почему BIOS работает в 16 битах вместо 32/64 бит?

1946
Fernando Paladini

Мой учитель говорит мне, что BIOS (или Legacy Mode) всегда загружает мой компьютер в 16 бит.

Другими словами, у меня может быть Intel Core i291832 с частотой 23,9 ГГц, но мой компьютер будет работать в 16-битном режиме, если я использую Legacy Mode. Это правда? Если так, то почему это происходит?

PS: вы можете быть очень техническим, я изучаю компьютерные науки, вероятно, поймет, что вы говорите. P.S2: Я знаю разницу между UEFI и Legacy Mode.

2
Википедия: «Ограничения BIOS (такие как режим 16-разрядного процессора, адресуемое пространство 1 МБ и аппаратное обеспечение ПК AT) стали слишком ограничительными для крупных серверных платформ, на которые ориентирован Itanium. Усилия по решению этих проблем начались в 1998 году и первоначально назывались Intel Загрузочная инициатива, позже она была переименована в EFI ». ChrisInEdmonton 8 лет назад 0
WTF? Почему мой вопрос был отклонен? Ваш ответ ничего не ответил, @ChrisInEdmonton, извините, но я действительно не получил его из вашего объяснения. Fernando Paladini 8 лет назад 0
Я не отрицал тебя. Я только что указал, что текущий стандарт EFI (или UEFI) является 32-разрядным. ChrisInEdmonton 8 лет назад 0
Хорошо, спасибо за ответ и извините за грубость, я подумал, что вам не нравится вопрос, и отклонил его без видимой причины. Извините и спасибо за время / терпение / комментарий <3 Fernando Paladini 8 лет назад 1

1 ответ на вопрос

5
8bittree

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.

Похожие вопросы