<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>页帧分配器 on 软件开发大郭的技术博客</title>
		<link>https://blog.grabbyte.com/tags/%E9%A1%B5%E5%B8%A7%E5%88%86%E9%85%8D%E5%99%A8/</link>
		<description>Recent content in 页帧分配器 on 软件开发大郭的技术博客</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<lastBuildDate>Fri, 11 Sep 2026 10:23:35 +0800</lastBuildDate>
		
			<atom:link href="https://blog.grabbyte.com/tags/%E9%A1%B5%E5%B8%A7%E5%88%86%E9%85%8D%E5%99%A8/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>自制工业控制系统：内存管理器实战——物理页帧分配器、内核堆与DMA内存池</title>
				<link>https://blog.grabbyte.com/p/2026/09/11-1023.html</link>
				<pubDate>Fri, 11 Sep 2026 10:23:35 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2026/09/11-1023.html</guid>
				<description>&lt;h1 id=&#34;起因&#34;&gt;起因&lt;/h1&gt;&#xA;&lt;p&gt;系列里&amp;quot;从内存映射里划一块&amp;quot;&amp;ldquo;DMA 池&amp;quot;&amp;ldquo;后备缓冲&amp;quot;这类说法出现过无数次，但那根负责&amp;quot;划&amp;quot;的手指——分配器本身——一直没有正面写过。这是基础篇里最大的一块地基：没有它，&lt;code&gt;Vec&lt;/code&gt;/&lt;code&gt;Box&lt;/code&gt; 用不了，网络包缓冲、字体资源、文件目录列表全都没有出处。这篇补上：从 &lt;a href=&#34;https://blog.grabbyte.com/p/2026/09/11.html&#34;&gt;UEFI 内存映射&lt;/a&gt;出发做一个物理页帧分配器，在其上搭内核堆，再划出 DMA 专用池，最后说清楚实时层为什么一分钱内存都不能现场要。这门手艺本身没有新东西可发明：位图、空闲链、伙伴系统全是六十年前就定型的方法，Knuth 的《计算机程序设计艺术》第一卷 1968 年就把这摊事讲透了；DMA 必须低地址连续内存的执念则来自 IBM PC 的 8237 控制器——24 位地址线顶到 16MB，&amp;ldquo;设备只认低地址&amp;quot;这个约束一路遗传到今天的 PCIe 设备。功夫全花在选哪门老手艺最配这台机器。&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
