操作系统的起源与发展历程

操作系统的起源与发展历程

1. 打孔卡时代

​ 在计算机发展的早期阶段,"操作系统"的概念还未诞生。当时的计算机是一种非常庞大且复杂的纯机械设备,其运算速度较慢且硬件架构十分复杂,更没有标准的系统开发接口可供程序开发者使用。

​ 19世纪中后期,在工业化、淘金热的推动下,美国成为大量移民者向往的目的地,人口开始急剧增长。到了1890年,当时美国宪法规定国家为了方便配置各种社会资源,每隔10年需要进行一次人口大普查来记录和分析美国各地的人口数据,先前1880年的人口普查用了7年的时间去统计,这意味着人口普查局在休息两年之后就要开始下一次普查了,面临越来越多的人口数据,如果纯粹靠人力来统计的话,预计这次的普查需要13年甚至更久的时间。为了提高普查效率,美国人口普查局开始向全社会招标,希望寻求一种发明能够解决这个问题。恰逢此时,发明了打孔卡片制表机的赫尔曼·荷尔茨(Herman Hollerith)带着一身专利从美国人口普查局挑选的方案中脱颖而出,他借鉴了巴贝奇的发明,设计了一种使用穿孔卡片存储数据的机器。仅仅用了6周时间就得出了准确的数据(62622250人)。荷尔茨的打孔卡片制表机为美国十年一次的人口普查极大的提升了效率。这台机器结构类似于莱布尼兹的乘法器,整体使用机械结构计数,通过电动结构连接其它组件,数据则通过在相应位置打孔来表示,例如,如果卡片的一行代表当前人的性别,就会在指定位置提前打孔。当已经打孔的卡片插入机器时,金属针会穿过打孔位置,探入一小瓶汞中,从而完成电路联通,驱动电机给性别为男或女的齿轮加1。当时,这台机器的速度约为人工统计的10倍,使得美国人口普查在两年半内全部完成。荷尔茨敏锐的嗅到其中的商机,于1896年成立了CTR(Computing Tabulating Recording,计算列表纪录公司)。他的发明为计算机发展史留下了浓墨重彩的一笔,同时也为现代计算机技术的诞生奠定了基础。

​ 所以当时最早期的 “程序员” 编写程序时需要手工将运算的信息打孔在卡纸上,再将打好的卡纸放入卡纸阅读机中读取计算,如果卡纸上某个地方打错,就需要进行重新打孔。非但如此,在当时计算机是非常稀有的东西,普及程度低,只有在军事或者学术研究方面的人才能接触到,使用时排队和等待运算就耗去了许多时间,这一时期的计算机运算速度受限于人工操作,机器的利用率并不充分。

​ 随着制造工艺以及电子技术的发展,计算机开始由机械向电子方向进行转变,由于是借助于电子硬件进行工作,因此计算机主体需要通过成千上万根电缆接到插件板上连成电路来控制机器的基本功能,在这一阶段的“程序员”需要人工扳动多个开关将运算的数据输入到计算机中,整个过程既繁琐又麻烦,而且电子管也经常烧坏。于是人们开始寻找新的方式来取代这一过程。

2. 监督程序时代

​ 时间来到1950年前后,随着晶体管与集成电路时代的到来,计算机的体积开始缩小,功能也开始逐步完善,存储能力越来越强,其运算速度也越来越快,人工操作与计算机之间的 速度差距 开始慢慢扩大,“人机矛盾”的问题开始出现,手工操作已无法充分发挥日益强大的计算机能力,唯一的解决办法就是取代人工操作,让计算机自行实现相关作业的自动处理。在此期间,出生于匈牙利的美国籍犹太人数学家、理论计算机科学与博弈论奠基者约翰·冯·诺依曼(John von Neumann)提出计算机的基本原理:存储程序和程序控制,并将计算机从逻辑结构划分为【运算器(ALU),控制器(CU),存储器,输入设备,输出设备】五大部件,这一理论为计算机科学的发展奠定了坚实基础,也为后续操作系统的萌芽打上了灵魂的烙印,为了让计算机能够自动成批的处理一个或多个用户的作业,人们便想到了是不是可以在计算机中加载一个系统监督软件,在它的控制下让计算机能够自动成批处理一个或多个用户的作业,因此,单道批处理系统应运而生,操作系统的概念也由此萌芽。

