一、什么是操作系统

操作系统(Operating System,简称OS)是管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分,负责管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本任务。

操作系统的种类

操作系统的种类很多,各种设备安装的操作系统可从简单到复杂,可从手机的嵌入式操作系统到超级计算机的大型操作系统。目前流行的现代操作系统主要有Android、BSD、IOS、Linux

Mac、OS X、Windows Phone和z/OS等,除了Windows和z/OS等少数操作系统,大部分操作系统都为类Unix操作系统。

操作系统的主要功能

操作系统的主要功能是资源管理,程序控制和人机交互等,计算机系统的资源和信息资源两大类。设备资源指的是组成计算机的硬件设备,如中央处理器,主存储器,磁盘存储器,打印机,磁带存储器,显示器,键盘输入设备和鼠标等。信息资源指的是存放于计算机内的各种数据,知识库,系统软件和应用软件等。

操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界面,输入命令。操作系统则命令进行解释,驱动硬件设备,实现用户要求。以现代观点而言,一个标准个人电脑的OS应该提供以下的功能:进程管理(Processing management),内存管理(Memory management),文件系统(File system),安全机制(Security),用户界面(User interface),驱动程序(Device drivers)

一、资源管理

1、系统的设备资源和信息资源都是操作系统根据用户需求按一定的策略来进行分配和调度的。操作系统的存储管理就负责把内存单元分配给需要内存的程序以便让它执行,在程序执行结束后将它占用的内存单元收回以便再使用。对于提供虚拟存储的计算机系统,操作系统还要与硬件配合做好页面调度工作,根据执行程序的要求分配页面,在执行中将页面调入和调出内存以及回收页面等。

2、处理器管理或称处理器调度,是操作系统资源管理功能的另一个重要内容。在一个允许多道程序同时执行的系统里,操作系统会根据一定的策略将处理器交替的分配给系统内等待运行的程序,一道等到运行的程序只有在获得了处理后才能运行。一道程序在运行中若遇到了某个事件,例如启动外部设备而暂时不能继续运行下去,或一个外部事件的发生等等,操作系统就要来处理相应的事件,然后将处理器重新分配。

3、操作系统的设备管理功能主要是分配和回收外部设备以及控制外部设备按用户程序的要求进行操作等。对于非存储型外部设备,如打印机、显示器等,它们可以直接作为一个设备分配给一个用户程序,在使用完毕后回收以便给另一个需求的用户使用。对于存储型的外部设备,如磁盘、磁带等,则是提供存储空间给用户,用来存放文件和数据。存储性外部设备的管理与信息管理是密切结合的。

4、信息管理是操作系统的一个重要的功能,主要是向用户提供一个文件系统。一般说,一个文件系统向用户提供创建文件,撤销文件,读写文件,打开和关闭文件等功能。有了文件系统后,用户可按文件名存取数据而无需知道这些数据存放在哪里。这种做法不仅便于用户使用而且还有利于用户共享公共数据。此外,由于文件建立时允许创建者规定使用权限,这就可以保证数据的安全性。

五、程序控制

一个用户程序的执行自始至终是在操作系统控制下进行的。一个用户将他要解决的问题用某一种程序设计语言编写了一个程序后就将该程序连同对它执行的要求输入到计算机内,操作系统就根据要求控制这个用户程序的执行直到结束。操作系统控制用户的执行主要有以下一些内容:调入相应的编译程序,将用某种程序设计语言编写的源程序编译成计算机可执行的目标程序,分配内存储等资源将程序调入内存并启动,按用户指定的要求处理执行中出现的各种事件以及与操作员联系请示有关意外事件的处理等。

六、人机交互

操作系统的人机交互功能是决定计算机系统“友善性”的一个重要因素。人机交互功能主要靠输入输出的外部设备和相应的软件来完成。可供人机交互使用的设备主要有键盘显示、鼠标、各种模式识别设备等。与这些设备相应的软件就是操作系统提供人机交互功能的部分。人机交互部分的主要作用是控制有关设备的运行和理解并执行通过人机交互设备传来的有关的各种命令和要求。

