这两天逛GitHub的时候,突然发现一个叫 MS-DOS的项目冲到Trending榜首了!
定睛一看,微软官方啊,搜了一下才知道,原来前两天,微软把MS-DOS 4.0系统开源了!
关于这个系统,估计现在很多程序员都不知道了,或者只在古老的教科书上看过这玩意儿。
MS-DOS,全称为Microsoft Disk Operating System,是一款由微软开发的操作系统。它主要用于个人计算机,并且在1981年至1990年代早期成为了最流行的操作系统之一。MS-DOS的历史与早期个人计算机的发展紧密相关,具有重要的历史意义。
1980年代初期:IBM计划推出其第一台个人计算机,即IBM PC。IBM最初没有自己的操作系统,因此与微软达成协议,由微软提供操作系统。微软当时并没有自己的磁盘操作系统,因此它从另一家公司Seattle Computer Products购买了一个名为86-DOS的系统,这个系统由Tim Paterson开发,最初被称为QDOS(Quick and Dirty Operating System)
1981年:微软将QDOS改良后,重新命名为MS-DOS,并授权给IBM。IBM将其与IBM PC一同发布,并将其命名为PC-DOS
MS-DOS是一个命令行界面的操作系统,用户需要通过键入命令来执行操作。它支持基本的文件管理、内存管理和程序执行功能。
1980年代:MS-DOS随着IBM PC的普及而迅速扩展,成为当时市场上的主导操作系统。微软随后推出了多个版本,逐步增加了更多功能,如高级文件系统支持、网络功能和国际化支持等。
1990年代:随着图形用户界面的兴起,尤其是微软自己的Windows操作系统的普及,MS-DOS的重要性开始下降。Windows最初作为运行在MS-DOS之上的图形界面程序推出,但逐渐发展成为完全独立的操作系统。
MS-DOS自1981年首次发布以来,经历了多个版本的更新:
  • MS-DOS 1.0(1981年):首个官方版本,支持基本的磁盘操作和文件管理。
  • MS-DOS 1.25(1982年):引入了对新型硬件的支持。
  • MS-DOS 2.0(1983年):增加了对硬盘和目录结构的支持,改进了文件系统。
  • MS-DOS 2.11(1983年):进一步改善硬件支持和国际化功能。
  • MS-DOS 3.0(1984年):引入了对1.2 MB软盘的支持。
  • MS-DOS 3.1(1984年):添加了对网络功能的支持。
  • MS-DOS 3.2(1986年):增加了对720 KB软盘的支持。
  • MS-DOS 3.3(1987年):提升了对硬盘的支持,扩展了文件系统。
  • MS-DOS 4.0(1988年):首次引入了图形用户界面元素,改进了内存管理和磁盘工具。
  • MS-DOS 4.01(1988年):修复了4.0版本中的一些问题。
  • MS-DOS 5.0(1991年):重大更新,提供了更高的内存利用率,引入了全新的用户界面和高级编辑器。
  • MS-DOS 6.0(1993年):加入了磁盘压缩和杀毒工具。
  • MS-DOS 6.2(1993年):进一步提升了磁盘工具。
  • MS-DOS 6.22(1994年):最后一个广泛使用的版本,增强了稳定性和兼容性。
  • MS-DOS 7.0(1995年):随Windows 95一同发布,不单独发行。
  • MS-DOS 7.1(1997年):支持FAT32文件系统。
  • MS-DOS 8.0(2000年):随Windows ME发布,主要用于启动和安装系统。
早在2018年,微软已经开源了v1.25、v2.0两个版本,本次新增了v4.0版本:
MS-DOS操作系统主要是由汇编语言编写的,虽然是16位实模式时代的汇编,但对程序员们,尤其是在校的大学生们来说,仍然是学习计算机的宝贵学习资料。
比如在这份代码中,有系统启动boot汇编:
有系统调用分发表:
除了系统内核代码,还有很多命令行程序的源代码也在这里:
这里面除了汇编,还有不少用C语言编写的程序,比如查看系统内存使用情况的MEM命令的代码;
PS:发现了一个亮点:
说到开源,其实微软已经不是第一次了,就连Windows操作系统都曾经有开源的版本WRK。
该说不说,微软工程师的代码写得那真叫一个漂亮,不管是WRK还是本次开源的MS-DOS,这里面的代码,不管是设计思想还是代码风格都是我辈程序员学习的榜样。
快来感受一下三十多年前的程序员大佬们的作品吧!
地址:https://github.com/microsoft/MS-DOS
- EOF -
推荐阅读点击标题可跳转
关注「程序员的那些事」加星标,不错过圈内事
点赞和在看就是最大的支持❤️
继续阅读
阅读原文