九、操作系统状态机模型(操作系统的加载,thread-os代码)

一、软件和硬件的桥梁

1、Bare metal与程序的约定

为了让计算机运行任何程序,一定存在软件/硬件的约定

(1)CPU reset后,处理器处于某一个确定的状态

        PC指针一般指向一段memory mapped ROM(内存映射)

                ROM存储了厂商提供的firmware(固件)

        处理器的大多特性处于关闭状态

                缓存,虚拟存储。。。

(2)Firmware(固件,厂商提供的代码)

        将用户数据加载到内存

                如存储在介质上的二级loader(加载器)

                或者直接加载操作系统

2、x86 Family CPU Reset行为

(1)寄存器回到初始状态

        EIP=0x0000FFF0

        CR0=0x60000010

                16bit模式

        EFLAGS=0x00000002

                interrupt disable

3、CPU Reset之后

(1)从PC(CS:IP)指针处理取指令、译码、执行。。。

(2)从firmware考试执行

        ffff0通常时一条想firmware的跳转指令

二、操作系统的加载和初始化

1、Firmware:BIOS与UEFI

(1)都是主板/主板上外插设备的软件抽象

        支持操作系统管理程序运行

(2)Legacy BIOS(Basic I/O System)基本输入输出系统

(3)UEFI(Unified Extensible Firmware Interface)统一可扩展固件接口 

2、Legacy BIOS:约定

Firmware必须约定提供机制,将用户数据载入内存

(1)Legacy BIOS把第一个可引导的的设备的第一个扇区加载到区里内存的7C00位置

        此时处理器处于16bit模式

        规定CS:IP:0x7C00, (R[CS]<<4) | R[IP] == 0x7C00

                情况1:CS=0x7C00, IP=0;

                情况2:CS=0, IP=0x7C00;

注:如果磁盘第一个512字节 最后字节为:aa55, 表示可以启动

三、AbstractMachine代码导读

1、TRM+MPE

(1)完全等同于多线程(处理器相当于线程)

(2)IOE API:完全时普通库函数

2、CTE

(1)允许创建多个执行流(类比协程)

(2)yied主动切换;会被中断被动打断

(3)on_interrupt会拦截到中断事件

3、VME

(1)允许创建一个“经过地址翻译的执行模式”

(2)通过CET API管理

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值