自己动手写操作系统 - Hello DTOS

本系列笔记参考整理于狄泰未来 - 操作系统专题、于渊 《自己动手写操作系统》(《一个操作系统的实现》)

基于x86架构从零开始编写操作系统内核,旨在通过实践的方式掌握操作系统原理


目录

1、BIOS

2、主引导程序

1、主引导程序

2、编写一个主引导程序

3、主引导程序的扩展

3、调试环境的搭建(Bochs)

4、小结


1、BIOS

什么是操作系统?

    - Windows,UNIX,Linux,Mac OS,Android,iOS.…

    - 操作系统是直接运行于硬件之上的计算机程序

    - 操作系统用于管理和控制计算机的硬件与软件资源

    - 操作系统为用户软件的开发提供必要的服务和接口

现代计算机系统架构

BIOS - Base Input & Output System

    - BIOS是计算机上电后第一个运行的程序

    - BIOS首先检测硬件状态,检测通过后立即进行硬件初始化

    - BIOS会在内存中建立中断向量表(提供硬件访问的方法)

    - BIOS 最后将控制权交由主引导程序执行

注意:BIOS不是软件(Software),而是固件(Firmware)!

        (固件是固化于硬件中的程序,在硬件出厂前已经烧写固定)

关于中断向量表和BIOS的详细介绍可参考:王爽《汇编语言》笔记(详细)· 十一、内中断

系统启动流程(×86架构)

                                BIOS 是如何被运行起来的?

BIOS的运行机制

    - BIOS 存储于ROM中,地址映射为0xF0000-0XFFFFF(实地址

    - BIOS的入口地址为:0XFFFF0

    - 硬件电路的特殊设计使得:开机后,CPU从0XFFFF0处开始执行

           ★ 开机后,CPU一加电,初始化(CS)= 0FFFFH,(IP)= 0,自动从FFFF:0单元开始执行程序

           ★ FFFF:0处有一条转跳指令,CPU执行该指令后,转去执行BIOS中的硬件系统检测和初始化程序。

           ★ 初始化程序将建立BIOS所支持的中断向量,即将BIOS提供的中断例程的入口地址登记在中断向量表中

           ★ 硬件系统检测和初始化完成后,调用int 19h进行操作系统的引导。从此将计算机交由操作系统控制

BIOS 最后的使命

    - 按照用户设置扫描各个存储介质(光驱,软驱,U盘,等)

    - 发现主引导区后,将主引导区中的主引导程序载入内存

    - 主引导程序在内存中的入口地址为0x0000 : 0x7c00(即0x07c00)

    - 将控制权交由主引程序执行(jmp 0x0000:0x7c00

问题

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值