2.1 操作系统概述
2.1.1 操作系统概述
世界上第一台通用计算机(简称“ENIAC”)的操作模式是最原始的人工直接操作硬件,这种操作模式造成了第一代通用计算机的明显缺点,首先一次只能供一个用户使用,其次不同的硬件要求程序员做出不同的编程,程序通用性差,并且由于依靠打孔的形式进行编程,一旦出现任何一点错误,就需要重新编程,工作量大。于是随着硬件的发展和使用者的需求,从20世纪70年代中期开始出现了计算机操作系统(Operating System, OS)。
那么具体什么才是操作系统呢?我们先通过图2-1来看一下操作系统在计算机系统中的位置。
通过图2-1我们可以看到,操作系统在计算机系统中位于硬件和应用软件之间,所以,操作系统既面向系统资源又面向用户。面向系统资源时,操作系统必须尽可能提高资源利用率;面向用户时,操作系统必须提供方便易用的用户界面。
图2-1 操作系统在计算机系统中的位置
从用户角度看,操作系统是用户使用计算机的界面,提供了用户与计算机硬件之间的接口,一般分为3种方式:命令方式、系统调用方式、图标——窗口方式。从软件角度看,操作系统是程序与数据结构的集合,它是直接和硬件相邻的第一层软件,是由大量极其复杂的系统程序和众多的数据结构集成的。从系统角度看,操作系统能够对计算机资源进行管理,这些资源包括硬件和软件。操作系统向用户提供了高级而调用简单的服务,掩盖了绝大部分硬件设备复杂的特性和差异,使得用户可以免除大量乏味的杂务,而把精力集中在自己所要处理的任务上。
操作系统主要具有3个作用。
(1)操作系统让计算机根据用户的需求合理而有效地组织管理各类资源,最大限度地发挥它的作用,充分实现系统的各种功能,提高系统的工作效率。
(2)操作系统创造了用户和计算机之间的友好界面。在操作系统的协助下,用户能够方便灵活、安全可靠、经济有效地使用计算机解决实际问题。
(3)操作系统的发展使得软件编程有了良好便捷的开发和运行环境。多种多样的软件也极大地丰富和方便了我们现在的生活。
总而言之,操作系统是一组能够控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户的程序集合,是直接运行在“裸机”上的最基本的系统软件。其他任何软件都必须在操作系统的支持下才能运行,它是连接用户和计算机硬件的接口。
2.1.2 操作系统的功能
通过操作系统的概念可以知道,操作系统是计算机中具有一定功能的软件系统,它的目的是方便用户使用计算机资源和提高计算机资源的利用率。在计算机系统中,操作系统提供了以下功能。
1. 提供人机接口
用户是通过操作系统提供的人机接口来使用计算机的,操作系统为用户提供了两种接口,即作业控制级接口、程序级接口。
(1)作业控制级接口
作业是用户一次请求计算机系统为其完成的工作的总和。一个作业通常是由若干个相对独立、顺序相关的作业步构成的。
作业控制级接口是用于作业控制的,用户需要按自己的需求对作业流程进行控制。作业控制级接口就是系统为用户提供的实现手段,它通过在用户和操作系统之间提供高级通信来控制一组程序的处理。这个接口又称命令接口,用户可以通过键盘输入或在作业中发出一系列命令,告诉操作系统执行哪些功能。它分联机用户接口和脱机用户接口。
联机用户接口也称交互式用户接口,它用于对联机作业的控制,是由一组键盘字符命令(或鼠标命令)和命令解释器组成的。用户可以使用联机交互方式使用计算机,用户每键入一个合法的命令(解释器能执行的命令),则启动一个作业步,一个作业步执行完毕后,再键入下一个命令,则启动下一个作业步,直至整个作业的完成。交互式用户接口又分为键盘字符命令接口和图形接口。
脱机用户接口也称批处理用户接口,它用于脱机作业控制。用户利用作业控制语言将对作业流程的控制意图书写成一份作业说明书交由系统。这种模式下一旦作业提交,用户将无法干预作业的运行,因此,必须事先设计好作业流程,预想可能出现的错误并给出相应的处理方法。
(2)程序级接口
程序级接口是为用户在程序一级提供相关服务而设置的,由一系列系统功能调用命令组成。操作系统通过程序级接口为用户提供了用于完成某些通用功能的程序,供用户在开发程序时使用,方便用户编程,提高编程效率。
2. 管理计算机资源
计算机系统中的资源分为硬件资源和软件资源。硬件资源包括处理机、存储器、外部设备,软件资源包括程序和数据。现代计算机系统大多为单用户多任务操作系统或者多用户多任务操作系统。这就意味着计算机资源可能会同时被多个程序共同使用,如何合理分配资源、提高系统运行效率是操作系统需要解决的问题。计算机资源的管理主要分为以下几个方面。
(1)处理机管理
处理机的任务是运行程序,程序在某个数据对象上的一次运行过程称为进程,所以处理机管理又称为进程管理。进程管理的主要功能包括创建和撤销进程,对诸进程的运行进行协调,实现进程之间的信息交换,以及按照一定的算法把处理机分配给进程。处理机管理主要包括进程控制、进程同步、进程通信、进程调度。
(2)存储管理
存储管理可在多道程序环境中,保证内存中的多道程序顺利运行,提高内存使用率,并在逻辑上扩充内存。存储管理功能主要包括内存分配、内存保护、地址映射、内存扩充。
(3)设备管理
设备管理的任务是接受用户的I/O请求,为用户程序分配I/O设备,并完成指定I/O操作。设备管理的任务还包括使CPU和I/O设备并行操作,提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。设备管理主要包括缓冲管理、设备分配、设备处理(设备驱动程序)。
(4)文件管理
文件管理的主要任务是对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性。文件管理主要包括文件存储空间的管理、目录管理、文件的读/写管理和保护。
2.1.3 几种典型的操作系统
1. Windows
Microsoft Windows是美国微软公司研发的一套操作系统,它问世于1985年,起初仅仅是Microsoft-DOS模拟环境,后来,系统版本不断地更新升级,慢慢地成为人们喜爱的操作系统。
Windows采用了图形化界面(GUI)模式,比起从前DOS的需要键入指令使用的方式更为人性化。随着计算机硬件和软件的不断升级,微软的Windows也在不断升级,从16位、32位再到64位系统,版本从最初的Windows 1.0到大家熟知的Windows 98、Windows XP、Windows 7、Windows 10和Windows Server服务器企业级操作系统,不断持续更新,微软一直在致力于Windows操作系统的开发和完善,图2-2所示就是Windows 10的操作界面。
图2-2 Windows 10的操作界面
Windows系统也会被用在低级和中级服务器上,并且支持网页服务、数据库服务等。微软花费了大量的经费用于研究和开发,以使Windows系统拥有运行企业大型程序的能力。
2. Linux
Linux是一套免费使用和自由传播的类UNIX操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了UNIX以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991年10月5日(这是其作者第一次正式向外公布的时间)。Linux存在着许多不同的版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux的内核。Linux是使用GNU工程的各种工具和数据库的操作系统,Linux Centos7版本的操作界面如图2-3所示。
图2-3 Linux Centos7版本的操作界面
3. Mac OS X
Mac OS是一套运行于苹果Macintosh系列计算机上的操作系统。Mac OS由美国苹果公司自主开发,是首个在商用领域取得成功的图形用户界面操作系统。Mac系统是基于UNIX内核的图形化操作系统,一般情况下,在普通PC上无法安装。Mac计算机的操作系统已经更新到了OS 10,代号为Mac OS X(X为10的罗马数字写法),这是Mac计算机诞生15年来最大的变化。新系统非常可靠,它的许多特点和服务都体现了苹果公司的理念。2011年7月20日,Mac OS X正式被苹果公司改名为OS X,经过历年更新,苹果公司于2017年6月5日举行了开发者大会,将Mac OS再次进行了更新,苹果给它起名为“High Sierra”,界面如图2-4所示。
图2-4 Mac OS界面
4. Android
Android是一种基于Linux® V2.6内核的综合操作系统。最初,Android的部署目标是移动电话领域,包括智能电话和更廉价的翻盖手机。Android操作系统最初由Andy Rubin开发,他于2003年10月创建了Android公司,并组建了Android团队。2005年,Android公司被Google公司收购注资,后来逐渐研发改良的Android系统扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的iOS以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2013年9月24日,谷歌开发的操作系统Android迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。2017年,市场调研机构Gartner公布了第一季度智能手机市场报告,报告显示Android的市场份额已经达到了86.1%,图2-5所示是某款Android手机的操作界面。
图2-5 某款Android手机的操作界面
5. iOS
iOS是由苹果公司为iPhone开发的操作系统,它主要是给iPhone、iPod touch及iPAD使用的。原本这个系统名为iPhone OS,直到2010年6月7日,在WWDC大会上宣布其改名为iOS。该系统最初是设计给iPhone使用的,后来陆续套用到了iPod touch、iPAD及Apple TV等苹果产品上。iOS与苹果的Mac OS X操作系统一样,属于类UNIX商业操作系统,图2-6所示是某款iOS手机的操作界面。
图2-6 某款iOS手机的操作界面