เป็นrsyslog
เพียงชั้นนามธรรมที่ด้านบนของบัฟเฟอร์วงแหวนเคอร์เนล หรือเคอร์เนลบัฟเฟอร์นั้นเป็นเอ็นทิตี้ของมันเองและrsyslog
การโต้ตอบของมันก็เหมือนกับแอพพลิเคชั่นอื่น ๆ ?
เป็นrsyslog
เพียงชั้นนามธรรมที่ด้านบนของบัฟเฟอร์วงแหวนเคอร์เนล หรือเคอร์เนลบัฟเฟอร์นั้นเป็นเอ็นทิตี้ของมันเองและrsyslog
การโต้ตอบของมันก็เหมือนกับแอพพลิเคชั่นอื่น ๆ ?
คำตอบ:
แม้ว่าเอกสารหลาย ๆ ชิ้น (รวมถึงman dmesg
) เรียกมันว่า "บัฟเฟอร์วงแหวนเคอร์เนล" แต่มันอาจจะดีกว่าที่จะอ้างถึงมันเป็นบัฟเฟอร์ล็อกเคอร์เนลเนื่องจาก "บัฟเฟอร์บัฟเฟอร์" เป็นคำทั่วไปและฉันเชื่อว่าเคอร์เนลยังใช้วงแหวน บัฟเฟอร์สำหรับสิ่งต่าง ๆ ที่ไม่เกี่ยวข้องอย่างสมบูรณ์ "printk buffer" ก็เหมาะสมเช่นกันหลังจากฟังก์ชั่นพื้นที่เคอร์เนลที่ใช้ในการเขียน
แล้วก็อาศัยอยู่ในพื้นที่ว่างของเคอร์เนลและอินเตอร์เฟซการอ่านมีให้ผ่านและอินเตอร์เฟซอ่านเขียนผ่านทาง/proc/kmsg
/dev/kmsg
ดังนั้นถ้าเป็นรากคุณไป:
echo "Hello Kernel!" > /dev/ksmg
คุณจะเห็นมันถ้าคุณcat /dev/ksmg
(คุณอาจไม่เห็นสิ่งนี้ปรากฏขึ้นในบันทึกใด ๆ - ดูความคิดเห็นของ Matthew Phipps ด้านล่างด้วยเหตุผลที่เป็นไปได้) นี่เป็นเอาต์พุตแบบ raw และไม่เหมือนกับสิ่งที่คุณเห็นจากdmesg
หรือในไฟล์บันทึกของคุณ มีเอกสารเล็กน้อยเกี่ยวกับสิ่งนี้ที่จัดเตรียมไว้พร้อมกับเคอร์เนลซอร์ส แนะนำให้อ่านจาก/proc/kmsg
(ไม่ใช่แบบเดียวกัน/dev/ksmg
) หาก (s) syslog กำลังทำงานอยู่
Rsyslog เป็นหนึ่งในจำนวนของการใช้งานsyslog ที่ใช้กันทั่วไปใน linux เหล่านี้เป็นโปรแกรม userland ว่าข้อความมาเคอร์เนลจาก/proc/ksmg
และข้อความจากกระบวนการ userland อื่น ๆ /dev/log
ผ่านทางซ็อกเก็ต