<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Memory &#8211; jcomes.org</title>
	<atom:link href="https://jcomes.org/category/memory/feed" rel="self" type="application/rss+xml" />
	<link>https://jcomes.org</link>
	<description></description>
	<lastBuildDate>Tue, 27 Oct 2026 21:10:19 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
<site xmlns="com-wordpress:feed-additions:1">204893580</site>	<item>
		<title>An AArch64 OS in Rust – Implementing Virtual Memory III</title>
		<link>https://jcomes.org/an-aarch64-os-in-rust-implementing-virtual-memory-iii</link>
		
		<dc:creator><![CDATA[Jcomes]]></dc:creator>
		<pubDate>Tue, 20 Oct 2026 06:55:00 +0000</pubDate>
				<category><![CDATA[Arm]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Memory]]></category>
		<guid isPermaLink="false">https://jcomes.org/?p=1910</guid>

					<description><![CDATA[In the previous post, we built the physical frame allocator required to construct page tables dynamically. Until now, the kernel has relied on an identity mapping, with virtual addresses equal to physical addresses, which was enough to enable the MMU and continue execution with address translation enabled. The next step is to map the kernel [&#8230;]]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1910</post-id>	</item>
		<item>
		<title>An AArch64 OS in Rust – Implementing Virtual Memory II</title>
		<link>https://jcomes.org/an-aarch64-os-in-rust-implementing-virtual-memory-ii</link>
		
		<dc:creator><![CDATA[Jcomes]]></dc:creator>
		<pubDate>Thu, 24 Sep 2026 07:13:45 +0000</pubDate>
				<category><![CDATA[Arm]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Memory]]></category>
		<guid isPermaLink="false">https://jcomes.org/?p=1813</guid>

					<description><![CDATA[In the previous post, we laid the hardware foundation for our virtual memory subsystem: configuring the MMU, setting up MAIR attributes, and establishing an identity mapping to ensure our kernel survived the transition to address translation. While we successfully enabled translation without crashing, our current translation tables are backed by statically reserved storage. To build [&#8230;]]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1813</post-id>	</item>
		<item>
		<title>An AArch64 OS in Rust – Implementing Virtual Memory I</title>
		<link>https://jcomes.org/an-aarch64-os-in-rust-implementing-virtual-memory-i</link>
		
		<dc:creator><![CDATA[Jcomes]]></dc:creator>
		<pubDate>Tue, 31 Mar 2026 07:55:00 +0000</pubDate>
				<category><![CDATA[Arm]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Memory]]></category>
		<guid isPermaLink="false">https://jcomes.org/?p=1590</guid>

					<description><![CDATA[In the previous post, we moved from structural parsing to semantic interpretation of the Device Tree, allowing our kernel to dynamically discover peripheral addresses and interrupt lines. But while we have successfully purged hardcoded addresses from the assembly in favor of dynamic discovery, we are still operating in a flat, unprotected physical address space. To [&#8230;]]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1590</post-id>	</item>
		<item>
		<title>All about virtual memory III – Practical Example</title>
		<link>https://jcomes.org/abvmem-iii</link>
		
		<dc:creator><![CDATA[Jcomes]]></dc:creator>
		<pubDate>Wed, 28 Jun 2023 18:21:45 +0000</pubDate>
				<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Memory]]></category>
		<category><![CDATA[x86_64]]></category>
		<guid isPermaLink="false">https://jcomes.org/?p=518</guid>

					<description><![CDATA[In the latest post we did a deep overview on how virtual memory works, but without focusing in any architecture. In this post we will discuss how virtual memory is implemented in x86_64 arch, by building a Linux kernel module. At the end, you will find a link to download the source code. Virtual memory [&#8230;]]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">518</post-id>	</item>
		<item>
		<title>All about virtual memory II &#8211; Operation</title>
		<link>https://jcomes.org/abvmem-ii</link>
		
		<dc:creator><![CDATA[Jcomes]]></dc:creator>
		<pubDate>Thu, 08 Jun 2023 11:01:19 +0000</pubDate>
				<category><![CDATA[Memory]]></category>
		<guid isPermaLink="false">https://jcomes.org/?p=259</guid>

					<description><![CDATA[Following the series, in this post we will discuss how virtual memory works under the hood. We will take a general look on how virtual memory is implemented. This include page tables management, address translation mechanism, or how page misses are treated. Finally, we will discuss how to optimize the translation process by explaining what [&#8230;]]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">259</post-id>	</item>
		<item>
		<title>All about virtual memory I &#8211; Motivation</title>
		<link>https://jcomes.org/abvmem-i</link>
		
		<dc:creator><![CDATA[Jcomes]]></dc:creator>
		<pubDate>Wed, 17 May 2023 17:05:56 +0000</pubDate>
				<category><![CDATA[Memory]]></category>
		<guid isPermaLink="false">https://jcomes.org/?p=200</guid>

					<description><![CDATA[Welcome to the first post in our series on virtual memory! In this series, we will be exploring the concepts, benefits, and implementation of virtual memory in computer systems. In this first post, we will discuss the motivation behind the use of virtual memory, including the limitations of physical memory and the need for efficient [&#8230;]]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">200</post-id>	</item>
	</channel>
</rss>
