上川純一
日本ヒューレット・パッカード株式会社
コンサルティング・インテグレーション統括本部
2005/4/19
Linuxカーネルの開発には、世界中の人々がそれぞれの立場でかかわっています。主にメーリングリストを通じてさまざまな提案が行われ、その中のいつかが採用され、いくつかが却下されます。時にはそれが物議を醸すこともあります。本連載では、Linuxカーネルをめぐるさまざまなトピックを毎月ピックアップしてお伝えしていきます。
今回は、2005年3月にlinux-kernelメーリングリスト(以下LKML)に流れた情報から、いくつかの話題を紹介します(編注)。
編注:http://www.ussg.iu.edu/hypermail/linux/kernel/で、LKMLのアーカイブを閲覧することができる。 |
Linuxカーネル2.6.x.y系列の導入
これまでも、「Linuxカーネルのリリース方法を変更しよう」という議論は何度もありました。そして、2005年2月に行われた議論の結果として、3月から新しいリリースプロセスの実地試験が始まりました。安定版カーネルのバージョン番号を
2.6.x.y |
という4つの番号で管理し、「2.6.x」に対して「2.6.x.y」は安全な修正のみを取り込んだものにするという方法です。この方針で、3月中に2.6.11.1から2.6.11.6までのリリースがありました。
カーネル2.6.11.1〜6は、Linus Torvaldsの開発ブランチとは独立したものです。次にリリースするカーネル2.6.12へ向けた変更とは別に、2.6.11の安定化を目指したパッチのみを適用しています。つまり、本当に必要な修正だけを採用することにより、安定化を図ったもの(カーネル2.6.11.y)と、開発用のもの(カーネル2.6.12)を分けるということです。
Linusは、「SUCKER(しっかりとパッチレビューができて、強い意志を持った融通の利かない嫌なヤツ)を演じられる人でないと、この作業はできない」と書いていました。Greg Kroah-Hartman(以下Greg K-H)とChris Wrightが、この作業を実行に移しています。
- セキュリティフィックスやドライバの致命的なバグを修正する
- 体裁の修正やコンパイル時の警告の修正などは採用しない
- パッチをGreg K-HとChris Wrightがレビューし、しばらく寝かせたものを採用する
という手順になっているようです。
カーネル2.6.11.1〜6の特徴を簡単に説明します。- 2.6.11.1、2.6.11.2
変更点は少量で、コンパイルできないものの修正とデバイスのワークアラウンド、エラーコードの修正
- 2.6.11.3
コンパイルできないものの修正の追加と、本当に動かないデバイスドライバの修正
- 2.6.11.4
変更点は少数で、pppのセキュリティフィックスが入っていた
- 2.6.11.5
いろいろな動かないドライバの修正
- 2.6.11.6
isofsの修正などの適用および2つのセキュリティフィックス
このリリースはChris Wrightがアナウンスしました。
この方針の問題は、2.6.11系列に対しての修正は、2.6.12の向いている方向とは違う、という点です。2.6.11系列と2.6.12の間に乖離が発生することで、2.6.12のリリースが遅れれば遅れるほど困難な作業が増えていきそうです。
ただし、安定版のリリースが行われることでより安心して最新版のカーネルを利用でき、よりテストされるようになるという利点がありそうです。
relayfsの統合
relayfs(Relay Filesystem)は、カーネル空間からユーザー空間への効率的なデータ転送を提供するものです。カーネル側ではrelayfsの提供するAPIを利用して、逐次データをユーザー空間に提供します。ユーザー空間のアプリケーションは、relayfsをマウントしたディレクトリのファイルをopenし、mmap、pollなどを利用してデータを受け取ります。ちょうど/procと似たような仮想ファイルシステムを提供します。
relayfsはもともと、LTT(Linux Trace Toolkit)というカーネルの動作を追跡するためのツールで収集したデータを、ユーザー空間に伝達するために実装された機能です。いったん2.6.11-rc2-mm2で導入されたのですが、後にまた削除されていました。その後、「いろいろな改善が施されたのでmmツリーに統合しよう」という話が出て、2.6.11-mm3で再度統合されました。
その際のannounce.txtには、
+relayfs.patch |
という記述があります。
デバッグやデバイスドライバの開発などに便利そうなインターフェイスなので、これからいろいろ使えるかも?
参考リンク: | ||
relayfs | http://www.opersys.com/relayfs/ | |
LTT | http://www.opersys.com/ltt/ | |
2.6.11-mm3の announce.txt |
http://www.kernel.org/pub/linux/kernel/people/akpm/patches/ 2.6/2.6.11/2.6.11-mm3/announce.txt |
1/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」コマンドです。
|
|