Appendix B. Linux カーネル 2.2 と 現状のカーネル 2.4 間の変更

Table of Contents
B.1. 中間レベルの変更
B.2. sd の変更
B.3. sr の変更
B.4. st の変更
B.5. sg の変更
B.6. Linux カーネル 2.4 系での変更

特筆すべき作業としては、Linux カーネル 2.2 では SCSI コマンドキューがひとつ しかなかったのに対し、デバイスごとにひとつのキューが使えるようになりました。 SCSI サブシステムが SMP により親和性が高くなるように、ロックの粒度がさらに 細かくなっています。linux カーネル 2.2 では、基本的にサブシステム全体が 1 つ のロックを使っていました。

SCSI サブシステムの一部ではありませんが、devfs が対応することで、SCSI デバイスが以前抱えていたアドレス付け問題が多数解決します。 devfs に関連して、devfs が無い場合にとても便利なのが、カーネルブート時 (およびモジュールロード時)の「scsihosts」オプションです。ユーザはこの オプションによって、複数の SCSI ホストの順序付けを制御できます。

Linux カーネル 2.4(とその開発ブランチ)で効果が明らかになった機能や ドライバは、Linux カーネル 2.2 系の新しいリリースにバックポートされる 傾向にありますので、この付録の更新は容易ではありません。

現在(Linux カーネル 2.4.2)、MO デバイスのサポートがおかしくなっています。 ブロックサイズが 2048 バイトである古い DOS ファイル・システムもおかしい との報告が上がっています。 ブロックサブシステムが使用している 1 KB の論理ブロックサイズよりも、物理 ブロックサイズが大きいメディアで起こる問題のようです。 sd ドライバにだけ問題があります(幸いなことに、2048バイトのセクタが標準である sr ドライバは、問題ありません)。