​ 随着单道批处理系统的广泛应用,人们逐渐发现了新的问题。在单道批处理系统中,用户需要将预处理的作业通过输入机存储到磁带中,然后由批处理程序控制主机读取磁带进行运算。运算完毕后,由输出机将结果保存到磁带并进行输出。在完成一批作业后,再重复进行下一批作业。然而,在这个过程中,输入输出操作往往需要花费大量时间,而主机在这段时间内处于空闲状态,不仅浪费了资源,还一直在耗能。为了提高主机在空闲状态下的利用率,人们在其中加入了多个磁带,以减少输入输出操作所占用的时间。同时,监督程序也得到了进一步的改进,允许多个作业同时进入计算机系统。当计算机在进行输入或输出操作导致主机处于空闲状态时,监督程序会让另一个作业开始运行,从而形成了多道批处理系统。

​ 1960年,此时的计算机技术已经可以将处理器、主存储器、输入输出接口(I/O)三者各自运行的时间分成很短的时间片进行切换性工作,由于这些时间片非常短,几乎可以忽略不计,在这一背景下,麻省理工学院 (MIT) 开发了兼容分时系统 (Compatible Time Sharing System),这一系统可以让多个终端机(Terminal)连接到一台大型主机进行联机运算。这些终端机仅具备输入输出功能,而具体的运算能力则集中在主机上。计算完的结果会从主机响应并传输到请求的终端机上。这样一来,一台主机就可以同时为多个用户使用,实现了多用户多任务的操作系统。然而,在当时的技术条件下,较为先进的主机也只能带动约30个终端机。

​ 1965年,为了让大型主机可以带动300个以上的终端机,由贝尔实验室(Bell)、麻省理工学院(MIT)、通用电气公司(GE)共同发起了Multics(MULTiplexed Information and Computing System)计划,这一计划的目标是开发一种高度可扩展的分时系统,以满足不断增长的用户需求。但是这个项目在1969年由于目标设定过高,设计越来越复杂,最终导致资金短缺、进度落后而宣告失败。

3. 操作系统时代

Unix

​ 在原本参与Multics计划的人员中,贝尔实验室的一位研究员肯 • 汤普逊(Ken Thompson)希望开发一个小巧的操作系统,满足自己可以重新运行原本编写在Multics上的"星际旅行(Space Travel)" 游戏的需求,于是在1969年8月份趁着自己妻子休假回娘家探亲时,独自在实验室内找到一部没人使用的DEC公司出品的 PDP-7 主机,采用汇编语言 (Assembly Language) 在一个月内写出了一个简化版的Multics,并在上面成功运行了他的"Space Travel"游戏,其中还编写了一些核心工具,例如:进程、设备文件、命令行解释器和一个小型文件系统(File Server System)等。后来,由于汤普逊写的这个系统非常好用,开始在贝尔实验室内部广为流传,并且他的同事们还可以根据自身的需求修改源代码进行改版发布,由于是以 "Multics "(多样性的含义)为基础将其进行简化,所以他的同事们称这个系统为 “Unics”(唯一的含义) ,这就是 Unix 的原型。

它有两个重要的概念

1. 所有程序或系统装置都是文件
2. 不管构建编辑器还是附属文件,程序只有一个目的,有效完成相应的目标

​ 1970年,汤普逊嫌弃汇编语言与硬件平台关联紧密,每次硬件变更都需要重新编写代码来移植系统,并且他觉得Unix需要一个容易理解的编程语言去开发相应的程序,由于当时贝尔实验室的计算机不支持麻省理工学院开发的BCPL语言编译器,于是他以 BCPL 语言为基础设计出相对简单的B语言,并且用B语言编写出了第一个Unix系统(顺带一提,他也是正则表达式、UTF-8编码、Go语言的设计者之一)。

​ 1973年,由于B语言依然存在系统移植与性能原因,不能够兼容不同架构设计的处理器,汤普逊的同事丹尼斯•里奇(Dennis Ritchie)开始将B语言进行改造,以B语言为基础重新设计了一门语言,在命名时为了致敬先行者,又是以B语言为基础,所以取了BCPL下一个字母,正巧在英文字母表中B后面的字母也是它——C语言诞生,后来两人用C语言重新编写了Unix系统,并发行出Unix的第一个正式版本,得益于C语言强大的移植性,Unix操作系统就可以兼容不同的机器。后来两人于1983年获得图灵奖。

