从软盘启动Linux系统曾经是“家常便饭”。当然,那都是在90后和00后。年龄较大的学生(bushi)可能对此很熟悉。但是现在,即使你还有一张可以工作的3.5英寸软盘,1.44MB的容量也远远不够装下一个现代的linux内核,更不用说所有的配套软件了。但是一个奇怪的人有一个诡计。波兰的游戏开发商仅用一张软盘就嵌入了现代Linux操作系统!磁盘上有数百KiB的剩余空间!并且使用了最新的“组件”,包括今年5.16发布的Linux内核5.13.0-rc2版本。一张装有现代Linux系统的软盘,小弟将这个系统命名为Floppinux,并在其官网带大家完成了从pulldown、编译源码到制作最终磁盘镜像的所有命令。之所以做这样的事情,是因为觉得自己用了很多年Linux,也用过很多Live-CD(不用安装到硬盘也能体验Linux操作系统的东西)。但他对背后的基本原理知之甚少,所以他决定看一看。我的第一个目标是运行NomadDiskmag程序。Diskmag是一个古老的东西。有人知道吗?它的全称是diskmagazine,也就是磁盘杂志。是80、90年代以软盘形式发行的电子杂志。1990年代后,它被在线出版物所取代。小哥已经用bash脚本修复了前端界面,只缺了每个文件的封面、目录和cat文本。为了运行他编写的脚本,他需要一个可以运行的Linux发行版,即可以在软盘上运行的系统。动手!因为在64位系统上编译32位代码有点棘手。为了方便起见,我使用配备32位CPU的旧笔记本电脑来完成这一切。您可以使用32位系统的VirtualBox。如果要使用64位,请添加命令“ARCH=x86”,例如:makeARCH=x86tinyconfig。以下是如何将现代Linux操作系统加载到1.44MB软盘上的概述:创建并转到要保存文件的目录配置和构建自定义内核使用最新的Linux内核(版本5.13.0-rc2):gitclone--depth=1https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git进行最小配置:maketinyconfig添加额外配置:makemenuconfig选择以下选项从菜单:保存设置并退出,等待编译完成,最后内核将构建在arch/x86/boot/bzImage中,将其移动到主目录。3、添加工具如果没有工具,内核只会启动,不能进行任何操作。小弟用的是BusyBox(最流行的轻量级工具之一),下载解压:wgethttps://busybox.net/downloads/busybox-1.33.1.tar.bz2进入目录,开始配置:makeallnoconfig然后选择你想要的工具:makemenuconfig每个菜单项显示每个工具占用多少KB,所以合理选择。兄弟的选择:保存配置退出。编译完成后会在_install目录下创建一个包含所有文件的文件系统,并将其移动到主目录下。4、添加目录结构有了内核和基础工具,还需要一些额外的目录结构:cd../filesystemmkdir-pv{dev,proc,etc/init.d,sys,tmp}sudomknoddev/consolec51sudomknoddev/nullc13接下来创建几个配置文件,启动后显示欢迎信息:cat>>welcomeEOF然后配置处理启动、退出和重启的Inittab文件&实际的init脚本,并使init脚本可执行,并将所有文件的所有者设置为root。(限于篇幅省略命令,详见文末链接[1])最后将此目录压缩成文件。以上所有内容都可以通过从您的主目录运行QEMU(一种在GNU/Linux平台上广泛使用的模拟处理器)来测试。5、下面就是把这一切放到一张软盘里。创建指向内核和文件系统的Syslinux引导文件(引导文件):cat>>syslinux.cfgLABELlinuxSAY[BOOTINGFLOPPINUXVERSION0.1.0]KERNELbzImageAPPENDinitrd=rootfs.cpio.gzEOFchmod+xsyslinux.cfg创建一个空的Floppy映像:ddif=/dev/zeroof=floppinux.imgbs=1kcount=1440mkdosfsfloppinux.imgsyslinux--installfloppinux.img安装它!并将syslinux、内核和文件系统复制到软盘映像:sudomount-oloopfloppinux.img/mntsudocpbzImage/mntsudocprootfs.cpio.gz/mntsudocpsyslinux.cfg/mntsudoumount/mnt完成!现在您有了分发映像floppinux.img,您可以将它刻录到软盘上并在真实硬件上启动它!开机不到一分钟小弟用了不到3分钟就烧录成功了,然后开始第一次开机:成功!只用了1分多钟。啊,从画面上看,小哥哥年纪也不小了,头发都秃得让人哭了。小弟(老兄)说,在这个裸机现代硬件上,唯一能阻止开机速度的就是软驱的实际速度。它们的最大原始速度为125KB/s。它实际上可能更慢。以下是软盘占用空间的汇总。你可以看到还剩下272KiB。网友热议:“1992年,我需要两张5.25”的软盘。大约1MB的空间,必须做出一些妥协,所以Floppinux肯定不是任何人所说的日常驱动程序。一旦系统启动,除了编写一些shell脚本之外没有什么可做的。即使你没有floppy,itworthit按照他的教程,QEMU中的引导映像,看看如何从头开始正式构建Linux系统。不仅是为了吹牛,而且了解这种最小安装的所有组件如何组合在一起的知识非常有用对于学习嵌入式Linux设备也很有用。在HackerNews论坛上,很多人都为小哥竖起了大拇指。有人说,最让他吃惊的是最新版的Linux内核和BusyBox。它对其他嵌入式系统也很有用。有人说,在1992年,我需要两张5.25英寸的软盘才能运行Linux!开发者介绍中的主角“兄弟”是KrzysztofJankowski,来自波兰,1985年出生,职业游戏开发者和数字艺术家。25年前开始用QBASIC编程,喜欢FOSS、pixelart(像素艺术)、RaspberryPi、游戏引擎等。去年,他创办了自己的公司CyfrowyNomada,并签下了高级游戏引擎开发的beffio合同。他成为专业游戏开发者的梦想变成了现实。
