当前系统上使用 Busybox 的原因

当前系统上使用 Busybox 的原因

busybox 最初是为软盘大小的可启动系统而开发的,在设计时就考虑到了较小的内存占用。如今,它不仅用于路由器、洗衣机和微波炉等小型系统,还用于高性能 NAS、智能手机和桌面 Linux 发行版的救援系统。 (对于后者,也许是为了确保它适合某些引导加载程序映像?)

但作为单个二进制文件,它也存在单点故障。

为什么不在此类机器上使用标准用户空间而不是 busybox?

答案1

但作为单个二进制文件,它也存在单点故障。

即使是标准用户土地也有大量这样的东西。 libc 损坏?缺少依赖项?太糟糕了。

为什么不在此类机器上使用标准用户空间而不是 busybox?

busybox(及其替代品,如 toybox)的优点在于它小巧、简单并且足以完成任务。它有效,那么为什么要使用其他东西呢?

它也可以在任何台式电脑上使用,作为 initramfs 的一部分,同样是为了简单起见。虽然您可以在那里复制一个真实的用户空间,但它只会使内核/initramfs 的大小超出比例。更大的 initramfs 意味着更长的加载时间和更慢的启动过程。

对于固件供应商来说,跟踪单个项目也更容易,而不是像 Linux 发行版那样,尝试使各种组件适合并协同工作并跟踪每个组件的错误......

当然busybox也有其局限性,例如很难在busybox环境中编译Linux内核,因为某些功能根本缺失(ar例如缺少内核想要使用的某些选项)。但对于 initramfs 或智能手机来说,这些限制并不重要。

答案2

负责busyboxDebian 打包的 Chris Boot 解释了如何在 Debian 中使用它:

主要用在两个地方:

  • 它捆绑在 Debian 安装程序 ramdisk 中,并用作 DI 的 shell、引导程序,其小程序提供安装程序环境中的大部分功能。

  • 默认的 initramfs 汇编系统 initramfs-tools 将 busybox 整合到 initramfs 中,并一直使用到根文件系统(如果是单独的,则为 /usr)挂载并可进行 pivot_rooted 为止。我们还在 initramfs 中使用了 klibc 的部分,但我还不完全清楚 initramfs 中的哪些工具是 klibc 工具、busybox 小程序还是从正在运行的系统复制的可执行文件。

答案3

因为大多数情况下系统内存是有限的(为了削减生产成本)。 busybox 占用空间较小,但具有原始用户区的大部分功能。

相关内容