如何了解各个内核进程的用途?

如何了解各个内核进程的用途?

(有关的:进程周围的括号是什么意思?

我想更好地真正了解我正在寻找的东西。我宁愿不需要为了快速理解而挖掘实际的内核源代码。

例如,我kacpid最初查找时收效甚微。最终我发现它是内核 ACPI 守护进程,并阅读了ACPI 的维基百科页面总体上澄清了该过程的全部内容。

我想要的是一系列简单的定义,这样查找kacpid就会给我类似的东西:

卡奇德:代表内核 ACPI 守护程序。 ACPI 是高级配置和电源接口,是一组与处理各种“状态”(包括睡眠、断电、休眠)相关的标准;以及与 CPU 节能相关的说明。

现在我正在尝试查找kblockd,所有 Google 结果显示人们都遇到内存不足的问题 - 不太好理解为什么这个过程存在!

我可以直接问“到底是怎么kblockd回事”,我对此很感兴趣,但是:

考虑到与 Linux 相关的大量在线和离线文档(手册页、信息页、POSIX 规范等),是否存在一个标准解决方案一般问题学习各种内核进程意思是,他们在做什么?那个标准溶液是什么?

答案1

没有关于 Linux 内核线程的单一文档存储库。 Linux 内核的一些基本文档位于Documentation目录,但没有关于内核线程的特定部分(在传递它们参与的功能的文档中提到了一些线程)。除此之外,(a 的借口)文档按可访问性递减的顺序包括LWN 文章、源代码和LKML 档案。 Linux 内核文档的一般理念是,如果您不能流利地阅读 C 代码,并且不准备花一些时间挖掘电子邮件讨论,那么您就不值得了解内核的功能。

通过名称查找有关线程的信息的最简单方法是在内核源代码中搜索名称。例如,kblockd创建于blk-core.c这是一个工作队列。一些 LKML 搜索可以引导您了解它的起源:kblockd.patch。它处理异步请求(这就是工作队列的作用),特别是对块设备(即磁盘等)的请求。

答案2

你有没有尝试过

x="kblockd"
man -k "$x"
locate "$x"
for i in $(locate "$x") ; do
    dpkg -S "$i"
done

这将生成与您的“”相关的软件包列表object。请阅读man dpkg以了解如何获取包中的文件列表。

相关内容