原文:MIT 6.S081 聊聊xv6中的trap

前言 这个星期睡眠和精神状态一直比较差, . 很多论文没时间回顾, 的Lab 又耗费了我巨大的精力,实在写不动代码了。只能写点回顾总结之类的东西。我很久之前就想总结一下xv 中关于进程的知识,后来发现这涉及的范围实在是太大了 废话,这在哪本OS教材里都能占完整的一章 ,而且无论如何组织结构,trap永远都是一个绕不过去的地方,不讲trap,那么进程的许多内容都将无从谈起。本blog算是对xv 中t ...

2020-11-06 01:27 1 787 推荐指数:

查看详情

MIT 6.S081 聊聊xv6的文件系统(上)

前言 Lab一做一晚上,blog一写能写两天,比做Lab的时间还长( 这篇博文是半夜才写完的,本来打算写完后立刻发出来,但由于今天发现白天发博点击量会高点,就睡了一觉后才发(几十的点击量也是点击量啊T_T).... 我个人计划采用bottom-up的方式,用两篇blog配合源码讲解xv6 ...

Wed Feb 03 19:36:00 CST 2021 2 639
MIT 6.S081 聊聊xv6的文件系统()日志层与事务

前言 我本想把上篇没讲完的剩余层全部在本篇中讲完,但没想到越写越多。日志层的代码不多,其思想和解决问题的手段也不算难以理解,但其背后涉及的原理和思想还是非常值得回味的,因此我打算用一整篇完整的blog来讲解日志层,并对其作出一点扩展。 本篇内容应该也会帮你对事务的拥有一个更好地理解。 聊聊 ...

Mon Feb 08 00:47:00 CST 2021 0 295
MIT 6.S081 xv6调试不完全指北

前言 今晚在实验室摸鱼做6.S081的Lab3 Allocator,并立下flag,改掉一个bug就拍死一只在身边飞的蚊子。在击杀8只蚊子拿到Legendary后仍然没能通过usertest,人已原地裂解开来。遂早退实验室滚回宿舍,捡起自己已经两年没写的blog,码点自己用vscode调试xv6 ...

Fri Sep 25 22:43:00 CST 2020 3 4081
MIT 6.S081 2021: Lab Copy-on-Write Fork for xv6

虽然Copy-on-Write原理是很显而易见的,但是在具体实现需要处理的细节特别多,经常会在莫名其妙的地方出现错误,再加上使用gdb调试内核本身就是一件不容易的事情 ...

Sat Nov 20 06:43:00 CST 2021 0 770
MIT 6.S081 Lab Allocator 聊聊buddy allocator

前言 Lab Allocator代码量很少,主要是用xv6已经写好的buddy allocator替换掉kallocator。kallocator简单的将内存分为4096bytes(下简称PGSIZE)页面,将空闲页面串接成双向链表。这种方式很简洁,可以很好的应用First Fit算法 ...

Thu Oct 29 18:26:00 CST 2020 0 490
MIT6.S081/6.828准备:MacOS下搭建xv6和risc-v环境

本文介绍搭建Mit6.828/6.S081 fall2019实验环境的详细过程,包括riscv工具链、qemu和xv6,以MacOS下的实践为例,Linux系统同样可以参考。 介绍 只有了解底层原理才能写好上层应用,曾经几度想要系统地学习OS课程,尝试去看了《计算机操作系统 ...

Wed May 27 18:22:00 CST 2020 0 2093
MIT 6.S081 2021: Lab traps

RISC-V assembly Which registers contain arguments to functions? For example, which register holds 13 in main's call to printf ...

Sat Nov 20 06:42:00 CST 2021 1 740
MIT 6.S081 2021: Lab mmap

mmap mmap就是把指定的文件fd映射到进程内存空间的某一个部分,映射建立之后,进程读写这块内存就像是在读写文件一样。按照提示来做实验: Implement mmap: find an unused region in the process's address space ...

Tue Nov 23 07:15:00 CST 2021 2 920
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM