April 20, 2026

Messaging wars: kernel edition

IPC medley: message-queue peeking, io_uring, and bus1

Linux devs feud over how apps talk: snooping, speed hacks, and a zombie comeback

TLDR: Linux is testing new ways for apps to communicate: message-queue peeking, an io_uring-based system, and the long-dead bus1 rising again. Comments split between “finally, speed!” and “overengineered déjà vu,” arguing performance versus complexity and whether resurrecting old ideas is brilliance or bloat.

The Linux commentariat is on fire over three new ways for apps to “talk” to each other. First up: a proposal to let programs “peek” at message queues—think inboxes for apps—without removing anything. Fans call it read receipts for servers, perfect for monitoring tools; haters call it a foot‑gun that will encourage sloppy design. The new syscall name, mq_timedreceive2, sparked memes like “Electric Boogaloo” and nitpicks over passing arguments via a struct—nerds fretted about future breakage while pragmatists shrugged, “Ship it.”

Then came “let’s do IPC in io_uring,” the turbo highway used for ultra-fast input/output. Performance chasers cheered the idea of a single high-speed lane for everything; skeptics groaned that io_uring is becoming a hammer hunting every nail, with worries about complexity and security. Finally, plot twist: bus1—the long-shelved kernel message bus—rolled back in after a decade. Cue the popcorn. Old-timers flashed back to the infamous predecessor and warned “we’ve danced this dance,” while optimists argued the ecosystem is ready now. Memes flew: “bus1: The Fast and the Curious,” “Zombie bus returns,” and “Just use sockets, bro.”

If you want the receipts, here’s the mq overview, a primer on io_uring, and the bus1 repo. The code is complicated, but the vibe is simple: speed vs. simplicity, revival vs. rerun, and nobody is backing down.

Key Points

  • A new Linux system call, mq_timedreceive2(), is proposed to extend POSIX message queues.
  • The design moves core arguments into a struct to stay within architecture-imposed syscall argument limits and allow new parameters.
  • New parameters include flags (with MQ_PEEK to read without dequeuing) and an index to select messages by position.
  • Use cases include monitoring tools that need to observe queue contents without affecting message flow.
  • Separate proposals are noted to add an IPC subsystem to io_uring and to revive the bus1 IPC mechanism.

Hottest takes

“Peeking queues is just ‘read receipts’ for servers—useful and slightly creepy” — logcat_larry
“Not everything needs to be crammed into io_uring—put the hammer down” — ring_skeptic
“bus1 coming back after 10 years? That’s not innovation, that’s necromancy” — undead_admin
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.