2014年3月,微软通过计算机历史博物馆放出了MS-DOS
1.25、2.0两个早期版本的源代码,并讲述了该系统的早年历史,以及相关文章、资源链接。

IT之家9月30日消息微软曾于2014年3月通过计算机历史博物馆开放了MS-DOS
1.25和2.0源代码。28日,微软官方发布博文,再度宣布在GitHub上开源。微软表示,相比起原本的可下载的压缩存档文件,代码在GitHub存储库中更容易易查找、读取和引用。

  • Win 1.0 到 Win 7 Windows 操作系统二十六年-1
  • Win 1.0 到 Win 7 Windows
    操作系统二十六年-2

近日,微软宣布在GitHub上重新开源MS-DOS
1.25、2.0,相比原来的可下载压缩文件更容易查找、阅读和引用。

GitHub地址:点此前往


不过,微软强调,本次开源只为历史参考目的,让那些对早年PC操作系统感兴趣的用户去重新探索和试验,代码不会再做任何改动,大家也不要提出修改请求。

微软在文件中表示,这些源代码的发布可以作为历史参考,也能让对早期PC操作系统感兴趣的人用以探索和实验;源代码将保持静态,因此请不要发送任何进行修改的Pull
Requests。

无论是 Windows、Linux 还是 Mac OS
X,使用计算机的人就会接触到操作系统。尽管原始的计算机是不需要操作系统的,然而现在的大大小小的计算机已经离不开操作系统,实际上,一般人最经常接触到的软件就是操作系统。只要你在运行程序,那么背后就会有一个操作系统在支持。

微软同时透露,MS-DOS
1.25、2.0的所有源代码都是用8086汇编码写的
,其中86-DOS的代码最初完成于1980年12月29日。

微软还提到了一些要点,经IT之家整理如下:

OS,Operating
System(操作系统)是什么?按照一般的定义:操作系统控制和管理计算机系统内各种硬件和软件资源、合理有效地组织计算机系统的工作,为用户提供一个使用方便可扩展的工作环境,从而起到连接计算机和用户的接口作用。操作系统就是通过更好、更方便的方式组织、使用硬件资源,并提供更多的功能和更好的性能。操作系统和硬件紧密结合,由于硬件不停的发展,操作系统也需要不停地发展。

MS-DOS
1.25的代码来自于1983年5月9日(并不是最早的版本),只有7个文件,包括最初的MS-DOS命令行外壳。

MS-DOS 1.25、2.0的所有源代码都是用8086汇编代码编写的。

图片 1
Windows 7,2009年10月22日

MS-DOS
2.0的代码则来自于1983年8月3日,复杂度大大增加,包括大约100个.asm文件。

86-DOS初始版本的源代码可以追溯到1980年12月29日左右。

对于大多数电脑而言,没有操作系统是无法使用的,而个人电脑上最常见的系统就是Windows,为什么Windows如此常见?因为按照定义,操作系统的一个重要作用就是就是给用户提供一个方便使用各种硬件资源的工作环境,以易用性作为主要诉求的Windows系统就符合了这个要求。当然,充分地发挥硬件的作用也是操作系统的任务,从下面Windows的历史当中,我们可以看到Windows的易用性和功能、性能是如何地发展的。

另外,本次开源放出的除了源文件和目标文件,还有一些有趣的.txt、.doc文件,值得一读,其中包括很多代码注释。

MS-DOS
1.25代码的日期是1983年5月9日左右,它只包含7个源文件,包括原始的MS-DOS命令行shell

我们都知道Windows操作系统是Microsoft微软公司的一个产品,一些较老的用户可能还接触过微软的MS-DOS,一个操作系统。在谈到Windows诞生的时候,就不能不谈到DOS,因为一开始的Windows需要DOS才能运行。

图片 2

  • COMMAND.ASM。

图片 3
字符界面:MS-DOS,版本3.30是笔者刚接触电脑时流行的操作系统;1987年发布

  • MS-DOS 1.0发布于1981年7月,来自微软收购的86-DOS(QDOS)版权,是IBM
    PC上的第一个操作系统。

  • MS-DOS 1.25发布于1982年6月,支持双面软盘,并得到了IBM之外更多OEM
    PC的使用。

  • MS-DOS
    2.0发布于1983年3月,是一次重大改版
    ,正式采用了文件配置表格式,并大量使用具有UNIX特性的Handle式文件操作方式。

MS-DOS
2.0可以追溯到1983年8月3日左右,并且在复杂程度方面有相当大的增长,并且包含100个.ASM文件。

MS-DOS的第一个版本——1.0是在1981年配合IBM
PC推出的,当时,市面上的PC都是封闭式的结构,并且市面上具有各种各样的处理器。1978年,IBM打算进入微型计算机市场,到了1980年,它们决定进行一个前无古人的创举:建立一个开放性标准的PC架构,公开了除BIOS之外的全部技术资料,使不同厂商的标准部件可以互换。这个计划被非官方地称为“Manhattan
Project(曼哈顿计划)”。我们知道这个架构将会开创IBM
PC的历史。然而在当年,在硬件准备好了之后,还需要软件搭配。IBM公司同样也希望这个软件规范也是开放型的,8月21日他们决定向微软购买BASIC、FORTRAN、COBOL、Pascal编程软件。IBM当时决定使用Intel
8088作为处理器,而微软的编程语言已经在8086上进行了许多工作,只需要略为改动就可以运行(8088是8086的一个简化版本)。

图片 4

源文件和目标文件穿插着一些有趣的TXT、DOC文件。

图片 5
8088主板,1979年。Intel
8088是以8086为基础的处理器,拥有16位寄存器和8位数据总线。因为采用16位数据总线的8086需要的大资料总线宽度的电路板还是相当地昂贵。8088的prefetch
queue(预取序列)是4个字节,8086是6个字节。8088
的后代包括到现在还在使用的Intel 80188、80288(不再制造或使用)、和80388

(文/开源中国)    

获得16位编程语言之后,IBM还需要一个16位的操作系统,当时8086上流行的操作系统是CP/M-86,而微软当时的操作系统是盖茨发展的一个16位的叫做XENIX的UNIX操作系统。由于种种原因IBM并没有采用CP/M-86,在9月25日,微软和一家叫做Seattle
Computer的公司签约获得无限发布及颁发86-DOS操作系统许可证的能力(Seattle
Computer也可以同样继续发布),随后的1980年11月6日微软和IBM协议,微软将DOS提供给IBM,同时微软和IBM都可以继续开发DOS(但是IBM不可以授权给第三方而微软可以),接着,随着IBM的个人电脑发布(1981年11月12日),MS-DOS(1981年8月)和PC-DOS两条路线就出现了。86-DOS就是这两个操作系统的前身,而86-DOS(Disk
Operating System)之前叫做QDOS(Quick and Dirty Operating
System),由Tim
Patterson在1980年基于部分CP/M部分DEC操作系统开发,并具有一个FAT文件系统来处理外部存储。

随着IBM
PC的成功,拥有DOS就像是拥有一座金矿一样——微软在81年7月买下了86-DOS,不过Seattle
Computer可以继继续随着它们的机器销售86-DOS。

1981年8月发行的Microsoft DOS
1.0由4000行汇编代码组成,可以运行在8KB的内存中。DOS是基于命令行的——直到最后都是如此(但是在后期出现了DOSSHELL这样的类似于图形界面的DOS外壳程序),当时,图形界面(GUI,Graphics
User Interface)已经出现,甚至已经出现了很多年:

图片 6
最早的GUI:Xerox Alto,1973年

最早的GUI源自Xerox施乐内部的研究,不过很奇怪地在很长一段时间内没有得到应用,1979年Steve
Jobs(史蒂夫·乔布斯)在访问Xerox PARC之后回来立即就建立了Apple
Lisa,一个不太成熟也不太成功的GUI系统:

图片 7
软硬捆绑的计算机:Apple Lisa Office System,1983年

  很快Apple Lisa被Macintosh计划代替:

图片 8
Apple Mac OS System 1.0,1984年

