操作系统的发展历史

第一台计算机没有操作系统。这是因为早期的个人计算机是以某种方式(像机械计算机一样)建造的,它们的性能不足以执行这样的程序。

但在1947年,晶体管发明了,莫里斯·威尔克斯发明的微程序设计方法使计算机不再是机械装置,而是电子产品。简化硬件操作流程的系统管理工具和程序很快出现,并成为操作系统的基础。

到20世纪60年代初,商用计算机制造商已经制造出批处理系统,它可以将作业的构造、调度和执行序列化。此时,制造商为每台不同型号的计算机创建不同的操作系统,因此为一台计算机编写的程序无法移植到其他计算机,即使是同一型号的计算机。

1964年,IBM推出了一系列大型计算机IBM System/360,大型机的经典之作,用途和价格各不相同。而且都共享代号为OS/360的操作系统(而不是每一款产品都用一个量身定制的操作系统)。让单一的操作系统适用于整个系列的产品是System/360成功的关键,事实上IBM大型系统就是这个系统的后代;为System/360编写的应用程序仍然可以在现代IBM机器上执行!

OS/360还包括另一个优势:永久存储设备——硬盘驱动器(IBM称为DASD(直接存取存储设备))的出现。另一个关键是分时理念的建立:将大型计算机的宝贵时间资源合理分配给所有用户。分时也给了用户独占整机的感觉;Multics的分时系统是此时众多新操作系统中最成功的一个。

1963年,奇点公司与贝尔实验室合作建立了PL/I语言的Multics,这是1970年代许多操作系统建立的灵感,尤其是AT & amp;T贝尔实验室的dennis ritchie和ken thompson建立的Unix系统,为了练习平台的可移植性,在1969用C语言重写。市场上广泛使用的另一种小型计算机操作系统是VMS。第一代微型计算机不像大型计算机或小型计算机,没有安装操作系统的需要或能力;他们只需要最基本的操作系统,通常是从rom中读取。这个程序叫做监视器。

在1980年代,家用电脑开始普及。通常这个时候的电脑都是8位处理器加64KB内存,屏幕,键盘,低质扬声器。在80年代初,最著名的计算机套件是Commodore C64,配有微处理器6510(6502芯片的特别版)。这台电脑没有操作系统。而是用8KB只读内存BIOS初始化彩屏、键盘、软驱、打印机。可以直接操作8KB只读存储器BASIC语言的BIOS,并在此基础上编写程序,大部分是游戏。这个基本语言的解释器勉强可以算是这台pc的操作系统。

早期最著名的磁盘引导操作系统是CP/M,它支持许多早期的微型计算机,其功能是由MS-DOS复制的。

最早的IBM PC的架构类似于C64。当然,他们也用BIOS来初始化和抽象硬件的操作,甚至附上一个基本的解释器!但是它的BASIC优于其他公司产品的原因是它具有可移植性,可以兼容任何符合IBM PC架构的机器。这样的PC可以通过Intel-8088处理器(16位寄存器)寻址,它可以拥有高达1MB的内存,但最初只有640KB。软驱取代了过去的磁带机,成为新一代的存储设备,可以在其512KB的空间内读写。为了支持文件读写的进一步概念,磁盘操作系统(DOS)诞生了。这个操作系统可以合并任意数量的扇区,因此它可以在磁盘上放置任意数量和大小的文件。文档通过文件名来区分。IBM不太关心它的DOS,所以它通过从外部公司购买来获得操作系统。

