Введение
Сегодня можно смело открывать шампанское – в компьютерной индустрии заключено одно из самых ярких соглашений за последние годы.
В воскресный день в конце апреля в Сиэтле собрались три крупнейших компьютерных производителя, три крупнейших производителя ключевой программной логики, два основных производителя CPU и известный производитель коммерческих операционных систем. Они собрались, чтобы договориться о единой реализации. Каждая из компаний видит будущее по-своему, от глобальных сетей “тонких” настольных ПК и массивных серверов до беспроводных коллективных сетей, состоящих из карманных мультимедийных серверов. Но все они сходятся в одном. Компании желают заменить базовую систему ввода/вывода (Basic Input/Output System, BIOS), которая вот уже 24 года является “свечой зажигания” каждого компьютера x86.
Журналисты, в большинстве своём, не обратили достаточно внимания на создание в индустрии нового консорциума: Unified Extensible Firmware Interface (UEFI) Forum, который быль вскользь анонсирован в конце Windows Hardware Engineering Conference (WinHEC). Хотя бы один раз IBM, HP, Dell, American Megatrends (AMI), Phoenix Technologies, Insyde Technologies, Intel, AMD и Microsoft нашли точки взаимопонимания. Раньше эти компании давали собственные презентации, в которых они рассказывали о революционных будущих приложениях, типа встроенной прошивки с автоматической функцией “лечения”, или даже выдвигали совсем уж фантастические идеи – вроде ускорения Windows. Целью компаний было усилить интерес пользователей к инициативам, которые, явно или неявно, избавляли систему от чипа BIOS. Но, попробовав за два десятка лет разные задумки, компании поняли, что всё это не сработало. Поэтому теперь они решили объединить свои усилия ради единой цели, которая поможет выполнить и собственные задачи компаний.
“Настал момент, когда наследственная BIOS уже не может справляться с нуждами грядущих операционных систем и аппаратных платформ, – заявил Ричард Брюнер (Richard Brunner), один из ведущих разработчиков архитектуры AMD64. – Наследственная BIOS, как мы думаем, существовала столь долго из-за преобладания определённых классов наследственных устройств. Да и будем откровенны, бездействие как производителей операционных систем, так и разработчиков BIOS, привело к тому, что на рынке до сих пор не было каких-либо достойных альтернатив, которые бы поддерживало достаточно большое число игроков индустрии. Как мы думаем, сегодня наконец-то достигнут момент, когда даже самые “громоздкие” наследственные устройства ввода/вывода начинают исчезать”.
“Каждый, наверное, согласится с тем, – утверждает Джонатан Джозеф (Jonathan Joseph), исполнительный вице-президент Insyde Technologies, – что уже настало время заменить BIOS чем-либо более современным и продуктивным. Но чем заменять – у каждого до сих пор существовало своё мнение”.
Пример установочного экрана InsydeH2O, который использует спецификацию EFI 1.1 и окружение Framework. Страница технической поддержки выводится через встроенный web-браузер, поэтому пользователь может получить доступ к базе знаний и поддержке даже без операционной системы (которая, к примеру, дала сбой и не загружается).
Процессоры 8086 (1978 – 2010)
BIOS современных платформ x86 и молекула ДНК имеют одно общее: они, по большей части, состоят из остаточного кода, который просто игнорируется, так как он уже не функционирует в современных системах, но должен оставаться, чтобы сохранять общую структуру.
“Ряд игроков в индустрии, – сказал Ричард Брюнер из AMD, – хотели бы использовать стек прошивки, который поддерживает современные наборы инструкций и структур, типа 32-битных и 64-битных указателей, а не ухищрения, к которым приходится прибегать для псевдо-реального режима в 16-битной BIOS”.
Одна из рудиментарных функций BIOS, которая датируется ещё моментом, когда в рекламе IBM появился Чарли Чаплин, определяет, как операционная система или драйвер устройства могут обращаться к BIOS для запроса на передачу данных. Для этого нужно активировать ассемблерные процедуры прерывания, выставляя регистры-ловушки под названием INT 13h и INT 19h. Процедуры прерывания делают именно то, что указано в их названии – создают задержки и разрушают все преимущества многопоточности. С помощью UEFI связь с “железом” производится через более современную и менее сложную модель API. По всей видимости, операционные системы вроде Windows Longhorn и будущей Linux смогут поддержать новый API, не заставляя производителей устройств переписывать текущие драйверы (хотя может потребоваться перекомпиляция под новые ОС).
“Прошивка UEFI будет инициализировать “железо”, чтобы вы могли загрузить операционную систему, но не будет обеспечивать runtime-интерфейс, – сообщил Джонатан Джозеф из Insyde. – Runtime-интерфейс будет по-прежнему обеспечиваться драйверами устройств на уровне операционной системы. Поэтому ничего из того, что мы будем делать в мире пре-ОС, не изменит существующего положения вещей”.
Новая прошивка должна более чётко разбираться в минимальных возможностях существующего “железа”, не говоря уже о поддержке 32-битного защищённого режима. “Мы можем узнать, что платформа оснащена сетевым устройством, – пояснил Брайан Ричардсон, менеджер по продукту EFI и технический вдохновитель American Megatrends, производителя AMI BIOS. – Мы можем узнать, что система способна работать в 32-битном защищённом режиме, что у нас есть хорошая VGA-карта, способная вывести большее разрешение, чем 640x480x16 бит”.
В системе UEFI от всех функций “наименьшего общего множителя”, которые сохранялись в BIOS, наконец-то можно будет избавиться. Чтобы это произошло, продолжает Ричардсон, компьютер x86 должен прийти к важному понимаю себя. Это Ричардсон описывает так: “Посмотри, хотя я и не операционная система, но я больше не 8086. Я могу “поднять” стек TCP/IP, я могу дать пользователю интерфейс мыши и клавиатуры, к которому он привык, я могу выйти за пределы текстового интерфейса и дать возможность пользователю что-то сделать за пределами операционной системы. Я могу помочь восстановить или обслужить платформу, на которой произошёл сбой ОС”.
Но, возможно, самое значимое изменение следующего поколения BIOS платформы x86 заключается в распознавании устройств хранения, будь то вращающиеся диски или накопители с линейной адресацией. После введения EIDE в 1986 году, специальные сервисные процедуры INT 13h использовали математические вычисления, чтобы преобразовать линейные адреса LBA в формат “головка/сектор/диск”, которые соответствуют жёсткому диску с ёмкостью меньше 2,8 Гбайт, – и неважно, каков его реальный объём.
С помощью интерфейса UEFI любое устройство хранения адресуется стандартным, линейным образом, без математических “трюков” в фоне. Это позволяет, считает Ричардсон, вставить USB-брелок в систему, где загрузочное устройство вышло из строя. С помощью оболочки прошивки UEFI администраторы могут выполнить скрипты или другие утилиты с USB-брелока. Поскольку оболочка работает в защищённом режиме, утилиты не будут ограничены одним мегабайтом адресного пространства, в отличие от современного реального режима. И обычные пользователи не получат доступ к этим утилитам, так как они находятся не в компьютере и даже не в сети, а на брелоке администратора.
“Прошивка UEFI может легко расширяться, – сказал Брюнер, – достаточно вставить USB-брелок. После этого можно подключить дополнительные драйверы, приложения UEFI. Тем самым, открываются прекрасные возможности, которые нельзя получить с наследственным BIOS”.
Intel берёт инициативу в свои руки
Вместо сборки и тестирования нового экспериментального BIOS в закрытой лаборатории, Intel решила по-своему продемонстрировать 32-битную прошивку на 32-битной платформе. В 2000 году компания опубликовала первую полную спецификацию Extensible Firmware Interface, предназначенную для систем Itanium. Принципиальной целью EFI было определить формат инструкций и синтаксиса, которые операционная система будет использовать для запроса данных и сервисов от локальной прошивки.
Чтобы помочь продвижению EFI, инженеры Intel избрали очень умную стратегию и показали индустрии, что компания не желает создавать закрытую BIOS “только для себя”. Документация Intel по EFI была написана таким образом, что описывала только связь между ОС и прошивкой – то есть интерфейс. Реализация интерфейса в прошивке оставлялась на совесть производителей BIOS и OEM. Так что EFI не заменяла BIOS, а стимулировала инженеров сделать это самостоятельно.
“Роль прошивки, – сказал Майк Ричмонд (Mike Richmond), менеджер Intel по платформенному ПО, – заключается, главным образом, в инициализации чипсета и платформы, чтобы ОС смогла загрузиться. Прошивка вовсе не обязана выполнять runtime-функции. Unified EFI является спецификацией интерфейса между прошивкой и операционной системой, а также между картами, которые желают провести тест power-on-self-test (POST), и нижележащей платформой. EFI, сама по себе, не решает “проблему BIOS”, так как вы можете наложить слой EFI поверх BIOS. В то же время, этот слой “отвязывает” ОС от зависимостей в BIOS, поэтому разработчики могут внести некоторые инновации и, по сути, принципиально обновить прошивку ниже слоя EFI”.
Чтобы показать работоспособность EFI, Intel разработала “рекомендуемую реализацию” EFI для Itanium и IA-32, названную Platform Innovation Framework, или просто “Framework” (часто её называют по кодовому имени “Tiano”). Если Framework рекомендуется реализовывать в поставляемых системах Itanium, то другие компании могут свободно создавать производные Framework для своих собственных продуктов, включая реализации EFI для x86 (x64). В 2003 году появились две линейки, AMI Aptio и InsydeH2O, которые создавались при поддержке и сотрудничестве с Intel.
Пример графического стартового экрана Aptio, текущей прошивки AMI на основе EFI. Обратите внимание на полноцветные фотографии, требующие не только режима выше VGA, но и достаточного количества памяти. Будущие версии Aptio будут поддерживать новый стандарт UEFI.
Intel соблазнила разработчиков платформ следующим. Спецификация EFI 1.1 подчёркивает стремление Intel “предоставить для новых платформ возможность ввести новые функции, увеличивающие возможности платформы и не требующие внесения нового кода в загрузочную цепочку ОС”. Другими словами, она устраняет барьер, который не позволял разработчикам делать то, что им хотелось. И в конце 2004 года, в качестве ещё одного знака доброй воли, Intel перевела код Tiano Foundation в открытый вид, снабдив лицензией GPL и опубликовав на TianoCore.org.
Ричмонд сообщил THG.ru о том, что маркетинговая стратегия компании преследует три ключевые цели. Во-первых, вдохновить производителей BIOS, чтобы они добавили новые и полезные технологии в прошивку, помимо того, что Intel создала для Framework самостоятельно. Во-вторых, обеспечить возможность создания “реализаций прошивок, работающих для нескольких производителей”. И, в-третьих, передав кому-нибудь ответственность за эти реализации. “Для Intel невозможно, – сказал Ричмонд, – поддерживать все компании, создавая конкретные дизайны. У нас просто нет на это сил”.
“У нас превосходные отношения со всеми производителями BIOS, – сообщил также Ричмонд, а затем добавил: – Они достаточно долго понимали, что у нас нет интересов и намерений конкурировать с ними в их бизнесе”.
AMD тоже не лыком шита
В марте этого года, на Форуме Intel для разработчиков, компания Intel представила EFI в качестве компонента технологии Active Management Technology (iAMT), которая предназначена для реализации таких функций, как виртуализация систем хранения и удалённое управление на аппаратном уровне. Роберт Хайс (Robert Hays), менеджер по маркетингу продуктов Intel, описал сценарий сбоя жёсткого диска, когда начинают работать iAMT и EFI. Во-первых, iAMT должна перекрыть доступ системы к сети, ограничив область поломки локальной системой. Если операционная система даст сбой, то EFI попытается восстановить жёсткий диск, стараясь сообщить о процессе работы системному администратору. Но так как сеть выключена, то EFI не добьётся успеха. Поэтому в дело включится iAMT, обеспечив, по словам Хайса, “сетевое перенаправление системных ресурсов, чтобы ИТ-специалист смог получить удалённый доступ к ПК. После перезагрузки активируется EFI, BIOS запустит диагностику, и ответственное лицо сможет удалённо выполнять приложения диагностики на системе”. И всё это с учётом отказа ОС.
Совместная работа EFI и iAMT кажется довольно невинной, но даже некоторые партнёры Intel увидели в ней намёк на монополию. “За многие годы работы с Intel я чётко усвоил, – сказал Брайан Ричардсон из AMD, – что все действия этой компании направлены на то, чтобы рано или поздно продать чип. И неважно, программная это инициатива или аппаратная. Или инициатива, направленная на производство какого-либо продукта третьей стороной. Intel остаётся компанией-производителем чипов”.
В ответ на запрос AMD компания AMI собрала весьма интригующую демонстрационную платформу на WinHEC в Сиэтле. По информации Брайана Ричардсона, демонстрация доказала, что “вы можете реализовать EFI не на коде Intel [Tiano], но на спецификациях Intel [EFI 1.1], и создать систему, которая будет прекрасно загружаться на кристалле другой компании. В демонстрационной платформе нет ни одного чипа Intel. Используется чипсет AMD, сетевой контроллер Broadcom и SCSI-контроллер LSI, плюс двуядерный процессор AMD, как раз анонсированный недавно”.
Именно эту реализацию Intel умышленно оставила, и именно её она и боится. Перед нами как раз EFI без iAMT. И эта реализация работает на двуядерной платформе x86 (x64), которая подорвала многоядерные планы Intel предыдущей осенью. “Это не только не-Intel кремний, – сказал Ричард Брюнер из AMD, – в демонстрации AMI нет ни одной крупицы исходного кода Intel”. Возможно, эта замена BIOS будет носить знакомый зелёный логотип.
Через неделю после этого события был организован Unified EFI Forum.
Рубеж перед операционной системой
Сегодня перед индустрией стоит важный вопрос: насколько функциональной будет прошивка UEFI? Вполне уверенно можно сказать, что в ней должны содержаться функции по восстановлению и ремонту системы. Но стоит ли добавлять в неё функции управления, которые обычно принадлежат миру ОС, – так и остаётся вопросом.
Отсутствие BIOS открывает большой простор для “железа”. Брайан Ричардсон из AMD сообщил нам, что “открывается множество возможностей, о которых мы раньше даже и не помышляли”. Прошивка AMI Aptio включает функцию, которую в рекламных проспектах описали как “EFI – альтернативу DOS”, подразумевая оболочку с командным интерфейсом. AMI ясно дала понять, что оболочка Aptio будет расширена до графического интерфейса. Кстати, конкурент Phoenix уже выпустил TrustedCore firmware suite, который даёт администраторам средства графического отображения. “Даже сотовый телефон даёт лучший интерфейс настройки, чем BIOS”, – прокомментировал Ричардсон.
Члены UEFI Forum достаточно громко заявили, что не позволят какой-либо одной компании диктовать индустрии, какие приложения должны появиться в новой прошивке. “Форум создан для выработки спецификаций, – сказал Ричард Брюнер из AMD. – Именно в этом цель форума, точка. Он не предназначен для продвижения какой-либо одной спецификации, он не будет ни диктовать чего-либо индустрии, ни заставлять индустрию пойти на какие-то шаги. Я очень чувствительно отношусь к тому, что некоторые люди считают целью форума диктовку индустрии того, что ей надо делать”.
Но хотя UEFI Forum и отделяет себя от конечных реализаций, Джонатан Джозеф из Insyde пояснил THG.ru, что “существует отдельная организация, созданная с целью переноса некоторых элементов Intel Framework в спецификации уровня всей индустрии”. Эту группу ещё нельзя назвать официальной, хотя она состоит из именитых производителей BIOS и кремниевых чипов, среди них есть и производители графических подсистем. Группа, возможно, получит название “The Firmware Foundation.”
Производители говорят о том, что будут вносить только те изменения, которые желают получить потребители. 24 года на рынке царило молчание по поводу массового удаления BIOS с платформы x86. На протяжении этого времени даже самые смелые обещания производителей о сказочных преимуществах для конечного пользователя так и не смогли заменить целостность и совместимость инфраструктуры эры 8086. Посмотрим, к чему приведёт деятельность UEFI Forum.