七、虚拟内存

虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

八、用户接口

用户接口包括作业一级接口和程序一级接口。作业一级接口为了便于用户直接或间接地控制自己的作业而设置。它通常包括联机用户接口与脱机用户接口。程序一级接口是为了用户程序在执行中访问系统资源而设置的,通常由一组系统调用组成。

在早期的单用户单任务操作系统(如DOS)中,每台计算机只有一个用户,每次运行一个程序,且次序不是很大,单个程序完全可以放在实际内存中。这时虚拟内存并没有太大的用处。但随着程序占用存储器容量的增长和多用户多任务操作系统的出现,在程序设计时,在程序所需要的存储量与计算机系统实际配备的主存储器的容量之间往往存在着矛盾。例如:在某些低档的计算机中,物理内存的容量较小,而某些程序却需要很大的内存才能运行;而在多用户多任务系统中,多个用户或多个任务更新全部主存,要求同时执行独断程序。这些同时运行的程序到底占用实际内存中的哪一部分,在编写程序时是无法确定的,必须等到程序运行时才动态分配。

九、用户界面

用户界面(User interface,简称UI,亦称使用者界面)是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。

用户界面是介于用户与硬件而彼此之间交互沟通相关软件,目的在使得用户能够方便有效率地去操作硬件以达成双向之交互,完成所希望借助硬件完成之工作,用户界面定义广泛,包含了人机交互与图形用户接口,凡参与人类与机械的信息交流的领域都存在着用户界面。用户与系统之间一般用面向问题的受限自然语言进行交互。目前有系统开始利用多媒体技术开发新一代的用户界面。

十、分类方法

操作系统的种类相当多,各种设备安装的操作系统可从简单到复杂,可分为智能卡操作系统、实时操作系统、传感器节点操作系统、嵌入式操作系统、个人计算机操作系统、多处理器操作系统、网络操作系统和大型机操作系统。

十一、应用领域

可分为桌面操作系统、服务器操作系统、嵌入式操作系统;

十二、所支持用户数

可分为单用户操作系统(如MSDOS、OS/2.Windows)、多用户操作系统(如UNIX、Linux、MVS);

十三、源码开放程度

可分为开源操作系统(如Linux、FreeBSD)和闭源操作系统(如Mas OS X、Windows);

十四、硬件结构

可分为网络操作系统(Netware、WindowsNT、OS/2Warp)、多媒体操作系统(Amiga)、和分布式操作系统等;

十五、操作系统环境

可分为;批处理操作系统(MVX、DOS/VSE)、分时操作系统(如Linux、UNIX、XENIX、Mac OS X)、实时操作系统(如iEMX、VRTX、RTOS、RT WINDOWS);

十六、存储器寻址宽度

可以将操作系统分为8位、16位、32位、64位、128位的操作系统。早期的操作系统一般只支持8位和16位存储器寻址宽度,现代的操作系统如Linux和Windows7都支持32位和64位。

十七、主要类型

1、批处理、批处理操作系统(Batch Processing Operating System)的工作方式是:用户将作业交给系统操作员,系统操作员将许多用户的作业组成一批作业,之后输入到计算机中,在系统中形成一个自动转接的连续的作业流,然后启动操作系统,系统自动,依次执行每个作业。最后由操作人员将结果交给用户。批处理操作系统的特点是:多道和成批处理。

