操作系统启动流程

目录

什么是操作系统

操作系统的组成

计算工作原理

图灵机

操作系统启动过程--第一阶段

bootsect.s阶段    

Makefile

操作系统过程---第二阶段

setup阶段

初始化参数

启动保护模式

操作系统启动过程-----第三阶段

system阶段

操作系统启动过程----第四阶段

main.c阶段


什么是操作系统

操作系统实际是用来操作硬件资源提供给上层应用使用的一种“特殊软件”

操作系统的组成

计算硬件主要组成:CPU ,内存,各种输入输出IO设备(显示器,键盘,鼠标,磁盘,网络等外设)

操作系统管理CPU-----抽象出进程,即CPU的管理变成进程的管理

操作系统管理外设-----抽象出文件,即磁盘管理变成文件管理

一个操作系统包括四个基本管理模块:进程管理,内存管理,I/O管理以及文件系统,给上层应用提供的系统接口

计算工作原理

图灵机

计算机最基本的东西是一个计算模型--图灵机

参考人类计算过程,图灵机开始工作后:例如要计算f(s)

  1. 在纸带用编码写下2

  2. 移动“读指针”将3读到控制器中

  3. 控制器中有一套控制电路对应这个映射,控制电路开始运转,计算出f(3) = -3,

  4. 控制器将结果 -3写到纸带上。

从图灵机的原理上我们可以看到真实计算机的工作原理就是  取指----执行,再取指---执行,循环操作的一个场景, 这是操作系统中无数次出现的基本场景  取指---执行

操作系统启动过程--第一阶段

bootsect.s阶段    

在按下开机键后,电源接通,计算机加电,在开机启动的时候,计算机首先工作在实模式(16位寻址模式),硬件电路会初始化设置PC寄存器的值。(程序计数器 Program Counter,即程序指令的要执行位置, 是一种通用寄存器,但是有特殊用途,用来指向当前运行指令的下一条指令),如IBM的硬件电路将这个PC寄存器的初始值设置为0xFFFF0 地址,  将这个地址放到地址总线上去,以取出内存中存放的指令,即0xFFFF0 地址处取出第一条指令开始执行。

    那么内存地址 0xFFFF0 上取出的指令是什么?先来了解下RAM和ROM的概念

内存是随机存储器(random access messory, RAM),属于易失性存储器,故未加电时RAM中没有存放任何内容,因此一上电时RAM中没有任何信息的。

为了设置一个起点,计算机硬件厂商在只读存储器(read-only memory , ROM)中开辟一块空间,IBM 的0xFFFF0 就指向这个区域,这段ROM就被称为BIOS(basic input/output system,基本输入输出系统),BIOS里面放了对基本硬件的测试代码,如对主板,内存等硬件的测试,同时还提供一些让用户调用硬件基本输入输出功能的子程序,如int 0x10(BIOS中断)

CPU从0xFFFF0 指向 的这段ROM中取出的指令要成的工作是测试各种硬件是否正常,如果出现异常则停止启动(如SSD坏了啦,电脑就会卡那不动或者反复重启),如果检测正常,则利用BIOS的输入功能将启动磁盘上启动扇区中的内容读到内存0x7C00的地址处(疑问:这里的内存是指RAM吗?),并设置PC寄存器的地址为0x7C00

    因为PC中的地址已经设置为0x7C00, 接下来就要到该内存地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值