<?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>pipiang</title><link>https://www.pipiang.com/</link><description>Recent content on pipiang</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 16 Apr 2026 14:21:36 +0800</lastBuildDate><atom:link href="https://www.pipiang.com/index.xml" rel="self" type="application/rss+xml"/><item><title>RISC-V 非特权基础指令集学习资料：RV32I、RV64I、Zifencei、Zicsr</title><link>https://www.pipiang.com/posts/riscv-unprivileged-base-instructions-guide/</link><pubDate>Thu, 16 Apr 2026 14:15:04 +0800</pubDate><guid>https://www.pipiang.com/posts/riscv-unprivileged-base-instructions-guide/</guid><description>面向初学者的 RISC-V 官方非特权 ISA 学习资料，严格覆盖 RV32I、RV64I 差异与新增、Zifencei、Zicsr，逐条解释用途、关键行为、示例和易错点。</description></item><item><title>ELF 文件到底是什么：程序还没运行前，磁盘上那份可执行文件里装了什么</title><link>https://www.pipiang.com/posts/elf-file-intro/</link><pubDate>Sat, 11 Apr 2026 16:59:20 +0800</pubDate><guid>https://www.pipiang.com/posts/elf-file-intro/</guid><description>用入门视角讲清 ELF 是什么、Linux 为什么用它、文件头和程序头表分别干什么，以及段、节、符号表和动态链接信息在可执行文件里各自扮演什么角色。</description></item><item><title>RISC-V 上 Linux 的早期页表：内核为什么要先搭一张临时地图</title><link>https://www.pipiang.com/posts/riscv-linux-early-page-table/</link><pubDate>Fri, 10 Apr 2026 18:30:00 +0800</pubDate><guid>https://www.pipiang.com/posts/riscv-linux-early-page-table/</guid><description>面向初学者解释 Linux 6.11 在 RISC-V 上的早期页表设计：为什么要先有临时映射、trampoline 和 fixmap，以及它们如何完成从 MMU-off 到完整虚拟内存的过渡。</description></item><item><title>RISC-V 基本指令入门：先看懂 ISA，再看懂指令</title><link>https://www.pipiang.com/posts/riscv-basic-instructions-overview/</link><pubDate>Fri, 10 Apr 2026 18:00:00 +0800</pubDate><guid>https://www.pipiang.com/posts/riscv-basic-instructions-overview/</guid><description>面向初学者的 RISC-V 入门文章：先建立 ISA、hart、EEI、XLEN、寄存器和指令格式的整体认知，再总结 RV32I/RV64I 的基础指令组与扩展命名。</description></item><item><title>RISC-V 64 位 Linux 虚拟内存布局详解：以 Sv39 为例</title><link>https://www.pipiang.com/posts/riscv64-linux-vm-layout-sv39/</link><pubDate>Fri, 10 Apr 2026 16:43:41 +0800</pubDate><guid>https://www.pipiang.com/posts/riscv64-linux-vm-layout-sv39/</guid><description>以 Linux 6.11 的 RISC-V 64 位 Sv39 为例，讲清楚内核虚拟内存高低半区、direct map、vmalloc、vmemmap、fixmap、PCI I/O，以及早期页表如何切到最终布局。</description></item><item><title>Linux 6.11 内核启动过程详解：以 RISC-V 为例</title><link>https://www.pipiang.com/posts/linux-611-riscv-kernel-boot/</link><pubDate>Thu, 09 Apr 2026 23:57:02 +0800</pubDate><guid>https://www.pipiang.com/posts/linux-611-riscv-kernel-boot/</guid><description>面向初学者的 Linux 6.11 RISC-V 内核启动流程导读：从 head.S、setup_vm()、start_kernel()、rest_init() 到第一个用户态 init。</description></item><item><title/><link>https://www.pipiang.com/archives/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.pipiang.com/archives/</guid><description>&lt;h2 id="summary-pipiang-的文章归档"&gt;yout: &amp;ldquo;archives&amp;rdquo;
url: &amp;ldquo;/archives/&amp;rdquo;
summary: &amp;ldquo;pipiang 的文章归档&amp;rdquo;&lt;/h2&gt;</description></item></channel></rss>