ucore - LAB1实验报告(4)
if (tf->tf_cs != KERNEL_CS) { tf->tf_cs = KERNEL_CS;
tf->tf_ds = tf->tf_es = KERNEL_DS; tf->tf_eflags &= ~FL_IOPL_MASK;
//定位临时栈的栈顶
switchu2k = (struct trapframe *)(tf->tf_esp - (sizeof(struct trapframe) - 8));
//复制
memmove(switchu2k, tf, sizeof(struct trapframe) - 8);
//在执行int120前系统在核心态,int会引起栈的切换,iret不会引起 //栈的切换
*((uint32_t *)tf - 1) = (uint32_t)switchu2k;
/*设置临时栈,指向switchu2k,这样iret返回时,CPU会从switchu2k恢复数据, 而不是从现有栈恢复数据。*/
} break;
最后iret返回三个值
二.源码分析
此次实验的代码部分主要由bootloader和ucore操作系统部分组成。 bootloader部分:
boot/bootasm.S:定义并实现了bootloader最先执行的函数start,此函数进行了一定的初始化,完成了从实模式到保护模式的转换,并调用bootmain.c中的bootmain函数; boot/bootmain.c:定义并实现了bootmain函数实现了通过屏幕、串口和并口显示字符串。bootmain函数加载ucore操作系统到内存,然后跳转到ucore的入口处执行。 boot/asm.h:是bootasm.S汇编文件所需要的头文件,主要是一些与X86保护模式的段访问方式相关的宏定义。
Ucore操作系统部分主要包含系统初始化部分、内存管理部分、外设驱动部分、中断处理部分、内核调试部分。
初始化部分:kern/init 内存管理部分:kern/mm 外设驱动部分:kern/driver 中断处理部分:kern/debug
公共库部分和工具部分:libs、tools
Bootloader启动过程: 1.
将通过读取硬盘主引导扇区到内存,并转跳到对应内存中的位置执行
2.将通过读取硬盘主引导扇区到内存,并转跳到对应内存中的位置执行bootloader。 读ELF文件:
跳转到入口:
实验总结:
通过这次实验我收获了关于C语言编程与理解,汇编语言理解,linux基本命令应用的相关知识,了解了操作系统是如何搭建起来的,结合书本上的理论知识对操作系统有了更深一步的理解,但是在做实验的过程中由于自己水平有限,还是遇到了很多困难,但是最终还是在同学的帮助以及查资料解决了它们。
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