然而早在1981年底的时候,盖茨就已经见过Macintosh的原型机了,在1982年的时候盖茨还与Apple协议为Macintosh写一个图形化的表格程序(叫做Multiplan)。盖茨很清楚,图形用户界面(GUI)这种更直观的操作方式显然要比DOS的命令行来得更加友好,并毫无疑问是未来的方向(记得一开始我们说操作系统就是为了更方便地使用电脑么?)。在81年末82年初,盖茨和艾伦(Paul
Allen)决定为IBM PC做一个GUI界面,这个动机就是Windows诞生的由来。

Windows的诞生并不是一帆风顺,在82年初微软打算做一个IBM
PC的GUI之后,在同年秋季的时候,一个图形化的工作环境Lotus
1-2-3出现了,为了节约内存,它并不需要DOS系统而直接操作硬件。微软很明白被人抢先了,于是在1983年宣布11月10日正式宣布他们的GUI程序:Interface
Manager(界面管理器),也就是Windows的前身,实际上,Windows在当时还没有准备好,不过这种预先放风的方式可以吸引到人的注意。

盖茨在DOS上面错过了开发的机会,他不想再错过GUI上面的机会。实际上,在83年6月,微软还为图形界面开发了一个专用的鼠标。为了支持鼠标的应用,在11月,微软还发布了WORD办公软件,可以充分利用鼠标的优势。毫无疑问,关于Windows,或者说界面管理器的种种行为导致了Apple的忧虑,并导致了最终微软和苹果关于开发软件的协议的中止。

图片 9
Microsoft Windows 1.01,1985年11月20日

图片 10
实际上,发布的准确版本是Windows 1.01

  Windows
1.0支持鼠标操纵和多任务操作,Windows(窗口)成为了最基本的界面元素,它可以任意缩放, 并且每个Windows应用程序都有自己独立的菜单。Windows
1.0中的一些经典应用程序,如日历、记事本、计算器等一直保留到现在。

 

图片 11
Windows 1.01,基于MS-DOS2.0;MS-DOS
1.0大致上和买来的86-DOS类似,而MS-DOS 2.0则在1.0基础上进行了大范围的重写

  显然,第一代产品不太成功是很常见的,虽然Microsoft Windows
1.0的设计工作花费了55个开发人员整整一年的时间,不过由于延期,以及IBM本身的抗拒,因此并没有流行起来。其时IBM已经转向了采用Intel
286处理器PC/AT架构,而DOS
2.0并不能完全发挥286的性能。不过无论如何,Windows
1.0总归是一个历史性的产品。 

图片 12
Intel System
310,1985年,当时intel最先进的产品,通过多总线架构集成了一个80286和一个80287协处理器,但是软件发展还没有跟上

由于IBM的抵制,Windows
1.0并没有很快流行起来。或许为了掩盖Windows的兴趣,微软加入了IBM
OS/2操作系统的开发,并将其演变成OS/2的Presentation
Manager显示管理器,然而1987年12月时OS/2
1.0推出的时候并没有附带这个显示管理器,直到OS/2
1.1版本才具有。同样在87年12月9日,微软推出了Windows
2.0,这个系统的后期版本开始基于新的80286/386处理器开发,老的Windows
1.0则基于老的8086/8088处理器。

图片 13
Microsoft Windows 2.0,1987年

  Windows 2.0改进了Windows
1.0中一些不太人性化的地方,同时出现了现在我们非常熟悉的“最大化”和“最小化”按钮,此外在图标的设计上微软还借鉴了Mac
OS的风格和元素,还因此被苹果公司告上法庭。

图片 14
Windows 2.0:最小化与最小化按钮开始出现

  在硬件支持上,Windows开始追赶硬件的发展,很快Windows
2.0出了286和386的特别版本,分别叫做Windows/286和Windows/386,版本2.1。286、386和8086/8088相比有什么改进呢?

  在1982年的80286处理器上,Intel引入了保护模式(Protected
Mode),老的8086模式被称为实模式(Real
Mode)。实模式下只能访问1MB的空间,进入保护模式后访问空间扩大到16MB,80286上每个段的大小被限制为64KB。Windows
2.0x版本使用的是实模式,虽然Windows/286同样基于实模式,不过它开始支持HMA(High
Memory
Area),从而将内存支持从普通实模式的640KB扩展到整个1MB。80286的保护模式没有被Windows/286使用。

