
オープンファームウェアは、コンピュータファームウェアシステムのインターフェースを定義する標準規格であり、かつては電気電子学会(IEEE)によって承認されていました。これはサン・マイクロシステムズでOpenBootとして知られており、サン、アップル、[ 1 ] IBM、ARMなどの複数のベンダーによって使用されています。
オープンファームウェアを使用すると、システムはプラットフォームに依存しないドライバをPCIデバイスから直接ロードできるため、互換性が向上します。
Open Firmwareには、 Forthプログラミング言語を使用するコマンドラインインターフェースを介してアクセスできます。
オープンファームウェアは、IEEE 1275-1994というIEEE規格で定義されていました。この規格は 1998 年以降オープンファームウェアワーキンググループ (OFWG) によって再確認されておらず、そのため 2005 年 5 月に IEEE によって正式に撤回されました。[ 2 ]
Open Firmwareは、デバイスツリーと呼ばれるシステムのハードウェア構成を記述する標準的な方法を定義します。[ 3 ]これにより、オペレーティングシステムはホストコンピュータの構成をよりよく理解できるようになり、ユーザー構成やハードウェアポーリングへの依存度を低減できます。例えば、Open Firmwareは、ハードウェア監視用の温度センサーなどのスレーブI2Cデバイスを確実に識別するために不可欠です。[ 4 ] : §5.1一方、汎用ハードウェア上でlm_sensorsなどのソフトウェアが行うように、I2Cバスをブラインドプローブする代替ソリューションは、特定の状況下で深刻なハードウェア問題を引き起こすことが知られています。[ 4 ] : §5.2
Open Firmware Forthコードは、命令セットアーキテクチャに依存しないバイトコードであるFCodeにコンパイルできます。PCIカードには、FCodeにコンパイルされたプログラムを含めることができ、これは任意のOpen Firmwareシステムで実行できます。このようにして、起動時の診断、構成コード、およびデバイスドライバを提供できます。FCodeは非常にコンパクトであるため、ディスクドライバはわずか1~2キロバイトしか必要としません。したがって、Open Firmwareを使用するSunシステムとMacintoshでは、同じI/Oカードの多くを使用できます。FCodeはANS ForthとOpen Firmwareライブラリのサブセットを実装しています。
対話型プログラミング言語に基づいているため、Open Firmware は新しいハードウェアを効率的にテストして起動するために使用できます。これにより、ドライバを対話的に記述およびテストできます。エンドユーザーの診断に適したグラフィカルインターフェイスの前提条件は、動作するビデオおよびマウスドライバのみです。Apple は、多くの Power Macintosh にこのような診断「オペレーティングシステム」を搭載しました。Sun も、カスタマー サービス サポートおよびハードウェア製造チームが使用する OpenBoot Diagnostics (OBDiag) と呼ばれる FCode ベースの診断ツール スイートを搭載しました。[ 5 ]
2006年以降、Sun OpenBoot、Firmworks OpenFirmware、Codegen SmartFirmwareなど、いくつかの商用版Open Firmwareがオープンソースコミュニティに公開されています。ソースコードはOpenBIOSプロジェクトから入手可能です。Sunの実装はBSDライセンスで提供されています。