Не BIOS единым…

Казалось бы, за последние два десятка лет в персональных компьютерах не по одному разу сменилось всё – от интерфейсов до компоновки плат. Но если вдуматься, то есть один элемент, практически не изменившийся с начала 80-х. Речь идёт о такой неотъемлемой части ПК, как BIOS.


Из глубины веков
Для начала давайте вспомним, что такое BIOS и какие функции она выполняет. Аббревиатура BIOS расшифровывается как Basic Input-Output System, что означает «базовая система ввода-вывода». По сути, это небольшая программа, зашитая в одну из микросхем материнской платы ПК и исполняемая сразу после включения компьютера. Её основное назначение, как можно догадаться по названию, – обеспечение базового взаимодействия между основными компонентами ПК. После запуска BIOS ищет оборудование (тактовый генератор, процессор и кэш-память, чипсеты, память, PCI-устройства, графический контроллер, устройства хранения данных, устройства ввода-вывода). Затем, по возможности, программа проверяет его функциональность и производит инициализацию перед запуском операционной системы. Результаты выполнения этого этапа, называемого POST (Power On Self Test, «самопроверка после включения питания»), можно наблюдать на экране в первые секунды работы компьютера. Затем BIOS передаёт управление загрузчику ОС – и на этом её функции завершаются.
Что интересно, все современные BIOS, производимые по большей части компаниями Award (Phoenix) и AMI, являют собой 16?битные приложения, исполняющиеся в очень ограниченном объёме памяти. При этом, будучи написанными на ассемблере, они очень плохо поддаются модификации. Даже производители материнских плат не могут самостоятельно изменять код BIOS, поскольку упомянутые выше разработчики продают свои программы по лицензии, поставляя их в виде готовых бинарных образов. В лучшем случае – с возможностью изменять внешний вид и набор настроек, доступных пользователю. Отсюда – многочисленные проблемы с работой оборудования, отсутствие поддержки новейших устройств и тому подобные неприятности, с которыми, в конечном итоге, приходится сталкиваться конечному пользователю – нам с вами. При этом, обновление базовых программ – занятие далеко не тривиальное. Тем более, что новые версии выходят не так уж часто, и далеко не всегда несут необходимые исправления.
А ведь фактически, уже давно нет никакой необходимости в такой структуре базовых микропрограмм. Операционные системы «последосовой» эпохи неплохо справляются с инициализацией оборудования и без участия BIOS, предоставляя пользователю, помимо всего прочего, широкие возможности по настройке устройств.

EFI
Мало кто знает, что в компьютерах линейки Mac, производимых компанией Apple, BIOS уже давно нет. Вместо них самая прогрессивная IT-компания использует разработанный Intel проект Extensible Firmware Interface (EFI; «Рамочная инфраструктура для развития платформы на базе расширяемого микропрограммного интерфейса»).
EFI – это альтернатива BIOS, которая ускоряет загрузку, улучшает управляемость и расширяет возможности компьютера. В архитектуре рамочной инфраструктуры задача инициализации системы и предоставления сервисов операционной системы решается в несколько этапов. Каждый этап характеризуется ресурсами, которые на нём доступны, правилами, которым должен подчиняться программный код для этого этапа, и результатами исполнения этапа (каждый этап опирается на результаты работы предыдущего). Вся структура EFI строится из отдельных модулей, которые подключаются к базовому каркасу. При этом, в зависимости от конкретной платформы, могут подключаться различные наборы модулей, что делает структуру базовой микропрограммы более гибкой, а также позволяет расширять её с помощью модулей от сторонних разработчиков. Последнее, впрочем, может создать дополнительные проблемы, не свойственные нынешнему поколению монолитных BIOS. Для предотвращения этих проблем рамочная инфраструктура предусматривает эффективные средства управления последовательностью исполнения драйверов EFI, абстрагирования интерфейсов драйверов EFI и управления совместно используемыми ресурсами. Перед началом работы возможна криптографическая проверка как самой рамочной инфраструктуры, так и драйверов, позволяющая построить доверительную цепочку.
Модули EFI располагаются в логическом пространстве долговременной памяти, называемом микропрограммным томом (это может быть энергонезависимая память или другие средства хранения) и взаимодействуют между собой и с системой посредством вызываемых интерфейсов, именами которых служат глобально уникальные идентификаторы (GUID). Такая уникальность позволяет создавать расширяемые сервисы без ограничений и конфликтов между стандартными и платформенно-зависимыми сервисами.
Принцип интерфейсов, заложенный в основу конструкции EFI и рамочной инфраструктуры, позволяет отделить программные абстракции от конкретной микроархитектуры и топологии платформы. В результате, рамочную инфраструктуру можно без труда перенести на настольные системы, серверы, встраиваемые и мобильные системы с 32- или 64-разрядной архитектурой./
Кроме всего прочего, модульная структура позволит добавлять в аналог BIOS Setup программы с гораздо большей функциональностью. К примеру – полнофункциональные средства для работы с разделами жёстких дисков.

Заключение
Прочитав эту статью, вы наверное, подумали, что всё это – фантастика из будущего? Смею вас заверить, что нет. На прошлой неделе стало известно, что компания MSI планирует использовать EFI в своей новой системной плате P35 NEO3, которая должна поступить в продажу в уже феврале. Разработчики обещают, что пользователи получат дружественный многоязычный интерфейс Setup с возможностью управления мышкой, а также возможность работы с образами жёстких дисков, что позволит быстро восстанавливать систему после аварий, а также заблаговременно делать резервные копии содержимого диска.
Будущее уже стучится в дверь!

При написании статьи использовались материалы сайтов intel.com и overclockers.ru.

Теги:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *