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

來源:互聯網
上載者:User

"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檔案夾中發現你使用的隨身碟,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的裝置模型。

莫愁前路無知己,天下誰人不識君。 唐·高適· 別董大

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.