我可以在机器上未安装操作系统的情况下运行 Busybox 吗?

我可以在机器上未安装操作系统的情况下运行 Busybox 吗?

据我所知,Busybox 是一个包含一组 unix 命令/实用程序的可执行文件。

我的问题是我们是否需要一个运行它的底层操作系统,或者它可以直接在没有内核的机器上运行。如果它可以在没有显式操作系统的情况下运行,那么谁将处理 CPU 调度、用户和角色管理等内容。如果它需要底层操作系统,那么它如何与平台无关呢?

请帮助我理解我在这里缺少什么?

编辑:

所以混乱的根源是,我读到它安装在小型嵌入式设备上。我的结论是,这些设备应该安装一些轻量级操作系统,我们可以在其上使用 busybox 添加基本的 unix 功能。

另外,上面的与平台无关,我的意思是与底层操作系统无关。例如,我可以在 Windows 上运行 BusyBox 吗?如果可以的话,这怎么可能?

答案1

这取决于操作系统的定义:

它需要内核,但不需要操作系统的其余部分。内核 (Linux) 是操作系统的较小部分(Gnu/Linux,在大多数使用 Linux 的类 Unix 系统中)。您可以使用 busybox/Linux:这只是 busybox 和 Linux(没有 Gnu,没有任何东西)。

答案2

如果它可以在没有显式操作系统的情况下运行,那么谁将处理 CPU 调度、用户和角色管理等事情。

这应该已经回答了你的第一个问题:这些是内核所做的事情,如果没有内核,依赖这些功能的程序就无法运行,包括 busybox。

对于与平台无关的内核,说起来容易做起来难。我假设你所说的平台指的是处理器架构,这意味着你想要一个可执行文件在没有任何虚拟机的情况下在任何处理器上运行,这是不可能的。

最接近您想要的可能是一些简约的 Linux 发行版,例如 core linux(只有 11 MB)。

如果您不希望启动后进行任何用户交互,您甚至可以从操作系统中删除更多内容,但我认为您至少需要一个终端,以便可以与系统交互。


所以混乱的根源是,我读到它安装在小型嵌入式设备上。我的结论是,这些设备应该安装一些轻量级操作系统,我们可以在其上使用 busybox 添加基本的 unix 功能。

这个问题有几个方面:

  • 什么是嵌入式设备?如今,您可以轻松地在树莓派上运行完整的 Linux 发行版,从技术上讲,树莓派仍然是一个“小型嵌入式设备”,并且您显然可以在其上运行 busybox 以使其更加轻量级。我怀疑这就是那句话所指的。

  • 您可能可以修改 busybox 以在没有内核的情况下运行;一项任务的难度取决于它对内核调用的依赖程度以及您是否希望其所有功能都起作用还是仅其中一些功能起作用。

  • 它到底有多大意义呢? Busybox 实现了 POSIX 标准中描述的多个程序,这些程序旨在与类 UNIX 内核结合使用。例如,chroot当您甚至没有文件系统,更不用说根目录时,有什么意义呢?

另外,上面的与平台无关,我的意思是与底层操作系统无关。例如,我可以在 Windows 上运行 BusyBox 吗?如果可以的话,这怎么可能?

是的,但不是; Windows 有不同的 API 供程序与内核交互。它还对可执行文件使用不同的二进制格式。如果没有某种兼容层,就无法在 Windows 上运行 busybox。

通常您会使用 mingw 之类的东西,它本质上是通过将 Linux API 重定向到底层相应的 Windows API 的方式来实现的。这允许您编译和运行简单的 Linux 程序,而无需对源代码进行任何重大修改。

从Windows 10开始,微软自己也提供了一个这样的兼容层,Linux 的 Windows 子系统,据我所知。现在运行整个虚拟化 Linux 内核在窗口内“本机”运行 Linux 应用程序。

相关内容