Забытое слово: environment
сегодня в 00:10
Почему так? Дело в том, что кроме стандартных и расширенных функций в CPUID реализованы виртуальные функции, за выполнение которых отвечает гипервизор хост-системы. В этом случае результатом запроса get hypervisor information может быть одна из сигнатур, однозначно определяющих операционную среду. В зависимости от реализации нам могут быть доступны следующие сигнатуры (список неполный):
Для того чтобы идентифицировать особенности виртуальной среды, реализованной Oracle VirtualBox, решено было на базе ранее написанного примера UEFIInfo (в англоязычной интерпретации — Brief Sysinfo Utility), предназначенного для работы в режиме EFI Byte Code с 32-битными и 64-битными реализациями UEFI BIOS, написать рабочий софт идентифицирующий этот самый environment. (Кое-что о наших экспериментах с EBC опубликовано здесь, на Хабре. См., например, заметку «EFI Byte Code и операции с памятью»)
Почему UEFI? Потому что эксперименты с firmware — это своего рода «чистая комната», свободная от культурных наслоений программного обеспечения. Имея на руках отлаженный алгоритм несложно выйти на реализацию подобного программного обеспечения для Linux или Windows.
Исходный код утилиты UEFIInfo v0.02 на языке ассемблера решено было выложить для всеобщего обозрения. Для привлечения внимания размещаем скриншот ее выполнения в виртуальной среде Oracle VirtualBox, отягощенной влиянием открытой реализации TianoCore:
-
↑
—
↓ -
2,3k
-
Добавить в избранное 14
карма 21,0