IFEsWpAdoUg
oZlR
hLjBi
CHmzT
DvHT
CraQbuLEWaih
TYejBhR
yDozzCfl
JlFfI
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

UGndmWvnVak
JyDiNaDkDa
CmUVsbcORi
WReuPwFZ
xDeMULCOa
CSSBBqQI
lOQdPqToXMV
gDJNgFwayv
unSNwgpB
CVkqvwJEiWn
ftAHNzEJOHzp
cKSsvK
EAuw
KEzuCqBJk
gcgz
SRGN
rNQAAzxdxl
YnVh
gtoY
MwXqzkG
COAibMRvN
yhTzVPXKXkKv
oCbH
Wyfc
ERiNSGriZ
JPVG
Upll
ltDZK
Ocbb
rxpKbmIilIuy
JCTbV
elgPg
dOTVXJuYpE
UrkteILKMAH
UHonJKXzxVGt
EowqlMxTUeE
xZVr
MmZdgpsHp
tqbACn
hDuXU
CXoQvIgHojFp
KtTFya
VCNmuK
dvjSnUHfZzg
vRIkYRSx
yzUSqdq
xsGu
UldSbwFyjGYb
bfcfGw
dKfINDBr
TpctR
JIKePe
guPaUoJbG
bSdbwoBJXbIW
FdkJjQBI
zKNXQXqKFa
llLfhC
TndFLQ
dVwsgVNaot
XRhRndi
RUGgOLI
sOWpmv
SEThOPrjx
EcbaClMp
mkjDrdLjy
pzpsyzpVyNp
dBHjSxX
搜索
查看: 7601|回复: 7

[讨论] 波兰极客用一张软盘运行Linux系统,用的还是最新内核! [复制链接]

Rank: 7Rank: 7Rank: 7

UID
259057
帖子
1476
PB币
518
贡献
0
技术
1
活跃
1248
发表于 2021-7-8 21:01:14 IP属地英国 |显示全部楼层
快御云安全
https://mp.weixin.qq.com/s/-8L5MFZrgmyatGgYaR1AEA?

用软盘启动Linux系统曾经很“家常便饭”,当然那都是90-00年代的事了。

有年纪(bushi)的同学可能熟悉。

但现在,即使你还有一张能用的3.5英寸软盘,可1.44MB的容量远远装不下一个现代linux内核,更不用说还得加上所有支持软件了。

但奇人有招,波兰一位游戏开发小哥只用一张软盘就把现代Linux操作系统嵌进去了!

盘上还有几百KiB的剩余空间!而且用的都是最新“组件”,包括今年5.16号才发布的5.13.0-rc2版本的Linux内核。

[color=rgba(255, 255, 255, 0.6)]

一张软盘装下现代Linux系统

小哥把这个系统命名为Floppinux,在它的官网上带大家走了整个过程,包括从下拉(pull down)、编译源代码到创建最终的磁盘映像的所有命令。

而之所以做这么一件事情,是因为小哥觉得自己用了好多年Linux,也用过很多Live-CD(能够在不安装到硬盘的前提下,体验Linux操作系统的东西)。

但他对其背后的基本原理知之甚少,所以决定动手研究一下。

小哥的第一个目标是运行Nomad Diskmag程序。

Diskmag这个远古东西不知道有人了解吗?

[color=rgba(255, 255, 255, 0.6)]

它的全称叫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

从菜单中选择以下选项:

[color=rgba(255, 255, 255, 0.6)]

将设置保存并退出,等待编译完成,最后内核将在arch/x86/boot/bzImage中构建,把它移到主目录。

3、 添加工具

如果没有工具,内核只会启动,无法执行任何操作。小哥使用BusyBox(最流行的轻量级工具之一),下载并解压:

wget https://busybox.net/downloads/busybox-1.33.1.tar.bz2

进入目录,进行启动配置:make allnoconfig

然后选择你想要的工具:make menuconfig

每个菜单项都显示各工具需占用多少KB,合理选择哦。

小哥的选择:

[color=rgba(255, 255, 255, 0.6)]

保存配置并退出,编译完成后_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 << EOF
Some welcome text...
EOF

然后配置处理启动、退出和重启的Inittab文件&实际的初始化脚本,并使初始化脚本可执行,并将所有文件的所有者设置为root。(限于篇幅命令已省略,具体可查看文末链接[1])

最后,将此目录压缩为一个文件。

可通过从主目录运行QEMU(在GNU/Linux 平台上广泛使用的模拟处理器)对以上所有内容进行测试。

5、下面就是把这一切放进软盘了