​ 当时的贝尔实验室隶属于AT&T,AT&T在之前为了避免违反美国的《反垄断法》而签订了不进入计算机行业、不销售任何与计算机相关产品的协议,并且贝尔实验室当时正忙于其它商业活动,所以对于此时的 Unix 采取较为开放的态度,并且C语言本身是具有可移植性的,也就是说只要取得Unix的源代码,就可以将其移植到任何一台主机上。

​ 后来AT&T在美国政府的推动下开始与学术界合作,将Unix源码以免费授权的形式给学术机构研究和教学使用,1975年,汤普逊在休假时间回到了他的母校加州大学伯克利分校,当时柏克利大学的一位研究生比尔·乔伊(Bill Joy)(后来 Sun 公司创始人)在学校中成立了一个伯克利系统研究小组(Berkeley System Research Group),专门负责研究Unix,改进功能、修复Bug,并在上面增加了很多工具软件与编译程序,于是他们一起在那里维护了一个Unix版本,称为伯克利软件套件(Berkeley Software Distribution),简写为BSD,成为Unix一个很重要的分支,后来比尔乔伊成立了Sun公司,以BSD为核心发展Unix商业版本Solaris,再后来又改版出可以安装在x86硬件架构上的FreeBSD。

​ 由于Unix前期没有版权纠纷与其高度的可移植性与强大的效能,商业公司纷纷开始推出自家主机搭配的Unix系统,例如AT&T的原生Unix称为System v. x,IBM的AIX,HP的HP-UX等。因为操作系统的内核必须要搭配硬件才能工作,此时各硬件公司之间也没有所谓的协议,所以他们需要根据自家公司的硬件开发合适的Unix系统的,也就是说各大公司开发出的Unix只能支持自家的硬件。那时的学术机构和黑客们都在自由地共享源码,以分散的方式共同合作开发 Unix。这为后来的自由和开源软件的意识形态和社区诞生过程中起到了奠基性的作用。

​ 此时AT&T看中了Unix的商业价值,想要将Unix的版权收回,于是在1979年发行的第七版Unix版权声明中特别提出了不可对学生提供源码的严格限制,同时也引爆了很多的商业纠纷。

​ 1984年,AT&T 的限制法令被解除,但当时授权过的 Unix 的源码依然可以使用,但 AT&T 嗅到了操作系统的商机,将 Unix 从研究性质的项目转变为一个商业项目,这使得当时的 Unix 社区里的黑客们产生了危机,开始寻找一个可替代的 Unix系统的类Unix系统(也称为Unix Like)。

Minix

​ 由于AT&T 开始将Unix源码私有化,如何教导学生认识Unix成为荷兰阿姆斯特丹自由大学的教授 安德鲁·斯图尔特·塔能鲍姆(Andrew S·Tanenbaum)伤脑筋的问题,于是为了完成自己的教学任务并避免版权纷争,塔能鲍姆于1984-1986年在不使用任何Unix源码的情况下自己动手编写了一个基于x86架构个类Unix系统的核心程序称为Minix(译为小型的Unix),并于1987年出版了Minix的相关书籍,Minix系统并不是免费的,需要购买磁盘或磁带,但是很便宜。由于Minix开发者只有塔能鲍姆一个人,并且他认为Minix主要用于教育用途,点到为止即可,表示不会再进行继续开发。

GNU计划

理查德·马修·斯托曼(Richard Mathew Stallman)原本使用的是麻省理工学院开发的Lisp操作系统,但是后来由于实验室硬件更换导致无法使用,对于一个想要成立开放团体的他来说Lisp系统分明是一个阻碍,于是他开始接触到Unix系统,并进行软件移植。斯托曼认为写程序最大的乐趣就是自己的软件可以分享给大家使用,既然每个人所使用的计算机软硬件不同,那么程序的源码就应该是公开的,这样就方便大家修改调试后可以用于自身的计算机,那么同样该程序也会越来越壮大,越来越优秀,这一理念后来便被称为开源(Open Source)。

