总体 : boot kern libs tools

boot

asm.h
bootmain.c
bootasm.S

asm.h

汇编头文件
SEG_NULLASM 定义一个空段描述符
SEG_ASM 使用参数type base lim 生成一个断描述符的宏
定义了 Appllication segment type bits type 字段的相应定义

bootasm.S

控制前初始化,具体过程 参考 前初始化

bootmain.c

包括了 等待硬盘响应
读取扇区
加载到内存段(一个一个的读取扇区)

bootmian 函数 所谓bootloader 的起点
读取第一个扇区 根据读取到的内容 加载剩余的内存段(根据program header的内容)
跳转到内核起点

kern/debug

包含一些debug 函数
print_kernel_info
print_stackframe
print_debuginfo

辅助函数简析:
stab_binsearch //给定符号表, 左界限 ,右界限 给定一种符号类型 ,
给一个地址。 返回的左界限是这个地址左侧第一个满足条件的符号,
右界限是这个地址右侧第一个满足条件的符号-1,

eipdebuginfo 结构体包括 eip_file 文件名 行号 调用函数名 函数名长度 函数起始地址 参数数量

使用extern 定了了 如下几个变量 _stab_BEGIN END _STABSTR_BEGIN 灯对应的变量
都是kenerl 对应的地址

首先找到对应的 源文件 在符号表中查找

然后找到对应的函数(有找不到的可能 ,也许正处于汇编函数中)

最后查找对应的 行号

然后查找参数个数

print_kerninfo(void){ //打印了一些kernel 中的段的位置
}

print_debuginfo() 输出这个地址的相关函数信息

readeip : 输出 eip 当前的值

print_stackframe(void)
作业内容,在stack 上 反复回退输出栈帧信息

最新文章

  1. macOS安装Solr并索引MySQL
  2. linux命令之tail
  3. 11月10日下午 ajax做显示信息以后用ajax、Bootstrp做弹窗显示信息详情
  4. Python Django 的 django templatedoesnotexist
  5. 程序员书单_HeadFirst系列
  6. Photoshop:制作方块背景
  7. maven 常用插件总结
  8. 类图class的依赖关系
  9. C语言的一些输出格式
  10. 分享一些 Windows 平台上的神器
  11. elasticsearch数据备份与sshfs建立共享文件
  12. 代码雨 html实现
  13. DWR第二篇之逆向Ajax
  14. SQL 读取XML到Datatable
  15. .Net Core 2.0 生态(1).NET Standard 2.0 特性介绍和使用指南
  16. 自学Zabbix4.2 web监控项创建+item详解
  17. HDU 5445 Food Problem(多重背包+二进制优化)
  18. List<? extends T>和List<? super T>之间有什么区别?
  19. sql相同项求和
  20. C++运行时动态类型

热门文章

  1. Django 补充知识
  2. 区间dp——cf1025D二叉搜索树的中序遍历好题!
  3. js获取网页屏高 屏宽
  4. Java 常用正则表达式
  5. <每日一题>题目17:super()继承相关的面试题
  6. VS2005下安装boost
  7. PostgreSQL DISTINCT ON
  8. C/C++常考基础面试题(更新)
  9. 去掉IE提示:在此页上的ActiveX控件和本页上的其他部分的交互可能不安全。你想允许这种交互吗?
  10. innodb状态