適用於 Linux 的 Windows 9x 子系統 (★ 122 分)
Hailey 發表的 Windows 9x Subsystem for Linux,是一個把現代 Linux 核心帶進 Windows 9x(包含 Windows 95、98、Me 的家族)環境的實驗性專案。它的目標不是模擬整台電腦,而是讓 Windows 與 Linux 應用程式能在同一套舊系統上並排執行,並讓 Linux 核心與 Windows 核心在 ring 0(CPU 的最高權限層)協同運作。作者強調,這套做法不像近年的 WSL2(Windows Subsystem for Linux,微軟在 Windows 上執行 Linux 的子系統)那樣依賴 Hyper-V(微軟的虛擬化平台)這類硬體虛擬化,因此連 486 等級的老機器也有機會跑得起來。
從展示畫面來看,Windows 95 的命令列視窗中已能執行 fastfetch、ps、ls /dev、mount、uname -a 等 Linux 指令,顯示這不只是概念驗證,而是已有基本可用的 Linux 使用者空間。作者還笑稱,自己是趕在 Linux 可能移除 486 相容支援前把專案做出來。後續回覆也補充,這個專案雖然碰到了 Windows 9x 的 VMM(Virtual Machine Manager,虛擬機管理層)服務,例如 VMMCreateThread 與部分記憶體內容管理介面,但實際上沒有大規模硬鑽系統內部;它和作者早年的 doslinux 沒有直接程式碼血緣,只是延續了多年累積的想法與經驗。至於網路功能,目前尚未實作,作者認為未來若替 Windows 與 Linux 兩端補上對應的網路驅動程式,還有繼續擴充的空間。
到了 Hacker News,許多人的第一反應是又震驚又著迷,認為這是那種「明明很詭異,卻又技術上美得離譜」的作品。不少留言立刻把它和 CoLinux(Cooperative Linux,讓 Windows 與 Linux 協同執行的早期專案)、flinux、Cygwin(Windows 上提供 POSIX,Portable Operating System Interface,Unix 相容介面標準的工具集)相比。有人指出,flinux 的架構更像 WSL1,CoLinux 則更接近 WSL2 這類把 Linux 核心一起帶進來的方式;Cygwin 雖然比較貼近「在 Win32(Windows 32 位元 API)上實作 POSIX」的正統路線,負擔也較輕,但當年常有 DLL(Dynamic Link Library,動態連結程式庫)版本衝突與 `fork` 效能不佳等問題,因此對某些開發工作來說,反而是 CoLinux 之類方案更方便。
討論裡也出現一個很務實的觀點:這種看似惡搞的技術,對維護老舊工業設備與歷史包袱很重的環境,未必只是玩具。有讀者說,自己在 2026 年還真的碰上需要處理 DOS 與早期 Windows 客製系統的情境,這種做法可能立刻派上用場;也有人提到 SCSI(Small Computer System Interface,舊式裝置匯流排)相關管理軟體、Sun PC 卡與 Solaris 7 這類今天看來很冷門的組合。當然,也有不少人質疑 486 級硬體的記憶體與效能限制,實務用途恐怕不大,甚至笑說真正更好的做法還是直接用原生 Linux。不過整體氣氛仍偏向高度讚賞:即使未必會成為主流工具,這個專案仍讓人重新看見老系統的可塑性、向後相容的價值,以及對作業系統底層機制極深的理解。
👥 27 則討論、評論 💬
https://news.ycombinator.com/item?id=47861270