我开始分析 dmesg 日志的问题。自从我第一次开始学习内部结构。即。dmesg 命令的数据源是什么,它从哪个系统路径/日志路径处理消息。在那次分析中,我开始了解新术语“环形缓冲区”。当我专门用谷歌搜索作为环形缓冲区时,我可以看到 DMA 环形缓冲区、NIC RX/TX 环形缓冲区。
- 他们是一样的吗?
- 由于 NIC 是特定的驱动程序,而 dmesg 是特定于内核的,那么 dmesg 中存储了哪些类别的消息?
- 或者以其他方式对于“什么样的问题”我只需要调试 dmesg。它只是进程相关还是内存相关?
- 内核是否首先将消息存储在 /var/log/dmesg 中,然后在处理过程中使用环形缓冲区加载内存只是为了提高速度?或者当内核在环形缓冲区生成消息并随后永久存储在 /var/log/dmesg 时?
- 那么 /proc/kmsg 是什么?一些文章说这条路径是来源?
- 环形缓冲区是可用于任何内核级“空间”要求的通用数据结构吗?
- 环形缓冲区的属性是在溢出时丢失数据,通过替换新数据?但通常日志数据不会丢失,但会保留以供将来调试,对吗?那么为什么首选这种数据结构呢?为什么不简单地记录路径,例如 /var/log/?
第三个问题是我要学习的主要问题。如果您不能全部回答,至少需要回答那个问题。
提前致谢