Добавить
Уведомления

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

Материалы из видео - https://t.me/igoroutine/73 Курсы по программированию - https://clck.ru/3Q4Pfd В этом видео мы подробно разбираем устройство операционных систем - от ядра и системных вызовов до того, как эти механизмы проявляются в языке Go. Сначала разбираемся, зачем вообще нужно понимать ОС-разработчику, затем показываем, как операционная система представлена в Go и как устроено ядро. Рассматриваем монолитную, микросервисную и гибридную архитектуры, объясняем разницу между ASMP и SMP, и на примере Linux показываем, как работает современное ядро. Переходим к ключевым абстракциям: процессам, потокам, адресному пространству, планировщику и демонстрируем это в учебной ОС xv6 и в Go. Объясняем, как устроены системные вызовы (syscall), как Go взаимодействует с kernel space, как происходят прерывания и обрабатываются сигналы, включая SIGBUS и mprotect. В практической части показываем, как сократить избыточные системные вызовы и оптимизировать работу приложений. Telegram: https://t.me/igoroutine VK: https://vk.com/igoroutine Instagram: https://instagram.com/igoroutine YouTube: https://www.youtube.com/@igoroutine Таймкоды: 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 - Пример процесса в учебной ОС xv6 (DEMO) 00:35:35 - Абстракции операционной системы (примеры из Go) 00:39:18 - Абстракции операционной системы. Потоки 00:44:08 - Абстракции операционной системы. Реализация потоков в Linux 00:45:54 - Абстракции операционной системы. Как работает планировщик 00:46:35 - Как работает планировщик в Go (простыми словами) 00:51:12 - Как работает планировщик в Go (в терминах GMP модели) 00:58:14 - Взаимодействие с операционной системой (user space, kernel space) 00:59:15 - Системные вызовы (syscall) 01:00:35 - Системные вызовы (syscall) в xv6 (DEMO) 01:01:35 - Делаем системный вызов (syscall) через ассемблер NASM (DEMO) 01:03:55 - Дополнительный материал 01:04:06 - Системные вызовы (syscall) в Go 01:06:26 - Взаимодействиее user space и kernel space 01:07:47 - Как происходит передача управления. Прерывания 01:11:31 - Сигналы 01:15:12 - Пример устранения избыточных системных вызовов (DEMO) 01:17:39 - Как использовать сигналы в Go. Пример с mprotect (DEMO) 01:18:50 - Как использовать сигналы в Go. Пример с SIGBUS (DEMO) 01:21:34 - Итоги и выводы 01:21:57 - Финал

Иконка канала igoroutine
13 подписчиков
12+
18 просмотров
Месяц назад
12+
18 просмотров
Месяц назад

Материалы из видео - https://t.me/igoroutine/73 Курсы по программированию - https://clck.ru/3Q4Pfd В этом видео мы подробно разбираем устройство операционных систем - от ядра и системных вызовов до того, как эти механизмы проявляются в языке Go. Сначала разбираемся, зачем вообще нужно понимать ОС-разработчику, затем показываем, как операционная система представлена в Go и как устроено ядро. Рассматриваем монолитную, микросервисную и гибридную архитектуры, объясняем разницу между ASMP и SMP, и на примере Linux показываем, как работает современное ядро. Переходим к ключевым абстракциям: процессам, потокам, адресному пространству, планировщику и демонстрируем это в учебной ОС xv6 и в Go. Объясняем, как устроены системные вызовы (syscall), как Go взаимодействует с kernel space, как происходят прерывания и обрабатываются сигналы, включая SIGBUS и mprotect. В практической части показываем, как сократить избыточные системные вызовы и оптимизировать работу приложений. Telegram: https://t.me/igoroutine VK: https://vk.com/igoroutine Instagram: https://instagram.com/igoroutine YouTube: https://www.youtube.com/@igoroutine Таймкоды: 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 - Пример процесса в учебной ОС xv6 (DEMO) 00:35:35 - Абстракции операционной системы (примеры из Go) 00:39:18 - Абстракции операционной системы. Потоки 00:44:08 - Абстракции операционной системы. Реализация потоков в Linux 00:45:54 - Абстракции операционной системы. Как работает планировщик 00:46:35 - Как работает планировщик в Go (простыми словами) 00:51:12 - Как работает планировщик в Go (в терминах GMP модели) 00:58:14 - Взаимодействие с операционной системой (user space, kernel space) 00:59:15 - Системные вызовы (syscall) 01:00:35 - Системные вызовы (syscall) в xv6 (DEMO) 01:01:35 - Делаем системный вызов (syscall) через ассемблер NASM (DEMO) 01:03:55 - Дополнительный материал 01:04:06 - Системные вызовы (syscall) в Go 01:06:26 - Взаимодействиее user space и kernel space 01:07:47 - Как происходит передача управления. Прерывания 01:11:31 - Сигналы 01:15:12 - Пример устранения избыточных системных вызовов (DEMO) 01:17:39 - Как использовать сигналы в Go. Пример с mprotect (DEMO) 01:18:50 - Как использовать сигналы в Go. Пример с SIGBUS (DEMO) 01:21:34 - Итоги и выводы 01:21:57 - Финал

, чтобы оставлять комментарии