Реальный режим
Эта статья требует дополнительных цитат для проверки . ( ноябрь 2012 г. ) |
Часть серии на |
Микропроцессорные режимы для x86 архитектуры |
---|
|
Первая поддерживаемая платформа, показанная в скобках |
Real Mode , также называемый режим реального адреса , представляет собой режим работы x86 всех процессоров . Режим получает свое имя от того факта, что адреса в реальном режиме всегда соответствуют реальным местоположениям в памяти. Реальный режим характеризуется 20- битным сегментированным адресным пространством памяти (дает 1 МБ адресной памяти) и неограниченным прямым доступом программного обеспечения ко всей адресуемой памяти, адресам ввода-вывода и периферийным оборудованием. Real Mode не обеспечивает поддержки для защиты памяти, многозадачности или уровней привилегий кода.
Перед введением защищенного режима с выпуском 80286 Real Mode был единственным доступным режимом для процессоров x86; [ 1 ] А для обратной совместимости все процессоры x86 начинаются в реальном режиме при сбросе, хотя можно эмулировать реальный режим в других системах при запуске в других режимах.
История
[ редактировать ]Архитектура 80286 внедрила защищенный режим , позволяющий (среди прочего) защиту памяти на уровне оборудования. Однако, используя эти новые функции, потребовалась новая операционная система , которая была специально разработана для защищенного режима. Поскольку первичная спецификация дизайна микропроцессоров X86 заключается в том, что они полностью обратно совместим с программным обеспечением, записанным для всех чипов x86 перед ними, чип 286 был создан для начала «реального режима», то есть в режиме, который выключил новую память Функции защиты, чтобы он мог запускать операционные системы , записанные для 8086 и 8088 . По состоянию на 2018 год текущие процессоры X86 (включая X86-64 ЦП) способны загружать реальные операционные системы режима и могут запускать программное обеспечение, записанное практически для любого предыдущего чипа X86 без эмуляции или виртуализации. В 2023 году Intel предложила отказаться от реального режима из будущих процессоров в спецификации x86S .
ПК BIOS , который IBM представила в реальном режиме, как и операционные системы DOS ( MS-DOS , DR-DOS и т. Д.). Ранние версии Microsoft Windows работали в реальном режиме. Windows/386 позволил использовать некоторое использование защищенного режима, и это было более полно реализовано в Windows 3.0 , который мог работать либо в реальном режиме, или использовать защищенный режим в способе Windows/386. Windows 3.0 на самом деле имел несколько режимов: «Реальный режим», «Стандартный режим» и «режим 386 с усилением»; Последнее потребовало некоторых функций виртуализации процессора 80386, и, следовательно, не будет работать на 80286. Windows 3.1 удалила поддержку для реального режима, и это была первая основная рабочая среда, которая требовала как минимум процессора 80286. Ни одна из этих версий нельзя считать современной операционной системой X86, поскольку они переключались в защищенный режим только для определенных функций. Unix , Linux , OS/2 , Windows NT считаются современными ОС, поскольку они переключают процессор в защищенный режим при запуске, никогда не возвращаются в реальную режим и все время обеспечивают все преимущества защищенного режима. 64-битные операционные системы используют реальные режима только на стадии запуска, а ядро ОС переключит процессор на длинный режим . [ 2 ] Примечательно, что защищенный режим 80286 значительно более примитивен, чем улучшенный защищенный режим, введенный с 80386; Последний иногда называется 386 защищенным режимом и является современным 32-разрядным 32-разрядным операционным систем x86. [ Цитация необходима ]
Адресация емкости
[ редактировать ]8086, 8088 и 80186 имеют 20-битную адресную шину, но необычная сегментированная схема адресации Intel выбирала для этих процессоров, которые фактически создают эффективные адреса, которые могут иметь 21 значимый бит. Эта схема сдвигает 16-битный номер сегмента оставил четыре бита (создавая 20-битный номер с четырьмя наименосленными нулями), прежде чем добавить в него 16-битное смещение адреса; Максимальная сумма возникает, когда как сегмент, так и смещение 0xffff, давая 0xffff0 + 0xffff = 0x10fff. На 8086, 8088 и 80186, результат эффективного адреса, который переполняет 20 бит, заключается в том, что адрес «охватывает» до нулевого конца диапазона адресов, то есть он принимается Modulo 2^20 (2^20 = 1048576 = 0x100000). Тем не менее, 80286 имеет 24 адреса адреса и вычисляет эффективные адреса до 24 бит даже в реальном режиме. Следовательно, для сегмента 0xffff и смещения, превышающего 0x000f, 80286 фактически сделает доступ к началу второго мегабайта памяти, тогда как 80186 и ранее получат доступ к адресу, равный [смещению] -0x10, который находится в Начало первого мегабайта. (Обратите внимание, что на 80186 и ранее, первое Килобит адресного пространства, начиная с адреса 0, является постоянным, неподвижным местоположением таблицы векторов прерываний.) Таким образом, фактическое количество памяти, адресованного 80286 и более поздними процессорами x86 в реальном режиме, составляет 1 МБ + 64 КБ - 16 B = 1114,096 B.
А20 линия
[ редактировать ]Некоторые программы, предшествовавшие 80286, были разработаны, чтобы воспользоваться поведением обратного адресации памяти (Modulo), поэтому 80286 представил проблему для обратной совместимости. Принуждение 21-й адресной линии (фактическая логическая сигнальная проволока, выходящая из чипа) к логике низко, представляя ноль, приводит к эффекту модуля-2^20, чтобы соответствовать арифметике более ранних процессоров, но 80286 не имеет внутреннего способность выполнять эту функцию. Когда IBM использовал 80286 в своем IBM PC/AT , они решили эту проблему, включив съемку программного обеспечения, чтобы включить или отключить (принудительно ноль) адресную линию A20, между выводом A20 на 80286 и системной шиной; Это известно как Gate-A20 (A20 Gate), и до сих пор он все еще реализован в чипсетах ПК. Большинство версий hemem.sys расширенной драйверы памяти для IBM-/MS-DOS, как известно, отображались при загрузке сообщения о том, что они установили «обработчик A20», кусок программного обеспечения для управления Gate-A20 и координации с потребностями программ Полем В защищенном режиме линия A20 должна быть включена, иначе возникнут ошибки физической адресации, что может привести к сбою системы. Современные устаревшие загрузки (например GNU Grub ) Используйте линию A20. [ 3 ]
Переключение в реальную режим
[ редактировать ]Intel ввела защищенный режим в семейство X86 с намерением, что операционные системы, которые использовались, будут выполняться полностью в новом режиме, и что все программы, работающие в защищенном режиме, также будут работать и в защищенном режиме. Из -за существенных различий между реальным режимом и даже довольно ограниченным защищенным режимом 286 программы, записанные для реального режима, не могут работать в защищенном режиме без перезагрузки. Таким образом, с широкой базой существующих приложений в реальном режиме, от которых зависели пользователи, отказавшись от реальных режимов, создавав проблемы для отрасли, и программисты стремились переключаться между режимами по желанию. Тем не менее, Intel, в соответствии с их намерениями для использования процессора, обеспечила простой способ переключения в защищенный режим в 80286, но не простым способом вернуться в реальное режим. Перед 386 единственный способ переключиться из защищенного режима в реальном режиме - сбросить процессор; После сброса он всегда запускается в реальном режиме, чтобы быть совместимым с более ранними процессорами x86 обратно на 8086. Сброс процессора не очищает оперативную память системы, поэтому это, хотя и неловкое и неэффективное, на самом деле возможно. Из защищенного режима состояние процессора сохраняется в памяти, затем процессор сброшен, перезапускается в реальном режиме и выполняет некоторый код реального режима для восстановления сохраненного состояния из памяти. Затем он может запускать другой код реального режима, пока программа не будет готова к переключению в защищенный режим. Переход в реальную режим является дорогостоящим с точки зрения времени, но этот метод позволяет программам защищенного режима использовать такие услуги, как BIOS, которые полностью работают в реальном режиме (изначально разработанные для 8088 На основе IBM IBM модели (тип машины) 5150). Эта техника переключения режимов также является той, которая используется DPMI (в соответствии с реальными, не эмулированными, DOS) и DOS-расширителями, такими как DOS/4GW, чтобы позволить программам защищенного режима работать под DOS; Система DPMI или DOS Extender переключается в реальном режиме, чтобы вызвать вызовы DOS или BIOS, затем переключается обратно, чтобы вернуться в прикладную программу, которая работает в защищенном режиме.
Отклонить
[ редактировать ]Изменение ядра NT привело к тому, что операционная система не нуждалась в DOS для загрузки компьютера, а также не может его использовать. Необходимость перезапуска компьютера в реальном режиме MS-DOS снизилась после Windows 3.1x , пока он больше не поддерживается в Windows Me . Единственный способ запуска приложений DOS, которые требуют реального режима из более новых версий Windows, - это использование эмуляторов, таких как DOSBOX или DOSBOX или продукты виртуализации X86 .
Смотрите также
[ редактировать ]- Нереальный режим
- Защищенный режим
- Загрузочный погрузчик
- 80386
- HE-32
- x86 Язык Ассамблеи
- Обычная память
Ссылки
[ редактировать ]- ^ «Ссылка на процессор X86 (архивирована в 8 сентября 2018 года - вместо« Краткая история x86 »: alasir.com/x86ref: 403 запрещено 24 марта 2023 года)» . Архивировано с оригинала 8 сентября 2018 года . Получено 24 марта 2023 года .
{{cite web}}
: CS1 Maint: Bot: исходный статус URL неизвестен ( ссылка ) - ^ «Загрузка · Linux внутри» . 0xax.gitbooks.io . Получено 10 ноября 2020 года .
- ^ "A20 Line - Osdev Wiki" . Wiki.osdev.org . Получено 10 сентября 2020 года .
Внешние ссылки
[ редактировать ]- Чурдакис, Майкл (21 мая 2015 г.). «Настоящий, защищенный учебник для сборки длинного режима для ПК» . Кодовый проект .