
rsyslog
只是內核環形緩衝區之上的抽象層嗎?或者內核環形緩衝區是它自己的實體並且rsyslog
其交互就像任何其他“應用程式”一樣?
答案1
儘管各種文件(包括 參考資料man dmesg
)將其稱為“內核環形緩衝區”,但最好將其稱為內核日誌緩衝區,因為“環形緩衝區”是一個通用術語,並且我相信內核也使用環形緩衝區各種完全不相關的事物的緩衝區。 「printk 緩衝區」也是適當的,在內核空間函數用來寫入它之後。
無論如何,它駐留在內核空間中,透過 提供讀取接口,/proc/kmsg
並透過 提供讀寫介面/dev/kmsg
。所以如果你以root身份去:
echo "Hello Kernel!" > /dev/ksmg
如果您隨後就會看到它cat /dev/ksmg
(但是,您可能不會在任何日誌中看到這一點 - 請參閱下面 Matthew Phipps 的評論以了解可能的原因)。這是原始輸出,與您dmesg
在日誌檔案中看到的內容並不完全相同。有一點一些文檔關於這一點隨內核原始碼一起提供。如果 (r)syslog 正在運行,建議從/proc/kmsg
(與 不同)讀取。/dev/ksmg
Rsyslog 是眾多日誌之一系統日誌Linux 上常用的實作。這些是用戶態應用程序,/proc/ksmg
透過套接字從核心訊息和其他用戶態進程獲取訊息/dev/log
。