zoukankan      html  css  js  c++  java
  • ucore os 初始化

    从bootloader 交出控制权开始##

    bootloader 最后调用
    ((void(*))(void) ()ELF->e_entry& 0xffffff)() ;
    lab2 虽然e_entry 是虚拟地址,但是后面完成了虚拟地址到物理地址的映射。

    在 ld 进行连接的时候 钦定了kern_init 作为程序的入口,所以这里就调用了 init.c 中的 kern_init 函数
    先extenrn 了 edata end 实际上是连接时候的 是bss 段区的起始段和终止段
    直接将bss 段清零(??)
    调用cons_init() 初始化 console 这个要说起来还蛮复杂的

    调用pmm_init() 初始化内存管理
    调用了 gdt_init 再次初始化全局描述符表 TSS 全称task state segment,
    初始化 gdt 和 tssidt

    pic_init() 初始化 interrupt controller 完成中断控制器的初始化 对8259的配置 。配置好之后外设就可以产生中断
    idt_init() 初始化

  • 相关阅读:
    C#删除一个字符串数组中的空字符串
    .Net后台获取客户端信息
    Java Script
    ECMAScript闭包,ECMAScript对象
    Java Script函数、变量、对象
    JavaScript3
    JavaScript-2
    变量
    8.22收获
    html
  • 原文地址:https://www.cnblogs.com/sfzyk/p/8978176.html
Copyright © 2011-2022 走看看