<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Xv6 on memory</title>
    <link>https://mem.leabol.top/tags/xv6/</link>
    <description>Recent content in Xv6 on memory</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sat, 13 Jun 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://mem.leabol.top/tags/xv6/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>xv6 分析与总结</title>
      <link>https://mem.leabol.top/posts/xv6/xv6%E5%88%86%E6%9E%90%E4%B8%8E%E6%80%BB%E7%BB%93/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://mem.leabol.top/posts/xv6/xv6%E5%88%86%E6%9E%90%E4%B8%8E%E6%80%BB%E7%BB%93/</guid>
      <description>&lt;h2 id=&#34;系统概述与启动流程&#34;&gt;系统概述与启动流程&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;(关注宏观状态流转：从 Machine Mode 到 Supervisor Mode，再到第一个用户进程的诞生)&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;核心概念&#34;&gt;核心概念&lt;/h3&gt;
&lt;p&gt;启动流程的本质是&lt;strong&gt;特权级的逐级让渡&lt;/strong&gt;：从硬件最高特权（Machine Mode）出发，经过层层初始化和降权，最终将控制权交给最不信任的用户程序。整个过程是一条从&amp;quot;全权控制&amp;quot;到&amp;quot;受限执行&amp;quot;的信任链——每一步都在缩小 CPU 的权限范围，同时建立更多的软件抽象层。&lt;/p&gt;</description>
    </item>
    <item>
      <title>RISC-V trap / syscall / trampoline 机制完整解析</title>
      <link>https://mem.leabol.top/posts/xv6/risc-v-trap-%E6%9C%BA%E5%88%B6%E5%AE%8C%E6%95%B4%E8%A7%A3%E6%9E%90/</link>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://mem.leabol.top/posts/xv6/risc-v-trap-%E6%9C%BA%E5%88%B6%E5%AE%8C%E6%95%B4%E8%A7%A3%E6%9E%90/</guid>
      <description>&lt;h1 id=&#34;risc-v-trap--syscall--trampoline-机制完整解析&#34;&gt;RISC-V Trap / Syscall / Trampoline 机制完整解析&lt;/h1&gt;
&lt;hr&gt;
&lt;h1 id=&#34;一整体流程概览&#34;&gt;一、整体流程概览&lt;/h1&gt;
&lt;h2 id=&#34;11-总览&#34;&gt;1.1 总览&lt;/h2&gt;
&lt;p&gt;用户态通过 &lt;code&gt;ecall&lt;/code&gt; 触发异常 → 硬件最小保存 → 跳转到 &lt;code&gt;stvec&lt;/code&gt; → trampoline 完成上下文保存 + 切页表 → 进入内核 → 执行 syscall → 再通过 trampoline 返回用户态。&lt;/p&gt;</description>
    </item>
    <item>
      <title>travel_xv6</title>
      <link>https://mem.leabol.top/posts/xv6/travel_xv6/</link>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://mem.leabol.top/posts/xv6/travel_xv6/</guid>
      <description>&lt;h2 id=&#34;系统调用syscallecall&#34;&gt;系统调用syscall(ecall)&lt;/h2&gt;
&lt;h3 id=&#34;1用户态的准备工作&#34;&gt;1.用户态的准备工作&lt;/h3&gt;
&lt;p&gt;cpu核心在用户线程(进程)上工作, pc(程序计数器寄存器)指向下一个执行的用户态指令(.text), sp(栈指针寄存器)指向当前用户态线程的栈顶,用于分割栈帧和栈帧中变量的定位.&lt;/p&gt;</description>
    </item>
    <item>
      <title>xv6总览图</title>
      <link>https://mem.leabol.top/posts/xv6/xv6%E6%80%BB%E8%A7%88%E5%9B%BE/</link>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://mem.leabol.top/posts/xv6/xv6%E6%80%BB%E8%A7%88%E5%9B%BE/</guid>
      <description>&lt;h2 id=&#34;系统总览&#34;&gt;系统总览&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;00-overview&#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/xv6%E6%80%BB%E8%A7%88/00-overview.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;进程管理&#34;&gt;进程管理&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;02-process&#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/xv6%E6%80%BB%E8%A7%88/02-process.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;内存管理&#34;&gt;内存管理&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;03-memory&#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/xv6%E6%80%BB%E8%A7%88/03-memory.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;文件系统&#34;&gt;文件系统&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;04-filesystem&#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/xv6%E6%80%BB%E8%A7%88/04-filesystem.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;trap&#34;&gt;trap&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;05-trap&#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/xv6%E6%80%BB%E8%A7%88/05-trap.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;系统调用&#34;&gt;系统调用&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;06-syscall&#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/xv6%E6%80%BB%E8%A7%88/06-syscall.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;驱动&#34;&gt;驱动&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;07-devices&#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/xv6%E6%80%BB%E8%A7%88/07-devices.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;用户函数&#34;&gt;用户函数&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;08-userspace&#34; loading=&#34;lazy&#34; src=&#34;https://mem.leabol.top/images/xv6%E6%80%BB%E8%A7%88/08-userspace.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>调试记录：xv6 用户程序内存布局冲突异常</title>
      <link>https://mem.leabol.top/posts/xv6/%E8%B0%83%E8%AF%95%E8%AE%B0%E5%BD%95xv6-%E7%94%A8%E6%88%B7%E7%A8%8B%E5%BA%8F%E5%86%85%E5%AD%98%E5%B8%83%E5%B1%80%E5%86%B2%E7%AA%81%E5%BC%82%E5%B8%B8/</link>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://mem.leabol.top/posts/xv6/%E8%B0%83%E8%AF%95%E8%AE%B0%E5%BD%95xv6-%E7%94%A8%E6%88%B7%E7%A8%8B%E5%BA%8F%E5%86%85%E5%AD%98%E5%B8%83%E5%B1%80%E5%86%B2%E7%AA%81%E5%BC%82%E5%B8%B8/</guid>
      <description>&lt;h2 id=&#34;-调试记录xv6-用户程序内存布局冲突异常&#34;&gt;🛠️ 调试记录：xv6 用户程序内存布局冲突异常&lt;/h2&gt;
&lt;h3 id=&#34;1-问题描述-description&#34;&gt;1. 问题描述 (Description)&lt;/h3&gt;
&lt;p&gt;在 xv6 实验环境中，向内核添加自定义系统调用（Syscall）并编写用户态测试程序（Test Case）时，程序在系统调用逻辑执行完毕后，无法正常返回用户态继续执行。表现为进程卡死或触发硬件级页错误（Page Fault），而代码逻辑本身（内核实现）经检查无误。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
