最佳损友1020
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • 友链

MIT6.S081 2021 Copy-on-Write Fork for xv6

简要介绍 There is a saying in computer systems that any systems problem can be solved with a level of indirection.任何系统问题都能通过一个中间层解决 修改uvmcopy() 函数,将父进程物理页映射子进程,而不是分配新的物理页。清除父进程与子进程页表项的PTE_W项 修改usertr
2022-05-24
国外课程实验

MIT6.S081 2021 networking

console驱动与时钟中断16550芯片相关介绍:16550芯片课程介绍由于不是学硬件的,一直没太搞懂这几个东西的交互关系是啥,我的理解是如下图所示。如果不看display这一边,那这个驱动是非常好懂的,正好和开头的介绍吻合,驱动存在两个上下文:内核进程上下文和中断上下文。分别对应consolewrite consoleread和uartintr三个函数。但我一直没看懂的是为啥uarti
2022-05-16
国外课程实验

c++ 函数未设置返回值

123456789101112131415161718192021222324252627282930313233#include <iostream>bool func(int i){ if (i == 1) { return false; }}int main(){ bool res;
2022-05-14
踩坑日记

NVMe驱动学习记录-2

参考源码地址:https://mirrors.tuna.tsinghua.edu.cn/kernel/v4.x/linux-4.19.90.tar.gz linux-4.19.90\drivers\nvme\host 源码阅读环境:Windows 搭建 opengrok|极客教程 (geek-docs.com) 书籍:《LINUX设备驱动程序》 初始化参考链接:linux里的nv
2022-05-12
内核驱动开发记录

NVMe驱动学习记录-1

初始化nvme-core模块 创建工作队列 分配设备号 创建class类型的对象 解释 工作队列 workqueue是对内核线程封装的用于处理各种工作项的一种处理方法, 由于处理对象是用链表拼接一个个工作项, 依次取出来处理, 然后从链表删除,就像一个队列排好队依次处理一样, 所以也称工作队列 所谓封装可以简单理解一个中转站, 一边指向“合适”的内核线程, 一边接受你丢过来的工作项, 用
2022-05-12
内核驱动开发记录

c++ RMI demo(使用RCF库)

作业要求下载RCF库并编译成静态库/动态库宿主机操作系统:ubuntu 12wget https://www.deltavsoft.com/downloads/RCF-3.2.413.tar.gz # 下载RCF压缩包tar xvf RCF-3.2.413.tar.gz # 解压到本地文件夹 在/root/code/rcf/RCF-3.2.4
2022-05-06
分布式作业

内核页表学习记录

当做6.081 page tables实验时,看着其中的内核代码我产生了一些疑问,内核到底是使用物理地址还是逻辑地址?内核需要页表吗?内核页表的作用又是什么? 通过阅读书籍《深入理解linux内核》, 知乎得到了一些模糊的答案。 实模式与保护模式 从80286模型开始,Intel微处理器以两种不同的方式执行地址转换,这两种方式分别称为实模式和保护模式。实模式存在的主要原因是要维持处理器与早
2022-05-03
国外课程实验

mit 6.NULL简单记录

相关网站:MIT6.NULL实用工具介绍计算机教育中缺失的一课 只是花点时间简单看一下,这博客只是当简单的笔记,没啥阅读价值,建议直接看计算机教育中缺失的一课网站原文 课程概览与 shell在程序间创建连接在 shell 中,程序有两个主要的“流”:它们的输入流和输出流。 当程序尝试读取信息时,它们会从输入流中进行读取,当程序打印信息时,它们会将信息输出到输出流中。 通常,一个程序的输入输
2022-04-24
国外课程实验

BAR空间测试代码

魔改nvme驱动pci.c代码 verison1123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960#include "xlinux.h"static int xlinux_probe(struct p
2022-04-18
内核驱动开发记录

内核模块编译记录

1 基本的模块编译问题 12345obj-m+=hello.o # 与源文件一致all: make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) modulesclean: make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) clean 在vscode终
2022-04-14
内核驱动开发记录
1…45678…10

搜索

Hexo Fluid
总访问量 次 总访客数 人