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

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

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

つい先日,linux-4.6がリリースされました。このカーネルは4.6というバージョンが示すように,昨年4月にメジャー・バージョンが更新されたlinux-4.xシリーズの6度めのマイナー・バージョンアップになります。

最近の動向を見ると,linux-4.0が2015年4月,4.1が同年6月,4.2が8月,4.3が11月,4.4が2016年1月,4.5が同年3月,4.6が5月にそれぞれリリースされており,linux-4.xシリーズのマイナー・バージョンアップはほぼ2,3ヵ月に一度のペースです。

一方,4.0や4.1といった各バージョンごとにバグフィックスを主目的としたメンテナンス・バージョンもリリースされています。メンテナンス・バージョンは4.0.1や4.1.3といった3ケタ目の数字で区別され,通常,マイナー・バージョンが2つ更新する程度の期間(4~6ヵ月)に,10回前後リリースされます。

いくつかのバージョンは通常よりも長い期間サポートされる(LTS:LongTerm Support)ことになっており,開発が終了したlinux-3.xシリーズの中でも3.4.1123.10.101といった100を超えるメンテナンス・バージョンが公開されているバージョンもあります。

Linuxの最初のバージョンである0.01が公開されたのが1991年のことでした。それから25年,いったいどれだけの数のLinuxが公開されてきたのでしょう? www.kernel.orgに保存されている過去のバージョンを調べてみました。

リリースされたLinux

現在,開発が進んでいるlinux-4.xでは,本稿執筆時点で4.0から4.6まで7つの開発版がリリースされ,4.0では4.0.1から4.0.9まで9つのメンテナンス・リリースがありました。長期サポート対象になっている4.1では25回のメンテナンス・リリースが行なわれ,現在もサポートが続いています。以下,4.2では8回,4.3では6回,4.4では11回,4.5では5回のメンテナンス・リリースがあり,71のバージョンが存在しています。

同様に,linux-3.xでは3.0から3.19まで20の開発版がリリースされ,メンテナンス・リリースは3.0では101回,3.1では10回,3.2では80回,3.3では8回,3.4は112回,3.5は7回,3.6は11回,3.7は10回,3.8は13回,3.9は11回,3.10は101回,3.11は10回,3.12は60回,3.13は11回,3.14は70回,3.15は10回,3.16は35回,3.17は8回,3.18は34回,3.19は8回,それぞれ行なわれていました。これらを合わせるとlinux-3.xには730のバージョンが存在することになります。

以下同様に過去のシリーズを調べ,開発期間と共にまとめてみると以下の表のようになりました。開発期間欄の「LTSあり」は,そのシリーズの開発は終了しているものの,特定バージョンのサポートが現在も続いていることを示します。

カーネルシリーズリリース数開発期間
linux-4.x712015/04 -
linux-3.x7302011/07 - 2015/03(LTSあり)
linux-2.6.x3042003/12 - 2011/05(LTSあり)
linux-2.5.x752001/11 - 2003/07
linux-2.4.x 762001/01 - 2013/05
linux-2.3.x 601999/03 - 2000/12
linux-2.2.x 261999/01 - 2004/02
linux-2.1.x 1411996/09 - 1999/01
linux-2.0.x 401996/01 - 2004/02
linux-1.3.x 1141995/01 - 1996/01
linux-1.2.x 141995/03 - 1995/08
linux-1.1.x 961994/04 - 1995/03
linux-1.0.x 101994/03 - 1994/04
1.0以前31(?)1991/09 - 1994/02

1.0以前のバージョンはwww.kernel.orgにもまばらにしか残っていないため正確ではないものの,集計すると過去25年間に1800近い回数のリリースが行なわれていたことになります。さて,それではこれだけのバージョン・アップでLinuxはどのように成長してきたのでしょう?

表中のリリース数を総計すると1788という数字になるものの,見落しやpre版,テスト版等,判断に迷うバージョンもあるので,概数で扱うのがよさそうです。

1991年に公開されたlinux-0.01のソースコードを調べると,ファイル数は88,総行数は10239行でした。一方,最新版のlinux-4.6ではファイル数が53637,総行数は2120万行を超えています。すなわち,ソースコードのファイル数では600倍強,行数では2000倍強にまで増加していることになります。

ファイル数のカウントはソースコードを展開したディレクトリで

find . -type f | wc -l

で数えました。

総行数はソースコードからバイナリファイルを収めているfirmwareディレトリを除いて

find . -type f -a -exec wc -l {} \;  | gawk 'BEGIN{sum=0}{sum+=$1}END{print sum}'

で計算しました。

Linuxの最初のバージョンと最新のバージョンを比較するとこれほど大きな違いになるものの,ではその途中経過はどうなのか,もう少し詳しく調べてみることにしました。

著者プロフィール

こじまみつひろ

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

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

コメント

コメントの記入