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
mit6.828
MIT6.828
lab1/Exercise12
Exercise12要求在11的基础上打印出当前eip所指向地址的文件信息,行号,距离上一个eip的地址距离。K>backtraceStackbacktrace:ebpf010ff78eipf01008aeargs00000001f010ff8c00000000f011058000000000kern/monitor.c:143:monitor+106ebpf010ffd8eipf0100193a
Kyrie_046a
·
2023-11-28 00:37
xv6-x86在ubuntu14.04 i386下正常编译、调试,在ubuntu23.04下编译各种报错--google镜像
来源原git仓库xv6-x86(xv6-public)文档
mit6.828
/2023/文档
MIT6.828
/2018/xv6/book-rev11.pdf原readme注:xv6-x86(xv6-public
ziix
·
2023-11-09 11:33
xv6
c++
c语言
linux
操作系统
ubuntu
MIT 6.828 操作系统工程 Lab6: e1000 网络驱动程序
MIT6.828
操作系统工程Lab6:网络驱动程序这篇是我自己探索实现MIT6.828lab6的笔记记录,会包含一部分代码注释和要求的翻译记录,以及踩过的坑/个人的解决方案这里是我实现的完整代码仓库,也包含其他笔记等等
云微123
·
2023-11-09 02:24
linux
网络
MIT6.828
LAB6: Network Driver
抽了点空把LAB6重新整理一下,作为结束符~~。Introduction我们已经实现了1个文件系统,当然OS还需要1个网络栈,在本次实验中我们将实现1个网卡驱动,这个网卡基于Intel82540EM芯片,也就是熟知的E1000网卡。网卡驱动不足以使你的OS能连接上Internet。在LAB6新增加的代码中,我们提供了1个网络栈(networkstack)和网络服务器(networkserver)在
bysui
·
2023-11-09 02:21
操作系统
麻省理工
MIT6.828
Lab2 part2 Virtual Memory
环境Ubuntu20.0464位系统lab2地址:lab2正文本次实验需要我们对paging有一个比较深入的了解,如果只是一知半解可能连代码都不知道什么意思。所以在正式开始代码实验之前,我们先来介绍一下一些预先需要的知识。在part1当中,主要做的就是对物理内存分页,我们使用了PageInfo和一个page_free_list来管理空闲的页。使用page_alloc()来从page_free_li
扶桑与克里斯
·
2023-11-02 18:04
MIT 6.S081 FALL 2020环境搭建
MIT6.S081OperatingSystemEngineering是麻省理工学院计算机科学本科的中级课程,前身是
MIT6.828
研究生课程。
徐锦桐
·
2023-10-23 07:47
#
操作系统
MIT
MIT
6.S081
6.S081 Lab book 第一章阅读
写在前面:本文基于
mit6.828
操作系统课程材料——《bookriscvrev2》,仅用作学习交流,任何组织和个人未经允许不得将其用于商业用途,包括但不限于出版、授课等。
LuoboLiam
·
2023-10-11 01:50
操作系统
Mit6.828
lab4 Part C:Preeptive Multitasking and Inter-Process communication
环境deepin20实验地址:mit6.8282018lab4partC很重要:不知道是不是我的代码实现有些问题,请把lib/syscall.c中的sys_ipc_recv()中的returnsyscall()的第二个参数由1改为0。具体看文末正文在lab4的最后一部分,你将会修改内核的代码来从uncooperative的进程中抢回cpu,同时我们的内核还将会支持让进程之间互相通信。ClockIn
扶桑与克里斯
·
2023-10-09 20:58
MIT6.828
lab3 part B
环境ubuntu20.0464位系统正文现在你的内核有了最基本的中断处理能力,我们还会进一步的对它升级使得它能够提供依赖于异常处理的重要的操作系统原语。HandingPageFaultpagefault,第14号中断(T_PGFLT),是一个非常重要的中断贯穿在本次lab以及下一次lab。当处理来处理pagefault的时候,它会将发生错误的虚拟地址放在cr2寄存器当中。在kern/trap.c中
扶桑与克里斯
·
2023-09-27 18:34
MIT6.828
HW3 System call
环境ubuntu18.04,虚拟机用的是virtualBox。在之前的实验我用的都是本机的系统ubuntu20.04,不知道为什么编译完xv6-public后makeqemu无法运行kernel。所以就换到虚拟机去了,发现18.04是可以makeqemu的。本次实验地址:HW2systemcalll正文总体来说的话,本次实验不是特别难。官网说实验前先阅读一下chapter1,chapter1有部分
扶桑与克里斯
·
2023-09-21 04:13
Mit6.828
lab4 Part B:Copy-on-write fork
环境deepin20(Ubuntu系统老遇到小问题,就换到deepin去了)lab原地址:mit6.828lab4**本次lab关键在于理清里面代码的逻辑正文正如前面说提到的,Unix提供了fork()来作为他的创建进程原语。fork()这个系统调用复制了父进程的地址空间到子进程中去。xv6通过复制父进程所有的内容来实现fork().这就是dumbfork所作的。复制父进程的内容到子进程中是for
扶桑与克里斯
·
2023-09-12 18:59
Mit6.828
lab5: File system,Spawn and Shell
环境deepin2064位系统说在前面本次Lab我也觉得比较难,到最后也有部分测试点没有通过,在实现pipe上也有点问题。另外,我觉得Lab5这部分和xv6中对于Unix的一些知识点的实现稍微有些不同(至少我是这么认为的,这个lab中的很多知识点我选择了认真阅读xv6的代码来理解)。比如说pipe的实现,filedescriptor的实现。相比来说xv6中和Linux中更加接近,虽然说xv6和Li
扶桑与克里斯
·
2023-08-24 05:20
MIT6.828
lab3 Part A:User Environments and Exception Handling
环境ubuntu20.0464位系统之前有些实验是在xv6的源码上操作的,发现20.04无法运行。后来发现lab还是可以在20.04正常做的,就把环境切换到本机上了。lab地址:mit6.828lab3废话这次实验感觉难做了不少,参考了别人不少的代码。毕竟代码是别人写的,要花心思去理解别人的思路。注释里面的提示我也觉得有点模棱两可。做起来比较困难,还存在一些问题都没有很好理解。完成本lab最好阅读
扶桑与克里斯
·
2023-07-29 15:29
算法与数据结构概要
最近研究
MIT6.828
操作系统课程,也重温了一下机器语言,还IDA这样的逆向屠龙宝刀,还有基于Rust的Deno,研究了其架构及阅读了部分源代码。
坚果jimbowhy
·
2023-07-28 06:45
Mit6.828
lab4 Part A:Multiprocessor Support and Cooperative Multitasking
环境ubuntu20.0464系统正文在本次实验将在多个同时运行的用户程序中实现抢占式多线程(PreemptiveMultitasking)。首先解释一下什么是抢占式多线程:Incomputing,preemptionistheactoftemporarilyinterruptingataskbeingcarriedoutbyacomputersystem,withoutrequiringitsc
扶桑与克里斯
·
2023-07-27 21:41
MIT6.828
HW1 Boot xv6
环境ubuntu20.0464位系统本次作业的地址:homeworkMIT6.828地址:MIT6.828-2018-fall正文如果做过前面lab1的老铁一定感觉lab1的内容之多,后面做起来也不容易,相对而言,这一份作业就没那么困难了,这次作业主要做的是调试,不需要写代码。准备工作这次使用的代码是xv6,而不是之前lab1的代码,所以需要重新从github拉下来:gitclonegit://g
扶桑与克里斯
·
2023-06-18 18:16
MIT6.828
HW2 Shell
环境系统Ubuntu20.0464位系统HW地址:HW2-Shell正文本次实验难度一般般,不需要写很多的代码,并且能够帮我们熟悉常用的Unixsystemcall((),比如说open,close等等。在正式做这个作业之前,务必先阅读xv6Bookchapter0。记下chapter0中的对于各个systemcall的详细描述。这样能帮助我们对于本次作业的那些代码的理解。实验下载实验用的shll
扶桑与克里斯
·
2023-06-17 15:54
MIT6.828
Lab1 The Boot Loader
环境ubuntu20.0464位系统part2的内容是从./lab/obj/kernel.img中引导我们的系统JOS,本文很大一部分内容都是翻译Lab1课程的原地址:MIT-6.828预先需要的知识:虽然mit这课提供了相关知识,但是我个人觉得,对保护模式有过实操以后,看相关的保护模式代码确实很容易懂很多。汇编,要知道基本的语句是干嘛的,比如说jne,jl等等,推荐王爽《汇编原理》了解x86保护
扶桑与克里斯
·
2023-06-09 13:59
MIT6.828
HW4 lazy page allocation
环境ubuntu18.0464位系统HW地址:HW2lazypagealloction虽然官网没有要求去阅读trap这一章,但是我觉得还是读一下对于本次实现的代码有些帮助,而且还能基本清楚xv6是如何实现一个中断和trap的。上一次的systemcall虽然我们实现了一个新的systemcall,但是对于一个systemcall以及中断这些调用的过程还没有完全理解,阅读一下这一章应该可以理解个大概
扶桑与克里斯
·
2023-06-08 18:03
MIT6.828
Lab1The Kernel
环境ubuntu20.0464系统本文大部分内容翻译mit6.828Lab1part3的内容,原地址点击这里课程主页:MIT6.828-2018Fall正文本篇是MIT6.828Lab1的part3的内容。经过了part2对bootloader的深入研究以及知道了如何去加载一个elf文件,现在我们终于可以来看看JOS的kernel了。像bootloader一样,kernel也是由一些汇编代码开始的
扶桑与克里斯
·
2023-06-08 14:19
MIT6.828
Lab2 part3 Kernel Address Space
环境ubuntu20.0464位系统lab2地址:点击我查看lab2正文lab2说实话还是挺难的,这也首先归因我对于页式内存了解有点不到位。在实验中走了一些弯路。不过还是很努力地把lab3的内容都做完了。废话不多说,开始干!下面这段还是翻译下lab2part3的一些原文。JOS将32bit的线性地址空间划分为两个部分。用户使用低地址的部分,内核使用高地址的部分。这两者划分的界限是inc/memla
扶桑与克里斯
·
2023-06-08 08:04
MIT6.828
Lab1 PC Bootstrap
环境ubuntu20.0464位正文这部分的目的是为了让我们了解x86汇编语言和PC引导的过程,逐渐熟悉QEMU和QEMU/GDB的调试。在本次lab中不需要写任何代码,但是需要lab中的各个问题。GettingStartedwithx86assembly如果你已经熟悉x86汇编,那么就最好了。lab页面给的那个关于x86汇编的书确实挺不错的,比国内的书感觉好点。但是这书用的是AT&T的汇编语法,
扶桑与克里斯
·
2023-06-07 22:27
MIT 6.1810(6.828/6.S081) 操作系统工程 Labs
久闻
MIT6.828
操作系统工程实验的盛名,今日终于能够亲手实践。
·
2023-04-18 22:33
c操作系统
数据结构和算法面试题系列—字符串
1基本操作首先来看一些字符串的基本函数的实现,以下代码取自
MIT6.828
课程。//字符串长度intstrlen(constchar*s){intn;for(n=0;*s!
阿瑞的博客
·
2023-04-16 11:54
面试题
算法研究
数据结构
算法
java面试突击
基于
MIT6.828
分析 linux 从用户态到内核态用户栈和内核栈切换过程
基于
MIT6.828
课程的Lab3,我们来分析一下程序从用户态到内核态中用户栈内核栈切换的过程。
975eb7a87350
·
2023-04-10 10:42
Mit6.828
|Lab1.1 搭建实验环境
文章目录前言介绍新鲜的ubuntu安装gcc+gdb安装qemu下载lab,运行qmeu前言6.828是mit(麻省理工)的操作系统课,一步一步教你搭建一个os,完成了程序员的愿望,博主今年大二,打算跟着这个神级os课程实现一个os,并且用博客记录下来。环境:win10+ubuntu20.4双系统介绍这个实验要做的是:在虚拟机QEMU上写我们的操作系统,并用在qemu上用gdb调试我们的代码。所以
三十三天天堂堡
·
2023-04-08 09:13
6.828
操作系统
c
强烈推荐的两个神级教学项目: nand2tetris 与
MIT6.828
nand2tetris难度:★★★★☆推荐:★★★★★nand2tetris项目有一本书叫《计算机系统要素》,也有英语的视频教程。如果英语不好的可以看书,内容是一样的。这本书主要讲解了计算机原理(1-6章)、编译原理(7-11章)、操作系统相关知识(12章)。不要看内容这么多,其实这本书的内容非常通俗易懂,翻译也很给力。每一章背后都有对应的练习,需要你手写代码去完成,堪称理论与实践结合的经典。这里
谭光志
·
2023-04-08 09:03
计算机基础知识
MIT6.828
学习之Lab5:File system, Spawn and Shell
Lab5实验过程点此处Filesystempreliminaries(序言)您将使用的文件系统比大多数“实际”文件系统(包括xv6UNIX)要简单得多,但是它的功能足够强大,可以提供基本特性:创建、读取、写入和删除按层次(hierarchical)目录结构组织的文件。我们(至少目前)只开发一个单用户操作系统,它提供了足够的保护来捕获bug,但不能保护多个相互怀疑的用户。因此,我们的文件系统不支持U
请叫宝宝荡哥
·
2023-04-08 09:00
MIT6.828操作系统学习
MIT6.828
Lab
5
file
system
spawn
shell
MIT6.828
学习之homework9:Barriers
在本作业中,我们将探讨如何使用pthread库提供的条件变量来实现barrier。barrier是应用程序中的一个点,在这个点上,所有线程都必须等待,直到所有其他线程也到达该点。条件变量是一种序列协调技术,类似于xv6的sleep和wakeup。下载barrier.c,然后在你的手提电脑或Athenamachine上编译:$gcc-g-O2-pthreadbarrier.c$./a.out2Ass
请叫宝宝荡哥
·
2023-04-08 09:59
MIT6.828操作系统学习
MIT6.828
homework9
barriers
pthread_mutex_t
pthread_cond_t
MIT6.828
operating system:Threads and Locking
reportofThreadsandLocking文章目录reportofThreadsandLocking实验要求实验了解初步了解问题探究实验过程实验要求threadsandlocking实验了解初步了解在我们使用gcc-g-O2ph.c-pthread成功编译后,按照实验指导书我们体会一下单线程和双线程的区别harry@ubuntu:~/Desktop/os/ThreadsandLocking
Harry____
·
2023-04-08 09:27
os
MIT
Threads
and
Locking
os
xv6
MIT 6.828 操作系统工程 lab4A:多处理器支持和协作多任务
MIT6.828
操作系统工程lab4A:多处理器支持和协作多任务这篇是我自己探索实现MIT6.828lab的笔记记录,会包含一部分代码注释和要求的翻译记录,以及踩过的坑/个人的解决方案这里是我实现的完整代码仓库
云微123
·
2023-04-06 12:20
linux
程序设计语言
linux
MIT 6.828 操作系统工程 lab2 通关指南
会包含一部分代码注释和要求的翻译记录,以及踩过的坑/个人的解决方案这里是我实现的完整代码仓库,也包含其他笔记等等:https://github.com/yunwei37/6.828-2018-labs目录
MIT6.828
云微123
·
2023-04-06 12:49
笔记
操作系统
数据结构
内核
MIT6.828
学习之Lab2_Part 1: Physical Page Management
任务:补全这五个函数在同学的帮助下,得到了这样一张图:有这张图之后再来做这部分的练习就会轻松一些。虚拟内存主要的好处是:让每个程序都以为自己独占计算机内存空间,概念清晰,方便程序的编译和装载。通过将部分内存暂存在磁盘上,可以让程序使用比物理内存大得多的虚拟内存,突破物理内存的限制。通过对不同进程设置不同页表,可以防止进程访问其他进程的地址空间。通过在不同进程之间映射相同的物理页,又可以提供进程间的
请叫宝宝荡哥
·
2023-04-06 11:56
MIT6.828操作系统学习
MIT6.828
c语言
MIT6.828
学习之Lab3_Part A: User Environments and Exception Handling
自问自答1.如何知道写对还是写错?错在哪里?这里不想lab2一样有很多check这个我还是不太懂,但是你可以跟踪console的输出,找到每一行输出对应的函数,以及下一行应该输出什么,在哪个函数里。这样就可以找到是哪个函数错了,再设个断点b*fucntion_name,再单步跟踪si就行2如何把IDT中条目指向中断处理程序入口地址,如何把中断处理函数名与中断处理函数联系起来?.通过#defineS
请叫宝宝荡哥
·
2023-04-06 11:56
MIT6.828操作系统学习
mit6.828
用户程序
用户环境
中断
异常
MIT6.828
学习之Lab4_Part A: Multiprocessor Support and Cooperative Multitasking
代码运行流程简述进入mp_init(),通过mpconfig()找到MPconfigurationtable与MP,根据MPconfigurationtable了解cpu的总数、它们的APICIDs和LAPIC单元的MMIO地址等配置信息进入lapic_init(),根据MP配置表找到的lapic的MMIO地址,完成lapic的初始化操作(感觉这里完成的是BSP的lapic的初始化)BSP申请大内
请叫宝宝荡哥
·
2023-04-06 11:56
MIT6.828操作系统学习
MIT6.828
多核处理器
SMP
fork
MIT6.828
学习之Lab6_Part B: Receiving packets and the web server
ReceivingPackets就像您在transmittingpackets时所做的一样,您必须配置E1000来接收数据包,并提供receivedescriptorqueueandreceivedescriptors。第3.2节描述包接收的工作原理,包括接收队列结构和接收描述符,第14.4节详细介绍了初始化过程。Exercise9.阅读3.2节。您可以忽略关于interruptsandcheck
请叫宝宝荡哥
·
2023-04-03 02:54
MIT6.828操作系统学习
MIT6.828
lab
6
receive
packets
web
server
http
MIT6.828
lab2 内存管理
PartA物理页管理Exercise1补全在kern/pmap.c下的几个函数。boot_alloc()mem_init()(onlyuptothecalltocheck_page_free_list(1))page_init()page_alloc()page_free()boot_alloc()在JOS中,一开始的物理内存布局如下图所示物理内存布局虚拟内存布局虚拟内存布局在代码中,所有的变量的
Kyrie_046a
·
2023-03-25 12:32
Ubuntu20.04编译安装qemu
Ubuntu20.04编译安装qemu事先提醒,要弄清自己学的是哪个架构,早期的mit操作系统课(
MIT6.828
)教的是x86版,现在的课(MIT6.S081)教的是riscv-64,本文装的也是riscv
Babe_Pig
·
2023-03-22 22:45
MIT6.S081
git
linux
qemu
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
操作系统
1 搭建实验环境
系统版本:Ubuntu18.04.30介绍
mit6.828
是一门经典的操作系统课程,通过这门课程可以学习到操作系统的设计与实现。
Savior2016
·
2021-04-09 21:30
飞龙的计算机公开课推荐
UCBCS61a主页中文版教材数据结构·算法斯坦福CS106bUCBCS61b普林斯顿Algs4MIT6.006GateLectures算法和数据结构系统nand2tetrisCMU15-213视频笔记
MIT6.828
布客飞龙
·
2020-09-12 12:56
资料整理
[
MIT6.828
] LAB3总结
LAB3:Q1.Whatisthepurposeofhavinganindividualhandlerfunctionforeachexception/interrupt?(i.e.,ifallexceptions/interruptsweredeliveredtothesamehandler,whatfeaturethatexistsinthecurrentimplementationcould
davelv
·
2020-09-11 08:04
操作系统
编写一个操作系统内核
MIT6.828
课程“OperatingSystemEngineering”就提供了很好的实现一个系统内核的素材,该课程最终实现一个完整的包含“内存管理”、“中断处理”、“进程调度”、“网络系统”、“文件系统
weixin_30820151
·
2020-09-10 19:02
ucore Lab0~Lab1实验笔记
ucoreLab0~1一些杂记前一阵子开始做
MIT6.828
,做了两三个实验才发现清华的ucore貌似更友好一些,再加上前几个实验也与6.828有所重叠,于是决定迁移阵地。
libinYL
·
2020-08-25 14:13
操作系统
ucore
强烈推荐的两个神级教学项目: nand2tetris 与
MIT6.828
nand2tetris难度:★★★★☆推荐:★★★★★nand2tetris项目有一本书叫《计算机系统要素》,也有英语的视频教程。如果英语不好的可以看书,内容是一样的。这本书主要讲解了计算机原理(1-5章)、编译原理(6-11章)、操作系统相关知识(12章)。不要看内容这么多,其实这本书的内容非常通俗易懂,翻译也很给力。每一章背后都有对应的练习,需要你手写代码去完成,堪称理论与实践结合的经典。这里
woai3c
·
2020-08-22 12:23
编译原理
操作系统
程序员
互联网
计算机原理
飞龙的计算机公开课推荐
编程哈佛CS50MIT6.001xUCBCS61a主页中文版教材数据结构·算法斯坦福CS106bUCBcs61b普林斯顿Algs4MIT6.006系统nand2tetrisCMU15-213主页笔记
MIT6.828
飞龙
·
2020-08-20 20:28
公开课
飞龙的计算机公开课推荐
编程哈佛CS50MIT6.001xUCBCS61a主页中文版教材数据结构·算法斯坦福CS106bUCBcs61b普林斯顿Algs4MIT6.006系统nand2tetrisCMU15-213主页笔记
MIT6.828
飞龙
·
2020-08-20 20:28
公开课
飞龙的计算机公开课推荐
UCBCS61a主页中文版教材数据结构·算法斯坦福CS106bUCBCS61b普林斯顿Algs4MIT6.006GateLectures算法和数据结构系统nand2tetrisCMU15-213视频笔记
MIT6.828
飞龙
·
2020-08-20 19:12
计算机科学
公开课
飞龙的计算机公开课推荐
UCBCS61a主页中文版教材数据结构·算法斯坦福CS106bUCBCS61b普林斯顿Algs4MIT6.006GateLectures算法和数据结构系统nand2tetrisCMU15-213视频笔记
MIT6.828
飞龙
·
2020-08-20 19:12
计算机科学
公开课
MIT6.824 分布式系统 lab1
前言之前做了
MIT6.828
操作系统课程,过程很痛苦,也学到了很多。不过最大的收货还是发现了非常好的学习方式——刷顶级名校的闻名课程。
Tommylwp
·
2020-08-13 12:01
分布式系统6-824
上一页
1
2
下一页
按字母分类:
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
其他