2、分时、分时操作系统(Time Sharing Operating System,简称TSOS)的工作方式是:一台主机连接了若干个终端,每个终端有一个用户在使用。用户交互式地向系统提出命令请求,系统接受每个用户的命令,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。用户根据上步结果发出下道命令。分时操作系统将CPU的时间划分成若干个片段,称为时间片。操作系统以时间片为单位,轮流为每个终端用户服务。每个用户轮流使用一个时间片而使每个用户并不感到有别的用户的存在。分时系统具有多路性、交互性、“独占”性和及时性的特征。多路性指,伺时有多个用户使用一台计算机,宏观上看是多个人同时使用一个CPU,微观上是多个人在不同时刻轮流使用CPU。交互性是指,用户根据系统响应结果进一步提出新请求(用户直接干预每一步)。“独占”性是指,用户感觉不到计算机在为其他人服务,就像整个系统为他所独占。及时性是指,系统对用户提出的请求及时响应。它支持位于不同终端的多个用户同时使用一台计算机,彼此独立互不干扰,用户感觉好像一台计算机全为他所用。

常见的通用操作系统的分时系统与批处理系统的结合。其原则是:分时优先,批处理在后。“前台”响应需频繁交互的作业,如终端的要求;“后台”处理时间性要求不强的作业。

3、实时

实时操作系统(Real Time Operating System,简称RTOS)是指使计算机能及时响应外部事件的请求在规定的严格时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作的操作系统。实时操作系统要追求的目标是:对外部请求在严格时间范围内做出反应,有高可靠性和完整性。其主要特点是资源的分配和调度首先要考虑实时性然后才是效率。此外,实时操作系统应有较强的容错能力。

4、网络

网络操作系统(Network Operating System,简称NOS)通常运行在服务器上的操作系统,是基于计算机网络的,是在各种计算机操作系统上按网络体系结构协议标准开发的软件,包括网络管理、通信、安全、资源共享和各种网络应用。其目标是相互通信及资源共享。在其支持下,网络中的各台计算机能互相通信和共享资源。其主要特点是与网络的硬件相组合来完成网络的通信任务。网络操作系统被设计成在同一个网络中(通常是一个局部区域网络LAV,一个专用网络或其他网络)的多台计算机中可以共享文件和打印机访问。流行的网络操作系统有Linux,UNIX,BSD,Windows Server,Mac OS X Server,Novell NetWare等。

5、分布式

分布式操作系统(Distributed Software Systems)是为了分布计算系统配置的操作系统。大量的计算机通过网络被连结在一起,可以获得极高的运算能力及广泛的数据共享。这种系统被称作分布式系统(DistributedSystem)。它在资源管理、通信控制可操作系统的结构等方面都与其他操作系统有较大的区别。由于分布计算机系统的资源分布于系统的不同计算机上,操作系统对用户的资源需求不能像一般的操作系统那样等待有资源时直接分配的简单做法,而是要在系统的各台计算机上搜索,找到所需资源后才可进行分配。对于有些资源,如具有多个副本的文件,还必须考虑一致性。所谓的一致性是指若干个用户对同一个文件所同时读出的数据是一致的。为了保证一致性,操作系统须控制文件的读、写、操作,使得多个用户可同时读一个文件,而任一时刻最多只能有一个用户在修改文件。分布操作系统的通信功能类似于网络操作系统。由于分布计算机系统不像网络分布得很广,同时分布操作系统还要支持并行处理,因此它提供的通信机制和网络操作系统提供的有所不同,它要求通信速度高。分布操作系统的结构也不同于其他操作系统,它分布于系统的各台计算机上,能并行地处理用户的各种需求,有较强的容错能力。

6、大型机(Mainframe Computer),也称为大型主机。大型机使用专用的处理器指令集、操作系统和应用软件。最早的操作系统是针对20世纪60年代的大型主结构开发的,由于对这些系统在软件方面做了巨大的投资,因此原来的计算机厂商继续开发与原来操作系统相兼容的硬件与操作系统。这些早期的操作系统是现代操作系统的先躯。现代的大型主机一般也可运行Linux或Unix变种。

7、嵌入式