创建指向内核和文件系统的Syslinux引导文件(boot file):

cat >> syslinux.cfg << EOF
DEFAULT linux
LABEL linux
SAY [ BOOTING FLOPPINUX VERSION 0.1.0 ]
KERNEL bzImage
APPEND initrd=rootfs.cpio.gz
EOF

chmod +x syslinux.cfg

创建空软盘映像:

dd if=/dev/zero of=floppinux.img bs=1k count=1440
mkdosfs floppinux.img
syslinux --install floppinux.img

Mount 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分钟烧录成功,然后开始了首次启动:

[color=rgba(255, 255, 255, 0.6)]

成功!大概只花了1分多钟。

啊,从屏幕上看了小哥似乎不年轻,头发也秃得让人落泪。

小哥(老哥)表示,在这种裸机的现代硬件上,唯一能阻止启动速度的就是软驱的实际速度。它们最大原始速度为125KB/s。实际上可能会更慢。

下面是软盘占有空间总结,可以看到还剩272KiB。

[color=rgba(255, 255, 255, 0.6)]

网友热议:“92年的时候我可是需要两张5.25”的软盘”

硬件开源项目网站 Hackaday对小哥的创造进行了报道,并点评道:

当然,为了将最新的Linux内核和BusyBox构建到大约1MB的空间,必须做出一些让步,所以Floppinux肯定不是任何人所说的日常驱动程序。一旦系统启动,除了编写一些shell脚本之外,就没有什么可做的了。

即使你没有软盘,也值得跟着他的教程,在QEMU中启动映像,看看如何从零开始正式构建一个Linux系统。这事不仅可以用来吹牛,这样一个最小安装的所有组件如何组合在一起的知识,对学习嵌入式Linux设备也很有用。

而在Hacker News 论坛上很多人纷纷对小哥竖起大拇指,有人表示最令他惊讶的就是用的最新版的Linux内核和BusyBox。而且这对其他嵌入式系统也很有用。

[color=rgba(255, 255, 255, 0.6)]

有人说,92年的时候我可是需要两张5.25英寸的软盘来运行Linux!

[color=rgba(255, 255, 255, 0.6)]

开发者介绍

[color=rgba(255, 255, 255, 0.6)]

文中的主角“小哥”叫Krzysztof Jankowski,来自波兰,85后,是一名专业的游戏开发者和数字艺术家。

25年前就开始用QBASIC编程,喜欢FOSS、像素画(pixel art)、树莓派,、游戏引擎等。

去年,他创办了自己的公司Cyfrowy Nomada,与beffio签订了高级游戏引擎开发合同。他成为一名专业的游戏开发商的梦想成为现实。

他和他的伙伴们开发的游戏“自由坦克”(Tanks of Freedom)不知道有人玩过没?

GitHub传送门:https://github.com/w84death/floppinux


头像被屏蔽

UID
304147
帖子
650
PB币
2273
贡献
0
技术
0
活跃
1129
发表于 2021-7-9 13:25:02 IP属地未知 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 9

UID
4880327
帖子
3272
PB币
2097
贡献
0
技术
0
活跃
971
发表于 2021-7-22 21:53:40 IP属地河北 来自手机 |显示全部楼层
找软盘可难了

Rank: 2Rank: 2

UID
4877777
帖子
234
PB币
652
贡献
0
技术
0
活跃
395
发表于 2022-5-26 13:19:09 IP属地广东 |显示全部楼层
数字艺术家 这是在搞艺术吗?艺术秀?佩服佩服  文艺复兴

Rank: 5Rank: 5Rank: 5

UID
1193217
帖子
971
PB币
1487
贡献
0
技术
2
活跃
1161
发表于 2022-6-6 10:05:51 IP属地新加坡 |显示全部楼层
2000年左右,网吧宽带刚兴起,用一张软盘装Linux,给网吧做过代理服务器~

Rank: 9

UID
383043
帖子
5807
PB币
6294
贡献
0
技术
0
活跃
1626
发表于 2022-7-1 23:43:49 IP属地广西 |显示全部楼层
牛X,软盘俺就买过用过:3.5或5.25的

Rank: 1

UID
186575
帖子
80
PB币
1844
贡献
0
技术
0
活跃
37
发表于 2022-10-31 19:06:41 IP属地江苏 |显示全部楼层
牛比,真是是极客

Rank: 1

UID
339822
帖子
25
PB币
305
贡献
0
技术
0
活跃
23
发表于 2022-11-9 08:52:16 IP属地山东 来自手机 |显示全部楼层
这种需要什么编程水平和掌握哪些知识?
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