Это rsyslog
просто слой абстракции поверх кольцевого буфера ядра? Или кольцевой буфер ядра - это его собственная сущность, а rsyslog
взаимодействие с ним похоже на взаимодействие любого другого «приложения»?
Это rsyslog
просто слой абстракции поверх кольцевого буфера ядра? Или кольцевой буфер ядра - это его собственная сущность, а rsyslog
взаимодействие с ним похоже на взаимодействие любого другого «приложения»?
Ответы:
Хотя различные части документации (в том числе man dmesg
) называют его «кольцевым буфером ядра», может быть лучше назвать его буфером журнала ядра, поскольку «кольцевой буфер» является общим термином, и я считаю, что ядро также использует кольцо буферы для различных совершенно не связанных вещей. «Буфер printk» также подходит после функции пространства ядра, используемой для записи в него.
В любом случае, он находится в пространстве ядра, и интерфейс чтения предоставляется через /proc/kmsg
интерфейс чтения и записи через /dev/kmsg
. Так что если от имени root вы идете:
echo "Hello Kernel!" > /dev/ksmg
Вы увидите это, если будете тогда cat /dev/ksmg
(однако, вероятно, вы не увидите этого в каких-либо журналах - см. Комментарий Мэтью Фипса ниже для возможной причины). Это необработанный вывод, который выглядит не совсем так, как вы видите из dmesg
ваших файлов журналов или из них . Есть немного документации об этом, предоставленной с исходным кодом ядра. Чтение из /proc/kmsg
(не то же самое, что /dev/ksmg
) рекомендуется против, если (r) системный журнал работает.
Rsyslog - это одна из многих реализаций syslog, обычно используемых в linux. Это пользовательские приложения, которые получают сообщения ядра /proc/ksmg
и сообщения от других пользовательских процессов через сокет /dev/log
.