操作系统—了解和熟悉操作系统

实验0  了解和熟悉操作系统

 

一、目的和要求 

 

1. 实验目的

1)掌握操作系统的定义和概念;

2)了解各类操作系统的发展历史;

2.实验要求

使用网络搜索了解各类计算机操作系统的知识,并整理成一篇文档。

二、实验内容

了解和掌握内容包括:

  1. 计算机操作系统的定义和概念;
  2. 操作系统的分类;
  3. 常用几种操作系统的优缺点分析;LinuxWindows

三、实验拓展思考

IOSAndroid属于什么类型的操作系统?

答:iosandroid属于嵌入式操作系统

一、计算机操作系统的定义和概念;

      操作系统(英语:Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操作系统所处位置作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,提供了各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口。实际上,用户是不用接触操作系统的,操作系统管理着计算机硬件资源,同时按着应用程序的资源请求,为其分配资源,如:划分CPU时间,内存空间的开辟,调用打印机等。                      

  操作系统的种类相当多,各种设备安装的操作系统可从简单到复杂,可分为智能卡操作系统实时操作系统、传感器节点操作系统、嵌入式操作系统个人计算机操作系统、多处理器操作系统、网络操作系统和大型机操作系统。 按应用领域划分主要有三种:桌面操作系统、服务器操作系统嵌入式操作系统

(一)、桌面操作系统

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

  1、Unix和类Unix操作系统:Mac OS X,Linux发行版(如DebianUbuntuLinux MintopenSUSEFedora等);

  2、微软公司Windows操作系统 :Windows XPWindows VistaWindows 7Windows 8等。

(二)、服务器操作系统

服务器操作系统一般指的是安装在大型计算机上的操作系统,比如Web服务器应用服务器数据库服务器等。服务器操作系统主要集中在三大类:

     1、Unix系列:SUNSolaris,IBM-AIX,HP-UX,FreeBSD等;

     2、Linux系列:Red Hat LinuxCentOSDebianUbuntu等;

     3、Windows系列:Windows Server 2003Windows Server 2008,Windows Server 2008 R2等。

(三)、嵌入式操作系统

      嵌入式操作系统是应用在嵌入式系统的操作系统。嵌入式系统广泛应用在生活的各个方面,涵盖范围从便携设备到大型固定设施,如数码相机、手机平板电脑、家用电器、医疗设备、交通灯航空电子设备和工厂控制设备等,越来越多嵌入式系统安装有实时操作系统。

    在嵌入式领域常用的操作系统有嵌入式LinuxWindows EmbeddedVxWorks等,以及广泛使用在智能手机平板电脑消费电子产品的操作系统,如AndroidiOSSymbianWindows PhoneBlackBerry OS等。

二、操作系统的组成部分

操作系统理论研究者有时把 操作系统分成四大部分:

     1、驱动程序:最底层的、直接控制和监视各类硬件的部分,它们的职责是隐藏硬件的具体细节,并向其他部分提供一个抽象的、通用的接口。

     2、内核操作系统内核部分,通常运行在最高特权级,负责提供基础性、结构性的功能。

     3、接口库:是一系列特殊的程序库,它们职责在于把系统所提供的基本服务包装成应用程序所能够使用的编程接口(API),是最靠近应用程序的部分。例如,GNU C运行期库就属于此类,它把各种操作系统的内部编程接口包装成ANSI C和POSIX编程接口的形式。

      4、外围:是指操作系统中除以上三类以外的所有其他部分,通常是用于提供特定高级服务的部件。例如,在微内核结构中,大部分系统服务,以及UNIX/Linux中各种守护进程都通常被划归此列。

      并不是所有的操作系统都严格包括这四大部分。例如,在早期的微软视窗操作系统中,各部分耦合程度很深,难以区分彼此。而在使用外核结构的操作系统中,则根本没有驱动程序的概念。

      操作系统中四大部分的不同布局,也就形成了几种整体结构的分野。常见的结构包括:简单结构、层结构、微内核结构、垂直结构、和虚拟机结构。

三、操作系统的内核结构

      内核是操作系统最内核最基础的构件,因而,内核结构往往对操作系统的外部特性以及应用领域有着一定程度的影响。尽管随着理论和实践的不断演进,操作系统高层特性与内核结构之间的耦合有日趋缩小之势,但习惯上,内核结构仍然是操作系统分类之常用标准。

      内核的结构可以分为 单内核、微内核、混合内核、外内核等。

      1、单内核(Monolithic kernel),又称为宏内核。单内核结构是操作系统中各内核部件杂然混居的形态,该结构于1960年代(亦有1950年代初之说,尚存争议),历史最长,是操作系统内核与外围分离时的最初形态。

      2、微内核Microkernel),又称为微核心。微内核结构是1980年代产生出来的较新的内核结构,强调结构性部件与功能性部件的分离。20世纪末,基于微内核结构,理论界中又发展出了超微内核与外内核等多种结构。尽管自1980年代起,大部分理论研究都集中在以微内核为首的“新兴”结构之上,然而,在应用领域之中,以单内核结构为基础的操作系统却一直占据着主导地位。

      3、混合内核(Hybrid kernel)像微内核结构,只不过它的组件更多的在核心态中运行,以获得更快的执行速度。

      4、外内核(Exokernel)的设计理念是尽可能的减少软件的抽象化,这使得开发者可以专注于硬件的抽象化。外核心的设计极为简化,它的目标是在于同时简化传统微内核讯息传递机制,以及整块性核心的软件抽象层。

