我正在尝试在Linux上进行一些实验,以按安装大小寻找最小的发行版。(RAM,CPU并不重要)
我正在尝试在Linux上进行一些实验,以按安装大小寻找最小的发行版。(RAM,CPU并不重要)
Answers:
更新:ttylinux目前尚未维护!如果您仍然有兴趣,请从此处或此处开始。
根据您的平台,ttylinux可能适合您:
这个最小的ttylinux系统具有8 MB的文件系统,可在28 MB RAM内的i486计算机上运行,但提供了完整的命令行环境并可以访问Internet。
从2001年开始,最新版本从2015-03-05开始,因此仍保持不变。
如果您愿意进行编译并减少功能,则可以尝试使用buildroot。我创建了一个非常基本的Linux安装(基本上只是内核,最少的Busybox实用程序和一个额外的应用程序),它们适合6MB ISO映像。
此处的关键是将内核和Busybox配置(“ make linux-nconfig”和“ make busybox-menuconfig”)减少到所需的最低限度,然后在初始内核ramdisk上启用XZ压缩。减少所有不必要的操作后,我可以将整个ISO映像减小到大约9MB,而在启用XZ压缩后进一步减小到6MB。
对于内核,除非我特别需要,否则我只是选中了配置菜单中的每个选项并将其禁用。您可以禁用所有没有相应网络适配器的网络驱动程序,禁用其他您不希望使用的不太常见的硬件(多端口串行卡,操纵杆,多功能设备...)等等。上。您还可以将许多子系统保留在基本实现上,而不是在更复杂的子系统上保留(例如,基本ACPI CPU空闲状态而不是Intel / AMD CPU空闲状态),这可能意味着您将在功率效率和对内核大小的完整硬件支持之间进行权衡。如果您不需要使用整个子系统,例如休眠/睡眠支持和声音系统,则可以禁用它们。
这样可以节省很多空间。例如,KVM(虚拟化)和btrfs支持模块(我决定将其作为可加载模块放置在内核之外,以防将来将来需要它们使用)自身占用1.1 MB。通过删除这些模块文件,您可以减少到大约4.9MB。可能是因为它们占用了集成到内核二进制文件中的空间较少,但是后来我看到其他较小的模块的大小为20-100 KB,因此您的里程可能会有所不同。
Busybox是一个二进制文件,其行为类似于不同的二进制文件,具体取决于从命令行调用它的方式,从而可以节省空间。默认情况下,它包含在Buildroot中。它可以表现为ls,df,dd,cat,nc,bash等。除非您需要一些特定的实用程序扩展,而这些扩展只能在这些实用程序的更全功能/传统(例如GNU,BSD)版本中找到,否则它似乎可以很好地替代几乎整个* nix用户领域。在禁用功能方面,Busybox与内核类似-禁用除所需二进制文件(AKA小程序)之外的所有内容,并且大小会减小。动态编译的Busybox二进制文件在Buildroot中需要512 KB,在Ubuntu 14.10上则需要2.1 MB。较大的Ubuntu版本比我的Buildroot版本支持更多的功能,
您可以尝试以下一些措施来进一步减小大小,但是经常备份工作目录,因为您可能会破坏正在处理的Buildroot安装,并且可能必须重建一些二进制文件。
使用UPX压缩器压缩所有可执行文件(包括内核)。由于UPX专为执行可执行文件压缩而设计,因此这使得生成的可执行文件要小得多。但是请确保您随后测试了所有可执行文件,并且它们可以正常工作。
使用其他libc。我正在使用uClibc,但听说musl和Dietlib较小,并且产生的可执行文件较小。这次,我在使用musl时遇到了一些构建问题,但可能会更好。
用asmutils替换一些或所有userland实用程序。这些实用程序以纯汇编语言(而不是C或其他语言)实现一些常用的* nix实用程序,从理论上讲,它们可以使代码更紧凑。它们中的一些可以很好地工作,但是某些只能以非常基本的方式使用(例如,“ mount”仅采用特定顺序的参数,并且未实现FS特定的安装选项)。另一方面,它们非常小(大多数小于1KB,小于139个字节左右)。您可以选择要使用的命令,因此只能将这些替换项用于要节省空间并保留更多功能丰富的版本作为Busybox applet的命令。
Tomsrtbt是几兆字节;它适合放在软盘上。