- Ext4 がステーブルに
btrfs の影に隠れてあまりいいイメージのない ext4 ファイルシステムだが、このたびステーブルと宣言されたようだ。
ext4 は、メインラインにマージされてもう久しいが、そもそも開発は ext3 にあったファイルシステムサイズ 16TB 制限、ファイルサイズ 2TB 制限を越えるために始まった。これに加え、- ファイルのディスク内位置情報は、 ext3 ではブロックごとに管理されていたが、これを連続するブロックでは一括して扱えるようになった (extents) 。これにより、随分と待たされる処理だった巨大ファイルの削除などが高速化したらしい。
- ディスク内でデータを書き込む場所を決める操作が、ブロック単位でしかできなかったのが、いくつかのブロックでまとめてできるようになった (multiblock allocation) 。
- アプリケーションから write システムコールが発行された際、そのデータを書き込むディスク内の場所をすぐには決めず、何回か溜まってから決めることができるようになった (delayed allocation) 。これにより、 multiblock allocation とあいまって、より適切な場所決めができるようになった。これは、フラグメンテーションの解消に役立つため、 extents とも相性がいい。
- ファイルのメタ情報 (inode) のうち実際には使っていないものを読み飛ばすようにしたところ fsck が 2〜20倍 高速化した。
- ファイルのディスク内位置情報は、 ext3 ではブロックごとに管理されていたが、これを連続するブロックでは一括して扱えるようになった (extents) 。これにより、随分と待たされる処理だった巨大ファイルの削除などが高速化したらしい。
- GEM Memory Manager
グラフィックコントローラからアクセス可能なメモリ領域を ioctl を通して制御する。一般向けではなく、 X のユーザランドドライバ向けの機能である。インタフェースはかなりドライバ依存で現在は i915 のみの投入となっている。3D ゲームのベンチマークで 50% 程度速くなっているとのこと(今までが遅すぎたようだが)。 - ワイヤレス USB のサポート
- メモリ管理の改良
ディスクにフラッシュ可能な名前付きページ(ファイルキャッシュ)と、ディスクにスワップ可能な匿名ページ、メモリに保持しなければいけないページをそれぞれ別々のリストに格納するようにして、メモリの回転率を上げた(実際に回転するのはディスクである)。 - コンテナフリーザ
システムのサスペンド、レジューム機構を応用して、指定したタスクセットのみをフリーズ、解凍させる機能が追加された。ジョブスケジューラ用らしい。 - ブートトレーサ
CONFIG_BOOT_TRACER=y でコンパイルしたカーネルを、 initcall_debug 及び printk.time=1 パラメータを付けてブートし、 dmesg | perl scripts/bootgraph.pl > output.svg とすれば、綺麗なタイムチャートが出現するらしい。 - ディスク衝撃保護
/sys/block/*/device/unload_heads に書き込んだミリ秒だけディスクヘッドを緊急退避する。ディスクが ATA/ATAPI-7 規格をサポートしていることが条件。
2008年12月26日金曜日
Linux 2.6.28
元ネタは kernelnewbies.org 。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