1980年,微软获得了IBM的合同,收购了一家公司生产的操作系统。修改后以MS-DOS的名义生产。这个操作系统可以直接让程序操作BIOS和文件系统。直到Intel-80286处理器时代,才开始实施基本的存储设备保护措施。MS-DOS的架构不能完全满足所有要求,因为它最多只能同时执行一个程序(如果要同时执行程序,只能用TSR跳过OS,让程序自己处理多任务部分),而且没有内存保护措施。对驱动的支持不够完整,导致音响设备必须由程序自己设置的情况,不兼容的情况很多。因此,许多应用程序跳过MS-DOS的服务程序,直接访问硬件设备,以获得更好的性能。即便如此,MS-DOS还是成为了IBM PC上最常用的操作系统(IBM自己也推出了DOS,称为IBM-DOS或PC-DOS)。MS-DOS的成功使微软成为世界上最赚钱的公司之一。

在1980年代,另一个上升的操作系统异常是Mac OS,它与Macintosh紧密相连。施乐帕洛阿尔托研究中心的员工张秀坤·哈根拜访了苹果电脑的史蒂夫·乔布斯,并向他展示了施乐此时开发的图形用户界面。苹果电脑公司对大自然感到惊讶,并打算从施乐公司购买这项技术,但因为帕洛阿尔托研究中心不是一个商业单位,而是一个研究单位,施乐公司拒绝了这笔交易。之后,苹果认同个人电脑的未来一定属于图形用户界面,于是开始开发自己的图形操作系统。现在很多我们认为是基本元素的图形界面技术和规则都是苹果电脑打下的(比如下拉菜单、桌面图标、拖动操作和双击等。).但正确地说,图形用户界面确实是施乐创立的。苹果电脑,苹果电脑的第一代产品。延续80年代的竞争,1990年代出现了很多操作系统,对未来的PC市场产生了深远的影响。随着图形用户界面变得越来越复杂,操作系统的功能变得越来越复杂和庞大,一个健壮和灵活的操作系统已成为迫切需要。这个时代是一个很多个人电脑操作系统打包互相竞争的时代。

最近十年市场崛起的苹果电脑,因为旧系统设计不佳,导致后续发展乏力,决定重新设计操作系统。经过多次失败的项目,苹果在1997年发布了新的操作系统——MacOS的测试版,随后正式版大获成功。让失意离开苹果的乔布斯重新出现。

除了商业主流操作系统之外,BSD系统从1980年代开始也在开源代码世界发展了很长时间,但是在1990年代,由于与AT & T的合作法律纠纷导致了另一个开源操作系统的兴起——Linux,它远在芬兰赫尔辛基大学。Linux内核是标准的POSIX内核,它的血统可以看作是Unix家族的一个分支。Linux和BSD家族都匹配GNU plan开发的应用,但是由于使用许可证和历史因素,Linux在开源操作系统中取得了相当大的市场份额,而BSD则小很多。

与MS-DOS的架构相比,Linux不仅具有令人印象深刻的可移植性(与Linux相比,MS-DOS只能在Intel CPU上运行),而且具有分时多进程内核和良好的内存空间管理(普通进程无法访问内核区的内存)。一个进程想要访问任何不属于自己的内存空间,只能通过系统调用来实现。一般进程都是用户态,但是执行系统调用的时候会切换到内核态,所有特殊指令都只能在内核态执行。这种措施允许内核完美地管理系统的内部和外部设备,并拒绝未经授权的进程发出的请求。因此,理论上,应用程序执行中的任何错误都不会使系统崩溃。

另一方面,微软响应更强大的操作系统的号召,在1993中出现了Windows NT。

从65438年到0983年,微软想为MS-DOS打造一个图形化的操作系统应用,叫Windows(有人说比尔盖茨是受了苹果Lisa电脑上市的刺激)。

最开始Windows不是操作系统,而是应用,后台还是纯MS-DOS系统。这是因为当时的BIOS设计和MS-DOS架构都不是很好。

1990年初,微软和IBM的合作破裂。微软退出了OS/2(早期的命令行模式,后来成为非常成功的图形操作系统)的项目,并于7月27日推出了基于OS/2的图形操作系统Windows NT 3.1,1993。

Windows 95于8月1995推出。

到目前为止,Windows系统仍然是基于MS-DOS的,所以消费者期待微软在2000年推出Windows 2000,因为这是第一个脱离MS-DOS的图形操作系统。

