天天看點

linux 核心dmesg,核心消息,dmesg

如發現譯文有瑕疵,請點選左邊工具欄『紙飛機』按鈕改進。

那麼,如果你到達了這裡,現在是談談核心的時候了。我們将使用維基百科的作業系統核心定義,開始這個讨論:

在計算機中,核心(來自德語 Kern)是大多數計算機作業系統的主要組成部分;它是應用程式和硬體級别上進行的實際資料處理之間的橋梁。核心的職責包括管理系統的資源(硬體和軟體元件之間的通信)。通常,作為作業系統的基本元件,核心可以為資源(特别是處理器和 I/O 裝置)提供最底層的抽象,應用軟體必須控制它來執行其功能。它通常通過程序間通信機制和系統調用,使這些設施可用于應用程式程序。

這是維基百科告訴我們的,Linux 核心的具體内容:

Linux 核心是 Linux 系列類 Unix 作業系統使用的作業系統核心。它是自由和開源軟體最突出的例子之一。它支援真正的搶占式多任務(在使用者模式和核心模式下),虛拟記憶體,共享庫,按需加載,共享的寫時複制(COW)可執行檔案,記憶體管理,網際網路協定組和線程。

現在是通路相應的維基百科文章的好時機,并花費一些時間瘋狂點選所有可怕的術語,它們描述 Linux 核心的技術特性。這樣做之後,讓我們談談更多的單調的主題,這是核心告訴我們的一種方式。例如,如果 USB 記憶棒連接配接到計算機,或者網絡連結斷開或挂載了檔案系統,則會發生這種情況。為了能夠告訴你所有這些東西,核心使用一種稱為顯示消息 或驅動消息的機制,其名稱縮寫為dmesg。

該機制由固定大小的緩沖區表示,核心向它寫入消息。在 Debian Linux 上,系統日志守護程序啟動後,從緩沖區釋出的資訊也會被複制到/var/log/dmesg。這樣做是為了保留這些消息,否則将被新的消息覆寫。

dmesg也是工具的名稱,它允許你檢視目前在核心緩沖區中的那些消息,并更改此緩沖區大小。

讓我總結一下dmesg相關的檔案和程式:

dmesg - 列印或控制核心環緩沖區

/var/log/dmseg - Debian 發行版中的日志檔案,僅包含系統引導期間的dmesg消息副本,而不包含時間戳。

/var/log/kern.log - Debian 發行版中的日志檔案,包含所有dmesg消息的副本,包括時間戳請注意,rsyslog 日志守護程序啟動後,這個時間戳開始變化,這意味着rsyslog啟動前,所有引導時的消息将具有相同的時間戳。此檔案本身包含/var/log/dmseg。

/var/log/messages - Debian 發行版中的日志檔案,記錄所有非調試和非關鍵消息。它本身包含/var/log/dmesg。

/var/log/syslog - Debian 發行版中的日志檔案,記錄了所有資訊,但權限相關的資訊除外。它包含/var/log/messages和/var/log/kern.log中的所有消息。

這樣做

1: date

2: sudo umount /tmp ; sudo mount /tmp

3: sudo tail -f /var/log/dmesg /var/log/messages /var/log/syslog /var/log/kern.log

你會看到什麼

[email protected]:~$ date

Tue Jul 24 06:55:33 EDT 2012

[email protected]:~$ sudo umount /tmp ; sudo mount /tmp

[email protected]:~$ dmesg | tail

[ 7.166240] tun: Universal TUN/TAP device driver, 1.6

[ 7.166242] tun: (C) 1999-2004 Max Krasnyansky

[ 7.432019] ADDRCONF(NETDEV_UP): eth0: link is not ready

[ 7.435270] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX

[ 7.435927] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

[ 17.472049] tap0: no IPv6 routers present

[ 17.592044] eth0: no IPv6 routers present

[ 217.497357] kjournald starting. Commit interval 5 seconds

[ 217.497561] EXT3 FS on sda8, internal journal

[ 217.497564] EXT3-fs: mounted filesystem with ordered data mode.

[email protected]:~$ sudo tail /var/log/dmesg /var/log/messages /var/log/syslog /var/log/kern.log

==> /var/log/dmesg <==

[ 6.762569] EXT3 FS on sda5, internal journal

