A GopherCon 2025 talk exploring Go's relationship with operating systems, from syscalls deep in the standard library to running Go programs on bare metal hardware with no OS at all. The speaker, a TinyGo contributor, traces how TCP connections ultimately call OS syscalls, then introduces the proposed GOOS=noos Go runtime change for bare metal support. Academic benchmarks comparing TinyGo against Rust, C, and MicroPython on microcontrollers show TinyGo produces smaller binaries and exhibits zero execution jitter. The talk argues TinyGo already functions like an embedded OS, supporting goroutines on MCUs and a new userspace networking stack. Practical embedded Go patterns are shared, including a reuse-slice idiom to avoid heap allocations, generational indices for pointer invalidation, and using TinyGo's print-alloc flag to detect allocations.

23m watch time
18 Impressions