微软宣布开源 MS-DOS 4.0!

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

整理 | 屠敏

出品 | CSDN(ID:CSDNnews)

曾几何时,有不少网友在问答社区发问:“为什么微软不把一些老旧的操作系统给开源出来呢,毕竟那些系统都没有商业价值了?”

如今看来,旧系统的不开源只是时候未到,或者说没人想得起来。

时下幸得一位研究人员的提醒与争取,微软和 IBM 于近日决定将 MS-DOS 4.0 版本开源出来,还将代码发布在了 GitHub 上(https://github.com/microsoft/MS-DOS),以供大家研究学习。

de97c9a40e1af92ab8ec7d1099b88249.jpeg

414c0437a6d80cd2dd9f6d09ca456194.png

36 年后,微软将 MS-DOS 4.0 开源

距离 1988 年首次发布,MS-DOS 4.0 至今已有近 36 年的历史,此次微软开源的 MS-DOS 4.0 项目是在 MIT 许可下发布,具体包含了源代码、二进制文件、磁盘映像和文档等内容,允许修改、发布。

这一次 MS-DOS 4.0 得以开源,很大程度上要归功于前微软首席技术官 Ray Ozzie 和一位名叫 Connor(Starfrost)Hyde 的年轻英国研究员之间的通信。

对此,微软开发者社区副总裁 Scott Hanselman 和微软开源项目办公室负责人 Jeff Wilcox 还特地发布了一篇《开源 MS-DOS 4.0》的公告进行了介绍。

ae2fe31c79b7efb12c5459334010ed5b.png

公告指出,相较之下,DOS 4.0 版本背后有着一段复杂而迷人的历史,微软与 IBM 合作开发了部分代码,但也创建了一个名为“多任务 DOS”(MT-DOS)的 DOS 分支,但并未广泛发布。

不久前,这位研究员 Connor(Starfrost)Hyde 和微软前首席技术官 Ray Ozzie 就自己手头收藏的一些软件进行了交流。在收藏的软盘中,Ray Ozzie 惊讶地发现了一些未发布的 DOS 4.0 测试版二进制文件。

基于此,研究员 Starfrost 联系了微软开放源代码计划办公室 (OSPO),希望他们能够发布 DOS 4 的源代码,因为他正在研究记录 DOS 4、MT-DOS 和 IBM的 OS/2 之间的关系。这些多任务 DOS(MT-DOS)二进制文件的一些后期版本可以在互联网上找到,但这些新的多任务 DOS beta 版二进制文件似乎更早,尚未发布,而且还包括 ibmbio.com 源代码。 

在了解这些信息之后,微软开发者社区副总裁 Scott Hanselman 在互联网档案管理员和爱好者 Jeff Sponaugle 的帮助下,对这些原始磁盘进行了成像,并仔细扫描了“Ozzie Drop”中的原始印刷文件。微软和 IBM 研究员都认为,这是操作系统历史上值得分享的精彩片段。 

3034d0e881f6f13050a5a6fd9affedbc.png

随后,微软开源项目办公室负责人 Jeff Wilcox 去了微软档案馆(Microsoft Archives),但是他们没能找到 MT-DOS 的完整源代码,却发现了 MS-DOS 4.0,这才有了如今的开源。

微软表示,“如果你想亲自运行 MS-DOS 4.0 软件并进行探索,我们已经成功地在原始 IBM PC XT、较新的 Pentium 电脑以及开源 PCem 和 86box 模拟器上直接运行了该软件。 ”

  • GitHub 地址:https://github.com/microsoft/MS-DOS

3f7c39134d3b9df1ecc32e4fa3f17382.png

MS DOS 源码陆续发布中

这并不是微软第一次发布 MS-DOS 源代码。

十年前,微软将 MS-DOS 1.25 和 2.0 的源代码发布到计算机历史博物馆,而后在 2018 年于 GitHub 上重新开源了 MS-DOS(https://github.com/microsoft/MS-DOS)。这段代码在历史上占有重要地位,对于仅 45 年前完全用 8086 汇编代码编写的操作系统而言,具有非常好的研究意义。

多年来,其他 DOS 版本也已开源。PC-MOS/386 是总部位于佐治亚州诺克罗斯的 The Software Link 公司推出的多用户 MS-DOS 克隆版,于 2017 年开源(https://github.com/roelandjansen/pcmos386v501)。它可以运行大多数标准 DOS 和 386 的保护模式应用程序。

79314fb3060c7b21ca37b40d7f56e37b.png

回看 DOS 发展史

事实上,现下的 MS-DOS 4.0 并不能称之为是更好的 DOS 操作系统。回看 DOS 发展历史,这款操作系统也曾引起巨大争议。

要知道,在 Windows 出现之前,从 1981 年到 1995 年的 15 年间,DOS 在 IBM PC 兼容机市场中占有举足轻重的地位。

其历史要追溯到 20 世纪 80 年代,一名美国计算机程序员 Tim Paterson 在为自家的西雅图计算机产品公司开发一种使用新的英特尔 8086 16 位处理器的新产品时,发现没有任何操作系统可用。

于是从 1980 年初开始,Tim Paterson 用不到一年的时间内开发了一款名为 QDOS 的操作系统旨在填补这一空白,起初他的目的也比较简单,就是让应用程序能轻松地从 CP/M 移植过来。将一个应用程序从 CP/M 移植到这个新操作系统的过程,只需将 8080 或 Z80 汇编程序转换为 8086(使用 Tim Paterson 编写的另一个工具)并进行手工优化即可。

后来,这款系统更改为 86-DOS,微软收购了该操作系统,Tim Paterson 随之加入微软,全职开发该操作系统。显然,没过多久,他立即被告知是在为 IBM 工作。随后,该操作系统再次被重新命名:如果在 IBM 系统上运行,则更名为 PC-DOS;如果不在 IBM 系统上运行,则更名为 MS-DOS(因为微软是合法所有者)。

而这一段历史,可以从上文提到的那位年轻的英国研究员 Starfrost 的叙述中可见一斑:

微软公司于 1975 年由比尔·盖茨和保罗·艾伦创立,为 MITS Altair 8800(最早的个人电脑之一)开发 BASIC 解释器。最初版本的产品在 30 天内开发完成,并成功地向 MITS 创始人(被誉为个人电脑之父)进行了演示。接下来的事情便不展开细说。

从根本上说,在短短几年内,微软就成为了最受欢迎的 BASIC 解释器开发商,并拥有大量其他产品——这是一家相当成功的工具和语言公司,尽管他们也销售各种“SoftCards”,以允许计算机运行针对其他架构的程序,因为在这一时期,个人电脑行业远未实现标准化。

到 1980 年,微软公司的收入达到了几百万美元,但这与后来的发展相比简直是小巫见大巫——公司真正的“重大突破”是在 1980 年。那时,科技巨头 IBM 拟定一份合同,想要一次性支付约 8 万美元,从微软手中购买 MS-DOS 操作系统的永久使用权,用于即将推出的个人电脑。IBM 还获得了微软的 BASIC 编程语言、该公司的所有其他语言以及一些新开发的应用程序的使用权。聪明的做法应该是盖茨坚持收取专利使用费,这样他的公司就可以从 IBM 出售的每台个人电脑中赚取一小笔钱。

通过一系列争论激烈的事件,盖茨“不太聪明”地拒绝了这一合同。

他坚持将 MS-DOS 授权给任何需要的人,微软总共为收购 MS-DOS 支付了 75,000 美元,其中 25,000 美元用于授权,50,000 美元用于直接购买,再加上 IBM PC 的开放式结构,MS-DOS 几乎立即被克隆,成为个人电脑的事实标准。这使得微软从 OEM 收入中获得了无限的印钞机,尽管这在几年内还不会显现出来。

事实证明,这是一次极其幸运的运气,再加上一些精明的商业洞察力,最终使微软公司成为世界上最大的公司之一,比尔·盖茨也多年来一直是世界上最富有的人。

虽然 MS-DOS 让微软赚得盆满钵满,但问题是,即使以当时的标准来看,它也很糟糕。

由于 Tim Paterson 当时是为了满足迫切的需求而匆忙推出的 QDOS 系统,从字面理解 QDOS 就是“快速而肮脏的操作系统”的意思,即使以当时有限的标准来看,该操作系统也缺少了许多基本功能,如缺少子目录、设备驱动程序、硬盘支持等等。

1983 年,微软对 MS-DOS 进行了全面重写,发布了 MS-DOS 2.0,新增了不少功能,还允许 160KB 和 320KB 软盘变为 180KB 和 360K。由于增加了急需的功能,这次更新受到了普遍欢迎,但也有一些人批评它增加了内存使用量。

然而,随着技术的发展,用户仍然需要更多功能。他们想在当时功能强大的新电脑上同时做多件事,因此需要一个操作系统来实现,而 MS-DOS 这个单一任务的操作系统根本无法胜任。此外,自 MS-DOS 1.x 发布以来,微软公司就承诺在未来对 MS-DOS 进行扩展--多用户、网络、多任务。

于是,微软于 1983 年 1 月召集了一些最优秀的程序员,旨在开发新版的 MS-DOS 3.0(MS-DOS 2.5 作为临时版本在同一代码库中同时开发,目的是为微软和 IBM 的网络产品增加基本的网络重定向器支持),它将是一个真正的多任务操作系统,具有抢占式优先调度程序、多线程、命名管道、sempahores、会话管理用户界面和许多其他功能。

然而,编写一个与已有的为单任务环境编写的成千上万个应用程序兼容的操作系统难度实属不易。Starfrost 对此剖析道:

许多 MS-DOS 应用程序,由于 API 缺陷,会进行一些诸如直接写入显示内存的操作——这在多任务处理的操作系统上是无法完成的,因为用户可以选择显示哪个应用程序,并且“屏幕”随时可以改变。

由于新操作系统将被抢占式地进行多任务处理,任何应用程序都可能在任何时间被操作系统抢占进行上下文切换;许多 DOS 应用程序在这方面的兼容性表现不佳。应用程序还会直接从外围设备进行写入和读取,如果操作系统正在等待这些设备的数据,这在多任务处理环境中可能是致命的。

也许是由于这些复杂性等原因,当时 MS-DOS 3.0 被迅速推迟了很长时间。后来,MS-DOS 4.0 又进一步地进行了改进,甚至突破了 640KB 的内存限制,并且支持 32MB 以上的硬盘空间,还增加了支持鼠标的目录界面。

不过,MS-DOS 4.0 与很多知名程序不兼容,有些漏洞甚至会导致用户数据被破坏。

对此,也有不少用户吐槽,当时流行的程序,比如 WordPerfect 5.1、Lotus 1-2-3 和 Doom,在 MS-DOS 4.0 上总是出问题。你可能正在做任务,突然间,程序可能就完全卡住了。在我们了解和讨厌 Windows 的蓝屏死机之前,MS-DOS 4.0 就已经让 PC 用户感到恐慌了。

至于其中缘由,外媒 ZDNET 称,这主要是因为 MS-DOS 4.0 使用了 92KB 的内存。但在当时高端 PC 只有 640K 内存时,这是一件大事,MS-DOS 4.0 使用的内存比以往任何版本的 DOS 都多。

甚至这一版的大跌的口碑让很多使用 DOS 系统的开发商避之不及,当时数字研究公司开发了一款名为 DR-DOS 的 DOS 操作系统,自其发布以来,其版本号最初是模仿 MS-DOS 版本号的,以显示前者将与后者一样工作。但是本来到了发布 DR-DOS 4.0 版本时候,数字研究公司在 1989 年将其新版本命名为 DR-DOS 5.0,以防止任何人认为它与 MS-DOS 4.0 有任何关系。

所以,即使是在 DOS 4.0 发布后一年,软件零售商 Egghead Software 的数据仍然显示,DOS 3.3 的销量为 DOS 4.0 的 2 倍。

事实上,也许 1991 年这么多人准备尝试一种新的类 Unix 操作系统 Linux 的原因之一是 MS-DOS 4.0 惹恼了这么多用户。

后来,微软推出了 Windows 操作系统,尤其是 Windows 95 的发布标志着微软向图形用户界面(GUI)的转变,导致 MS-DOS 走向了灭亡。

曾经这款 MS-DOS 4.0 虽然备受争议,但是如今其带来的开源还是让不少操作系统爱好者感到兴奋,截至目前,这一仓库已经获得了 26.2k 个 star 数,Fork 数达到了 3.6k。

参考链接:

https://cloudblogs.microsoft.com/opensource/2024/04/25/open-sourcing-ms-dos-4-0/

https://starfrost.net/blog/001-mdos4-part-1/index.html

https://www.zdnet.com/article/its-baaack-microsoft-and-ibm-open-source-ms-dos-4-0/

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

推荐阅读  点击标题可跳转

1、Python 项目工程化最佳实践

2、Python 可以比 C 还要快!

3、streamlit,一个超强的 Python 库

4、豆瓣8.9分的C++经典之作,免费送!

5、Python 3.12 版本有什么变化?

最近我开了一家淘宝店,名字叫【打破壁垒】,主打程序开发相关付费素材、工具的共享类商品,帮助大家降低试错和使用成本。欢迎大家关注。

9db1214552cdd01bb86fe7f4fc1eef71.jpeg

长按扫描下方二维码,然后点击页面中的【打开淘宝】,即可进入店铺:

962b1cfd54e42d3f06e2c0dc544a9352.png

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

👇关注我的公众号👇

告诉你更多细节干货

b64d3cf88899534dd1a8cd4c35b3a808.jpeg

欢迎围观我的朋友圈

👆每天更新所想所悟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MS-DOS 7.10 完整安装版说明 ************************** MS-DOS 7.10介绍 =============== MS-DOS 7.10是目前功能最强大实用,且兼容性最好的DOS。而且由于它全面支持大硬盘、大内存、长文件名(LFN)、FAT32分区、可能直接启动Win3.x/9x等等,所以非常实用!尤其是对于大硬盘和FAT32分区的支持这点是最为重要的,因为现在的硬盘容量越来越大,例如30GB、50GB等硬盘现在越来越多,而旧版本的DOS就无法支持这些大硬盘。所以MS-DOS 7.10的功能是非常强大的,而且由于它可以自动做成与系统中已有的Win9x/NT/2K/XP+等系统的双启动,所以非常安全实用。 MS-DOS 7.10安装 =============== DOS71_1.IMG和DOS71_2.IMG两个文件分别为MS-DOS 7.10完整安装版的软盘IMG镜像文件,即安装盘1和安装盘2。要制作成安装盘,请用HD-COPY、WinImage之类的软件将它们分别写入软盘即做成真正的安装软盘。注意,是写入到软盘中,而不是复制文件,否则安装盘可能会无法启动。或者也可以用VMWare、Virtual PC、Bochs等虚拟机将它们(IMG镜像文件)做为虚拟软盘来直接使用并进行安装。 安装盘做好后,直接用上面的安装盘1启动系统,它就会自动启动MS-DOS 7.10安装程序,这时就可以按照提示(图形界面)以自动进行MS-DOS 7.10的安装了。这个安装程序可以自动将MS-DOS 7.10安装到硬盘中来使用。上面的安装盘2中还带有DOSSHELL、MSBACKUP等各种附加的DOS程序,也会一起安装的。说明:它可以自动与系统中已有的WinNT/2K/XP+、旧版本的DOS如MS-DOS 6.x等系统做成双启动。 如果没有软盘而想把它们解开到硬盘上安装,请用UNDISK、DOSIMG、WinImage之类的软件将它们全部解开到硬盘的一个文件夹中。注意:如果是两个IMG镜像文件的话,请将它们解开到硬盘的同一个路径下,而不是两个不同的路径下。然后在纯DOS下进入此路径并运行SETUP即可开始安装。 如果想用光盘进行安装的话,可以把IMG放在光盘中做为启动镜像(比如2.88MB启动镜像);或者下载“MS-DOS 7.10完整安装光盘ISO版”并直接启动以进行MS-DOS 7.10的安装。以下是MS-DOS 7.10完整安装版的光盘版(此ISO为可启动光盘的镜像): 安装光盘:http://newdos.yginfo.net/dosware/dos71cd.zip 由于MS-DOS 7.10的安装程序具有插件功能,以使得可以自动安装更多的程序,所以这个“MS-DOS 7.10完整安装光盘ISO版”中已包含有许多附件(例如一些MP3播放器、声卡驱动、汉字系统等)以让用户进行选择性的自动安装。如果是使用“MS-DOS 7.10完整安装软盘版”并想安装插件的话,可以在安装程序提示输入插件路径时插入相应的插件盘并确定即可,随后这些插件将会被自动随MS-DOS 7.10一起安装到系统中。如果不想安装插件或没有插件盘的话则可以直接跳过此步骤。 正因为MS-DOS 7.x的功能非常强大,微软公司推出的Windows 9x等GUI程序就是用了一个经过某些修改的精简/特别版的MS-DOS 7.x内核来启动的。而以上的MS-DOS 7.10完整安装版和Windows 9x所带的精简版的DOS相比之下功能也自然更加丰富,性能也更加稳定。也正由于MS-DOS 7.10的这些增强特点,所以在这个MS-DOS 7.10下可以直接进入Windows 3.x/9x等(毕竟Win3.x/9x只是DOS下的GUI程序),方法是先进入其相应的Windows文件夹/目录,然后用相应的WIN命令即可进入相应的Windows 3.x/9x即可,或者通过修改MSDOS.SYS的路径设置来直接实现。 如果系统中已安装了Win9x,再安装MS-DOS 7.10的话,安装程序在安装中通常会提示是否自动设置Win9x的路径,以便直接输入WIN命令就可以进入Win9x,这时请选择“是”。这样一来,MS-DOS 7.10安装成功并启动后,若想进入Win9x的话,只需在DOS命令行下输入WIN命令即可进入。如果系统中已安装了WinNT/2K/XP,再安装MS-DOS 7.10的话,安装程序通常会自动做成DOS与WinNT/2K/XP双启动。MS-DOS 7.10安装成功后,系统启动时会自动出现双启动菜单,选择菜单中的“MS-DOS 7.10”就可以进入安装好的MS-DOS 7.10了。
### 回答1: cocos2d-x 4. 学习之路 cocos2d-x是一款开源的跨平台游戏引擎,支持多种平台,包括iOS、Android、Windows、Mac OS X等。cocos2d-x 4.是最新版本,相比之前版本,它有很多新特性和改进,如增强的渲染性能、更好的3D支持、更好的物理引擎等。 如果你想学习cocos2d-x 4.,可以从以下几个方面入手: 1. 学习基础知识:了解cocos2d-x的基本概念、架构和工作原理,掌握cocos2d-x的编程语言和开发环境。 2. 学习API:熟悉cocos2d-x的API,包括场景管理、精灵、动画、音频、物理引擎等。 3. 学习示例代码:通过阅读和分析cocos2d-x的示例代码,了解如何使用cocos2d-x开发游戏。 4. 学习实践:通过实践开发小游戏,掌握cocos2d-x的开发流程和技巧,提高自己的编程能力。 总之,学习cocos2d-x 4.需要一定的时间和耐心,但只要你有兴趣和热情,相信你一定能够掌握它。 ### 回答2: cocos2d-x是一个强大的游戏引擎,可用于开发移动和桌面游戏。随着cocos2d-x更新至4.0版本,它的功能得到了大幅升级。如果你想学习cocos2d-x 4.0,以下是一些重要的步骤和建议。 1. 更改代码结构 cocos2d-x 4.0中启用了新的代码结构,旨在更好地实现模块化和解耦。新代码结构包括Core、Renderer、2d等模块,使代码更易于维护和升级。要理解新代码结构,请先阅读cocos2d-x官方文档,并针对各个模块学习和熟悉其API。 2. 学习新功能 cocos2d-x 4.0中引入了许多新功能,例如Shader、Render Queue等。学习新功能是非常必要的,因为它们将改变以前的游戏开发模式。了解这些新功能的实现原理,并在自己的项目中应用它们,有助于提高游戏性能和质量。 3. 学习C++11 cocos2d-x 4.0开始支持C++11标准,这意味着你可以使用C++11的新特性来编写更好的代码。要理解C++11的特性,建议通读一遍C++11的官方标准,并尝试在cocos2d-x项目中使用这些新特性。 4. 实战练习 最后,实战练习是学习任何技能的关键。为了更好地学习cocos2d-x 4.0,建议你尝试开发自己的游戏项目。通过尝试解决实际问题,你能更好地理解cocos2d-x的API,并在实践中掌握游戏开发的技术。 总而言之,学习cocos2d-x 4.0需要掌握新的代码结构、新的功能和C++11标准,并通过实际项目实战练习来加深理解。这需要一定的时间和耐心,但只要你认真学习、实践和不断尝试,必定能够取得成功。 ### 回答3: cocos2d-x 4.0是目前市面上非常流行的开源游戏开发引擎,在游戏开发领域有着较为广泛的应用。然而,学习cocos2d-x 4.0需要付出一定的努力和时间。以下是我对cocos2d-x 4.0学习之路的一些经验和建议。 1. 学习基础知识 在开始学习cocos2d-x 4.0之前,我们需要了解一些基础知识,比如C++语言、OpenGL ES等,这些都是cocos2d-x 4.0的底层实现技术。掌握这些基础知识会让我们从事游戏开发时更加得心应手。 2. 学习文档 学习cocos2d-x 4.0需要阅读官方文档,这些文档详细介绍了引擎的各个方面,而且是学习的最佳资料。文档里包括了引擎的安装、使用、开发以及调试等。建议大家先从官网下载文档,并且仔细阅读。 3. 实践和开发 掌握了基础知识以及学习了文档之后,最好的方式就是通过实践和开发来加深对cocos2d-x 4.0的理解。通过实际开发游戏来体验引擎的使用,这样能够更深刻的理解引擎的机制以及遇到的各种问题该如何解决。同时,通过找到一些相近的问题,并通过查阅文档、代码实现等方式来解决问题,可以增强自己的技术水平。 4. 参与社区 cocos2d-x 4.0的官方论坛以及社区非常活跃,里面的开发者也有着丰富的经验和技术,在学习中可以多向论坛、社区里的大牛请教,获得更多的技术指导,同时也可以参与讨论,提出自己的问题和思考来获得反馈,这样可以更快地提高自己的技术。 总之,学习cocos2d-x 4.0需要耐心和对游戏开发的热情。只有通过不断的学习与实践,我们才能最终掌握这个优秀的游戏开发引擎,从而创建属于自己的游戏作品。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值