[ 6.762572] EXT3-fs: mounted filesystem with ordered data mode.

[ 6.767237] kjournald starting. Commit interval 5 seconds

[ 6.767407] EXT3 FS on sda6, internal journal

[ 6.767410] EXT3-fs: mounted filesystem with ordered data mode.

[ 7.166240] tun: Universal TUN/TAP device driver, 1.6

[ 7.166242] tun: (C) 1999-2004 Max Krasnyansky

[ 7.432019] ADDRCONF(NETDEV_UP): eth0: link is not ready

[ 7.435270] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX

[ 7.435927] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

==> /var/log/messages <==

Jul 24 06:52:07 vm1 kernel: [ 6.767407] EXT3 FS on sda6, internal journal

Jul 24 06:52:07 vm1 kernel: [ 6.767410] EXT3-fs: mounted filesystem with ordered data mode.

Jul 24 06:52:07 vm1 kernel: [ 7.166240] tun: Universal TUN/TAP device driver, 1.6

Jul 24 06:52:07 vm1 kernel: [ 7.166242] tun: (C) 1999-2004 Max Krasnyansky

Jul 24 06:52:07 vm1 kernel: [ 7.432019] ADDRCONF(NETDEV_UP): eth0: link is not ready

Jul 24 06:52:07 vm1 kernel: [ 7.435270] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX

Jul 24 06:52:07 vm1 kernel: [ 7.435927] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

Jul 24 06:55:36 vm1 kernel: [ 217.497357] kjournald starting. Commit interval 5 seconds

Jul 24 06:55:36 vm1 kernel: [ 217.497561] EXT3 FS on sda8, internal journal

Jul 24 06:55:36 vm1 kernel: [ 217.497564] EXT3-fs: mounted filesystem with ordered data mode.

==> /var/log/syslog <==

Jul 24 06:52:08 vm1 acpid: 1 rule loaded

Jul 24 06:52:08 vm1 acpid: waiting for events: event logging is off

Jul 24 06:52:08 vm1 /usr/sbin/cron[882]: (CRON) INFO (pidfile fd = 3)

Jul 24 06:52:08 vm1 /usr/sbin/cron[883]: (CRON) STARTUP (fork ok)

Jul 24 06:52:08 vm1 /usr/sbin/cron[883]: (CRON) INFO (Running @reboot jobs)

Jul 24 06:52:16 vm1 kernel: [ 17.472049] tap0: no IPv6 routers present

Jul 24 06:52:16 vm1 kernel: [ 17.592044] eth0: no IPv6 routers present

Jul 24 06:55:36 vm1 kernel: [ 217.497357] kjournald starting. Commit interval 5 seconds

Jul 24 06:55:36 vm1 kernel: [ 217.497561] EXT3 FS on sda8, internal journal

Jul 24 06:55:36 vm1 kernel: [ 217.497564] EXT3-fs: mounted filesystem with ordered data mode.

==> /var/log/kern.log <==

Jul 24 06:52:07 vm1 kernel: [ 7.166240] tun: Universal TUN/TAP device driver, 1.6

Jul 24 06:52:07 vm1 kernel: [ 7.166242] tun: (C) 1999-2004 Max Krasnyansky

Jul 24 06:52:07 vm1 kernel: [ 7.432019] ADDRCONF(NETDEV_UP): eth0: link is not ready

Jul 24 06:52:07 vm1 kernel: [ 7.435270] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX

Jul 24 06:52:07 vm1 kernel: [ 7.435927] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

Jul 24 06:52:16 vm1 kernel: [ 17.472049] tap0: no IPv6 routers present

Jul 24 06:52:16 vm1 kernel: [ 17.592044] eth0: no IPv6 routers present

Jul 24 06:55:36 vm1 kernel: [ 217.497357] kjournald starting. Commit interval 5 seconds

Jul 24 06:55:36 vm1 kernel: [ 217.497561] EXT3 FS on sda8, internal journal

Jul 24 06:55:36 vm1 kernel: [ 217.497564] EXT3-fs: mounted filesystem with ordered data mode.

解釋

列印出目前日期和時間。

從核心消息緩沖區列印最後 10 條消息。

從/var/log/dmesg, /var/log/messages, /var/log/syslog和/var/log/kern.log列印最後 10 條消息。

附加題

這就完了,沒有附加題,哇哦!