我想构建一个非常小的 Linux 发行版,它将使用 busybox,也可能是 uClibc。一开始,只需一个 ramfs 就可以了。另外,我不介意没有本机工具链。我经历了“从头开始构建 Linux”;但显然,它适用于完整的发行版。你能就此给我一些建议吗?
答案1
我无法告诉你最小的可能是多少,但是微型核心 Linux是我听说过的最小的。他们设法将图形系统压缩到 12MB,将基于文本的系统压缩到 8MB。
答案2
除了您想要的发行版的功能之外,对于发行版的规模实际上没有任何限制。
我建议看看linuxfromscratch.org如果您有兴趣创建一个新的发行版。
答案3
不确定“最小可能”的最低配置是什么,但你可以从初始化内存文件系统(另见内核文档) 仅包含几个文件。
这会将 ramdisk 映像放入实际vmlinux
内核,然后再压缩整个内核,以便在加载时自动检索和解压缩它。内核使用该内存映像作为根文件系统启动,并在其中查找名为 的可执行文件init
。任何二进制——包括busybox
。
实际上,init
在嵌入式设备启动过程中,使用静态链接的 busybox 作为 initramfs 内部的一个常见步骤 - 在加载内核之后进入 shell 提示符可以验证内核是否启动、内核/用户空间接口和控制台是否正常工作。
在这个阶段,还不需要任何实际的存储设备、功能性根文件系统等。如果您的设备在信息亭模式下使用(重启后不保留任何数据),那么这实际上就是您所需要的。
答案4
干得好,http://alpinelinux.org/ musl libc + busybox。
它是一个适合 8mb 以下的发行版(尽管可以稍微减少)
它基于 musl-libc 和 busybox。