首頁科技 > 正文

波蘭極客用一張軟盤執行Linux系統,用的還是最新核心

2021-07-06由 量子位 發表于 科技

豐色 發自 凹非寺 量子位 報道 | 公眾號 QbitAI

用 軟盤 啟動Linux系統

曾經很“家常便飯”,當然那都是90-00年代的事了。

有年紀(bushi)的同學可能熟悉。

但現在,即使你還有一張能用的

 3.5英寸

軟盤,可

 1.44MB

的容量遠遠裝不下一個現代linux核心,更不用說還得加上所有支援軟體了。

但奇人有招,波蘭一位遊戲開發小哥只用

 一張軟盤

就把現代Linux作業系統嵌進去了!

盤上還有

 幾百KiB

的剩餘空間!而且用的都是最新“元件”,包括今年5。16號才釋出的5。13。0-rc2版本的 Linux核心 。

波蘭極客用一張軟盤執行Linux系統,用的還是最新核心

一張軟盤裝下現代Linux系統

小哥把這個系統命名為

 Floppinux

,在它的官網上帶大家走了整個過程,包括從下拉 (pull down) 、編譯原始碼到建立最終的磁碟映像的所有命令。

而之所以做這麼一件事情,是因為小哥覺得自己用了好多年Linux,也用過很多Live-CD (能夠在不安裝到硬碟的前提下,體驗Linux作業系統的東西) 。

但他對其背後的基本原理知之甚少,所以決定動手研究一下。

小哥的第一個目標是執行Nomad Diskmag程式。

Diskmag

這個遠古東西不知道有人瞭解嗎?

波蘭極客用一張軟盤執行Linux系統,用的還是最新核心

它的全稱叫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) :

進行最小配置: make tinyconfig

新增額外配置: make menuconfig

從選單中選擇以下選項:

波蘭極客用一張軟盤執行Linux系統,用的還是最新核心

將設定儲存並退出,等待編譯完成,最後核心將在arch/x86/boot/bzImage中構建,把它移到主目錄。

3、 新增工具

如果沒有工具,核心只會啟動,無法執行任何操作。小哥使用 BusyBox (最流行的輕量級工具之一) ,下載並解壓:

進入目錄,進行啟動配置: make allnoconfig

然後選擇你想要的工具: make menuconfig

每個選單項都顯示各工具需佔用多少KB,合理選擇哦。

小哥的選擇:

波蘭極客用一張軟盤執行Linux系統,用的還是最新核心

儲存配置並退出,編譯完成後

 _install

目錄下會建立一個包含所有檔案的檔案系統,把它移到主目錄。

4、新增目錄結構

有了核心和基本工具,仍然需要一些額外的 目錄 結構:

接下來建立幾個配置檔案,啟動後顯示歡迎訊息:

然後配置處理啟動、退出和重啟的

 Inittab檔案

&實際的

 初始化指令碼

,並使初始化指令碼可執行,並將所有檔案的所有者設定為root。 (限於篇幅命令已省略,具體可檢視文末連結[1])

最後,將此目錄壓縮為一個檔案。

可透過從主目錄執行QEMU (在GNU/Linux 平臺上廣泛使用的模擬處理器) 對以上所有內容進行測試。

5、下面就是把這一切放進軟盤了

建立指向核心和檔案系統的Syslinux引導檔案 (boot file) :

建立空軟盤映像:

Mount it !並將syslinux、核心和檔案系統複製到軟盤映像:

完成!

現在你就有了自己的發行版映像floppinux。img,你可以燒錄到軟盤,然後在真正的硬體上啟動它了!

啟動耗時1分多

小哥花了不到3分鐘 燒錄 成功,然後開始了首次啟動:

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

啊,從螢幕上看了小哥似乎不年輕,頭髮也禿得讓人落淚。

小哥(老哥)表示,在這種 裸機 的現代硬體上,唯一能阻止啟動速度的就是軟碟機的實際速度。它們最大原始速度為125KB/s。實際上可能會更慢。

下面是軟盤佔有空間總結,可以看到還剩272KiB。

波蘭極客用一張軟盤執行Linux系統,用的還是最新核心

網友熱議:“92年的時候我可是需要兩張5。25”的軟盤”

硬體開源專案網站 Hackaday對小哥的創造進行了報道,並點評道:

當然,為了將最新的Linux核心和BusyBox構建到大約1MB的空間,必須做出一些讓步,所以Floppinux肯定不是任何人所說的日常驅動程式。一旦系統啟動,除了編寫一些 shell指令碼 之外,就沒有什麼可做的了。  即使你沒有軟盤,也值得跟著他的教程,在QEMU中啟動映像,看看如何從零開始正式構建一個 Linux系統 。這事不僅可以用來吹牛,這樣一個最小安裝的所有元件如何組合在一起的知識,對學習 嵌入式Linux 裝置也很有用。

而在Hacker News 論壇上很多人紛紛對小哥豎起大拇指,有人表示最令他驚訝的就是用的最新版的Linux核心和BusyBox。而且這對其他 嵌入式 系統也很有用。

波蘭極客用一張軟盤執行Linux系統,用的還是最新核心

有人說,92年的時候我可是需要兩張5。25英寸的軟盤來執行Linux!

波蘭極客用一張軟盤執行Linux系統,用的還是最新核心

開發者介紹

波蘭極客用一張軟盤執行Linux系統,用的還是最新核心

文中的主角“小哥”叫Krzysztof Jankowski,來自波蘭,85後,是一名專業的遊戲開發者和數字藝術家。

25年前就開始用 QBASIC 程式設計,喜歡FOSS、 畫素畫 (pixel art) 、樹莓派,、 遊戲引擎 等。

去年,他創辦了自己的公司Cyfrowy Nomada,與beffio簽訂了高階遊戲引擎開發合同。他成為一名專業的遊戲開發商的夢想成為現實。

他和他的夥伴們開發的遊戲“自由坦克” (Tanks of Freedom) 不知道有人玩過沒?

GitHub傳送門:https://github。com/w84death/floppinux

參考連結:

[1]https://bits。p1x。in/floppinux-an-embedded-linux-on-a-single-floppy/

[2]https://hackaday。com/2021/05/24/running-modern-linux-from-a-single-floppy-disk/

[3]https://news。ycombinator。com/item?id=27247612

[4]https://krzysztofjankowski。com/

— 完 —

量子位 QbitAI · 頭條號簽約

關注我們,第一時間獲知前沿科技動態

頂部