​ 1984年,由于Unix的版权问题,斯托曼发起了GNU计划 ,全名为GNU’s Not Unix,旨在建立一个自由开放的Unix操作系统,但是一个人想要单独建立一个操作系统实在是太困难,于是他决定先模仿市面上现有的专利软件,将它们进行重新编写成可以运行在Unix上的程序。但是无论什么软件都要使用编译器编译为二进制文件后计算机才能够执行,当时的C语言编译器也是专利软件,于是他靠着将Emacs编辑器(Editor)移植到Unix后以磁带售卖的方式赚钱,成立了自由软件基金会(Free Software Foundation),聘请了工程师一起编写出GNU C编译器、C函数库 (GNU C Library) 以及操作系统基本接口Bash Shell,也就是现如今的GCC编译器。

​ 1985年,斯托曼为了防止GNU所开发的自由软件被他人所利用从而成为专利软件,与律师共同起草了通用公共许可证(General Public License , GPL),GPL允许商业行为,但其自身是开源的自由软件,贩卖销售的大多数是配套的服务和二次开发后的软件。通过这些努力,斯托曼和自由软件基金会为开源软件的发展和推广做出了重要贡献。他们的工作促使了自由软件运动的兴起,推动了开源软件的普及和使用。

GPL授权的软件特色如下:

1. 取得软件与源码
2. 复制该软件
3. 修改过的程序代码回馈给社群
4. 对软件源码进行修改后再度发行,保证不会与原始撰写者冲突
5. 不可将修改后的程序取消GPL授权
6. 不能单纯贩卖自由软件,但可搭配相应手册或者后续服务

​ 尽管如此,斯托曼对于GNU计划的最初构想是建立一个自由开放的Unix操作系统,但苦于没有自由的Unix核心存在,所以这些软件还是只能运行在有专利的Unix平台上。这种情况一直到Linux的出现。

Linux

林纳斯·托瓦兹(Linus Torvalds)的外祖父是赫尔辛基大学的统计学家,为了让自己的小孙子能够学点东西,从小就将托瓦兹带到身边来管理一些微计算机。 在这个时期,他开始接触汇编语言。到了1988年,托瓦兹顺利进入赫尔辛基大学选读计算机科学。在就学期间,托瓦兹接触到了Unix操作系统。当时整个赫尔辛基大学只有一台主机安装了Unix系统,仅提供16个终端机供用户使用。再后来,Unix又因版权问题陷入风波,为此,他不禁想到: 『我为何不自己搞一个Unix来玩?』

​ 不久之后,他知道了有一个类 Unix 系统,并且还可以完全兼容Intel 386机器,就是塔能鲍姆教授为了教学需要而撰写的Minix系统!但是Minix只允许用于教学使用而不允许用于商业,且后续不再更新,于是他贷款买了一部Intel的386计算机,参考Minix的设计理念和教科书上的程序代码,使用GNU计划提供的Bash工作环境软件以及gcc编译程序等自由软件,编写出一个核心程序与386计算机紧紧的结合在一起——Linux内核。

​ 他希望这个程序可以获得大家的一些修改建议,于是便将这个核心程序放在网络上供大家下载查看,同时在BBS上面贴了一则消息说:“我完成了一个小小的操作系统,这个核心程序是用在Intel 386机器上的, 仅仅是为了好玩,并不是想要做一个跟GNU一样大的计划! 另外,希望能够得到更多人的建议与回馈来发展这个操作系统!” 这则新闻很快引起当时计算机爱好者们的关注,他们也去托瓦兹提供的网站上下载了这个核心来安装。因为托瓦兹放置核心的那个FTP网站的目录名叫做Linux,大家便称这个核心为Linux了。

​ 同时,托瓦兹开始将一些能够在Unix上面运作的软件拿来在Linux上面跑。 不过,他发现到有很多的软件无法在Linux这个核心上运作。为了让所有的软件都可以在Linux上执行,他有两种作法, 一种是修改软件,让该软件可以在Linux上跑, 另一种则是修改Linux,让Linux符合软件能够运作的规范!于是托瓦兹为了让Linux系统能够兼容Unix系统, 选择了『修改Linux』! 于是托瓦兹开始参考标准的便携式操作系统接口规范 POSIX(Portable Operating System Interface) 对Linux进行了修改。

