Разработчик создал графический IRC-клиент, который работает в UEFI

Программист создал IRC-клиент, который работает внутри UEFI. Он написан на Rust и использует GUI со средством визуализации TrueType. Благодаря этой разработке пользователи могут подключаться к IRC-серверу, общаться в чате и читать сообщения, не выходя из среды предварительной загрузки материнской платы.

Разработчик

Разработчик Филипп Теннен создал графический IRC-клиент, который работает в UEFI. Он написан на языке Rust и использует графический интерфейс пользователя (GUI) со средством визуализации TrueType, которые разработаны для пользовательского пространства axle.

Что такое UEFI

UEFI — это небольшая операционная система, работающая над прошивкой PC, поэтому она способна на гораздо большее, чем BIOS.

Как и в BIOS, реализация UEFI поставляется на каждой материнской плате в ПЗУ. Прошивка UEFI обеспечивает среду для запуска загрузчика операционной системы, а также предоставляет различные API, которые загрузчик может использовать для выполнения своих задач.

Загрузчик с самого начала загружается в 64-разрядную среду, а UEFI предоставляет множество полезных API для переключения разрешений дисплея VESA, выделения памяти и взаимодействия с файловой системой EFI.

Как разработан проект

Теннен смог разработать его благодаря сетевому бэкенду vmnet, который он реализовал для QEMU. Пользователи могут подключаться к IRC-серверу, общаться в чате и читать сообщения, не выходя из среды предварительной загрузки материнской платы.

UEFIRC
UEFIRC

Разработчик потратил несколько дней на тщательное тестирование Rust-кода, чтобы убедиться, что у него не происходит утечка памяти, и отключить UAF буфера приема TCP.

Для считывания движений мыши и нажатий кнопок Теннен использовал протокол Simple Pointer от UEFI, а также включил визуальную обратную связь о текущем положении курсора в графическом интерфейсе.

После этого энтузиаст смоделировал IRC-сообщения и запустил GUI toolkit в UEFI. Первым этапом работы он обеспечил реализацию AwmWindow, которую можно использовать из UEFI. Далее большая часть libgui предоставлялась бесплатно, включая управление событиями, рендеринг шрифтов, компоновку слоев, оформление представлений и сложные компоненты, такие как виды прокрутки.

Моделирование IRC-сообщений
Моделирование IRC-сообщений

Чтобы сделать UEFIRC удобным, Теннен использовал графические примитивы в Rust GUI toolkit от axle. Чтобы решить проблему с визуализацией TrueType, он добавил стеки полигонов, которые должны уметь рисовать все реализации буфера просмотра, наряду с линиями, кругами и прямоугольниками.

Зачем нужна разработка

Поддержка разработанного варианта использования означает, что прошивка UEFI поставляет сетевой стек в комплекте с драйверами сетевой карты и реализацией TCP, а также предоставляет API для взаимодействия с этим стеком любым приложениям, запущенным в предзагрузочной среде. Это может быть полезно в некоторых корпоративных средах.


Однако Теннен отмечает, что IRC-клиент неудобен, потому что этот проект — тщательно продуманная шутка.

«Я сказал подруге, что создаю проект в шутку, а затем объяснил это. Она сказала, что не знает, когда смеяться. Я тоже не уверен».

Филипп Теннен, разработчик

Код проекта UEFIRC опубликован на GitHub.

Что будем искать? Например,ChatGPT

Мы в социальных сетях