2013-06-28 3 views
2

Адрес видеопамяти (0xB8000), который сопоставляет видеопамять с этим адресом?
Процедура, которая копирует данные с адреса и помещает на экран. Является ли это встроенной функцией процессора (есть ли этот драйвер с процессором)?
Адрес видеопамяти

ответ

3

Что происходит, когда вы пишите по адресу:

Эта область адресного пространства не отображается в ОЗУ, вместо этого он отправляется через системную шину для вашей видеокарты. BIOS установил это с помощью VGA-карты во время загрузки (множество диапазонов адресов - это память, отображаемая на различные устройства). На CPU не выполняется код для построения пикселов при записи в эту область адресного пространства. Карта VGA получает эту информацию вместо вашей оперативной памяти и делает это сама.

Если вы хотите, чтобы вы могли просматривать вызовы функций BIOS и переконфигурировать оборудование, чтобы вместо этого вы могли отображать пиксели вместо местных символов на видеорежиме. Вы даже можете исследовать его, чтобы узнать, поддерживает ли он VESA и переключается на хорошее разрешение 1280 * 768 32bpp. Затем BIOS будет отображать область адресного пространства по вашему выбору на VGA-карту для вас.

Подробнее о BIOS:

В BIOS это программа, которая поставляется в комплекте с материнской платой, что ваш процессор выполняет, когда он впервые полномочия до. Он настраивает все аппаратные средства, отображает все устройства с отображением памяти, создает различные полезные таблицы, назначает порты ввода-вывода, перехватывает прерывания до кучи процедур, которые он оставляет в памяти. Затем он загружает ваш загрузочный сектор с устройства и переходит к вашему коду ОС.

Оставленные подпрограммы и структуры данных позволяют вам освободить ОС от земли. Вы можете загружать сектора с диска, записывать текст на экран, получать информацию о системе (карты памяти, таблицы ACPI, таблицы MP .etc). Без этих подпрограмм и структур данных было бы намного сложнее, если не невозможно, сделать приемлемый загрузочный сектор и получить всю информацию о создании системы для функционального ядра.

Однако подпрограммы устарели, медленны и имеют очень ограничительные ограничения. Для одного из оставшихся в памяти программ используется 16-битный режим реального режима, поэтому, как только вы переключаетесь на 32-битный защищенный режим, вам нужно постоянно переключаться или использовать режим VM86 для доступа к ним (полностью недоступный в 64-битном режиме, по-видимому, эмуляция инструкций с измененным Однако библиотека linux x86emu является вариантом). Таким образом, процедуры обычно очень медленные. Поэтому вам нужно будет написать свои собственные драйверы с нуля, если вы уйдете от программирования в реальном режиме.

0

В большинстве случаев монитор ПК является VGA-compatible device, который по standard включает в себя режим для настройки text buffer (32 KB) размера через MMIO начиная от адреса 0xB8000.

How MMIO works:

На рисунке выше показано, как работает MMIO.