<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Linux on Tom Meurs</title>
    <link>https://tommeurs.nl/en/tags/linux/</link>
    <description>Recent content in Linux on Tom Meurs</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>© Tom Meurs</copyright>
    <lastBuildDate>Tue, 06 Oct 2026 09:00:00 +0200</lastBuildDate>
    <atom:link href="https://tommeurs.nl/en/tags/linux/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Talos Linux Vendor Lock-In: Five Questions, Run on My Own Nodes</title>
      <link>https://tommeurs.nl/en/posts/talos-linux-vendor-lock-in/</link>
      <pubDate>Tue, 06 Oct 2026 09:00:00 +0200</pubDate>
      <guid>https://tommeurs.nl/en/posts/talos-linux-vendor-lock-in/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; I ran the five questions from my licence post on the OS under my own cluster. The licence holds. The &lt;span class=&#34;def&#34; tabindex=&#34;0&#34; data-def=&#34;A Linux distribution with no shell, no SSH and no package manager, managed entirely through an API. The node is configuration rather than a machine you log into.&#34;&gt;Talos&lt;/span&gt;&#xA; Linux vendor lock-in sits in two defaults that point at Sidero&amp;rsquo;s servers, the &lt;span class=&#34;def&#34; tabindex=&#34;0&#34; data-def=&#34;Business Source License 1.1: the source is published and free to use, except for the use the licensor names, usually a hosted service that competes with its own. Each release converts to an open source licence after a fixed number of years.&#34;&gt;BSL&lt;/span&gt;&#xA; code Sidero keeps adding around the &lt;span class=&#34;def&#34; tabindex=&#34;0&#34; data-def=&#34;Mozilla Public License 2.0: a file-level copyleft licence. Changes to MPL files must stay open when you distribute them, while code in other files may carry any licence.&#34;&gt;MPL&lt;/span&gt;&#xA; core, and a company Yardi has owned since 14 September.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux Is for Everyone: Why This Blog Now Welcomes Beginners Too</title>
      <link>https://tommeurs.nl/en/posts/linux-is-for-everyone/</link>
      <pubDate>Thu, 11 Jun 2026 20:28:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/linux-is-for-everyone/</guid>
      <description>&lt;p&gt;My neighbour is 70 years old. He&amp;rsquo;s used Windows his whole life. Last month he asked me: &amp;ldquo;Tom, I keep hearing about Linux. Is that something for me too?&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;He&amp;rsquo;s not the first. Over the past year I&amp;rsquo;ve had the same question from friends, family and colleagues, each in their own shape. &amp;ldquo;I want to get off Windows, but where do I start?&amp;rdquo; &amp;ldquo;Is Linux hard?&amp;rdquo; &amp;ldquo;Can I still use my normal programs?&amp;rdquo; To me these are easy questions. I&amp;rsquo;ve been running Linux since SuSE 6.0, back when you picked your hardware by whether a Linux driver existed for it. If you&amp;rsquo;ve never seen a terminal, they&amp;rsquo;re not easy at all.&lt;/p&gt;</description>
    </item>
    <item>
      <title>KVM/QEMU Scripts and Aliases: Making Virtualization Actually Usable</title>
      <link>https://tommeurs.nl/en/posts/kvm-qemu-scripts-aliases/</link>
      <pubDate>Wed, 03 Jun 2026 21:17:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/kvm-qemu-scripts-aliases/</guid>
      <description>&lt;p&gt;I run VMs all day. A Kubernetes deployment I want to test, a distro I read about, Windows for that one stubborn application, an experiment I&amp;rsquo;d rather not run on my actual machine. KVM/QEMU is the right tool for all of it. It lives in the Linux kernel and runs close to native speed. Nothing in it phones home, and no vendor gets a say in what I do with my own hardware.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quantum-safe GPG identity with multiple aliases</title>
      <link>https://tommeurs.nl/en/posts/quantum-safe-gpg-identity/</link>
      <pubDate>Sat, 18 Apr 2026 10:47:00 +0200</pubDate>
      <guid>https://tommeurs.nl/en/posts/quantum-safe-gpg-identity/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; One GPG masterkey that only certifies, kept offline. Three aliases bound to it, so anyone can check they&amp;rsquo;re the same person. Ed25519 subkeys for signing and SSH, an ML-KEM plus X448 subkey for encryption so recorded ciphertext stays closed after a quantum computer shows up, and three backups that each assume the other two are gone. Needs GnuPG 2.5.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;A cryptographic signature still means exactly what it says. If the key is yours and the signature verifies, the content came from you. No vendor handed you that identity, no CA can pull it, no platform can suspend it. It exists because you generated the key, and it&amp;rsquo;s yours for as long as you hold the private half. Most of what gets called &amp;ldquo;online identity&amp;rdquo; is borrowed. A handle someone can ban, an email address the domain owner can take back the day they feel like it. A GPG signature sits outside all of that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>NixOS as a Hypervisor: KVM and QEMU Can Do Everything</title>
      <link>https://tommeurs.nl/en/posts/nixos-hypervisor-kvm-qemu/</link>
      <pubDate>Thu, 19 Mar 2026 21:52:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/nixos-hypervisor-kvm-qemu/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; KVM and QEMU are the engine inside Proxmox and most of the cloud you rent. On NixOS, with libvirt on top, that engine is one block of config, and live migration, memory ballooning, GPU passthrough, SR-IOV and CPU pinning are each a command or an XML snippet away. What Proxmox adds is the dashboard and the delegation, and I&amp;rsquo;m honest below about how much that&amp;rsquo;s worth.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Ask around how to run a &amp;ldquo;real&amp;rdquo; hypervisor at home and you get the same shortlist. VMware, Hyper-V, or at minimum Proxmox. Something with a web UI, a clustering tab and a marketing page full of enterprise features. The shortlist is so well worn that running VMs without one of those products feels like cutting corners. I don&amp;rsquo;t blame anyone for that. The marketing is good.&lt;/p&gt;</description>
    </item>
    <item>
      <title>NixOS vs Talos for Kubernetes Nodes: Two Flavors of Immutable Infrastructure</title>
      <link>https://tommeurs.nl/en/posts/nixos-vs-talos-kubernetes-nodes/</link>
      <pubDate>Sun, 15 Mar 2026 20:37:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/nixos-vs-talos-kubernetes-nodes/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; Talos and NixOS are both declarative and both can be immutable, and that&amp;rsquo;s about where the resemblance stops. Talos runs Kubernetes and nothing else, with no shell to drift in. NixOS is a full Linux where the whole machine is one Nix config. I run Talos on my cluster nodes and NixOS on the machines around them, and this post is how I got to that split.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve written about &lt;a href=&#34;https://tommeurs.nl/en/posts/talos-linux-immutable-kubernetes/&#34;&gt;Talos Linux&lt;/a&gt; as the immutable Kubernetes OS, and I&amp;rsquo;ve compared &lt;a href=&#34;https://tommeurs.nl/en/posts/arch-vs-nixos-workstation/&#34;&gt;Arch vs NixOS for workstations&lt;/a&gt;. After both, the same question kept arriving in my inbox. Why not NixOS on the Kubernetes nodes too?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Talos Linux: The Immutable Kubernetes OS That Changed How I Think About Nodes</title>
      <link>https://tommeurs.nl/en/posts/talos-linux-immutable-kubernetes/</link>
      <pubDate>Wed, 11 Mar 2026 21:15:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/talos-linux-immutable-kubernetes/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; Talos Linux is a Linux that runs Kubernetes and nothing else. No SSH, no shell, no package manager. Every change goes through an API and a YAML file in Git. I&amp;rsquo;ve run my nodes on it for three years, and this post is how I stopped missing the shell.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;The first time I tried to SSH into a &lt;span class=&#34;def&#34; tabindex=&#34;0&#34; data-def=&#34;A Linux distribution with no shell, no SSH and no package manager, managed entirely through an API. The node is configuration rather than a machine you log into.&#34;&gt;Talos&lt;/span&gt;&#xA; node, I got nothing. No shell, no connection, not even a login prompt. I sat there for a minute wondering how I was supposed to debug a machine I couldn&amp;rsquo;t get into.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Arch vs NixOS as a Workstation: Professional and Personal Use</title>
      <link>https://tommeurs.nl/en/posts/arch-vs-nixos-workstation/</link>
      <pubDate>Tue, 03 Mar 2026 21:28:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/arch-vs-nixos-workstation/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; I&amp;rsquo;ve run Arch and NixOS as my daily machine, and today it&amp;rsquo;s Arch on both desktops and NixOS on the servers. Arch&amp;rsquo;s reputation for breaking is mostly a missing snapshot. With btrfs, Snapper, dotfiles in git and a package list, a rollback takes 2 minutes and the fear of updates goes away. NixOS earns its learning curve when several machines have to stay identical, and on a server I wouldn&amp;rsquo;t run anything else.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CTF and Forensics Skills That Make You a Better DevOps Engineer</title>
      <link>https://tommeurs.nl/en/posts/ctf-skills-for-devops/</link>
      <pubDate>Fri, 27 Feb 2026 19:52:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/ctf-skills-for-devops/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; I spend my evenings on Hack The Box and it&amp;rsquo;s made me better at my day job, which is platform engineering and has nothing to do with pentesting. The first ten minutes on a &lt;span class=&#34;def&#34; tabindex=&#34;0&#34; data-def=&#34;Capture The Flag: a security exercise where you break into a deliberately vulnerable system and prove it by retrieving a planted token, the flag.&#34;&gt;CTF&lt;/span&gt;&#xA; box and the first ten minutes on a broken production server are the same loop, with &amp;ldquo;flag&amp;rdquo; swapped for &amp;ldquo;incident&amp;rdquo;. Below is the toolkit that loop runs on, from one host up to a Kubernetes pod, with the CTF use and the work use side by side for every command.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Learn the Defaults: Why Portability Beats Customization</title>
      <link>https://tommeurs.nl/en/posts/learn-the-defaults/</link>
      <pubDate>Sun, 15 Feb 2026 19:47:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/learn-the-defaults/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; I spent years polishing a vim and tmux setup, then sat useless in front of a stock vim on a production server. So I learned the defaults I&amp;rsquo;d been overriding all along, and moved my customizations on top of them instead of in place of them. What that looks like for vim, tmux and the shell tools, and the four checks I use to find the gaps.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;For years my setup was the thing I was proudest of. A dotfiles repo with commits going back further than some of my jobs, a vim config that pulled in thirty plugins, the tmux prefix moved somewhere comfortable, a prompt that took a weekend to get right. Down to the last keybinding, it was mine. On my laptop I was fast, and I hardly thought about the tools at all. Muscle memory did the work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dotfile Management with mise and chezmoi: The Perfect Combo</title>
      <link>https://tommeurs.nl/en/posts/dotfile-management-mise-chezmoi/</link>
      <pubDate>Wed, 11 Feb 2026 20:23:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/dotfile-management-mise-chezmoi/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; Six ways of syncing dotfiles later, the one I kept is chezmoi for the files and mise for the tool versions, with the mise config living inside the chezmoi repo. Templates handle the work laptop against the personal desktop, age handles the secrets, and a fresh machine is one command and about five minutes. The walk-through goes from one managed file to the bootstrap I run for real.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;My &lt;code&gt;.zshrc&lt;/code&gt; is older than some of my coworkers&amp;rsquo; careers. Same for my &lt;code&gt;.vimrc&lt;/code&gt; and my tmux config. They&amp;rsquo;ve grown into a setup that does exactly what I want, and I&amp;rsquo;d be lost without them. The catch is that I run more than one machine. A laptop, a desktop, now and then a throwaway VM for testing. For years, keeping those in sync was a pile of hacks I didn&amp;rsquo;t trust.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pass: the Unix password manager that just works</title>
      <link>https://tommeurs.nl/en/posts/pass-password-manager/</link>
      <pubDate>Sat, 10 Jan 2026 12:00:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/pass-password-manager/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; pass keeps each password as a GPG-encrypted file in a directory, and the directory is the whole data model. &lt;code&gt;pass -c email/gmail&lt;/code&gt; puts a password in your clipboard from any terminal, &lt;code&gt;pass git push&lt;/code&gt; backs the store up, and the fzf script further down is how I look up every password I have. The price is GPG key management, and it&amp;rsquo;s a real price.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;I used KeePass for years. Then 1Password. Then Bitwarden. All decent tools, and every one of them was too much for what I asked of it. Too much UI, too many features, and a password always lived on the other side of an app I had to alt-tab into. A small interruption, and they added up.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GPG explained: from first key to daily use</title>
      <link>https://tommeurs.nl/en/posts/gpg-beginners-guide/</link>
      <pubDate>Tue, 06 Jan 2026 19:00:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/gpg-beginners-guide/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; GPG encrypts files and signs things, and it sits under pass, under signed git commits and under the checksums maintainers publish. One command gives you a working keypair in five minutes. Subkeys and a YubiKey come later, if ever, and the UX is bad enough that I complain about it at length below.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;GPG is a tool I kept meaning to learn and didn&amp;rsquo;t, for years. The docs are a wall of text, the terminology is its own dialect, and the error messages are cryptic in both senses of the word.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
