81 min listen
from /proc to proc_macro
ratings:
Length:
66 minutes
Released:
May 24, 2021
Format:
Podcast episode
Description
Oxide and Friends Twitter Space: May 24, 2021from /proc to proc_macroWe’ve been holding a Twitter Space weekly on Mondays at 5p for about an hour. In addition to Bryan Cantrill and Adam Leventhal, speakers included Brian Cantrell (not making that one up!), Nima Johari, Joshua Clulow, Laura Abbott, and Tom Lyon. The recording is here.(Did we miss your name and/or get it wrong? Drop a PR!)Some of the topics we hit on, in the order that we hit them:
The other Adam Leventhal [1] and the other AHL [2]
[@3:16](https://youtu.be/85eApYSj3ic?t=196) Hockey
Calder Cup
Charlotte Checkers
Grand Rapids Griffins
[@4:02](https://youtu.be/85eApYSj3ic?t=242) Roger Faulkner invented the /proc filesystem
Gerald Ford Presidential Library and MuseumGerald Ford inaugural address (including its most famous line, “our long national nightmare is over”) > I went in a Gerald Ford cynic, and came out a Gerald Ford super-fan
Roger’s “The Process File System and Process Model in UNIX System V” paper
[@7:43](https://youtu.be/85eApYSj3ic?t=463) “I am on a mission from God to make programs debuggable”
AVL trees and linked lists > Performance is the root of all evil.
Trace Normal Form
Watchpoints, libwatchmalloc > Watchpoints are magical, when they work. It feels like a superpower.
[@11:37](https://youtu.be/85eApYSj3ic?t=697) > Roger made this incredible contribution about debugging infrastructure > being an attribute of a production system.
strace, truss
BONUS: 1986 USENIX: A System Call Tracer in UNIX
The ptrace(2) system call
ptrace’s overloading of the wait(2) system call
The German word that we’re seeking: Misappropriation-of-mechanism-in-a-seemingly-clever way-but-is-ultimately-a-disaster > ptrace is the x86 of system calls
[@16:45](https://youtu.be/85eApYSj3ic?t=1005) A long-coming apology..
Linux branded zones (LX)
“Method and system for child-parent mechanism emulation via a general interface” patent > You have to be bug-for-bug compatible.
LX vfork/signal bug that broke golang > vfork: unsafe at any speed, toxic in any quantity
[@20:16](https://youtu.be/85eApYSj3ic?t=1216) Upstart’s problematic use of ptrace(2)
Celebrating Joshua getting ptrace correct for LX branded zones
Stack shenanigans breaking LX
Red zone, segmented stacks
[@24:39](https://youtu.be/85eApYSj3ic?t=1479) The application was fishing in its own stack..
Clozure Common Lisp, mcontext > These kinds of lies just don’t nest. Magic does not layer well.
[@28:56](https://youtu.be/85eApYSj3ic?t=1736) Windows Subsystem for Linux WSL
illumos on an M1?
QEMU, ARM Cortex-M > It’s hard to get the machine really properly emulated
AWS Mac minis
[@33:55](https://youtu.be/85eApYSj3ic?t=2035) It’s kind of amazing that Apple has never had much interest in the server space.
Apple Xserve
CHRP
The story of the stolen laptop. Little endian PowerPC OpenPOWER
[@37:35](https://youtu.be/85eApYSj3ic?t=2255) Language H!
NCR
Language H: An informal overview ( part 1, part 2)
The (other) D language
[@39:12](https://youtu.be/85eApYSj3ic?t=2352)
AADEBUG’03
Postmortem Object Type Identification
[@41:31](https://youtu.be/85eApYSj3ic?t=2491) It all comes back to awk
Bourne shell source code / Algol68 #defines
Thompson shell
Bryan’s 2007 Dtrace review, Google TechTalk ~80mins
[@48:07](https://youtu.be/85eApYSj3ic?t=2887) Dtrace language inspiration
Dtrace clones > It was all based on us exploring some phenomenon, > something being kind of a pain in the ass or impossible, > and inventing something that was easy to use.
Architectural review board: “This reminds us a lot of awk..” > What’s the most powerful one-liner you can crank out with awk?
CUDA, Bluespec
[@52:35](https://youtu.be/85eApYSj3ic?t=3155) Rust proc_macros
C preprocessor
Rust macro_rules! > Reading about it for the first time, it felt like the forbidden fruit
Tcl
INTERCAL which might have been co-invented by Tom’s brother?!
Plan 9
(Did we miss anything? PRs always welcome!)Our next Twitter Space will be on
The other Adam Leventhal [1] and the other AHL [2]
[@3:16](https://youtu.be/85eApYSj3ic?t=196) Hockey
Calder Cup
Charlotte Checkers
Grand Rapids Griffins
[@4:02](https://youtu.be/85eApYSj3ic?t=242) Roger Faulkner invented the /proc filesystem
Gerald Ford Presidential Library and MuseumGerald Ford inaugural address (including its most famous line, “our long national nightmare is over”) > I went in a Gerald Ford cynic, and came out a Gerald Ford super-fan
Roger’s “The Process File System and Process Model in UNIX System V” paper
[@7:43](https://youtu.be/85eApYSj3ic?t=463) “I am on a mission from God to make programs debuggable”
AVL trees and linked lists > Performance is the root of all evil.
Trace Normal Form
Watchpoints, libwatchmalloc > Watchpoints are magical, when they work. It feels like a superpower.
[@11:37](https://youtu.be/85eApYSj3ic?t=697) > Roger made this incredible contribution about debugging infrastructure > being an attribute of a production system.
strace, truss
BONUS: 1986 USENIX: A System Call Tracer in UNIX
The ptrace(2) system call
ptrace’s overloading of the wait(2) system call
The German word that we’re seeking: Misappropriation-of-mechanism-in-a-seemingly-clever way-but-is-ultimately-a-disaster > ptrace is the x86 of system calls
[@16:45](https://youtu.be/85eApYSj3ic?t=1005) A long-coming apology..
Linux branded zones (LX)
“Method and system for child-parent mechanism emulation via a general interface” patent > You have to be bug-for-bug compatible.
LX vfork/signal bug that broke golang > vfork: unsafe at any speed, toxic in any quantity
[@20:16](https://youtu.be/85eApYSj3ic?t=1216) Upstart’s problematic use of ptrace(2)
Celebrating Joshua getting ptrace correct for LX branded zones
Stack shenanigans breaking LX
Red zone, segmented stacks
[@24:39](https://youtu.be/85eApYSj3ic?t=1479) The application was fishing in its own stack..
Clozure Common Lisp, mcontext > These kinds of lies just don’t nest. Magic does not layer well.
[@28:56](https://youtu.be/85eApYSj3ic?t=1736) Windows Subsystem for Linux WSL
illumos on an M1?
QEMU, ARM Cortex-M > It’s hard to get the machine really properly emulated
AWS Mac minis
[@33:55](https://youtu.be/85eApYSj3ic?t=2035) It’s kind of amazing that Apple has never had much interest in the server space.
Apple Xserve
CHRP
The story of the stolen laptop. Little endian PowerPC OpenPOWER
[@37:35](https://youtu.be/85eApYSj3ic?t=2255) Language H!
NCR
Language H: An informal overview ( part 1, part 2)
The (other) D language
[@39:12](https://youtu.be/85eApYSj3ic?t=2352)
AADEBUG’03
Postmortem Object Type Identification
[@41:31](https://youtu.be/85eApYSj3ic?t=2491) It all comes back to awk
Bourne shell source code / Algol68 #defines
Thompson shell
Bryan’s 2007 Dtrace review, Google TechTalk ~80mins
[@48:07](https://youtu.be/85eApYSj3ic?t=2887) Dtrace language inspiration
Dtrace clones > It was all based on us exploring some phenomenon, > something being kind of a pain in the ass or impossible, > and inventing something that was easy to use.
Architectural review board: “This reminds us a lot of awk..” > What’s the most powerful one-liner you can crank out with awk?
CUDA, Bluespec
[@52:35](https://youtu.be/85eApYSj3ic?t=3155) Rust proc_macros
C preprocessor
Rust macro_rules! > Reading about it for the first time, it felt like the forbidden fruit
Tcl
INTERCAL which might have been co-invented by Tom’s brother?!
Plan 9
(Did we miss anything? PRs always welcome!)Our next Twitter Space will be on
Released:
May 24, 2021
Format:
Podcast episode
Titles in the series (100)
Coder's Block by Oxide and Friends