Те, кто писал отладчики знают, что существуют определенные трудности с отрисовкой элементов GUI. Сложности были и с выводом в видеопамять на видеокартах, где эта видеопамять фрагментирована, и с копанием в недокументированных структурах драйвера дисплея. Ни о каких стандартах и речи не шло. Но все течет, все меняется, развивается как software, так и hardware. И с появлением UEFI появился и стандарт GOP (Graphic Output Protocol).
GOP дает возможность устанавливать видео режимы и писать из/в фреймбуфер графического контроллера, предоставляя следующие интерфейсы:
Так что с использованием GOP можно наваять практически любой GUI для того же отладчика уровня ядра, если конечно вы являетесь счастливым обладателем платы с UEFI( как я например :) ).
Пример того, как выглядит графика выведенная через GOP(собственно весь интерфейс UEFI выведен через него):
GOP дает возможность устанавливать видео режимы и писать из/в фреймбуфер графического контроллера, предоставляя следующие интерфейсы:
QueryMode | Returns information for an available graphics mode that the graphics device and the set of active video output devices supports. |
SetMode | Set the video device into the specified mode and clears the visible portions of the output display to black. |
Blt | Software abstraction to draw on the video device’s frame buffer. |
Так что с использованием GOP можно наваять практически любой GUI для того же отладчика уровня ядра, если конечно вы являетесь счастливым обладателем платы с UEFI( как я например :) ).
Пример того, как выглядит графика выведенная через GOP(собственно весь интерфейс UEFI выведен через него):
Так а в чем смысл для дебагера ? Я имею ввиду после загрузки оси, EUFI уже не будет, фреймбуфер не факт что будет доступен без уравнивания GPU с CPU ( Потеря производителность? ). Наверное это юзабельно для буткитов.
ОтветитьУдалитьСервисы UEFI (загрузочные и рантайм) доступны как загрузчику ОС, так и самой ОС.
ОтветитьУдалить