Деконструкция Go: Runtime или программа, которая запускает вашу программу. Часть 3.1

В предыдущих частях мы разобрались с тем, во что превращается Go-код, как процессор работает с памятью и каким образом реализуются примитивные атомарные операции.
Но всё это порождает закономерный вопрос.
Если CPU умеет выполнять только машинные инструкции, а операционная система знает лишь о процессах и системных потоках, то кто вообще знает о существовании горутин?
Кто увеличивает их стеки?
Кто решает, какую из них сейчас выполнять?
Кто собирает мусор?
Ответ на всё это один - Go runtime.
Но runtime - это не какая-то магическая программа, которая находится между нашим приложением и операционной системой. Это часть самого приложения.
Давайте разбираться!
Это отрывок статьи. Полную версию читайте на сайте источника по ссылке ниже.
Источник: Habr