![为什么用户模式linux会产生4个进程?](https://linux22.com/image/65101/%E4%B8%BA%E4%BB%80%E4%B9%88%E7%94%A8%E6%88%B7%E6%A8%A1%E5%BC%8Flinux%E4%BC%9A%E4%BA%A7%E7%94%9F4%E4%B8%AA%E8%BF%9B%E7%A8%8B%EF%BC%9F.png)
如果我使用以下命令启动用户模式 Linux:
./kernel32-3.19.8 ubda=./Debian-Wheezy-x86-root_fs mem=128m
在具有一个 CPU 核心的 Debian GNU/Linux 8(jessie)上,为什么我在 top 中看到 4 个进程:
1608 root 20 0 132m 42m 42m S 0.7 33.4 0:12.01 kernel32-3.19.8
1615 root 20 0 132m 42m 42m S 0.0 33.4 0:00.00 kernel32-3.19.8
1616 root 20 0 132m 42m 42m S 0.0 33.4 0:00.02 kernel32-3.19.8
1617 root 20 0 132m 42m 42m S 0.0 33.4 0:00.00 kernel32-3.19.8
答案1
如果您运行 ps,您会注意到每个 UML 只有四个进程,而不是您在 tt 模式中看到的数十个进程。他们是
- UML内核线程,运行在单独的内核地址空间中,执行内核代码,并对UML进程进行系统调用拦截
- UML 用户空间线程,运行所有 UML 流程代码并在每个 UML 上下文切换上的主机地址空间之间切换
- ubd驱动异步IO线程
- 写SIGIO模拟线程