- 博客(7)
- 收藏
- 关注
原创 xv6 lab6 cow
本文介绍了xv6操作系统中实现写时复制(Copy-on-Write, COW)的实验过程。实验通过修改fork机制,使子进程共享父进程的物理页而非直接复制,仅在需要写入时才进行实际复制。关键实现包括:1) 添加PTE_COW标志位标记共享页;2) 引入引用计数机制跟踪物理页使用情况;3) 修改内存管理函数kalloc和kfree以支持引用计数;4) 在页错误处理中实现COW逻辑。实验还解决了父子进程生命周期不同步、内核空间写操作等问题,最终实现了高效的写时复制机制,显著减少了不必要的内存复制开销。
2026-01-10 15:44:52
1064
原创 xv6 页表部分源码解析
本文介绍了页表的基本原理及其在xv6操作系统中的实现。主要内容包括:页表的作用是实现进程间强隔离,通过虚拟地址映射保护物理内存;RISC-V Sv39架构使用39位虚拟地址和三级页表结构,每级页表通过9位索引查找页表项;内核地址空间采用直接映射和非直接映射相结合的方式,保护内核栈和用户空间;详细解析了xv6中页表操作的三个核心函数(walk、mappages、kvmmap)的实现逻辑,以及如何为内核页表建立直接映射。文章还讨论了页表的内存开销、虚拟地址空间划分等关键问题。
2025-12-19 21:45:53
663
原创 xv6 2020 lab2
本文摘要主要介绍了xv6操作系统中的系统调用机制及其实现流程。首先分析了系统调用的完整执行路径,从用户态封装函数、ecall指令触发陷阱,到内核态处理流程。然后详细解析了关键文件的作用:user.h声明用户空间系统调用,usys.pl生成汇编存根,syscall.c实现系统调用分发和处理逻辑。重点描述了trace系统调用的实验实现方案,通过在进程结构体中添加mask数组来标记需要追踪的系统调用,并修改syscall()函数在调用前后进行判断和输出。最后给出了syscall.c中系统调用名称数组的定义和追踪逻
2025-12-06 17:23:45
1044
原创 nfs虚拟机直连imx6ull开发板
本文介绍了如何配置NFS虚拟机直连imx6ull开发板的方法。主要包括三个部分:1) IP地址设置,确保主机、虚拟机和开发板处于同一网段;2) 网络配置步骤,详细说明如何设置主机有线网卡、虚拟机桥接模式以及开发板静态IP;3) NFS服务配置,包括创建NFS共享目录、修改exports文件以及在开发板上挂载NFS目录。通过这种方法,开发板可以方便地访问虚拟机共享目录中的文件,实现了主机-虚拟机-开发板三者的网络互通和文件共享功能。
2025-11-14 19:25:22
505
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