操作系统Lab1 详解(boot|kern/debug)
总体 : 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 上 反复回退输出栈帧信息
操作系统Lab1 详解(boot|kern/debug)的更多相关文章
- DELL R720服务器安装Windows Server 2008 R2 操作系统图文详解
DELL R720服务器安装Windows Server 2008 R2 操作系统图文详解 说明:此文章中部分图片为网络搜集,所以不一定为DELL R720服务器安装界面,但可保证界面内容接近DELL ...
- Unix操作系统监控详解(一)
一.描述 监控在检查系统问题运行状况以及优化系统性能工作上是一个不可缺少的部分.通过操作系统监控工具监视操作系统资源的使用情况,间接地反映了各服务器程序的运行情况.根据运行结果分析可以帮助我们快速定位 ...
- Pintos-斯坦福大学操作系统Project详解-Project1
转载请注明出处. 前言: 本实验来自斯坦福大学cs140课程,只限于教学用途,以下是他们对于Pintos系统的介绍: Pintos is a simple operating system fra ...
- (2)打造简单OS-开机BIOS初始化与MBR操作系统引导详解
================大概了解即可=============== 1.BIOS的工作: 我们的计算机在开机之前,它是一个纯硬件的机器,但是从按下开机按钮的那一刻起,ROM上的固化程序就开始为 ...
- linux操作系统cron详解
Linux操作系统定时任务系统 Cron 入门 cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动 ...
- 【6】-BAT面试之操作系统内存详解
本文主要参考两篇博客,读后整理出来,以供大家阅读,链接如下: http://blog.jobbole.com/95499/?hmsr=toutiao.io&utm_medium=toutiao ...
- 面试之路(6)-BAT面试之操作系统内存详解
本文主要参考两篇博客,读后整理出来,以供大家阅读,链接如下: http://blog.jobbole.com/95499/?hmsr=toutiao.io&utm_medium=toutiao ...
- 最全面的 MySQL 索引详解
什么是索引? 1.索引 索引是表的目录,在查找内容之前可以先在目录中查找索引位置,以此快速定位查询数据.对于索引,会保存在额外的文件中. 2.索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构 ...
- Spring Boot 之 HelloWorld详解
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “以前是人放狗看家,现在是狗牵着人散步” — 随笔 一.Spring Boot 自述 世界上最好 ...
随机推荐
- KNN算法和实现
KNN要用到欧氏距离 KNN下面的缺点很容易使分类出错(比如下面黑色的点) 下面是KNN算法的三个例子demo, 第一个例子是根据算法原理实现 import matplotlib.pyplot as ...
- sql.xml大于小于号处理的方法
<if test="startTime != null and startTime != ''"> AND i_DataTime <![CDATA[ >= ...
- 当EntityFramework爱上AutoMapper
有时候相识即是一种缘分,相爱也不需要太多的理由,一个眼神足矣,当EntityFramework遇上AutoMapper,就是如此,恋爱虽易,相处不易. 在DDD(领域驱动设计)中,使用AutoMapp ...
- Jdk8 Hashmap ConcurrentHashMap
JDK1.8 Hashmap JDK1.8 ConcurrentHashMap 不采用segment而采用 synchronized (f) f = table[i]; 减小锁的力度 设计了MOVE ...
- 水题两篇 Dream & Find Integer (HDU 6440/6441)
// 出自ICPC 2018网络赛C - Dream & D - Find Integer // 对大佬来讲的水题,本菜鸡尽量学会的防爆零题... // 今晚翻看vjudge昨日任务上的C题, ...
- 比特承诺 Bit Commitment
Introduction-A story Alice:股票经纪人 Bob:股民 Alice:你的钱交给我,我替你买股票,我专业,挣钱多! Bob:怎么证明? Alice:我们上月买进的1 ...
- Gilde jar包冲突(环信的导入)
Error:Execution failedfortask':app:transformClassesWithJarMergingForDebug'.>com.android.build.api ...
- 前缀数组O(n^3)做法
前缀数组O(n^3)做法 s.substr()的应用非常方便 令string s = "; ); //只有一个数字5表示从下标为5开始一直到结尾:sub1 = "56789&quo ...
- 阿里云 Aliplayer高级功能介绍(七):多分辨率
基本介绍 网络环境比较复杂.网速不稳定,Aliplayer提供了多分辨率播放的模式,用户可以手工切换分辨率和播放器选择最优分辨率,基本UI如下: Source模式 source的方式指定多个清晰度的地 ...
- csp-s模拟测试52平均数,序列题解
题面:https://www.cnblogs.com/Juve/articles/11602244.html 平均数: 第k个平均数不好求,我们考虑二分,转化成平均数小于x的有几个 虑把序列中的每个数 ...