本家ホームページには、BIOSエンジニアの仕事をやっていると書いていますが、そういえば、全然、BIOS関係の話を書いていませんでした。
まずは、BIOSって何?という所からいきますか。
まず、BIOS自体知らない人が多いですが、そういう人に自分の仕事の説明をする時は、「Windowsが起動する前のメーカーのロゴが出る部分を作ってます。」と大雑把に説明してます。
ちょっと知ってる人なら、「各デバイス(CPU/Memory/Video/HDD/FDD)の初期化をして、それらデバイスの違いを吸収し、業界標準のインターフェースを提供して、OSが起動できるようにする。」かな。でも、これで理解するような人は元々知っている事が多いですね。
面倒な時は、「プログラマーです」かな。それでも「SEですか?」なんて聞かれると、どう説明したらよいのか・・・ちょっと大げさに「パソコンの大事な部品を作ってます」なんて言う事も。
Windowsのアプリケーションならちょっとは説明しやすだろうと思います。BIOSは裏方さんなので、目立ちませぬ。例に出せるのが、さっきも挙げた、起動時のメーカーロゴぐらい。
そんな説明に困るようなBIOSも無けりゃWindowsを立ち上げる事さえ出来なくなる程、重要なプログラムです。最初は64KBに十分に収まるサイズだったのが、最新のBIOSでは、2MBにまで膨れ上がる場合もあります。
なんでこんなに膨れ上がったのか・・・主に、様々なデバイスへの対応で膨れ上がりました。まぁ、起動ロゴの表示などユーザーインターフェースも増えたのも一因です。
他には、オプションの機能の追加削除をしやすくするために冗長なコードになっているのもあります。
USB Memoryでは1GBを超える容量が当たり前になっていますが、未だにBIOSの世界では、ROMの部品の値段を下げるために、BIOSのサイズを小さくする圧力が大きいですね。
ノートPCはまだしも、デスクトップPCの場合は余計にそうです。512KBから1MBのROMに切り替える時も相当抵抗がありました。
そういう事で、アセンブラでより小さいコードを書く事がBIOSエンジニアとして必要なスキルでしたが、それもそろそろ必須ではなくなってきます。そうEFIの登場です。
EFIとは、Extensible Firmware Interfaceの略。コンセプトは、ドライバモデル。そしてC++でソースを書くようになります。アセンブラは極一部のみです。
コンパイラが吐くコードは、アセンブラで人間が書いたコードより大きくなるのは必然。EFIに対応したBIOSは平気で2MBのROMを要求してきます。
そして、EFIへの移行は時代の流れ(とされている)なので、PCメーカーといえども、それにあわせてより大容量のROMに切り替えざるを得ません。
まぁ、アセンブラ大好き人間としては、ちょっと複雑な気分ですが、新しいプラットフォームの立ち上げでもあるので、面白いです。
さて、そのEFIの対応機の発売ですが、既に、AppleのIntel CPUマックがEFIに対応しています。まぁ、過去のしがらみがないので、こんなに早く出すことが出来たのですが、他のPCメーカーは大変です。
なまじ、過去の遺産があるので、互換性の維持、OS/アプリケーションの対応、使い慣れた開発・評価ツールの変更、等、問題が山積です。
ということで、スムーズに行って、2009年に最初の機種がでるんじゃないかなぁ、なんて思ってます。
長くなったので、とりあえず、今日はこれまで。
最近のコメント