BusyBox 是打包到单个二进制文件中的核心Unix 实用程序的集合。这使其成为资源受限环境(例如嵌入式设备)的理想选择。完整的发行版包括近400 个最常用的命令。
BusyBox 是开源的,并根据GPL 授权。它创建于1995 年,旨在将可引导系统安装到一张软盘上。将命令捆绑到二进制文件中可以减少开销,并允许在看似独立的应用程序之间共享代码。 BusyBox 包含什么?
BusyBox 提供了有用的日常命令,感觉就像它们是shell 的一部分。像ls 和cat 这样的用户态工具无处不在,但它们实际上存在于独立于shell 的单独实用程序包中。许多Linux 发行版通过GNU coreutils 提供这些命令,而其他发行版则使用BusyBox。
该项目的工作原理是将熟悉的命令名称从/usr/bin 符号链接到BusyBox 二进制文件。然后,可执行文件调用与作为第一个参数传递的名称相对应的函数。
使用BusyBox 命令mkdir 运行
/usr/bin/busybox mkdir 使用GNU Coreutils 命令mkdir run
/usr/bin/mkdir 安装BusyBox 后,您可以透明地使用mkdir、passwd、ps、tar 和wget 等命令。命令作为“小程序”实现并组合到强大的BusyBox 发行版中。全套重约1MB。小程序是可移除的,以进一步减小二进制大小。您可以通过不带参数运行busybox 来查看可用于安装的内容。
BusyBox 是为小型可启动系统创建的,因此它涵盖了在用户空间中启动和管理POSIX 系统所需的一切。经过扩展,允许init 作为进程ID 1 运行,并支持系统服务的最小实现。您可以使用BusyBox 作为常规init 或systemd 守护进程的轻量级替代方案。
BusyBox 有意简约,因此并非所有命令都实现其所有GNU 对应命令。在异常情况下,您可能会发现缺少标志或行为差异。这是BusyBox 精简特性的权衡之一。 BusyBox用在哪里?
BusyBox 可以在您需要监控磁盘使用情况的任何地方找到。它用于Alpine 等最小操作系统,但也用于嵌入式设备和移动外壳等特殊场景。
不运行传统操作系统发行版的Unix 派生设备更有可能使用BusyBox。我们在网络路由器、智能电视、现代汽车和物联网设备中看到了这一点。这些设置中的每一个都需要核心用户空间工具才能在资源严重有限的环境中运行。
发送单个一体化二进制文件会更有效。这减少了冗余,因为不需要在磁盘上存储单独的库,并且所有命令都可以共享通用代码。 BusyBox 与其他实现具有良好的兼容性,并根据GPL 获得许可,因此它通常是需要一组轻量级实用程序的环境的首选。
嵌入式设备供应商也将受益于BusyBox 的模块化特性。可能只需要几个核心实用程序即可提供IoT 产品的功能。分发修改后的BusyBox 二进制文件可以释放更多KB 的磁盘空间,从而节省大量资金。如何尝试BusyBox
您可以安装BusyBox,而无需替换当前的实用程序。使用包管理器添加busybox,并将您选择的命令添加到busybox 二进制文件中以运行您的小程序。
Busybox mkdir test 这可确保使用命令的BusyBox 版本而不是shell 默认路径中的版本。
尝试BusyBox 的另一种方法是使用官方Docker 镜像。
docker run -it --rmbusybox 如果安装了Docker,则会启动BusyBox shell 实现。您可以通过在图像名称后添加此命令来运行特定命令。
docker run -it --rmbusybox mkdir DemonusyBox 还有一个JavaScript 模拟器,可让您在Web 浏览器中尝试这些实用程序。
大多数Linux 发行版不允许您用BusyBox 完全替换coreutils。通常根据coreutils 实用程序的可用性包含特定于发行版的命令和包。发行版通常拒绝卸载此软件包,因为通过init 删除它可能会导致系统无法运行。
如果您想依赖BusyBox,最好从使用BusyBox 的发行版开始,然后将其他软件放在其之上。当您需要查看小程序在特定场景中如何响应时,按上述方式将BusyBox 添加到coreutils 效果很好。结论是
usyBox 是打包为单个二进制文件的用户级UNIX 实用程序的轻量级实现。它可以与Linux 内核结合起来创建一个没有其他依赖项的功能系统。
BusyBox 针对空间受限的环境进行了优化。这使其成为物联网设备等嵌入式产品的理想选择。 BusyBox 也可以安装在最小但多功能的Linux 发行版上,例如Alpine Linux。
无论您使用BusyBox 还是GNU Coreutils,熟悉的命令通常都可以在任一实现中“工作”。发生的问题通常是由于BusyBox 未实现的罕见标志或配置选项造成的。
https://www.linuxprobe.com/what-busybox-usage.html
标题:busybox是什么意思,busybox原理
链接:https://www.7kxz.com/news/gl/18723.html
版权:文章转载自网络,如有侵权,请联系删除!