Ⅰ 在linux 中, /sys 目錄是將內核的一些信息映射,可供應用程序所用,那麼/proc的作用與之有何區別呢
proc文件系統是一個偽文件系統,它只存在內存當中,而不佔用外存空間。它以文件系統的方式為訪問系統內核數據的操作提供介面。用戶和應用程序可以通過proc得到系統的信息,並可以改變內核的某些參數。由於系統的信息,如進程,是動態改變的,所以用戶或應用程序讀取proc文件時,proc文件系統是動態從系統內核讀出所需信息並提交的。
sysfs 與 proc 相比有很多優點,最重要的莫過於設計上的清晰。一個 proc 虛擬文件可能有內部格式,如 /proc/scsi/scsi ,它是可讀可寫的,(其文件許可權被錯誤地標記為了 0444 !,這是內核的一個BUG),並且讀寫格式不一樣,代表不同的操作,應用程序中讀到了這個文件的內容一般還需要進行字元串解析,而在寫入時需要先用字元串格式化按指定的格式寫入字元串進行操作;相比而言, sysfs 的設計原則是一個屬性文件只做一件事情, sysfs 屬性文件一般只有一個值,直接讀取或寫入。整個 /proc/scsi 目錄在2.6內核中已被標記為過時(LEGACY),它的功能已經被相應的 /sys 屬性文件所完全取代。新設計的內核機制應該盡量使用 sysfs 機制,而將 proc 保留給純凈的「進程文件系統」。