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

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

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

对此有何解释/原因? *BSD 系统是否“更清晰”(代码)或者他们只是把所有东西都放在内核中吗?

答案1

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

在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]

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

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

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

答案2

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

以 FreeBSD 为例,devd它使用套接字进行通信,而udev使用 D-Bus(因此需要另一个dbus-daemon进程)。进程数:1:2. D总线带来了更多的功能和可能性,许多其他系统守护进程也使用它(由同一dbus-daemon进程处理)。 现在哪一个更清楚?

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

答案3

也许这意味着您是 Linux 的重度用户?当您在 BSD 机器上加载了更多服务时,随着时间的推移,它会很高兴地充满像 Linux 那样的粗糙守护进程。

这或许也反映了现代 Linux 发行版中垃圾的数量。 FreeBSD 基础系统确实非常轻量。将其与干净的 Slackware 安装之类的东西进行比较可能是更好的比较。我怀疑它是否带有五十个开箱即用的进程。

相关内容