进一步阅读

进一步阅读

我目前正在学习 LFCS,并且已经学习到有关用户创建进程和内核创建进程之间差异的部分。在内核创建的进程中,它们定义了两种进程子类型。

  1. 内部内核进程
  2. 外部用户进程

他们给出了内部内核进程的示例,例如将缓冲区刷新到磁盘以及确保负载均匀分布在 CPU 等维护工作。但只为外部用户进程指定:

这些进程像普通应用程序一样在用户空间中运行,但由内核启动。这些数量很少,而且通常都是短暂的。

我的第一个想法是,这些东西会在像 systemd 这样的 init 系统下运行,但我的直觉告诉我,情况可能并非如此,因为它提到它们通常是短暂的。

外部用户流程的示例是什么?

答案1

  1. 该程序名为/proc/sys/kernel/hotplug.
  2. /sbin/v86d内核模块使用的帮助程序uvesafb

进一步阅读

答案2

“外部用户进程”的一个例子是init。内核init在没有来自用户空间的任何请求的情况下启动进程(即,不是响应fork()或相关的系统调用)。你的想法systemd是合理的,因为systemd扮演了 的角色init

内核还可以在某些事件上触发用户空间进程的执行。例如,历史上,hotplug当添加或删除设备时,内核会执行用户空间可执行文件。这样的过程是短暂的。 (虽然这是一个可能的例子,但我认为这种方法如今已不再用于该用例。)

相关内容