<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Linux File System Hunting]]></title><description><![CDATA[Linux File System Hunting]]></description><link>https://linuxfilesystemasim093.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6952e965f8f65768745b0dbb/599be717-1594-4579-9b9d-11bc310e161a.png</url><title>Linux File System Hunting</title><link>https://linuxfilesystemasim093.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Sun, 01 Nov 2026 18:44:45 GMT</lastBuildDate><atom:link href="https://linuxfilesystemasim093.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Linux File System Hunting I Went Down the Rabbit Hole So You Don't Have To.
]]></title><description><![CDATA[learn linux system]]></description><link>https://linuxfilesystemasim093.hashnode.dev/linux-file-system-hunting-i-went-down-the-rabbit-hole-so-you-don-t-have-to</link><guid isPermaLink="true">https://linuxfilesystemasim093.hashnode.dev/linux-file-system-hunting-i-went-down-the-rabbit-hole-so-you-don-t-have-to</guid><category><![CDATA[ChaiCode]]></category><dc:creator><![CDATA[Muhammad Asim]]></dc:creator><pubDate>Wed, 22 Apr 2026 18:23:26 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6952e965f8f65768745b0dbb/f4075b52-ade1-4801-b723-b47d127d78bb.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>Hey, Let's Be Real For a Second</h3>
<p>Most Linux tutorials start the same way. ls to list files. cd to change directories. mkdir to make a folder. And then you close the tab feeling like you learned something but the next day you're still Googling "how to check RAM on Linux."</p>
<p>That's because those tutorials teach you <em>commands</em>, not <em>Linux</em>.</p>
<p>This assignment asked us to explore the Linux file system like a detective not run commands, but actually investigate what's happening under the hood. So I opened a terminal, started poking around, and honestly? I couldn't stop. Here's everything interesting I found.</p>
<hr />
<h3>Finding 1: /proc Isn't Actually a Real Folder .</h3>
<p>The first thing that broke my brain /proc exists on every Linux system, but it takes <strong>zero bytes of disk space</strong>.</p>
<p>How? Because it's a virtual filesystem it doesn't live on your hard drive at all. The kernel generates it live in memory, on demand, every time you read from it.</p>
<pre><code class="language-plaintext">cat /proc/version
# Linux version 4.4.0 #1 SMP Sun Jan 10 15:06:54 PST 2016

cat /proc/uptime
# 14.12  0.00
# ↑ seconds running  ↑ idle time

cat /proc/loadavg
# 0.00 0.00 0.00
# ↑ CPU load: 1min, 5min, 15min averages
</code></pre>
<p><strong>What it does:</strong> Exposes the kernel's live internal state as readable files — CPU info, memory, running processes, network connections, everything.</p>
<p><strong>Why it exists:</strong> Tools like top, htop, and ps don't have some secret connection to the kernel they just read files from /proc. If those tools aren't installed, you can still get the same data directly.</p>
<p><strong>The insight that got me:</strong> Nothing in <code>/proc</code> is ever written to disk. Every single "file" is generated fresh the moment you read it. It's less of a folder and more of a window into the kernel's brain.</p>
<hr />
<h3>Finding 2: /proc/self — A Process Reading Its Own Mind</h3>
<p><code>/proc/self</code> is a symlink that always points to the directory of <em>whatever process is currently reading it</em>. So when you run <code>cat /proc/self/status</code>, the <code>cat</code> process is literally reading information about itself. That's kind of wild.</p>
<p>Here's what I actually got back from a live system:</p>
<pre><code class="language-plaintext">Name:     cat
State:    R (running)
Pid:      40
PPid:     18          ← parent process (the shell)
Uid:      0 0 0 0    ← real, effective, saved, filesystem UID
VmSize:   10888 kB   ← virtual memory claimed
VmRSS:    3000 kB    ← RAM actually in use right now
Seccomp:  0
CapEff:   00000000a82c35fb
</code></pre>
<p><strong>What it does:</strong> Every running process gets its own /proc/[PID]/ directory. Inside it is that process's complete state memory usage, open files, signal masks, security capabilities, and more.</p>
<p><strong>Why it exists:</strong> Debuggers, monitoring tools, and the kernel itself use this to inspect processes without needing any special system calls.</p>
<p><strong>The insight that got me:</strong> Look at <code>VmSize</code> (10888 kB) vs <code>VmRSS</code> (3000 kB). The process <em>claimed</em> 10 MB of virtual memory but is only <em>using</em> 3 MB of actual RAM. This is why memory usage on Linux always looks confusing virtual and physical memory are two very different things. Also, CapEff: 00000000a82c35fb that's a bitmask of Linux <em>capabilities</em>. Being root doesn't mean "do anything" on modern Linux. Capabilities are granular. A process can have filesystem read access without having network bind access.</p>
<hr />
<h3>Finding 3: /proc</h3>
]]></content:encoded></item></channel></rss>