图片 15
Microsoft Windows/286,又名Windows 2.1,1988年

到了1985年的80386,Intel在段寄存器的基础上构筑新的保护模式:虚拟8086模式(Virtual
8086
Mode)并完善了80286的保护模式,后者被称为386增强模式。在虚拟8086模式下可以虚拟出多个8086处理器,从而可以真正地同时执行多个实模式程序并对其进行简单的保护。Windows/386利用了这个特性,将每一个应用程序都运行在这个模式下。同时Windows/386还引入了LIM
EMS(Lotus,Intel,Microsoft Expanded Memory
Specification)以利用超过1MB的内存。早期的EMS扩展驱动集成在WIndows/386内,到了次年的MS-DOS
4.01才具有独立的EMM386.SYS版本(1991年MS-DOS
5.0带的EMM386.EXE是进一步改进的版本),EMM386通常和HIMEM.SYS一起使用。

从80286到80386,看起来只是处理器位数的变化,但实质上是处理器体系结构的变化,从寻址方式上说,就是从“实模式”到“保护模式”/“虚拟8086模式”的变化。从80386开始之后的处理器,虽然速度和功能不断提升,然而基本上属于同一种系统结构的改进与加强,而无本质的变化,所以人们把80386以后的处理器统称为IA32(32
Bit Intel
Architecture)。我们后面还会继续讲到80386带来的另一个基础但是深刻的变化。

图片 16
Intel 386处理器进入了PC、工作站和服务器,1985

前两个版本的Windows可以说是一些实验之作,而1990年5月发布的Windows
3.0可以说是一个经过跳跃式的发展的成熟作品。Windows
3.0继续发掘80386处理器的潜力,它支持386增强模式下运行,这个模式支持32位寻址,并开始支持分页功能,分页功能是一个很重要的功能,从386之后,操作系统开始实现了虚拟内存功能。为了兼容之前的应用程序,Windows
3.0仍然是一个16位的操作系统,没有利用到386的32位能力。

在架构上,为了更好地支持从Windows 1.0开始就带来的协同多任务功能,Windows
3.0建立了一个基于虚拟设备驱动(VxD驱动)的驱动模型,这种驱动模型对硬件设备做了抽象,从而允许在不同的程序之间共享硬件资源。在之前的系统中,由于使用的是实模式驱动,配置麻烦并很容易造成冲突。除此之外,多个MS-DOS应用程序现在运行在虚拟8086模式下,从而也实现了真正的多任务运行,在之前的版本中,MS-DOS程序只能全屏运行,并且只有当前的程序是在运行。

图片 17
Microsoft Windows 3.0 1990年5月

图片 18
Windows 3.0界面

随后,1991年秋微软发布了Multimedia
Extensions多媒体扩展,包括了对声卡和CD-ROM两个设备的主要支持。在1982年3月18日发布的Windows
3.1的改进不仅仅是一个0.1的改进,这个版本加入了两个重大的改进,一个是集成了对多媒体扩展的支持,造就了声卡产业;一个是引入可缩放的TrueType字体技术,最终使得Windows成为了重要的桌面出版平台。可以说,到了3.1版本,Windows系统已经非常成熟了,Windows
3.1很快开始流行,得到了广泛的应用。

图片 19
Microsoft Windows 3.1,1992年

接下来,微软又分别在1992年底和1993年底发布了Windows for Workgroups
3.1和Windows for Workgroups
3.11,加入了对网络的支持。接着1992年微软正式进入中国,Windows
3.x逐渐开始在国内流行起来。94年微软还发布了一个Windows
3.2系统,它实际上是一个只有中文版的版本。 

图片 20
Microsoft Windows for Workgroups 3.11,1993年

  • Win 1.0 到 Win 7 Windows 操作系统二十六年-1
  • Win 1.0 到 Win 7 Windows
    操作系统二十六年-2