开启辅助访问 切换到窄版

打印 上一主题 下一主题

一名开发者为Linux创建DOS子系统(DSL)

[复制链接]
作者:二马三水 
版块:
嵌入式操作系统 linux 发布时间:2020-10-1 16:16:45
15120
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一位来自墨尔本的开发者在冠状病毒封锁期间感到无聊,所以他最终创建了一个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):

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表