<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Composefs on *scratch*</title>
    <link>https://www.scrivano.org/tags/composefs/</link>
    <description>Recent content in Composefs on *scratch*</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Fri, 10 Jul 2026 10:41:24 +0200</lastBuildDate>
    <atom:link href="https://www.scrivano.org/tags/composefs/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Locking composefs images with flock</title>
      <link>https://www.scrivano.org/posts/2026-07-10-composefs-image-locking-with-flock/</link>
      <pubDate>Fri, 10 Jul 2026 10:00:00 +0200</pubDate>
      <guid>https://www.scrivano.org/posts/2026-07-10-composefs-image-locking-with-flock/</guid>
      <description>&lt;p&gt;For the last couple of weeks, I&amp;rsquo;ve been working on garbage collection&#xA;for composefs repositories.  A composefs repository is a&#xA;content-addressed object store, and it needs a garbage collector to&#xA;reclaim space from images that are no longer referenced. The hard part&#xA;is deciding what &amp;ldquo;referenced&amp;rdquo; actually means when an image has no ref&#xA;in the repository but is mounted somewhere, possibly from another&#xA;process, possibly in a different mount namespace, possibly by the&#xA;running system itself.  On&#xA;&lt;a href=&#34;https://github.com/composefs/composefs-rs/issues/346&#34;&gt;composefs-rs#346&lt;/a&gt;&#xA;was suggested to use &lt;code&gt;flock()&lt;/code&gt; on the EROFS backing file.  Mounters&#xA;take a shared lock, the GC probes with an exclusive one, and if the&#xA;exclusive lock fails, the image is still in use.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Image sealing with composefs</title>
      <link>https://www.scrivano.org/posts/2026-06-05-sealing-with-composefs/</link>
      <pubDate>Fri, 05 Jun 2026 08:00:00 +0000</pubDate>
      <guid>https://www.scrivano.org/posts/2026-06-05-sealing-with-composefs/</guid>
      <description>&lt;p&gt;Composefs achieves whole-filesystem integrity verification through &lt;em&gt;image sealing&lt;/em&gt;: a single cryptographic digest authenticates an entire filesystem, covering both file contents and metadata (directory structure, permissions, ownership, symlinks, and xattrs). This goes further than fs-verity alone, which can only verify individual file contents, and avoids the fixed-partition requirement of dm-verity. The mechanism combines an EROFS image for metadata, a content-addressed object store for file data, and overlayfs with &lt;code&gt;verity=require&lt;/code&gt; to enforce integrity checks on every file access at the kernel level.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Composefs - a file system for container images</title>
      <link>https://www.scrivano.org/posts/2021-10-26-compose-fs/</link>
      <pubDate>Tue, 26 Oct 2021 16:02:56 +0200</pubDate>
      <guid>https://www.scrivano.org/posts/2021-10-26-compose-fs/</guid>
      <description>&lt;p&gt;For the last couple of weeks, I&amp;rsquo;ve been playing on a PoC implementation of a file system for the Linux kernel. The goal is to address a fundamental limitation in how container images are stored: the existing overlay model deduplicates at the layer level, but once you want per-file deduplication — so that identical files across different images share a single copy on disk and in the page cache — the current architecture gets in the way and requires awkward workarounds involving hard links or filesystem-specific reflinks.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
