Linux
為什麼程序資訊儲存在 /proc 中,因為程序資訊在核心中,在 RAM 中,而 /proc 在輔助儲存中?
/proc 是我們在 linux 的根目錄中找到的目錄。它包含程序的資訊。但實際上,程序表和所有這些東西都儲存在 RAM 中的核心中。請回答我的問題。我可能聽起來很傻,因為我是新來的。
從手冊頁:
proc 文件系統是一個偽文件系統,它為核心資料結構提供介面。
/proc 不是輔助儲存。/proc 就像 /sys 一樣,是一個提供核心視窗的文件系統。
/proc/1234/cmdline
,例如,不是磁碟文件。除了可能的 inode 之外,它不佔用任何空間。當您從該文件中讀取時,您實際上訪問的是核心記憶體。當您嘗試寫入其中的某些文件時,您可以看到 /proc 不是一個正常的文件系統。以 root 身份嘗試
echo blabla > /proc/$$/cmdline
. 你會看到echo: write error: Invalid argument。cmdline
只能讀取,即使是根目錄。同樣,/sys 包含只能寫入的文件。例如,嘗試cat /sys/block/sda/device/delete
(但不要寫入它 - 您會從邏輯上從系統中刪除 sda 設備。如果您不小心這樣做,最簡單的補救措施是重新啟動)。一個類似的情況是
/dev/kmem
。它不是文件系統,而是設備文件,它使您可以訪問核心記憶體。它不是指儲存設備。警告:寫入甚至讀取 /proc 和 /sys 中的某些文件可能會有風險,最好在測試機器上完成。