一名開發者為Linux創建DOS子系統(DSL)
一位來自墨爾本的開發者在冠狀病毒封鎖期間感到無聊,所以他最終創建了一個DOS Subsystem for Linux(DSL)。這是一個DOS用戶迄今為止從未擁有過的工具:類似於Windows 10用戶通過Windows Subsystem for Linux(WSL)使用集成Linux環境。
這款DSL背後的開發者是Charlie Somerville,他是一名軟件工程師,喜歡系統編程,對複古計算技術很感興趣,尤其是涉及到20世紀90年代的微軟DOS和Windows。
Somerville稱他受到了微軟的Linux Windows子系統(WSL)的啟發,所以他寫DSL是為了好玩。一開始,他只是想看看能否讓Linux從DOS命令行啟動。一旦發生了這種情況,他就想到了更上一層樓,看看一旦Linux運行,他是否能繼續執行DOS。
那麼,DOS Subsystem for Linux是如何工作的?
DOS Subsystem for Linux就像WSL的替代品,適合那些喜歡在MS-DOS環境下工作的用戶。DSL將真正的Linux環境集成到MS-DOS系統中,讓用戶可以從DOS命令提示符運行DOS和Linux應用程序。
Somerville在一個Hacker News帖子上解釋了DSL的工作原理。
“當DSL首次在命令行被調用時,它將啟動Linux內核並從DOS中接管計算機的控制權”
DSL使用了一個叫VM8086的處理器功能,它允許一個32位的操作系統運行傳統的16位代碼,並且大部分是原生的。這種在VM8086下運行DOS的方法其實就是早期Windows、DOS擴展器等的工作方式。Linux內核也支持VM86,不過現在大多沒有文檔也沒有真正使用。這樣一來DSL就回到了DOS,DOS就在VM8086任務裡面運行了。值得慶幸的是,Linux在自己的啟動過程中並沒有出現吞噬DOS的內存。
DSL勉強做到了模擬鍵盤等硬件來工作,從而允許DOS原始硬件訪問其他一切。但需要注意的是,在同一硬件上同時運行兩個操作系統當然是極其脆弱和不安全的。儘管如此,它似乎出奇地好用。
您可以從這裡獲取DOS子系統(DSL):