最小的Linux实现是什么?[关闭]


21

要使Linux操作系统正常运行,最基本的组件是什么?我可以以此为基础来扩展和改进Linux,因为我了解Linux以及对我的理解和需求的增长。

Answers:



9

如果您想学习,Gentoo是一个不错的选择-最小的Gentoo安装是一个root shell和一个程序包管理器,您可以从那里构建系统的其余部分。Gentoo在软件包的上游也很接近,因此,如果您想自己下载和构建一些软件包,就不会遇到太多问题(实际上,您可以将它们添加到/etc/portage/package.provided文件中。安装后,将其用作依赖项!)

如果您正在寻找尽可能最小的Linux系统,请构建自己的内核,删除您不打算使用的所有驱动程序和功能,然后添加包含最小化Busybox构建的initramfs。结果是在一个可执行文件中可以完全启动Linux系统(您可以将其引导至),并且您甚至可以尝试将其装入10 MB以下。


您的最后一段-我认为那将是一个不错的起点。然后,我将使用它作为增长的基础,然后了解其中的存在及其原因。
slashmais

10MB?您可能可以在1MB以下的范围内完成
Falmarri 2011年

8

Archlinux使用基本文件组进行最小限度的安装。

base-devel组一起,如果您要进行任何系统开发。


3
在正确的方向上,仍然包括很多软件包,但是我可以使用它们提供的软件包并削减软件包,直到出现问题为止。
slashmais 2010年

与2010年相比,Arch安装已变得更加模块化-从内存上讲/无需重新进行全新安装,“ pacstrap”实用程序可让您选择要使用的组,包括“基本”组,甚至可能根本不包含任何组(尽管我认为基地包含系统的东西)。如果您想更进一步,但仍然拥有至少一个模糊的常用发行版,那么Slackware可能就是其中之一。
djvs

与以前相比,Arch安装的模块化程度要低得多,因为它们仅正式支持am64 arch,仅Systemd仅用于init等。但是,我也建议使用Slackware。
Lucas Ramage

8

如果您真的只想要Linux系统的最低限度,则可以尝试使用嵌入式系统(如路由器)的发行版。它们通常仅携带绝对最少的软件,并且通常缺少图形用户界面,这会迫使您熟悉命令行。一个缺点是,那些系统经常违反常规Linux发行版的约定,例如,它们在不常见的地方安装软件或使用简化的初始化系统。

如果您想尝试一下,可以尝试在虚拟机中使用openwrt


我可以使用OpenWrt作为参考;如果您能指出其他此类网站,我将非常高兴。已经使用VirtualBox了,他们有一个安装指南,可以在其中安装OpenWrt。
slashmais 2010年

也许嵌入式Debian:emdebian.org
fschmitt,2010年


8

单个可执行文件rootfs

绝对最小系统运行一个/init程序,正如我在“ 单一应用程序Linux | Linux”上所解释的那样。超级用户

最少的Linux Live

https://github.com/ivandavidov/minimal

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

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

然后,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

然后您将被留在QEMU窗口中,并带有新的最小系统。太棒了

由于它很小,因此是阅读源代码并了解正在发生什么的一个不错的选择。

在Ubuntu 16.04上测试。

Buildroot

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?

一些大型企业使用经过专业战斗测试的东西。

高山Linux

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

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

也可以看看


1
我最终走了LFS路线。记下了此内容并将很快进行探索
slashmais '16

6

没有人提到tomsrtbt怎么回事?(Linux在单个1.44“软盘上)


听起来不错-链接?
slashmais 2010年

不用担心-找到了
slashmais 2010年

4
这些天谁还有软盘驱动器?;)
p静态

1
我现在正在看一个。但是我拥有PC的那几年只使用过一次。
lamcro

3
@ p-static:我正在使用一个旧盒子作为打印服务器-它仍然具有8 1/4英寸软盘驱动器,而我刚刚用20年的软盘对其进行了测试-令人惊奇的是,这些软盘还是可以的!上面也包含未损坏的数据(学生时代的Turbo Pascal v3代码)。
slashmais

4

您可以尝试Slackware linux。菜单驱动的安装将允许您安装最少的系统。您可以轻松地省略手册页,X11,Tcl,Emacs,而这只是从顶层安装开始的。您可以深入进行安装,仅安装最少的软件包。

之后,我将针对您安装的计算机专门重新编译内核。

Slackware仍然默认使用Lilo引导管理器,因此与Grub引导的发行版相比,您对引导扇区,哪个分区被标记为可引导,initrd包含的内容等的了解要多得多。


3

对我来说,该死的小Linux赢得了“最小的Linux发行版”的称号!但是我听说它已经停产了。您也可以在此Wiki页面上看到类似发行版的列表(称为“ Mini Linux”)。

如果空间不是您的目标,我会建议GentooArch Linux,它们都安装了基本系统。您可以选择使用什么并根据需要安装软件包。


没有空间-学习Linux。我已经看过大多数这些内容以及LFS,但是感觉到LFS会让您做/添加东西没有足够的解释。
slashmais

3
如果您想学习,Archlinux真的很好。该拱维基具有ALOT明确的,有益的信息。
Stefan 2010年

在您开枪后,我似乎已经转移了目标,对不起:o
slashmais 2010年

2

您需要做的是从kernel.org下载最新的内核,执行a make menuconfig并仔细查看选项,然后将其用作研究和调查的起点。您会学到很多。


“时间是我的敌人。” -并非如此,但我一定会调查您的建议。
slashmais 2011年

0

您可以看看Puppy Linux。它可能不是最小的,但它的声誉却很小。

但是,本来应该很小的Linux distrtos通常会保持很小。为了学习linux,我会在某个地方进行现场debian。我会交叉编译和安装debian内核源代码,bash源代码和grub源代码。然后交叉编译安装编辑器,apt和gcc。然后从debian live生成软件包列表。安装每个软件包的源代码,进行编译和安装。然后添加X,然后选择您所选择的Wm,然后您便有了所需的基础。

PS:apt-get源可为您提供debian软件包的源。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.