2024年2月14日

【XV6】 mmap

摘要: 代码:https://github.com/JasenChao/xv6-labs.git 文件映射到进程地址 题目要求实现两个系统调用:mmap和munmap。主要功能就是将文件映射到进程的内存中。 题目给出了mmap和munmap的声明: void *mmap(void *addr, size_t 阅读全文
posted @ 2024-02-14 19:06 未连接到互联网 阅读(40) 评论(0) 推荐(0) 编辑

【XV6】 file system

摘要: 代码:https://github.com/JasenChao/xv6-labs.git 支持大文件 XV6目前只支持268个blocks大小的文件,一个block(BSIZE)为1024,文件块inode包含12个一级地址和1个二级地址,二级地址指向另一个block,其中存放了256个一级地址,因 阅读全文
posted @ 2024-02-14 19:06 未连接到互联网 阅读(31) 评论(0) 推荐(0) 编辑

【XV6】 locks

摘要: 代码:https://github.com/JasenChao/xv6-labs.git 内存分配器 单个空闲内存列表可能引起多个CPU的频繁锁争用,题目要求设计内存分配器,让每个CPU维护一个空闲内存列表,不同CPU的分配和释放可以并行执行,但如果一个CPU可用列表为空,而其他CPU可用列表不为空 阅读全文
posted @ 2024-02-14 19:05 未连接到互联网 阅读(24) 评论(0) 推荐(0) 编辑

【XV6】 networking

摘要: 代码:https://github.com/JasenChao/xv6-labs.git E1000网络设备驱动 题目已经在kernel/e1000.c中给出了E1000的初始化函数和发送接收函数,要求完善发送和接收的功能。 其他相关的代码,上层的网络协议在kernel/net.c和kernel/n 阅读全文
posted @ 2024-02-14 19:05 未连接到互联网 阅读(64) 评论(0) 推荐(0) 编辑

【XV6】 Multithreading

摘要: 代码:https://github.com/JasenChao/xv6-labs.git 用户级线程切换 题目要求完成用户级线程系统,提示程序要在uthread.c和uthread_switch.S中补充完成。 用户级线程调度和进程的机制是类似的,因此uthread_switch.S可以复制swtc 阅读全文
posted @ 2024-02-14 19:05 未连接到互联网 阅读(17) 评论(0) 推荐(0) 编辑

【XV6】 Copy-on-Write Fork for xv6

摘要: 代码:https://github.com/JasenChao/xv6-labs.git Copy-on-Write Fork 系统调用fork()会复制一个父进程的用户空间到子进程,一方面如果进程较大,复制需要很长的时间,另一方面复制的内存的大部分会被丢弃,造成浪费。 题目要求实现写时复制COW来 阅读全文
posted @ 2024-02-14 19:04 未连接到互联网 阅读(71) 评论(0) 推荐(0) 编辑

【XV6】 traps

摘要: 代码:https://github.com/JasenChao/xv6-labs.git backtrace 题目要求实现backtrace来对堆栈上调用发生错误的地方进行跟踪。寄存器s0包含指向当前堆栈帧的指针,那么返回地址就位于帧指针的固定偏移量-8,前一个fp地址的偏移量为-16。 在risc 阅读全文
posted @ 2024-02-14 19:04 未连接到互联网 阅读(14) 评论(0) 推荐(0) 编辑

【XV6】 page tables

摘要: 代码:https://github.com/JasenChao/xv6-labs.git 快速获取pid-ugetpid 题目要求参考已实现的ugetpid()使用USYSCALL快速获取pid。 实现的思路是在每一个进程中增加一个共享页面,通过USYSCALL指定的虚拟地址,找到指定的页面。参考进 阅读全文
posted @ 2024-02-14 19:04 未连接到互联网 阅读(37) 评论(0) 推荐(0) 编辑

【XV6】 system calls

摘要: 代码:https://github.com/JasenChao/xv6-labs.git 使用GDB调试 安装risc-v的GDB 先安装依赖: sudo apt-get install libncurses5-dev python2 python2-dev texinfo libreadline- 阅读全文
posted @ 2024-02-14 19:03 未连接到互联网 阅读(43) 评论(0) 推荐(0) 编辑

【XV6】 Xv6 and Unix utilities

摘要: 代码:https://github.com/JasenChao/xv6-labs.git 运行xv6 实验环境使用的是Ubuntu 20.04,需要安装一些工具: sudo apt-get install git build-essential gdb-multiarch qemu-system-m 阅读全文
posted @ 2024-02-14 19:03 未连接到互联网 阅读(49) 评论(0) 推荐(0) 编辑

Python 中 print 函数的用法

摘要: 在 Python 中,可以使用print函数来打印一个变量或者一个字符串: print("My name is Alice") print(i) 如果需要字符串格式化来打印一句话中包含变量的内容,有几种常用的方法: 使用格式化字符串(f-string):在字符串前面加上字母"f",然后在字符串中使用 阅读全文
posted @ 2024-02-14 19:00 未连接到互联网 阅读(35) 评论(0) 推荐(0) 编辑

SSH 到 Git 时 Connection timed out

摘要: 问题出现 git仓库是使用ssh链接clone下来的,在push和pull到github时突然失效了,显示Connection timed out,ssh -T git@github.com一样不行 解决方案 编辑文件~/.ssh/config,添加以下内容 Host github.com Host 阅读全文
posted @ 2024-02-14 18:58 未连接到互联网 阅读(102) 评论(0) 推荐(0) 编辑

bits/libc-header-start.h: No such file or directory

摘要: 问题出现 在编译一个工程的时候,出现了报错 In file included from /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h:9, from main.c:1: /usr/include/stdint.h:26:10: fatal erro 阅读全文
posted @ 2024-02-14 18:57 未连接到互联网 阅读(350) 评论(0) 推荐(0) 编辑

使用msmtp发送邮件

摘要: 最近需要在服务器上运行一些时间很长的命令,想让服务器自动通知我什么时候命令完成,通过命令结束后发送邮件给我来提醒。 安装 msmtp 和 mail # RedHat 系 sudo dnf install msmtp mailx # Debian 系 sudo apt install msmtp ma 阅读全文
posted @ 2024-02-14 18:54 未连接到互联网 阅读(75) 评论(0) 推荐(0) 编辑

通过注册表交换Ctrl键和CapsLock键

摘要: 频繁地使用左下角的Ctrl键对我的小拇指产生了非常大的负担,想把它和不常用但很容易按的CapsLock键交换。 先打开注册表,导航到HKEY_LOCAL_MACHINE -> System -> CurrentControlSet -> Control -> KeyBoard Layout。 右键新 阅读全文
posted @ 2024-02-14 18:51 未连接到互联网 阅读(99) 评论(0) 推荐(0) 编辑