最小的 Linux 实现是什么?

最小的 Linux 实现是什么?

Linux 操作系统要发挥作用,需要哪些最低限度的组件,并且随着我学习 Linux 以及我的理解和需求的增长,我可以将其用作扩展和改进的基础?

答案1

如果您的意思是像了解源代码一样学习 Linux,您可能想尝试从零开始的Linux

答案2

单个可执行 rootfs

绝对最小系统运行一个/init程序,正如我在单一应用程序 Linux |超级用户

最小的 Linux 直播

https://github.com/ivandavidov/minimal

对于更有趣的交互系统,这是一个(主要是教育性的)小脚本,它:

  • 下载内核和 busybox 的源代码
  • 编译它们
  • 使用它们生成可启动的 8Mb ISO

然后 ISO 会让您处于一个带有 busybox 的最小 shell 中。

使用 QEMU 您可以轻松启动进入系统。

我已经修改它以允许从内核源目录运行它:https://github.com/cirosantilli/runlinux

用法:

git clone https://github.com/ivandavidov/minimal
cd minimal/src
./build_minimal_linux_live.sh
# Wait.
# Install QEMU.
# minimal_linux_live.iso was generated
./qemu64.sh

然后您将进入 QEMU 窗口,其中包含新的最小系统。惊人的。

由于它很小,因此这是阅读源代码并了解正在发生的事情的好选择。

在 Ubuntu 16.04 上测试。

构建根

https://buildroot.org/

大量 Makefile 脚本,用于管理:

  • GCC交叉编译工具链
  • 内核编译
  • 引导加载程序编译
  • rootfs的生成
  • 源代码树中有大量的包下载/构建配方,包括 GTK 等复杂的东西。有一个依赖系统。

最小的例子:

git clone git://git.buildroot.net/buildroot
cd buildroot
git checkout 2016.05
make qemu_x86_defconfig
# Can't use -jN, use `BR2_JLEVEL=2` instead.
BR2_JLEVEL=2 make
# Wait.
# cat board/qemu/x86_64/readme.txt
qemu-system-x86_64 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -append root=/dev/vda -net nic,model=virtio -net user
# You are now in a shell with BusyBox utilities.

它甚至还提供了从头开始构建 X11 的方法:如何在我自己的Linux Buildroot系统上安装X11?

一些大企业使用的经过专业实战考验的东西。

约克托

https://en.wikipedia.org/wiki/Yocto_Project

与 Buildroot 的目标非常相似,不确定权衡。快速浏览后,感觉更加臃肿/功能丰富,具体取决于您想如何称呼它。他们的脚本可能更理智一些。

尼克斯操作系统

https://nixos.org/

另一种看起来很像 Buildroot,但这个确实有一个真正健全的包描述格式!它似乎还专注于支持同时安装多个版本的库。

当我上次在 2020 年检查时,交叉编译+在 QEMU 上运行的能力非常棒,这也是 Buildroot 的重点。但这仍然是一个非常有前途的项目。

阿尔卑斯Linux

https://github.com/gliderlabs/docker-alpine

带有包管理器的嵌入式分发,可从网站提供预编译的二进制文件。

也可以看看

答案3

如果您确实只想要 Linux 系统的最低限度,您可以尝试嵌入式系统(如路由器)的发行版。它们通常只携带绝对最少的软件,并且通常缺乏图形用户界面,迫使您熟悉命令行。一个缺点是,这些系统常常打破常规 Linux 发行版的惯例,例如,它们在不常见的地方安装软件或使用简化的 init 系统。

如果你想尝试一下,你可以尝试例如虚拟机中的openwrt

答案4

Archlinux 使用一个根据最小安装的文件组。

随着一个基础开发小组,如果您要进行任何系统开发。

相关内容