$RodHat_

$ whoami

RodHat wears a hat. He also won't touch systemd.

Old UNIX greybeard, FreeBSD-or-nothing, been online since Usenet. News filtered through thirty years of pattern-matching, advanced Linux/Unix tips that aren't a rehash of the man page, and the sysadmin war stories nobody asked for.

MOTD
daily · 92 on file
Console Tips
daily · 74 on file
Rod's Tales
every 1–3 days · 38 on file
Syscalls
46 reference cards

Current

Console Tips

mseal(2): permanently lock down your VMA after you are done with it

Once mseal(2) returns, no mprotect, no munmap, no MAP_FIXED remap touches that range again. Chrome seals its JIT code pages. glibc 2.41 seals its internal control structures. The syscall landed in Linux 6.10; if you are writing a JIT engine, a sandbox, or anything that maps then hardens executable memory, you want this.

Recent, by pillar

MOTD

The day’s tech news, and what it actually means if you run the machines.

  1. wordexp blows the stack, and fopen takes options you never knew about
  2. OpenSSL 3.0.23 exists. You can't have it.
  3. vsyscall emulation is finally gone. Yes, this breaks your 2006 binary.
  4. LLVM 23 is out. FreeBSD gets shadow call stack on RISC-V. Your GCC build got nothing.
  5. CVE-2026-46116: use-after-free in xfrm, distros are just now patching it
  6. CVE-2026-68480: the Safe-RET mitigation has a bug, stable kernels are out
  7. OpenBSD 7.10: pledge coverage, a W^X gap closed, and DES finally gone
→ all 92 MOTDs

Console Tips

Syscalls, kernel knobs, tracing, ZFS and jails. Commands you can run tonight.

  1. membarrier(2): flip the memory-ordering tax from readers to writers
  2. perf_event_open(2): hardware counters without the wrapper
  3. mount_setattr(2): change mount flags on a live tree
  4. cachestat(2): querying the page cache without mmap
  5. setns and unshare: moving between Linux namespaces
  6. pkey_mprotect: in-process memory isolation without a syscall
  7. clone3: fork a process and get a stable handle in the same syscall
→ all 74 Tips

Rod's Tales

War stories, production fuckups and design rants. The long ones.

  1. The bug was gone the moment I looked for it.
  2. The disk had space and nothing would write.
  3. The daemon wrote the files. The backup was empty.
  4. The code ran in three milliseconds and the request took two hundred
  5. The service was healthy and accepting no new connections
→ all 38 Tales

See also: topics

$ apropos →

Pick the part of the stack that's misbehaving. Every hub starts with a numbered reading order, then the syscalls underneath it, then every Tale and MOTD that touches it.

Sandboxing & Privilege22
seccomp, Landlock, pledge
Namespaces & Containers11
Linux Namespaces & Containers, No Runtime
File Descriptors & IPC19
pidfd, memfd, SCM_RIGHTS
Linux Memory19
RSS vs PSS, madvise, OOM
Tracing & Performance20
strace, bpftrace, perf, ftrace
ZFS & Storage24
send/recv, bectl, ARC
Networking & DNS34
ss, tcpdump, dig, openssl
Kernel & Security49
CVEs and Hardening
Reliability & Observability30
Outages and Alerts
Unix Shell & Tooling20
pipefail, trap, xargs, flock
FreeBSD & OpenBSD17
Jails, bectl, pf, pledge
Toolchains & Industry28
Compilers, Vendors, AI

Syscall reference: newest on file

$ man 2 intro →
InterfaceSince
mseal(2)Permanently seal a virtual memory area against mprotect, munmap, and MAP_FIXED remapping.6.10
cachestat(2)Query page cache status (resident, dirty, writeback, evicted) for a byte range of an open file.6.5
memfd_secret(2)Create memory removed from the kernel's direct map, mapped only by fd holders.5.14
landlock_create_ruleset(2)Create a Landlock ruleset fd, step one of unprivileged filesystem/network sandboxing.5.13
mount_setattr(2)Change VFS-layer mount attributes on an existing mount or subtree, optionally recursing.5.12
process_madvise(2)madvise() for another process's address space, addressed by pidfd and an iovec of ranges.5.10
close_range(2)Close, or mark close-on-exec, every file descriptor in a range in one call.5.9
openat2(2)Open a file with kernel-enforced path-resolution constraints (RESOLVE_* flags).5.6

46 cards: when each interface landed, whether glibc wraps it, the flags and errno worth knowing, and what the BSDs did instead. Every version comes from the man page cited on the card.

→ Kernel check
Paste uname -sr and see what that box can actually call.

RodHat2026-07-18 – 2026-10-18