Czy rsyslog
jest to tylko warstwa abstrakcji na buforze pierścieniowym jądra? Czy też bufor pierścieniowy jądra jest jego własnym bytem, a rsyslog
interakcja jest jak w przypadku jakiejkolwiek innej „aplikacji”?
Czy rsyslog
jest to tylko warstwa abstrakcji na buforze pierścieniowym jądra? Czy też bufor pierścieniowy jądra jest jego własnym bytem, a rsyslog
interakcja jest jak w przypadku jakiejkolwiek innej „aplikacji”?
Odpowiedzi:
Chociaż różne fragmenty dokumentacji (w tym man dmesg
) nazywają ją „buforem pierścienia jądra”, lepiej byłoby nazywać ją buforem dziennika jądra, ponieważ „bufor pierścienia” jest terminem ogólnym i uważam, że jądro również używa pierścienia bufory dla różnych całkowicie niezwiązanych rzeczy. „Bufor printk” jest również odpowiedni, po funkcji miejsca jądra używanej do pisania do niego.
W każdym razie znajduje się w przestrzeni jądra, a interfejs odczytu jest zapewniony przez, /proc/kmsg
a interfejs odczytu i zapisu przez /dev/kmsg
. Więc jeśli jako root przejdziesz:
echo "Hello Kernel!" > /dev/ksmg
Zobaczysz to, jeśli to zrobisz cat /dev/ksmg
(jednak prawdopodobnie nie zobaczysz tego pojawiającego się w żadnych dziennikach - patrz komentarz Matthew Phipps poniżej z możliwego powodu). Jest to surowe wyjście i nie wygląda dokładnie tak, jak rzeczy, które widzisz z dmesg
plików dziennika lub w nich. Jest trochę dokumentacji na ten temat dostarczonej ze źródłem jądra. Czytanie z /proc/kmsg
(nie tego samego, co /dev/ksmg
) jest zalecane, jeśli (r) syslog jest uruchomiony.
Rsyslog jest jedną z wielu implementacji syslog powszechnie używanych w systemie Linux. Są to aplikacje przestrzeni użytkownika, że komunikaty z jądra źródło /proc/ksmg
i wiadomości od innych procesów przestrzeni użytkownika za pomocą gniazda /dev/log
.