01 进阶操作系统
参考
https://www.cnblogs.com/wanmeishenghuo/tag/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/
https://blog.51cto.com/13475106/category6.html
及狄泰软件相关课程
一.操作系统
A.由此我们可以的得出一个疑问,什么是操作系统?
1.在我们日常生活中Windows,UNIX,Linux,Mas OS,Android,ios等是常见的操作系统
2.操作系统是直接运行于硬件之上的计算机程序
3.操作系统用于管理和控制计算机的硬件和软件资源
4.操作系统为用户软件的开发提供必要的服务和接口
B.现代计算机系统架构
BIOS-Base Inout&Output System(需要注意的是 BIOS不是软件,而是固件,固件是固化于硬件中的程序,在硬件出厂前已经烧写固定)
1.BIOS是计算机上电后第一个运行的程序
2.BIOS首先检查硬件状态,检测通过后立即进行硬件初始化
3.BIOS会在内存中建立中断向量表(提供硬件访问的方法)
4.BIOS最后将控制权交由主引导程序执行
BIOS全称为Base Input & Output System,也即基本的输入输出系统,BIOS是计算机上电后第一个运行的程序,BIOS固化在一个专用的芯片ROM中,因此,BIOS程序称为固件程序,我们暂且认为它是不可改变的,出厂后就已经固化了,而要让一个计算机运行起来,必须要给硬件配置配置一些基本的参数,这些参数存储在CMOS芯片中,这个芯片由外部电池供电,其中的参数也是可以修改的。
存储BIOS程序的ROM的映射地址区间为:0xF0000 - 0xFFFFF,而BIOS程序的入口地址为0xFFFF0,由于硬件的特殊设计,加电后,程序就从0xFFFF0处开始执行,也即开机就运行BIOS程序。
下面开始进入BIOS的运行过程:
计算机加电后,BIOS程序开始执行,它先检测各种硬件的状态,如内存条是否插好,硬盘是否插好等,只有那些维持计算机运行的硬件具备了,BIOS才会继续向下运行,例如,内存条没有插好,这时的计算机可谓缺胳膊少腿,这时BIOS是不会向下运行的,因为没有内存就根本不会维持计算机的运行,因此BIOS也没有向下运行的必要了。由于我们研究的主要内容是操作系统,所以我们暂且不关心硬件,认为它是完备的。BIOS完成硬件的检测后,就将CMOS芯片中存储的参数配置到各种硬件中,这时整个系统才算基本正常,下面BIOS继续运行,它在内中的特定地址上建立中断向量表,这些中断向量可以认为是一系列的函数,这些函数提供了访问硬件的手段,我们自己写的软件“调用”这些函数即可,这里的“我们自己写的软件”可以认为是裸机程序,也是非常底层的程序,而这里的“调用”方法也比较特殊。接下来,BIOS要完成一项更重要的使命--加载主引导程序,它按照用户的设置,去扫描整个系统中的各个存储介质(光驱、软驱、USB、硬盘等),当发现主引导程序后,便将其加载到内存的0x7c00的位置处,然后将控制权交给主引导程序,至于为什么是加载到0x7c00处,可以认为这是x86系统的约定。到此为止,BIOS的使命也就完成了。
以上讲了BIOS加载主引导程序的故事,但是BIOS是怎么找到主引导程序的呢?主引导程序位于存储介质的主引导区(MBR:Master Boot Record),它位于存储介质的开头处,总的大小为512字节,而最后两个有效字节为0x55aa,BIOS就是通过判断这最后两个字节是不是0x55aa来确定主引导区的,位于0x55aa之前的那些程序就是主引导程序了。
主引导程序也有自己的使命,它先进行一些软件的初始化,例如将CPU内的一些寄存器写入合适的值,然后主引导程序开始加载操作系统内核,并最终将控制权交给内核,而内核将完成更细致的系统初始化,然后就可以开始运行真正的用户程序了,到此为止,整个系统就运行起来了。
系统启动流程(X86)
BIOS的运行机制
1.BIOS存储于ROM中,地址映射为0xF0000-0xFFFFF(实地址)
2.BIOS的入口地址为:0xFFFF0
3.硬件电路的特殊设计使得开机后,CPU从0xFFFF0出开始执行
BIOS的最后使命
1.按照用户设置扫描各个存储介质(光驱,软驱,U盘等)
2.发现主引导区后,将主引导区中的主引导程序载入内存
3.主引导程序在内存中的入口地址为0x7c00
4.将控制权交由主程序执行(jmp 0x7c00)
Q:BIOS如何在存储介质中寻找主引导区?如何判断引导区中有没有主引导程序?
主引导区(MBR:Master Boot Record)
位置:位于存储介质的最开始位置处,大小为512字节
特点:前512字节的最后2个有效字节为0x55aa
数据:0x55aa之前的数据被视为主引导程序
改进之后的系统启动流程
小结
1.BIOS是计算机上电后第一个运行的程序
2.BIOS进行必要的初始化,并加载运行主引导程序
3.主引导程序位于存储介质的最开始512字节处
4.主引导程序负责后续初始化,并加载运行操作系统内核
posted on 2020-11-06 13:33 lh03061238 阅读(111) 评论(0) 编辑 收藏 举报