热点新闻
波兰极客用一张软盘运行最新内核的 Linux 系统
admin2021-07-19 05:38
296人已围观
简介波兰极客用一张软盘运行最新内核的 Linux 系统
7 月 18 日消息,用软盘启动 Linux 系统曾经很“家常便饭”,当然那都是 90-00 年代的事了。
但现在,即使你还有一张能用的 3.5 英寸软盘,可 1.44MB 的容量远远装不下一个现代 linux 内核,更不用说还得加上所有支持软件了。
但奇人有招,波兰一位游戏开发小哥只用一张软盘就把现代 Linux 操作系统嵌进去了。
盘上还有几百 KiB 的剩余空间,而且用的都是最新“组件”,包括今年 5.16 号才发布的 5.13.0-rc2 版本的 Linux 内核。
一张软盘装下现代 Linux 系统
小哥把这个系统命名为 Floppinux,在它的官网上带大家走了整个过程,包括从拉取(pull down)、编译源代码到创建最终的磁盘映像的所有命令。
而之所以做这么一件事情,是因为小哥觉得自己用了好多年 Linux,也用过很多 Live-CD(能够在不安装到硬盘的前提下,体验 Linux 操作系统的东西)。
但他对其背后的基本原理知之甚少,所以决定动手研究一下。
小哥的第一个目标是运行 Nomad Diskmag 程序。
Diskmag 这个远古东西不知道有人了解吗?
它的全称叫 disk magazine,也就是磁盘杂志,是一种在上世纪 80-90 年代,以软盘形式发行的电子杂志。90 年代后就被在线出版物所取代了。
小哥已经用 bash 脚本搞定了前端界面,就差封面、目录和 cat 每个文件的正文了。
为了运行他写的脚本,需要一个可用的 Linux 发行版,也就是一个可以在软盘上运行的系统。
因为在 64 位系统上编译 32 位代码有点棘手。为了更简单,小哥用他的 32 位 CPU 的旧笔记本来做这一切。
可以使用 32 位系统的 VirtualBox,如果要用 64 位,添加命令“ARCH=x86”,例如:make ARCH=x86 tinyconfig。
下面就是把现代 Linux 操作系统装进一张 1.44MB 软盘的大概过程:
1、创建并进入你想要保存文件的目录
2、配置和构建定制内核
使用最新 Linux 内核(版本 5.13.0-rc2):
git clone --depth=1 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
进行最小配置:
make tinyconfig
添加额外配置:
make menuconfig
从菜单中选择以下选项:
将设置保存并退出,等待编译完成,最后内核将在 arch/x86/boot/bzImage 中构建,把它移到主目录。
3、 添加工具
如果没有工具,内核只会启动,无法执行任何操作。小哥使用 BusyBox(最流行的轻量级工具之一),下载并解压:
wget https://busybox.net/downloads/busybox-1.33.1.tar.bz2
进入目录,进行启动配置:
make allnoconfig
然后选择你想要的工具:
make menuconfig
每个菜单项都显示各工具需占用多少 KB,合理选择哦。
小哥的选择:
保存配置并退出,编译完成后_install 目录下会创建一个包含所有文件的文件系统,把它移到主目录。
4、添加目录结构
有了内核和基本工具,仍然需要一些额外的目录结构:
cd ../filesystem mkdir -pv {dev,proc,etc/init.d,sys,tmp} sudo mknod dev/console c 5 1 sudo mknod dev/null c 1 3
接下来创建几个配置文件,启动后显示欢迎消息:
cat >> welcome然后配置处理启动、退出和重启的 Inittab 文件 & 实际的初始化脚本,并使初始化脚本可执行,并将所有文件的所有者设置为 root。(限于篇幅命令已省略,具体可查看此链接)
最后,将此目录压缩为一个文件。
可通过从主目录运行 QEMU(在 GNU/Linux 平台上广泛使用的模拟处理器)对以上所有内容进行测试。
5、下面就是把这一切放进软盘了
创建指向内核和文件系统的 Syslinux 引导文件(boot file):
cat >> syslinux.cfg创建空软盘映像:
dd if=/dev/zero of=floppinux.img bs=1k count=1440 mkdosfs floppinux.img syslinux --install floppinux.imgMount it ! 并将 syslinux、内核和文件系统复制到软盘映像:
sudo mount -o loop floppinux.img /mnt sudo cp bzImage /mnt sudo cp rootfs.cpio.gz /mnt sudo cp syslinux.cfg /mnt sudo umount /mnt完成!
现在你就有了自己的发行版映像 floppinux.img,你可以烧录到软盘,然后在真正的硬件上启动它了!
启动耗时 1 分多
小哥花了不到 3 分钟烧录成功,然后开始了首次启动,成功,大概只花了 1 分多钟。
小哥(老哥)表示,在这种裸机的现代硬件上,唯一能阻止启动速度的就是软驱的实际速度。它们最大原始速度为 125KB/s。实际上可能会更慢。
下面是软盘占有空间总结,可以看到还剩 272KiB。
网友热议:“92 年的时候我可是需要两张 5.25”的软盘”
硬件开源项目网站 Hackaday 对小哥的创造进行了报道,并点评道:
当然,为了将最新的 Linux 内核和 BusyBox 构建到大约 1MB 的空间,必须做出一些让步,所以 Floppinux 肯定不是任何人所说的日常驱动程序。一旦系统启动,除了编写一些 shell 脚本之外,就没有什么可做的了。
即使你没有软盘,也值得跟着他的教程,在 QEMU 中启动映像,看看如何从零开始正式构建一个 Linux 系统。这事不仅可以用来吹牛,这样一个最小安装的所有组件如何组合在一起的知识,对学习嵌入式 Linux 设备也很有用。
而在 Hacker News 论坛上很多人纷纷对小哥竖起大拇指,有人表示最令他惊讶的就是用的最新版的 Linux 内核和 BusyBox。而且这对其他嵌入式系统也很有用。
有人说,92 年的时候我可是需要两张 5.25 英寸的软盘来运行 Linux!
开发者介绍
文中的主角“小哥”叫 Krzysztof Jankowski,来自波兰,85 后,是一名专业的游戏开发者和数字艺术家。
25 年前就开始用 QBASIC 编程,喜欢 FOSS、像素画(pixel art)、树莓派,、游戏引擎等。
去年,他创办了自己的公司 Cyfrowy Nomada,与 beffio 签订了高级游戏引擎开发合同。他成为一名专业的游戏开发商的梦想成为现实。
他和他的伙伴们开发的游戏“自由坦克”(Tanks of Freedom)不知道有人玩过没?
GitHub 传送门:点此直达

