Зачем в системах с 64-бит процессором до сих пор реализуется 32-бит UEFI и почему на 32-бит машине UEFI нельзя использовать Linux. Брайан Ричардсон высказал в блоге Intel мнение о том, что это связано с деньгами.
Основное требование UEFI: архитектура и операционная система должны соответствовать друг другу. Для большинства процессоров Intel это не проблема, так как они имеют одну архитектуру. Х86-совместимый процессор несколько отличается и может переключаться в режим совместимости с 16/32/64-бит.
Так как большинство платформ Intel поддерживает 32- и 64-разрядную архитектуру, прошивки UEFI для них могут составляться в IA32 или x64 режиме. Это нашло свое применение в Intel Galileo.
BIOS прошивается в 16-бит режиме, а ОС работает в 32/64-бит защищенном режиме. Это вызывает ряд проблем с 16-бит интерфейсом BIOS и 32/64-бит ОС.
Операционным системам проще работать с прошивкой той же разрядности. Это и является основополагающим принципом UEFI.
Когда UEFI стал доминирующим интерфейсом прошивки, поставщики Linux начали создавать 64-разрядные системы, совместимые с UEFI. А потом на рынке появились дешевые ноутбуки и планшеты, на которые устанавливалась 32-разрядная Microsoft Windows 8.1.
Это связано с тем, что в подобном случае можно сэкономить на оборудовании, так как 64-разрядная версия Windows требует больше места на HDD и ОЗУ.
В результате дешевый компьютер не может запускать свободное ПО на «коробочной» версии. Это побочный эффект адаптации рынка под дешевые системы.
Для Intel достаточно перекомпилировать UEFI C-код в режиме IA32 вместо 64, а с дистрибутивами Linux все несколько сложнее.
Может быть переход с CD/DVD на флэш станет подспорьем. Но пока поддержка Linux для UEFI IA32 остается вопросом без ответа, хотя пользователи Linux и просят добавить эту опцию.