目录
计算机的基本组成
计算机部件:顶层视图
指令周期
取指令和执行指令
理想计算机的特征
程序执行的例子
操作系统的概念
操作系统的目标
计算机系统的层次视图
操作系统提供的服务
操作系统的主要特性、发展及特性
Linux操作系统的基本构成
内核(kernel)
查看内核源码
Linux操作系统的基本概念
启动流程
BootLoader(uboot)
init进程
内存管理
虚拟内存
段页式内存管理
系统调用
Linux进程的运行状态
UNIX标准
处理器(processor)
-
主存储器(main memory)
易失性的
Real memory OR primary memory
输入输出模块(I/O modules)
二级存储设备
通信设备
终端(人机交互设备)
系统总线(system bus)
为处理器,主存,和输入/输出模块间提供通讯的设施
存储地址寄存器(MAR)
确定下一次读写的存储器地址
存储缓冲寄存器(MBR)
写入存储器的数据
从存储器中读出的数据
I/O地址寄存器(I/O AR)
确定一个特定的输入/输出设备
I/O 缓冲寄存器(I/O BR)
缓存输入/输出设备与处理
器间的交换数据
程序计数器(PC)
包含将取指令的地址
指令寄存器(IR)
包含最近取的指令内容
处理器执行的程序由一组指令组成
一个单一的指令执行称为一个指令周期
一个指令的执行需要两个步骤
处理器从存储器读一条指令
fetch
处理器执行指令
excute
取指令
处理器从程序计数器(PC)保存的寄存器地址中取指令,存放在指令寄存器(IR)中。
执行指令:
处理器解析IR中的指令并执行对应操作。这些操作分为四类:
处理器-存储器
在存储器和处理器之间传递数据
处理器-I/O
处理器和I/O模块间传递数据
数据处理
数据的算术操作和逻辑操作
控制
改变执行顺序
注:
a:指令寄存器中的存储格式
b:数据寄存器中的存储格式
将地址940的存储单元中的内容与地址为941的存储单元中的内容相加,并将结果保存在后一个单元
应用程序和系统硬件之间的接口
控制应用程序执行的程序
操作系统与普通的计算机软件相同
由处理器执行的一段和一组程序
操作系统经常释放控制,并且必须依赖于处理器才能
恢复控制
方便
是计算机更易于使用
有效
更有效的利用计算机资源
扩展的能力
不影响服务的情况下:有效的开发,测试和引入新的系统功能
程序开发
程序执行
I/O设备访问
文件访问控制
系统访问
错误检测和响应
内部或外部的硬件错误
存储器错误
设备故障
软件错误
算术溢出
试图访问被禁止的存储器单元
操作系统无法确认应用程序的请求
操作系统的主要特性
易扩展性
并发性
共享性
异步性
虚拟性
操作系统的发展
串行处理
简单批处理系统
多道程序批处理系统
分时系统
现代操作系统的特征
微内核体系结构
多线程
对称多处理
分布式操作系统
面向对象设计
批处理系统示意图
内核
Shell
文件系统
应用程序
操作系统的核心,负责管理系统的进程、内存、设备驱动程序、文件和网络系统。
控制系统和硬件之间的相互通信
决定着系统的性能和稳定性
目录:/usr/src/kernels
文件和文件系统
文件:数据或设备的一种逻辑组织
文件系统:文件间关系管理的一种逻辑组织
程序和进程
程序: 计算机执行的指令集和
进程: 程序的一个运行实例,操作系统资源分配的最小单位
线程(轻量级进程)
程序运行的基本单位,一个进程内部可以有一或若干线程同时运行
信号
Linux系统中进程 通信的一种技术,异步程序设计的基础
客户端和服务器
-
芯片和部分外围电路的初始化
加载内核
加载最小文件系统
加载硬盘上的根文件系统
启动1号进程/sbin/init
BootLoader就是在操作系统内核运行之前运行的一段小程序
初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
严重依赖于硬件,在嵌入式开发中里建立一个通用的
BootLoader几乎是不可能的。
在Linux中称为grub
Linux系统启动的第一个进程(1号进程),0号为内核进程(swapper进程)
执行/etc/init.d目录中的所有脚本文件,启动某些系统的服务
执行/sbin/getty 初始化0、1和2(标准输入、标准输出和标准错误)
执行/bin/login启动用户登录程序
管理孤儿进程
进程隔离
保护独立的进程,防止互相干涉数据和存储空间
自动分配和管理
动态地分配,分配对程序员是透明的
支持模块化的程序设计
能够定义程序模块,并且动态地创建、销毁模块,改变模块大小
保护和访问控制
允许一部分内存可以由各种用户以各种方式进行访问
长期存储
关机后长时间保存信息
进程在虚拟内存中分为代码段、数据段和堆栈段
进程在段中有许多固定大小的块组成,这些块成为页
虚拟地址由段号、页号和页中偏移量构成
虚地址和贮存中实地址(物理地址)的动态映射。
缺页
消除了进程全部载入内存中
按需调页
所谓系统调用是指操作系统提供给用户程序的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的特殊服务。
内核态
进程运行在内核空间
用户态
进程运行在用户空间
例:应用程序调用系统函数,进入内核态,调用完毕后进入用户态。
ISO C
IEEE POSIX
在linux中用户编程接口(API)遵循了在UNIX中最流行的应用编程界面标准—POSIX标准。
这些系统调用编程接口主要通过C库(libc)实现的。