​ 由于Linux的核心是开源的,当时的程序员很容易就能跟随Linux的原本设计架构写出兼容的驱动程序或者软件。托瓦兹将写好的驱动程序载入核心中, 只要测试可以运行,并且没什么大问题,那么他就会将大家写的程序代码加入到核心中,为了应对随时都有程序代码加入的状况,Linux逐渐将功能模块化,将某些功能独立于核心之外,在需要的时候才加载到核心中。 如果有新的硬件驱动程序或者其他协议的程序代码进来时,不用将内核进行重新编译,大大的增加了Linux核心的可维护性。

​ 后来,因为Linux内核程序加入了太多的功能,光靠托瓦兹一个人进行测试合并实在太费劲,于是就有很多的朋友出来协助帮忙完成这件事,例如考克斯(Alan Cox)崔迪(Stephen Tweedie)等等, 这些重要的副手们会先将来自外部的修补程序或者新功能代码进行测试,并且将结果传给托瓦兹看,让他选择核心中是否加入这些代码,特别值得注意的是,这些托瓦兹的副手们,包括自愿编写修补程序的程序员们,大多数其实彼此都没有见过面,而且分散在地球的各个角落,但是大家为了一个梦想群策群力,通过互联网共同发展出如今的Linux,为了虚拟团队数据的传输,于是Linux便成立了官方的核心网站: http://www.kernel.org

​ 1994年,他们终于完成的Linux的核心正式版——Version 1.0。 这一版还加入了X Window System的支持。此外,Linux的标志和吉祥物是一只叫做Tux的企鹅,是因为托瓦兹小时候去动物园的时候被企鹅咬了一口。还有一种说法是,企鹅代表南极,而南极又是全世界所共有的一块陆地,这也就代表Linux是所有人的Linux。

Linux的核心版本编号:2.6.18-92.el5 主版本.次版本.释出版本-修改版本

主、次版本为奇数:发展中版本(development)
如2.5.xx,这种核心版本主要用在测试与发展新功能,所以通常这种版本仅有核心开发工程师会使用。 如果有新增的核心程序代码,会加到这种版本当中,等到众多工程师测试没问题后,才加入下一版的稳定核心中;

主、次版本为偶数:稳定版本(stable)
如2.6.xx,等到核心功能发展成熟后会加到这类的版本中,主要用在一般家庭计算机以及企业版本中。 重点在于提供使用者一个相对稳定的Linux作业环境平台。

​ Linux其实就是一个操作系统最底层的核心及其提供的核心工具。 他是GNU GPL授权模式,所以,任何人均可取得原始码与可执行这个核心程序,并且可以修改。 此外,因为Linux参考POSIX设计规范,于是兼容于Unix操作系统,故亦可称之为Unix Like的一种。

​ Linux的出现让GNU计划中缺失的灵魂得到补充,也让斯托曼放下了心里的一块大石头,因为GNU计划一直以来就是缺乏了核心程序, 导致他们的GNU自由软件只能在其他的Unix上面跑。既然目前有Linux出现了,且 Linux也用了很多的GNU相关软件,所以斯托曼认为Linux的全名应该称之为GNU/Linux!于是斯托曼和GNU社区与Linux开发者合作,将GNU软件与Linux内核结合起来,形成了现代的GNU/Linux操作系统。

​ 为了让用户能够更便捷的接触和使用到Linux,很多的商业公司或非营利团体就将Linux 内核与可运行的软件整合起来,并编写添加了很多具有创意的工具程序, 这个工具程序可以让用户通过光盘/DVD或者网络直接安装管理Linux系统。通过这种方式,Linux的推广和普及变得更加容易,用户可以更简单地体验到开源操作系统的优势。这个『Kernel + Softwares + Tools』的可完全安装体系被称之为Linux套件 (Linux Distribution),一般中文翻译成可完全安装套件,或者Linux发布商套件等。由于GNU的GPL授权可以进行商业行为,于是很多商业公司便销售他们自身重新开发优化过的 Linux Distribution,例如Red Hat,、Debian、Ubuntu、SuSE、 Fedora 等等每个Linux Distributions使用的核心都是从http://www.kernel.org所获得的,而他们所选择的软件几乎都是目前很知名的软件,重复性相当的高, 例如网页服务器的Apache,电子邮件服务器的Postfix/sendmail,文件服务器的Samba等等。

