April 25, 2026

Divide by zero, divide the comments

Math Is Hard

Old-school chips spark new-school drama: is kernel coding just “more manuals”

TLDR: An OpenBSD write-up breaks down old VAX CPU behavior, showing how “faults” can be retried but “traps” stop everything—like dividing by zero. Comments erupted into a playful fight over whether kernel coding is just more reading or truly brutal, with memes, respect, and math jokes flying.

OpenBSD’s latest tale dives into ancient processor quirks—think VAX from the disco era—and explains the difference between a recoverable “fault” (you can retry the instruction) and a game-over “trap” (hello, crash). Translation for non-nerds: some mistakes the computer can fix with a do-over, others slam the door. Cue the comments: one reader casually suggested kernel coding might be “not that much harder” than app coding—just more manuals—and the thread did a spit take. Veterans fired back with war stories about machines that treat division by zero like a self-destruct button and memory errors that hunt you in your sleep. The title “Math Is Hard” lit the fuse for meme mayhem; folks dragged out the “it’s a trap” gag (because the article literally says traps), while others joked this finally validates their high school algebra trauma. Meanwhile, a quieter chorus praised the clear, simple breakdown—faults are fixable oopsies, traps are fatal—plus shout-outs to OpenBSD for making gnarly hardware history readable. The vibe? Respect for kernel devs, mixed with cheeky “how hard can it be?” pokes. And yes, every thread needs a villain: today it’s divide-by-zero, still ruining weekends and winning the meme war. For the curious, SIGSEGV = memory no-no; SIGFPE = math faceplant.

Key Points

  • Kernel development must handle processor-specific behaviors that are abstracted away in userland programming.
  • The m88k/88100 required OS exception handlers to complete pending memory operations before returning, causing long-standing issues.
  • VAX is an early 32-bit architecture with a simple exception model and lacked many later microarchitectural features, including early cache memory.
  • VAX defines traps (after instruction completion) and faults (during instruction, restartable), influencing OS exception handling.
  • Page faults can be resolved by paging in memory; invalid accesses cause SIGSEGV, while divide-by-zero triggers SIGFPE.

Hottest takes

"kernel programming isnt that much harder than app programming" — globalnode
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.