sysfsはLinuxカーネルによって提供される疑似ファイルシステムであり、カーネルのデバイスモデルから仮想ファイルを介してさまざまなカーネルサブシステム、ハードウェアデバイス、および関連するデバイスドライバーに関する情報をユーザー空間にエクスポートします。[1] エクスポートされた仮想ファイルは、さまざまなデバイスとカーネルサブシステムに関する情報の提供に加えて、それらの構成にも使用されます。
sysfs は、 BSDオペレーティングシステムのsysctlメカニズムに似た機能を提供しますが、 sysfs は専用のカーネルメカニズムではなく仮想ファイルシステムとして実装されており、Linux では、sysctl構成パラメータが/sys /にマウントされている sysfs ではなく、procfsの一部として/ proc/sys/で利用可能になるという違いがあります。[2]
歴史
2.5 の開発サイクル中に、バージョン 2.4 の次の欠点を修正するために Linux ドライバー モデルが導入されました。
- ドライバーとデバイスの関係を表す統一された方法は存在しませんでした。
- 汎用的なホットプラグメカニズムはありませんでした。
- procfs はプロセス以外の情報で乱雑になっていました。
Sysfs はデバイスツリーに存在する情報をエクスポートして、procfs を乱雑にしないようにするために設計されました。これは Patrick Mochel によって書かれました。[3] [4] Maneesh Soni は後に大規模システムでのメモリ使用量を削減するための sysfs バッキングストアパッチを作成しました。
2.5の開発の翌年、ドライバモデルとdriverfsのインフラストラクチャ機能が他のサブシステムにも役立つことが証明され始めました。[5] [6] kobjectsは中央オブジェクト管理メカニズムを提供するために開発され、driverfsはサブシステムに依存しないことを示すためにsysfsに名前が変更されました。
Sysfsは/sysマウントポイントの下にマウントされます。初期化中に自動的にマウントされない場合は、次のmountコマンドを使用して手動でマウントできますmount -t sysfs sysfs /sys。[1]
サポートされているバス
- 交流ピ
- ACPIデバイスに関する情報をエクスポートします。
- パソコン
- PCIおよびPCI Expressデバイスに関する情報をエクスポートします。
- PCIエクスプレス
- PCI Expressデバイスに関する情報をエクスポートします。
- USB
- USBデバイスに関する情報をエクスポートします。
- SCSI
- USB、SATA、NVMeインターフェースを含む大容量ストレージデバイスに関する情報をエクスポートします。[7]
- S/390バス
- S/390アーキテクチャには他のどこにも見られないデバイスが含まれているため、特別なバスが作成されています。
Sysfs とユーザー空間
Sysfs は、udevやHALなどのハードウェアとそのドライバー (カーネル モジュール) に関する情報にアクセスするために、いくつかのユーティリティによって使用されます。 procfsを介して以前に取得された情報にアクセスするためのスクリプトが書かれており、一部のスクリプトは、属性を介してデバイス ドライバーとデバイスを構成します。
参照
参考文献
- ^ ab Patrick Mochel および Mike Murphy。「sysfs - カーネル オブジェクトをエクスポートするためのファイルシステム」。kernel.org。
- ^ SUSE。「sysctl マニュアル ページ」。FreeBSD。sysctl
は、実行時にカーネル パラメータを変更するために使用されます。使用可能なパラメータは、/proc/sys/ にリストされているものです。Linux で sysctl をサポートするには、Procfs が必要です。sysctl を使用して、sysctl データの読み取りと書き込みの両方を行うことができます。
- ^ Torvalds, Linus (2002 年 10 月 18 日)。「Linux v2.5.44 - そして 1 週間オフライン」。
- ^ Torvalds, Linus (2002 年 11 月 4 日). 「Linux v2.5.46」.
- ^ Mochel, Patrick (2001 年 10 月 17 日). 「[RFC] 2.5 用の新しいドライバー モデル」.
- ^ Jansen, Tim (2001 年 11 月 1 日)。「Re: [PATCH] 2.5 PROPOSAL: 現在の /proc の置き換え」。
- ^ 「SCSI インターフェース ガイド — Linux カーネル ドキュメント」www.kernel.org 。 2020 年 11 月 13 日閲覧。
外部リンク
- LWN から 2.6 シリーズへの移植におけるドライバー モデルの概要
- LWN の kobjects と sysfs を 2.6 シリーズに移植
- ラムフス
- sysfs ファイルシステム、OLS'05
- Documentation/filesystems/sysfs.txt sysfs に関する Linux カーネルのドキュメント