​ 此外,为了让所有的Linux distributions开发差异不致于太大,让开发者开发的时候有所依据,于是推出了Linux Standard Base (LSB)、目录架构的File system Hierarchy Standard (FHS)等标准来规范开发者,这些标准帮助开发者遵循统一的规范,使得各个发行版在架构和功能上保持一致。

现如今Distributions主要分为两大类,一种是使用RPM(Red Hat Package Manager)方式安装软件的系统,包括Red Hat, Fedora, SuSE等都是这类,另 一种则是使用Debian的dpkg方式安装软件的系统,包括Debian, Ubuntu, B2D等等。

​ 后来Linux因对硬件的需求较低、架构开放、系统稳定性及保密性功能强大,最关键是完全免费,所以造成了一些所谓的『反微软联盟』程序设计高手不断的推进开发,以与微软进行抗衡!

Windows

​ 1971年,此时小型计算机刚刚开始流行,英特尔发布了世界上第一款商用微处理器Intel 4004,从而催生了微型计算机的诞生。

​ 1973年,英特尔发布第二款微处理器 8008 和第三款微处理器 8080,当时担任英特尔顾问的美国海军计算机教师、计算机博士加里 · 基尔代尔 (Gary · Kildall) 开发出了世界上第一个面向微处理器的高级编程语言PL/M,随后,他又创造出世界上第一个微型计算机操作系统 CP/M,但在当时英特尔只选择推广PL/M编程语言,并不看好CP/M操作系统,因为那时Unix系统已经成为程序员们的无冕之王,只不过介于英特尔制造的硬件甚是丑陋,没人愿意去将Unix运行在上面而已,并且当时Unix对计算机性能要求较高,并不屑于在个人微型计算机上面运行,甚至包括基尔代尔本人也没有看到他编写的CP/M操作系统对微型个人计算机未来的发展前景的影响。

​ 1974年,微型仪器和遥测系统公司(MITS)发布了第一台商用个人微型计算机 Altair 8800,随着微型计算机的流行以及其它公司相关产品的出现,基尔代尔与妻子成立星系数字公司,后改名为数字研究公司(Digital Research),CP/M操作系统开始在行业内流行开来。

​ 1980年,IBM公司敏锐的嗅到了个人电脑的商业发展前景,于是由唐·埃斯特里奇(Don Estridge)负责领导建立以“国际象棋”为代号的项目,目标是开发一款面向个人的微型计算机操作系统,于是他们找到了当时担任全美联合劝募协会执行理事会主席玛丽·麦克斯韦尔·盖茨 (Mary Maxwell Gates)儿子的公司——微软,当然还有一个原因是因为此前微软推出过一款硬件产品,名为Z-80 SoftCard,它可以让CP/M操作系统在Apple II上运行,所以IBM的人认为微软拥有CP/M操作系统,但在当时比尔盖茨并不看好操作系统,他认为编程语言才是未来的摇钱树,所以他向IBM的人提出希望可以使用他们开发的Basic语言来编写程序,加上当时的CP/M几乎已经成为了市场标准,于是便向IBM推荐了基尔代尔,因有与IBM签订的保密协议在先,所以比尔盖茨只是跟基尔代尔说“有人来看你了。好好对待他们,他们是重要的人”。但当IBM找上基尔代尔时,他却坐直升机出门了,还有一种说法是IBM的人一见面就让基尔代尔签订保密协议,并且只想按单台授权买,所以DR与IBM的合作不欢而散。

​ 没有办法的IBM再次找上了微软,这次比尔盖茨找上了一家西雅图计算机的公司,因为这家公司当时购买了CP/M操作系统,但是因为软件交货延期影响销售,于是这家公司有一个叫做蒂姆·帕特森(Tim Paterson)的24岁程序员花了四个月的时间自己开发出了QDOS(Quick and Dirty Operating System)译为快速和肮脏的操作系统,后来觉得不好听改名为86-DOS即磁盘操作系统(Disk Operating System),但其本质就是抄袭CP/M,于是比尔盖茨买下这款操作系统的授权,甚至将帕特森挖到了微软,经过一番魔改后将其改名为IBM PC DOS ,交给了IBM。由于当时软件版权法律不健全,基尔代尔在法律方面也无可奈何,只有全力抗议。

