![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 82
丶Hiroshi
这个作者很懒,什么都没留下…
展开
-
MIT 6.828 学习笔记1 阅读boot.S
#include // mmu.h 内含有需要使用的宏定义与函数# Start the CPU: switch to 32-bit protected mode, jump into C. // 这些代码的作用为转换到 32 位保护模式,然后跳转到 main.c# The BIOS loads this code from the first sector of the hard di原创 2016-04-13 22:20:34 · 3069 阅读 · 1 评论 -
MIT 6.828 学习笔记2 阅读main.c
#include #include /********************************************************************** * This a dirt simple boot loader, whose sole job is to boot // 一个简单的 Bootloader,用于读取内核 * an ELF kernel i原创 2016-04-14 15:58:40 · 2286 阅读 · 0 评论 -
MIT 6.828 学习笔记3 Lab1实验报告
Lab1实验报告Exercise 31. At what point does the processor start executing 32-bit code? What exactly causes the switch from 16- to 32-bit mode?在0x7c2d处的指令ljmp $PROT_MODE_CSEG, $protcseg跳转到了32位代码处,即从0x7c3原创 2016-04-27 20:25:39 · 8557 阅读 · 0 评论 -
MIT 6.828 学习笔记6 Lab4实验报告
Lab4实验报告Execrise 1Implement mmio_map_region in kern/pmap.c.// mmio_map_region()uintptr_t ret = base;size = ROUNDUP(size, PGSIZE);base = base + size;if (base >= MMIOLIM) { panic("larg原创 2016-06-09 23:31:50 · 9378 阅读 · 0 评论 -
MIT 6.828 学习笔记5 Lab3实验报告
Lab3 实验报告Exercise 1Modify mem_init() in kern/pmap.c to allocate and map the envs array.// mem_int()// 第一处envs = (struct Env *) boot_alloc(NENV * sizeof(struct Env));memset(pages, 0, NENV原创 2016-05-24 13:09:57 · 10036 阅读 · 0 评论 -
MIT 6.828 学习笔记4 Lab2实验报告
Lab2实验报告Execrise 1static void *boot_alloc(uint32_t n){ static char *nextfree; // 下一个空闲字节 if (!nextfree) { extern char end[]; // 第一个空闲字节 位于 .bss 之后 nextfree = ROUNDUP((char *) e原创 2016-05-01 22:31:57 · 6802 阅读 · 1 评论