操作系统实战之操作系统不是一天造成的

  说起操作系统,大家脑海中最先闪现的可能是windows,linux等现在流行的操作系统,并且很多初学者与外行人也只是局限在那精美的图形界面上,而对于更多深层次的东西却知之甚少。今天我们就来讲讲关于操作系统的那些事儿。

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

以铜为鉴,可正衣冠;以古为鉴,可知兴替;以人为鉴,可明得失。
                                             ——唐太宗

1. 20世纪80年代以前

  第一部个人电脑并没有操作系统,这是由于早期个人电脑的建立方式(如同建造机械算盘)与效能不足以执行如此程序。

  1947年,随着晶体管的发明以及莫里斯•威尔克斯(Maurice Vincent Wilkes)发明的微程序方法,使得电脑不再是机械设备,而成为电子产品。系统管理工具以及简化硬件操作流程的程序很快就出现了,且成为操作系统的基础。

  20世纪60年代早期,商用电脑制造商制造了批次处理系统,此系统将工作的建置、调度以及执行序列化。此时,厂商为每一台不同型号的电脑创造不同的操作系统,因此为某电脑而写的程序无法移植到 其他电脑上执行,即使是同型号的电脑也不行。

  1964年,IBM推出了一系列用途与价位都不同 的大型电脑IBM System/360,这是火型主机的经典之作。而它们都共享代号为OS/360的操作系统。让单一操作系统适 用于整个系列的产品是System/360成功的关键,且实际上IBM R前的人型系统便是此系统的后裔,为 System/360所写的应用程序依然可以在现代的IBM 机器上执行。

  1965年时,贝尔实验室(Bell Labs)加入一项由奇异电子(General Electric)和麻省理工学院(MIT)合作的计划;该计划要建立一套多使用者、多任务、多层次(multi-user、multi- processor、multi-level)的MULTICS操作系统。直到1969年,因MULTICS计划的工作进度太慢,该计划就被停了下来。当时,Ken Thompson(后被称为Unix之父)已经有一个称为「星际旅行」的程序在GE-635的机器上跑,但是反应非常的慢,正巧也被他发现了一部被闲置的PDP-7(Digital的主机),Ken Thompson和Dernis Ritchie就将「星际旅行」的程序移植到PDP-7上。而这部PDP-7就此在整个计算机历史上留下了芳名。

  MULTICS 其实是”MULTiplexed Information and Computing System”的缩写,在1970年时,那部PDP-7却只能支持两个使用者,当时,Brian Kernighan 就开玩笑地戏称他们的系统其实是:”UNiplexed Information and Computing System”,缩写为”UNICS”,后来,大家取其谐音,就称其为”Unix”了。1970年可称为是Unix元年
  
2. 20世纪80年代

  第一代微型计算机并不像大型电脑或小型电脑,没有装设操作系统的需求或能力,它们只需要最基本的操作系统,通常这种操作系统都是从ROM读取的,此种程序被称为监视程序(Monitor)。

  1980年,家用电脑幵始普及。通常此时的电脑拥 有8b处理器及64KB内存、屏幕、键盘以及低咅质喇叭。而20肚纪80年代早期最著名的套装电脑为使 用微处理器6510(6502芯片特别版)的Commodore C64。此电脑没有操作系统,而是以一8KB只读内存 BIOS初始化彩色屏幕、键盘以及软驱和打印机。它可用8KB只读内存BASIC语言来直接操作BIOS,并依此撰写程序,大部分是游戏。此BASIC语言的解释器勉强可算此电脑的操作系统,当然就没有内核或软硬件保护机制了。此电脑上的游戏大多跳过BIOS 层次,直接控制硬件。

  1980年,微软公司收购了一家公司出产的操作系统,在将之修改后以MS-DOS的名义出品。此操作系统可以直接让程序操作BIOS与文件系统。到了 Intel-80286处理器的时代,才开始实作基本的储存设备保护措施。MS-DOS的架构并不足以满足所有需 求,因为它同时只能执行最多一个程序(如果想要同时 执行程式,只能使用TSR的方式来跳过OS而由程序 自行处理多仟务的部分),且没有任何内存保护措施。对驱动程序的支持也不够完整,因此导致诸如音效设备必须由程序自行设置的状况,造成不兼容的情况也普遍存在。某些操作的效能也是可怕得糟糕。许多应 用程序因此跳过MS-DOS的服务程序,而直接存取硬件设备以取得较好的效能。虽然如此,但MS-DOS 还是变成了 IBM PC上面最常用的操作系统(IBM自己也有推出DOS,称为丨BM-DOS或PC-DOS)。 MS-DOS的成功使得微软成为地球上最赚钱的公司之一。

  在1980年,另一个崛起的操作系统就是Mac OS, 此操作系统紧紧与麦金塔电脑捆绑在一起。此时一位全录柏拉图实验室的员工Dominik Hagen访问了苹果电脑的史蒂夫•乔布斯(Steve Jobs),并且向他展示了此时全录发展的图形化使用者界面。苹果电脑惊为天人,并打算向全录购买此技术,但因柏拉图实验室并非商业单位而是研究单位,因此全录回绝了这项买卖。在此之后苹果一致认为个人电脑的未来必定属于图形使用者界面,因此也开始发展自己的图形化操作系统。现今许多我们认为是基本要件的图形化接口技术与规则,都是由苹果电脑打下的基础(如下拉式菜单、桌面图标、拖曳式操作与双击等)。但准确地说,图形化使用者界面的确是全录创始的。
  
