为了使计算机系统的所有软件、硬件资源协调一致,有条不紊地工作,就必须有一个软件来进行统一的调度和管理,这种软件就是操作系统。操作系统依靠BIOS直接运行在裸机之上,是对计算机硬件的扩充。操作系统是计算机硬件与其他软件的接口,也是用户与计算机之间的接口。
操作系统(Operating System,OS)是计算机系统中最重要的软件,通常由若干个功能模块组成。操作系统能够合理地组织和管理计算机的各种软件硬件资源、综合安排计算机的工作流程、控制及支持各种程序的运行、向用户提供各种服务,使用户能够灵活、方便、有效地使用计算机,并使计算机系统能够高效率地运行。
可以形象地将操作系统的作用比喻为计算机系统的“管家”,即担负各种管理职能,如存储管理、设备管理、文件管理、作业管理等。操作系统主要有三个方面的重要作用。
(1)管理系统中的各种软件硬件资源。
在计算机系统中,各种硬件设备称为硬件资源,各类软件和数据称为软件资源。计算机中通常会有多个程序在运行,而各个运行的程序都需要使用系统的各种系统资源,操作系统就承担着管理、调度和分配这些资源的工作,以避免冲突,保证各程序能够正常、有序地运行。
(2)为用户提供友善方便的人机界面。
用户界面(User Interface)也被称为人机接口,它是用户操作计算机时所面对的软件、硬件部分的总和。操作系统通过其相应软件模块的作用,将操作计算机的各种复杂的专业化指令转化为键盘、鼠标、显示器以及菜单、窗口、工具栏等容易理解的操作元素,使用户能够很方便地操作使用计算机。另外,操作系统还能对系统中发生的各种错误以及用户的错误操作进行适当的处理并向用户发出警告。
(3)为应用程序的开发和运行提供运行环境。
计算机系统中的同一硬件设备往往有许多种类和规格,使用这些设备的技术细节不仅复杂而且随硬件的不同而不同。在操作系统的管理和支持下,可以对外界提供一个规范的运行条件,它包括各种库函数和系统功能调用,以使各种软件可以使用统一的方式对硬件进行操作,从而为软件的开发和运行带来极大的方便。
操作系统是随着计算机硬件的发展和计算机应用的深入而产生的。
操作系统的形成大致经历了手工操作、管理程序、操作系统三个阶段。
在第一代计算机中,由于应用不普及、计算机运行速度慢,人们采用手工方式管理和使用计算机。在这种方式下,计算机的全部资源由使用者单独占用,操作人员使用操作面板来对程序的运行过程进行干预,操作步骤烦琐,工作效率低下。
第二代计算机的运算速度和存储容量都有了很大提高,人们开始编制管理程序,利用计算机自身的能力来管理计算机。管理程序在操作人员的干预下对计算机的软件、硬件资源进行管理和调度。这种方式属于半自动化方式,工作效率有了很大提高。
从第三代计算机开始,计算机的功能有了很大的发展,为操作系统的形成创造了有利的条件,功能简单的管理程序迅速发展为系统软件的核心——操作系统。
计算机系统在运行工程中,各个程序都要使用处理器,如何对程序使用处理器的要求做出适当的响应是操作系统处理器管理要解决的问题。在计算机系统中,操作系统是以进程和作业的方式进行管理的。处理器管理的工作主要是根据各个程序和用户提出的使用要求,以进程或作业为单位,按照某些事先决定好的策略,统筹合理地分配处理器资源,提高系统的工作效率。
虽然计算机系统的内存容量在不断地扩大,但其总容量还是有限的,而各个运行着的程序以及相关的数据都要使用内存。存储管理就是按照既定策略给各个要运行的程序与数据分配内存空间,在程序运行结束时收回该空间,保证它们之间不产生冲突和干扰。现代计算机系统通常采用虚拟存储技术,将一部分磁盘空间当作内存使用,存储当前暂时不用的内存信息,以腾出内存空间存储当前要使用的信息。存储管理的另一项功能就是要对虚拟存储进行有效管理,以提高系统的运行能力。
随着技术外部设备的迅速发展,如何有效地分配和使用外部设备、如何协调处理器与外部设备的工作节奏、如何统筹安排各个程序对外部设备的使用请求,成为操作系统设备管理的主要任务。通常情况下,外部设备的工作速率远远低于处理器的工作速率,操作系统按照外部设备的不同性能特点采用不同的分配策略对应用程序使用外部设备的请求做出响应,完成各种外部设备的驱动,并且为用户提供一定的使用外部设备的命令。
在计算机系统中,把逻辑意义上完整的信息集合称为文件。计算机系统使用的所有程序、数据、文档都以文件的形式存储在相关的存储介质上。操作系统的文件管理功能是:对存储在计算机中的文件进行逻辑上的和物理上的组织和管理,实现文件的“按名存取”;有效地分配文件的存储空间;建立文件目录;提供合适的文件存取和检索手段;实现文件的共享、保护、加密等功能;向用户提供用于文件操作的一组命令。
操作系统作业管理的主要任务是:根据系统条件和用户需要,对各个作业进行合理的组织以及相应的控制;按照一定的原则完成作业的调入、执行、撤离;解决诸如中断、并发、共享、冲突等问题;向用户提供用于进程管理的相关命令;保证系统能够安全、高效、有序地运行。例如,根据系统能力和当前的运行情况,按照某个策略,从后备作业队列中选出一些作业,为它们分配所需要的存储空间和外部设备,将它们调入内存并建立相应的进程,使它们成为具有获得处理机资格的侯选进程。
随着计算机技术的飞速发展,目前所使用的操作系统有多种类型,其功能也有较大差异,各种不同类型的计算机硬件系统都有与其相适应的操作系统产品。从不同角度出发,可以有不同的分类方法。
按照所提供的界面类型,操作系统可分为字符用户界面(CUI)和图形用户界面(GUI)两类。
在字符用户界面下,各种操作指令必须以命令方式输入,运行结果也以字符方式显示,早期的操作系统大都采用这种方式,如DOS操作系统。
图形用户界面以图形代替各种操作元素,操作指令也以菜单、按钮等形式列出,以方便用户使用,目前的操作系统都采用这种方式,如Windows操作系统。
按照系统的运行方式,操作系统可分为批处理操作系统、分时操作系统、实时操作系统、网络操作系统四类。
批处理操作系统是早期使用的一种方式,它允许用户将由程序、数据以及如何运行的操作说明组成的“作业”一批批地输入计算机,然后由系统自动运行,直至运行完毕。
分时操作系统是将CPU的时间划分为一个个时间片,轮流处理多个用户提交的各种操作,由于计算机的高速性能和并行处理的特点,使得每个用户感觉不到别人也在使用这台计算机,就好像他独自使用该计算机一样,大型计算机通常都使用这类操作系统,如UNIX、Linux等操作系统。
实时操作系统被应用在对响应时间要求比较高的场合,它能够对输入信息以足够快的速度进行处理,以便能在一定时间内完成用户所提交的作业,如RDOS操作系统。
网络操作系统是在单机操作系统的基础上发展起来的,它能够管理网络通信和网络中的各种软件硬件资源,协调网络中各个计算机的任务执行,向用户提供统一、方便、高效的网络接口。
按照所能支持的用户数量,操作系统可分为单用户操作系统和多用户操作系统两类。
单用户操作系统的计算机系统的所有软件硬件资源只能为一个用户提供服务,也就是说不能同时为多个用户提供服务,PC机的操作系统大部分属于这种情况。
多用户操作系统能够管理和控制由多个终端组成的计算机系统,为同时进行操作的若干个用户提供服务,在大型计算机上被广泛使用。
按照所能同时执行的任务数量,操作系统可分为单任务操作系统和多任务操作系统两类。
单任务操作系统用户一次只能提交一个任务,待该任务执行完成后才能提交下一个任务,同一时刻只能运行一个程序,如早期的DOS操作系统。
多任务操作系统可以同时接受并处理用户提交的多个任务,可以让几个程序同时运行,如Windows操作系统。
UNIX是广泛应用在大、中、小型计算机上的操作系统。UNIX操作系统的各个模块大都使用C语言编写,具有较高的可移植性,可以很方便地从一台计算机移植到另一种计算机。UNIX采用树形结构的文件系统,将外部设备也作为文件对待,是一个真正的多用户、多任务操作系统。UNIX在结构上分为两大部分:核心层和用户层。核心层包括进程管理、存储管理、设备管理和文件管理模块;用户层充分利用核心层提供的功能,向用户提供大量的服务,包括用户命令解释程序(shell)。UNIX向用户提供了良好的操作界面,用户可以在操作终端上使用各种命令与系统进行交互,也可以通过程序进行各种系统功能调用。其用户命令解释程序(shell)既起着命令解释的作用,又可以作为程序设计语言来进行程序结构控制和变量运算处理,所以常用来编写各种程序,称为shell编程。
Windows是在PC系统中广泛使用的操作系统,由Microsoft公司开发。它是一种采用图形用户界面(GUI)的单用户、多任务操作系统。Windows用“窗口”、“对话框”、“图标”、“菜单”等图形元素代替复杂的字符命令,使用丰富多彩的图形操作界面,便于普通用户掌握和使用。Windows提供多种数据格式和许多外部设备驱动程序,为实现多媒体功能创造了有利条件。在Windows中集成了网络通信和管理功能,可以共享局域网和Internet资源。由于使用了自动内存扩充技术和虚拟内存技术,Windows可以使计算机运行比实际内存容量大得多的应用程序。Windows操作系统还附带了许多各种管理工具和办公、家用软件,给用户使用计算机带来很大方便。从1983年Windows推出至今,前后共有将近11个不同版本,每一个新版本都增加了对新技术、新设备的支持,增加了新的程序和工具,提供了更好的性能和易用方便的特性。
从20世纪80年代开始,UNIX开始在PC机中得到应用。1991年芬兰赫尔辛基大学开发的Linux是在UNIX的基础上演化而来的,它采用模块化结构,便于扩充系统功能,可以和其他网络操作系统集成,提供Web服务、文件及打印服务、数据库服务、网络服务等,在计算机网络领域得到广泛的应用。Linux继承了UNIX的以网络为核心的设计思想,支持多任务、多进程、多CPU,是与UNIX兼容的32位操作系统,能够运行主要的UNIX工具软件、应用程序、网络协议,支持32位和64位硬件,性能稳定且兼容性好。Linux的源代码是公开的,属于所谓的“开源软件”,世界各地的程序设计爱好者自发地组织起来,对Linux进行各种改进和编写各种应用程序,而这些程序也都是“开源”和免费的,这大大促进了Linux以及相关软件的推广。如今,Linux以及相关软件已经成为计算机软件中的一支重要生力军。