摘要: MIT6.828这门课程在2018年之后已经改组成其他课程(MITS6.081),课程实验的更新也停止在2018年,因此环境配置方面可能会出现各种各样的问题,下面为2023年1月进行的配置流程。 环境:VMWare虚拟机 Ubuntu 22.04LTS x86_64 1. 编译器工具链检查 objd 阅读全文
posted @ 2023-01-29 23:32 StreamAzure 阅读(106) 评论(0) 推荐(0) 编辑
摘要: Part 4: The Stack 1. 栈的初始化 练习 9. 确定内核初始化栈的位置,以及栈在内存中的确切位置。内核如何为其栈保留空间?栈指针初始化后指向这个保留区域的哪一“端”? 内核运行的第一个工作是开启虚拟地址和物理地址之间的映射(或者说分页),第二个工作就是初始化栈。在kern/entr 阅读全文
posted @ 2023-01-29 23:18 StreamAzure 阅读(295) 评论(0) 推荐(0) 编辑
摘要: Part 3: The Kernel 1. 物理地址与虚拟地址的映射 我们在 5.3 中提到过,内核的第一条指令所在的物理地址0x100000被映射到虚拟地址0xF0100000。事实上,在 Lab 1 中,JOS 对前 4MB 的物理内存都进行了类似的映射,这是由kern/entrypgdir.c 阅读全文
posted @ 2023-01-29 23:13 StreamAzure 阅读(109) 评论(0) 推荐(0) 编辑
摘要: Part 2: The Boot Loader 1. 从 Boot Loader 开始 BOIS从磁盘读取Boot Loader到指定内存区域0x7c00到0x7dff(512B),然后执行jmp指令,跳转到Boot Loader的第一条指令所在地址0x7c00。 (gdb) b *0x7c00 # 阅读全文
posted @ 2023-01-29 23:12 StreamAzure 阅读(160) 评论(0) 推荐(0) 编辑
摘要: Part 1: PC Bootstrap 0. 前置知识 x86、i386、x86-64 x86,又称 IA-32(Intel Architecture, 32-bit),泛指一系列基于Intel 8086且向后兼容的中央处理器指令集架构。这个名称源于这个系列早期的处理器名称,它们都是80x86格式 阅读全文
posted @ 2023-01-29 23:06 StreamAzure 阅读(133) 评论(0) 推荐(0) 编辑