Tecnicamente falando, o dmesg imprime o buffer de anel do kernel para a saída padrão.
Eu não sei por que eles chamam de buffer de anel, mas é basicamente um buffer de log. Todas as mensagens de inicialização do kernel são gravadas lá. Se você estiver executando o syslog, todas ou a maioria dessas mensagens provavelmente também serão gravadas nela. No entanto, o comando dmesg é separado do syslog. Faz parte dos utilitários linux, e você pode usá-lo mesmo se não tiver syslog.
O dmesg também pode ser usado para limpar o buffer de anel e também para alterar o nível no qual os erros aparecem no console. Às vezes, dependendo da gravidade de uma mensagem, ela será enviada para todos os consoles, além do buffer de anel. Um bom exemplo disso é uma mensagem de desligamento. dmesg -n levelnumber
permite que você altere o nível de gravidade que uma mensagem deve ter para ser enviada aos consoles além do buffer.