操作系统简介

前言

操作系统是管理计算机软硬件资源的一个平台,没有它,任何计算机都无法正常运行。在个人电脑发展史上,出现过许多不同的操作系统,其中最为常用的有五种:DOS、Windows、Linux、Unix(Mac) 、OS/2。

操作系统的定义

操作系统是用户和计算机之间的接口。
操作系统负责管理计算机系统的全部硬件资源和控制软件的执行。
改善人机界面。
操作系统本身也是软件(系统软件)。

操作系统的主要功能

处理器管理

处理器管理的主要任务,是对处理器资源进行分配,并对其运行进行控制和管理。在多道程序环境下,处理器资源的分配和运行都是以进程为基本单位,所以对处理器的管理可归结为进程的管理。它包括以下几个方面:

功能 作用
进程控制 对正在运行的进程进行资源控制和管理。
进程同步 相互协作的进程之间有共享的数据,在这里会出现进程并发执行,如何确保这些进程并发执行,即进程同步。
进程通信 进程通信就是说在进程之间传输数据。
进程调度 在多道程序运行时,每个程序都需要一个处理器,操作系统动态地把处理机分配给某一个进程,以使之执行。

存储器管理

存储器管理的主要任务,是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率,以及能从逻辑上来扩充内存。为此,存储器管理应具备以下功能:

功能 作用
内存分配 指在程序执行的过程中分配内存的方法。
内存保护 内存分配前,需要保护操作系统不受用户进程的影响,同时保护正在运行的用户进程不受其他用户进程的影响。
内存扩充 有限的容量无法满足大程序和多个程序的存储要求,所以操作系统的存储器管理需要能够支持内存的扩充。

设备管理

设备管理的主要任务,是完成用户提出的I/O请求,为用户分类I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;以及方便用户使用I/O设备。为实现上述任务,设备管理应具备以下功能:

功能 作用
缓冲管理 为了缓和CPU与I/O设备之间速度不匹配的问题,提高CPU和I/O设备的并行性,在现代操作系统中,几乎所有的I/O设备在与处理机交换数据时都用了缓冲区。缓冲管理的主要职责是组织好这些缓冲区,并提供获得和释放缓冲区的手段。
设备分配 每当进程向系统提出I/O请求时,只要是安全的,设备分配程序会按照一定的策略,把设备分配给进程。
虚拟设备 通过虚拟技术将一个物理设备虚拟成多个逻辑设备,提供多个用户进程使用。

文件管理

在现代计算机系统中,我们会把程序和数据以文件的形式存储在磁盘上,供用户使用。
文件管理的主要任务就是对用户文件和系统文件进行管理,以方便用户使用,并且保证文件的安全性。因此,文件管理应该具有对文件存储空间的管理,文件的读、写管理,目录管理以及文件的共享与保护等功能。

作业管理

作业管理的主要任务就是为用户提供一个使用系统的良好环境,使用户能够有效地组织自己的工作流程,并且使整个系统高效的运行。作业管理应具备以下几个功能:
任务、界面管理
人机交互
图形界面
语言控制

Windows系统

起源

1980年3月,苹果公司的创始人史蒂夫·乔布斯在一次会议上介绍了他在硅谷施乐公司参观时发现的一项技术 – 图形用户界面(GUI,Graphic User Interface)技术,微软公司总裁比尔·盖茨听了后,也意识到这项技术潜在的价值,于是带领微软公司开始了GUI软件 – Windows的开发工作。
1985年,微软公司正式发布了第一代窗口式多任务系统 – Windows1.0,由于当时硬件水平所限,Windows1.0并没有获得预期的社会效果,也没有发挥出它的优势。但是,该操作系统的推出,却标志着PC机开始进入了图形用户界面的时代。在图形用户界面的操作系统中,大部分操作对象都用相应的图标(Icon)来表示,这种操作界面形象直观,使计算机更贴近用户的心理特点和实际需求。

windows结构

