xv6 分析与总结

系统概述与启动流程 (关注宏观状态流转:从 Machine Mode 到 Supervisor Mode,再到第一个用户进程的诞生) 核心概念 启动流程的本质是特权级的逐级让渡:从硬件最高特权(Machine Mode)出发,经过层层初始化和降权,最终将控制权交给最不信任的用户程序。整个过程是一条从"全权控制"到"受限执行"的信任链——每一步都在缩小 CPU 的权限范围,同时建立更多的软件抽象层。 ...

June 13, 2026 · 37 min · 18138 words

RISC-V trap / syscall / trampoline 机制完整解析

RISC-V Trap / Syscall / Trampoline 机制完整解析 一、整体流程概览 1.1 总览 用户态通过 ecall 触发异常 → 硬件最小保存 → 跳转到 stvec → trampoline 完成上下文保存 + 切页表 → 进入内核 → 执行 syscall → 再通过 trampoline 返回用户态。 ...

June 11, 2026 · 3 min · 1117 words

travel_xv6

系统调用syscall(ecall) 1.用户态的准备工作 cpu核心在用户线程(进程)上工作, pc(程序计数器寄存器)指向下一个执行的用户态指令(.text), sp(栈指针寄存器)指向当前用户态线程的栈顶,用于分割栈帧和栈帧中变量的定位. ...

June 11, 2026 · 8 min · 3905 words

xv6总览图

系统总览 进程管理 内存管理 文件系统 trap 系统调用 驱动 用户函数

June 11, 2026 · 1 min · 27 words

调试记录:xv6 用户程序内存布局冲突异常

🛠️ 调试记录:xv6 用户程序内存布局冲突异常 1. 问题描述 (Description) 在 xv6 实验环境中,向内核添加自定义系统调用(Syscall)并编写用户态测试程序(Test Case)时,程序在系统调用逻辑执行完毕后,无法正常返回用户态继续执行。表现为进程卡死或触发硬件级页错误(Page Fault),而代码逻辑本身(内核实现)经检查无误。 ...

June 11, 2026 · 6 min · 2533 words