<?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>Virtual Memory on Sanketh's Blog</title><link>https://sankethbk.github.io/blog/tags/virtual-memory/</link><description>Recent content in Virtual Memory on Sanketh's Blog</description><generator>Hugo -- 0.163.3</generator><language>en-us</language><lastBuildDate>Fri, 26 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://sankethbk.github.io/blog/tags/virtual-memory/index.xml" rel="self" type="application/rss+xml"/><item><title>The Process Address Space</title><link>https://sankethbk.github.io/blog/posts/operating-systems/linux/2026-06-26-the-process-address-space/</link><pubDate>Fri, 26 Jun 2026 00:00:00 +0000</pubDate><guid>https://sankethbk.github.io/blog/posts/operating-systems/linux/2026-06-26-the-process-address-space/</guid><description>&lt;h2 id="the-process-address-space--intro"&gt;The Process Address Space — Intro&lt;/h2&gt;
&lt;p&gt;Same flat (single contiguous range) address space model you already have from the article — nothing new conceptually. Key term to lock in: a &lt;strong&gt;memory area&lt;/strong&gt; (this book&amp;rsquo;s name for what the article calls a &lt;strong&gt;VMA&lt;/strong&gt;) is a permission-tagged interval within that address space. Access outside any valid area, or against an area&amp;rsquo;s permissions (write to read-only, execute non-executable) → segfault.&lt;/p&gt;
&lt;p&gt;The list of &amp;ldquo;what memory areas contain&amp;rdquo; is just a slightly different cut of the same segments from the article: text, data, bss, stack, shared library mappings, mmap&amp;rsquo;d files, shared memory, anonymous mappings (&lt;code&gt;malloc&lt;/code&gt;). All non-overlapping — every valid address belongs to exactly one area.&lt;/p&gt;</description></item></channel></rss>