什么是操作系统
- 操作系统是一个系统软件,它使得计算机变得易用,使得计算机运作变得有序、高效、安全。
- 两个角色:魔术师、大管家
1 操作系统的概念
1.1 计算机系统资源(计算机硬件和计算机软件)
- 文件管理主要管理计算机系统中的信息资源。操作系统对用户文件和系统文件进行有效的管理,有助于提高系统资源利用率和用户满意度。
- 操作系统的文件管理模块是最接近用户的部分,也是用户比较熟悉的部分。
- 现代计算机系统中,文件的存储介质主要是磁盘。不同的操作系统对文件的磁盘存储结构有不同的组织方式,文件在磁盘上以何种结构进行组织和存放直接影响文件存取速度。
- 文件管理的主要功能包括:文件组织方式、目录管理、文件存储控制、文件共享和保护、文件操作和文件存储空间管理等。
- Linux操作系统在很短的时间内得到迅猛的发展,这与其具有的良好特性是分不开的。
1.3 操作系统的定义
操作系统是配置在计算机硬件上的第一层系统软件,它由许多程序模块组成。操作系统为用户控制和管理着计算机系统中的所有软硬件资源,使计算机系统高效工作;同时又为用户提供良好的用户接口,使用户能够方便、有效、安全地使用计算机。
两个重要特征(重要作用):
① 高效资源管理———–大管家
② 方便用户使用———–魔法师
1.3 操作系统的定义
操作系统安全
无论是系统软件还是应用软件,它们都建立在操作系统之上,都要通过操作系统提供的系统功能调用来完成信息的存取和处理。在 络环境中, 络安全可信性的基础是互联 中各主机系统的安全可信性,而主机系统的安全可信性依赖于其上操作系统的安全性。
安全机制已成为当今主流操作系统不可或缺的一部分。
1.4 操作系统的设计目标
5个设计目标
1.高效性
2.方便性
3.可扩充性
4.开放性
5.安全性
2 操作系统的发展与分类
2.1 操作系统发展历史
1.第一代计算机(1946-1955年):计算机主要由电子管组成,无操作系统
2.第二代计算机(1955-1965年):计算机主要由晶体管组成,出现监控程序
2 操作系统的发展与分类
2.1 操作系统发展历史
1.第一代计算机(1946-1955年):计算机主要由电子管组成,无操作系统
2.第二代计算机(1955-1965年):计算机主要由晶体管组成,出现监控程序
嵌入式操作系统
嵌入式操作系统(Embedded Operating System)是为嵌入式应用研制的一种特定操作系统,它运行在嵌入式计算机或嵌入式处理机芯片上,具有及时响应外部请求,调度执行任务和控制I/O设备等操作系统功能。
嵌入式操作系统一般采用微内核结构,常包括以下基本功能:
① 处理机调度。
② 基本内存管理。
③ 通讯机制。
④ 电源管理。
嵌入式操作系统主要具有以下4个特征。
(1)实时性
(2)微型化
(3)可定制
(4)可靠性
3 操作系统的主要功能
操作系统作为系统的资源管理者,并作为计算机和用户间的接口,它的主要功能如下:
(1)处理机管理
(2)存储器管理
(3)设备管理
(4)文件管理
(5)用户接口管理
3.1 处理机管理功能
处理机管理的主要任务是对处理机进行分配,并对其运行进行有效的控制和管理。
处理机管理的主要功能包括:进程控制、进程同步、进程通信、进程调度、线程模型等。
操作系统所采用的处理机管理策略决定了操作系统的主要性能。正是由于操作系统对处理机的管理策略不同,其提供的作业处理方式也就不同。例如,批处理方式、分时处理方式、实时处理方式等。从而,呈现在用户面前,成为具有不同处理方式和不同特点的操作系统。
3.2 存储器管理功能
存储管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用,提高存储器的利用率。
由于内存容量有限,如何在内存中装入更多的并发执行进程以及如何运行比内存容量大得多的进程,这也是需要存储器管理解决的问题。操作系统通常采用虚拟存储技术来提高内存利用率和系统并发程度。如何保证内存中多道程序互不干扰,这也是内存管理的主要功能之一。
存储器管理的主要功能包括:内存分配、地址映射、内存共享、内存保护和内存扩充等。
3.3 设备管理功能
备管理的主要任务是管理各类I/O设备,完成用户提出的I/O请求,要加快I/O信息的传输速度,发挥I/O设备的并行性,为用户屏蔽硬件细节,提供方便简单的设备使用方法。
计算机中所配置的I/O设备多种多样,它们的工作原理、I/O传输速度、传输方式千差万别。为了方便用户操作这些I/O设备,操作系统通常采用统一界面来管理I/O设备,使用户感觉不到差异。操作系统将I/O设备本身的物理特性差异交给设备驱动程序去处理,提高了其适应性。
设备管理的主要功能包括:I/O设备的控制、缓冲管理、设备独立性、设备分配、设备处理、虚拟设备管理和磁盘存储管理等。
文件管理功能
用户接口管理功能
操作系统向用户提供了各种使用接口,包括命令行接口、图形用户接口、系统调用接口等。
1.命令行接口
2.系统调用接口
3.图形用户接口
6 操作系统的运行环境
6.1 操作系统硬件运行环境
1、时钟
为了让计算机的各项操作功能在不同时间段有序、分布完成,计算机必须提供系统时钟。系统时钟通常安装在主机板上,像节拍器一样规律性地控制计算机工作。
系统时钟通常分为两种控制方式:同步时序控制方式和异步时序控制方式。
2、处理机状态及状态转换
计算机系统根据运行程序对资源和机器指令的使用权限把处理机的执行状态分成两类。
(1)核心态(又称为管态、特权状态、系统模式)
核心态是指操作系统运行时,处理机所处的状态。处理机处于核心态时,其上运行的程序可以执行包括特权指令和非特权指令在内的全部机器指令,能访问所有系统资源,并具有改变处理机状态的能力。
(2)用户态(又称目态、目标状态、用户模式)
用户态是指用户程序运行时处理机所处的状态。处理机处于用户态时只能执行硬件机器指令的一个子集,即非特权指令。
3、特权指令和非特权指令
特权指令是只能在核心态下执行的指令,**这些指令的执行不但能影响程序本身,还会影响其他程序甚至整个操作系统。**例如:启动物理设备指令、设置时钟中断指令、控制中断屏蔽指令、存储保护指令等。
非特权指令是在核心态和用户态下都能执行的指令,**这些指令的执行只与运行程序本身有关,不会影响其他程序。**例如:数据传送指令、图形显示指令等。
操作系统能使用特权指令和非特权指令,用户程序只能使用非特权指令。若用户程序直接使用特权指令,可能引起系统冲突或由于某些意外造成系统错误,威胁系统安全。
4、程序状态字
(1)程序状态字(PSW)寄存器
程序状态字用来指示处理机状态、控制指令执行顺序并保留与运行程序有关的各种信息,其主要作用是实现程序状态的保护和恢复。每个正在执行的程序都有一个与其执行相关的程序状态字,处理机通过读取程序状态字知道当前处于用户态还是处于核心态
7、通道与DMA控制器
(1)为把CPU从繁琐的I/O操作中解脱出来,增加CPU与I/O设备、I/O设备与I/O设备之间的并行程度,一般采取的方法是利用硬件系统提供的DMA(Direct Memory Access,直接内存访问)控制器或通道专门负责I/O设备操作,CPU只发送I/O指令。在I/O设备工作期间,CPU可去做其他工作。I/O设备在DMA控制器或通道的控制下进行I/O操作,只在I/O操作结束后或出现异常时才向CPU发出中断请求,否则I/O设备和CPU并行工作,两者的利用率都得到了极大提高。
(2)通道是专门负责I/O操作的处理机,具有自己的简单指令系统,但一般没有自己的内存,通常和CPU共用系统内存。通道可执行由通道指令组成的通道程序,控制I/O设备和内存之间一次传递一组数据块,传递期间不需CPU干预。DMA控制器与通道类似,但功能相对简单一些,没有自己专用的指令系统,一次只能控制I/O设备和内存之间传输一个数据块。
8、陷入
陷入(Trap)指CPU执行一条实现系统调用的“陷入”指令或执行指令时出现异常情况,如:算术溢出、取数时发生奇偶错、访存指令越界等,系统中断当前进程的执行,去执行相应的陷入处理程序或异常处理程序。
陷入指令是为了实现用户程序调用系统内核程序。用户程序或系统实用程序在CPU上执行时,如想请求操作系统为其提供某种服务,可安排其执行一条陷入指令。陷入的处理一般依赖于当前进程的执行现场,且陷入不能被屏蔽,一旦出现陷入,立即处理。陷入指令是一种特殊的程序调用,其特殊之处在于处理机状态从“用户态”变成“核心态”。
6.2 与其他系统软件关系
系统软件直接服务于计算机系统,通常由计算机厂商或专业软件开发商提供。它包含指导计算机基本操作的程序,如屏幕显示程序、磁盘存储程序、向打印机发送数据程序、解释用户命令程序以及和外围设备通讯程序等。系统软件使用户更加方便地操作操作系统,控制系统资源按照操作系统的要求运行。
操作系统是直接与硬件相邻的第一层软件,它由大量系统程序和众多数据结构集成。操作系统不但控制和管理着其他各种系统软件,而且与其他系统软件共同支撑用户程序的运行,操作系统是在系统中永久运行的超级系统软件。
操作系统虽是一种系统软件,但它是系统软件中的系统软件。没有它的支持,其他系统软件都不能运行。同时,操作系统的功能设计也受其他系统软件功能强弱和完备与否的影响,没有完备的系统软件与应用软件的支持,操作系统也不会得到广大用户的认可。
7 初始Linux操作系统
7.1 Linux概述
Linux操作系统是UNIX操作系统的一种典型克隆。但严格来说,Linux是有别于UNIX的一种新的操作系统。Linux的兴起极大地得益于因特 的流行,加上其免费下载、开放源代码的特点,Linux在全世界计算机爱好者的共同努力下,在不到3年的时间里得到飞速发展,一跃成为一个功能完善、稳定可靠的主流操作系统。
Linux已不断向高端发展,开始进入越来越多的计算机领域。
(1)服务器领域
(2)桌面领域
(3) 络设备领域
(4)嵌入式系统领域
(1)开放性、兼容性好。
(2)多用户、多任务,系统运行效率高。
(3)提供了丰富的 络功能,具有 络优势。
(4)可靠的系统安全性。
(5)出色的稳定性和高速运算性。
(6)良好的用户界面,方便用户使用。
(7)较好的程序兼容性。
(8)GNU软件的支持。
7.2 Linux内核设计
Linux是一个用C语言编写、符合POSIX标准的类UNIX操作系统。Linux“内核”实际上是一个提供硬件抽象、文件(磁盘)系统控制、多任务并发执行等功能的系统软件。严格意义上讲,内核不是完整的操作系统,一套基于Linux内核的完整操作系统才叫Linux操作系统,或GNU/ Linux。
一般来讲,Linux体系结构可分为五个子系统:CPU和进程管理、存储管理、虚拟文件系统、设备管理和驱动和 络通信。
络接口(NET)提供了对各种 络标准协议的存取以及对各种 络硬件的支持。 络接口可分为 络协议和 络驱动程序两部分。 络协议部分负责实现每一种可能的 络传输协议。 络驱动程序部分负责与硬件设备进行通信, 每一种 络硬件设备都有相应的 络设备驱动程序。
7.3 Linux启动和初始化过程
Linux操作系统可在多种硬件平台上运行,如80x86CPU 系列(80386 以上)、SUNsparc 64、ARM26等。为了使Linux具有良好的可移植性,Linux 内核针对不同的硬件平台,开发了不同的启动程序和初始化程序。这些程序处于arch/子目录中,用户可根据自己的需求修改内核代码,并能即时编译,形成满足自己要求的内核。这也是Linux 操作系统广受欢迎的主要原因之一。。
Linux 操作系统的启动过程主要包括: BIOS (基本输入输出程序,完成机器自检等步骤后将主控权交给引导程序)自检、GRUB 引导、加载 Linux内核、执行 /sbin/init 和执行脚本等。启动过程中的第一个步骤BIOS自检是任何一个操作系统启动必须经历的过程,也是计算机启动时必要的自我检查过程。
7.4 Linux系统调用介绍
Linux系统类似于UNIX操作系统,它通过在内核设置一组实现系统功能的子程序来实现系统调用。系统调用和普通库函数调用非常相似,只是系统调用由操作系统核心提供,运行于核心态下。Linux的系统调用技术保证了内核安全,用户进程不能随意拦截、修改系统调用。
在Linux系统中,程序的运行空间分为内核空间和用户空间,也常称为核心态和用户态。Linux提供两种运行模式:内核模式和用户模式。
通常,应用程序运行在用户模式,只能访问用户空间;系统调用运行在内核模式,可以访问内核空间,实现与用户空间的通信。应用程序和系统调用分别运行在不同的级别上,逻辑上相互隔离。

Linux中的系统调用都以sys开头,如sys_mkdir()。它们通过int ox80来完成从用户态切换到核心态,进入特权级执行。int ox80会使执行跳转到系统调用在内核中定义的入口地址。这个位置叫做System_call,它是唯一确定的,且只可被用户进程读操作,不可进行写操作。进程通过查找系统调用表system_call_table,从中找到希望调用的内核函数的地址,调用此函数。除了系统调用 以外,大部分系统调用都还需要一些外部的参数输人。
Red Hat Linux-2.4.20版中共有258个系统调用,大体上分为进程控制、文件系统控制、文件系统操作、系统控制、内存管理、 络管理、socket控制、用户管理、进程通信管理等几方面。例如,系统调用open()在内核里面的入口函数是sys_open,其定义是
static inline long open(const char * name, int mode, int flags)
{ return sys_open(name, mode, flags); }
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!