操作系统 Lab1(2)】的更多相关文章

中断很久,一看发现又多了一些内容. 打算完成了 Lab1 challenge 1 中断像量表设置的时候我们需要设置一个用于系统调用的 trap门 也就是 利用中断切换特权级 To kernel 调用 Tokernel 的时候由于由特权及的转换,所以这里会在 Tss 中取出当前函数的内核栈 并且做相应的切换 依次压栈 eflags cs eip err trapno ds es sf gs tregs 等 将这个 调用栈压入 栈中 最后执行 push esp 这样是把 栈顶的指针放在栈顶作为tar…
练习1 1 ucore.img 是如何生成的 使用 make V= 查看详细的步骤 cc kern/init/init.c 使用cc工具进行预处理 gcc -Idir 将dir 作为查找目录(头文件) -ggdb 符加信息到允许gdb进行debug的程度 -gstabs 将符加信息以 stabs format 格式输出 这一个是主要被dbx 在大多数bsd 系统上使用 -m32 -Wall 输出所有的警告信息 -fno-buildin 不允许不易build__in__开头的buildin 函数…
总体 : 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 包括了 等待硬盘响应 读取扇区 加载到内存段(一个一个的读取扇区…
1.实验目的. 2.实验内容. 2.1Exercise 1.1  请修改 include.mk 文件,使交叉编译器的路径正确.之后执行 make指令,如果配置一切正确,则会在gxemul 目录下生成vmlinux 的内核文件. 修改路径为 /OSLAB/compiler/usr/bin/mips_4KC- 查看gxemul文件夹 实验一完成. 2.2Exercise1.2  阅读./readelf文件夹中kerelf.h  readelf.c以及 main.c三个文件中的代码,并完成readel…
一.ucore操作系统介绍 操作系统作为一个基础系统软件,对下控制硬件(cpu.内存.磁盘网卡等外设),屏蔽了底层复杂多样的硬件差异:对上则提供封装良好的应用程序接口,简化应用程序开发者的使用难度.站在应用程序开发人员的角度来看,日常开发中常见的各种关于并发.I/O.程序通信的问题等都和操作系统相关,因此一定程度上了解底层的操作系统工作原理是有必要的. 另一方面,由于操作系统自身功能的复杂性,整体设计一般会有一个好的模块化架构:操作系统作为基础服务,对性能效率的要求也很高,底层会用到许多关于数据…
lab1知识点汇总 还是有很多问题,但是我觉得我需要在查看更多资料后回来再理解,学这个也学了一周了,看了大量的资料...还是它们自己的80386手册和lab的指导手册觉得最准确,现在我就把这部分知识做一个汇总,也为之后的lab打下坚实的基础.80386真的难啊,比mips复杂多了..顿时觉得我们学的都是小菜.. 下面这些知识来源于: 实验指导书和答案 80386手册 mooc视频 8086程序设计指导这本书 网上的博客 lab1练习汇总 练习之所以被老师当做练习,一定有它重要的地方,所以我们先把…
JOS lab1 首先向MIT还有K&R致敬! 没有非常好的开源环境我不可能拿到这么好的东西. 向每个与我一起交流讨论的programmer致谢!没有道友一起死磕.我也可能会中途放弃. 跟丫死磕究竟.(事实上这个过程会学到非常多东西,非常好玩非常好玩,不要被panic吓到,等你都能定位panic,并修复触发panic的bug的时候.我相信大家debug的能力会上升一个水平,互勉-) ---------------------------------------------------------…
从机器上电到运行OS发生了什么? 在电脑主板上有一个Flash块,存放了BIOS的可执行代码.它是ROM,断电不会丢掉数据.在机器上电的时候,CPU要求内存控制器从0地址读取数据(程序第一条指令)的时候,内存控制器去主板上的BIOS所在ROM读取数据,此时CPU运行着BIOS.这里BIOS主要做了以下3个任务: 检测存在的硬件,并测试其是否正常工作. 初始化显卡.显存,检验视频信号和同步信号,对显示器接口进行测试. 根据配置选择某个外存(U盘.CD-ROM.硬盘这些)作为启动,将其第一个扇区(B…
要求:写一个linux bash脚本来查看目标文件夹下所有的file和directory,并且打印出他们的绝对路径. 运行command:./myDir.sh  input_path  output_result 要求输出格式为: 代码思路: BFS遍历,数据结构为queue,数组实现. 代码实现: #!/bin/bash SAVEIFS=$IFS IFS=$(echo -en "\n\b") #处理特殊字符文件名 queue[]="head" path_[]=''…
MIT JOS lab2 首先把内存分布理清楚,由/boot/main.c可知这里把kernel的img的ELF header读入到物理地址0x10000处 这里能够回想JOS lab1的一个小问.当时是问的bootloader怎么就能准确的吧kernle 镜像读入到相应的地址呢? 这里就是main.c在作用. 这里往ELFHDR即0x10000处读入了8个SECTSIZE(这里读入的是一个PAGESIZE 4KB), 从凝视//is this a valid ELF? 開始,bootmain以…