Open Firmware

Open Firmware（またはOpenBoot）はハードウェアに依存しないファームウェア（オペレーティングシステムをロードするソフトウェア）であり、サン・マイクロシステムズのミッチ・ブラッドリーによって開発され、IEEEにより標準化され、サン・マイクロシステムズ、Apple、IBMなどによって使われている。

概要 
Open Firmwareは、AppleのNuBus後のPowerPCベースのMacintosh（CHRPベースのPower Macintosh）、サン・マイクロシステムズのSPARCベースのワークステーションとサーバ、IBMのPOWERアーキテクチャの計算機システム（CHRPベースのRS/6000 PCIモデル）、Pegasosの計算機システム、そしてOLPCによって設計されたラップトップ（OLPC XO-1）など、色々な機種で採用された。

Open FirmwareはBSDライセンス下で利用可能である。提案されているPower Architecture Platform Referenceでも、Open Firmwareベースのプラットフォームである。それらのプラットフォーム上では、Open FirmwareはPC上でのBIOSの動作とまったく同じことができる。

Open FirmwareはForthベースのシェルインタフェースを持つ。Forthは強力な高レベル言語で、たとえば、Open Firmware上でハノイの塔の問題を解くことが可能である。

Open FirmwareはIEEEによって、IEEE 1275-1994として標準化された。最新仕様については、オーストリアのウィーン工科大学コンピュータ言語研究所のForth研究プロジェクトから利用可能である。

SunのOpenBootやFirmwoksのOpenFirmware、CodegenのSmartFirmwareなど、いくつかのOpen Firmwareの商用実装は、2006年にオープンソースコミュニティにリリースされた。このソースはOpenBIOSプロジェクトで公開されている。

利点 
Open FirmwareのForth言語によるコードはFCode(と呼ばれるバイトコード)にコンパイルされ、特定のコンピュータアーキテクチャに依存した機械語に変換されない。つまり、あるI/Oカード用のコードを含んでいるOpen Firmwareは、他のOpen Firmwareを使うどんなシステム上でも動作することが可能である。この方法により、あるI/Oカードの起動時診断や設定用コード、そしてデバイスドライバは、他のOpen Firmwareが動作するシステム上でも使える。したがって、多くのI/OカードがSunのマシンとMacintoshの両方の上で動作することが可能である。

また、インタラクティブなプログラミング言語をベースとしているので、Open Firmwareはコードのテストや新しいハードウェアへの追従を素早く行うことができる。

アクセス 
幾つかのアーキテクチャではオペレーティングシステムのブート前にコンソールからOpen Firmwareのプロンプトを通してテキストベースで対話的にアクセスすることが可能である（たとえばMacintoshなら、起動時にoptionキーとcommandキー、さらにO(オー)キーとFキーを同時に押し続けると、Open Firmwareにアクセスできる）。認識されたデバイスはForthの名前空間に現れ、これを使い入出力デバイスの指示等を行う。バス別に、規定された名前空間が存在し、構成情報を取得し設定することも出来る。

Open Firmwareは"ok"をプロンプトとして表示する。

関連項目 
 BIOS
 Extensible Firmware Interface (EFI)
 Unified Extensible Firmware Interface (UEFI)
  - OpenFirmware標準の別実装
 LinuxBIOS - LinuxをベースとしたフリーのBIOS実装。Corebootを参照。
 
 Advanced Configuration and Power Interface (ACPI)
 Power On Self Test (POST)
 BootX - Mac OS XのPowerPC用ブートローダー

外部リンク 
 1275 Open Firmware Home Page
 OpenFirmware
 OpenBIOS
 SUN's SPARC OBP documentation
 IEEE 1275の最新仕様
 SmartFirmware
 FirmWorks
 Firmworksのソースコード
 SmartFirmwareのソースコード
 IBM POWER上のブートプロセス

ファームウェア
IEEE標準
Mac OS
サン・マイクロシステムズ