​ 最终IBM选择了 Intel 的芯片,Microsoft 的IBM PC DOS的解决方案,产品面世后在短时间内迅速占领了市场,为了更快进行商业扩张,让不同硬件厂商都可以为IBM生产外部设备,并能让这些部件遵循一套标准方便互相更换,IBM做出了一个改变了个人计算机发展史的决定,开放了除BIOS外的全部技术资料,从而形成了个人计算机的“开放标准”。但是令IBM没想到的是,其他厂商还是逆向出了他们的BIOS程序,进行删改后出现了各种版本,这样硬件厂商就可以自己组装电脑从而兼容IBM PC DOS操作系统,于是市面上就出现了IBM PC DOS兼容机,由于IBM PC DOS是以买断形式一次性卖给IBM的,于是微软为了兼容机的市场,将IBM PC DOS进行删改,于1981年重新命名为MS-DOS发布,这样每卖出一台配备MS-DOS操作系统的计算机,微软都能拿到一份版权费。再后来,MS-DOS不断更新迭代,推出了MS-DOS 2.0MS-DOS 3.0MS-DOS 4.0,一直到2000年的MS-DOS 8.0版本。

4. 操作系统的图形用户界面(GUI)

​ 1968年,道格拉斯·恩格尔巴特在 SRI(Stenford Research Institute)开发了 OLS 在线系统,并在ACM/IEEE会议上对整个计算机软硬件系统进行了展示,包括窗口、超文本、图形、导航、命令窗口、视频会议、文字处理、协同办公、版本控制等,并首次演示滑动鼠标作为交互界面媒介,这一演示也被后人成为“所有演示之母”。

​ 美国施乐公司创建于1906年是一家具有悠久的历史,是复印技术的发明公司。施乐公司在1970年成立了为数字领域创想提供成长环境的帕洛阿尔托研究中心(The Xerox PARC,Xerox Palo Alto Research Center )

​ 1973年,施乐的工程师们基于Unix系统发明了世界上第一台运行图形化用户界面操作系统的微型电脑和可以点击操作的鼠标,那台电脑取名为Alto(阿尔托),目的是将桌面图形的概念应用到屏幕上,屏幕上有很多的文件和文件夹,用户可以使用鼠标点击自己想要使用的内容,从而替代电脑屏幕上那些多一眼看一眼大脑就会爆炸的命令行和DOS提示符,但是当时施乐的领导们觉得这东西有图形化界面,一旦售卖就没人会再买他们的打印机了,所以决定弃之不用。

​ 1979年12月,史蒂夫·乔布斯(Stephen Jobs)参观了施乐PARC的技术成果——“图形界面和位图显示屏幕”,这件事后来被称为工业史上最严重的抢劫行为之一,苹果工程师设计出的界面可以任意拖拽窗口和文件,调整窗口大小,添加漂亮的图标与位于窗口顶端的下拉菜单,双击鼠标打开文件或文件夹,将桌面的虚拟的概念转化为现实。但是知道了这个消息的比尔·盖茨人麻了,有了图形化界面,谁特么还去买我的MS-DOS系统呢?于是比尔盖茨以为苹果公司的操作系统开发软件为由,偷偷的回去秘密研究,并将研究出的系统改名为Windows。

​ 尽管仿制了图形化界面,但是刚开始的Windows依然是基于DOS的,由于DOS是单用户单任务的,资源管理机制很拙劣所以初期动不动就蓝屏。所以比尔盖茨将DEC公司VAX中做专用系统的Vms团队招了过来,DEC公司生产的两个系列的小型机(PDP系列与VAX系列)因为Unix的流行,没人再用他们专用的Vms系统,于是Vms团队在这个专用系统上修修补补,成为了Windows NT,意为New Technology,虽然问题依旧很多,但是可比之前的Windows 95/98强多了。

​ 微软与苹果走了两条不同的路,一个卖系统授权许可证保障各种兼容机使用,而另一个是将系统绑定搭配在自己的硬件上捆绑售卖。而另一边,在微软和苹果不断壮大之际,贝尔实验室和BSD之间的版权纠纷仍然在进行,在看到两位后来者赚的盆满钵满后,贝尔实验室索性不再纠结Unix的版权问题,而是告诉BSD把其中Unix的代码通通移除,爱怎地怎地的吧,我也没那闲工夫再告你了,由于BSD的开源特性,衍生出了很多的分支,其中很多到现在依然在使用。

