Как перейти с VGA на SVGA в программировании ОС - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь понять всю теорию ОС. Но здесь проблема, я не могу найти информацию о net для переключения в SVGA (или HDMI) для рисования на мониторе. Я уже знаю, что для VGA выделено 4x4096 КБ в качестве видеопамяти, но на самом деле оно ограничено, если мы хотим разрешение 1080x720. Итак - Как перейти на SVGA (или HDMI)? Возможно, системный вызов или запрос ввода / вывода? - После этого как переопределить адрес видеопамяти? - Бонусный вопрос: как использовать технологию ускоренного аппаратного обеспечения?

Заранее благодарю за ответ и извиняюсь за возможные ошибки в Engli sh

1 Ответ

0 голосов
/ 21 февраля 2020

Единственным распространенным стандартом низкого уровня для разрешений, превышающих VGA, является VESA B IOS Extensions (VBE). Я не знаю, насколько широко он покрыт обратной совместимостью UEFI, потому что в настоящее время он почти никогда не используется.

B IOS Расширения похожи на драйверы, встроенные в саму карту. Чтобы переключить режим видео или иметь указатель на VRAM, вы должны вызвать соответствующий сервис VBE через его прерывание. «Драйвер» ПЗУ, предназначенный для работы с определенным оборудованием, выполняет необходимые операции и возвращает результат.

К сожалению, аппаратное ускорение не покрывалось VBE, поэтому оно становилось все более и более устаревшим с ростом графического процессора. и более важно. Не было разработано подходящей замены, поэтому, если вы хотите работать с голым оборудованием, вы должны знать каждый видеочип (или, по крайней мере, семейство чипов, если они достаточно близки) и написать драйвер для каждого один. Если PDF-файлы бесплатны, это легко (я работал с 3dfx, это просто: запишите в порт N, подождите, пока бит R на порте M не станет 1 et c).

Проблема в том, что вы Это необходимо сделать для каждого чипа.

Вы также можете прочитать некоторые Linux источники драйверов, если хотите увидеть, как все эти порты и входы / выходы запускаются.

...