Ранее в этом месяце Microsoft приободрила пользователей Windows, продемонстрировав, как будущая операционная система Windows 8 загружается за восемь секунд. Однако один из элементов технологии, обеспечивающей столь быструю загрузку, позволяет Microsoft и ее партнерам — производителям ПК блокировать загрузку Linux на ПК с установленной Windows 8, утверждает Мэтью Гаррет, разрабатывающий мобильную Linux в корпорации Red Hat. 20 сентября он написал об этом в блоге.
Для достижения наиболее высоких результатов Microsoft рекомендует использовать интерфейс UEFI (Unified Extensible Firmware Interface). UEFI содержит протокол безопасной загрузки, который предотвращает заражение руткитами, требуя ввода ключей безопасности, прежде чем разрешить загрузку устройством исполняемых модулей или драйверов. Протокол необходим ПК под управлением клиентской Windows 8, чтобы привести их в соответствие с условиями программы присвоения логотипа Windows 8, пишет Гаррет.
Согласно статье, опубликованной на сайте NetworkWorld, на прошедшей недавно конференции BUILD, где была впервые представлена ознакомительная редакция Windows 8 для разработчиков (Developer Preview Edition), Microsoft подтвердила необходимость соблюдения условий программы. В презентации ведущего программиста Microsoft Ари ван дер Хувена на слайде 11 отмечается, что безопасная загрузка с помощью UEFI “необходима для клиентской Windows 8”. NetworkWorld приводит ссылку на эту презентацию.
Проблема с безопасной загрузкой с помощью UEFI заключается в отсутствии центрального органа для подписывания ключей, пишет Гаррет из Red Hat. В результате каждый производитель ПК управляет собственными ключами, что дает ему (и Microsoft) контроль над загружаемым на компьютер ПО. Как только вы начали использовать безопасную загрузку с помощью UEFI, этот интерфейс блокирует загрузку исполнительных модулей и драйверов, если они не подписаны одним из установленных в системе ключей, поясняет Гаррет.
Соответствующий набор ключей под названием Pkek позволяет осуществлять обмен информацией между ОС и встроенным ПО. Если ОС (скажем, Windows 8) содержит ключи Pkek, соответствующие имеющимся во встроенном ПО, она получает право дополнять “белый” и “черный” списки ключей, пишет Гаррет. Подписанные ключами из “черного” списка двоичные файлы (допустим, входящие в дистрибутив Linux) не смогут загружаться, поясняет он.
Если будут приняты такие меры безопасности, пользователи не смогут инсталлировать альтернативную ОС вроде Linux. Кроме того, невозможно будет правильно установить новую графическую карту, у которой нет должным образом подписанных драйверов, утверждает Гаррет из Red Hat.
Microsoft утверждает, что лучше всего использовать UEFI, но…
20 сентября менеджер программы Microsoft Билли Сью Чафинс оставила собственную запись в блоге Building Windows 8. Она напрямую не касается озабоченности разработчиков Linux. Но подтверждает, что Windows 8 “по-прежнему будет поддерживать унаследованный интерфейс BIOS” и предоставит пользователям возможность загружать другие операционные системы, установленные на той же машине.
(Сотрудники сайта WindowsForDevices.com не пытались инсталлировать Windows 8 Developer Preview на компьютере, где уже была установлена Linux. Но мы легко обеспечили двойную загрузку Windows 8/Windows 7, а также устанавливали Windows 8 на машинах, имеющих только унаследованный интерфейс BIOS.)
Мимоходом упомянув о возможностях безопасной загрузки, Чафинс заявляет, что UEFI является предпочтительным еще и потому, что позволяет системам “формировать с помощью драйвера Graphic Output Protocol (GOP) прекрасное изображение с заданным (native) разрешением”. Поэтому вместо устаревших меню, которые выглядят так, словно они позаимствованы из эпохи MS-DOS, пользователи могут настраивать свои системы через пользовательский интерфейс, применяя мышку или пальцы.
По словам Чафинс, Windows 8 позволит даже вызвать экранную клавиатуру из командной строки в режиме восстановления работоспособности компьютера (Windows Recovery Environment, Windows RE). Благодаря этому появится возможность вне офиса восстанавливать работоспособность устройств, не имеющих клавиатуры, пишет она.
Возможные обходные пути для Linux
“Нет никаких оснований считать, будто Microsoft не позволит производителям ПК с помощью встроенного ПО отключать данную функцию и запускать неподписанный программный код, — признает в блоге Мэтью Гаррет из Red Hat. — Однако опыт подсказывает, что многие разработчики встроенного ПО и OEM-производители заинтересованы в предоставлении лишь минимальных функций встроенного ПО, необходимых для их рынка. Некоторые системы почти наверняка будут выпускаться с возможностью такого отключения”.
Гаррет заключает: “Наверное, сейчас еще нет повода для паники. Но имеются основания для беспокойства”.
Обсуждение в Linux-сообществе потенциальной угрозы со стороны UEFI и Microsoft началось вскоре после выхода в апреле нового варианта безопасной загрузки с помощью UEFI, отмечает сайт NetworkWorld. В июне Джек Эдж предупреждал о такой перспективе в статье на сайте LWN.net.
Столкнувшись с подобной мерой, дистрибутивы Linux могли бы обойти проблему, выпустив подписанные версии Linux. Но из-за проблем с лицензией Grub это потребовало бы применения загрузчика ОС, не использующего лицензию GPL, поясняет Гаррет. Проблему еще более усложняют планы дальнейшей интеграции ядра Linux с загрузчиком. В случае реализации таких планов для использования описанного обходного пути необходимо будет подписать также ядро, добавляет он.
UEFI содержит таблицы данных о платформе и вызовы сервисов загрузки и времени исполнения, доступные операционной системе и ее загрузчику. UEFI представляет собой дальнейшее развитие созданного усилиями Intel стандарта Extensible Firmware Interface, который в 2005 г. был переименован в Unified EFI и передан в ведение организации UEFI Forum. В 2006 г. создатель Linus Линус Торвальдс резко критиковал EFI, назвав этот стандарт “еще одним безумным порождением Intel (первым было ACPI)”.