修改者為任天堂NES製作了一個類別Unix作業系統
任天堂將Famicom 定位為比其西方同類產品NES 更像一台電腦,因此將其命名為”家庭電腦”(Family Computer)。磁碟系統(Disk System)附加元件帶來的額外儲存空間和記憶體進一步推動了它的發展潛力,一位修改者透過將類似Unix 的作業系統移植到控制台上證明了這一點。
修改者”decrazyo”最近上傳了一段視頻,記錄了他如何將一個類似Linux 的作業系統轉換為在未修改的NES 上運行。原始碼可在GitHub上獲取,有興趣的人可以嘗試或改進:
https://github.com/decrazyo/lng-fds
該系統符合PC 作業系統的基本要求,理論上可以運行各種應用程序,並完全在任天堂於20 世紀80 年代發布的硬體上運行。雖然當時定義遊戲機市場的NES 不具備這個項目所需的規格,但它在日本的增強版同類產品–Famicom Disk System(FDS)–擁有足夠的額外內存和存儲空間,經過一些重大調整後就能完成任務。遊戲機的官方鍵盤也有助於輸入。
decrazyo 並沒有嘗試移植Linux,而是創建了一個符合Unix 標準的作業系統,例如用戶與硬體之間的核心分離、分層檔案系統、搶佔式多任務處理和類似Unix 的外殼。選擇的基礎是Little Unix (LUnix),這是一個為Commodore 64 設計的系統與FDS 的硬體規格非常相似。
轉換過程包括定義記憶體映射、編寫新的系統初始化程式碼、重新組織LUnix 處理記憶體的方式以符合Famicom 的RAM,以及為鍵盤和圖片處理單元編寫新的驅動程式。新的驅動程式之所以能夠完成,要歸功於幾十年來其他修改者和開發者提供的詳盡文件。
編寫新的磁碟機是最具挑戰性的部分,因為與大多數磁碟機不同,FDS 是按順序而不是任意讀取磁區的。儘管如此,decrazyo 還是設法編寫了一個將磁碟視為唯讀的驅動程序,最終讓他可以啟動shell。
雖然成品存在一些嚴重缺陷,例如視覺故障和磁碟機導致的效能緩慢,但它證明了NES 可以運行Unix 風格的作業系統。它是在一個NES 模擬器上以1000% 的速度運行測試的,以補償性能,但decrazyo 展示了它通過Everdrive ROM 卡帶在美國版NES 上運行的情況。
使用增強型卡帶將程式碼轉移到遊戲機的晶片可能仍然屬於實驗規則的範圍,因為大量的官方NES 卡帶都使用了額外的硬體來擴展遊戲機的功能。不過,看到有人在真正的FDS 上嘗試作業系統還是很有趣的。
2022 年,另一位修改者在NES 上製作了一個純圖形作業系統。雖然沒有鍵盤導致輸入困難,但它支援大量應用程式。