四、操作系统的主要类型

(一)、批处理操作系统

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

(二)、分时操作系统

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

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

(三)、实时操作系统

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

(四)、网络操作系统

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

(五)、分布式操作系统

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

  分布式操作系统是网络操作系统的更高形式,它保持了网络操作系统的全部功能,而且还具有透明性、可靠性和高性能等。网络操作系统和分布式操作系统虽然都用于管理分布在不同地理位置的计算机,但最大的差别是:网络操作系统知道确切的网址,而分布式系统则不知道计算机的确切地址;分布式操作系统负责整个的资源分配,能很好地隐藏系统内部的实现细节,如对象的物理位置等。这些都是对用户透明的。

(六)、大型机操作系统

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

(七)、嵌入式操作系统

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

五、操作系统的主要功能

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

(一)、资源管理

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

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

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

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

(二)、程序控制

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

(三)、人机交互

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

(四)、进程管理

  不管是常驻程序或者应用程序,他们都以进程为标准执行单位。当年运用冯纽曼架构建造电脑时,每个中央处理器最多只能同时执行一个进程。早期的OS(例如DOS)也不允许任何程序打破这个限制,且DOS同时只有执行一个进程(虽然DOS自己宣称他们拥有终止并等待驻留(TSR)能力,可以部分且艰难地解决这问题)。现代的操作系统,即使只拥有一个CPU,也可以利用多进程(multitask)功能同时执行复数进程。进程管理指的是操作系统调整复数进程的功能。

  由于大部分的电脑只包含一颗中央处理器,在 单内核(Core)的情况下多进程只是简单迅速地切换各进程,让每个进程都能够执行,在多内核或多处理器的情况下,所有进程通过许多协同技术在各处理器或内核上转换。越多进程同时执行,每个进程能分配到的时间比率就越小。很多OS在遇到此问题时会出现诸如音效断续或鼠标跳格的情况(称做崩溃(Thrashing),一种OS只能不停执行自己的管理程序并耗尽系统资源的状态,其他使用者或硬件的程序皆无法执行)。进程管理通常实现了分时的概念,大部分的OS可以利用指定不同的特权等级(priority),为每个进程改变所占的分时比例。特权越高的进程,执行优先级越高,单位时间内占的比例也越高。交互式OS也提供某种程度的回馈机制,让直接与使用者交互的进程拥有较高的特权值。

(五)、内存管理

  根据帕金森定律:“你给程序再多内存,程序也会想尽办法耗光”,因此程序员通常希望系统给他无限量且无限快的存储器。大部分的现代计算机存储器架构都是层次结构式的,最快且数量最少的暂存器为首,然后是高速缓存、存储器以及最慢的磁盘存储设备。而操作系统的存储器管理提供查找可用的记忆空间、配置与释放记忆空间以及交换存储器和低速存储设备的内含物……等功能。此类又被称做虚拟内存管理的功能大幅增加每个进程可获得的记忆空间(通常是4GB,既使实际上RAM的数量远少于这数目)。然而这也带来了微幅降低运行效率的缺点,严重时甚至也会导致进程崩溃。

  存储器管理的另一个重点活动就是借由CPU的帮助来管理虚拟位置。如果同时有许多进程存储于记忆设备上,操作系统必须防止它们互相干扰对方的存储器内容(除非通过某些协定在可控制的范围下操作,并限制可访问的存储器范围)。分区存储器空间可以达成目标。每个进程只会看到整个存储器空间(从0到存储器空间的最大上限)被配置给它自己(当然,有些位置被操作系统保留而禁止访问)。CPU事先存了几个表以比对虚拟位置与实际存储器位置,这种方法称为标签页(paging)配置。

  借由对每个进程产生分开独立的位置空间,操作系统也可以轻易地一次释放某进程所占据的所有存储器。如果这个进程不释放存储器,操作系统可以退出进程并将存储器自动释放。

(六)、虚拟内存

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

六、典型系统

