为什么默认的 Linux 安装比默认的 OpenBSD 安装运行更多的进程?

gas*_*ter 5 linux process bsd openbsd

如果我ps -aux在没有 GUI 的 Ubuntu(或任何 GNU/Linux 发行版)上运行,我会看到大约 100 个进程正在运行。如果我ps -aux在没有 GUI 的 OpenBSD 上运行,那么我会得到大约 10 个进程。

对此的解释/原因是什么?*BSD 系统是“更清晰”(代码)还是只是将所有内容都放在内核中?

Gil*_*il' 10

进程数量与操作系统的“清晰度”之间没有相关性。你在比较苹果和醋栗。

在 Linux 系统上,ps ax会显示很多不消耗内存且名称在方括号中的进程,如下所示:

root         2  0.0  0.0      0     0 ?        S    Nov02   0:01 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Nov02   4:39 [ksoftirqd/0]
root         6  0.0  0.0      0     0 ?        S    Nov02   0:00 [migration/0]
root         7  0.0  0.0      0     0 ?        S    Nov02   0:01 [watchdog/0]
root         8  0.0  0.0      0     0 ?        S    Nov02   0:00 [migration/1]
Run Code Online (Sandbox Code Playgroud)

这些进程是内核的一部分。它们以内核权限运行,但它们像用户进程一样由调度程序管理(其中许多具有高优先级,因为它们处理硬件请求)。我写这篇文章的机器有超过 100 个这样的进程——你有多少取决于很多事情,包括你的内核版本、你的硬件和你运行的内核服务(例如一些文件系统有内核守护进程)。

这些过程可能占不同数字的很大一部分。据我所知,BSD 中没有一个单独报告此类任务,这使您的比较毫无意义。

此外,默认的 OpenBSD 安装包括很少的服务,而默认的 Ubuntu 安装运行普通用户期望找到的所有内容。如果您在两台机器上安装相同的软件,您会发现类似数量的非内核进程。


sr_*_*sr_ 7

运行进程的数量不一定是“清晰度”的好指标。

例如,FreeBSDdevd使用套接字来通信udev使用 D-Bus 的地方(因此需要另一个dbus-daemon进程)。进程数:1:2. 但是 D-Bus带来了更多的特性和可能性,许多其他系统守护进程也使用它(由相同的dbus-daemon进程处理)。 现在哪个更清楚?

另外,我想您可以通过牺牲功能(即不使用任何 *Kits)来让任何非 GUI GNU/Linux 系统“使用更少的进程”——以及 BSD 和这个系统之间的公平比较(为了什么值得)只有在功能集匹配时才能完成。