ホーム 研究内容 FreeBSD HP電卓 今日のgoo Links

--ホーム--
研究内容
FreeBSD
HP電卓
--Links--
BSD
Security
Hardware
NetHack
HP電卓

FreeBSD(98)の歴史

FreeBSD(98)の歴史を簡単に説明します.FreeBSD(98)の歴史は,およそ,以下 のように区分することができます.
  1. 先カンブリア紀 (386BSD(98)-0.1 Aの誕生)
  2. 古生代 (patch-kitと386BSD(98)-0.1 C2)
  3. 中生代 (FreeBSD(98)-1.Xが生まれるまで)
  4. K-T boundary (USLの襲撃とNet/2の大量絶滅)
  5. 新生代 (FreeBSD(98) 2.0以降)
  6. FreeBSD(98)の未来

この順に,歴史をひもといていくことにします.この目次はFreeBSD(98)の歴 史を生物の進化の歴史にたとえて作成しました.よくある,UNIXの歴史をツリー 構造で描いた図を,生物の系統樹にみたてたことが動機です.

特別付録: BSDと地球の年 表

以下の文章は,筆者が勝手に書いたものであり,FreeBSD(98)移植チームの公 式な見解や意見を述べているものではありません.また,筆者はこの分野の専 門ではなく,多くの誤解や偏見を含んでいる可能性があります.その場合は遠 慮なく指摘して下さい.


先カンブリア紀 (386BSD(98)-0.1 Aの誕生)

Intel 80386CPUアーキテクチャでBSDが 実行できるようになったきっかけは,CSRGによって,4.3 BSD Network Release/2が公開されたことです.CSRGは,1986年に4.3BSDを開発して以来, さらに改良を続け,1988年6月に4.3BSDTahoeをリリースしました.そして, 1989年3月には,4.3BSD Network Release 1 (Net/1)として,4.3BSD Tahoeから, AT&Tのライセンスを必要としない部分を,フリーソフトとして公開しました. CSRGは,さらなる改良を続け,1990年6月に,4.3BSD Renoをリリースしました. 4.3BSDRenoはでは,
  • ISO/OSIネットワークのサポート
  • Sun MicrosystemsのライセンスのいらないNFS
  • POSIX.1の内容のとりこみ
  • VAX以外のアーキテクチャへの対応

などの改良がおこなわれました.名前こそ4.3BSDとなっていますが,実際には 4.4BSDに近いものになっていて,実際に,4.3BSD Renoをもとにオペレーティ ングシステムを開発し販売するメーカは,4.4BSDへの移行が義務づけられてい ました.さて,CSRGは,機能面での改良のほかに,AT&Tのライセンスを必要と するコードを排除していく作業をすすめていました.1991年6月に,4.3BSD RenoからAT&Tのライセンスに抵触しないコードを,フリーソフトとして公開し ました.これが,4.3BSD Network Release 2 (Net/2)です.これが,現在パソ コン上で誰もが安価にBSDオペレーティングシステムを使用することができる ようになったもとになるオペレーティングシステムです.

Net/2は,4.3BSD RenoからAT&Tのライセンスを必要としない部分だけを抜き出 したわけなので,それだけでは実際に動くオペレーティングシステムを構築す ることはできません.しかし,Net/2には,オペレーティングシステム全体のう ち,約85%が含まれていました.そうなると,残りの15%をうめれば完璧なオペ レーティングシステムができてしまうというわけです.これを実際にやっての けたのが,William Jolitz氏です.

1991年に,William Jolitz氏は,Net/2をもとにし,それにたりない部分を加え てIBM-PCアーキテクチャで動作するオペレーティングシステムを作成しました. それが,386BSD Version 0.0です.386BSD Version 0.0の登場で,世界中の人々 が,``本物のBSDが自分のパソコンで動く''といってインストールに狂ったと いわれています.Version 0.0のころは,相性問題が激しく,インストールで きるマシン構成が限られていました.また,さまざまなバグ(Net/2にもともと 存在したものを含む)があり,安定して動作させるのが大変でした.Jolitz氏 は,この386BSDを改良し,バグフィックス版の386BSD Version 0.1を公開しま した.以上は,IBM-PCの世界の話であります.

