如果我使用以下命令启动用户模式 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模拟线程