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.S081:[
xv6
参考手册第4章]->Trap与系统调用
本系列文章为MIT6.S081的学习笔记,包含了参考手册、课程、实验三部分的内容,前面的系列文章链接如下操作系统MIT6.S081:[
xv6
参考手册第1章]->操作系统接口操作系统MIT6.S081:P1
爱你哦小猪猪
·
2022-08-02 17:37
操作系统MIT6.S081
unix
服务器
risc-v
linux
架构
操作系统原理:断点切换原理及实现
本文参考书:操作系统真像还原、操作系统原型
xv6
分析与实验、其中图主要来自linux内核完全注释本文针对断点切换迷茫的问题。
thotf
·
2022-05-10 11:00
【
xv6
源码窥探(8)】网卡驱动
准备工作怎么说呢,这最后一个实验……非常得……有趣……(汗颜)这个实验的测试分为两个部分:一是主机和qemu运行的
xv6
之间进行APR通信;二是qemu运行的
xv6
会向谷歌的DNSserver发送一个查询
·
2022-01-23 23:08
操作系统学习笔记
【
xv6
源码窥探(7)】mmap
前言本篇是关于MIT6.S081-2020-Lab10(mmap)的实现;如果内容上发现有什么问题请不要吝啬您的键盘。准备工作mmap()和munmap()这两个系统调用本身是类UNIX系统中才有的,这个实验只是仿照着实现它的一部分文件内存映射的功能(玩具)。具体mmap()的作用可以看看[Linux中的mmap映射[一]](https://zhuanlan.zhihu.com/p/...),了解
·
2022-01-22 15:09
操作系统实验记录学习笔记
【
xv6
源码窥探(6)】文件系统
前言本篇是关于MIT6.S081-2020-Lab9(FileSystem)的实现;如果内容上发现有什么问题请不要吝啬您的键盘。准备工作LoggingLayer在文件系统中的Crash可能是由文件系统操作过程中发生了电力故障(突然断电)或内核Panic引起的。因为文件系统存储在持久层,Crash之后不希望重启后我们的持久性数据处于不一致或不正确的状态(例如inode指向的datablocks是空的
·
2022-01-19 13:53
操作系统unix学习笔记
【
xv6
源码窥探(5)】锁
前言本篇是关于MIT6.S081-2020-Lab8(Lock)的实现;我并没有在找到“全局最优解”的情况下通过Buffercache的测试;因此在Exercise2我只提供了在找到“全局最优解”的前提下,我的各种代码尝试以及思路;如果内容上发现有什么问题请不要吝啬您的键盘。准备工作要新看的内容不多,只有第八章(Filesystem)的前三个小节。文件系统的层次模型这张图特别地像计算机网络层次服务
·
2022-01-09 22:53
操作系统学习笔记
【
xv6
源码窥探(3)】CoW Fork
前言本篇是关于MIT6.S081-2020-Lab6(Copy-on-WriteForkforxv6)的实现;如果内容上发现有什么问题请不要吝啬您的键盘。准备工作先大概罗列一下实现cow-fork所要做的工作清单:修改uvmcopy()函数;【√】修改copyout()函数,因为它是直接对pa进行读写的;【√】为usertrap函数添加处理cowpagewrite的异常;【√】可以将2和3两个处理
·
2021-12-09 21:21
操作系统学习心路
【
xv6
源码窥探(2)】懒分配策略
前言本篇是关于MIT6.S081-2020-Lab5的实现;如果内容上发现有什么问题请不要吝啬您的键盘。Lazyallocation&&LazytestsandUsertests这两个练习的内容是紧耦合的,所以就写一块了。Lazyallocation的想法在之前在做页表实验的最后提到了,所以这次实验同样可以吃老本快速过关。跟着提示做基本不会遇到问题,只有在最后有一个容易踩坑的地方。先是修改sys_
·
2021-12-03 23:14
操作系统学习笔记
【
xv6
源码窥探(1)】中断
前言本篇是关于MIT6.S081-2020-Lab4的实现;如果内容上发现有什么问题请不要吝啬您的键盘。Backtrace实验指导书上给出了RISC-V栈帧布局:基本上只要看懂这幅图就可以过关了:/*kernel/printf.c*/voidbacktrace(){uint64*fp=(uint64*)r_fp(),*ra;while((uint64)fp!=PGROUNDUP((uint64)f
·
2021-11-25 22:59
操作系统
【
xv6
源码窥探(0)】页表
前言默认读者已经对三级页表的结构有基本的了解;以下所有的内容都可以在xv6book、实验指导书和
xv6
源码中找到原始出处;发现有错误或改进的地方时,请不要吝啬您的键盘。
·
2021-11-23 21:26
操作系统
云原生爱好者周刊:GitHub 官方文档终于开源了!
课程主要围绕类Unix操作系统
XV6
进行讲解,目的是为了让学生更好的理解类Unix的工作原理与基础
·
2021-07-27 20:55
云计算
云原生爱好者周刊:GitHub 官方文档终于开源了!
课程主要围绕类Unix操作系统
XV6
进行讲解,目的是为了让学生更好的理解类Unix的工作原理与基础
KubeSphere 云原生
·
2021-07-22 17:40
mit6.S081小结
这个课程的好处就是基于一个开发出来的简易操作系统
xv6
来进行讲课还有实验,让自己对于OS的理解不再基于书本视频的一些很理论的东西,而是实际看了一些代码还有添加了一些代码的。课程很棒!
狗哥的迷妹~
·
2021-04-24 00:55
xv6
操作系统
xv6
里的第一个用户进程
kernel/entry.S->kernel/start.c->kernel/main.c->kernel/proc.c->user/initcode.S->user/init进程
xv6
橡树人
·
2020-12-27 10:13
xv6
book Chapter 2 Operating system organization
Akeyrequirementforanoperatingsystemistosupportseveralactivitiesatonce.Thusanoperatingsystemmustfulfillthreerequirements:multiplexingisolationinteractionAbstractingphysicalresourcesIt’smoretypicalforap
lincanshu
·
2020-11-17 23:11
xv6
book Chapter 1 Operating system interfaces
Thejobofanoperatingsystemistoshareacomputeramongmultipleprogramsandtoprovideamoreusefulsetofservicesthanthehardwarealonesupports.Anoperatingsystemprovidesservicestouserprogramsthroughaninterface.fork(
lincanshu
·
2020-11-16 16:04
MIT 6.S081 Lab:
Xv6
and Unix utilities
sleep.cImplementtheUNIXprogramsleepforxv6;yoursleepshouldpauseforauser-specifiednumberofticks.Atickisanotionoftimedefinedbythexv6kernel,namelythetimebetweentwointerruptsfromthetimerchip.Yoursolutionsh
lincanshu
·
2020-11-04 22:55
Homework-1: boot
xv6
Homework-1:bootxv6FindingandbreakingatanaddressFindtheaddressof_start,theentrypointofthekernel:$nmkernel|grep_start8010a48cD_binary_entryother_start8010a460D_binary_initcode_start0010000cT_start$makeq
荷茗
·
2020-10-09 16:38
MIT 6.S081
xv6
调试不完全指北
遂早退实验室滚回宿舍,捡起自己已经两年没写的blog,码点自己用vscode调试
xv6
的心得和小tips,如果对同样在码
xv6
但无法忍受gdb调试界面的小伙伴们有帮助那就太好了,积点功德,但愿明
KatyuMarisa
·
2020-09-25 14:00
【
xv6
学习之HW1】shell
第一次的作业就把我难倒了。在此十分感谢JasonLeaster,没有这一系列的博文,我可能就要放弃了。希望能坚持下去,虽然比较难,但是我肯定能学到很多东西。传送在此:http://blog.csdn.net/cinmyheart/article/details/45122619不会的东西比较多,记录的东西也就比较多,比较杂。记下来先,慢慢熟悉。看了JasonLeaster写的代码,差不多能理解个大
mick_seu
·
2020-09-17 07:27
操作系统
Xv6操作系统
xv6
的引导过程(操作系统引导分析)
引导的汇编代码如下:#include"asm.h"#include"memlayout.h"#include"mmu.h"#StartthefirstCPU:switchto32-bitprotectedmode,jumpintoC.#TheBIOSloadsthiscodefromthefirstsectoroftheharddiskinto#memoryatphysicaladdress0x7
iteye_9166
·
2020-09-11 08:28
x86
grub
xv6
+ Qemu 在Ubuntu下编译运行教程
download.csdn.net/detail/yinglang19941010/9201421(我使用的是这个,怕出错的同学可以下这个)2)https://github.com/yinglang/
Xv6
吃熊的鱼
·
2020-08-26 16:17
XV6
操作系统的安装与使用
麻省理工大学的网站上http://pdos.csail.mit.edu/6.828/2011/xv6.html,已经对
XV6
的来龙去脉及如何下载做了较详细的介绍。
SheIsC
·
2020-08-17 05:36
XV6操作系统剖析
xv6
运行qemu时 : no bootable device
在做
xv6
的实验时,我不想直接fork官方源,我先把某个版本(比如
xv6
的版本9)下载下来,然后自己在github上建立一个仓库,把下载下来的文件传到我的仓库中,就这样形成了一个新的
xv6
项目(当然我还没有添加自己的东西
szuhuanggang
·
2020-08-13 19:38
linux
MIT 6.828操作系统学习笔记01——Lab1
Lab1:BootingaPCPart1:PCBootstrap第一个练习的目的是让你能够更加熟悉x86汇编语言,以及PC启动的整个过程,而且也会首次学习使用QEMU软件来仿真
xv6
操作系统,并且配合GDB
chunhuang2917
·
2020-08-09 20:47
Xv6
chapter 0 学习笔记
这里操作系统
xv6
提供基础的接口,由KenThompson和DennisRitchie的操作系统介绍,同时还有模仿Unix的内部设计。每一个运行的程序叫做进程,他们都有自己的空间,
helloworld19970916
·
2020-08-04 14:41
计算机系统
数据结构
C
Ubuntu下Bochs运行
Xv6
操作系统:Ubuntu10.04.2所需软件包:源代码包bochs-2.4.6.tar.gz可以从http://sourceforge.net/projects/bochs/下载源代码包xv6-rev5.tar.gz可以从http://download.csdn.net/detail/zysyyz/3707568下载其他需要的软件会在文中提到1.安装虚拟机Bochs虽说直接使用Ubuntu的sud
zysyyz
·
2020-08-04 10:56
Xv6
多核操作系统中的自旋锁-『以
XV6
& Linux 为例』
厚脸皮引流自旋锁是一个很神奇的东西,一个介于高效和低效之间的一个『薛定谔』?的互斥机制。自旋锁的效率和它的应用场景有很大关系,在实际生产过程中,我们能在很多地方看见它的身影。比如Linuxkernal有挺多地方用到spinlock、Nginx也有用到spinlock,但很多时候自旋锁在很多场景下并不能很好的发挥出它的高效优势。究竟什么时候我们应该使用SpinLock?首先,要注意的是自旋锁只适用于
iofu728
·
2020-08-02 18:03
Linux
[OS]操作系统
XV6
的源码学习笔记[1]
于是开始学习
xv6
这个MIT出品的小型操作系统。2.声明这个不是原创文章,只是在学习
XV6
的过程中的一些笔记或者文档整理。文章大部队内容都是
xv6
的官方文档或者翻译文档。
pingpong_龘
·
2020-07-13 19:55
xv6
引导及初始化详解
了解
xv6
的引导及初始化部分格外重要,因为它奠定了整个
xv6
操作系统的基础和框架。
zhanglei8893
·
2020-07-12 19:58
操作系统
化工
框架
timer
user
工作
XV6
源码阅读报告
阅读
XV6
源码中,进程线程相关代码,并集体讨论解答下列议题:1.什么是进程,什么是线程?操作系统的资源分配单位和调度单位分别是什么?
XV6
中的进程和线程分别是什么,都实现了吗?
weixin_41593418
·
2020-07-12 11:09
XV6
操作系统代码阅读心得(二):进程
从实现的角度上讲,
XV6
系统中只实现了进程,并没有提供对线程的额外支持,一个用户进程永远只会有一个用户可见的执行流。
weixin_30954265
·
2020-07-12 07:54
XV6
源代码阅读-中断与系统调用
XV6
源代码阅读-中断与系统调用Exercise1源代码阅读1.启动部分:bootasm.Sbootmain.c和
xv6
初始化模块:main.cbootasm.S由16位和32位汇编混合编写成的
XV6
引导加载器
weixin_30889885
·
2020-07-12 07:15
XV6
源代码阅读-虚拟内存管理
XV6
源代码阅读-虚拟内存管理Exercise1源代码阅读1.内存管理部分:kalloc.cvm.c以及相关其他文件代码kalloc.c:char*kalloc(void)负责在需要的时候为用户空间、内核栈
weixin_30546189
·
2020-07-12 06:46
XV6
源代码阅读-同步机制
XV6
源代码阅读-同步机制Exercise1源代码阅读锁部分:spinlock.h/spinlock.c以及相关其他文件代码//Mutualexclusionlock.structspinlock{uintlocked
weixin_30263277
·
2020-07-12 05:28
XV6
源代码阅读-进程线程
XV6
源代码阅读-进程线程Exercise1源代码阅读1.基本头文件:types.hparam.hmemlayout.hdefs.hx86.hasm.hmmu.helf.htypes.h:仅仅是定义uint
weixin_30254435
·
2020-07-12 05:55
xv6
学习笔记 分页机制 和内存管理
XV6
分页机制、内存管理报告内容0.mmu.h的阅读mmu.h源码中给出了
XV6
虚拟地址的构成,及所代表的含义mmu.h中还有页表的相关信息,每个页目录都与1024条记录,每一个页表中也有1024条记录
素手绾青丝
·
2020-07-11 18:41
操作系统
xv6
源码分析—第一个用户进程
xv6
使用页表(硬件)来为每个进程提供其独有的地址空间,页表将虚拟地址映射为物理地址。
xv6
为每个进程虚拟出一个0xFFFFFFFF的内存地址,包含了从虚拟地址0开始的用户内存。
写代码的秃头少女
·
2020-07-11 17:26
Xv6
xv6
源码分析(四):内存管理
xv6
通过页表机制实现了对内存空间的控制。页表使得
xv6
能够让不同进程各自的地址空间映射到相同的物理内存上,还能够为不同进程的内存提供保护。除此之外,我们还能够通过使用页表来间接地实现一些特殊功能。
elif
·
2020-07-11 15:46
xv6源码分析
XV6
操作系统接口
操作系统接口操作系统的工作是(1)将计算机的资源在多个程序间共享,并且给程序提供一系列比硬件本身更有用的服务。(2)管理并抽象底层硬件,举例来说,一个文字处理软件(比如word)不用去关心自己使用的是何种硬盘。(3)多路复用硬件,使得多个程序可以(至少看起来是)同时运行的。(4)最后,给程序间提供一种受控的交互方式,使得程序之间可以共享数据、共同工作。操作系统通过接口向用户程序提供服务。设计一个好
kexinxin1
·
2020-07-11 10:14
xv6
进程切换-swtch函数
本文试图分析以下
xv6
中的进程切换过程。当前进程通过调用yield函数,进行进程切换。yield函数调用sched函数,sched函数启动swtch函数完成进程切换。
gswen
·
2020-07-10 23:58
操作系统
XV6
源代码阅读--进程与内存管理
由于工作和兴趣爱好的关系,接触了不少实时操作系统,一般来说实时操作系统基本没有进程的概念了,无非是任务堆栈的切换。一直对Linux,Windows这种带有进程的OS,很好奇,无奈,LINUX代码很庞大,很难整体把握。所以去年一直在寻找带支持进程的OS,要求简单,易懂,确实真找不到。最后找到了MIT教学用VX6,便深深的着迷了。自从调试了VX6的源代码,发现用MMU来管理进程真是复杂,怪不得很少能找
thecrazyboy
·
2020-07-10 18:21
OS/操作系统
UNIX v6源代码分析调试之一:环境搭建 -- Ubuntu单步调试系统代码
首先下载代码,下载地址https://github.com/guilleiguaran/
xv6
。该版本的代码能运行在x86平台的。
faithzzf
·
2020-07-10 16:46
开源项目学习
使用
系统调用过程分析
我们以教学用的类Linux操作系统
xv6
为例,以打印操作为主线来说明系统调用的代
往事已遥远
·
2020-07-09 07:45
操作系统
xv6
文件系统详解
xv6
文件系统由inode组成,每个inode是单个未命名的文件。
zhanglei8893
·
2020-07-09 05:00
操作系统
yale_OS(7)——
xv6
中的文件系统(File System)
xv6
文件系统提供类Unix的文件(files)、目录(directory)、路径(pathnames),持久保存数据在IDE磁盘上。
2019_08_14
·
2020-07-09 00:27
操作系统
xv6
lab1
学习MIT6.8.28课程lab1实验系统:ubuntu系统1.实验步骤 首先编译lab,执行如下命令:Documents/work/code/
xv6
/lab$make+askern/entry.S+
Hacker_Albert
·
2020-07-08 19:08
xv6
Xv6
Lab1手记
环境:Ubuntu_LTS18.04_64位课程:https://pdos.csail.mit.edu/6.828/2018/schedule.html(2018年秋季)我跟着官方文件来的,和网上一些其他的开源教程可能有所区别。Lab1:BootingaPCPart1:PCBootstrap$gitclonehttps://pdos.csail.mit.edu/6.828/2018/jos.git
w55100
·
2020-07-08 12:00
linux
xv6
源码分析(七):文件系统
xv6
文件系统采用了分层的实现,下面的每一层都向上提供接口供上层调用,这里并不阐述
xv6
文件系统的系统细节,仅仅针对每一层需要注意的问题和各种接口的联系做解释,具体的文件系统细节可参考
xv6
中文文档。
elif
·
2020-07-07 20:39
xv6源码分析
XV6
文件系统
xv6
的文件系统中使用了类似Unix的文件,文件描述符,目录和路经名(请参阅第零章),并且把数据存储到一块IDE磁盘上(请参阅第三章)。
kexinxin1
·
2020-07-07 12:08
上一页
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
其他