|
aka LWN JAPAN |
|
|
ChangeLog |
カーネル [1999/7/15〜8/5]
Section Editor: Jonathan Corbet
|
ChangeLog |
| 7月 15日から 8月 5日までのカーネル関連ニュースをお伝え致します。 | ||
|
|
||
| カーネル [1999/7/15〜22] | ||
|
|
||
カーネル読書会宣言よしおかひろたかさんのページ(日本語) で、カーネル読書会の資料が公開されています。 |
||
|
|
||
最新開発カーネル最新開発カーネルリリースは、2.3.11 です。 LWN (7月22日号)が「出版」される直前にリリースされました。 このリリースのアナウンスはまだ出ていません。 アーキテクチャ固有の変更が多数と、 新しいリソースマネージャ、USB 関連の変更、 その他細々した多くの修正、が含まれています。 |
||
|
|
||
最新安定カーネル最新安定カーネルは依然として 2.2.10 のままです。 現在この安定シリーズには、 とてつもない数のパッチが山積みになっています。 2.2.10ac12 のアナウンス (英語) の、かなり見ごたえのあるリストをご覧下さい。 リストの一部だけが 2.2.11-pre2 (英語) にまとめてパッケージされています。 すべてを 2.2.11-pre2 に含めなかったのは、 1回のリリースに詰め込んで、 すべてが上手く動くのを願おうというのには、 ただただ多過ぎたからということです。 Linus は既に 2.2.11 プレパッチに賛成していると言われています。 したがって、大きな問題がなければ、近いうちにこれが 2.2.11 として リリースされるかも知れません。 |
||
|
|
||
開発作業はどのように進められるべきか今週、 新しいリソース管理のコードが議論の的となりました。 このコードは、ハードウェアリソース(I/O ポート等)の割り当てを取り扱うもので、 先週 Linus が最初から書き直しました。 リソースの扱いがかなり綺麗に整理されるので、 この新しい方法に対しては一般的に満足されています。 けれども、すべての人が完全にハッピー、というわけではありません。PCMCIA サブシステムの作者である David Hinds 氏は、 PCMCIA カードのような動的ハードウェアの より良いサポートに取り掛かっていました。 このサポートは、 来るべき「ホットプラグ PCI」や USB のような、 もう一つのより新しい「ホットプラグ」アーキテクチャに拡張されることを 目的としています。 David の作業は、 ハードウェアとそのハードウェアによって使用されるリソースと を別々に追跡することを容易にするために、 古いリソースマネージャに変更を加えることを必要としていました。 そして、その線での作業は良い方向に進み始めていました。 Linus の新しいリソースマネージャは、 そんな中、突然現れました。 前もっての議論(少なくとも公的には)は、ありませんでした。 Linus の行う変更は、 このような一種の「既成事実」モードで現れて来る傾向にあります。 David の変更は過去のものとなり、 彼のハードウェア追跡も今となっては動きません。 David は 彼の作業結果を再び動かすことができるようにするため 小さな変更をいくつか頼みましたが、 Linus は協力を渋っています。 開発作業がどのように進められるべきかについては、 かなり強い意見の相違があるようです。 そしてそれによって、 いくつかの必要とされている機能の開発に支障を来たすという結果にも なりうるのです。 近いうちに何らかの解決が見られることを望むばかりです。 |
||
|
|
||
「Linux ストレージ管理ワークショップ」「Linux ストレージ管理ワークショップ」 が、1999年9月6〜7日にドイツの Darmstadt で開催されます。 したがって、 8〜10日に Augsburg で開催される、第6回 Linux-Kongress (英語) と隣接することになります。 このワークショップは、 Linux 開発の、 ジャーナリングファイルシステム、 論理ボリュームマネージャ(LVM)、 RAID、バックアップとリストア、 といった面の現状を考察します。 開催者の方々は、 ストレージ管理に興味がある企業とともに、 この分野で活動している多くのハッカーを惹き付けたいと願っているようです。 非常に興味深いです。 詳細は アナウンス (英語) をご覧下さい。 |
||
|
|
||
今週のパッチとアップデート
|
||
|
|
||
| カーネル [1999/7/22〜29] | ||
|
|
||
最新カーネル最新カーネルリリースはいまだ、2.2.10(安定カーネル)と2.3.11(開発カーネル)です。 今週(7/22〜28)は新しいカーネルリリースはありませんでした。 Linus と Alan があまり関わっていなかったこともあり、 全体的に今週はカーネル開発に関してはゆっくりした週でした。2.3.12 のための pre-patch が公開されています。 このパッチは大きいようですが、 これはほとんどパラレルポートドライバの場所を 移動したことによるものです。 USB の作業結果がいくらか、 ファイルシステム関連の変更がたくさん、 そして面白いことには、 Stephen Tweedie 氏の Raw I/O パッチが含まれています。 |
||
|
|
||
Raw I/ORaw I/O コードは、 興味深い追加です。 Linus は過去に、 raw I/O (バッファキャッシュをバイパスする、 ディスクやその他のブロックデバイスに対する I/O) に反対していました。 しかし Stephen は、 そのテスト(Linus の気を損ねないという試練)に合格するような raw I/O を実装する方法を見つけたのです。 ですから、2.3.12 でこれを見ることができるでしょう。Stephen のアプローチは、 他の Unix システムで見られるものと違っています。 例えば Solaris では、 ディスクパーティションには /dev/dsk/c0t0d1s0 みたいな名前が付いています。 そして、そのようなパーティションそれぞれに、 「raw」アクセスを提供するような /dev/rdsk/c0t0d1s0 が自動的に存在します。 Linux の仕組みでは、そうではなく、 デフォルトでは「raw」アクセスは存在しません。 特定のデバイスへの「raw」アクセスを許したいシステム管理者は、 それをセットアップするためにヘルパープログラムを走らせることになります。 これがどのように動くのかについての詳細は、 Stephen からのノート (英語) にあります。 良い感じです。 |
||
|
|
||
アイドル CPU 時間のスケジューリングアイドル CPU 時間のスケジューリング。 DES クラッカーや SETI コードのような、 なんらかのアイドル時間クランカー(すべてを処理するのに 非常に長い時間を要するので、すぐに終わってくれなくても良くて、 インタラクティブなその他の処理 (eg. デスクトップとして使ってるときの emacs)に差し支えのないように 空いたアイドル時間を利用して処理して欲しいプログラム) を走らせている方なら、 このようなタスクがいつもちょっとした CPU 時間をも取ってしまうことに お気付きのことでしょう。 このような現象はプロセスが最大限に nice された時や、 CPU を必要とする他のプロセスがある時でさえも起こります。もし、CPU を必要とする他のプロセスが走っているときには、 そのようなプロセスを完全にプロセッサからブロックすることができるのであれば、 素敵だと思いませんか? Rik van Riel 氏が、 新しいスケジューリングのクラスである SCHED_IDLE を実装するパッチを しばらく前から公開していたことが分かりました。 このクラスのプロセスは、 本当に他に何もすることがないときにだけ走り始めます。 このパッチはまだ主流カーネルには含まれていません。 含まれない方が良い理由が一つあるからです。 システムを完全にロックアップしてしまう可能性を残しているからです。 想像してみてください。 しばらく楽しくクランク(継続的に実行)していき、 何か重要なシステムリソースのようなもの (システムで入手可能なバーチャルメモリすべて、 あるいは、ある重要なファイルのロックのようなもの) を保持してしまう、 SCHED_IDLE タスク。 そしてそこに、 よりプライオリティが高く CPU にへばり付くようなクランカーがやってきます。 はい、SCHED_IDLE プロセスはこうして完全にロック(ハング)してしまいます -- (始めからいて重要なりソースを握り締めたまま スリープしてしまった)このプロセスは、 (よりプライオリティの高いクランカーがやってきたために、 CPU から閉め出されてしまうので) その握っていたリソースを開放するために走ることができないのです。 さらに明らかになったことは、 このプロセスを kill することもできないのです。 何故なら、プロセスが何かをするための CPU 時間を獲得しない限り、 シグナルさえも届けられないからです。 結果は、ロック(ハング)してしまったシステム。 自ら DoS 攻撃を呼び寄せているようなものです。 この種の問題には、 「プライオリティ・インバージョン(priority inversion)」という一般名称が付けられています。 この問題は多くの状況下で持ち上がります。 プライオリティ・インバージョンは、 プロセスが重要なリソースを獲得したときにそのプロセスのプライオリティを 上げることにより対処することができます。 けれども、 カーネルの中で一貫したプライオリティの調整を行うのは厄介な作業です。 おそらく実際に実装するために必要となる作業は、 この特定の機能を実装するためなら取り組んでも割に合うと思える作業よりも、 ずっと面倒な作業になるでしょう。 そこで最終的に Rikは、 この問題を現実的な方法で処理しようとするパッチを リリース (英語) しました。 SCHED_IDLE クラスは生成されますが、 デフォルトでは無効にされています。 プロセスがこれを利用できるようにするためには、 システム管理者が sysctl システムコールを用いてこのクラスを有効にしなければなりません。 このことと、他の 2つのスケジューラの変更によって、 多くの利用において SCHED_IDLE が「十分安全」になるはずです。 |
||
|
|
||
今週のパッチとアップデート今週のその他のパッチとアップデート:
|
||
|
|
||
| カーネル [1999/7/29〜8/5] | ||
|
|
||
最新開発カーネルリリースは 2.3.12最新開発カーネルリリースは 2.3.12 です。 2.3.13 のプレパッチが公開されています。 Linus はこのパッチで、 ドライバの初期化を行う方法を変更しました。 これによって、init/main.c 中の 大量のイヤな #ifdef の必要性がなくなります。 これは広大な変更で、 多くのドライバに変更が要求されます。 これらの変更には特に複雑なことはないのですが、 数が多いため、 すべてのコード中でこの変更を成し遂げるには、 しばらく時間がかかるかもしれません。 Linus のアナウンス (英語) にもう少し情報があるのでご覧下さい。 |
||
|
|
||
2.3 フィーチャーフリーズLinus はまた、 2.3 カーネルのフィーチャーフリーズが、 たぶんあと約 2週間で行われることを 宣言 (英語) しています。 Linus は明らかに、 秋に 2.4 を出すことに対し真剣になっています。 2.2 が出るまでには時間が掛りすぎた、 という意見に反対する方はほとんどいらっしゃいませんが、 2.4 はちょっと急ぎすぎではないかと、 疑問に思う方はいらっしゃるかも知れません。 (大部分の方にとっては十分素晴らしく動きますが) 一部の評価によれば、 2.2 はまだ本当に安定しているわけではありません。 けれども、それが安定する頃には、 すでにそれは「時代遅れ」になってしまうかもしれません。2.4 を心待ちにして、 Joseph Pranevich 氏が 「素晴らしき Linux 2.4 の世界」 (英語) の最初のバージョンを公開しました。 2.4 リリースに現れる予定の変更についての説明があります。 (※ Joseph Pranevich 氏の御好意により現在翻訳を作成させていただいております。 どうぞお楽しみに。) |
||
|
|
||
最新安定リリースは 2.2.10最新安定リリースは 2.2.10 のままです。 Alan Cox 氏は 一連の 2.2.11 プレパッチを順に出していますが、 Alan は最近あまり活発でなくて、 こちらの戦線の進行は、ゆっくりとしています。 |
||
|
|
||
Sparc で 2.3 ?2.3 を試してみようと考えている Sparc ユーザの方はいらっしゃいますか? LWN からのアドバイスは、「待て」です。 2.3 のいくつかのメモリ管理の変更が、 Sparc 上でひどく壊れています。 その結果として、2.3 カーネルがビルドできません。 これを修正する作業はすでに進行中ですが、 まだしばらくかかりそうです。 この作業を手伝わせていただこうということでなければ、 あと 2、3のリリースには近寄らないのがベストです。 |
||
|
|
||
あなたのバックアップに危険!あなたのバックアップに危険が! でも、そんなにご心配なく。 Windows パーティションの話です。 、、、という風に Robert de Bath 氏からの ノート (英語) は始まっています。 問題は、こういうことです: Windows "VFAT" ファイルシステムを取り扱ったことがある方は、 1つのファイルに実際には 2つの名前がありえることをご存じでしょう。 このファイルシステムは、 ほとんど本物の OS のようにロングファイルネームを サポートしていますが、 その下では、 DOS の 8文字プラス3文字という ("短い")ファイルネーム (ショートファイルネーム)がファイルを実際に識別しています。 ですから、 "Program Files" は、 "Progra~1" となります。Linux の VFAT ファイルシステムは、 ロングファイルネームだけをユーザに見せます。 これは、ユーザが見たいのは長いファイル名だけだという 合理的な仮定のもとに行われています。 通常、これは申し分なくうまくいきます。 ですが、ここで、このファイルシステムをバックアップし、 将来的にいつか復元するという状況を想像してみてください。 すべてのロングファイルネームは元通りになりますが、 Linux は、それらとともに 8文字プラス3文字のファイルネームを 生成しなければなりません。 これらの 8文字プラス3文字のファイルネームは、 通常は以前あったものと同じに戻りますが、 いつもそうなるとは限らないのです。 8文字プラス3文字のファイルネームの変更は、 実際にそれに依存する特定のプログラム(例えば Office)の場合でなければ、 必ずしも問題にはなりません。 ロングファイルネームとショートファイルネームはまた、 Windows レジストリ内でごちゃ混ぜになる傾向にあります。 その結果、ちゃんと対応させ続けなければ深刻な破壊に繋がります。 理性のある人なら、 Windows のソフトウェアを使ってないのに VFAT を使う理由はありません、、、 ですから、これはかなり問題です。 そして、この問題は簡単には解決しないでしょう。 Unix の世界観では、 同じファイルのための2つの奇妙にリンクした名前を 取り扱うための用意などされてはいないのです。 最も普通のアイデアとしては、 ロングファイルネームを 8文字プラス3文字のファイルネームに リンク(ハードでもソフトでも)し、 ディレクトリを表示するときには両方をリストするというものです。 VFAT はリンクをサポートしていないため、 この使い方には曖昧(あいまい)なところがなく、 簡単な解決法のように思えます。 けれども本当にこの問題を考えてみると、 そうではないのです。 ロングファイルネームとショートファイルネームは、 Unix のリンクよりも、ずっと密接に結び付けられています。 ファイルへのリンクの一方の名前を変更(リネーム)したときに、 もう一方も変わるなんて、誰が思います? ディレクトリもまたロングファイルネームを持っているので、 ハードリンクを使うなんて、もってのほかです。 ディレクトリにハードリンクするのは、 ほとんどすべての Unix 系システムにおいて、 トラブルに直結しています。 シンボリックリンクででさえも、 すべてを本当に正しく動かそうと試みるのは、 そうですねえ、 蟻(アリ)塚に縛り付けられるのと比べて、 もう少しだけ楽しくない、といったところでしょうか。;-) この問題が解決できるのかどうかは、はっきりとはしていません。 それでは、これは一体どれくらい重要な問題なのでしょうか。 どうやら Windows 上で走るほとんどすべてのバックアッププログラムが 同じ問題を抱えているようです。 結局、 VFAT は Windows の利用の場合においてでさえも、 並外れてイヤなものなのです。 これを正しく動かすためには、 ただただ、やらなければいけないことが多すぎるのです。 |
||
|
|
||
SCHED_IDLE についてのノート(先週の LWN (英語)(ChangeLog では上記記事) で議論した) 新しく提案されたスケジューラクラスの SCHED_IDLE についてのノートがいくつかあります。 これは、他に何も走らせるものが無い場合にのみ 優先順位の低いクランカージョブ (すべてを処理するのに 非常に長い時間を要するので、すぐに終わってくれなくても良くて、 インタラクティブなその他の処理 (eg. デスクトップとして使ってるときの emacs)に差し支えのないように 空いたアイドル時間を利用して処理して欲しいプログラム) を走らせます。
|
||
|
|
||
今週のパッチとアップデート今週リリースされたその他のパッチとアップデートです。
|
||
|
|
||
|
||
|
|
||
関連 URL
|