Процессы, потоки, память, I/O — как рантайм Go сидит на ОС.
Лекции
Мультиплексирование I/O: select, epoll, kqueue
Один поток может ждать готовности многих файловых дескрипторов. На Linux это epoll, на BSD и macOS — kqueue. Netpoller Go сидит на этом механизме: горутина паркуется на Read, а не занимает OS thread на каждое соединение.
Виртуальная память и page cache
Процесс работает с виртуальными адресами; ядро отображает страницы на RAM или диск. RSS — то, что реально в памяти. Page cache ОС ускоряет чтение файлов и часто WAL, и это не Redis и не куча Go.
Процессы, потоки и файловые дескрипторы
Процесс — своё адресное пространство. Потоки одного процесса делят память и таблицу файловых дескрипторов. Горутина легче потока и мультиплексируется планировщиком M:N; забытый Close у HTTP Body часто течёт именно дескрипторами, а не «GMP».