Open Firmware (OpenBoot) — стандарт, определяющий интерфейсы компьютерной прошивки, необходимой для начальной настройки узла и загрузки операционной системы. Разработан Sun Microsystems и применялся компаниями Sun (впоследствии — Oracle), Apple, IBM и другими производителями не-x86-компьютеров (на x86-машинах традиционно применяется BIOS). Open Firmware позволяет системе загружать платформенно-независимые драйверы напрямую из PCI.

Доступ к Open Firmware может осуществляться с помощью командной оболочки на языке Forth. Большая часть кода разработана на языке Forth. Код Forth может быть скомпилирован в байт-код FCode, независимый от таких деталей компьютерной архитектуры, как набор инструкций и иерархия памяти. Поэтому Open Firmware предоставляет платформенно-независимые средства для диагностики во время загрузки и для конфигурирования. FCode является очень компактным, например, драйвер диска может занимать 1—2 килобайта.

Несколько коммерческих продуктов на основе Open Firmware были переданы в свободное использование в 2006 году, включая Sun OpenBoot, Firmworks OpenFirmware и Codegen SmartFirmware; проект OpenBIOS, также реализующий спецификацию, изначально с конца 1990-х годов выпускался под лицензией GPL.

Доступ править

На системах Sun SPARC интерфейс Open Firmware (OpenBoot) доступен до начала загрузки операционной системы. Доступ во время работы системы осуществляется нажатием комбинации клавиш Stop+A (L1+A). В операционной системе Solaris для изменения конфигурации OpenBoot существует команда eeprom.

На компьютерах Macintosh на основе PowerPC доступ к Open Firmware осуществляется нажатием сочетания ⌘ Cmd+⌥ Option+O+F при включении. Эта функциональность в основном используется разработчиками; для конечных пользователей существует доступ через графический интерфейс. Некоторые изменения можно осуществить с помощью команды nvram.

На Pegasos доступ осуществляется нажатием клавиши Esc.

На системах IBM POWER, Open Firmware доступен через SMS Boot Menu, которое вызывается нажатием 1 или F1 во время загрузки.

Ссылки править