Networking
替代 /proc/interrupts
我想獲得有關分配給我的網卡的中斷的資訊。除了 /proc/interrupts 還有其他方法嗎?
核心資訊有兩個通用介面(除了系統呼叫),它們被實現為文件系統。這兩個文件系統是 /proc 和 /sys。sys 比 proc 和更新的更有條理,但不是使用者友好的。所以對程序員來說稍微好一點,避免解析。
如果您想要來自 sys 文件系統的資訊(lspci 解析的資訊(請參閱由 輸出的一些文件
strace -o somefile lspci
)):$ lspci | grep -i network 00:19.0 Ethernet controller: Intel Corporation 82566DC Gigabit Network Connection (rev 02) $ cat /sys/devices/pci0000:00/0000:00:19.0/irq 2299
注意兩個命令之間的 00:19 關係。irq 文件返回的數字將與相關設備的 /proc/interrupts 的第一列相同。
如果您想了解有關 sys 文件系統的更多資訊,請查看核心原始碼中包含的文件,例如
/usr/src/linux-source-2.6.27/Documentation/filesystems
更新:
有沒有辦法將輸出與介面名稱連接起來?
當然,如果您使用 sys,您會發現有很多符號連結指向 sys.xml 中的其他位置。例如,在 /sys/class/net 中:
[kbrandt@kb: /sys/class/net] ls -l lrwxrwxrwx 1 root root 0 2009-11-02 11:01 eth0 -> ../../devices/pci0000:00/0000:00:19.0/net/eth0 lrwxrwxrwx 1 root root 0 2009-11-02 11:01 lo -> ../../devices/virtual/net/lo lrwxrwxrwx 1 root root 0 2009-11-02 11:01 pan0 -> ../../devices/virtual/net/pan0 lrwxrwxrwx 1 root root 0 2009-11-02 11:01 vmnet1 -> ../../devices/virtual/net/vmnet1 lrwxrwxrwx 1 root root 0 2009-11-02 11:01 vmnet8 -> ../../devices/virtual/net/vmnet8
因此,要獲取 eth0 的 irq,您可以:
cat /sys/class/net/eth0/../../irq