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

第8回 Plamo Linux 4.72とP-Plamo

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

Plamoとしては珍しいほどのハイペースですが,3月3日付で4.7系の2度目のメンテナンスリリースになるPlamo-4.72をリリースしました。

当初,Plamo-4.72ではX Window SystemをR7.5に更新するつもりだったので,調整には多少時間がかかるかな,と思っていました。しかし,前回までに紹介したように,X11R7.5ではライブラリなどの互換性に関してやや難があることがわかり,メンテナンスリリースという位置付けには収まりにくそうなので,採用は新しい開発版にまで先送りすることにして,Plamo-4.72は問題の少なそうなパッケージをまとめた小規模な変更にとどめることにしました。その結果,4.71の公開から3ヵ月程度の間隔で,2度目のメンテナンスリリースが可能になりました。

「小規模な変更」と言っても,KDEが4.3.5に更新されたり,OpenOffice.orgが3.2に更新されたりしたためアップデート対象のパッケージは161個にのぼり,サイズ的には960Mバイト強に達しています。4.71からのアップデート用にパッケージを整理するのも一仕事で,今回も昨今のOSS開発の活発さや大規模化・複雑化を実感することになりました。

一方,メンテナンスリリースには互換性的に問題の少ないパッケージのみを選んでいるため,X11R7.5以外にも今回のリリースに漏れたパッケージが散在します。その1つがwebブラウザのfirefox-3.6で,当初は更新対象にする予定でしたが,動画処理用のプラグインが未対応だったり,add-onパッケージの追従が不十分だったりしたため,今回の更新ではcontribディレクトリに置いて必要な人が手動で更新するようにしました。

メンテナンスリリースでは互換性重視の観点から影響範囲の大きいパッケージは採用しづらいので,glib/gtkの変更を伴なうGNOME-2.28やサウンド回りの全面的な更新になるpulseaudioなどはPlamo-4.7系のリリースに入ることはないでしょう。

この種の,更新したいけどできないパッケージが溜ってくると,互換性についてあまり重視しない新しい開発版のツリーを作って次のバージョンに備えるのがPlamoの流儀です。そろそろPlamo-4.8のツリーを作り,開発の軸足を新バージョンに移すべき時期になってきたようです。

新バージョンについてはさておき,今回のリリースでは約1年ぶりにP-PlamoもPlamo-4.72の環境に追従して更新してみました。P-Plamoは以前の連載でも簡単に紹介したことがあるものの,あまり詳しくは触れなかったのでPlamo-4.72と合せて紹介してみましょう。

Plamo-4.72の新機能

上述のようにPlamo-4.72では,4.71から160ほどのパッケージを更新していますが,そのほとんどは各ソフトウェアのバージョンアップへの追従で,バイナリファイルを置き替える程度の変更です。しかしながら,カーネルやtarなど,いくつか新機能を追加したパッケージもありますので,それらについて簡単に紹介しましょう。

カーネル 2.6.32.9 とKMS

Plamo-4.72ではカーネルを2.6.32.9に更新し(4.71では2.6.31.6)⁠CONFIG_DRM_I915_KMSオプションを有効にしてみました。このオプションを指定すると,Intelの新しめのGPUを使っているマシンでは起動時からinteldrmfbというフレームバッファデバイスが有効になり,コンソール画面がより適切な解像度に設定されます。

図1 ThinkPad x60sの起動画面

図1 ThinkPad x60sの起動画面

KMS(Kernel Mode Setting)は,従来,Xサーバが担当していた画面解像度の制御機能をカーネルのDRM(Direct Rendering Manager)側に移して,コンソール画面とXの画面をよりシームレスに結びつける技術です。この技術にはカーネル側のドライバとX側のドライバの連携が必要で,残念ながら現時点ではIntelの新しめのビデオチップ以外では機能しないようです。

SquashFS-4.0のLZMA圧縮対応

カーネル本体に取り込まれたSquashFS-4.0にLZMA圧縮対応パッチを適用しました。

SquashFSはファイルシステムを効率よく圧縮する技術で,圧縮されたファイルシステムは書き込み不可になるものの,元のファイルシステムの半分から1/3程度に圧縮可能です。