微信公众号
很赞哦!(0)
相关文章
文章评论
评论0
站点信息
- 微信公众号:扫描二维码,关注我们

点击排行

标签云
-
php
网页设计
个人博客
JS
个人博客
Html
春节必看: 2020新春红包大战 全攻略
新增详细玩法攻略!
支付宝集五福5亿集分宝招商银行抽现金券抖
抖音 2020 发财中国年 攻略
支付宝集五福5亿集分宝招商银行抽现金券抖
最近购买威尔胜WTB0900复刻版和WT
mysql慢查询和php-fpm慢日志
PSR-2
基础代码规范
Thinkphp
响应式
公司
整站
源码
网络科技网站模板
1024
节日
百度收录
论坛
社区
2020
豆瓣
评分最高
电影
debugger
调试
Python
语法
高德
百度地图
MySQL
追寻
webpack
vue
oracle
服务器搭建
有趣
动物
人体
历史
天文
生活
名人
体育
地理
文化
科学
心理
植物
饮食
自然
图片
JVM
IDEA
Loader
Git
UNIAPP
股票
A股
同花顺
海尔
海天味业
半年报
股市总结
歌尔股份
乐普医疗
涪陵榨菜
餐饮
财报分析
酒店
年报分析
美锦能源
山煤国际
贵州茅台
张坤
腾讯
华鲁恒升
淮北矿业
药明康德
早盘关注
国电电力
北方华创
宝丰能源
TCL中环
兔宝宝
天润乳业
启明星辰
阳光电源
山西汾酒
迈瑞医疗
人福医药
比亚迪
宁德时代
汤臣倍健
伊利股份
通威股份
东鹏饮料
隆基股份
紫金矿业
五粮液
康龙化成
赣锋锂业
爱尔眼科
片仔癀
VR
永新股份
爱美客
美的集团
格力电器
科沃斯
云南白药
同仁堂
洋河股份
白云山
三体
狂飙 原著