2012-05-08

完全に自由なソフトウェア環境を求めて

完全に自由なソフトウェア環境のPCを手に入れるのは可能だろうか。少し考えてみた。

まず、BIOSが自由でなければならない。とすると、マザーボードの選択は非常に限られる。

Supported Motherboards - coreboot

corebootのサポートは、AMD用のマザーボードの方が圧倒的に優れている。これは、AMDはcorebootのために、チップセットのドキュメントを提供しているからだ。Intel用のマザーボードの対応はひじょうにおろそかだ。

もちろん、これだけではまだ不自由だ。なぜならば、マザーボード上には、BIOSではないソフトウェアがある。たとえば、NICやGPUやRAIDコントローラーなどだ。これらもすべて自由なソフトウェアでなければならない。

これを突き詰めるとどこまで行けばいいのかわからない。たとえば、マザーボードのソースコードである設計図は公開されているべきだろうか。公開されていたとしても、今使っているマザーボードが、本当に正しくソースコード通りに製造されたのかどうか、確かめるすべはない。第三者の検査機関が、電子顕微鏡を使って、製造ラインから無作為の抜き打ち検査を行うことで、初めてソースコード通りのマザーボードが製造されているかどうか確かめられる。

マザーボードに接続するデバイスでも、今やソフトウェアはふんだんに実行されている。NICやGPUはわかりやすい問題だ。とくに、GPUは、直接目にするものだけに、非常に気になる。現在、十分な3D描画性能を提供しているGPUの二大会社であるAMDとnVidiaは、どちらも大差がない。強いて言えば、AMDはRadeonの一部のドキュメントを公開しているだけ、マシだともいえる。しかし、全部ではない。それをいうと、nVidiaだってTegraに関しては、十分なドキュメントを公開している。そもそも、Tegraに関しては、公式ドライバーをコミュニティ主導の開発に任せているようだ。

本当の問題は、我々が普段、あまりソフトウェアを実行していると意識していないハードウェアにある。HDDやSSDといったストレージ上でも、BIOSとしてソフトウェアが実行されている。今や、マウスやキーボードやディスプレイにだって、ソフトウェアが使われている。これも全て自由でなければならない。しかし、これらのハードウェアは、あまり強く自由なソフトウェアの必要性が叫ばれていないようだ。

現時点では、ハードウェアに組み込まれているソフトウェアをすべて自由なソフトウェアにするのは困難だ。とりあえず、corebootがサポートされているマザーボードだけで、今は満足しておこうか。

さて、ソフトウェアである。OSのカーネルに自由なソフトウェアを使うのは当然である。これを実現するには、今の所、Linuxカーネルか、BSD系列のいくつかのカーネルに限られる。Linuxカーネルは、もちろん不自由なファームウェアを使わない設定でビルドされていなければならない。

もちろん、OSを一から構築するのは面倒なので、ディストリビューションに頼ることになる。FreeBSDなどなら統一されているが、GNU/Linuxには非常に多数のディストロがある。多くのディストロでは、不自由なソフトウェアを含めている。少なくとも、自由なソフトウェアと不自由なソフトウェアを明確に分離して、自由なソフトウェアのみをインストールできる仕組みを備えたディストロを使うべきである。

こう考えていくと、結局現時点では、ハードウェアにおいては、かなりの妥協が必要である。今まで、自由なソフトウェア環境構築の障害は、マザーボードやGPUにあるとばかり思っていた。しかし、注目されないハードウェアの方がもっと厄介だ。もちろん、これらのハードウェアのBIOSは、必ずしも書き換え可能なフラッシュメモリに格納されていないこともある。とはいえ、不自由なソフトウェアを許容する理由にはならない。

1 comment:

Anonymous said...

設計や理念としての自由は一般ユーザーにとっての自由とは程遠いですね…