码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【日拱一卒行而不辍20220918】自制操作系统


    实模式下地址空间布局

    实模式1MB内存布局

    在早期,Intel 8086处理器有20条地址线(1MB内存空间),寄存器都仅是16位。

    因此对于其内存,会进行一些特别的布置。

    当前虽然CPU已经有了很大的进步,其地址线增长至32位到64位等,但是遵循于兼容性,计算机开机时CPU仍然处于实模式,即仅仅能访问1MB内存,寄存器也是16位的。

    而由于实模式下的内存实在有限,因此往往其各个部分的用途均已约定好,如下所示。

    起始地址结束地址大小用途
    FFFF0FFFFF16BBIOS入口地址
    F0000FFFFF64KB

    BIOS代码,包括上面介绍的BIOS入口地址

    C8000EFFFF160KB映射硬件适配器的ROM或者内存映射式I/O
    C0000C7FFFF32KB显示适配器BIOS
    B8000BFFFF32KB用于文本模式显示适配器
    B0000B7FFF32KB用于黑白显示适配器
    A0000AFFFF64KB用于彩色显示适配器
    9FC009FFFF1KBEBDA(Extended BIOS Data Area)拓展BIOS数据区
    07E009FBFF622080B可用区域
    07C0007DFF512BMBR被BIOS加载到此处
    0050007BFF30464B可用区域
    00400004FF256BBIOS Data Area(BIOS数据区)
    00000003FF1KBInterrupt Vector Table(中断向量表)

    根据上述表格,我们也很容易知道BIOS是如何被进行加载的——直接映射入内存的对应地址即可。这里的映射是通过硬件实现,因此和借助于操作系统等程序进行的加载不同。

    MBR文件格式

    MBR文件必须是原始可执行的二进制文件。

    JMP跳转后,即完成了MBR的加载,会直接执行MBR程序。

    这也就意味着,我们并不能通过gcc生成ELF文件作为MBR,因为ELF文件中还包含诸如魔数,段表等非代码段,其是用于操作系统进行加载的可执行文件格式。

    而这里要求的MBR程序是CPU可以直接运行的二进制文件,因此我们必须直接生成该二进制文件。

  • 相关阅读:
    Thales安全解决方案:国家网络安全的关键
    uniapp封装一个可移动的定位图标
    csdn月入过万的作者是如何练成的?
    【密评】商用密码应用安全性评估从业人员考核题库(十三)
    到底什么是AQS?面试时你能说明白吗!
    Unix和Linux、GNU和GPL、RHEL和Centos、Debian和Ubuntu
    JTS: 17 DiscreteHausdorffDistance 豪斯多夫距离计算
    Azkaban安装部署
    【云原生之Docker实战】使用Docker部署Typecho个人博客平台
    C++【类和对象】【三】
  • 原文地址:https://blog.csdn.net/bear_miao/article/details/126915756
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号