​ 1981年,施乐公司在看了他们两位的拉扯后,决定亲自出山,“我等原教旨祖师爷即将出手,尔等抄袭忤逆之辈何不速速下跪?”抱着这个想法,施乐公司推出了运行图形界面的施乐之星(Xerox Star)。人们在拿到这台机器体验了一把后,发现这台图形化电脑虽然运行起来卡,但是他卖的也贵啊,所以,在这样的风评下祖师爷的老车刚起步就成功爆缸了。

​ 1984年,类Unix一方为了满足图形用户界面 (Graphical User Interface , GUI) 的需求,由麻省理工学院与其它厂商联合发表了X Window System,并于1988年成立了非营利性组织 XFree86。1997年,KDE和GNOME两大开源桌面项目启动,由于Linux早期都是由计算机程序工程师所发展的,对于窗口图形化界面并没有很需要,所以造成了Linux对普通用户不亲和的印象。为了强化桌面计算机的使用率,Linux开始与X Window System结合,自1994年Linux 1.0版本起,X Window System便成为其中的一部分,经过众多开发者的努力,它们之间的整合程度已经非常高。需要强调的是,X Window System仅仅是Linux上的一套软件,而非核心部分。因此,即使它出现问题,也不会对Linux的核心功能产生直接影响。此外,当时主要的显卡公司(如Intel、NVIDIA、ATI(当时还没被AMD收购)等)也为Linux提供了最新的驱动程序,使得Linux的图形用户界面得到了显著改善。后来,Linux又可以加载KDE(http://www.kde.org/)和GNOME(http://www.gnome.org/) 但在实际使用中,这些图形界面更加依赖显卡和内存资源,虽然Linux的图形界面在用户体验上已经取得了很大的进步,但直到如今,类Unix一方图形界面的发展在整体市场相比下仍处于两大巨头之下。

​ 后来,操作系统的发展经过历史的沉淀后开始进入稳定阶段,百家争鸣的时代彻底结束,三分天下的时代到来。如同历史长河中的浪潮,每一个操作系统都是时代的产物,承载着人类智慧和技术的结晶。而正是在这不断变迁的浪潮中,我们见证了Unix的伟大,也见证了操作系统的繁荣与辉煌。如今市场上比较熟知的操作系统有Mac OS、Windows、Ubuntu、RedHat、CentOS等,它们各具特色,却无一例外地继承了Unix的理念和精髓。在这样的背景下,我们不禁思考:操作系统发展的历程,是科技与文明的交融,更是人类智慧不断迸发的见证。愿未来,操作系统将会继续引领着科技的潮流,成为连接人与世界的桥梁,书写着数字时代的壮丽篇章。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
操作系统 李治军 pdf》是一本由作者李治军撰写的关于操作系统的书籍的电子版PDF文件。操作系统是计算机系统中的一个核心组成部分,它负责管理和控制计算机的硬件和软件资源,使得计算机能够高效地运行各种应用程序。 在这本书中,李治军详细介绍了操作系统的基本概念、原理和设计原则。他从操作系统起源发展历程出发,讲解了多道、分时和实时操作系统等不同类型的操作系统,并深入解析了其内核结构和功能。此外,书中还讨论了进程管理、内存管理、文件系统、输入输出控制等重要的操作系统主题,为读者提供了全面了解和深入学习的机会。 这本书的PDF版本使得读者可以更加便捷地获取其中的内容,无论是在电脑、平板还是手机上都可以进行阅读。通过阅读这本书,读者可以深入了解操作系统的基本原理和相关技术,有助于他们提升对计算机系统的理解和应用。对于学习计算机科学或相关专业的学生和从事软件开发工作的技术人员来说,这本书是一本宝贵的参考资料。 总之,《操作系统 李治军 pdf》是一本全面介绍操作系统的书籍的电子版PDF文件,读者可以通过阅读它来深入了解操作系统的原理和技术。这本书的出现为学习和研究操作系统提供了便利,对于对计算机系统有兴趣的人士来说是一本值得阅读的优秀教材。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天宇龙腾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值