3. 20世纪90年代

  Apple1电脑:苹果电脑的第一代产品。延续20世纪80年代的竞争,90年代出现了许多影响未来个人电脑市场深厚的操作系统。由于图形化使用者界面日趋繁复,操作系统的能力也越来越复杂与巨大,因此强韧且具有弹性的操作系统就成了迫切的需求。此年代是许多套装类的个人电脑操作系统互相竞争的时代。

  20世纪80年代于市场中崛起的苹果电脑,由于旧系统的设计不良,使得其后继发展不力。苹果电脑决定重新设计其操作系统。经过许多失败的项目后,苹果于1997年推出其新操作系统——Mac OS的测试版,而后推出的正式版取得了巨大的成功。这让原先失意离开苹果的史蒂夫•乔布斯风光再现。

  除了商业主流的操作系统外,从20世纪80年代 起在开放源码的世界中,BSD系统也发展了非常久的一段时间,但在90年代由于与AT&T的法律争端,使得远在芬兰赫尔辛基大学的另一股开源操作系统Linux兴起。Linux内核是一个标准POSIX内核,其血缘可算是UNIX家族的一支。Linux与BSD家族都搭配GNU计划所发展的应用程序,但是由于使用的许可证以及历史因素的捉弄,Linux取得了相当可观的开源操作系统市场占有率,而BSD则小得多。

  相较于MS-DOS的架构,Linux除了拥有傲人的可移植性(相较于Linux, MS-DOS只能运行在Intel CPU上),它也是一个分时多进程内核,以及具有良好的内存空间管理(普通的进程不能存取内核区域的内存,想要存取任何非自己的内存空间的进程只能通过系统调用来达成)。一般进程是处于用户模式(UserMode)下,而执行系统调用时会被切换成内核模式(Kernel Mode),所有的特殊指令只能在内核模式执行,此措施让内核可以完美管理系统内部与外部设备,并且拒绝无权限的进程提出的请求。因此,理论上任何应用程序执行时的错误,都不可能让系统崩溃(Crash) o

  在1983年,微软就想为MS-DOS建构一个图形化的操作系统应用程序,并称之为Windows(有人说这是比尔•盖茨被苹果的Lisa电脑上市所刺激)。一开始Windows并不是一个操作系统,只是一个应用程序,其背景还是纯MS-DOS系统。

  20世纪90年代初,微软与IBM的合作破裂,微软从OS/2(早期为命令行模式,后来成为一个很成功但是曲高和寡的图形化操作系统)项目中抽身,并且在 1993年7月27日推出 Windows 3.1一个以OS/2为基础的图形化操作系统,并在1995年8月15曰推出Windows 95。直到这时,Windows系统依然是建立在MS-DOS的基础上,因此消费者非常期待微软在2000年所推出的Windows 2000上,因为它才算是第一个脱离MS-DOS基础的图形化操作系统。
  
4. 2000年以后

  至2017年为止,用于通用计算机上的分布式操作系统主要有两个家族:类UNIX家族和微软Windows家族。而主机系统和嵌入式操作系统使用多样的系统,并且很多和Windows、UNIX都没有直接的联系。类UNIX家族包括多个组织的操作系统,其中有几个主要的子类包括System V、BSD和Linux。 UNIX系统运行在从巨型机到嵌入式系统的多种机器架构上。UNIX主要使用于重要的商务服务器系统以及学院和工程环境中的工作站之上,和AT&T UNIX 不同,自由软件(比如Linux和BSD)逐步开始流行,并且开始进入桌面操作系统领域。和一些UNIX操作系统不同,像惠普公司的HPUX和IBM公司的AIX 是设计仅运行在客户购买的设备上,其中有一些特殊的(比如SUN公司的Solaris)可以运行在客户购买设备和基于工业标准的PC上。APPLE公司的Mac OS X是一个BSD特例,以取代早期小型市场上苹果公司的 Mac OS,众多流行的UNIX操作系统正在走向一体。

  微软公司的Windows操作系统家族起源于早期的IBM PC环境中的MS-DOS,现在版本是基于新的Windows NT内核,第一次是在OS/2中制定。与UNIX不同,Windows只能运行在32位和64位的x86 CPU(如Intel或者AMD的芯片)上,尽管早期有版本运行于DEC Alpha、MTPS和PowerPC体系结构。今天Windows是一个流行的操作系统,在全球桌面市场中占有90%左右的份额,同时在中低端服务器市场也有着广泛的应用,如Web服务器和数据库服务器。

站在巨人的肩膀上,看得更远

  说了这么多其实也就搞清楚一件事——操作系统是怎么来的。操作系统的发展离不开硬件的技术进步,古有一朝天子一朝臣,操作系统也是,随着硬件的发展,也是功能一天更比一天多。所以即使我们手里拿到了一份操作系统的源码,往往也会如江鱼如海,迷失消亡在茫茫大海里。今天我们要做的是,学习与体会前人的成果,追本溯源,知其然也知其所以然,一步一步剖析开这前因后果,使得我们在前人的基础是更快的取得更多技术突破与成果。
  持续更新…

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值