操作系统(Operating System,简称OS)的出现、使用和发展是近四十余年来计算机软件的一个重大进展。尽管操作系统尚未有一个严格的定义,但一般认为:操作系统是管理系统资源、控制程序执行,改善人机界面,提供各种服务,合理组织计算机工作流程和为用户使用计算机提供良好运行环境的一种系统软件。
计算机系统包括硬件和软件两个组成部分。硬件是所有软件运行的物质基础,软件能充分发挥硬件潜能和扩充硬件功能,完成各种系统及应用任务,两者互相促进、相辅相成、缺一不可。

1、批处理操作系统
用户把要计算的应用问题编成程序,连同数据和作业说明书一起交给操作员,操作员集中一批作业,并输入到计算机中。然后,由操作系统来调度和控制用户作业的执行,形成一个自动转接的连续处理的作业流,最后,由操作员把运算结果返回给用户。通常,采用这种批量处理作业方式的操作系统称为批处理操作系统(Batch Operating System)。
批处理操作系统根据一定的调度策略把要求计算的算题按一定的组合和次序去执行,从而,系统资源利用率高,作业的吞吐量大。缺点是:作业周转时间长,不能提供交互计算能力
2、分时操作系统
在批处理系统中,用户不能干预自己程序的运行,无法得知程序运行情况,对程序的调试和排错不利。为了克服这一缺点,便产生了分时操作系统。
分时操作系统(Time Sharing Operting System):允许多个联机用户同时使用一台计算机系统进行计算的操作系统.每个用户在各自的终端上以问答方式控制程序运行,系统把中央处理器的时间划分成时间片,轮流分配给各个联机终端用户,每个用户只能在极短时间内执行,若时间片用完,而程序还未做完,则挂起等待下次分得时间片。
3、实时操作系统
虽然多道批处理操作系统和分时操作系统获得了较佳的资源利用率和快速的响应时间,从而,使计算机的应用范围日益扩大,但它们难以满足实时控制和实时信息处理领域的需要。于是,便产生了实时操作系统
实时操作系统(Real Time Operating System)是指当外界事件或数据产生时,能够接收并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。
三种典型的实时系统,
- 过程控制系统
- 信息查询系统
- 事务处理系统。
4、微机操作系统
新一代微机操作系统具有GUI、多用户和多任务、虚拟存储管理、网络通信支持、数据库支持、多媒体支持、应用编程支持API 等功能。并且还具有以下特点:
1)开放性。支持不同系统互连、支持分布式处理和支持多CPU 系统。
2)通用性。支持应用程序的独立性和在不同平台上的可移植性。
3)高性能。随着硬件性能提高、64位机逐步普及、CPU速度进一步提高,微机操作系统中引进了许多以前在中、大型机上才能实现的技术,支持虚拟存储器,支持多线程,支持对称处理器SMP,导致计算机系统性能大大提高。
4)采用微内核结构。提供基本支撑功能的内核极小,大部分操作系统功能由内核之外运行的服务程序(也称服务器)来实现。
5、并行操作系统
计算机的应用经历了从数据处理到信息处理,从信息处理到知识处理,每前进一步都要求增加计算机的处理能力。为了达到极高的性能,除提高元器件的速度外,计算机系统结构必须不断改进,而这一点主要采用增加同一时间间隔内的操作数量,通过并行处理(parallel processing)技术,研究并行计算机来达到的.
并行计算机:
- 阵列处理机
- 流水线处理机
- 多处理机
6、网络操作系统
计算机网络是通过通信设施将地理上分散的并具有自治功能的多个计算机系统互连起来的系统。网络操作系统(Network Operating System)能够控制计算机在网络中方便地传送信息和共享资源,并能为网络用户提供各种所需服务的操作系统。
网络操作系统主要有两种工作模式:
第一种是客户机/服务器(Client/Server)模式,这类网络中分成两类站点,一类作为网络控制中心或数据中心的服务器,提供文件打印、通信传输、数据库等各种服务;另一类是本地处理和访问服务器的客户机。这是目前较为流行的工作模式。另一种是对等(Peer-to-Peer)模式,这种网络中的站点都是对等的,每一个站点既可作为服务器,而又可作为客户机。
7、分布式操作系统
以往的计算机系统中,其处理和控制功能都高度地集中在一台计算机上,所有的任务都由它完成,这种系统称集中式计算机系统。而分布式计算机系统是指由多台分散的计算机,经互连网络连接而成的系统。每台计算机高度自治,又相互协同,能在系统范围内实现资源管理,任务分配、能并行地运行分布式程序。
8、嵌入式操作系统
嵌入式(计算机)系统硬件不再以物理上独立的装置或设备形式出现,而是大部分甚至全部都隐藏和嵌入到各种应用系统中。由于嵌入式(计算机)系统的应用环境与其他类型的计算机系统有着巨大的区别,随之带来了对嵌入式(计算机)系统的软件、即嵌入式软件(embedded software)的要求,而嵌入式操作系统是嵌入式软件的基本支撑。从而,形成了现代操作系统的一个类别 – 嵌入式操作系统。
操作系统有两个职责:对硬件进行管理和抽象,为应用提供服务并进行管理.
从硬件的角度看:
操作系统主要包含两类共性功能:一是管理硬件,二是对硬件进行抽象.一方面,操作系统将复杂的、具备不同功能的硬件资源纳人统—的管理.另一方面,操作系统负责将硬件抽象成不依赖具体硬件特性的资源.在这个过程中,操作系统的核心功能是将有限的、离散的资源高效地抽象为无限的、连续的资源,并将硬件通过易用的接口提供给上层的应用,从而使应用无须关心硬件的具体细节.
从应用的角度来看:
操作系统主要包含两类共性功能:一是服务于应用,二是管理应用。一方面操作系统提供了各种不同层次、不同功能的接口(如系统调用等)以满足应用的需求,还提供了不同类型的访问控制、应用间交互等服务.另—方面,操作系统还负责对应用生命周期的管理,包括应用的加载、启动、切换、调度销毁等.通过对应用的管理,操作系统能够从全局角度进行资源分配.从而保证应用间的公平性、性能与安全的隔离性限制少数恶意应用对系绞整体产生的影响.

系统调用接口:
应用程序通过操作系统内核提供的接口向内核申请服务。
POSIX接口:
由于每个操作系统提供的系统调用各不相同,为了同—个应用程序在不同操作系统上的可移植性,逐渐形成了一些可移植操作系统接口标准.
IEEE于20世纪80年代为能同时在不问UNIX操作系统上运行的软件定义了一套标准的操作系统API,其正式名称为IEEE Std 1003,国际标准的名称为ISO/IEC9945.
POSIX标准通常通过libc来实现.
领域应用接口:
在POSIX或操作系统调用的基础上还可以封装面向不同领域的领域应用接口.
为了开发的便捷性(如更多可复用的功能),人们逐渐开始为各个应用领域定义应用开发接口与软件架构.
例如,面向汽车领域,一些车企联合起来定义了AUTOSAR,以方便汽车电子平台各个部件的开发者遵循同—个标准和软件架构进行开发.