sla*_*ais 23 linux distribution-choice small-distribution
要使 Linux 操作系统发挥作用,并且在我学习 Linux 以及我的理解和需求增长时可以将其用作扩展和改进的基础,Linux 操作系统的最低限度是什么?
如果你想学习,Gentoo 是一个不错的选择——最小的 Gentoo 安装是一个 root shell 和一个包管理器,你可以从那里构建系统的其余部分。Gentoo 在包上也非常接近上游,所以如果你想自己下载和构建一些包,你不会遇到太多问题(事实上,你可以将它们添加到 /etc/portage/package.provided 文件安装后,并将它们用作依赖项!)
如果您正在寻找绝对最小的 Linux 系统,那么构建您自己的内核,去除您不打算使用的所有驱动程序和功能,然后添加一个包含类似的 Busybox 最小化构建的 initramfs。结果是一个完全可引导的 Linux 系统在单个可执行文件中(您可以将引导加载程序指向它),并且您甚至无需尝试即可将其装入 10 MB 以下。
单个可执行 rootfs
/init
正如我在Single Application Linux | 中解释的那样,绝对最小系统运行单个程序。超级用户
最小的 Linux Live
https://github.com/ivandavidov/minimal
对于更有趣的交互系统,这是一个(主要是教育性的)小脚本:
然后 ISO 将您留在一个带有 busybox 的最小外壳中。
使用 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
Run Code Online (Sandbox Code Playgroud)
您将被留在 QEMU 窗口中,并带有新的最小系统。惊人的。
由于它很小,这是阅读源代码并了解正在发生的事情的好选择。
在 Ubuntu 16.04 上测试。
构建根
管理以下内容的大量 Makefile 脚本:
最小的例子:
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.
Run Code Online (Sandbox Code Playgroud)
它甚至有从头开始构建 X11 的方法:如何在我自己的 Linux Buildroot 系统上安装 X11?
一些大企业使用的经过专业实战测试的东西。
阿尔卑斯Linux
https://github.com/gliderlabs/docker-alpine
带有包管理器的嵌入式发行版,提供来自网站的预编译二进制文件。
也可以看看
如果你真的只想要一个 Linux 系统的最低限度,你可以尝试像路由器这样的嵌入式系统的发行版。它们通常只携带绝对最少的软件,并且普遍缺乏图形用户界面迫使您熟悉命令行。一个缺点是,这些系统经常违反常规 Linux 发行版的约定,例如,它们在不常见的地方安装软件或使用简化的 init 系统。
如果你想试一试,你可以尝试在虚拟机中使用 openwrt 等。