На низком уровне, как персонаж печатается на консоли
Я изучаю исходный код простой ОС (простой, но реальной, которая действительно может работать на компьютере с архитектурой x86), и я не уверен, что процесс, на который символ отправляется и отображается на мониторе консоли.
В исходном коде подпрограммы для отправки символа я вижу некоторые встроенные сборки, выполняющие операции ввода-вывода (inb/outb). Однако как символ (значение ASCII) превращается в растровое изображение (массив цветовых значений, скажем, черно-белых пикселей, который фактически отображает символ на экране монитора). Я не могу найти какую-либо форму отображения от символа к растровому изображению в исходном коде ОС. Разве процесс, который превращает значение ascii в массив пикселей, не происходит в ОС? За это отвечает аппаратное устройство, такое как чип VGA? который из?
1 ответ
Если используется графический режим, система (или BIOS) должна преобразовать его в пиксели и отправить его в графический адаптер (в основном, путем копирования пикселей в отображаемую графическую память). Если используется текстовый режим, символы и цветовые атрибуты отправляются графическому адаптеру (в основном путем копирования их в отображаемую графическую память).
В 16-битном реальном режиме графическая память отображается на сегмент a000h, а текстовая память - на b000h или b800h. В 32-битном защищенном режиме графическая память отображается, начиная с адреса a0000h, а текстовая память отображается начиная с адреса b8000h.