Открытая прошивка — это стандарт, определяющий интерфейсы системы встроенного программного обеспечения компьютера , ранее одобренный Институтом инженеров по электротехнике и электронике (IEEE). Он был разработан компанией Sun Microsystems , где он был известен как OpenBoot , и использовался многими поставщиками, включая Sun , Apple , IBM и ARM . [ нужна цитата ]
Открытая прошивка позволяет системе загружать независимые от платформы драйверы непосредственно с устройства PCI, что улучшает совместимость.
Доступ к открытой прошивке можно получить через интерфейс командной строки , который использует язык программирования Forth .
Открытая прошивка была описана стандартом IEEE как IEEE 1275-1994 . Этот стандарт не был подтвержден Рабочей группой по открытому встроенному ПО (OFWG) с 1998 года и поэтому был официально отменен IEEE в мае 2005 года. [1]
Открытая прошивка определяет стандартный способ описания аппаратной конфигурации системы, называемый деревом устройств . [2] Это помогает операционной системе лучше понять конфигурацию главного компьютера, меньше полагаясь на пользовательскую конфигурацию и опрос оборудования. Например, открытая прошивка необходима для надежной идентификации подчиненных устройств I 2 C , таких как датчики температуры для аппаратного мониторинга , [3] : §5.1 , тогда как альтернативное решение - выполнение слепого зондирования шины I 2 C , как это должно быть сделано Программное обеспечение, такое как lm_sensors , на обычном оборудовании, как известно, при определенных обстоятельствах приводит к серьезным проблемам с оборудованием. [3] : §5.2
Код Forth открытой прошивки может быть скомпилирован в FCode, байт-код , который не зависит от архитектуры набора команд . Карта PCI может содержать программу, скомпилированную в FCode, которая работает в любой системе с открытой прошивкой. Таким образом, он может предоставить диагностику во время загрузки , код конфигурации и драйверы устройств . FCode также очень компактен, поэтому драйверу диска может потребоваться всего один или два килобайта. Таким образом, многие из одних и тех же карт ввода-вывода можно использовать в системах Sun и Macintosh, в которых использовалась открытая прошивка. FCode реализует ANS Forth и подмножество библиотеки Open Firmware.
Открытая прошивка, основанная на интерактивном языке программирования, может использоваться для эффективного тестирования и установки нового оборудования. Это позволяет писать и тестировать драйверы в интерактивном режиме. Рабочие драйверы видео и мыши являются единственным условием для графического интерфейса, подходящего для диагностики конечного пользователя. Apple поставляла такую диагностическую «операционную систему» во многие Power Macintosh. Sun также поставила набор диагностических инструментов на основе FCode под названием OpenBoot Diagnostics (OBDiag), который используется группами поддержки клиентов и производителями оборудования [4].
С 2006 года сообществу открытого исходного кода было выпущено несколько коммерческих реализаций открытой прошивки, включая Sun OpenBoot, Firmworks OpenFirmware и Codegen SmartFirmware. Исходный код доступен в проекте OpenBIOS . Реализация Sun доступна по лицензии BSD . [ нужна цитата ]