歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

Linux那些事兒之我是Sysfs(1)sysfs初探

"sysfs is a ram-based filesystem initially based on ramfs. It provides a means
to export kernel data structures, their attributes, and the linkages between them to
userspace.” --- documentation/filesystems/sysfs.txt
可以先把documentation/filesystems/sysfs.txt讀一遍。文檔這種東西,真正讀起來就嫌少了。Sysfs文件系統是一個類似於proc文件系統的特殊文件系統,用於將系統中的設備組織成層次結構,並向用戶模式程序提供詳細的內核數據結構信息。
去/sys看一看,
localhost:/sys#ls /sys/
block/ bus/ class/ devices/ firmware/ kernel/ module/ power/
Block目錄:包含所有的塊設備
Devices目錄:包含系統所有的設備,並根據設備掛接的總線類型組織成層次結構
Bus目錄:包含系統中所有的總線類型
Drivers目錄:包括內核中所有已注冊的設備驅動程序
Class目錄:系統中的設備類型(如網卡設備,聲卡設備等)
sys下面的目錄和文件反映了整台機器的系統狀況。比如bus,
localhost:/sys/bus#ls
i2c/ ide/ pci/ pci express/ platform/ pnp/ scsi/ serio/ usb/
裡面就包含了系統用到的一系列總線,比如pci, ide, scsi, usb等等。比如你可以在usb文件夾中發現你使用的U盤,USB鼠標的信息。
我們要討論一個文件系統,首先要知道這個文件系統的信息來源在哪裡。所謂信息來源是指文件組織存放的地點。比如,我們掛載一個分區,
mount -t vfat /dev/hda2 /mnt/C
我們就知道掛載在/mnt/C下的是一個vfat類型的文件系統,它的信息來源是在第一塊硬盤的第2個分區。
但是,你可能根本沒有去關心過sysfs的掛載過程,她是這樣被掛載的。
mount -t sysfs sysfs /sys
ms看不出她的信息來源在哪。sysfs是一個特殊文件系統,並沒有一個實際存放文件的介質。斷電後就玩完了。簡而言之,sysfs的信息來源是kobject層次結構,讀一個sysfs文件,就是動態的從kobject結構提取信息,生成文件。
所以,首先,我要先講一講sysfs文件系統的信息來源 -- kobject層次結構。kobject層次結構就是linux的設備模型。
莫愁前路無知己,天下誰人不識君。 唐·高適· 別董大
Copyright © Linux教程網 All Rights Reserved