
xv6笔记
文章平均质量分 68
木山令
这个作者很懒,什么都没留下…
展开
-
笔记2:系统调用过程
用户态通过系统调用(如)、异常或中断触发切换,核心入口代码在中: • 指令:用户程序执行系统调用时,通过指令触发陷阱。例如,函数编译后生成的汇编代码包含指令,该指令将CPU切换到内核态。 • 跳转至:执行后,CPU会根据寄存器指向的陷阱处理入口(即),这是用户态到内核态切换的起点。• 保存用户态上下文:在中,xv6将用户寄存器的值保存到当前进程的结构体中,并切换到内核栈(指向内核栈顶)。 • 加载内核信息:通过等指令加载内核栈指针和内核页表(),完成地址空间切换。 • 跳转到C陷阱处理程序:最终调用函数(位原创 2025-03-14 11:44:20 · 447 阅读 · 0 评论 -
笔记0:xv6配置篇
Bear 主要用于生成编译数据库。编译数据库是一个包含了编译过程中各种信息的文件,例如源文件路径、编译命令等。通过使用 Bear,这些工具可以更准确地了解项目的编译过程,从而提供更精确的分析和建议。clangd 是一个由 C++ 编写的用于为 C、C++、Objective-C 和 Objective-C++ 提供语言服务器协议(Language Server Protocol,LSP)实现的工具。建议使用2022版,由于qemu-system-misc有一个更新与内核不兼容,会导致内核挂起。原创 2025-03-15 11:27:59 · 142 阅读 · 0 评论