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
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
操作系统
内存管理
6.s081-lab4 对
xv6
系统调用过程的源码的详细解析
#前言本文中所有相关的行号均使用markdown渲染后的代码块内的行号本文是对trap源码的解析,建议配合
xv6
手册第四章一起阅读trap的三种情况1.系统调用2.系统异常3.硬件中断traphandler
川流_41278
·
2023-04-11 22:55
单片机
嵌入式硬件
6.S081 附加Lab4 从源代码看进程退出——exit,wait,kill
6.S081附加Lab4从源代码看进程退出过程——exit,wait,kill进程退出,主要有两种方式exit和killed,本博客根据
xv6
源代码分析,进程退出并释放资源的过程。
蔚天灿雨
·
2023-04-11 22:22
OS
-
6.S081
底层函数实现/数据结构
系统架构
unix
操作系统MIT6.S081:P5->Isolation & system call entry/exit
本系列文章为MIT6.S081的学习笔记,包含了参考手册、课程、实验三部分的内容,前面的系列文章链接如下操作系统MIT6.S081:[
xv6
参考手册第1章]->操作系统接口操作系统MIT6.S081:P1
爱你哦小猪猪
·
2023-04-11 22:49
操作系统MIT6.S081
unix
linux
服务器
risc-v
架构
操作系统MIT6.S081:P7->Interrupts
本系列文章为MIT6.S081的学习笔记,包含了参考手册、课程、实验三部分的内容,前面的系列文章链接如下操作系统MIT6.S081:[
xv6
参考手册第1章]->操作系统接口操作系统MIT6.S081:[
爱你哦小猪猪
·
2023-04-11 22:18
操作系统MIT6.S081
服务器
linux
risc-v
unix
后端
操作系统MIT6.S081:[
xv6
参考手册第2章]->操作系统组织结构
本系列文章为MIT6.S081的学习笔记,包含了参考手册、课程、实验三部分的内容,前面的系列文章链接如下操作系统MIT6.S081:[
xv6
参考手册第1章]->操作系统接口操作系统MIT6.S081:P1
爱你哦小猪猪
·
2023-04-11 22:18
操作系统MIT6.S081
架构
unix
服务器
linux
risc-v
操作系统MIT6.S081:Lab4->Trap
本系列文章为MIT6.S081的学习笔记,包含了参考手册、课程、实验三部分的内容,前面的系列文章链接如下操作系统MIT6.S081:[
xv6
参考手册第1章]->操作系统接口操作系统MIT6.S081:P1
爱你哦小猪猪
·
2023-04-11 22:44
操作系统MIT6.S081
unix
linux
risc-v
服务器
架构
Mit6.S081-实验环境搭建
准备一个Linux系统,安装qemu以及其他依赖,通过git克隆下github的
xv6
源码,利用gcc编译源码得到可运行的操作系统,再利用qemu加载这个操
解析Ta
·
2023-04-09 19:24
操作系统
操作系统
Mit6.S081-实验1-Xv6 and Unix utilities
-Xv6andUnixutilities前言一、Bootxv61,实验目的2,操作流程1)切换到xv6-labs-2020代码库的lab1分支2)启动xv63)测试xv64)过程分析5)其他操作二、在
xv6
解析Ta
·
2023-04-09 19:24
操作系统
操作系统
MIT6.828_HW7_xv6 locking
Homework:xv6locking本节,我们将探索中断与锁机制的一些互相作用的情况Don’tdothis弄清楚如果
xv6
内核执行下列这段代码,会发生什么?
userXKk
·
2023-04-08 09:11
操作系统
MIT6.828_HW5_
XV6
CPU Alarm
Homework:xv6CPUalarm本次练习将向
xv6
添加一项功能,该功能会在使用CPU时间的情况下定期向进程发出警报。
userXKk
·
2023-04-08 09:41
操作系统
MIT_6.828_HW6_Threads and Locking
Homework:ThreadsandLocking本节中,我们将使用哈希表来探索线程和锁的并行编程,这个任务应该在一个具有多核的真实的计算机上运行(而非
xv6
或QEMU)Step1:下载https:/
userXKk
·
2023-04-08 09:41
操作系统
【MIT 6.S081】实验一:
Xv6
and Unix utilities 思路与代码
前言在华南理工大学的第五个年头,学OS已经第三年了,纸上得来终觉浅啊!所以决定动手完成一下MIT6.S081的实验。关于6.S081的美誉我也不赘述了。实验使用win10+wsl2Ubuntu20.04完成。内容总览本实验共有六个内容,都是自己通过调用系统函数实现一些工具函数,包括:sleep:什么也不敢,休眠一段时间。pingpong:父进程给子进程发消息,子进程收到后打印ping,子进程给父进
热爱学习的贾克斯
·
2023-04-08 09:34
笔记
后端
linux
Xv6
相关编译调试环境配置6.828
6.828中使用的工具你将在这个课程中使用两套工具:一个x86模拟器,QEMU,用于运行你的内核;和一个编译器工具链,包括汇编器,链接器,C编译器和调试器,用于编译和测试你的内核。此页面提供您需要下载并安装自己的副本的信息。这个课程假定你熟悉Unix命令。我们强烈建议使用Debathena机器,例如athena.dialup.mit.edu来实验室。如果您使用运行Linux的MITAthena机器
写代码的秃头少女
·
2023-04-08 09:34
Xv6
【MIT6.S081/6.828】Lab util: Unix utilities
本篇文章是从零实现操作系统的第一个实验,主要是让我们熟悉
xv6
及其系统调用
嵌入式与Linux那些事
·
2023-04-08 09:33
MIT6.S081/6.828
unix
物联网
linux
操作系统
mit
MIT6.828学习之homework9:Barriers
条件变量是一种序列协调技术,类似于
xv6
的sleep和wakeup。
请叫宝宝荡哥
·
2023-04-08 09:59
MIT6.828操作系统学习
MIT6.828
homework9
barriers
pthread_mutex_t
pthread_cond_t
MIT6.828_HW9_barriers
条件变量是一种类似于
xv6
的sleep和wakeup的序列协调技术。下载源码,编译执行。$gcc-g-O2-pthreadbarrier.c$.
Small_Pond
·
2023-04-08 09:29
MIT6.828操作系统
MIT6.828
HW9
barriers
XV6
1669_MIT 6.828
xv6
代码的获取以及编译启动
(github.com)6.828的学习的资料从开始基本信息的讲解,逐步往unix的一个特殊版本
xv6
过度了。这样,先得熟悉一下这个OS的基本代码以及环境。
grey_csdn
·
2023-04-08 09:26
Linux
unix
linux
unix
服务器
JOS
MIT
xv6
的作业翻译——作业1 - shell和系统调用
Xv6
的lectureLEC1Operatingsystems L1:O/SoverviewL1:O/S概述 *6.828goals6.828的目标 UnderstandoperatingsystemsindetailbydesigningandimplementingasmallO
weixin_30652879
·
2023-04-01 02:20
shell
操作系统
python
【操作系统】
xv6
文档及源码阅读1 Operating system interfaces
现在前面的嘻嘻几百年没写文了确实没时间,等搞完毕设可以一起重温重温。最近学os,读源码发现还挺多东西得整理的,尤其途中有必要找资料整理的时候,内容有点多有点乱,写在源码已经显得不现实了。用的vscode,听大佬介绍选的老师相当巴适,没那么叠bug叠难度,适合我的水平,有时间有也想手写啊啊啊啊感觉很好玩的样子。不管了,先按部就班完成实验阅读要求吧,也十分幸运今年2门课都强强组队了呜呜呜求大佬带起飞。
jennie佳妮
·
2023-03-31 19:46
操作系统
xv6
操作系统
xv6文档阅读
wsl
xv6
内存管理
前文讲述了
xv6
的启动过程,本文接着讲述
xv6
内存管理的部分,直接来看。
Rand_CS
·
2023-03-31 19:15
系统
xv6
2021
XV6
3:页表
1.speedupsystemcalls第一个任务就是加速系统调用,具体点讲就是,用户空间和内核共享一块只读数据,这样,用户在一些特定的系统调用上就不需要进内核态,从而减少了开销。然后这个任务是的流程如下:首先是在proc的数据结构里边多加一个usyscall结构体的指针:structusyscall{intpid;//ProcessID};structproc{structusyscall*us
lsgoose
·
2023-03-31 19:14
#
MIT
XV6实验
数据结构
Xv6
Page Table
Xv6PageTableLearningxv6-riscv-bookChapter3Pagetables文章目录Xv6PageTablePaginghardwareKerneladdressspaceCreatinganaddressspacePhysicalmemoryallocationPhysicalmemoryallocatorProcessaddressspacesbrkexecIsol
CDFMLR
·
2023-03-31 19:33
Xv6
unix
os
操作系统
xv6
Xv6
操作系统导论(第三章)
它们允许
xv6
隔离不同进程的地址空间,并将它们复用到单个物理内存上。
唱丶跳和Rap
·
2023-03-31 19:24
数据库
java
网络
XV6
Lab: page tables
XV6Lab:pagetables文章目录XV6Lab:pagetables一、vscode调试
xv6
代码二、调试过程1.kinit();2.kvminit();总结一、vscode调试
xv6
代码参考二
demo_zzt
·
2023-03-31 19:23
OS
编程语言
xv6
源码阅读——虚拟内存
kvminit()函数kalloc()函数kvmmap()函数proc_mapstacks()函数kvminithart()函数procinit()函数说明阅读的代码是xv6-riscv版本的内核地址空间
Xv6
binary~
·
2023-03-31 19:41
mit6.s081学习笔记
链表
数据结构
mit6.s081
操作系统
MIT
xv6
实验课程--页表(2021)
目录1.实验1:提速系统调用(难度:简单)实验参考步骤2.实验2:输出页表(难度:简单)实验参考步骤3.实验3:检测哪些页表被访问过(难度:困难)实验参考步骤在本实验中,我们将探索页表并对其进行修改,以加快某些系统调用,并检测那些页面已被访问。在开始编码之前,请阅读xv6book[1]和以下相关源程序:kern/memlayout.h,定义内存的布局。kern/vm.c,包含大多数虚拟内存(vm)
lhw---9999
·
2023-03-31 18:07
操作系统
xv6
pgtbl
页表
一、MIT
xv6
的启动和页表设计
下面我根据自己在学习
xv6
过程中容易混淆的概念作一些说明,在理解了这些概念后,我学习起来确实容易了一些。QEMU:一个利用软件实现的仿真器,实现了SiFive开发板的藩镇。
风卷海棠花
·
2023-03-31 18:25
MIT
6.S081
c语言
学习方法
risc-v
6.S081-3虚拟地址(page table)
6.S0813虚拟地址(pagetable)文章目录6.S0813虚拟地址(pagetable)0.简单总结1.引入(地址空间-AddressSpaces)(1)隔离性(两张图片就能说明)(2)在
XV6
蔚天灿雨
·
2023-03-31 18:53
OS
-
6.S081
linux
unix
操作系统MIT6.S081:[
xv6
参考手册第3章]->页表
本系列文章为MIT6.S081的学习笔记,包含了参考手册、课程、实验三部分的内容,前面的系列文章链接如下操作系统MIT6.S081:[
xv6
参考手册第1章]->操作系统接口操作系统MIT6.S081:P1
爱你哦小猪猪
·
2023-03-31 18:03
操作系统MIT6.S081
unix
linux
服务器
risc-v
架构
6.S081——Lab2——system calls
当然整个过程要全部了解,可能还需要做完Lab4:TrapsLab,在那个实验中将会具体探究
xv6
是如何借助陷阱来实现系统调用的。本实验的实验指导书在这里。
Zheyuan Zou
·
2023-03-30 12:52
MIT
6.S081
系统架构
6.S081——Lab1——
Xv6
and Unix utilities
0.BrieflySpeaking这是记录本人完成MIT6.S081课程系列博客的第一篇,在实验过程中我发现有非常多的点需要及时记录,也可能会有很多问题在完成后续的实验之后需要补记。这使得写这个系列博客非常有必要性,篇幅也可能会很长,并且还可能在后续持续更新和勘误,这是这个系列博客的引子。我完成的实验是2021年秋季的,课程的schedule在这里。实验的大部分内容是修改和补充操作系统设施,这意味
Zheyuan Zou
·
2023-03-30 12:22
MIT
6.S081
unix
linux
windows
第5章 中断和设备驱动
当一个设备触发一个中断时,内核陷阱处理代码会识别出来,并调用设备的中断处理程序,比如在
xv6
中,这种分发机制发生在devi
橡树人
·
2023-03-18 18:15
xv6
环境搭建
xv6
是MIT设计的一个教学型操纵系统。
xv6
可在IntelX86框架上运行,为了方便,建议将
xv6
运行在QEMU虚拟机器上,本人的实验环境是ubuntu18.04。1.安装系统安装QEMU软件。
professordeng
·
2023-01-27 11:44
操作系统OS lab4 (
xv6
) 实验报告
Lab4:调度实验简介实验目的:1.理解操作系统的调度管理机制2.熟悉
xv6
的系统调度器框架,以及缺省的Round-Robin调度算法3.实现Prioritybasedscheduling调度算法来替换缺省的调度算法实验背景
四十不嚯
·
2023-01-18 04:19
计算机
操作系统
6.S081
Xv6
Lab 3: page tables
Lab:pagetablesMIT6.S081Xv6-riscvLab3:https://pdos.csail.mit.edu/6.S081/2020/labs/pgtbl.htmlInthislabyouwillexplorepagetablesandmodifythemtosimplifythefunctionsthatcopydatafromuserspacetokernelspace.Pr
CDFMLR
·
2023-01-01 13:03
Xv6
内核
kernel
xv6
MIT6.828/6.S081 - 2019:Lab2 Shell
Mit6.828/6.S081fall2019的Lab2是SimpleShell,内容是实现一个简易的shell程序,本文对该实验的思路进行详细介绍,并对
xv6
提供的shell实现进行深入解析。
Physicaloser
·
2022-12-20 08:14
操作系统
linux
xv6
mit6.828
操作系统
【归档】[OS]
Xv6
System Calls
PartOne:SystemcalltracingYourfirsttaskistomodifythexv6kerneltoprintoutalineforeachsystemcallinvocation.Itisenoughtoprintthenameofthesystemcallandthereturnvalue;youdon’tneedtoprintthesystemcallargument
秋秋的鱼板面
·
2022-12-17 15:01
归档
xv6
操作系统
MIT
系统调用
2021
XV6
2:系统调用
1.trace首先需要在usys.pl中加个入口,Makefile中得改一下,然后就是user.h中添加定义。proc.h的PCB里边得加个mask,然后fork里边要加一个mask继承。在分发系统调用号的时候判断。在syscall.c里边改成这样:voidsyscall(void){intnum;structproc*p=myproc();num=p->trapframe->a7;if(num>
lsgoose
·
2022-12-17 15:31
MIT
XV6实验
java
servlet
c++
xv6
System Call
xv6
系统实现Systemcall,本文所实现的功能基于Vmwareubuntu14.04虚拟机1、配置环境:[1]安装虚拟机[2]sudoapt-getinstallgit[3]gitclonegit
Xiaoli_Coding
·
2022-12-17 15:30
xv6
xv6
【
xv6
RISC-V】
xv6
操作系统原理解析与源代码阅读报告
目录导言1.系统调用(syscall)(1)基本原理(2)源代码分析i)用户代码ii)内核代码2.陷阱(trap)(1)基本原理(2)源代码分析3.内存管理(memorymanagement)(1)基本原理i)页表与地址转换ii)地址空间(2)源代码分析4.多线程(multithreading)(1)基本原理(2)源代码分析5.锁(lock)(1)基本原理(2)源代码分析6.文件系统(filesy
Elecshe_ep
·
2022-12-17 15:00
阅读报告
risc-v
unix
c语言
OS内核(
xv6
)探究-系统调用
内核态和用户态计算机在加载操作系统之后,再继续执行任何指令的时候,都会处在某种特权级下(privilege)。例如在Linux下,可能会有ring0,ring1,ring2,ring3等几种状态,这些状态可以简单的分成用户态和内核态两种。我们写的上层应用的代码大多数情况运行在用户态,当我们的程序需要执行一些特殊的任务的时候,例如:访问文件,发起网络请求,向屏幕输出文字,fork一个子进程等等,我们
XA403
·
2022-12-17 15:00
计算机基础
ios
xv6
实验课程--系统调用
在本实验中,你将向
xv6
添加一些新的系统调用,这将帮助你了解它们是如何工作的,同时,让你了解
xv6
内核的一些内部结构。在以后的实验中你可能会添加更多的系统调用。
lhw---9999
·
2022-12-17 15:59
操作系统
操作系统
Mit6.S081
XV6
实验-Lab1 Syscalls
EXERCISE0EXERCISE1SystemCallTracing目的提示EXERCISE2Sysinfo目的提示EXERCISE0阅读xv6book第二章和第四章4.3和4.4节以及相关代码,理解
xv6
frostian
·
2022-12-17 15:29
XV6
操作系统
十八、
Xv6
代码导读(调试工具配置;调试系统调试执行)
Xv6
是由麻省理工学院(MIT)为操作系统工程的课程(代号6.828),开发的一个教学目的的操作系统。
[T]
·
2022-12-17 15:29
操作系统设计与实现
系统架构
系统调用跟踪-
xv6
lab syscall
1.概述本文记录
xv6
操作系统的系统调用跟踪实验,
xv6
是一个类Unix的简单操作系统。
风雨夕
·
2022-12-17 15:28
c语言
risc-v
xv6
syscall实验
Syscall文章目录Syscall一、实验要求PartOne:SystemcalltracingPartTwo:Datesystemcall二、实验操作PartonePartTworequest一、实验要求PartOne:SystemcalltracingYourfirsttaskistomodifythexv6kerneltoprintoutalineforeachsystemcallinvo
Harry____
·
2022-12-17 15:58
xv6
syscall
MIT
linux
XV6
系统调用实现
X86的保护机制x86有四个特权级,从0(特权最高)编号到3(特权最低)。在实际使用中,大多数的操作系统都使用两个特权级,0和3,他们被称为内核模式和用户模式。当前执行指令的特权级存在于%cs寄存器中的CPL域中。在x86中,中断处理程序的入口在中断描述符表(IDT)中被定义。这个表有256个表项,每一个都提供了相应的%cs和%eip。int指令的硬件动作一个程序要在x86上进行一个系统调用,它需
denglin12315
·
2022-12-17 15:58
开发OS
XV6
系统调用
【翻译】
Xv6
book Chapter 8:File system
xv6
的文件系统提供了类Unix的文件、文件目录和路径名称,并且把这些数据持久地存在virtio磁盘上。
MGWxn
·
2022-11-12 05:31
翻译
上一页
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
其他