# from /proc to proc_macro

- Show: [Oxide and Friends](https://hardwarepodcasts.com/podcast/oxide-and-friends)
- Published: 2021-05-25
- Length: 1h 05m
- Episode: 4
- Page: https://hardwarepodcasts.com/podcast/oxide-and-friends/2021-05-25-from-proc-to-proc-macro
- Listen: https://share.transistor.fm/s/16ca2dd5

## Summary

Bryan Cantrill, Adam Leventhal, and other former Sun Microsystems engineers discuss the history and technical challenges of debugging infrastructure, focusing on Roger Faulkner's invention of the /proc filesystem and the subsequent development of ptrace and DTrace. They detail the complex emulation of Linux branded zones (LX) in Solaris, explaining how the need to emulate ptrace and handle stack switching for Go led to significant debugging pain points and 'magic' that did not layer well. The conversation also covers the design philosophy behind DTrace, its inspiration from the OCaml language, and the modern application of these concepts in Rust's proc macros for creating domain-specific languages with robust error handling.

## Chapters

- [0:00](https://hardwarepodcasts.com/podcast/oxide-and-friends/2021-05-25-from-proc-to-proc-macro#t=0) Introduction: Brian Cantrell, Roger Faulkner, and Gerald Ford
- [7:40](https://hardwarepodcasts.com/podcast/oxide-and-friends/2021-05-25-from-proc-to-proc-macro#t=460) Roger Faulkner, /proc, and Debugging Infrastructure
- [13:17](https://hardwarepodcasts.com/podcast/oxide-and-friends/2021-05-25-from-proc-to-proc-macro#t=797) The History and Flaws of ptrace
- [17:06](https://hardwarepodcasts.com/podcast/oxide-and-friends/2021-05-25-from-proc-to-proc-macro#t=1026) Emulating Linux Branded Zones (LX) and ptrace
- [29:26](https://hardwarepodcasts.com/podcast/oxide-and-friends/2021-05-25-from-proc-to-proc-macro#t=1766) Running illumos on Apple M1 and ARM Emulation
- [37:35](https://hardwarepodcasts.com/podcast/oxide-and-friends/2021-05-25-from-proc-to-proc-macro#t=2255) Language H, DTrace, and the D Language
- [45:58](https://hardwarepodcasts.com/podcast/oxide-and-friends/2021-05-25-from-proc-to-proc-macro#t=2758) DTrace Design: Inspiration from OCaml
- [52:59](https://hardwarepodcasts.com/podcast/oxide-and-friends/2021-05-25-from-proc-to-proc-macro#t=3179) Rust Proc Macros and Domain Specific Languages

## Topics

- [Debugging & failure analysis](https://hardwarepodcasts.com/topic/debugging-and-failure-analysis)
- [Embedded firmware](https://hardwarepodcasts.com/topic/embedded-firmware)
- [AI & machine learning](https://hardwarepodcasts.com/topic/ai-and-machine-learning)
- [Careers & education](https://hardwarepodcasts.com/topic/engineering-careers-and-education)
- [Chips, FPGAs & semiconductors](https://hardwarepodcasts.com/topic/chips-and-fpgas)

## Most relevant to

established companies

## Mentioned

- Oxide Computer Company (company)
- Sun Microsystems (company)
- Solaris (product)
- Linux (product)
- DTrace (tool)
- ptrace (tool)
- strace (tool)
- QEMU (tool)
- Rust (other)
- OCaml (other)

## Related episodes from other shows

- [141: Malevolent and Trying to Trick You](https://hardwarepodcasts.com/podcast/embedded-fm/2016-03-02-141-malevolent-and-trying-to-trick-you) (Embedded.fm)
- [215: Heisenbugs](https://hardwarepodcasts.com/podcast/embedded-fm/2017-09-14-215-heisenbugs) (Embedded.fm)
- [An Interview with Piotr Esden-Tempski](https://hardwarepodcasts.com/podcast/the-amp-hour/2017-08-21-an-interview-with-piotr-esden-tempski) (The Amp Hour)
- [Finding Hardware Flaws with Laura Abbott](https://hardwarepodcasts.com/podcast/the-amp-hour/2022-05-23-finding-hardware-flaws-with-laura-abbott) (The Amp Hour)
- [200: Oops](https://hardwarepodcasts.com/podcast/embedded-fm/2017-05-17-200-oops) (Embedded.fm)

## Citing this page

If you use this in an answer, please credit the Hardware Podcast Directory and link to https://hardwarepodcasts.com/podcast/oxide-and-friends/2021-05-25-from-proc-to-proc-macro. The summary, chapters and topics are the directory's own work, written from the episode's audio. The episode itself, its title and its audio belong to Oxide and Friends.