嵌入式操作系统(Embedded Operating System)是用于嵌入式系统的操作系统。嵌入式系统是使用非常广泛的操作系统。嵌入式设备一般专用的嵌入式操作系统(经常是实时操作系统,如VxWorks、eCos)或者指定程序员移植到这些新系统。以及某些功能缩减版本的Linux(如Android、Tizen、MeeGo、webOS)或者其他操作系统。某些情况下,嵌入式操作系统指称的是一个自带了固定应用软件的巨大泛用程序。在许多最简单嵌入式系统中,所谓的操作系统就是指其上唯一的应用程序。

8、桌面

桌面操作系统主要用于个人计算机上。个人计算机市场从硬件架构上来说主要分为两大正阵营,PC机与Mac机,从软件上主要可分为两大类,分别为类Unix操作系统和Windows操作系统。

9、服务器

服务器操作系统一般指的是安装在大型计算机上的操作系统,比如Web服务器、应用服务器和数据库服务器等。服务器操作系统主要集中在三大类:Unix系列:SUN Solaris,IBM-AIX,HP-UX,FreeBSD,OS X Server等。  Linux系列:Red Hat Linux,CentOS,Debian等。  Windows系列:

十八、典型系统

1、Linux

Linux是一个免费、源代码开放、自由传播,类似于Unix的操作系统。它既可以做各种服务器操作系统,也可以安装在微机上,并提供上网软件、文字处理软件、绘图软件、动画软件等,它除了命令操作外还提供了类似Windows风格的图形界面,我国自行开发的有红旗、蓝点Linux、麒麟Linux等。缺点是兼容性差,应用软件安装困难,操作性差,使用不习惯。2、Mac OS X

Mac OS是一运行于苹果系列微型计算机的操作系统。苹果机多用于图形领域,它往往代表了潮流和时尚,代表精美的工业设计,但它不兼容Windows软件。

3、Windows

Windows是由微软公司成功开发的操作系统.Windows是一个多任务的操作系统,他采用图形窗口界面,用户对计算机的各种复杂操作只需通过点击鼠标就可以实现。

4、iOS

iOS操作系统是由苹果公司开发的手持设备操作系统。iOS与苹果的Mac OS X操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。原本这个系统的名为iphone OS,直到2010年6月7日WWDC大会上宣布改名为iOS。截至至2011年11月,根据Canalys的数据显示,iOS已经占据了全球智能手机系统市场份额的30%,在美国的市场占有率为43%。

5、Android

Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。

6、WP

Windows Phone(简称wp)是微软发布的一款手机操作系统,它将微软旗下的Xbox Live游戏、Xbox Music音乐与独特的视频体验集成至手机中。微软公司于2010年10月11日晚上9点30分正式发布了智能手机操作系统Windows Phone,并将其使用接口称为“Modern”接口。2011年2月,“诺基亚”与微软达成全球战略同盟并深度合作共同研发。2011年9月27日,微软发布Windows Phone7.5 。2012年6月21日,微软正式发布Windows Phone8,采用和Windows8相同的Windows NT内核,同时也针对市场的Windows Phone7.8。2014年4月2日,微软在旧金山召开Build2014开发者大会。大会上微软推出Windows Phone8.1更新,2014年8月4日晚,微软正式向WP开发者推送了WP8.1 GDR1预览版,即WP8.1 Update。

7、Chrome OS

Chrome OS是由谷歌开发的一款基于Linux的操作系统,发展出与互联网紧密结合的云操作系统,工作时运行Web应用程序。谷歌在2009年7月7日发布该操作系统,并在2009年11月19日以Chromium OS之名推出相应的开源项目,并将Chromium OS代码开源。Chrome OS同时支持Intel x86以及ARM处理器,软件结构及其简单,可以理解为在Linux的内核上运行一个使用新的窗口系统的Chrome浏览器。对于开发人员来说,web就是平台,所有现有的web应用可以完美的在Chrome OS 中运行,开发者也可以用不同的开发语言为其开发新的web应用。