[[diary/Kojima]]

・Linux カーネルのサイズ

昔,Linux Seminar で発表した Linux カーネルのサイズ変遷の資料を,しばらくぶりに更新してみた.

#ref(kernelsize.jpg)

データは ftp://ftp.kernel.org/pub/kernel からダウンロードできるそれぞれのカーネルの
tar.bz2 イメージのサイズを縦軸に,そのカーネルが公開された日付を v0.01 が公開された 
1991/9/17 からの経過日数を横軸にして描いてみたもの.

基本的に FTP サーバから得られる tar.bz2 ファイルの日付を使っているけど,
1.0 以前のカーネル(0.12 とか 0.99 シリーズとか)は後から FTP に登録されたみたいで日付が
前後しているので,展開して得られるファイル群の最終更新日を元にしている.

サイズの増加傾向を重視する視点から,開発版を中心に描き,
安定版(2.0.x, 2.2.x., 2.4.x)の系列は異なるブランチとして描いてみた.
2.6の系列は途中から安定版/開発版の区別が無くなったので,同じブランチで
描いてみたところ,図のように葡萄の房みたいな感じになった.

0.01 のころは 633KB だったサイズが2.6.25.3では 48.5MB と,
17年ほどで 76 倍強になっているらしい.さっくりと計算してみると,
1.29^17 = 75.862 だから,年率 29 % くらいの成長ということになるのかな.
このペースで行くと,来年の秋には 62MB(1.29^18*0.633=61.946),
3年後(20周年)には100MBを越える(1.29^20*0.633=103.086)ことになりそうだ :-P

なお,この数字は tar.bz2 の値で,展開した実際のソースコードはさらにその6〜7倍になるのを
お忘れなく(2.6.24 カーネルは tar.bz2 で 46.7MB ほどだけど,展開すると 296MB くらいになる).

2.6系のカーネルは2003年の暮れ(2003/12/18)に公開されて以来,
5年くらい開発版へのブランチが無いのだけど,
これだけの規模になってくると部分ごとの改善を進めるのが限界で,
抜本的な枠組みの見直しというのは困難になっていることを如実に示しているような気がするな.

公文先生のS字曲線仮説を押しあてると,0.01 から 1.3 くらいが「出現」,
2.0から2.4くらいが「突破」で,最近の Linux は「成熟」の局面に入ってきたような気がするけど,
果してこの先,「成熟」から「定着」の局面に入るのか,ハードウェアの進化に対応しつつ新しい展開を見せるのか,
ちょっと興味あるところ.

このあたりのネタは「ソフトウェア考現学」とでも名乗りたいところだが,この名前は(内容は全く違うけど)
萩谷先生に20年以上前に名乗られてしまっているのだなぁ(苦笑
-Linux Kernel のこれからの改善に期待したい事があります。PC機種・周辺機器・ネットワーク使い方・PC使い方を登録すれば(型版等で検索、登録)、それに合わせたカーネルがDownloadできる様になれば、Kernel再構築がしやすくなるのでは?と思いました。現在の様に、全アーキテクチャを丸々Downloadして、UserがMenuで選択していると、項目が多くなりましたので、初心者には分かりにくいのでは?と思います。(当然、ディストリビュータのCD/DVDや自作PCは現状の選択肢でないと困る部分があると思います。)Userは欲しいPCが、対応済かどうか分かりやすくなり、各ディストリビュージョンのメンテナーの負担も軽減できないかなー?と思いました。(User側の立場でしかLinuxを利用したことがありませんけど) --  &new{2008-05-14 (水) 10:11:28};
-本文を直すのも面倒なので、とりあえずこっちで修正しておこう。 5/14 の項にも書きましたが、0.01のサイズは633KB ではなく、63.3KBでした。それに伴い、増加率も47.8%になります。 -- [[kojima]] &new{2008-06-20 (金) 12:54:19};

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS