• loader引导的主要功能分析介绍


            Loader引导加载程序负责检测硬件信息、处理器模式切换、向内核传递数据三部分工作,这些工作为内核的初始化提供信息及功能支持,以便内核在完成初始化工作后能够正常运行。

    ●检测硬件信息
           

            Loader引导加载程序需要检测的硬件信息很多,主要是通过BIOS中断服务程序来获取和检测硬件信息。由于BIOS在上电自检出的大部分信息只能在实模式下获取,而且内核运行于非实模式下,那么就必须在进入内核程序前将这些信息检测出来,再作为参数提供给内核程序使用。
            在这些硬件信息中,最重要的莫过于物理地址空间信息,只有正确解析出物理地址空间信息,才能知道ROM、RAM、设备寄存器空间和内存空洞(即内存碎片)等资源的物理地址范围,进而将其交给内存管理单元模块加以维护。还有VBE功能,通过VBE功能可以检测出显示器支持的分辨率、显示模式、刷新率以及显存物理地址等信息,有了这些信息才能配置出合理的显示模式。

    ●处理器模式切换

    (操作系统开发)从实模式---->保护模式---->IA-32e模式( 64位模式)_What’smean的博客-CSDN博客
            从起初BIOS运行的实模式( real mode ),到32位操作系统使用的保护模式 ( protect mode ),再到64位操作系统使用的IA-32e模式( long mode,长模式),Loader引导加载程序必须历经这三个模式,才能使处理器运行于64位的IA-32e模式。在各个模式的切换过程中,Loader引导加载程序必须手动创建各运行模式的临时数据,并按照标准流程执行模式间的跳转。其中有配置系统临时页表的工作,即既要根据各个阶段的页表特性设置临时页表项,还要保证页表覆盖的地址空间满足程序使用要求。临时段结构亦是如此。

    ●向内核传递数据


            Loader引导加载程序可向内核程序传递两类数据,一类是控制信息,另一类是硬件数据信息。这些数据一方面控制内核程序的执行流程,另一方面为内核程序的初始化提供数据信息支持。

    • 控制信息一般用于控制内核执行流程或限制内核的某些功能。这些数据(参数)是与内核程序早已商定的协议,属于纯软件控制逻辑,如启动模式(字符界面或图形界面)、启动方式(网络或本地)、终端重定向(串口或显示器等)等信息。
    • 硬件数据信息通常是指Loader引导加载程序检测出的硬件数据信息。Loader引导加载程序将这些数据信息多半都保存在固定的内存地址中,并将数据起始内存地址和数据长度作为参数传递给内核,以供内核程序在初始化时分析、配置和使用,典型的数据信息有内存信息、VBE信息等。

    摘自《一个64位操作系统的设计与实现》

  • 相关阅读:
    Day57 647. 回文子 516.最长回文子序列 动态规划总结篇
    [部署网站]01安装宝塔面板搭建WordPress
    (最优化理论与方法)第六章无约束优化算法-第一节:线搜索方法
    算法练习(一)汉诺塔
    专利申请流程,申请专利去哪
    高数 |【23数一 李林六套卷】卷一 自用思路 及 知识点 整理
    kotlin图片合成和压缩
    简单介绍二分类问题评价指标
    ES6基础5
    英伟达Jetson Nano的初步了解
  • 原文地址:https://blog.csdn.net/weixin_42492218/article/details/127766801