• 操作系统——操作系统发展历程及基本概念


    操作系统(计算机管理控制程序)

    简介

    操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
    操作系统的类型非常多样,不同机器安装的操作系统可从简单到复杂,可从移动电话的嵌入式系统到超级计算机的大型操作系统。许多操作系统制造者对它涵盖范畴的定义也不尽一致,例如有些操作系统集成了图形用户界面,而有些仅使用命令行界面,而将图形用户界面视为一种非必要的应用程序。

    组成部分

    内核、驱动程序、接口库、外围

    常见系统

    Android, iOS, Linux, Windows,Mac OS X

    特    征

           并发、共享、虚拟、异步

    功    能

           处理器管理、存储器管理、设备管理、文件管理

    基本类型

           批处理系统、分时操作系统、实时操作系统

    体系结构

          模块组合结构、层次结构、微内核结构

    历史

    综观计算机之历史,操作系统与计算机硬件的发展息息相关。操作系统之本意原为提供简单的工作排序能力,后为辅助更新更复杂的硬件设施而渐渐演化。从最早的批量模式开始,分时机制也随之出现,在多处理器时代来临时,操作系统也随之添加多处理器协调功能,甚至是分布式系统的协调功能。其他方面的演变也类似于此。另一方面,在个人计算机上,个人计算机之操作系统因袭大型机的成长之路,在硬件越来越复杂、强大时,也逐步实践以往只有大型机才有的功能。
    总而言之,操作系统的历史就是一部解决计算机系统需求与问题的历史

    1980年代前

    第一部计算机并没有操作系统。这是由于早期计算机的创建方式(如同建造机械算盘)与性能不足以运行如此程序。但在1947年美国贝尔实验室肖克利巴丁布拉顿组成的研究小组发明的晶体管,以及莫里斯·威尔克斯发明的微程序方法,使得计算机不再是机械设备,而是电子产品。系统管理工具以及简化硬件操作流程的程序很快就出现了,且成为操作系统的起源。到了1960年代早期,商用计算机制造商制造了批处理系统,此系统可将工作的建置、调度以及运行序列化。此时,厂商为每一台不同型号的计算机创造不同的操作系统,因此为某计算机而写的程序无法移植到其他计算机上运行,即使是同型号的计算机也不行。
    到了1964年,IBM System/360推出了一系列用途与价位都不同的大型机,而它们都共享代号为OS/360的操作系统(而非每种产品都用量身订做的操作系统)。让单一操作系统适用于整个系列的产品是System/360成功的关键,且实际上IBM目前的大型系统便是此系统的后裔,为System/360所写的应用程序依然可以在现代的IBM机器上运行。
    OS/360也包含另一个优点:永久贮存设备—硬盘的面世(IBM称为DASD)。另一个关键是分时概念的建立:将大型机珍贵的时间资源适当分配到所有用户身上。分时也让用户有独占整部机器的感觉;而Multics的分时系统是此时众多新操作系统中实践此观念最成功的。
    1963年,奇异公司与贝尔实验室合作以PL/I语言创建的Multics,是激发1970年代众多操作系统创建的灵感来源,尤其是由AT&T贝尔实验室的丹尼斯·里奇肯·汤普逊所创建的Unix系统,为了实践平台移植能力,此操作系统在1973年由C语言重写;另一个广为市场采用的小型计算机操作系统是VMS

    1980年代

    第一代微型计算机并不像大型机或小型计算机,没有装设操作系统的需求或能力;它们只需要最基本的操作系统,通常这种操作系统都是从ROM读取的,此种程序被称为监视程序(Monitor)。1980年代,家用计算机开始普及。通常此时的计算机拥有8-bit处理器加上64KB存储器显示器键盘以及低音质喇叭。而80年代早期最著名的套装计算机为使用微处理器6510(6502芯片特别版)的Commodore C64。此计算机没有操作系统,而是以一8KB只读存储器BIOS初始化彩色显示器、键盘以及软盘驱动器和打印机。它可用8KB只读存储器BASIC语言来直接操作BIOS,并依此撰写程序,大部分是游戏。此BASIC语言的解释器勉强可算是此计算机的操作系统,当然就没有内核或软硬件保护机制了。此计算机上的游戏大多跳过BIOS层次,直接控制硬件。

    家用计算机C64的抽象架构

    简单应用程序

    机器语言

    (游戏直接操作)

     

    8kBASICROM

     

     

    8k ROM-BIOS

     

     

    硬件中央处理器、存储设备等)

     

    早期最著名的磁盘启动型操作系统是CP/M,它支持许多早期的微计算机。最早期的IBM PC其架构类似C64。当然它们也使用了BIOS以初始化与抽象化硬件的操作,甚至也附了一个BASIC解释器!但是它的BASIC优于其他公司产品的原因在于他有可携性,并且兼容于任何匹配IBM PC架构的机器上。这样的PC可利用Intel-8088处理器(16-bit寄存器)定址,并最多可有1MB的存储器,然而最初只有640KB。软式磁盘驱动器取代了过去的磁带机,成为新一代的存储设备,并可在他512KB的空间上读写。为了支持更进一步的文件读写概念,磁盘操作系统(Disk Operating System,DOS)因而诞生。此操作系统可以合并任意数量的扇区,因此可以在一张磁盘片上放置任意数量与大小的文件。文件之间以档名区别。IBM并没有很在意其上的DOS,因此以向外部公司购买的方式获取操作系统。1980年微软公司获取了与IBM的合约,并且收购了一家公司出产的操作系统,在将之修改后以MS-DOS的名义出品,此操作系统可以直接让程序操作BIOS与文件系统。到了Intel-80286处理器的时代,才开始实现基本的存储设备保护措施。其后,MS-DOS成为了IBM PC上面最常用的操作系统(IBM自己也有推出DOS,称为IBM-DOS或PC-DOS)。MS-DOS的成功使得微软成为地球上最赚钱的公司之一。

    MS-DOS在个人计算机上的抽象架构

    普通应用程序(Shell script、文本编辑器

    MS-DOS(文件系统)

     

     

    BIOS(驱动程序)

     

     

    硬件中央处理器、存储设备等)

     

    而1980年代另一个崛起的操作系统异数是Mac OS,此操作系统紧紧与麦金塔计算机捆绑在一起。此时一位施乐帕罗奥多研究中心的员工Dominik Hagen访问了苹果计算机的史蒂夫·乔布斯,并且向他展示了此时施乐发展的图形用户界面。苹果计算机惊为天人,并打算向施乐购买此技术,但因帕罗奥多研究中心并非商业单位而是研究单位,因此施乐回绝了这项买卖。在此之后苹果一致认为个人计算机的未来必定属于图形用户界面,因此也开始发展自己的图形化操作系统。

    1990年代

    延续1980年代的竞争,1990年代出现了许多影响未来个人计算机市场深厚的操作系统。由于图形用户界面日趋繁复,操作系统的能力也越来越复杂与巨大,因此强韧且具有弹性的操作系统就成了迫切的需求。此年代是许多套装类的个人计算机操作系统互相竞争的时代。
    上一年代于市场崛起的苹果计算机,由于旧系统的设计不良,使得其后继发展不力,苹果计算机决定重新设计操作系统。经过许多失败的项目后,苹果于1997年发布新操作系统——Mac OS X的测试版,而后推出的正式版获取了巨大的成功。让原先失意离开苹果的史蒂夫·乔布斯风光再现。
    除了商业主流的操作系统外,从1980年代起在开放源代码的世界中,BSD系统也发展了非常久的一段时间,但在1990年代由于与AT&T的法律争端,使得远在芬兰赫尔辛基大学的另一股开源操作系统——Linux兴起。Linux内核是一个标准POSIX内核,其血缘可算是Unix家族的一支。Linux与BSD家族都搭配GNU项目所发展的应用程序,但是由于使用的许可证以及历史因素的作弄下,Linux获取了相当可观的开源操作系统市占率,而BSD则小得多。相较于MS-DOS的架构,Linux除了拥有傲人的可移植性(相较于Linux,MS-DOS只能运行在Intel CPU上),它也是一个分时多进程内核,以及良好的存储器空间管理(普通的进程不能访问内核区域的存储器)。想要访问任何非自己的存储器空间的进程只能透过系统调用来达成。一般进程是处于用户态(User mode)底下,而运行系统调用时会被切换成内核态(Kernel mode),所有的特殊指令只能在内核态运行,此措施让内核可以完美管理系统内部与外部设备,并且拒绝无权限的进程提出的请求。因此理论上任何应用程序运行时的错误,都不可能让系统崩溃

    几乎完整的Linux架构图

    用户

    模式

    应用程序(sh、viOpenOffice.org等)

    复杂KDE、glib等)

     

     简单库(opendbm、sin等)

     

     

    C库(open、fopen、socket、exec、calloc等)

    内核

    模式

    系统中断、调用、错误等软硬件消息

    内核(驱动程序、进程、网上、内存管理等)

    硬件(处理器、内存、各种设备)

    另一方面,微软对于更强力的操作系统呼声的回应便是Windows NT于1993年的面世。
    1983年开始微软就想要为MS-DOS建构一个图形化的操作系统应用程序,称为Windows(有人说这是比尔·盖茨被苹果的Lisa计算机上市所刺激)。一开始Windows并不是一个操作系统,只是一个应用程序,其背景还是纯MS-DOS系统,这是因为当时的BIOS设计以及MS-DOS的架构不甚良好之故。在1990年代初,微软与IBM的合作破裂,微软从OS/2(早期为命令行模式,后来成为一个很技术优秀但是曲高和寡的图形化操作系统)项目中抽身,并且在1993年7月27日推出Windows 3.1,一个以OS/2为基础的图形化操作系统。并在1995年8月15日推出Windows 95。这时的Windows系统依然是创建在MS-DOS的基础上,不过微软在这同时也在开发不依赖于DOS的NT系列Windows系统,并在后来完全放弃了DOS而转向NT作为Windows的基础。
    底下的表格为Windows NT系统的架构:在硬件层次结构之上,有一个由微内核直接接触的硬件抽象层(HAL),而不同的驱动程序以模块的形式挂载在内核上运行。因此微内核可以使用诸如输入输出、文件系统、网上、信息安全机制与虚拟内存等功能。而系统服务层提供所有统一规格的函数调用库,可以统一所有子系统的实现方法。例如尽管POSIX与OS/2对于同一件服务的名称与调用方法差异甚大,它们一样可以无碍地实现于系统服务层上。在系统服务层之上的子系统,全都是用户态,因此可以避免用户程序运行非法行动。

    简化版本的Windows NT抽象架构

    用户

    模式

    OS/2应用程序

    Win32应用程序

    DOS程序

    Win16应用程序

    POSIX应用程序

     

    其他DLL库

    DOS系统

    Windows模拟系统

    OS/2子系统

    Win32子系统

    POSIX.1子系统

    内核

    模式

    系统服务层

    输入输出管理文件系统、网上系统

    对象管理系统 / 安全管理系统 / 进程管理 / 对象间通信管理 / 进程间通信管理 / 虚拟内存管理微内核

    视窗管理程序

    驱动程序

    硬件抽象层(HAL)

    图形驱动

    硬件(处理器、存储器、外部设备等)

    子系统架构第一个实现的子系统群当然是以前的微软系统。DOS子系统将每个DOS程序当成一进程运行,并以个别独立的MS-DOS虚拟机承载其运行环境。另外一个是Windows 3.1模拟系统,实际上是在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 NT的架构上。
    而本年代渐渐增长并越趋复杂的嵌入式设备市场也促使嵌入式操作系统的成长。

    今日

    现代操作系统通常都有一个使用的绘图设备的图形用户界面(GUI),并附加如鼠标或触控面版等有别于键盘的输入设备。旧的OS或性能导向的服务器通常不会有如此亲切的接口,而是以命令行界面(CLI)加上键盘为输入设备。以上两种接口其实都是所谓的,其功能为接受并处理用户的指令(例如按下一按钮,或在命令提示列上键入指令)。
    选择要安装的操作系统通常与其硬件架构有很大关系,只有LinuxBSD几乎可在所有硬件架构上运行,而Windows NT仅移植到了DEC Alpha与MIPS Magnum。在1990年代早期,个人计算机的选择就已被局限在Windows家族、类Unix家族以及Linux上,而以Linux及Mac OS X为最主要的另类选择,直至今日。
    大型机嵌入式系统使用很多样化的操作系统。大型主机近期有许多开始支持Java及Linux以便共享其他平台的资源。嵌入式系统近期百家争鸣,从给Sensor Networks用的Berkeley Tiny OS到可以操作Microsoft OfficeWindows CE都有。

    个人计算机

    个人计算机市场目前分为两大阵营,此两种架构分别有支持的操作系统:
    • Apple Macintosh- Mac OS X,Windows(仅Intel平台),Linux、BSD。
    • IBM兼容PC- Windows、Linux、BSD、Mac OS X(非正式支持)。

    大型机

    最早的操作系统是针对20世纪60年代的大型主结构开发的,由于对这些系统在软件方面做了巨大投资,因此原来的计算机厂商继续开发与原来操作系统相兼容的硬件与操作系统。这些早期的操作系统是现代操作系统的先驱。现在仍被支持的大型主机操作系统包括:
    • Burroughs MCP--B5000,1961 toUnisysClearpath/MCP, present.
    • IBMOS/360--IBM System/360, 1964 toIBM zSeries, present
    • UNIVACEXEC 8--UNIVAC 1108, 1964, toUnisysClearpath Dorado, present.
    现代的大型主机一般也可运行Linux或Unix变种。

    嵌入式

    嵌入式系统使用非常广泛的系统(如VxWorkseCosSymbian OSPalm OS)以及某些功能缩减版本的Linux或者其他操作系统。某些情况下,OS指称的是一个内置了固定应用软件的巨大泛用程序。在许多最简单的嵌入式系统中,所谓的OS就是指其上唯一的应用程序。

    类Unix系统

    主条目:类Unix
    所谓的类Unix家族指的是一族种类繁多的OS,此族包含了System VBSDLinux。由于Unix是The Open Group的注册商标,特指遵守此公司定义的行为的操作系统。而类Unix通常指的是比原先的Unix包含更多特征的OS。
    类Unix系统可在非常多的处理器架构下运行,在服务器系统上有很高的使用率,例如大专院校或工程应用的工作站
    1991年,芬兰学生林纳斯·托瓦兹根据类Unix系统Minix编写并发布了Linux操作系统内核,其后在理查德·斯托曼的建议下以GNU通用公共许可证发布,成为自由软件Unix变种. Linux近来越来越受欢迎,它们也在个人桌面计算机市场上大有斩获,例如Ubuntu系统。
    某些Unix变种,例如惠普HP-UX以及IBM的AIX仅设计用于自家的硬件产品上,而SUNSolaris可安装于自家的硬件或x86计算机上。苹果计算机的Mac OS X是一个从NeXTSTEPMach以及FreeBSD共同派生出来的微内核BSD系统,此OS取代了苹果计算机早期非Unix家族的Mac OS。
    经历数年的披荆斩棘,自由开源的Linux系统逐渐蚕食以往专利软件的专业领域,例如以往计算机动画运算巨擘──硅谷图形公司(SGI)的IRIX系统已被Linux家族及贝尔实验室研发小组设计的九号项目与Inferno系统取代,皆用于分散表达式环境。它们并不像其他Unix系统,而是选择内置图形用户界面。九号项目原先并不普及,因为它刚推出时并非自由软件。后来改在自由及开源软件许可证Lucent Public License发布后,便开始拥有广大的用户及社群。Inferno已被售予Vita Nuova并以GPL/MIT许可证发布。
    当前,计算机按照计算能力排名世界500强中472台使用Linux,6台使用Windows,其余为各类BSD等Unix。

    微软Windows

    主条目:Microsoft Windows
    Microsoft Windows系列操作系统是在微软给IBM机器设计的MS-DOS的基础上设计的图形操作系统。现在的Windows系统,如Windows 2000、Windows XP皆是创建于现代的Windows NT内核。NT内核是由OS/2OpenVMS等系统上借用来的。Windows可以在32位和64位的IntelAMD的处理器上运行,但是早期的版本也可以在DEC AlphaMIPSPowerPC架构上运行。
    虽然由于人们对于开放源代码操作系统兴趣的提升,Windows的市场占有率有所下降,但是到2004年为止,Windows操作系统在世界范围内占据了桌面操作系统90%的市场。
    Windows系统也被用在低级和中阶服务器上,并且支持网页服务的数据库服务等一些功能。最近微软花费了很大研究与开发的经费用于使Windows拥有能运行企业的大型程序的能力。
    Windows XP在2001年10月25日发布,2004年8月24日发布服务包2(Service Pack 2),2008年4月21日发布最新的服务包3(Service Pack 3)。
    微软上一款操作系统Windows Vista(开发代码为Longhorn)于2007年1月30日发售。Windows Vista增加了许多功能,尤其是系统的安全性和网上管理功能,并且其拥有接口华丽的Aero Glass。但是整体而言,其在全球市场上的口碑却并不是很好。其后继者Windows 7则是于2009年10月22日发售,Windows 7改善了Windows Vista为人诟病的性能问题,相较于Windows Vista,在同样的硬件环境下,Windows 7的表现较Windows Vista为好。而最新的Windows 10则是于2015年7月29日发售。

    Mac OS X

    主条目:Mac OSMac OS X
    macOS,前称“Mac OS X”或“OS X”,是一套运行于苹果Macintosh系列计算机上的操作系统。Mac OS是首个在商用领域成功的图形用户界面系统。Macintosh开发成员包括比尔·阿特金森(Bill Atkinson)、杰夫·拉斯金(Jef Raskin)和安迪·赫茨菲尔德(Andy Hertzfeld)。从OS X 10.8开始在名字中去掉Mac,仅保留OSX和版本号。2016年6月13日在WWDC2016上,苹果公司将OS X更名为macOS,现行的最新的系统版本是10.14,即macOS Mojave

    Chrome OS

    主条目:Google Chrome OS
    Google Chrome OS是一项Google的轻型的、基于网络的计算机操作系统计划,其基于Google的浏览器Google Chrome的Linux内核。

    其他

    大型主机以及嵌入式操作系统均与Unix或Windows家族关系不大,除了AndroidWindows CEWindows NTWindows XP Embedded是Windows的血亲产品,以及数种*BSD和嵌入式Linux包为例外。
    少数较旧的OS今日依然在一些需要稳定性的市场中活跃,例如IBM的OS/2BeOS以及XTS-400。
    在达康时代狂潮过后,如AmigaOS与RISC OS等少数人使用的OS依然持续建立,以满足狂热的爱好者社群与特殊专业用户。
     

    linux是脱袜子 将(shell 保留解释权!) 移植到minix上 结合产生的

    操作系统的作用:

    1.将复杂丑陋的硬件细节隐藏起来,提供了简单的调用接口

    2.将应用程序对于硬件的竞争变的有序

    操作系统发展史

    1.第一带计算机 真空管和穿孔卡片 没有进程 没有操作系统

    2.第二代计算机 7094 1401 晶体管 批处理系统

    输入输出 以及计算设备 不能互联 需要人参与 一批一批的处理 开发效率慢 并且串行执行

    3.第三代计算机 集成电路 与多道技术

    多终端联机 spooling 同一台机器既能进行科学计算 又能做字符处理 通用计算机

    多道技术 解决串行导致的效率低下问题

    多用户终端 可以同时为多个用户提供服务 每个用户以为自己独享一台计算机

    4.第四代 个人电脑

    大规模使用了集成电路,大多都提供了GUI界面

  • 相关阅读:
    java中讲讲PrintStream的用法,举例?
    Spark Scala当中reduceByKey的用法
    springboot与ActiveMQ整合
    solr(六): 集群
    zookeeper集群
    solr(五): centos中, 整合 tomcat&solr
    springboot redis(单机/集群)
    redis 五种数据类型
    redis 集群搭建: redis-cluster
    redis 持久化
  • 原文地址:https://www.cnblogs.com/tingguoguoyo/p/10957295.html
Copyright © 2020-2023  润新知