E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
6.S081
给 Linux0.11 添加网络通信功能 (Day3: 完成 MIT6.S081 最终实验 网卡驱动(1. 安装工具链和依赖))
url:https://pdos.csail.mit.edu/
6.S081
/2020/labs/net.html首先看tools章节:https://pdos.csail.mit.edu/
6.S081
/
shimly123456
·
2023-10-07 14:30
给
Linux0.11
添加网络通信功能
网络
xv6 调试技巧
url:https://pdos.csail.mit.edu/
6.S081
/2020/labs/guidance.html参考链接详细讲了xv6调试技巧,认真研读TODO:here
shimly123456
·
2023-10-07 14:30
给
Linux0.11
添加网络通信功能
网络
MIT
6.S081
学习笔记(第二章)
〇、前言本文主要完成MIT6.S081实验二:systemcall一、Usinggdb(easy)QuestionrequirementsInmanycases,printstatementswillbesufficienttodebugyourkernel,butsometimesbeingabletosinglestepthroughsomeassemblycodeorinspectingth
瑜陀
·
2023-10-05 05:00
OS
Unix/Linux
系统编程
MIT
6.S081
学习
笔记
xv6
MIT
6.S081
学习笔记(第〇章)
〇、前言本文涉及xv6《第零章操作系统接口》相关,主要对涉及的进程、I/O、文件描述符、管道、文件等内容产生个人理解,不具有官方权威解释;文章的目录与书中的目录没有严格的相关性;文中会有问题(Question)字段,这来源于对xv6book的扩展;文中涉及的代码均能在macOS12.5M1AppleSilicon运行,文中涉及的所有代码的运行也在该环境,其它平台未测试未知。xv6的很多代码都可以运
瑜陀
·
2023-09-17 14:08
OS
系统编程
Unix/Linux
学习
笔记
操作系统
MIT
6.S081
「实验记录」MIT
6.S081
Lab8 locks
#Lab8:locksI.SourceII.MyCodeIII.MotivationIV.Memoryallocator(moderate)i.Motivationii.Solutioniii.ResultV.Buffercache(hard)i.Motivationii.SolutionS1-定义bcache结构体S2-bcache的相关操作S3-何时pin()和unpin()S4-设计bget
士全
·
2023-09-17 14:08
xv6-labs-2020
risc-v
linux
MIT
6.S081
学习笔记(第一章)
〇、前言本章主要是关于实验环境的搭建和完成LABUTIL。平台:阿里云Ubuntu20.04+VScodeonmacOS(M1AppleSilicon)。一、环境搭建1、QEMUQEMU(quickemulator)是一款由法布里斯·贝拉(FabriceBellard)等人编写的通用且免费的可执行硬件虚拟化的(hardwarevirtualization)开源仿真器(Emulator)。其与Boc
瑜陀
·
2023-09-17 14:07
OS
系统编程
Unix/Linux
学习
笔记
操作系统
xv6
MIT
6.S081
[MIT
6.S081
] Lab 0: 实验配置, 调试及测试
Lab0:实验配置,调试及测试LabGuide:ToolsUsedin6.S081环境VMwareWorkstation16Pro操作系统:Ubuntu-20.04.3-desktop-amd64实验配置安装依赖:$sudoapt-getinstallgitbuild-essentialgdb-multiarchqemu-system-miscgcc-riscv64-linux-gnubinuti
PeakCrosser
·
2023-09-09 07:18
MIT
6.S081
Labs
risc-v
c语言
【MIT
6.S081
】课程介绍与Lab汇总
本门课MIT6.S081为MIT的本科生操作系统课程,由浅入深的讲解了页表、trap、系统调用、中断、锁、文件系统等操作系统概念及其在xv6中的实现,个人收获颇丰,也是第一次学习操作系统,每一部分的源码都详细的看了一遍,感觉非常棒!从3月份到5月份,我断断续续(4月份开始实习了时间片比较零碎)看完了Lec1-Lec15,也就是xv6book相应章节的讲解,并做完了Lab1-Lab9,后面一些lec
juruo_c
·
2023-08-08 18:13
MIT
6.S081
操作系统
os
6.s081
/6.1810(Fall 2022)Lab3: page tables
文章目录前言其他篇章参考链接0.前置环境1.Speedupsystemcalls(easy)1.1简单分析1.2映射1.3页分配1.4页释放1.5测试2.Printapagetable(easy)2.1简单分析2.2实现2.3测试3.Detectwhichpageshavebeenaccessed(hard)3.1简单分析3.2实现3.2.1获取参数3.2.2传出参数3.2.3定义PTE_A3.2
J__M__C
·
2023-08-08 10:33
6.s081
c语言
操作系统
6.s081
/6.1810(Fall 2022)Lab4: Traps
文章目录前言其他篇章参考链接0.环境搭建1.RISC-Vassembly(easy)1.0简介1.1Q11.2Q21.3Q31.4Q41.5Q51.6Q62.Backtrace(moderate)2.1简单分析2.2实现2.3测试3.Alarm(hard)3.1简单分析3.2test0:invokehandler3.2.1添加调用3.2.2获取参数3.2.3处理中断3.2.4测试3.3test1/
J__M__C
·
2023-08-08 10:33
6.s081
c语言
操作系统
6.s081
/6.1810(Fall 2022)Lab5: Copy-on-Write Fork for xv6
前言本来往年这里还有个LazyAllocation的,今年不知道为啥直接给跳过去了。.其他篇章环境搭建Lab1:UtilitiesLab2:SystemcallsLab3:PagetablesLab4:TrapsLab5:Copy-on-WriteForkforxv6参考链接官网链接xv6手册链接,这个挺重要的,建议做lab之前最好读一读。xv6手册中文版,这是几位先辈们的辛勤奉献来的呀!再习惯英
J__M__C
·
2023-08-08 10:02
6.s081
c语言
操作系统
6.s081
/6.1810(Fall 2022)Lab1:Utilities
文章目录前言其他篇章参考链接1.Bootxv6(easy)2.sleep(easy)3.pingpong(easy)4.primes(moderate)/(hard)5.find(moderate)6.xargs(moderate)最终测试前言这个Lab就是个热身Lab,跟着走吧~其他篇章环境搭建Lab1:UtilitiesLab2:Systemcalls参考链接官网链接xv6手册链接,这个挺重要
J__M__C
·
2023-08-03 13:26
6.s081
c语言
操作系统
6.s081
/6.1810(Fall 2022)环境搭建(WSL)
6.s081
(现在貌似叫6.1810?)是MIT经典OS神课6.828拆出来的本科生课程,相对于之前的还是简单一些。。。个人环境为WSL(Ubuntu22)。
J__M__C
·
2023-08-03 13:25
6.s081
c语言
操作系统
6.s081
/6.1810(Fall 2022)Lab2: System calls
文章目录前言其他篇章参考链接0.前置准备1.Systemcalltracing(moderate)简单分析Hint1Hint2Hint3Hint4Hint5测试2.Sysinfo(moderate)声明实现框架用户态与内核态交互计算空闲内存的大小计算非UNUSED进程的数量测试3.总测试前言这个lab主要介绍了用户态到内核态的系统调用做了什么,并让我们照猫画虎完成了两个系统调用的实现。其他篇章环境
J__M__C
·
2023-08-03 13:54
6.s081
c语言
操作系统
MIT
6.S081
Lab 11 -- NetWork -- 上
MIT6.S081Lab11--NetWork--上引言Network背景你的工作(hard)提示Lab解析E1000网卡重点内容官方手册摘录3.2PacketReception3.3PacketTransmission小结引言本文为MIT6.S0812020操作系统实验十一解析。MIT6.S081课程前置基础参考:基于RISC-V搭建操作系统系列Network在本实验室中,您将为网络接口卡(NI
Binary Oracle
·
2023-07-21 06:14
#
MIT
6.S081
linux
xv6
6.S081
Lab9: mmap
xv66.S081Lab9:mmap写在前面实验介绍开始!mmap代码在这里。这是完成的最后一个实验了,因为网络部分在计算机网络实验中有所涉及,就没再做了。只能说,完结撒花吧!感谢xv6陪伴的这一个学期。写在前面都最后一个实验了,相关参考资料就不多提了吧~还是提一下:我的博客OS实验xv66.S081开坑中给出了一些有用的参考资料,大家可以参考。实验介绍老样子,先给实验指导书。本次实验主要完成两个
DeadPool loves Star
·
2023-07-20 06:28
操作系统
OS-xv6
linux
操作系统
xv6
6.S081
mmap
xv6
6.S081
Lab8: fs
xv66.S081Lab8:fs写在前面实验介绍开始!LargeFileSymboliclinksfs代码在这里。我的妈呀,终于要写完了,xv6的filesystem考察难度并不大,这里强烈推荐我工Ext2BasedFileSystem,这里可以给一下参考代码与参考结果,后面找机会写写博客。写在前面xv6中的filesystem结构与Ext2的结构类似,如下图所示:在完成本实验前,推荐阅读xv6b
DeadPool loves Star
·
2023-07-20 06:27
操作系统
OS-xv6
文件系统
操作系统
xv6
S6.081
C
xv6
6.S081
Lab7: Lock
xv66.S081Lab7:Lock写在前面实验介绍开始!MemoryAllocatorBufferCachelock代码在这里。本次实验理解起来简单,做起来也容易写在前面老样子,在我的博客OS实验xv66.S081开坑中给出了一些有用的参考资料,大家也可以一并参考。实验介绍这里是实验指导书。本次实验主要还是学习内存分配,不过需要注意的是,本实验会和多CPU打交道,因此在内存分配的时候,锁的存在就
DeadPool loves Star
·
2023-07-20 06:27
操作系统
OS-xv6
Lock
操作系统
哈希桶
多CPU
xv6
6.S081
Lab1: util
xv66.S081Lab1:util写在前面实验介绍开始!sleeppingpongPrimesFindXargs拖了这么久,终于稍微有时间填坑了。今天介绍xv6的第一个实验util。代码在这里。废话不多说,我们开始吧。写在前面参考我的上一篇博客OS实验xv66.S081开坑,这里给出了一些有用的参考资料。实验介绍这是MITLab1的官方指导书Lab1UtilitiesLab1要求我们实现几个Un
DeadPool loves Star
·
2023-07-20 06:57
操作系统
OS-xv6
linux
xv6
unix
多进程
xv6
6.S081
Lab5: cow
xv66.S081Lab5:cow写在前面实验介绍开始!cow代码在这里。完成了lazy后,cow的实现就非常明了了……写在前面经典写在前面。cow是copy-on-write的缩写(不是母牛┗|`O′|┛嗷~~),从字面上来看就是只在要写的时候复制内存。考虑这样一个情况:调用fork()后,子进程是需要复制所有的父进程内存还是说当且仅当子进程或者父进程要写的时候才复制呢?答案显而易见了。这就是c
DeadPool loves Star
·
2023-07-20 06:57
操作系统
OS-xv6
c语言
操作系统
Linux
Copy-On-Write
OS实验xv6
6.S081
开坑
OS实验xv66.S081开坑终于把xv620196.S081做完了,网络部分没有写,因为有计网实验了。怎么说呢,xv6的坑有点多,能做完多亏了:和我同学ljj交流,参考RedemptionC老哥的博客(他写的非常详细,遗憾的是,他好像没有写mmap),再者就是参考这位老哥的做法(没有源码,写得不是特别详细,不过有借鉴作用,mmap就是借鉴了他的思想)……废话不多说了,直接开始。实验指导首推Red
DeadPool loves Star
·
2023-07-20 06:56
OS-xv6
操作系统
ubuntu
linux
操作系统
xv6
MIT
6.S081
Lab Six
MIT6.S081LabSix引言Copy-on-WriteForkforxv6问题解决方案Implementcopy-onwrite(hard)代码解析可选的挑战练习引言本文为MIT6.S0812020操作系统实验六解析。MIT6.S081课程前置基础参考:基于RISC-V搭建操作系统系列Copy-on-WriteForkforxv6虚拟内存提供了一定程度的间接寻址:内核可以通过将PTE标记为无
Binary Oracle
·
2023-06-23 21:53
#
MIT
6.S081
git
java
开发语言
MIT
6.S081
Lab Five
MIT6.S081LabFive引言xv6lazypageallocationEliminateallocationfromsbrk()(easy)代码解析Lazyallocation(moderate)代码解析LazytestsandUsertests(moderate)代码解析可选的挑战练习引言本文为MIT6.S0812020操作系统实验五解析。MIT6.S081课程前置基础参考:基于RISC
Binary Oracle
·
2023-06-23 16:43
#
MIT
6.S081
git
github
java
MIT
6.S081
(BOOK-RISCV-REV1)教材第四章内容 -- 下
MIT6.S081教材第四章内容--下引言从内核空间陷入页面错误异常PageFaultBasicsLazypageallocationZeroFillOnDemandCopyOnWriteForkDemandPagingMemoryMappedFiles真实世界引言MIT6.S0812020操作系统本文为MIT6.S081课程第四章教材内容翻译加整理。本课程前置知识主要涉及:C语言(建议阅读C程序
Binary Oracle
·
2023-06-22 19:16
#
MIT
6.S081
risc-v
MIT
6.S081
(BOOK-RISCV-REV1)教材第四章内容 -- 上
MIT6.S081教材第四章内容--上引言陷阱指令和系统调用RISC-V陷入机制代码:调用系统调用从用户空间陷入系统调用参数补充引言MIT6.S0812020操作系统本文为MIT6.S081课程第四章教材内容翻译加整理。本课程前置知识主要涉及:C语言(建议阅读C程序语言设计—第二版)RISC-V汇编推荐阅读:程序员的自我修养-装载,链接与库陷阱指令和系统调用有三种事件会导致CPU搁置普通指令的执行
Binary Oracle
·
2023-06-22 12:51
#
MIT
6.S081
网络
linux
服务器
MIT
6.S081
(BOOK-RISCV-REV1)教材第三章内容
MIT6.S081教材第三章内容引言页表分页硬件内核地址空间物理内存分配代码(物理内存分配)kinit函数kfree函数kalloc函数代码:创建一个地址空间kvminit函数kvmmap函数walk函数kvminithart函数procinit函数进程地址空间代码:sbrk代码:execELF文件格式sectionheaderprogramheader堆和栈exec函数真实世界引言MIT6.S0
Binary Oracle
·
2023-06-19 05:46
#
MIT
6.S081
java
网络
linux
6.S081
——补充材料——RISC-V架构中的异常与中断详解
0.brieflyspeaking我在阅读Xv6源码过程中对很多概念感到困惑,想到也许会有其他人对此秉持同样的困惑,所以我将我的研究和学习过程总结下来并编篡成如下的博客。本篇博客想对RISC-V标准中有关中断和异常的概念进行一个梳理,考虑RISC-V标准的实现灵活性,我们必须结合一个具体的平台来研究这个过程。这里我们选择了Xv6运行的平台——SiFiveUnleashed本篇博客需要阅读的材料如下
Zheyuan Zou
·
2023-06-17 05:58
MIT
6.S081
risc-v
架构
单片机
系统架构
linux
6.S081
——陷阱部分(一文读懂Xv6系统调用)——xv6源码完全解析系列(5)
0.brieflyspeaking这篇博客将要开始尝试阅读和研究与Xv6陷阱机制相关的代码,主要有以下文件,最重要的是结合Xv6book将Xv6处理陷阱的相关逻辑和流程弄透。在Xv6的语境中所谓陷阱的触发有以下三种情况:系统调用严重错误(比如除0错误)设备中断而从陷阱的来源分类,陷阱可以分为从用户态陷阱和从内核态陷阱。用户态陷阱包含上面的三种触发情况,而内核态陷阱只包含后两种情况。作为用户态陷阱中
Zheyuan Zou
·
2023-06-17 05:58
MIT
6.S081
linux
网络
系统架构
c++
数据结构
6.S081
——陷阱部分(内核陷阱)——xv6源码完全解析系列(6)
0.brieflyspeaking点此跳转到上一篇博客在上一篇博客中,我们通过系统调用这个重要的机制了解了Xv6操作系统中用户态陷阱的处理全流程。这篇博客则准备研究一下内核陷阱的处理流程,在研究内核陷阱流程中一个麻烦的家伙是定时器中断,首先它是一种由CLINT转发而来的本地中断,定时器中断往往会导致CPU的调度,进而将陷阱的处理流程变得错综复杂,这篇博客并不打算深入研究调度过程,这部分内容我们放在
Zheyuan Zou
·
2023-06-17 05:58
MIT
6.S081
linux
系统架构
c++
6.S081
——Lab4——trap lab
0.brieflyspeaking这是MIT6.S081Fall2021课程的第四个实验,它是有关陷阱机制的一系列小问题,如果对陷阱机制仍有疑问,可以参考我之前写的其他3篇博客,它们很好地解释了一些背景知识:用户态陷阱(以系统调用为例)内核态陷阱RISC-V陷阱机制详解本实验分为以下三个小任务,难度依次递增:RISC-Vassembly(easy)Backtrace(moderate)Alarm(
Zheyuan Zou
·
2023-06-17 05:55
MIT
6.S081
c语言
开发语言
系统架构
c++
linux
MIT
6.S081
Lab Two
MIT6.S081LabTwo引言systemcallsSystemcalltracing(moderate)实验解析实现思路小结Sysinfo(moderate)实验解析可选的挑战引言本文为MIT6.S0812020操作系统实验一解析。MIT6.S081课程前置基础参考:基于RISC-V搭建操作系统系列systemcalls在上一个实验中,您使用系统调用编写了一些实用程序。在本实验室中,您将向x
Binary Oracle
·
2023-06-13 10:29
#
MIT
6.S081
git
github
MIT
6.S081
(BOOK-RISCV-REV1)教材第二章内容
MIT6.S081第二章内容引言操作系统架构抽象系统资源用户态,核心态,以及系统调用内核组织代码(XV6架构篇)进程概述代码(启动XV6和第一个进程)真实世界引言MIT6.S0812020操作系统本文为MIT6.S081课程第二章教材内容翻译加整理。本课程前置知识主要涉及:C语言(建议阅读C程序语言设计—第二版)RISC-V汇编推荐阅读:程序员的自我修养-装载,链接与库操作系统架构操作系统的一个关
Binary Oracle
·
2023-06-11 13:47
#
MIT
6.S081
unix
linux
网络
MIT 6.1810(6.828/
6.S081
) 操作系统工程 Lab10 mmap
Lab:mmap(hard)mmap和munmap系统调用允许UNIX程序对其地址空间进行详细控制。它们可用于在进程之间共享内存,将文件映射到进程地址空间,以及作为用户级页面错误方案(如课程中讨论的垃圾回收算法)的一部分。在本实验中,你将向xv6添加mmap和munmap,重点关注内存映射文件。运行man2mmap可得到手册中mmap的声明:void*mmap(void*addr,size_tle
·
2023-06-10 19:16
c操作系统
一只小菜鸡学MIT公开课
6.S081
的经验分享(持续更新)
一只小菜鸡学MIT操作系统公开课
6.S081
的经验分享(持续更新)一更,目前前边还有几个剩下的没做完,目前是学到fs了,有太多想说的了,实在是忍不住就写了这篇博客,再往后会继续更新这部分相关.在去年暑假想学操作系统学这门课之前
ryan润
·
2023-06-10 18:07
经验分享篇
学习
经验分享
MIT
6.S081
Lab One
MIT6.S081LabOne引言sleep(难度:Easy)解析Lab代码实现pingpong(难度:Easy)Lab代码实习小结引言本文为MIT6.S0812020操作系统实验一解析。MIT6.S081课程前置基础参考:基于RISC-V搭建操作系统系列sleep(难度:Easy)任务:实现xv6的UNIX程序sleep:您的sleep应该暂停到用户指定的计时数。一个滴答(tick)是由xv6内
Binary Oracle
·
2023-06-10 15:30
#
MIT
6.S081
unix
linux
bash
【MIT
6.S081
】Lab6: Copy-on-Write Fork for xv6
COW概述Implementcopy-onwrite问题本Lab为xv6添加一个copyonwrite的功能。笔者用时约6h(太菜啦不难但是细节多概述xv6中原始fork系统的实现是,当产生一个子进程时,直接把父进程页表中的每一页复制给子进程的页表,这样子做无疑有许多物理空间被浪费,因为并不是每一个空间都会在之后被修改。一个经典的思路就是copyonwrite,也就是一开始父子进程共享一块物理空间
juruo_c
·
2023-04-19 13:59
MIT
6.S081
操作系统
os
【MIT
6.S081
】Lab7: Multithreading
threadUthread:switchingbetweenthreadsUsingthreadsBarrier本Lab比较简单,就是为xv6添加一个用户级的多线程功能,然后熟悉一下Linux下多线程编程。笔者用时约2hUthread:switchingbetweenthreads这一部分的代码不涉及内核代码,所以也比较简单,根据提示修改user/uthread.c中的代码即可。仿照内核中进程转换
juruo_c
·
2023-04-19 13:59
MIT
6.S081
操作系统
os
【MIT
6.S081
】Lab5: xv6 lazy page allocation
Lazy概述Eliminateallocationfromsbrk()LazyallocationLazytestsandUsertests本Lab为xv6添加一个lazypageallocation的功能。笔者用时约1.5h(这个实验相对比较简单哩概述xv6中的用户程序使用sbrk系统调用向内核请求增长堆内存或者缩减堆内存。对于增长内存的情况,用户往往会申请多于实际需要的内存以便使用。于是,对于
juruo_c
·
2023-04-19 13:58
MIT
6.S081
操作系统
os
【MIT
6.S081
】Lab8: Locks
lockMemoryallocatorBuffercache这个lab比起上个lab难度大了一些,需要熟练掌握锁的使用。笔者用时约7h(我太菜啦Memoryallocator第一部分相对比较简单,就是为每个CPU独立出一个内存分配器(管理内存的链表),减少锁的竞争,提高程序并行度。具体来说,一开始锁争用的根本原因就是内核只维护了一个内存空闲列表,由一个锁去保护,于是多个CPU争用该列表的频率很高。
juruo_c
·
2023-04-19 13:26
MIT
6.S081
操作系统
os
6.S081-Lab 2: System Calls
更好的阅读体验官方材料:https://pdos.csail.mit.edu/
6.S081
/2021/labs/syscall.html参考材料:https://th0ar.gitbooks.io/xv6
MINGgoS
·
2023-04-19 04:42
OS
python
开发语言
MIT 6.1810(6.828/
6.S081
) 操作系统工程 Labs
每个实验我都将实验要求和提示、实现思路和步骤、遇到问题和测试结果记录下来,一方面为了将实验要求和提示翻译后记录下来以便后续研读,另一方面也是为了加深实验中学习到的知识点:MIT6.1810(6.828/
6.
·
2023-04-18 22:33
c操作系统
6.S081
附加Lab1 用户执行系统调用的过程(Trap)
6.S081
附加Lab011用户执行系统调用的过程(Trap)文章目录
6.S081
附加Lab011用户执行系统调用的过程(Trap)0.一些背景说明1.进入内核前的准备write()->ECALL2.进入内核后的
蔚天灿雨
·
2023-04-14 10:05
OS
-
6.S081
linux
unix
系统安全
6.S081
——虚拟内存部分——xv6源码完全解析系列(2)
0.BrieflySpaeking点此回看本系列博客的上一篇上一篇博客中,我们详细分析了xv6内核代码中有关虚拟内存的部分,主要剖析了vm.c这个文件中的三个全局变量和6个函数,这篇博客紧跟着上篇博客的步伐。接着剖析和阅读接下来的源码,同样首先列出所有要读的源码列表:1.kernel/memorylayout.h2.kernel/vm.c(434rows)=MAXVA)return0;//调用wa
Zheyuan Zou
·
2023-04-13 06:20
MIT
6.S081
linux
系统架构
c++
6.S081
——虚拟内存部分——xv6源码完全解析系列(3)
0.brieflyspeaking没想到vm.c这份代码文件还没有读完,不过剩下的也就只剩下copyin、copyout、copyinstr这三个函数了。这篇博客就将整个虚拟内存部分的代码收个尾,然后再去扒一扒exec.c的实现逻辑。1.kernel/memorylayout.h2.kernel/vm.c(434rows)0){//使用PGROUNDDOWN宏来找到srcva对应页的起始虚拟地址v
Zheyuan Zou
·
2023-04-13 06:20
MIT
6.S081
linux
系统架构
c++
6.S081
——虚拟内存部分——xv6源码完全解析系列(1)
0.BrieflySpeaking这篇博客是完成
6.S081
第三个实验之前的准备环节,主要内容是阅读相关的源码。
Zheyuan Zou
·
2023-04-13 06:50
MIT
6.S081
系统架构
c++
MIT
6.s081
学习笔记
MIT6.s081学习笔记introduction计算机组织结构:最底部是一些硬件资源,包括了CPU,内存,磁盘,网卡最上层会运行各种应用程序,比如vim,shell等,这些就是正在运行的所有程序,它们都运行在同一个空间中,这个空间通常会被称为用户空间(Userspace)。区别于用户空间程序,有一个特殊的程序总是会在运行,它称为Kernel。Kernel是计算机资源的守护者。当你打开计算机时,K
BoL0150
·
2023-04-13 06:20
os
linux
risc-v
6.s081
XV6-写时复制(Copy On Write)的思路分析
机制有一定的了解才能够阅读尤其是要对内存机制和trap机制的源码要比较熟悉(也可以是linux的源码,但是要难得多)若尚未接触过trap机制的读者可以翻看上一篇文章,重新阅读本篇文章并没有xv6的COW源码的解析,因为这些功能都需要读者们自己在
6.
川流_41278
·
2023-04-13 06:49
c语言
ubuntu
系统架构
6.s081
XV6 底层IO的解析(1)
xv6底层IO的解析——硬件中断篇(1)xv6的输入篇xv6的IO这部分的源码可以说是笔者至今为止认为xv6最难的部分因为这部分涉及到软件和硬件的交互,读者们必须先对前几章的内容有所了解,才能了解这一章概述UART:你可以理解为输入字符和输出字符用的硬件内存空间中有一部分地址线属于硬件访问的地址线,这部分地址线并不与RAM相连,而是直接连接到硬件的端口上,这样使得CPU能够像访问内存一样访问硬件,
川流_41278
·
2023-04-13 06:49
c语言
ubuntu
系统架构
6.S081
——虚拟内存部分——xv6源码完全解析系列(4)
0.brieflyspeaking点击跳转到上一篇博客好,现在进入下一个话题,就是物理内存分配器(kernel/kalloc.c)。在简单介绍完内核态的物理内存分配器之后,之后简单带过一下两个头文件riscv.h和memorylayout.h这两个头文件,因为它们都比较特殊,直接阅读可能会失去整体性。1.kernel/memorylayout.h(79rows)=PHYSTOP)panic("kf
Zheyuan Zou
·
2023-04-13 06:45
MIT
6.S081
链表
数据结构
xv6
6.S081
Lab4: lazy
xv66.S081Lab4:lazy写在前面实验介绍开始!打印页表实现LazyAllocation修改sbrk()实现LazyAllocation完善LazyAllocationlazy代码在这里。我去,lazy改好多文件啊。不过相比于buddyallocator,自认为lazy还是好多了。写在前面哈哈,老·写在前面了。在完成lazy的时候,一定要有Page的概念,说白了就是一个内存页,emmm,
DeadPool loves Star
·
2023-04-11 23:32
操作系统
OS-xv6
lazy
allocator
操作系统
内存管理
上一页
1
2
3
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他