Proc
lspci 從哪裡收集資訊?
在kernel.org 的文件中,
proc
我發現“[該文件的最新版本 可線上獲取”。我在那裡說:“……lspci
是”的同義詞cat /proc/pci
。在 Crunchbang 10 系統(基於 Debian)上,情況並非如此。沒有這樣的目錄。我確實得到了基本的想法,據我所知,內容
proc
(主要)是在執行時創建的。(錯誤的?)。這讓我很好奇:問題:從哪裡
lspci
收集資訊?這在哪裡記錄?(我哪裡漏掉了什麼?)
我發現的另一個區別:在 kernel.org 的文件中,在“ Table 1-5: Kernel info in
/proc
”下
pci
PCI 匯流排的棄用資訊(新方式 ->/proc/bus/pci/
,由 `lspci 解耦)
lspci
是 pciutils 的一部分,它可以移植到各種類 unix 的作業系統和視窗,因此它可能會根據平台使用不同的方法。在您的案例中,您應該能夠通過
strace lspci
. 在訪問庫等的序言之後,我(使用 fedora linux)在 中的東西上得到了很多open()
+pread()
呼叫/sys/bus/pci/
,例如:open("/sys/bus/pci/devices/0000:00:1c.7/config", O_RDONLY) = 3 pread(3, "\206\200\36\36\7\0\20\0\304\0\4\6\20\0\201\0\0\0\0\0\0\0\0\0\0\7\7\0\360\0\0 \0"..., 64, 0) = 64 close(3)
那是二進制數據。之後它讀入
/usr/share/hwdata/pci.ids
,這是一個與 pciutils 包一起分發的靜態通用列表。這些是四位數的程式碼,大概對應於來自 的資訊/sys
。