LinuxにおけるI/Oデバイス管理について
LinuxにおけるI/Oデバイス管理について学習したため、そのまとめとして個々に整理する。
sysfsファイルシステム
- Linuxにおける特殊ファイルシステムの一種であり、一般的には
/sys
ディレクトリにマウントされている。 - procファイルシステム同様、ユーザーモードのアプリケーションからカーネル内部のデータにアクセスするために設計されたものであるが、procファイルシステムよりも、接続されているデバイスやバスについてより構造化されている。以下、sysfsに含まれる代表的なディレクトリを記載する。
kオブジェクト
- Linuxにおけるデバイスドライバモデルを実装するために使用されるデータ構造。
- 各kオブジェクトは、それぞれsysfsのディレクトリと対応している。
- バス・デバイス・ドライバのディスクリプタなどをそれぞれ「コンテナ」という概念で扱い、
kobject
構造体によって表される。
デバイスファイル
- UNIX系オペレーティングシステムの特性上、あらゆるものをファイルとして扱うことを基本としており、デバイスの入出力に関してもファイルへの読み書きと同様に行えるように設計されている。
- このような、デバイスとのやり取りに使用されるファイルをデバイスファイルと呼び、各デバイスファイルへの読み書きは対応するデバイスドライバへのデータの受け渡しと等価となる。