TLB hit 💥

A podcast about systems & compilers

🐦 @TLBhit


🍎 Apple podcast

Episode 2:^M

Artisinal hand-crafted intro [00:00]

Standard disclaimer [00:30]

The "silly" interview question [00:55]

Timeless questions [01:55]

What was the question again? [04:15]

Starting in physical IO space [04:50]

How can we relate this back to Tron though? [06:40]

Brief intro to USB [07:15]

Enter vs return? [08:30]

Into the chipset [09:05]

Why are input events exposed through file descriptors? [12:00]

[Note: for low latency communication between peripherals and userspace folks often do map registers from the device's PCIe memory space directly into userspace (as uncacheable memory) and have a protocol for interacting with the device so that you don't need to go through filesystem syscall overheads, folks are continuing to try to build reusable abstractions for this like io_uring.]

Through the window manager to the browser-UI-owning process [~12:15]

Which parts of the browser might share a process? [~15:15]

Inter-Process Communication patterns [16:20]

The concept of "chrome" [16:55]

Tabs and back/forward cache [19:20]

What's in a URL? [20:10]

Working at places and not knowing everything [22:40]

Domain name to IP resolution [24:40]

Stacks of trust and probabilistic data structures [26:15]

Protocol changes/upgrade [28:45]

Building security in, bolting it on, the space inbetween [30:30]

Surprisingly nuanced: unicode domains [32:30]

Back to the question: UDP sockets for DNS [37:40]

Establishing HTTPS after name resolution [38:45]

Accelerated primitives on modern HW [41:35]

A little sumpthin server-side [47:25]

Signoff [56:10]

Sideband References