Czy rsyslogjest to tylko warstwa abstrakcji na buforze pierścieniowym jądra? Czy też bufor pierścieniowy jądra jest jego własnym bytem, a rsysloginterakcja jest jak w przypadku jakiejkolwiek innej „aplikacji”?
Czy rsyslogjest to tylko warstwa abstrakcji na buforze pierścieniowym jądra? Czy też bufor pierścieniowy jądra jest jego własnym bytem, a rsysloginterakcja 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/kmsga 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 dmesgplikó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/ksmgi wiadomości od innych procesów przestrzeni użytkownika za pomocą gniazda /dev/log.