3.1 操作系统启动过程
3.1.1 BIOS和主引导记录MBR
A、两种工作模式:实模式(real mode)和保护模式
1. 实模式(实地址模式,real mode)
a. 程序按照8086寻址方法访问0h-FFFFFh(1MB)空间
1) 前面640k【00000--9FFFF】:基本内存
2)中间128k【A0000--BFFFF】: 显卡显存
3)末尾256k 【C0000--FFFFF】: BIOS(Basic I/O System,固件)
1) C0000-C7FFF:显示卡BIOS
2)C8000-CBFFF:IDE控制器BIOS
3)F0000-FFFFF:最后64k,系统BIOS
4)功能:系统启动配置、基本的设备I/O服务、系统的加点自检和启动
b. 寻址方式:物理地址(20位)=地址段:偏移地址
c. CPU单任务运行
2、保护模式(内存保护模式,protect mode)
a. 寻址方式:段(32位)和偏移量(32位),寻址4GB空间
1). 段的属性:起始地址,存取属性,权限级别,...
2). 段页寻址机制(段,页)
3). 虚拟地址,进程,封闭空间
4). 应用程序和操作系统的运行环境都被保护
5). CPU支持多任务
B、主启动记录MBR
1. 存放在硬盘/软盘的首扇区
2. 存放和OS启动的相关信息(Main Boot Record)
3. 512BYTES
4. 结束:0xAA5h
C、启动过程
1. POST(加电自检)-->CMOS设置(硬盘启动)-->读取MBR-->控制权交给MBR
2. MBR读取分区表(Partition Table),找到其中的活动分区(Active Partition),并确认其它的分区都不是活动分区。MBR读取活动分区的第一个分区(分区引导记录PBR),并把它加载到内存中去
3. PBR继续控制后面的引导过程
3.1.2 操作系统启动过程
A、初始化引导
1. 目的:把OS核心装入内存并使之开始工作接管计算机系统
2. 过程:1)加点,JUMP POST 2)...BIOS中的启动程序运行 3)启动程序:a.读取0面0道第1扇区内容(MBR) b. 加载MBR中的引导程序 4)引导程序:a. 根据相关参数,读取硬盘指定位置的文件到内存 b. 加载硬盘上OS内核,并初始化基本参数
B、核心初始化
1. 目的:OS内核初始化系统的核心数据
2. 典型工作:a. 各种寄存器的初始化 b. 存储系统和页表初始化 c. 核心进程构建 d. ...
C、系统初始化
1. 目的:为用户使用操作系统做准备,使系统处于待命状态
2. 工作:a. 初始化文件系统 b. 初始化网络系统 c. 初始化控制台 d. 初始化图形界面 e. ...
D、LINUX启动过程:POST-->MBR-->KERNEL映像-->KERNEL映像自解压并执行-->内核初始化-->内核启动--> 加载init程序
1. init 程序:
a. 进程号为1
b. init进程通过/etc/inittab脚本进行初始化 1)不同运行级别(Runlevel)
c. 脚本文件inittab 1)init进程根据/etc/inittab执行相应的脚本初始化系统
2. 登录过程
3.2 操作系统的生成
A、满足特定硬件环境和用户需要,组装和构建操作系统的过程
B、步骤:1)根据硬件环境/用户要求配置功能模块和构造参数 2)构建(build)OS的映像
C、前提:1)操作系统由可拆装模块构成2)有交互式配置工具3)有映像构建工具
D、linux操作系统的生成:
1. 获取linux内核的源代码
a. http://www.kernel.org/
b. cd /usr/src
c. tar zxvf linux-....
2. 选择和启动内核配置程序
a. cd /usr/src/linux-2.6
b. make config (文本界面,不推荐使用)
c. make xconfig (图形窗口模式,xWindows使用)
d. make menuconfig(文本选择界面,字符中端)
3. 根据需要配置内核模块和参数
4. 重新编译新的内核
a. make dep 生成依赖dependency信息
b. make clean 清除旧的编译结果
c. make bzImage ./arch/i386/boot/bzImage
5. 编译和安装模块
a. make modules
b. make modules_install:模块被编译安装到 /usr/lib/<内核版本号>目录下
6. 启动新内核
a. cp bzImage /boot/bzImage
b. GRUB
1) 配置/boot/grub/grub.conf
3.3 用户界面
3.3.1 用户界面概念
3.3.2 shell脚本编程
A、 shell是操作系统与用户交互的界面
B、shell表现通过控制台执行用户命令的方式
C、shell本身不执行命令,仅仅是组织和管理命令
3.4 系统调用
3.4.1 定义:操作系统内核为应用程序提供的服务/函数
3.4.2 特点:
A、一般涉及核心资源或硬件的操作
B、运行于核态
C、每个系统调用具有唯一的编号:ID
D、调用过程中会产生中断:自愿中断
3.4.3 DOS利用INT 21h中断实现系统调用
A、特点:利用AH寄存器存放系统调用的编号
3.4.4 LINUX利用INT 80h中断实现系统调用
A、特点:利用EAX寄存器存放系统调用的编号
B、LINUX系统调用原理