Предлагаем вашему вниманию пример программирования под UEFI с открытым исходным кодом, демонстрирующий аппаратную реализацию генератора случайных чисел средствами современных процессоров Intel. В выше указанном примере задействована 64-битная форма инструкции RDRAND. В полученном результате используется 42 бита: 24 бита для пред­став­ле­ния цвета пикселя, 9 бит для X-координаты и 9 бит для Y-координаты.

 Экран утилиты UEFIRand v1.0 демонстрирует возможности генератора случайных чисел, встроенного в процессоры Intel
Рис 1. Скриншот UEFIRand с пикселями,
атрибуты которых определены случайнм образом

Вывод графики происходит с помощью UEFI Graphics Output Protocol. В соответствии с требованиями GOP, используется 32-битное кодирование пикселей, при котором для кодирования цвета задействовано 24 бита, по 8 бит на каждый цвет: Red, Green, Blue и 8 бит зарезервировано. Горизонтальное и вертикальное разрешение определяются возможностями видео подсистемы и параметрами Xsize, Ysize в конфигурационном файле.

Работа приложения состоит в выводе пикселей, цвет и координата которых определяются результатами работы генератора случайных чисел. Пиксели выводятся в матрице 512x512 в центре экрана.


20.01.2018