ここで,日本に目を向けて見る と,当時はまだNEC王国であり,日本で パソコンといえばPC-9801(それと,EPSONの98互換機)を指すのがあたりまえ でした.当然,386BSDをそのままPC-9801で動かすことはできません.世界中 の人々がパソコンでBSDを実行しているのに,日本では,もっとも普及してい るパソコンでBSDを実行することができない状態にありました.386BSDのため にIBM-PCを購入する人もありましたが,PC-9801で386BSDを動かしたいという 欲望も当然生まれます.

さて,京都大学マイコンクラブ(KMC)に在籍していた(当時),児島氏らは, 386BSDをPC-9801アーキテクチャに移植しました.この作業は,本当に大変だっ たはずです.まず,最初はPC-9801ではまったく使うことができないので,Sun WS上でクロス開発を行なっていたそうです.さらに,オープンアーキテクチャ の世界とは異なり,PC-9801の世界では,メーカーは情報を公開したがりませ ん.極めてわずかな情報をもとに作業を行なうしかありません.しかし,彼ら はそれを克服し,1992年にPC-9801ユーザーの前に386BSD(98)-0.1 Aを与えて くれました.これにより,PC-9801ユーザーも,狂ったようにインストールを しなくてはいけなくなることができるようになりました.


古生代 (patch-kitと386BSD(98)-0.1 C2)

386BSD Version 0.1が登場して以来,Jolitz氏は386BSDの改良を続けていまし た.当時の386BSDはまだまだ不安定であり,多くの修正を必要としていました. けれども,まてどくらせど新しいバージョンがでてきません.多くの人はバグ フィックスを望んでいるのに,なかなかそれが行なわれません.いったいどう なってしまったのでしょう?中には,BSDユーザーらしく,自ら問題を解決し, その方法を公開する人もいました.しかもそのようなバグフィックス(パッチ) が世に乱立してきました.バグフィックスが行なわれるのはいいのですが,い ろいろな人がいろいろな方法で実現していったので,人々はどれをどうつかっ たら良いのかわからない状態に陥りました.

このような状態の中,Terry Lambert氏らは,世の中にとびかっていたさまざ まなパッチを整理し,依存関係に注意をはらいながら通し番号をつけて配布し はじめました.これがpatch-kit 0.1とよばれるものです.このpatch-kitの配 布以降もさまざまなパッチが作成されていったので,patch-kitもそれにあわ せてバージョンをあげていきました.386BSDのユーザは,patch-kitを使って OSを修正することにより,より安定したOSを容易にてにすることができるよう になりました.

当然,patch-kitはIBM-PCを対象にしているので,そのまま 386BSD(98)で使用することはできません.PC-9801の世界では,KMCが最初の patch-kitである,patch-kit 0.1を当てた386BSD(98)-0.1 version C2を公開 しました.これにより,PC-9801でもそこそこ安定したシステムを手にするこ とができるようになりました.しかし,これが最後の386BSD(98)のバージョン になってしまい,KMCから新たなバージョンは公開されませんでした.


中生代 (FreeBSD(98)-1.Xが生まれるまで)

IBM-PCの世界ではpatch-kitも0.2.4までバージョンがあがり,386BSDはかなり 安定したオペレーティングシステムになっていました.patch-kitは386BSDを 生んだJolitz氏とは別のグループが作成していましたが,人々は,Jolitz氏 が386BSDの次のバージョンを公開し,統合されていくと思っていました.KMC も,386BSD(98)のコードをJolitz氏に送り,IBM-PCとPC-9801の統合をはかろ うとしていました.しかし,まてどくらせど次のバージョンはでてきません. 人々は新たなバージョンが出てくるのはいつなのか,もしかしたらもう出てこ ないのではと心配し始めました.それに,まとまっているとはいえ,パッチを 当てる作業はそれなりに面倒で,時間がかかるので,最初からパッチをあてた ものを配布すればいいのにという声もでていました.

