操作系统历史
操作系统的历史在某种意义上来说也是计算机的历史。操作系统提供对硬件控制的调用和应用程序所必需的功能。
计算机历史 |
---|
1960年代前的计算机硬件 |
1960年代后的计算机硬件 |
苏联计算机硬件历史 |
操作系统 |
软件工程 |
编程语言 |
图形用户界面 |
互联网 |
万维网 |
电脑游戏 |
电脑操作系统提供应用程序必须与最常使用的整套功能,还有控制与同步电脑硬件连结,在第一代电脑里,是没有操作系统的,当时的每一个程式都需要编写完整的硬件驱动,还有他自己对打印机和打孔卡等外部装置的驱动程式,来正确运作与执行指定任务,最终硬件与应用程序复杂性的成长无可避免的创造了操作系统迫切的需求。
背景
早期的电脑没有操作系统。只有单独的机器,操作者会带着记录有程序和数据的卡片(punch card)或较后期的打孔纸带去操作机器。程序读入机器后,机器就开始工作直到程序停止。由于程序难免有误,所以机器通常都会中途崩溃。程序一般通过控制板的开关和状态灯来调试。据说图灵能非常熟练地用这种方法操作曼切斯特1型机器。
后来,机器引入帮助程序输入输出等工作的代码库。这是现代操作系统的起源。然而,机器每次只能执行一件任务。在英国剑桥大学,这些任务的磁带从前是排成一排挂在衣钩上的,衣钩的颜色代表任务的优先级。
概念意义上的操作系统和通俗意义上的操作系统差距越来越大。通俗意义上的操作系统为了方便而把最普通的包和应用程式的集合包括在操作系统内。随着操作系统的发展,一些功能更强的“第二类”操作系统软件也被包括进去。在今天,没有图形界面和各种文件浏览器已经不能称为一个真正的通俗意义上的操作系统了,但事实上,运行在数据中心和伺服器等领域的操作系统往往是没有图形界面的。
大型机时代
早期的操作系统非常多样化,生产商生产出针对各自硬件的系统。每一个操作系统都有很不同的命令模式、操作过程和调试工具,即使它们来自同一个生产商。最能反映这一状况的是,厂家每生产一台新的机器都会配备一套新的操作系统。这种情况一直持续到二十世纪六十年代IBM公司开发了System/360系列机器。尽管这些机器在性能上有明显的差异,但是他们有统一的操作系统——OS/360(在开发OS/360过程中遇到的问题在Fred Brooks写的软件工程经典之作《人月神话》中详细地叙述了)
UNIX操作系统是在 1960 年由AT&T公司的贝尔实验室开发出来的,原本是要用于 PDP-7 ,后来用于 PDP-11。 因为它的早期版本是完全免费的,可以轻易获取并容易修改,所以它得到了广泛的接受。他也成了贝尔实现业系统公司的系统基础,由于他是以 C语言 撰写,当这种语言撰写的程序被移植到另一个架构时,unix 也能移植过去。 这种方便移植的特性,让它成为发展第二代迷你电脑和第一代工作站作业系统的其中一种选项。
由于早期的广泛应用,UNIX 已经成为的操作系统的典范。不过,它始终属于AT&T公司,只有那些能负担的起许可费的企业才用得起,这限制了它的应用范围。早期的操作系统是可以被用户软件所利用的功能的集合。一些有能力的公司发展更好的系统,但他们不支持其他公司硬件的特性。
60年代末70年代初,几种硬件支持相似的或提供端口的软件可在多种系统上运行。早期的系统已经利用微程序来在他们的系统上实现功能。事实上,除了360/165和360/168外,360/40之后的大部分360系列的机器都实行微程式设计。
借由广泛的被大量采用,UNIX 展示了在不同硬件架构上操作系统可以是一致的概念。后来还成 自由软件 与 开源软件 包含 GNU, Linux, BSD 的发展根基。
个人电脑时代:Apple, DOS 和以后
微型处理器的发展使电脑的应用普及至中小企业及个人爱好者。而电脑的普及又推动了硬件组件公共接口的发展(如S-100,SS-50,Apple II,ISA和PCI总线),并逐渐地要求有一种“标准”的操作系统去控制它们。在这些早期的电脑中,主要的操作系统是8080/8085/Z-80 CPU用的CP/M-80,它建立在数码研究公司(Digital Research)先前几个针对PDP-11架构的操作系统的基础上。在此基础上又产生了MS-DOS(或IBM公司的PC-DOS)。这些电脑在ROM(只读存储器)都有一个小小的启动程序,可以把操作系统从磁碟装载到内存。IBM-PC系列的BIOS是这一思想的延伸。自1981年第一台IBM-PC诞生以来,BIOS的功能得到不断地增强。
随着显示装置和处理器成本的降低,很多操作系统都开始提供图形用户界面。如:许多UNIX提供的X Window一类的系统、微软的Windows系统、苹果公司的Mac OS和IBM公司的OS/2等。最初的图形用户界面是由Xerox Palo Alto研究中心70年代初期研发出来的,之后被许多公司模仿,继承发展。