|
发表于 2006-3-6 22:03:57
|
显示全部楼层
Linux 2.6 核心加入了 sysfs 檔案系統,它可說是proc、devfs、與 devpty 的集合。sysfs 檔案系統列舉了連到系統的裝置與匯流排,整合到一個階層性的檔案系統下,可以從 user space(使用者空間)存取。sysfs 檔案系統用來處理之前位於 /proc/ 目錄中的裝置與驅動程式特定選項,同時包括了之前 devfs 所提供的動態裝置功能。早期的 sysfs 中,許多驅動程式與工具程式還使用較老的 proc 項目;但可以確知的是,將來會走向 sysfs。
sysfs 檔案系統掛載在 /sys/ 之下,其中的目錄將連接到系統的裝置分成多種項目。/sysfs/ 子目錄包括了:
/devices/ 目錄
這目錄包括了 /css0/ 目錄,其子目錄顯示了所有 Linux 核心偵測到的所有子通道(subchannel)。所有子目錄都以 0.0.nnnn 格式顯示,其中 nnnn 是十六位元的子通道數值,從 0 到 ffff。子通道目錄包括了狀態檔案,其他目錄則顯示了真正的裝置。裝置目錄的格式為 0.0.xxxx,其中 xxxx 是裝置的單位位址。/devices/ 目錄也包括了裝置的狀態資訊,以及設定的選項。
/bus/ 目錄
這包含了 /ccw/ 與 /ccwgroup/ 子目錄。CCW 裝置要透過通道指令集存取。/ccw/ 目錄中的裝置只佔用主機通道子系統的一個子通道。CCW 群組裝置也透過通道指令集存取,但使用每個裝置的多個子通道。舉例來說,一組 3390-3 DASD 裝置使用一個子通道;而一張 OSA 介面卡的單組 QDIO 網路連接,卻使用了三個子通道。/ccw/ 與 /ccwgroup/ 目錄都包括了裝置與驅動程式的子目錄:
/devices/ 目錄包括了指向 /sys/devices/css0/ 裝置目錄的連結(symbolic link)。
/drivers/ 目錄則包括目前系統載入的裝置之所有驅動程式,每個驅動程式各有一個目錄。zFCP 驅動程式的目錄也位於此。/driver/ 目錄包括了裝置驅動程式的設定,以及指向使用該驅動程式的裝置之連結(位於 /sys/devices/css0/ 目錄中)。
/class/ 目錄
其中包括了許多子目錄,將性質相同的裝置,例如 ttys、SCSI 磁帶機、網路裝置、與其他雜項裝置等,放在一起。
/block/ 目錄
這目錄中的子目錄,分別為系統上各別的 block device(區塊裝置):大部分是磁碟類的裝置,例如實體 DASD、loopback 裝置、以及軟體 RAID block device 等等。拿較早的 Linux 系統與使用 sysfs的系統比較,後者明顯需要需要用 sysfs 名稱來指向裝置。在2.4 核心的作業系統裡,zFCP 驅動程式會傳到裝置位址中;但在 2.6 核心中,驅動程式會以 0.0.1600 傳送。 |
|