(一)、UNIX操作系统

      1、优点:(1)UNIX系统是一个多用户,多任务的分时操作系统。(2)UNIX的系统结构可分为两部分:操作系统内核(由文件子系统和进程控制子系统构成,最贴近硬件),系统的外壳(贴近用户)。外壳由Shell解释程序,支持程序设计的各种语言,编译程序和解释程序,实用程序系统调用接口等组成(3)UNIX系统大部分是由C语言编写的,这使得系统易读,易修改,易移植。(4)UNIX提供了丰富的,精心挑选的系统调用,整个系统的实现十分紧凑,简洁。(5)UNIX提供了功能强大的可编程的Shell语言(外壳语言)作为用户界面具有简洁,高效的特点。(6)UNIX系统采用树状目录结构,具有良好的安全性,保密性和可维护性。(7)UNIX系统采用进程对换(Swapping)的内存管理机制和请求调页的存储方式,实现了虚拟内存管理,大大提高了内存的使用效率。(8)UNIX系统提供多种通信机制,如:管道通信软中断通信,消息通信,共享存储器通信,信号灯通信。

2、缺点:有些软件可能无法运行。

(二)、LINUX操作系统

     1、优点:(1)安全 - 几乎不存在诸如病毒、间谍软件、流氓软件之类的问题。(2)易维护。(3)稳定。(4)软件自由/开源 - 您可以随意的使用软件,而不用受制于所谓的用户许可协议。(5)开放标准 - GNU/Linux 和运行在其上的应用程序,大多数都符合开放标准。 (6)社区 - GNU/Linux已经被形容为 "world wide team sport",由全世界的优秀程序员提供支持。(7)低成本 - 大多数 GNU/Linux 发行版是可以免费下载的,并且拥有大量的免费程序支持。此外,大多数 GUN/Linux 对硬件的要求较低,这意味着您并不需要频繁的对硬件进行升级。(8)合法 - 人们可以合法并且免费的获取一些高质量的软件。(9)透明公开 - 绝大多数 GNU/Linux 是开放开发的。(10)多样选择 。    2、缺点: (1)从头学起 - 您将会学习一个全新的不同的操作系统、很多新的程序,以及很多全新的名词术语。(2)缺失的应用软件和游戏 - 您会失去一些熟知的应用程序,典型的如Microsoft Office、 Adobe Photoshop 和其他流行的大型主流游戏。(3)缺少硬件支持 - 绝大多数硬件是支持的,但不是全部都能兼容。(4)寻求帮助更难 - 通常朋友、家人、同事不能帮您解决 GNU/Linux 相关问题。

(三)、WINDOWS操作系统

     1优点:文件的库管理化。是针对现在硬盘越来越大来用的,可以更方便的在动辄一两个TB的硬盘中找到你的文件,即使你根本就不知道它在哪。你安装的程序,系统负责给你收集起来,你拷贝的文件,系统负责给你分门别类放好。

对硬件效能的更大利用。文献是这么说的。具体没有测试。

当然,同上,视觉效果是好一些。

     2缺点:资源占用更大了!当然,现在的硬件也更好了,如果你是古董机……你可能不会再清楚你的程序装哪了,因为硬盘大了,系统给你管理了,你自己就不用记了,可是以后如果你需要对你的程序做一些特殊操作,比如手动改变一些程序设置。程序的兼容性不太好。这里包括你看一些网页都会出现莫名其妙的错误。过些日子可能会好一些。

(四)、ANDROID(安卓)操作系统

     1、优点:(1)开放性—开发的平台允许任何移动终端厂商加入到Android联盟中来。(2)挣脱运营商的束缚。(3)丰富的硬件选择—由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。(4)不受任何限制的开发商—Android平台提供给第三方开发商一个十分宽泛、自由的环境。(5)无缝结合的Google应用

     2、缺点:(1)android的缺点一方面是因为系统由各个OEM厂商负责升级而产生的版本上的碎片化,另一方面由于过度自由化而产生的安全问题,很典型的就是国内山寨厂商和山寨应用而带来的一系列的安全问题,毕竟在国内可以说是没有正规的软件商店的,google play国内版相对国际版就是个笑话;(2)安卓高度依赖硬件,导致要发挥安卓的性能就必须搭载很好的硬件,同时兼容性也有待提高,还有很多细节上的不足比如死机重启等情况也经常发生。这个曾是安卓被人诟病最多的问题,不过最新的安卓已经对以往的不足进行优化了。

(五)、IOS操作系统

     1、优点:(1)省电。(2)系统相对稳定。(3)apple store中下载安装的软件兼容性强。(4)apple store中下载安装的软件(ipa格式)删除后不会留下冗余的系统垃圾文件。

     2、缺点:(1)来电、短信显示归属地,短信回执、flash等系统级软件,在iphone上不越狱是永远无法实现的。(2)系统权限很低。例如,我们不能删掉系统的程序,不能对系统文件和设置进行修改,不能给某个程序加密,不能用蓝牙发送文件,不能用第三方输入法等等……而且第三方软件也不可能实现,为什么呢?应用开发者想在APP商店上架,他们的作品也必须要经过苹果APP Store的认可。(3)只能安装免费程序、快用中的程序或者App Store付费下载的软件。无法装没有账号证书的软件(如盗版后的.ipa、pxl)。(4)无法更换主题、图标等个性化程序。(5)无法对使用手机直接在浏览器中下载文件,以及对手机的文件进行管理。

原文地址:https://www.cnblogs.com/moliny/p/5267137.html