玩式草子─ソフトウェアとたわむれる日々

第84回 Linuxの成長過程をふりかえる[その3]

この記事を読むのに必要な時間:およそ 4 分

linux-1.3シリーズ

linux-1.1シリーズは1995年3月で開発が終了し,新しい安定版カーネルであるlinux-1.2が公開されました。linux-1.3シリーズは,このlinux-1.2を元にした新しい開発版カーネルで,1995年6月から開発が始まり,114回のバージョンアップを経て,1996年6月に開発終了,次の安定版カーネルはメジャーバージョン番号を更新したlinux-2.0になりました。

前節同様,linux-1.3シリーズも初期(1.3.0⁠⁠,中期(1.3.50⁠⁠,後期(1.3.100)のソースコードを展開し,各ディレクトリのサイズを調べてみました。

1.3.01.3.501.3.100
Documentation/496916
arch/134421804712
drivers/5392726411532
fs/137216162072
include/178828803712
init/162428
ipc/686472
kernel/168168100
lib/566464
mm/132148192
modules/000
net/96411761424
scripts/124268
total113881629225284

この結果も,1.1シリーズと同じスタイルで扇型グラフにしてみます。このグラフでも内側が1.3.0,中央が1.3.50,外側が1.3.100の順です。

図3 linux-1.3シリーズのディレクトリ構成

図3 linux-1.3シリーズのディレクトリ構成

これらの表とグラフを見ると,1.3シリーズではarch以下のコードが急速に増えていることが分かります。実際のソースコードを眺めてみても,当初は1.1シリーズを引き継ぎ,alphaとi386,mips,sparcの4つのディレクトリだったものの,1.3.50ではPowerPC用のppcディレクトリが,1.3.94ではMC68000用のm68kディレクトリが追加されています。

arch以下のサイズをそれぞれのバージョンで調べたところ,以下のような結果になりました。

1.3.01.3.501.3.100
alpha/180328364
i386/760732796
m68k/2228
mips/168276280
ppc/252264
sparc/236592780

この結果を見ると,i386のサイズはほぼ横這いなものの,alphaでは倍増,sparcでは3倍強にまでサイズが増えており,これらのCPUへの対応は1.3シリーズ全体に渡って続いていたことがわかります。

1.3シリーズでは対応するCPUの種類が増えると共に,SMP(Symmetric Multi Processing)機能への対応も始まりました。ソースコードを調べると,1.3.40の段階でarch/i386/kernel/以下にsmp.ctrampoline.SといったSMP用のコードが現われています。もっとも,SPARC CPUでマルチプロセッサに対応するためのmp.Sというコードは1.3.10の段階でarch/sparc/kernel/に現われているので,SMPへの対応はまずSPARC用が先行し,i386はそれを追う形になったようです。

archディレクトリ以外ではdriverディレクトリの増加も目に付きます。1.3.0と1.3.100を比べると,特にキャラクタデバイス用のドライバcharディレクトリ)が大きくなっており,何が追加されたのだろうとディレクトリを眺めてみたらStallionやCyclades,Riscom8といった懐かしい名前がありました。それらを見ると,⁠あぁ,このころはLinuxでマルチポートのパソコン通信ホストを作るのが流行ってたっけ……」と思い出しました。

StallionやCyclades,Riscom8というのは,1台のマシンに複数の電話回線を接続するための「マルチポートシリアルカード」で,これらを使えば「話し中」でパソコン通信のホストに接続できない状態を減らすことができます。

また,カーネルに関する各種ドキュメントを集めたDocumentationディレクトリが追加されたのも興味深いところです。Linuxの場合,TLDP(The Linux Documentation Project)のようなプロジェクトが立ちあがり,一般ユーザ向けドキュメントの整備は早い時期から進んだものの,開発者向けのドキュメントは「ソースコードを読め!」という状態が長く続いていました。

しかしながら,Linuxの普及が進み,開発に新規参加しようという人々が増えてくると共に,カーネルに関するドキュメントへのニーズが高まり,それらを集めたDocumentationディレクトリも必要になったようです。もしかしたらこの時期から,所属企業に命じられ,業務としてカーネル開発に参加するプログラマが増えてきたのかも知れません。

これらの結果から見ると,linux-1.3シリーズは1.1シリーズで成功したマルチ・アーキテクチャ化をさらに進め,SMPのような複雑な構成まで対応できるようするための開発版だったと言えそうです。また,CycladesやRiscom8といった特定用途向けの高価なカード用のドライバが追加されていることから見て,この時期からLinuxがビジネス分野でも本格的に利用されはじめていたことがわかります。

このような成果に自信を深めたLinusさんを中心とする開発者たちは,⁠Linuxは,コンピュータマニア向けのホビー的なカーネルから,ビジネスでも使える本格的なカーネルに生まれ変わった」というメッセージを込めて,次のバージョン番号に2.0を選んだのでしょう。


さて,こうしてlinux-1.0のリリースから2年強の時間をかけて生まれたlinux-2.0でしたが,実際に商用環境で使おうとするとまた新たな問題に直面することになりました。それらについては回を改めて紹介することにしましょう。

著者プロフィール

こじまみつひろ

Plamo Linuxとりまとめ役。もともとは人類学的にハッカー文化を研究しようとしていたものの,いつの間にかミイラ取りがミイラになってOSSの世界にどっぷりと漬かってしまいました。最近は田舎に隠棲して半農半自営な生活をしながらソフトウェアと戯れています。

URLhttp://www.linet.gr.jp/~kojima/Plamo/index.html