第一载、初识操作系统

    易经有云:“伏羲一划开天地,太极生两仪,两仪生四象,四象生八卦”,而八卦的种种组合,得到六十四卦,世间万物都可以用这六十四卦来解释。

    软件开发与易经描述的卦象,有异曲同工之处,现今种类繁多的编程语言、开发框架,好比六十四卦,追根溯源,终究会回归到最初的太极图;软件开发而言,这些开发语言、框架,也就最终都会回归到操作系统。所以有了操作系统连载篇章,记录自己学习操作系统的历程。

    首先来了解什么是操作系统:"操作系统就是一个运行于硬件上的特殊软件!"

第一载、初识操作系统_第1张图片

    上图为现代计算机系统架构,可以看到,操作系统位于硬件层、BIOS之上,简而言之,也就是一个软件,这个软件管理着硬件资源、软件资源。用户软件经过编译软件编译后,运行于操作系统上,操作系统对其进行管理、调度等统筹工作。

    -- BIOS是啥玩意?

    在上图中,操作系统与硬件层之间,有一个BIOS的东西,那么BIOS是啥?我们知道,操作系统是软件,软件是不能直接单刀直入的运行于硬件之上,而需要借助其他力量,而BIOS(输入输出系统)扮演的就是这个角色,在我们开机时出现的蓝色操作界面,就是BIOS运行的效果,如下:
第一载、初识操作系统_第2张图片


    BIOS操作界面供我们选择从哪里启动操作系统,如果重装操作系统或者装了双系统的朋友,就是会看到会让选择从哪里启动操作系统(硬盘、USB等),BIOS是直接固化在硬件中的固件,出厂时已经烧写完成,不可更改,如果一台电脑的BIOS坏了,那么这台电脑也就寿终正寝了。BIOS作用是操作系统与硬件层的桥梁,开机时拉起操作系统

-- 操作系统启动流程

    以上了解了BIOS,现在来了解电脑如何从开机一步步进入到漂亮的操作系统界面的。
第一载、初识操作系统_第3张图片

在上图中,可以看到现代操作系统的启动流程,BIOS的工作使命就是硬件初始化、建立中断向量表,然后加载主引导程序,主引导程序一旦开始执行,BIOS的任务可以说结束了,主引导程序同样会进行一系列的初始化工作,最终加载运行操作系统内核,之后便是操作系统初始化,然后就进入操作系统了。这里我把流程分为三大块:
            开机自动执行BIOS  --> 拉起主引导程序  --> 拉起操作系统内核 --> 操作系统从此可以自嗨

疑问一、如何开机自动执行BIOS?

    BIOS既然是固件,那么就肯定存在硬件某个地址处,这个地址就是0XFFFF0,也就是执行BIOS的入口地址,硬件的特殊设计,使得CPU在开机时自动从0XFFFF0地址开始执行,也就解答了为啥开机就自动执行BIOS。

疑问二、BIOS如何拉起主引导程序执行?

    上边说了,BIOS操作界面会选择什么介质启动操作系统,在选择具体的启动介质后,将启动介质中主引导区的主引导程序加载到内存,主引导程序一般位于主引导区的前512字节,并且主引导程序入口地址固定为0X7C00,拉起主引导程序,也就是跳转到0X7C00地址处执行而已, 汇编语言中就是一个jmp指令,继而将控制权交给主引导程序。

疑问二、如何寻找主引导区?如何获取主引导程序?

    主引导区固定位于启动介质的开始地址处,大小为512字节,这512字节的内容,就是主引导程序,需要注意的一点是,512字节最后两字节固定为0X55AA

 

以上说明了系统的启动流程,下边用一张详细的图来总结:

第一载、初识操作系统_第4张图片

 

总结:
1、BIOS是计算机上电后第一个运行的程序
2、BIOS对硬件等进行必要的初始化,并加载运行主引导程序
3、主引导程序位于启动介质的最开始512字节处,该512字节以0X55AA结束
4、主引导程序继续完善初始化工作,并加载运行操作系统内核

 

学自 --《狄泰软件学院》- 门徒操作系统

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(操作系统连载)