<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Siddharth</title>
    <description>The latest articles on DEV Community by Siddharth (@2sidcode).</description>
    <link>https://dev.to/2sidcode</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3958154%2F9a57d46a-ff15-4028-9e75-0873478a16ee.png</url>
      <title>DEV Community: Siddharth</title>
      <link>https://dev.to/2sidcode</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/2sidcode"/>
    <language>en</language>
    <item>
      <title>Stripping away the layers of abstractions: How does a filesystem work?</title>
      <dc:creator>Siddharth</dc:creator>
      <pubDate>Fri, 29 May 2026 09:35:02 +0000</pubDate>
      <link>https://dev.to/2sidcode/stripping-away-the-layers-of-abstractions-how-does-a-filesystem-work-35jf</link>
      <guid>https://dev.to/2sidcode/stripping-away-the-layers-of-abstractions-how-does-a-filesystem-work-35jf</guid>
      <description>&lt;p&gt;Modern operating system filesystems (like ext4 or NTFS) are intimidating to look at. If you dive into their source code, you're immediately drowned in millions of lines of C and endless layers of kernel abstraction. &lt;/p&gt;

&lt;p&gt;To demystify how bytes are actually mapped, tracked, and stored inside a physical file, I built &lt;strong&gt;TinyVFS&lt;/strong&gt;, a filesystem that strips away the bloat so you can read the entire architecture in a single afternoon. &lt;/p&gt;

&lt;p&gt;Here is how it works under the hood, the architectural constraints I designed into it, and how you can run it yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  TinyVFS
&lt;/h2&gt;

&lt;p&gt;A tiny virtual file system built in C, with a Python CLI to drive it. TinyVFS is a hands-on exploration of how filesystems work under the hood. Cluster allocation, directory tables, bitmap tracking packed into a single binary disk image you can poke at, break, and learn from.&lt;/p&gt;




&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;How It Works&lt;/li&gt;
&lt;li&gt;Requirements&lt;/li&gt;
&lt;li&gt;Setup&lt;/li&gt;
&lt;li&gt;Usage&lt;/li&gt;
&lt;li&gt;Disk Layout&lt;/li&gt;
&lt;li&gt;Limitations&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;TinyVFS simulates a block-storage device inside a single binary file on your host OS. The design is intentionally straightforward: the C engine (&lt;code&gt;src/vfs.c&lt;/code&gt;) handles cluster reads/writes, bitmap-based page allocation, and a flat root directory table, all the moving parts of a real filesystem, kept small enough to read in an afternoon. The Python CLI (&lt;code&gt;tinyvfs.py&lt;/code&gt;) wraps the compiled shared library via &lt;code&gt;ctypes&lt;/code&gt; and exposes a clean command-line interface.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────┐
│                  Virtual Disk File                  │
│  ┌────────────┬────────────┬────────────────────┐   │
│  │ Cluster 0  │ Cluster 1  │ Clusters 2–N       │   │
│  │ Root Table │   Bitmap   │   File Data        │   │
│  └────────────┴────────────┴────────────────────┘   │
└─────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Each cluster is 64 KB. The root directory table (Cluster 0) stores up to 2048 file entries. The allocation bitmap (Cluster 1) tracks which 256-byte pages are in use. Every design choice is visible and traceable. There's nothing hiding behind layers of abstraction.&lt;/p&gt;


&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GCC&lt;/strong&gt; (or any C99-compatible compiler)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python 3.8+&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;pip&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;A POSIX-compatible OS (Linux or macOS). Windows is untested.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Clone the repository
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/your-username/tinyvfs.git
&lt;span class="nb"&gt;cd &lt;/span&gt;tinyvfs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  2. Build the C shared library
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;make
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This compiles &lt;code&gt;src/vfs.c&lt;/code&gt; into &lt;code&gt;libtinyvfs.so&lt;/code&gt; in the project root. The Python CLI expects the &lt;code&gt;.so&lt;/code&gt; file to be in the same directory as &lt;code&gt;tinyvfs.py&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Install Python dependencies
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  4. Verify the setup
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python tinyvfs.py &lt;span class="nt"&gt;--help&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;You should see the TinyVFS command list printed to your terminal.&lt;/p&gt;


