无聊的开发人员创建“Linux的DOS子系统”

2020-09-27 03:29:49

墨尔本的一位软件工程师正在通过创造一种DOS用户迄今所缺乏的工具来解除这座城市的封锁:一个类似于Windows10用户所享受的集成Linux环境。

Charlie Somerville告诉iTnews,他开发了DOS Subsystem for Linux(DSL),因为他喜欢系统编程,并对复古计算感兴趣,特别是20世纪90年代的Microsoft DOS和Windows东西。

1981年,在羽翼未丰的软件公司聘请了开发人员蒂姆·帕特森(Tim Paterson)创建最初命名为86-DOS的控制程序/监视器(CP/M)软件后,第一个版本的微软磁盘操作系统出现在基于英特尔8086处理器的个人计算机上。

基于字符的MS-DOS在接下来的几年里经历了八个主要版本,最后一个是8.0,作为微软正在走向的Windows ME图形用户界面操作系统的一部分发布。

萨默维尔说:我一开始只是想看看是否能从DOS命令行启动Linux,事实证明这已经足够简单了,所以我想看看在Linux运行后是否还能继续执行DOS会很有趣。

他补充说,考虑到这一切都是如此*不靠谱*,我最惊讶的是整件事运行得如此顺利,哈哈,他补充道,我对整件事的顺利程度感到惊讶,因为这一切都是**不靠谱的**哈哈。

萨默维尔说,DSL在QEMU虚拟机下运行MS-DOS的真实副本,并从那里启动。

第一批PC机采用分段存储器模型,其中随机存取存储器(RAM)的第一兆字节被分成640千字节用于用户程序和DOS本身,高于该模型的384KB用于映射只读存储器和外设输入/输出,最终大部分未被使用。

在那个时代,RAM很昂贵,DOS开发人员想要使用宝贵的384KB内存,就必须采用各种编码扭曲方法,如HIMEM.SYS设备驱动程序来存储数据。

他补充说,幸运的是,Linux似乎在自己的引导过程中保持了第一个兆字节的内存(DOS所在的位置)不变,所以只需跳回正确的位置来继续执行DOS即可。

萨默维尔向他指出,这种在vm8086下运行DOS的方法实际上就是早期Windows的工作方式。

DSL可以从Github开放源码库获得,并且已经在MS-DOS 6.22和FreeDOS上试用过。