Бесплатные материалы

Устройство операционных систем: от ядра и системных вызовов до Go | Полный разбор

ИСТОЧНИК:
На этом открытом уроке мы разберем устройство операционных систем от «А» до «Я» — как ядро управляет железом, как программы общаются с ОС через системные вызовы и как все это реализовано внутри языка Go.

В этом уроке:

  • Архитектура ядра: разница между монолитными и микроядерными системами, а также устройство ядра Linux.
  • Процессы и потоки: глубокий разбор абстракций ОС, структуры адресного пространства (Stack, Heap, Text) и контекст-свитчинга.
  • Системные вызовы (Syscalls): как происходит переход из User Space в Kernel Space на уровне регистров и прерываний процессора.
  • Планировщик Go vs ОС: как рантайм Go экономит ресурсы системы, управляя тысячами горутин на ограниченном количестве потоков (модель GMP).
  • Сигналы и прерывания: как ОС общается с вашим приложением и как Go обрабатывает сигналы для Graceful Shutdown или работы GC.
  • Низкоуровневые примеры: пишем системные вызовы на ассемблере и разбираем, как Go обращается к ядру напрямую.

В итоге у тебя будет четкое понимание фундаментальных принципов работы ОС: ты узнаешь, что происходит под капотом обычного fmt.Println или открытия файла, и научишься писать более производительный код, понимая ограничения и возможности системы

Дополнительные материалы к видео

Исходный код
https://github.com/igoroutine-courses/the_nature_of_computer_science/blob/master/lectures/lecture_5/syscall_perfomance_test.go
Comparing Linux and Minix
https://lwn.net/Articles/220255/
Видео про профилирование
https://youtu.be/3R6Lke2aGE0
Планировщик в Go
https://habr.com/ru/articles/891426/
Видео про ассемблер
https://youtu.be/iflItE2PUAU
Видео про сборщик мусора
https://t.me/igoroutine/89?comment=492
Видео про память
https://t.me/igoroutine_chat/295