&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;p&gt;All commands follow the pattern:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python tinyvfs.py &amp;lt;&lt;span class="nb"&gt;command&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;arguments] &lt;span class="o"&gt;[&lt;/span&gt;options]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;create&lt;/code&gt; - Format a new virtual disk
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python tinyvfs.py create &amp;lt;disk&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;--size&lt;/span&gt; BYTES]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Creates a new empty virtual disk image at the given path.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Argument&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;disk&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Output path for the new disk file (e.g. &lt;code&gt;my.bin&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--size&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disk size in bytes (default: 1048576 / 1 MB). Rounded down to the nearest 64 KB cluster.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python tinyvfs.py create my.bin &lt;span class="nt"&gt;--size&lt;/span&gt; 4194304   &lt;span class="c"&gt;# 4 MB disk&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;import&lt;/code&gt; - Write a host file into the VFS
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python tinyvfs.py import &amp;lt;disk&amp;gt; &amp;lt;host_path&amp;gt; &amp;lt;vfs_path&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Reads a file from your OS and stores it inside the virtual disk under the given VFS filename.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Argument&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;disk&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Path to an existing virtual disk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;host_path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Path to the file on your host OS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;vfs_path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Name to store it under inside the VFS (max 26 characters)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python tinyvfs.py import my.bin ./photo.jpg photo.jpg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;export&lt;/code&gt; - Read a VFS file back to the host OS
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python tinyvfs.py &lt;span class="nb"&gt;export&lt;/span&gt; &amp;lt;disk&amp;gt; &amp;lt;vfs_path&amp;gt; &amp;lt;host_path&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Copies a file from the virtual disk to a path on your host OS.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Argument&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;disk&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Path to an existing virtual disk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;vfs_path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Name of the file inside the VFS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;host_path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Destination path on your host OS&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python tinyvfs.py &lt;span class="nb"&gt;export &lt;/span&gt;my.bin photo.jpg ./recovered_photo.jpg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;ls&lt;/code&gt; - List all files in the VFS
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python tinyvfs.py &lt;span class="nb"&gt;ls&lt;/span&gt; &amp;lt;disk&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Prints a table of all files stored in the root directory, including their allocated page count and physical location on the disk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python tinyvfs.py &lt;span class="nb"&gt;ls &lt;/span&gt;my.bin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Filename                     | Size (Pages) | Location (C/P)
-----------------------------------------------------------------
photo.jpg                    | 14           | 2/0
notes.txt                    | 1            | 2/14
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;rm&lt;/code&gt; - Delete a file from the VFS
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python tinyvfs.py &lt;span class="nb"&gt;rm&lt;/span&gt; &amp;lt;disk&amp;gt; &amp;lt;vfs_path&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Removes a file's directory entry and frees its allocated pages in the bitmap.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Argument&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;disk&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Path to an existing virtual disk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;vfs_path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Name of the file inside the VFS to delete&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python tinyvfs.py &lt;span class="nb"&gt;rm &lt;/span&gt;my.bin photo.jpg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Disk Layout
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Cluster&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;Root directory table (up to 2048 × 32-byte entries)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Allocation bitmap (1 bit per 256-byte page)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2+&lt;/td&gt;
&lt;td&gt;File data&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Page size:&lt;/strong&gt; 256 bytes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cluster size:&lt;/strong&gt; 64 KB (256 pages)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Max clusters:&lt;/strong&gt; 65,536 (4 GB theoretical maximum)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Max filename length:&lt;/strong&gt; 26 characters&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Max files:&lt;/strong&gt; 2,048 entries in the root directory&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Files are stored contiguously. There is no fragmentation support. If a large enough contiguous run of free pages cannot be found, the write will fail. This constraint is a useful illustration of why real-world filesystems invest in extent trees and free-space management.&lt;/p&gt;


&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;p&gt;TinyVFS keeps its scope tight by design. Understanding &lt;em&gt;why&lt;/em&gt; these constraints exist is half the point.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Flat root directory only.&lt;/strong&gt; There are no subdirectories. A good starting point for exploring how directory trees are typically built on top of simpler structures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contiguous allocation only.&lt;/strong&gt; Heavily fragmented disks may fail to store files even when total free space is sufficient. Deleting files and re-importing can help.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No journaling or crash recovery.&lt;/strong&gt; A process kill mid-write may corrupt the disk image, exactly the kind of failure that motivated journaling in production filesystems.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No duplicate filename detection.&lt;/strong&gt; Importing two files with the same VFS name will create two entries; the second will shadow the first on reads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;26-character filename limit.&lt;/strong&gt; Longer names are silently truncated.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Source Code
&lt;/h2&gt;

&lt;p&gt;Check out the GitHub repo here:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/2sid-code" rel="noopener noreferrer"&gt;
        2sid-code
      &lt;/a&gt; / &lt;a href="https://github.com/2sid-code/TinyVFS" rel="noopener noreferrer"&gt;
        TinyVFS
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A toy file system
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;TinyVFS&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;A tiny virtual file system built in C, with a Python CLI to drive it. TinyVFS is a hands-on exploration of how filesystems work under the hood. Cluster allocation, directory tables, bitmap tracking packed into a single binary disk image you can poke at, break, and learn from.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;[WARNING]
&lt;strong&gt;ALPHA SOFTWARE - DISK FORMAT IS UNSTABLE&lt;/strong&gt;
TinyVFS is in active development. The on-disk format (cluster layout, table structure, bitmap encoding) &lt;strong&gt;may change without notice between versions.&lt;/strong&gt; Virtual disks created with the current version are &lt;strong&gt;not guaranteed to be readable by future versions.&lt;/strong&gt; Do not rely on TinyVFS disks for anything you cannot afford to lose. Always keep originals of any files you import.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Table of Contents&lt;/h2&gt;
&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/2sid-code/TinyVFS#how-it-works" rel="noopener noreferrer"&gt;How It Works&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/2sid-code/TinyVFS#requirements" rel="noopener noreferrer"&gt;Requirements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/2sid-code/TinyVFS#setup" rel="noopener noreferrer"&gt;Setup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/2sid-code/TinyVFS#usage" rel="noopener noreferrer"&gt;Usage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/2sid-code/TinyVFS#disk-layout" rel="noopener noreferrer"&gt;Disk Layout&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/2sid-code/TinyVFS#limitations" rel="noopener noreferrer"&gt;Limitations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/2sid-code/TinyVFS#license" rel="noopener noreferrer"&gt;License&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;How It Works&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;TinyVFS simulates a block-storage device inside a single binary file on your host OS. The design is intentionally straightforward: the…&lt;/p&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/2sid-code/TinyVFS" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>filesystem</category>
      <category>c</category>
      <category>python</category>
      <category>systemdesign</category>
    </item>
  </channel>
</rss>
