Как запустить программу без операционной системы: часть 3: Графика

8f04e43fb5a6c190278c961f1f968d7b.jpg В этой части попробуем сделать «невозможное»: научимся использовать графический дисплей без операционной системы. На самом деле это задача не из легких, особенно в случае работы в 32-х битном защищенном режиме, и особенно если хочется использовать приличное разрешение экрана, а не 320×200x8. Но все по порядку: раз хотим графику — значит нужно работать с видеокартой. Современные графические карты — это практически полноценные компьютеры по мощности не уступающие основному: тут и декодирование MPEG2 в качестве 1080p, поддержка 3D графики и шейдеров, технологии вроде CUDA, и многое другое. Это все выглядит весьма сложно. С другой стороны видеокарты — это всего лишь очередной PCI девайс, такой же, как и остальные. Это устройство мы даже «нашли» в предыдущей статье с номером класса устройства 0×03 (class_name=graphics adapter). Как и с любым, устройством с видеокартой можно работать при помощи портов ввода-вывода или MMIO областей памяти, а сама видеокарта может использовать DMA и прерывания для взаимодействия с основным процессором. Если посмотреть на диапазон портов ввода-вывода, доступных у видео карт, то мы увидим, что всего ей выделяется менее 50-ти байт — не так уж и много с учетом огромной функциональности, которой обладают современные видеокарты.Читать дальше →

© Habrahabr.ru