Runtime Go — это слой между твоим кодом и ОС. Включает планировщик горутин (GMP), сборщик мусора (concurrent mark-sweep), аллокатор памяти, сетевой поллер (epoll/kqueue), управление стеками. Всё это компилируется прямо в бинарник — нет VM или интерпретатора.
Runtime стартует в runtime.main: инициализирует планировщик, запускает GC, создаёт первую горутину для main.main. Сетевой поллер интегрирован в планировщик — блокирующий I/O не блокирует OS-тред, а паркует горутину.
Runtime также управляет ростом стеков (начинают с 2-8KB, растут по необходимости) и обработкой паник.