操作系统简介
用户模式:
Fixed系统支持进程,比如登陆进程和Session管理器,它们都不是Windows服务(不是通过SCM即服务控制管理器启动的)。
服务进程,比如任务调度器和打印机服务,这些服务一般都需要用户登陆才可以运行。很多服务应用程序,比如sql server和exchange server都以服务的方式运行。
用户程序,可以是Windows32位或64位,Windows3.1 16位,MS-DOS 16位,或者POSIX 32位或64位,注意16位程序只能运行在32位系统上。
环境子系统服务器进程,实现了部分支持操作系统的环境,也可以说是展现给用户或者开发者的个性化界面。Windows NT最初发布时带有Windows,POSIX,OS/2三个子系统,Windows 2000是最后带有POSIX和OS/2的子系统,旗舰版和企业版的Windows也支持一个加强版的POSIX子系统,叫做SUA(基于UNIX的应用)。

内核模式:
Windows执行实体,包括基础系统服务,比如内存管理器,进程和线程管理器,安全管理,I/O管理,网络,进程间通信。
Windows内核,包括底层系统函数,比如线程调度,中断,异常分发,多核同步。也提供了一些routine和实现高层结构的基础对象。
设备驱动,包括硬件设备驱动(翻译用户I/O到硬件I/O),软件驱动(例如文件和网络驱动)。
硬件抽象层,独立于内核的一层代码,将设备驱动与平台的差异性分离开。
窗口和图形系统,实现了GUI函数,处理用户接口和绘图。

windows大家族

操作系统简介

windows的特点与应用领域

特点:
直观、高效面向对象的图形用户界面,易学易用。
Windows是目前世界上用户最多、且兼容性最强的操作系统。
用户界面统一、友好、漂亮。
丰富的设备无关的图形操作。
多用户、多任务。

应用领域:
个人办公、企业服务器(windows server)、ATM机、windows mobile等。

Linux系统

起源

Multics计划
上个世纪六十年代,那个计算机还没有很普及,只有少数人才能使用,而且当时的计算机系统都是批处理的,就是把一批任务一次性提交给计算机,然后就等待结果。并且中途不能和计算机交互。往往准备作业都需要花费很长时间,并且这个时候别人也不能用,导致了计算机资源的浪费。
为了改变这种情况,在1965年前后,贝尔实验室(Bell)、麻省理工学院(MIT)以及通用电气(GE)联合起来准备研发一个分时多任务处理系统,简单来说就是实现多人同时使用计算机的梦想,并把计算机取名为Multics(多路信息计算系统),但是由于项目太复杂,加上其他原因导致了项目进展缓慢,1969年贝尔实验室觉得这个项目可能不会成功,于是就退出不玩了。
Unix的诞生
Bell退出Multics计划之后,Bell实验室的那批科学家就没有什么事做了,其中一个叫做Ken Thompson的人在研发Multics的时候,写了一个叫做太空大战(Space Travel)的游戏,Ken Thompson和Dennis Ritchie为了这个游戏需要一个操作系统,他们找了一台闲置的PDP-7机器,在上面以C语言为基础写了个Multics的改编版,于1971年正式发布。这个东西就是后来名扬天下的UNIX了。

荷兰计算机科学家Andrew S. Tanenbaum开发了类Unix操作系统Minix,主要应用于教学实验。虽然免费但不允许进行改进
芬兰的大学生Linus Torvalds在Minix基础上编写了一个操作系统核心软件,并于1991年10月工位Linux 0.0.2版。随后世界上众多的Unix爱好者和黑客共同完善了其余部分。
目前很多商业公司可以免费得到Linux的核心源代码,并加以包装改进后形成自己的产品,即Linux发行套件。

Linux系统架构

操作系统简介

架构组件 功能
Linux内核 内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。
Linux Shell shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。另外,shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。
Linux 文件系统 文件系统是文件存放在磁盘等存储设备上的组织方法。Linux系统能支持多种目前流行的文件系统,如EXT2、 EXT3、 FAT、 FAT32、 VFAT和ISO9660。
Linux 应用 标准的Linux系统一般都有一套都有称为应用程序的程序集,它包括文本编辑器、编程语言、X Window、办公套件、Internet工具和数据库等。

Linux的基本思想

一、一切都是文件。
二、每个软件都有确定的用途。
其中第一条详细来讲就是系统中的所有都归结为一个文件,包括:命令、硬件和软件设备、操作系统、进程等等,对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

常见的Linux操作系统

操作系统简介

Linux的特点及应用场景

特点:
完全免费(免费的内核源代码)
多用户、多任务
良好的界面
支持多种平台

应用场景:
军事领域、服务器、网络设备、游戏机系统等