Comparing Filesystems: ext4 vs XFS vs Btrfs vs ZFS
A practical comparison of four major Linux filesystems — ext4, XFS, Btrfs, and ZFS — covering journaling vs copy-on-write, extent strategies, metadata overhead, and crash consistency.
A practical comparison of four major Linux filesystems — ext4, XFS, Btrfs, and ZFS — covering journaling vs copy-on-write, extent strategies, metadata overhead, and crash consistency.
This page compares RT (Real-Time) and CFS (Completely Fair Scheduler) scheduling classes in the Linux kernel, explaining their priorities, differences, and how they affect processes. It also covers kernel scheduling priorities, user space execution, and tools like rtkit that allow real-time scheduling for non-root users.
A hands-on lab for creating a logical disk using a loopback device, formatting it with ext4, and exploring the initial filesystem structures like lost+found, the superblock, and metadata overhead.
Step-by-step walkthrough of process creation, execution, and termination, with hands-on examples.
A step-by-step lab on ext4 internals. Create files, inspect their inodes and extents, force fragmentation, and watch what happens to metadata before and after deletion.
A deep dive into how a network packet travels from the NIC through DMA, the RX ring, interrupt handling, the Linux network stack, and finally to a user-space application.
A minimal, no-friction guide to setting up the kitty terminal on Ubuntu with sane defaults, SSH and tmux compatibility, and OS-level keybindings.
An overview of Linux, including personal history and favorite resources, with mentions of affiliate links for products and courses.
Files deleted with `rm` don’t vanish instantly. Ext4 leaves behind traces — shadows on disk — that can sometimes be recovered with tools like debugfs. Let’s look behind the curtain.
A narrative walkthrough of what happens when you write a file to disk (through the page cache, extents, and journaling) and deletion with `rm`. Think "Lord of the Rings," but for inodes.
A practical guide for diagnosing and fixing PulseAudio issues on Ubuntu, including D-Bus address conflicts and unreliable device enumeration. Covers key configuration files, common errors, and effective recovery steps.
A deep dive into what makes a true daemon process on Unix-like systems. This article explains the proper steps to daemonize a process—forking, detaching, session creation—and debunks common misconceptions around using subshells or `source`.
Explore the role and operation of per-CPU processes, specifically kernel threads such as migration, idle-inject, ksoftirqd, and watchdog, in task migration, CPU load balancing, thermal management, and lockup detection.
The `rtkit-daemon` is a dbus-activated service that enables user processes to request temporary real-time scheduling without root access, ensuring applications like PulseAudio can function optimally without system-wide permission elevation.
How to inspect, search, and customize kitty terminal keybindings using built-in help, kittens, and the kitty.conf configuration file.
A deep dive into the architecture, tools, pros, and pitfalls of X11 and Wayland — the two major display server protocols on Linux. Learn when to use each and how they impact your development experience.