1993年,NetBSD version 0.8が公開されました. 内容は386BSD-0.1 + patch-kit 0.2.3をもとに,さらなるバグフィックスを行 なったものでした.NetBSDの開発グループは,386BSDとは別に独自の開発を行 ない,Net/2や4.4BSDの新機能をどんどんとりこんでいく方針を示しました.さ らに,また別のグループからはFreeBSD 1.0が公開されました.これも 386BSD-0.1 + patch-kit 0.2.3をもとにしていましたが,こちらは新機能の追 加よりも,より使いやすい(インストールしやすい)システムを目指すという方 針を示しました.当初,FreeBSDプロジェクトはWilliam Jolitz氏が次のバー ジョンを作成する作業を手助けするという位置付けでしたが,Jolitz氏がその 手助けを拒否し,しかも次に何を行なうのか一切しめしませんでした.

NetBSDとFreeBSDは,ともに386BSDから派生したOSであり,かつ,ともに 386BSDとは異なった開発グループ,すなわち,386BSDの次のバージョンまでの つなぎというわけでなく,独自の開発を続けるグループになりました.これが, 人々の中で386BSDを記憶の中だけの言葉にするきっかけとなったわけです. FreeBSDが生まれた当初は,いずれはFreeBSDとNetBSDが統合されるという方針 でしたが,両者の開発思想が異なっていたため,その後は,別々の道を歩むこ とになりました.FreeBSDプロジェクトは,ユーザーにやさしい環境を目指し, その配布手段としてCD-ROMを選択しました.このアイディアはWalnut Creak CDROM社に受け入れられ, Walnut Creak CDROM社は,FreeBSDプロジェクトに対し,ネットワーク資源を 提供しました.

IBM-PCの世界では,patch-kitやNetBSDとFreeBSDの誕生といったように,あら たなOSが生まれ,人々はよりすぐれた環境を手にすることができました.しか し,PC-9801の世界では,386BSD(98)-0.1 version C2に続くバージョンが登場 せづ,また,NetBSDやFreeBSDを使うこともできない状態がしばらくつづきま した.KMCではNetBSDのPC-9801への移植がおこなわれていたのですが,結局世 にはあらわれませんでした.また,BSDとは別の選択肢のLinuxも,不完全なま ま公開(使える機種が極めて限られていた)されたのを最後に,PC-9801への移 植は止まっていました.PC-9801のユーザは,IBM-PCの世界のよりすぐれたOS をただ指をくわえて見ているだけでした.このような中,NIFTY-Serveの FEPSON(当時)に,patch-kit 0.2.3を386BSD(98)-0.1 version C2で使用する方 法が投稿され,とりあえず,あるていど安定したOS(といっても, FreeBSD(98)-2.0とは比べものにならないほど不安定だった)を手にすることが できるようになりました.しかし,これもその場しのぎ的な部分もあり(SCSI ドライバの改良など,新機能は含まれていない),新たなFreeBSDおよびNetBSD のPC-9801版の登場が望まれていました.

1994年はじめ,名古屋工業大学に当時在籍していた会津氏と,東京工業大学に 当時在籍していた掛札氏そして,名古屋大学の大久保氏と筆者もFreeBSDの PC-9801への移植を独立しておこなっていました.偶然,名古屋工業大学に当 時在籍していた藤浦氏が,PC-VANで掛札氏を発見,会津氏と掛札氏の共同作業 という形になっていきました.現在のFreeBSD(98)の基本的な部分はここで生ま れたものです.

