バイナリ・ブロブバイナリ・ブロブ(binary blob)とは、フリーソフトウェアコミュニティにおいてフリーまたはオープンソース(FLOSS)なオペレーティングシステムのカーネルにロードされるオブジェクトファイルについて、公開されかつ利用可能なソースコードが存在しない場合のものを非難する用語である。この用語は、通常、カーネルとは無関係に動作するコードに対しては適用されない。そのような例は例えばBIOSコード(含むとする意見もある)、ファームウェアイメージ、ユーザー空間プログラムである(詳しくはプロプライエタリソフトウェアという記事を参照)。 コンピュータハードウェアベンダーが製品の完全な技術文書を提供することで、オペレーティングシステム開発者はオペレーティングシステムのカーネルの一部であるハードウェアデバイスドライバを作成することができる。しかしながら、NVIDIAのような数社のベンダーはいくつかの製品において完全な文書を提供しておらず、その代わりバイナリのみのドライバ(バイナリ・ブロブ)を提供することで済ませてしまっている(詳細は英語版ウィキペディアの記事を参照)。このもっとも一般的な実例として挙げられるデバイスドライバは、描画高速化用ドライバ(またはGPUドライバ)、ネットワークデバイスドライバ(ネットワーク・インタフェース・コントローラ、Network interface controller, NIC)そしてRAIDコントローラドライバである[1]。 バイナリ・ブロブの容認/排除ハードウェアに関する文書やデバイスドライバのソースコードがハードウェアベンダーから提供されない場合、いくつかのオペレーティングシステムプロジェクト、例えば、NetBSD、FreeBSD、DragonFly BSDそして大半のGNU/Linuxディストリビューションはハードウェアが使用できないことを回避する為や、これらブロブが提供する拡張的機能を手っ取り早く得るためにバイナリ・ブロブを受け入れてしまっている[2][3]。 OpenBSDプロジェクトは、如何なるバイナリ・ブロブも彼らのソースツリーに受け入れることを認めない有名なポリシーを持っている。バイナリ・ブロブは、未確認、取り返しのつかない潜在的なセキュリティ欠陥を持っているということだけではなく、彼らの作り出したオープンかつフリーなソフトウェアを蚕食する脅威であるとみなしているためである[4]。 DebianプロジェクトはLinuxカーネルに含まれるフリー、非フリー(Debianの用語におけるnon-free)なバイナリ・ブロブをアーカイブに含めている。しかし、Debian社会契約、そしてその一部であるDebianフリーソフトウェアガイドライン(Debian Free Software Guildlines; DFSG)に基づき、明確にnon-freeであると目印をつけてフリーなパッケージアーカイブからは分離している[5]。Debian 6.0 (コードネーム: squeeze)リリースからは標準のカーネルから完全にバイナリ・ブロブを排除したと宣言している[6]。 フリーソフトウェア財団(Free Software Foundation; FSF)はバイナリ・ブロブに対抗する為のキャンペーンを活発に行っている[7]。FSFはOpenBSDのポリシーには欠陥があると見なしており、BSDコミュニティが「ブロブ」を(FSFの観点に基づく)非フリードライバ(non-free drivers)に限定し、非フリーファームウェアを除外している(not non-free firmware)点をその理由として挙げている[8]。 バイナリ・ブロブの問題バイナリ・ブロブの引き起こす問題はいくつかある[9]:
ラッパー経由による利用他のオペレーティングシステム向けに提供されているバイナリ・ブロブを利用するため、いくつかのプロジェクトは、ラッパーを用意している。例えば、Microsoft Windows向けに作成されたネットワークドライバが利用するNDIS APIを実装した、LinuxのNDISWrapper、FreeBSD・NetBSDのProject Evilがそれに当たる。 機器のファームウェアファームウェア、すなわちいくつかのハードウェアに接続しているオンボードマイクロコントローラが必要とするソフトウェアは、通常バイナリ・ブロブとは見なされない。多くの機器において、ファームウェアはマザーボード上の不揮発性フラッシュメモリ内に保存されている。しかし、ファームウェアのコスト削減と更新を容易にするため、いくつかのデバイスにおいては、SRAMのみ備え、システムに接続されるタイミングで初めてハードディスクなどのデバイスとは別の記憶装置からファームウェアをアップロードするようホストオペレーティングシステムに要求するものがある(このような機器はUSB機器に多い)。オペレーティングシステムドライバにはこのようなかたちで存在するものも多いが、それは単にデバイスの保存用メモリにコピーされるだけで、CPUで実行されない、また未確認のセキュリティ欠陥に対する懸念は幾分少ない。OpenBSDプロジェクトは、バイナリファームウェアイメージは受け入れており、ライセンスで許され得る限り、再配布をおこなっている[10]。 BIOSBIOSは、ブートローダの呼び出しやレガシーなリアルモードアプリケーションをサポートする、多数のPC/AT互換機にとっては極めて重要なコンポーネントである。フリーソフトウェア財団は、corebootのような自由なBIOSファームウェアの開発並びにキャンペーンを展開している[11]。 脚注注釈
出典
関連項目
外部リンク
|