/proc/net 檔案在 Linux/Unix 中是如何填入的?

/proc/net 檔案在 Linux/Unix 中是如何填入的?

我正在為 Linux 開發一個網路監視器,沒有資料包嗅探。我打算從/proc/net文件中讀取網路統計資料和相關數據。

我知道這/proc是進程檔案系統的掛載點,它是反映核心內部資料結構的虛擬檔案系統。

我想知道它是如何填充的以及是否可以直接讀取作業系統內部結構。

答案1

/proc由核心「即時」填充:目錄和檔案的內容是在應用程式存取它們時動態建構的。所以你不會找到任何填充它們的實用程式:如果你想知道事情是如何到達那裡的,你必須閱讀核心程式碼或者內核文件。在原始程式碼中,條目是由各個部分創建的網路程式碼。許多條目/proc/net被記錄為網路文件

這是讀取作業系統內部結構的最低層級。深入了解的唯一方法是編寫核心驅動程式。

檢索網路相關資訊的另一種方法是透過套接字呼叫ioctlgetsockopt有時這在 C 中更方便。

相關內容