随笔分类 -  mit-6.828 实验笔记

mit6.828 实验代码、笔记等存档整理
摘要:MIT 6.828 | JOS | 关于虚拟空间和物理空间的总结 🚩 Question: 做lab过程中越来越迷糊,明明虚拟空间和物理空间都是4G,为什么还要有映射?又为啥映射要像JOS这样映射? 解决途径: 停下来,根据当前lab的进展,再回头看上学期操作系统的ppt & 上网冲浪查资料!意识到 阅读全文
posted @ 2020-08-18 17:29 Cindy's 阅读(1219) 评论(2) 推荐(1)
摘要:MIT 6.828 Labs 笔记汇总 以下为各部分lab的实验笔记记录汇总,可直接点击跳转💝 mit-6.828 Lab Tools mit-6.828 Lab01:Booting a PC exercise1.1 mit-6.828 Lab01:Booting a PC Exercise 1. 阅读全文
posted @ 2020-08-18 17:13 Cindy's 阅读(1654) 评论(1) 推荐(0)
摘要:MIT 6.828 Lab5:File system, Spawn and Shell 概括总结 本lab将实现JOS的文件系统,只要包括如下四部分: 引入一个**文件系统进程(FS进程)**的特殊进程,该进程提供文件操作的接口。 建立RPC机制,客户端进程向FS进程发送请求,FS进程真正执行文件操 阅读全文
posted @ 2020-08-18 15:52 Cindy's 阅读(539) 评论(0) 推荐(0)
摘要:在本实验中,我们将在多个同时活动的用户模式环境中实施抢占式多任务处理。 PartA: 为 JOS 增添多处理器支持特性。 实现 round-robin scheduling循环调度。 添加一个基本的环境(进程)管理系统调用(创建和销毁环境,分配和映射内存)。 PartB: 实现一个类Unix的for 阅读全文
posted @ 2020-08-18 15:42 Cindy's 阅读(764) 评论(0) 推荐(0)
摘要:PartB :Page Faults, Breakpoints Exceptions, and System Calls Handling Page Faults 缺页中断中断号是14,发生时引发缺页中断的线性地址将会被存储到CR2寄存器中。 Exercise 05 修改trap_dispatch( 阅读全文
posted @ 2020-08-18 15:29 Cindy's 阅读(371) 评论(0) 推荐(0)
摘要:Part 1 这里user environment 含义与进程几乎等价: // An environment ID 'envid_t' has three parts: // // +1+ 21 + 10 + // |0| Uniqueifier | Environment | // | | | I 阅读全文
posted @ 2020-08-18 15:01 Cindy's 阅读(926) 评论(0) 推荐(1)
摘要:MIT 6.828 Lab02 前期准备 切换git环境 切回lab1分支,提交了lab1 在mit-6.828的提交页申请了提交API key Exercise 01 首先需要理解物理内存的分布 内存分为用户空间和内核空间 4G的进程地址空间被人为的分为两个部分--用户空间与内核空间。用户空间从0 阅读全文
posted @ 2020-08-18 14:50 Cindy's 阅读(797) 评论(0) 推荐(0)
摘要:Part 03 The kernel 关于Kernel的链接地址和运行地址 OS 习惯于linked and run at 高地址,把低地址留给user program 利用processor 的memory management hardware 实现物理地址(load address)到虚拟地址 阅读全文
posted @ 2020-08-18 14:35 Cindy's 阅读(464) 评论(0) 推荐(1)
摘要:Exercise 03 - obj/boot/boot.asm 反汇编文件 截取asm部分文件并注释理解 # Set up the important data segment registers (DS, ES, SS). xorw %ax,%ax # Segment number zero 7c 阅读全文
posted @ 2020-08-18 14:27 Cindy's 阅读(551) 评论(0) 推荐(0)
摘要:- boot/mian.c boot.S & main.c存在磁盘第一个扇区 第二个扇区开始保存kernel 内核需为ELF格式 Boot up steps: CPU启动后,加载BIOS进入内存并执行它 BIOS初始化设备、一系列中断准备、读取第一个扇区的boot device到内存并跳到该处 从b 阅读全文
posted @ 2020-07-31 13:31 Cindy's 阅读(302) 评论(0) 推荐(0)
摘要:- boot/boot.S 该文件的目的: start CPU, switch to 32-bit protected mode(启动CPU 并且最终转到32-bit 保护模式) BIOS loads code from first sector of the hard disk into memo 阅读全文
posted @ 2020-07-31 13:28 Cindy's 阅读(353) 评论(0) 推荐(0)
摘要:mit-6.828 Lab01:Booting a PC Part2 理论知识 阅读全文
posted @ 2020-07-31 13:23 Cindy's 阅读(507) 评论(0) 推荐(0)
摘要:Exercise 02 1. 无法运行qemu-gdb显示错误,认真读错误信息发现permission denied,所以意识到是操作权限的问题,需要以管理员身份运行 如何以管理员身份在终端执行指令: ① 以sudo 指令在其他指令前加上sudo sudo make qemu-gdb ②以su 进入 阅读全文
posted @ 2020-07-31 13:05 Cindy's 阅读(299) 评论(0) 推荐(0)
摘要:Lab01:Booting a PC JOS the initial template for our 6.828 kernel itself, named JOS BIOS basic input output system 在IBM PC兼容系统上,是一种业界标准的固件接口。 [1] BIOS这 阅读全文
posted @ 2020-07-31 12:53 Cindy's 阅读(436) 评论(0) 推荐(0)
摘要:Lab Tools 写在前面 操作系统小学期选择了做mit6.828的lab,非常具有挑战性!希望可以记录下学习的内容和自己努力进步的点滴~ GDB linux 程序调试工具 gdb的目的主要是让你知道程序内部正在运行什么代码,或者是当程序崩溃的时候正在执行什么代码 GDB主要可以做四种事情来帮助你 阅读全文
posted @ 2020-07-31 12:38 Cindy's 阅读(613) 评论(0) 推荐(0)