昔々FreeBSD 2の頃に日本にはノートパソコンなどのモバイル環境でFreeBSDを使うためのPAOというパッケージ(ディストリビューション)がありました。
当時のノートパソコンは486や初期のpentiumでpccardがほぼ標準で付いていました。このpccard(PCMCIA)のサポートを強化したものがPAOでした。今から思うと不思議なくらい日本はFreeBSDの開発者がいました。
pccardのサポートはAndrew McRaeさんが作ったものをPAOチームがいろいろなデバイスの確認や対応を行っていったと流れだったようです。
まだサイトは残っているところもありますが、再構築はほぼ不可能です。
表向きにはPAOはメインラインにマージされたという事になっていますが、実質的には使えるところは使って、再実装されたというほうが正しいと思います。
力技で実装したためかドライバはpccard,pccbb,cardbus,excaとディレクトリが分かれていて、見通しの悪いセンスの悪いものになっています。
PAOの頃はCIS(Card Information Structure)はpccardcというコマンドでダンプできたのですが、dumpcisコマンドに変えられました。dumpcisのmanページにpccardcの事がまったく触れられてないのは、悪意を感じてしまいます。
FreeBSD 3ではa.outからELFへの変更やカーネルモジュールの導入など大きくコードが変わりました。
それに伴いPAOとnewcardとのコンペになり大きな部分ではnewcardが採用されました。
PAOはISAベースのPCMCIAのカードをいろいろサポートしていました。ただ時代的には次はpciベースのcardbusに変わるだろうと思われていました。
FreeBSD 3ではpciの実装も大きく変わり、newbusになりました。
そんなこんなで、PAOの多くの部分は捨てられnewcardやnewbusになりました。
とはいえその後cardbusはそれほど普及せずUSBが主流になりました。
PAOなきあとのFreeBSDはPAOでは使えていたpccardが使えなくなるものありましたが、USBに移行していったので、それほど大きな問題にはならなかったと思います。
このことにより多くの日本のFreeBSDの開発者が去っていくことになりました。
pccardはPCMCIAとCardBusというまったく違ったアーキテクチャをサポートしていたり、PCMCIAは統一規格ではあったものの、いろいろな方言があり、実装が難しかったことも、対応を難しくしたような気もします。
PCMCIAのサポートは13Rで消されました。環境依存かもしれませんが、12Rで試してみるとpanicしました。FreeBSDはプロジェクトの管理ができてなくて、動かなくなったから消すって事になってしまったようです。
この問題は二つの側面があると思います。
まず一つはPAOチームが現状のサポート状況をちゃんと伝えたれてなかったという事があると思います。それは聞く耳をもたない米国の開発者がいたのかもしれませんが、やはりネイティブではない日本人は折衝の能力はかなり厳しいものがあります。また自分の手元にないデバイスのサポートの理解は非常に難しかったりします。
もう一つは米国のメインラインの開発者がcardbusへの移行を急ぎすぎたというとことがあったように思います。これは後からみればあまり意味の無いことだったのですが、当時はそうは思われてなかったのだと思います。
未来の事はだれも分からないですが、あまり良い判断ではなかったと思われますし、この事がFreeBSDの衰退につながる一因になった気もします。
もしPAOチームを無碍にすることがなかったら、PCMCIAサポートが動かなくなって終了のような事は無かったのかもしれません。
当時PAOは使っていましたが、開発には参加していなかった私がこういうのを書くのもおこがましいのですが、なにか書いておかないと忘れ去られると思って書きました。