2,474 瀏覽數

Linux – sysfs

幾天前公司同事遇到一個怪問題就是使用 ethtool 看網卡的資訊時卻讀不出來相關的資訊.不過很奇怪的事直接看 /sys/class/net/eth0 目錄下網卡的相關資訊還是存在的,不過 /sys/ 目錄有點大這邊做一下簡介.

首先先來看看 /proc 和 /sys 的異同

  • /proc
    這個目錄下的資訊都是和核心相關的資料.如 CPU 以及其他硬體的相關設定值.
  • /sys
    從 2.6 核心開始硬體的系統資訊以更階層式目錄的架構來存放,檔案內容類似於 /proc .

目前新版的 Linux 作業系統都是採用 kernel 2.6 的架構,所以如果想要查詢系統狀態都可以在 /sys 目錄下找到,我們來看一下 /sys 目錄的架構吧!!

  • /sys/block
    所有 block 的裝置都顯示在此,不過他只是個連結真正會對應到 /devices/ 等相對應的裝置下.
  • /sys/bus
    以 bus 來區分系統裝置,如 PCI Express 就會儲存在 /sys/bus/pci_express ,但曲點是裝置皆以數字來排列順序. 我們可以在 /sys/bus/pci_express/devices/0000:00:01.0:pci00 … 之類的資料. 比較不好查詢,需要搭配 #lspci 使用.
  • /sys/class
    子目錄下以功能區分,如網卡裝置就存放在/sys/class/net
  • /sys/dev
    雖然區分成 block 和 char 裝置,但實際上也只是個連結,最終是連結至 /sys/devices 下.
  • /sys/devices
    系統上所有的裝置都可以在此找到.
  • /sys/firmware
    ??
  • /sys/fs
    Linux 的檔案系統所使用到的裝置
  • /sys/hypervisor
    與虛擬化 XEN 相關的裝置.
  • /sys/kernel
    kexec 與 kdump 相關的目錄.
  • /sys/module
    目前有使用到的 modules.
  • /sys/power
    和電源管理相關的. .

很多基本上我也還沒搞清楚,不過要找系統資料時通常最常使用的是 /sys/class 和 /sys/devices/system 這兩個目錄

4 個網友的想法 “Linux – sysfs

  1. 自動參照通知: FHS – Filesystem Hierarchy Standard | Benjr.tw

發表迴響