Windows NT系统的架构是:在硬件层次之上,有一个微内核直接接触的硬件抽象层(HAL),不同的驱动以模块的形式挂载在内核上执行。所以微内核可以使用输入输出、文件系统、网络、信息安全机制、虚拟内存等功能。系统服务层为所有的函数调用库提供统一的规范,可以统一所有子系统的实现方法。比如,虽然POSIX和OS/2在同一个服务的名称和调用方法上有很大的不同,但是在系统服务层上可以毫无障碍的实现。系统服务层以上的子系统都是用户态,所以可以防止用户程序执行非法动作。

DOS子系统将每个DOS程序作为一个进程来执行,并用独立的MS-DOS虚拟机来承载它的运行环境。另一个是Windows 3.1 NT模拟系统,实际执行Win32子系统下的Win16程序。因此,实现了安全控制为MS-DOS和早期Windows系统编写的旧程序的能力。但是,这种架构只在Intel 80386处理器和后续型号上实现。而一些可以直接读取硬件的程序,比如大部分Win16游戏都不能应用这个系统,所以很多早期的游戏都不能在Windows NT上执行。

Windows NT有版本3.1.3.5.3.51和4.0。

Windows 2000是Windows NT(实际上是Windows NT 5.0)、Windows XP(Windows NT 5.1)、Windows Server 2003(Windows NT 5.2)、Windows Vista(Windows NT 6.0)、Windows 7(Windows NT 6.1)的改进系列,也是基于Windows NT架构。

这个时代不断增长且更加复杂的嵌入式设备市场也促进了嵌入式操作系统的增长。

大型机和嵌入式系统使用多种操作系统。很多主机为了共享其他平台的资源,开始支持Java和Linux。百家争鸣的嵌入式系统,从伯克利的传感器网络微型操作系统到可以运行微软Office的Windows CE。现代操作系统通常具有所使用的绘图设备的图形用户界面(GUI ),并且附加了不同于键盘的输入设备,例如鼠标或触摸板。旧的OS或者以性能为导向的服务器通常没有这么友好的界面,而是使用命令行界面(CLI)和键盘作为输入设备。以上两个接口实际上都是所谓的shells,其功能是接受和处理用户的指令(比如按下一个按钮或者在命令提示符上键入指令)。

选择要安装的操作系统通常与其硬件架构有很大关系。只有Linux和BSD可以运行在几乎所有的硬件架构上,而Windows NT只移植到DEC Alpha和MIPS Magnum上。在1990年代早期,个人电脑的选择仅限于Windows系列、类Unix系列和Linux,直到今天,Linux和Mac OS X仍是主要的替代选择。

大型机和嵌入式系统使用多种操作系统。在服务器端,Linux、UNIX和WindowsServer占据了大部分市场份额。在超级计算机方面,Linux已经取代Unix成为最大的操作系统。截至2012年6月,基于Linux的超级计算机在世界超级计算机500强中占据了462席,占比92%。随着智能手机的发展,Android和iOS已经成为最受欢迎的两大手机操作系统。

2012年全球智能手机操作系统市场份额变化相对稳定。智能手机操作系统市场一直由几家手机厂商控制,Android的垄断地位主要是因为三星智能手机在全球的巨大成功。2012年第三季度,安卓市场份额高达74.8%,2011年为57.4%。2013第一季度,市场份额持续增长,达到75%。虽然安卓领先,但苹果iOS用户在应用上花费的时间比安卓多。虽然Android在这方面的数量一度接近苹果,但在iPad 3这样的设备发布后,苹果的数量将进一步增长。8.1版本发布后,Windows Phone系统的市场份额稳步上升,应用生态在改善,很多必备应用也在不断更新,但速度还是有点慢。微软收购了诺基亚,发展了很多OEM厂商,不断发布新机型试图扭转WP的不利局面,收效甚微。