6月版 君は知っているか? 2.6.30の変更内容を
小崎資広
2009/7/1
セキュリティ周りの強化
■TOMOYO
SELinux、SMACに続く第3のセキュリティモジュールです。従来のセキュリティモジュールと異なり、パス名ベースの強制アクセス制御(MAC)を提供するのが特徴です。
関連記事: | |
TOMOYO Linux カーネルマージまでの道のり |
■IMA
IMA(Integrity Management Architecture)は、実行ファイルや重要なシステムファイルのハッシュ値を保持し、アタッカーが改ざんを試みた場合にそれを検知します。また、システムがTPMチップを搭載している場合は、それを利用することで信頼性を高めることができます。
ネットワーク周りの強化
■Reliable Datagram Sockets(RDS)
Reliable Datagram Sockets(RDS)は、InfiniBandのReliable DatagramサービスをUDPソケットとして使用できるようにする機能です。InfiniBandはハードウェアレベルで高信頼ネットワークを保証しているので、ソフトウェアレベルのCRC処理などはスキップ可能であり、逆にそうした方がInfiniBandの低レイテンシ特性を生かせます。
Oracleによれば、ネットワーク性能依存のアプリケーションにおいて、InfiniBandとRDSの組み合わせは、通常のギガビットイーサネットよりも60%高速化できたそうです。
また、ソフトウェアからはUDPに見えることで、相手数にかかわらず通信用のsocketが1つで済むため、ポート番号不足が深刻な問題となる大規模クラスタでは、一粒で二度おいしい機能といえるでしょう。元からSilverstormのRDS実装を使っていたHPC屋さんからしても、これが標準機能としてマージされたのは意味があるのではないでしょうか。
■IEEE 802.11w(wireless management frame protection support)
IEEE 802.11w標準のサポートが追加されました。これは従来、無線LANにおいてフレームのデータ部分のみしか暗号化していなかったのを、ヘッダ部分も含めて暗号化することにより信頼性を高める技術です。
そのほか、カーネルコアの変更
ほかに、カーネルコアに加えられた変更点を挙げてみます。
- preadv()/pwritev()system callが追加されました
- fastbootがデフォルトでONになりました
- カーネルイメージを、従来のGZIPだけでなく、LZMA/BZIP2でも圧縮できるようになりました。LZMAは伸長時間の速さと高圧縮率を兼ね備えており、期待が持てます
- カーネルのzImageがとうとうサポートされなくなりました。bzImageで困りませんからね
- x86の最後のサブアーキテクチャ「Voyager」のサポートコードが削除され、x86 archからサブアーキテクチャ対応コードが削除されました。「これでメンテが簡単になる」と、x86開発者が泣いたとか
- 割り込み処理を割り込みスレッドで処理するthreaded interrupt handler機能が、-rtツリーからバックポートされました。ドライバが割り込み処理を登録するときにスレッドを使うかどうかを選択できます(まだ実際に使っているドライバはないみたいです)
- slab allocationをトレースするkmemtrace機能。メモリリークやメモリの使い過ぎの解析に役立ちます
- adaptive spinning mutexがマージされました。もはやmutexはロック競合時にスリープするとは限りません
- SSE4.2のAES-NI命令に対応し、各種暗号処理が高速化しました
-stableの進ちょく
相変わらず、ext4のバグのペースはすさまじいものがあります。Ubuntuで問題になったdelayed allocationが原因でGNOMEアプリの設定ファイルがクラッシュ時に消失してしまう問題の修正パッチもバックポートされています。
■2.6.29.y:
- 2.6.29.5(6月15日):Greg K-H
・nfs: NFS v4クライアントがMAY_EXECを正しくハンドリングするようにした
・tcp: MSG_PEEKのレースチェックを修正
・random: get_random_int()をよりランダムにした(筆者注:誰だ、pid+jiffiesなんてシードに入れたやつは)
・SLUB: reclaimable slab(icacheとかdcacheとか)の回収時に、reclaim_stateのアップデートを忘れており、回収量が正しく計算されていなかった問題を修正(筆者注:問題というか未実装というか、何でこんな黄金ルートに未実装が……関係者一同ぼうぜんとしました)
・ext4: Delayed allocation使用時、まだブロックが割り当てられていないダーティーページがあるかもしれないのにもかかわらず、ファイルクローズ時にprealloc spaceを解放していた問題を修正
・ext4: ページ単位で書き込みができない場合に、データをゼロ初期化せずに書き込み、ファイルが壊れる問題を修正
・ext4: delayed allocation時、buffer_headのブロックナンバーに明らかに偽物と分かる非常に大きな値を明示的に設定するようにした
・ext4: エクステントが初期化されたときにunwritten buffer_headフラグをクリアするようにした
・ext4: 削除済みのディレクトリへのトラバーサルが発生したときに、-ESTALEではなく-EIOを返すようにした
・ext4: find_group_flexのfallbackワーニングが1回のみしか表示しないつもりが、そうなっていなかったミスを修正
・ext4: 不適切なinodeフラグを親から継承しないようにした
・ext4: inode alloc時の不適切なinodeフラグのチェックを強化
・ext4: 32000サブディレクトリ制限についてドキュメントを追記
・ext4: EXT4_IOC_ALLOC_DA_BLKS ioctl(delayed allocation時に強制的にブロックを確保)を追加
・ext4: delayed allocation使用時、close()時にブロックがアロケートされるよう変更
・ext4: delayed allocation使用時、rename()時にブロックがアロケートされるよう変更
・ext4: auto_da_allocマウントオプションを追加。上記close()、rename()時のブロック確保を無効にすることができる。無効にした場合、性能は上がるがクラッシュ時のリスクも上がる
・ext4: inodeをディスクから読んだ時にi_modeがおかしな値になっていないかチェックするようにした
・ext4: ディスク上のinodeが壊れ、おかしなi_file_aclが読み出された場合にソフトロックアップが発生していた問題を修正
・ext4: EXT4_FEATURE_INCOMPAT_64BITが存在しないときは、i_file_acl_highを無視するよう修正
・ext4: ext4_inode_info.i_cached_extentのレース状態を修正
ほか、89パッチ
2/2 |
|
|
||||
|
連載 Linux Kernel Watch |
Linux Squareフォーラム Linuxカーネル関連記事 |
連載:Linux Kernel Watch(連載中) Linuxカーネル開発の現場ではさまざまな提案や議論が交わされています。その中からいくつかのトピックをピックアップしてお伝えします |
|
連載:Linuxファイルシステム技術解説 ファイルシステムにはそれぞれ特性がある。本連載では、基礎技術から各ファイルシステムの特徴、パフォーマンスを検証する |
|
特集:全貌を現したLinuxカーネル2.6[第1章] エンタープライズ向けに刷新されたカーネル・コア ついに全貌が明らかになったカーネル2.6。6月に正式リリースされる予定の次期安定版カーネルの改良点や新機能を詳しく解説する |
|
特集:/procによるLinuxチューニング[前編] /procで理解するOSの状態 Linuxの状態確認や挙動の変更で重要なのが/procファイルシステムである。/procの概念や/procを利用したOSの状態確認方法を解説する |
|
特集:仮想OS「User
Mode Linux」活用法 Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説 |
|
Linuxのカーネルメンテナは柔軟なシステム カーネルメンテナが語るコミュニティとIA-64 Linux IA-64 LinuxのカーネルメンテナであるBjorn Helgaas氏。同氏にLinuxカーネルの開発体制などについて伺った |
|
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|