[060][x86汇编语言]第16章内核程序执行逻辑:load_relocate_program、alloc_inst_a_page、allocate_a_4K_page、create_copy...

学习笔记

《x86汇编语言:从实模式到保护模式》
https://www.jianshu.com/p/d481cb547e9f

源码文件

  • 配书代码包,第16章,内核源码文件,c16_core.asm

表格涉及

  • 内核程序:代码主流程逻辑
  • 执行完过程[load_relocate_program] 后的 内存、GDT、LDT示意图
  • 内核程序:过程[load_relocate_program]
  • 内核程序:过程[alloc_inst_a_page]
  • 内核程序:过程[allocate_a_4K_page]
  • 内核过程:过程[create_copy_cur_pdir]
[060][x86汇编语言]第16章内核程序执行逻辑:load_relocate_program、alloc_inst_a_page、allocate_a_4K_page、create_copy..._第1张图片
内核程序 重要过程 调用关系.png
[060][x86汇编语言]第16章内核程序执行逻辑:load_relocate_program、alloc_inst_a_page、allocate_a_4K_page、create_copy..._第2张图片
第16章 任务控制块TCB的结构.png

配图表格说明

  • 表格从上而下,对应的就是内核程序代码执行逻辑顺序的从先到后
  • 符号[ ],里面填写的是源码的所在的行数或者调用的过程名
  • 符号(),一般写自己的理解和注释,帮助阅读代码;

内核程序:代码主流程逻辑

[060][x86汇编语言]第16章内核程序执行逻辑:load_relocate_program、alloc_inst_a_page、allocate_a_4K_page、create_copy..._第3张图片
16章.内核程序代码主流程.png

执行完过程[load_relocate_program] 后的 内存、GDT、LDT示意图

[060][x86汇编语言]第16章内核程序执行逻辑:load_relocate_program、alloc_inst_a_page、allocate_a_4K_page、create_copy..._第4张图片
执行完过程[load_relocate_program]后的内存、GDT、LDT示意图.png

内核程序:过程[load_relocate_program]

[060][x86汇编语言]第16章内核程序执行逻辑:load_relocate_program、alloc_inst_a_page、allocate_a_4K_page、create_copy..._第5张图片
过程[load_relocate_program]

内核程序:过程[alloc_inst_a_page]

过程[alloc_inst_a_page]

内核程序:过程[allocate_a_4K_page]

过程[allocate_a_4K_page]

源码分析 https://www.jianshu.com/p/49cbaccd38c5

内核过程:过程[create_copy_cur_pdir]

https://www.jianshu.com/p/9bc184361aac

相关复习

  • Q:使用高端1MB线性地址0x80000000~0x800FFFFF

https://www.jianshu.com/p/c251257329fe

[060][x86汇编语言]第16章内核程序执行逻辑:load_relocate_program、alloc_inst_a_page、allocate_a_4K_page、create_copy..._第6张图片
使用线性地址的过程.png

  • Q:为什么页目录表自己的线性地址是0xFFFFF000?

https://www.jianshu.com/p/d6b534560669

你可能感兴趣的:([060][x86汇编语言]第16章内核程序执行逻辑:load_relocate_program、alloc_inst_a_page、allocate_a_4K_page、create_copy...)