Устройство операционных систем: от ядра и системных вызовов до Go | Полный разбор
Igor Panasyuk
В этом видео мы подробно разбираем устройство операционных систем - от ядра и системных вызовов до того, как эти механизмы проявляются в языке Go. Сначала разбираемся, зачем вообще нужно понимать ОС-разработчику, затем показываем, как операционная система представлена в Go и как устроено ядро. Рассматриваем монолитную, микросервисную и гибридную архитектуры, объясняем разницу между ASMP и SMP, и на примере Linux показываем, как работает современное ядро. Переходим к ключевым абстракциям: процессам, потокам, адресному пространству, планировщику и демонстрируем это в учебной ОС xv6 и в Go. Объясняем, как устроены системные вызовы (syscall), как Go взаимодействует с kernel space, как происходят прерывания и обрабатываются сигналы, включая SIGBUS и mprotect. В практической части показываем, как сократить избыточные системные вызовы и оптимизировать работу приложений. Таймкоды: 00:00:00 - Введение 00:00:22 - Мотивация 00:03:24 - Представление операционной системы в Go 00:07:31 - Устройство ядра операционной системы 00:09:43 - Сложность ядра операционной системы 00:12:56 - Архитектура ядра. Монолитная архитектура 00:16:14 - Архитектура ядра. Микросервисная архитектура 00:18:01 - Сравнение архитектур операционной системы 00:18:58 - Архитектура ядра. Гибридный подход 00:20:03 - Asymmetric multiprocessing (ASMP) 00:21:45 - Symmetric multiprocessing (SMP) 00:22:50 - Архитектура ядра Linux 00:25:23 - Абстракции операционной системы. Адресное пространство 00:33:38 - Пример процесса в...