Squashfs-4.0ではファイルシステムの圧縮にGZIP形式を採用していますが,より圧縮効率の高いLZMA形式を使えば,さらに1-2割の圧縮が可能になります。後述するP-Plamoのように,限られた領域にできるだけ多くのデータを詰め込みたい場合,この数割の圧縮率の違いが大きな差になります。

tar-1.22と新しい圧縮ツール

上述のSquashFSのLZMA圧縮の例にも見られるように,以前から使われているGZIP,BZIP2といった圧縮形式に加えて,最近では,さらに高圧縮率を目指したLZMA形式やそれをもとにしたXZ形式圧縮率は高くないものの圧縮/展開がきわめて高速なLZO形式など,さまざまな圧縮形式が使われるようになりました。

GNU tarの新版ではこれら新しい圧縮形式もオプションで選択可能になったので,Plamo-4.72では各形式に必要なコマンドとともに,GNU tar を1.22に更新しました。tar-1.22では以下のような圧縮オプションが使用可能です。

$ tar --help
使用法: tar [オプション...] [ファイル]...
GNU `tar' は多くのファイルを一つのテープやディスクのアーカイブにまとめ, 更に
そこから個々のファイルを取り出すことができます.
...
 圧縮オプション:

  -a, --auto-compress
                             圧縮プログラムを決めるのにアーカイブ接尾辞を使用する
  -I, --use-compress-program=PROG
                             PROG 経由でフィルタ (-d を受け付ける必要あり)
  -j, --bzip2                bzip2 経由でアーカイブをフィルタ
      --lzma                 lzma 経由でアーカイブをフィルタ
      --no-auto-compress     do not use archive suffix to determine the
                             compression program
  -z, --gzip, --gunzip, --ungzip   gzip 経由でアーカイブをフィルタ
  -Z, --compress, --uncompress   compress 経由でアーカイブをフィルタ
  -J, --xz                   filter the archive through xz
      --lzop                 lzop 経由でアーカイブをフィルタ
...

少し余談になりますが,各圧縮形式で圧縮率と処理時間の違いを調べたデータを紹介しましょう。

下のグラフはlinux-2.6.32のソースコードを各形式を指定してtarで固めた際に,それぞれの形式ごとの圧縮後のサイズと圧縮に要する時間を図示したものです。一番左の "nocomp" が無圧縮の場合で,以下順に,LZO形式,GZIP形式,BZIP2形式,LZMA形式,XZ形式のそれぞれついて,圧縮後のサイズ(紺)と圧縮処理にかかった秒数(赤)を棒グラフにしてみました。図の縦軸はファイルサイズの場合はMバイト単位,処理時間の場合は秒単位になっています。

図2 各種圧縮形式ごとの圧縮後のサイズと処理にかかった時間

図2 各種圧縮形式ごとの圧縮後のサイズと処理にかかった時間

図2を見ると,非圧縮の場合は365Mバイトほどのサイズだった書庫ファイルが,LZOならば約120Mバイト(1/3)⁠GZIPならば80Mバイト(1/4.5)⁠BZIP2ならば60Mバイト(1/6)⁠LZMA/XZならば50Mバイト程度(1/7)にまで圧縮できているのに対し,処理にかかる時間はLZOがほぼ等速(1.1倍)⁠GZIPが5倍,BZIP2が27倍,LZMA/XZが88倍に達するという,スピードと圧縮率が見事にトレードオフの関係になっていることがわかります。

この結果を見ると,処理時間をかけたくない日ごとのバックアップはLZOでやや大きめのメディアに短期保存し,処理時間をかけていい週末や月末にはXZで小さく固めて長期保存していく,といったバックアップ作業の使い分けができそうです。

従来は,速度重視のGZIPか圧縮率重視のBZIP2かの選択肢しか無かった圧縮オプションが,より速度を重視したLZOから,より圧縮率を重視したLZMA/XZにまで広がることで,用途に応じた設定の調整幅がさらに広がったと言えるでしょう。

著者プロフィール

こじまみつひろ

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

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

コメント

コメントの記入