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
xv6
Mit6.828 lab4 Part B:Copy-on-write fork
xv6
通过复制父进程所有的内容来实现fork().这就是dumbfork所作的。复制父进程的内容到子进程中是for
扶桑与克里斯
·
2023-09-12 18:59
mycpu和myproc
本文探究
xv6
中myproc()函数的用法。
Xv6
通常需要有指向当前进程的proc结构体的指针。
诗子黎
·
2023-09-11 06:52
linux
Mit6.828 lab5: File system,Spawn and Shell
另外,我觉得Lab5这部分和
xv6
中对于Unix的一些知识点的实现稍微有些不同(至少我是这么认为的,这个lab中的很多知识点我选择了认真阅读
xv6
的代码来理解)。
扶桑与克里斯
·
2023-08-24 05:20
lab2 system calls
重新捋一遍系统调用的过程Sysinfo任务hints思路PreRead任务列表
xv6
课本第二章:Operatingsystemorganization
是小肖啊!
·
2023-08-18 18:52
6.S081
java
服务器
数据库
lab1 utilities
/grade-lab-utilsleepsleep要求为
xv6
实
是小肖啊!
·
2023-08-18 18:22
6.S081
linux
【MIT 6.S081】课程介绍与Lab汇总
本门课MIT6.S081为MIT的本科生操作系统课程,由浅入深的讲解了页表、trap、系统调用、中断、锁、文件系统等操作系统概念及其在
xv6
中的实现,个人收获颇丰,也是第一次学习操作系统,每一部分的源码都详细的看了一遍
juruo_c
·
2023-08-08 18:13
MIT
6.S081
操作系统
os
6.s081/6.1810(Fall 2022)Lab5: Copy-on-Write Fork for
xv6
其他篇章环境搭建Lab1:UtilitiesLab2:SystemcallsLab3:PagetablesLab4:TrapsLab5:Copy-on-WriteForkforxv6参考链接官网链接
xv6
J__M__C
·
2023-08-08 10:02
6.s081
c语言
操作系统
6.828
Xv6
实验工具指导
6.828实验工具指南熟悉您的环境对于高效开发和调试至关重要。本页简要介绍了JOS环境以及有用的GDB和QEMU命令。阅读GDB和QEMU手册,这些是让你知道如何使用的强大工具。调试提示:内核用户环境参考:JOSmakefileJOSobj/GDBQEMU调试提示内核GDB是你的朋友。使用qemu-gdb(或其qemu-gdb-nox变体)使QEMU等待GDB连接。有关在调试内核时有用的命令,请参
写代码的秃头少女
·
2023-08-05 21:44
Xv6
6.s081/6.1810(Fall 2022)Lab1:Utilities
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)
文章目录前言其他篇章参考链接环境搭建测试安装测试安装
xv6
连接编辑环境前言好吧,又开了个坑,不知道这个能写多久。。。。6.s081(现在貌似叫6.1810?)
J__M__C
·
2023-08-03 13:25
6.s081
c语言
操作系统
牛客网:设计LRU缓存结构 设计LFU缓存结构
缓存结构GetSetUpdate1.设计LRU缓存结构这题,说实话,一开始没看懂他的输入到底是什么...看看说明,好像又是这么一回事,就是创建一个类然后直接调用里面的方法:其实是维护一个双向链表,写过
XV6
lsgoose
·
2023-07-30 19:14
牛客网
缓存
MIT6.828 lab3 Part A:User Environments and Exception Handling
环境ubuntu20.0464位系统之前有些实验是在
xv6
的源码上操作的,发现20.04无法运行。后来发现lab还是可以在20.04正常做的,就把环境切换到本机上了。
扶桑与克里斯
·
2023-07-29 15:29
xv6
6.S081 Lab9: 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
我的妈呀,终于要写完了,
xv6
的filesystem考察难度并不大,这里强烈推荐我工Ext2BasedFileSystem,这里可以给一下参考代码与参考结果,后面找机会写写博客。
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
今天介绍
xv6
的第一个实验util。代码在这里。废话不多说,我们开始吧。写在前面参考我的上一篇博客OS实验xv66.S081开坑,这里给出了一些有用的参考资料。
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 开坑
怎么说呢,
xv6
的坑有点多,能做完多亏了:和我同学ljj交流,参考RedemptionC老哥的博客(他写的非常详细,遗憾的是,他好像没有写mmap),再者就是参考这位老哥的做法(没有源码,写得不是特别详细
DeadPool loves Star
·
2023-07-20 06:56
OS-xv6
操作系统
ubuntu
linux
操作系统
xv6
X86汇编语言从实模式到保护模式(Linux环境搭建)
前言 在学完了计算机组成原理和王爽的汇编语言后,虽然操作系统的理论知识能看懂了,但做起
xv6
和ucore实验还是有一定难度,所以还是得补一补x86汇编的知识。
念小诺
·
2023-07-18 11:05
汇编语言
linux
综合能力训练:在树莓派上动手写一个小OS(1):实验前准备
目前很多国内外知名大学的“操作系统”课程中的实验与动手写一个小OS相关,比如麻省理工学院的操作系统课程采用
xv6
系统来做实验。
xv6
是在x86处理器上重新实现的UNIX第6版系统,用于教学目的。
奔跑吧Linux社区
·
2023-07-15 19:57
linux
运维
服务器
【
xv6
操作系统】安装、运行与调试
一、构建、装入过程1.编写“启动代码+主体代码”(在下载的
xv6
的原始代码上进行修改)2.源代码进行编译、链接生成系统镜像(elf格式的目标文件)3.将系统镜像保存起来(如保存到磁盘、flash或者网络服务器上
菜鸟ql
·
2023-06-23 06:06
xv6
linux
运维
服务器
操作系统MIT6.S081:Lab5->Lazy allocation
本系列文章为MIT6.S081的学习笔记,包含了参考手册、课程、实验三部分的内容,前面的系列文章链接如下操作系统MIT6.S081:[
xv6
参考手册第1章]->操作系统接口操作系统MIT6.S081:[
爱你哦小猪猪
·
2023-06-22 19:46
操作系统MIT6.S081
unix
linux
risc-v
后端
架构
MIT6.828 HW1 Boot
xv6
准备工作这次使用的代码是
xv6
,而不是之前lab1的代码,所以需要重新从github拉下来:gitclonegit://g
扶桑与克里斯
·
2023-06-18 18:16
6.S081——补充材料——RISC-V架构中的异常与中断详解
0.brieflyspeaking我在阅读
Xv6
源码过程中对很多概念感到困惑,想到也许会有其他人对此秉持同样的困惑,所以我将我的研究和学习过程总结下来并编篡成如下的博客。
Zheyuan Zou
·
2023-06-17 05:58
MIT
6.S081
risc-v
架构
单片机
系统架构
linux
6.S081——陷阱部分(一文读懂
Xv6
系统调用)——
xv6
源码完全解析系列(5)
0.brieflyspeaking这篇博客将要开始尝试阅读和研究与
Xv6
陷阱机制相关的代码,主要有以下文件,最重要的是结合Xv6book将
Xv6
处理陷阱的相关逻辑和流程弄透。
Zheyuan Zou
·
2023-06-17 05:58
MIT
6.S081
linux
网络
系统架构
c++
数据结构
6.S081——陷阱部分(内核陷阱)——
xv6
源码完全解析系列(6)
0.brieflyspeaking点此跳转到上一篇博客在上一篇博客中,我们通过系统调用这个重要的机制了解了
Xv6
操作系统中用户态陷阱的处理全流程。
Zheyuan Zou
·
2023-06-17 05:58
MIT
6.S081
linux
系统架构
c++
MIT6.s081实验记录(一):gdb调试qemu方法 & lab1
MIT6.s081实验记录(一):gdb调试qemu方法&lab1准备工作
xv6
调试在
xv6
文件夹下makeqemu-gdb启动qemu上的gdbserver。
BoL0150
·
2023-06-11 13:20
os
c++
linux
MIT6.S081学习总结-lab9:file system
原本
xv6
中每个文件有13个地址索引,前12个是直接地址索引,对应的数据块直接存储数据,最后一个是一级间接地址索引,对应的数据块存储地址索引,因此最大文件为256+12=268256+12=268256
NullObjectError
·
2023-06-11 13:20
Linux
操作系统
linux
6.S081
操作系统MIT6.S081:Lab3->Page tables
本系列文章为MIT6.S081的学习笔记,包含了参考手册、课程、实验三部分的内容,前面的系列文章链接如下操作系统MIT6.S081:[
xv6
参考手册第1章]->操作系统接口操作系统MIT6.S081:P1
爱你哦小猪猪
·
2023-06-11 13:48
操作系统MIT6.S081
unix
linux
服务器
risc-v
架构
MIT 6.S081 (BOOK-RISCV-REV1)教材第二章内容
MIT6.S081第二章内容引言操作系统架构抽象系统资源用户态,核心态,以及系统调用内核组织代码(
XV6
架构篇)进程概述代码(启动
XV6
和第一个进程)真实世界引言MIT6.S0812020操作系统本文为
Binary Oracle
·
2023-06-11 13:47
#
MIT
6.S081
unix
linux
网络
MIT 6.1810(6.828/6.S081) 操作系统工程 Lab10 mmap
在本实验中,你将向
xv6
添加mmap和munmap,重点关注内存映射文件。运行man2mmap可得到手册中mmap的声明:void*mmap(void*addr,size_tle
·
2023-06-10 19:16
c操作系统
MIT 6.S081 Lab One
MIT6.S081课程前置基础参考:基于RISC-V搭建操作系统系列sleep(难度:Easy)任务:实现
xv6
的UNIX程序sleep:您的sleep应该暂停到用户指定的计时数。
Binary Oracle
·
2023-06-10 15:30
#
MIT
6.S081
unix
linux
bash
从零手写操作系统之RVOS系统调用实现-09
用户态和内核态如何让任务运行在用户态下系统模式的切换用户模式下访问特权指令测试系统调用系统调用执行流程系统调用传参规范系统调用封装系统调用完整流程解析执行测试本系列参考:学习开发一个RISC-V上的操作系统-汪辰-2021春整理而来,主要作为
xv6
Binary Oracle
·
2023-06-09 16:22
#
java
前端
linux
MIT6.828 HW4 lazy page allocation
环境ubuntu18.0464位系统HW地址:HW2lazypagealloction虽然官网没有要求去阅读trap这一章,但是我觉得还是读一下对于本次实现的代码有些帮助,而且还能基本清楚
xv6
是如何实现一个中断和
扶桑与克里斯
·
2023-06-08 18:03
从零手写操作系统之RVOS任务同步和锁实现-07
任务同步和锁实现-07并发与同步临界区、锁、死锁自旋锁1.0版本2.0版本原子指令思路测试3.0版本测试小结其他同步技术本系列参考:学习开发一个RISC-V上的操作系统-汪辰-2021春整理而来,主要作为
xv6
Binary Oracle
·
2023-06-07 14:56
#
java
数据库
linux
【MIT 6.S081】Lab6: Copy-on-Write Fork for
xv6
COW概述Implementcopy-onwrite问题本Lab为
xv6
添加一个copyonwrite的功能。
juruo_c
·
2023-04-19 13:59
MIT
6.S081
操作系统
os
【MIT 6.S081】Lab7: Multithreading
threadUthread:switchingbetweenthreadsUsingthreadsBarrier本Lab比较简单,就是为
xv6
添加一个用户级的多线程功能,然后熟悉一下Linux下多线程编程
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的功能
juruo_c
·
2023-04-19 13:58
MIT
6.S081
操作系统
os
6.S081-Lab 2: System Calls
th0ar.gitbooks.io/xv6-chinese/content/https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/在开始编码之前,请阅读
xv6
MINGgoS
·
2023-04-19 04:42
OS
python
开发语言
第4课 虚拟内存
地址空间分页硬件
xv6
的VM代码虚拟内存概述问题:假设shell程序有一个bug:有时,它会向一个随机的内存地址写数据。那么我们该怎样阻止shell程序破坏内核和破坏其他进程呢?
橡树人
·
2023-04-18 23:34
第三章 页表
他们允许
xv6
在同一块物理内存上隔离不同进程的地址空间。页表还间接的为
xv6
提供了一些手段:在多个地址空间中映射相同的内存地址,通过未分配的页来保护内核和用户栈。
merore
·
2023-04-15 02:47
6.S081——虚拟内存部分——
xv6
源码完全解析系列(2)
0.BrieflySpaeking点此回看本系列博客的上一篇上一篇博客中,我们详细分析了
xv6
内核代码中有关虚拟内存的部分,主要剖析了vm.c这个文件中的三个全局变量和6个函数,这篇博客紧跟着上篇博客的步伐
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++
【OS
xv6
】2 万字详解
xv6
如何启动和运行第一个进程(文档第二章文摘+相关源码分析)
【
xv6
详解】1Operatingsysteminterfaces资料准备见第一篇。还是那句话,仅个人笔记仅记录注意点,完整详解得等后续看有无时间整理。
jennie佳妮
·
2023-04-13 06:50
操作系统
xv6
操作系统
userinit
进程初始化
xv6源码
6.S081——虚拟内存部分——
xv6
源码完全解析系列(1)
之前提过
xv6
最宝贵的部分是内核源码,这些是完成实验之前必备的基础,也是学习这门课的精髓所在,所以我准备再开一个系列博客专门用来记录
xv6
源码阅读的环节。
Zheyuan Zou
·
2023-04-13 06:50
MIT
6.S081
系统架构
c++
xv6
源码解析(四)——进程管理
01进程管理进程管理:添加了常见的IPC通信模块(共享内存、消息队列);以进程上下文切换为基础,实现了时间片轮转调度算法;设计了自旋锁Spinlock,为用户进程提供互斥机制。02进程通信共享内存设计的简化版本的共享内存,远达不到Linux共享内存的通用程度,但也能将共享内存的核心思想体现出来。简化后的限制包括:(1)整个系统只有固定的若干个共享内存区(2)进程不允许一个共享内存区反复映射到自己的
-特立独行的猪-
·
2023-04-13 06:49
#
嵌入式系统开发
linux
网络
xv6
源码解析(三)——内存管理
01内存管理内存管理:通过编写物理页分配器,以链表管理所有空闲页帧,实现了对物理页帧的回收与分配;在
xv6
系统sbrk内存管理方式的基础上,添加了进程用户空间非连续分区的分配。
-特立独行的猪-
·
2023-04-13 06:19
#
嵌入式系统开发
算法
linux
6.s081 XV6-写时复制(Copy On Write)的思路分析
XV6
——页错误解析(1)
XV6
——写时复制技术的实现思路写时复制(CopyOnWrite)本篇文章需要对内存机制与trap机制有一定的了解才能够阅读尤其是要对内存机制和trap机制的源码要比较熟悉(也可以是
川流_41278
·
2023-04-13 06:49
c语言
ubuntu
系统架构
6.s081
XV6
底层IO的解析(1)
xv6
底层IO的解析——硬件中断篇(1)
xv6
的输入篇
xv6
的IO这部分的源码可以说是笔者至今为止认为
xv6
最难的部分因为这部分涉及到软件和硬件的交互,读者们必须先对前几章的内容有所了解,才能了解这一章概述
川流_41278
·
2023-04-13 06:49
c语言
ubuntu
系统架构
XV6
陷入,中断和驱动程序
陷入,中断和驱动程序运行进程时,cpu一直处于一个大循环中:取指,更新PC,执行,取指……。但有些情况下用户程序需要进入内核,而不是执行下一条用户指令。这些情况包括设备信号的发出、用户程序的非法操作(例如引用一个找不到页表项的虚拟地址)。处理这些情况面临三大挑战:1)内核必须使处理器能够从用户态转换到内核态(并且再转换回用户态)2)内核和设备必须协调好他们并行的活动。3)内核必须知道硬件接口的细节
kexinxin1
·
2023-04-13 06:19
上一页
1
2
3
4
5
6
7
下一页
按字母分类:
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
其他