会津氏らの作業がかなりすすみ,動作するOSとしての形になったころ,名古屋 大学のメンバーの作業はとりあえずログイン手前までといった状態でした.名 古屋大学のグループが低レベルな質問をfjで行なったところ,会津氏に発見さ れました.名古屋大学のメンバーは二人とも地球科学教室(当時)のメンバーで あり,計算機にかんしてはずぶの素人なわけで,そんなのが二人あつまったと ころで強者ぞろいの会津氏らのグループにかなうわけがありません.というこ とで名古屋大学のメンバーはそろって会津氏らのグループのほうに入っていき, 自分たちの作ったコードは捨ててしまいました(結局のところ,一カ月かけて, 起動時の表示が行なわれるようになっただけで,ログインすらできない状態で しかなかったので捨ててもおしくもなんともなかった.そんなものにこだわる よりも,きちんと動くバージョンが欲しいというソロバン感覚がつよかったの です).

PC-9801版FreeBSD(386BSD(98)にならって,FreeBSD(98)という名前がつけ られた)は,どんどん成長(安定)し,また,最新のFreeBSDにも対応しつづけて いきました.この成果はanonymous FTPで公開され,PC-9801ユーザもFreeBSD の恩恵にあずかることができるようになりました.そして,FreeBSD Version 1.1.5.1の公開の後,FreeBSD(98) 1.1.5.1として広くアナウンスが行なわれま した.


K-T boundary (USLの襲撃とNet/2の大量絶滅)

CSRGのNet/2から生まれたOSとしては,いままで述べた386BSDとNetBSDそして FreeBSD(いずれもフリーソフト)の他に,商業ベースのOSであるBSDIのBSD/386(現在はBSD/OS)があります. CSRGはNet/2の中にはAT&Tのライセンスに抵触するものはないとして,自由な配 布を認めていました.しかし,AT&TからUnixのライセンスを譲り受けたUSLは, 1992年,Net/2を使用したBSD/386は,USLのライセンスが必要として,BSDIに対 し訴訟を起こしました.また,Net/2を配布したUCBに対しても,UNIX 32Vの守 秘義務を守らなかったとして訴訟を起こし(裁判所はUNIX 32VとNet/2の類似点 が問題というUSLの主張は却下した),とにかくBSD/386の出荷をやめさせよう としました.これに対し,BSDIはUSLのライセンスには抵触しないと主張し, また,UCBは,USLに対して,System VにはUCBのコードがあるのにUCBの著作権 表示が行なわれていないとしてカウンター訴訟を起こしました.

結局,結審をまたずして3者は和解し,

  • UCBはNet/2にはライセンスを必要とするコードが含まれていることを認め る.
  • ライセンスを必要とする一部のファイルをバイナリ配布のみにした BSD/386 1.1の販売をBSDIが行なうことが可能である.
  • UCBは,4.4BSDからライセンスの不要な部分のみを抜き出した 4.4BSD-Liteを配布することができ,これはライセンスが不要であることを公 式に認める.
  • Net/2の利用者は4.4BSD-Liteが出たらそちらに移行することが強く推奨さ れる.

という合意に達しました.4.4BSDは1993年6月にリリースされました.しかし この訴訟が起こったため,4.4BSD-Lite (Net3)の配布は遅れ,Novell社の検査を受けた後,1994年4月に 公開されました.FreeBSDでも,BSDIにならい,一部のコードをバイナリ配布 にしました.この時点では,FreeBSDはNet/2のコードを使用できると信じられ ていました.しかし,この訴訟が行なわれる前にUSLからUNIXの権利を受けとっ たNovell社は1994年7月末までに,Net/2をベースにしたFreeBSDの配布を停止す るように主張しました.そのため,Novell社からの訴訟を恐れた世界中の多く のFTPサイトから,1994年7月末でFreeBSDの配布物が消えました.FreeBSD 1.1.5.1の配布物がFTPサイトから消え,また,CD-ROMの販売も停止されてしまっ たため,あらたにFreeBSDを入手することができなくなってしまいました. FreeBSD(98)もIBM-PC用のファイルを必要とするため,事実上入手することが できなくなってしまいました.この空白時期にも,パソコンでUNIX風OSのブー ムは進み,USL/BSDI/UCB訴訟に関係のないLinuxは多くのユーザーを確保して いきました.

さて,タイミングが悪かったのがPC-9801ユーザーです.FreeBSD(98) 1.1.5.1 の公開の直後にこのNet/2の著作権問題(1994年7月末の期限)がおこってしまいま した.当時はまだインターネットブームは起こっておらず,パソコン通信が主 流でした.大手のパソコン通信でもFreeBSD(98)の回覧が計画されていました が,著作権問題がはっきりしないため,FreeBSD(98) 1.1.5.1の回覧が中止さ れてしまいました.そのため,PC-9801ユーザは1995年まで386BSD(98)-0.1 version C2(これだってNet/2ベースなんだけど)しか入手できない状態が続きま した.


新生代 (FreeBSD(98) 2.0以降)

FreeBSD core teamは,4.4BSD-LiteをベースにしたOSを開発を続けました. 4.4BSD-Liteには,OSの約90%が含まれていて,必要なのは残りの10%を埋める ことです.しかし,埋めるといっても,実際には何もないところから新たに生 み出す作業であり,とても困難なものでした.また,4.4BSD自体にもバグが含 まれ,さらにi386アーキテクチャの部分はかなり不完全な状態でありました. この作業は困難を究め,1994年12月になって,4.4BSD-Liteをベースにした最 初のFreeBSDである,FreeBSD 2.0のテストバージョンを公開し,1995年1月に 正式リリースバージョンを公開しました.FreeBSD(98)移植チームでは, FreeBSD core teamから作業途中のソースコードの提供を受け,同時に開発を 進めていきました.そのおかげで,4.4BSD-LiteベースのFreeBSD(98)の開発が 極めて速いペースで進み,公開までの時間をとても短くすることができました. FreeBSD(98)移植チームではOSの開発とともにドキュメントの整備をすすめ, 1994年12月のFreeBSD(98) 2.0 ALPHAの公開時には豊富な日本語ドキュメント を添付することが可能になりました.

FreeBSDの開発者たちは現在にいたるまでさまざまな機能拡充やバグフィック スなどを毎日のように行なっています.FreeBSD(98)移植チームも同様に開発 を行なっています.FreeBSD core teamがcurrentとして最新のソースコードを 公開しているのと同様に,FreeBSD(98)移植チームも,FreeBSD(98)-current として,つねに最新のソースコードを提供し,多くの方からの提案を受け付け ています.FreeBSD core teamもFreeBSD(98)移植チームも,閉鎖的にならない よう常に努力しています.


FreeBSD(98)の未来

FreeBSD(98)移植チームでは,できるかぎり安定したOSを,できる限り素早く みなさんのもとへ届けることができるよう努力しています.しかし,人手 が足りなく,なかなか思うように作業が進みません.移植チームのメンバーは みな,時間が足りない人ばかりであります.また,移植チームのメンバーの持っ ている機材は,もはや時代遅れになったマシンばかりであります.そのため, あらたなデバイスのサポートなどは極めて困難な状態が続いています. FreeBSD(98)移植チームは,FreeBSD(98)の開発を手助けしてくれる方をつねに 募集しています.決して閉鎖的な集団ではありません.もし,FreeBSD(98)の 開発にお手伝いいただけるような方がいらっしゃれば,FreeBSD(98)移植チー ムまで御連絡ください.

現在FreeBSD(98)移植チームは,FreeBSD core teamのソースコードにPC-9801 アーキテクチャのコードをマージする作業を進めています.この作業は FreeBSDのソースツリー全体の構造をも見直さなければならない困難な作業で あります.しかし,FreeBSD(98)移植チームはFreeBSD core teamの協力のもと, この作業を押し進め,近い将来にはIBM-PCとPC-9801の両方のFreeBSDが同時に 公開されるようにしたいと考えています.

リーガル Contact 名大岩鉱 名大地球 名大年測
Copyright KATO Takenori, 1997, 1998, 199, 2000. All rights reserved.
© 4.4BSD-Lite Daemon Copyright 1994 by Marshall Kirk McKusick. All Rights Reserved.