第1课 - 进阶操作系统
1. 什么是操作系统?
(1)Windows、UNIX、Linux、Mac OS、Android、IOS ...
(2)操作系统是直接运行于硬件之上的计算机程序 (操作系统的本质)
(3)操作系统用于管理和控制计算机的硬件和软件资源 (从用户的角度)
(4)操作系统为用户软件的开发提供必要的服务和接口 (从程序员的角度)
......
2. 现代计算机系统架构
3. BIOS - Base Input & Output System
(1)BIOS 是基本输入/输出系统的缩写,它是计算机上电后第一个运行的程序
(2)BIOS 首先检测硬件状态,检测通过后立即进行硬件初始化
(3)BIOS 会在内存中建立中断向量表(提供硬件访问的方法)
(4)BIOS 最后将控制权交由主引导程序执行
注意!!!
BIOS 不是软件(Software),而是固件(Firmware)!固件是固化于硬件中的程序,在硬件出厂前已经烧写固定。软件是应用程序,程序员编写完成之后,由用户安装到操作系统之上。
4. 系统启动流程(x86架构)
5. BIOS 的运行机制
BIOS 加载主引导程序,主引导程序加载操作系统内核,一切都合情合理,那么 BIOS 是如何被运行起来的?
(1)BIOS 存储于 ROM 中,地址映射为 0xF0000 - 0xFFFFF(实地址)
(2)BIOS 的入口地址为:0xFFFF0
(3)硬件电路的特殊设计使得:
开机后,CPU 从 0xFFFF0处开始执行
6. BIOS 最后的使命
(1)按照用户设置的启动顺序扫描各个存储介质(光驱、软驱、U盘等)
虚拟机里面如何进入 BIOS ?有两种方法:
① 根据开机界面提示,按 F2 进入 BIOS ,不过这个界面停留的时间太短了,不好操作。。。。
② 虚拟机的启动选项中直接提供了这个功能,这种方法很方便
进入 BIOS 中,可以看到当前设置的启动顺序:
(2)发现主引导区后,将主引导区中的主引导程序载入内存
(3)主引导程序在内存中的入口地址为 0x7c00
(4)将控制权交由主引导程序执行(jmp 0x7c00)
思考:
BIOS 如何在存储介质中寻找主引导区?如何判断引导区中有没有主引导程序?
主引导区(MBR:Master Boot Record)
- 位置:位于存储介质的最开始位置处,大小为512字节
- 特点:前 512 字节的最后 2 个有效字节为 0x55aa
- 数据:0x55aa 之前的数据被视为主引导程序
更详细的系统启动流程(x86架构)
7. 小结
(1)BIOS 是计算机上电后第一个运行的程序
(2)BIOS 进行必要的初始化,并加载运行主引导程序
(3)主引导程序位于存储介质的最开始 512 字节处
(4)主引导程序负责后续初始化,并加载运行操作系统内核
注:本文整理于《狄泰12月提升计划》课程内容
狄泰QQ群:199546072
本人QQ号:502218614