“只添加 /dev、/etc 和 Linux 内核”是什么意思 - BusyBox

“只添加 /dev、/etc 和 Linux 内核”是什么意思 - BusyBox

我一直在阅读的文档忙碌盒目的是利用其小文件大小来制作可启动 CD。

文档指出

To create a working system, just add /dev, /etc, and a Linux kernel.

我使用过一些 Linux 发行版,例如 Ubuntu 和 CentOS,当运行 cmd 时,fdisk 通常会返回以 /dev 开头的附加设备列表,当ls在 /etc 上运行时,我们会显示一些文件。

我很困惑在启动之前应该如何/什么向 BusyBox 添加 /dev 和 /etc...而且我认为这些会在运行环境中添加。

当以这种方式谈论时, /dev 和 /etc 是否会从不同的角度被感知,或者我在使用预构建的发行版时是否创建了一个错误的视图而不了解很多底层机制?

答案1

该文档试图说明的一点是,这是一个相当完整的用户空间,但您(作为希望为嵌入式设备推出固件的人)仍然可以发挥作用。

Busybox 对它将运行的环境有一些假设,该语句记录在此处:

  1. 您将以某种方式处理早期启动过程。这包括将引导加载程序移交给内核。内核需要适合硬件并且通常足够“健全”。
  2. 如果没有一些额外的工作,Busybox 本身不足以启动可用设备。你不能简单地编译 busybox,将其转储到文件系统上,并在内核启动后立即移交控制权,而不做更多的工作某处第一的。您需要确保 /dev 存在于文件系统中,并且填充了设备索引节点以匹配您的硬件。执行此操作的确切机制取决于内核版本和您所针对的硬件/平台,它在 Linux 内核版本的演变过程中发生了很大变化,并且有不止一种方法可以执行此操作。
  3. 最后,busybox 提供的许多部件(以及您可能需要从其他地方获得的部件)都需要某种配置。如何管理这取决于您,但最重要的是,您从 busybox 运行的许多命令都会从 /etc 读取配置文件,如果您没有提供填充和维护这些配置文件的机制,这些命令将无法工作。

可能在您的嵌入式设备上,您将只有一个文件系统,使用诸如 squashfs 之类的东西,并且其中的所有内容都将是只读的。但关键是,当您移交控制权时,您的映像/安装程序需要完成所有工作才能将其放置在正确的位置。

相关内容