четверг, 15 декабря 2011 г.

Подарок для отладчико-писателей

Те, кто писал отладчики знают, что существуют определенные трудности с отрисовкой элементов GUI. Сложности были и с выводом в видеопамять на видеокартах, где эта видеопамять фрагментирована, и с копанием в недокументированных структурах драйвера дисплея. Ни о каких стандартах и речи не шло. Но все течет, все меняется, развивается как software, так и hardware. И с появлением UEFI появился и стандарт GOP (Graphic Output Protocol).

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 выведен через него):

2 комментария:

  1. Так а в чем смысл для дебагера ? Я имею ввиду после загрузки оси, EUFI уже не будет, фреймбуфер не факт что будет доступен без уравнивания GPU с CPU ( Потеря производителность? ). Наверное это юзабельно для буткитов.

    ОтветитьУдалить
  2. Сервисы UEFI (загрузочные и рантайм) доступны как загрузчику ОС, так и самой ОС.

    ОтветитьУдалить