Компьютерные науки

Внутреннее устройство ядра Linux

Программа для глубокого изучения архитектурных компонентов ядра Linux. В программе рассматриваются системные вызовы, организация сетевого стека и файловые системы. Изучаются алгоритмы управления ресурсами и принципы функционирования планировщика процессов.
Студентов 2748 Выпускников 98 Для специалистов
690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.
Объем

36 час.
Длительность

30 дней
Нагрузка в неделю

9 час.
Формат обучения

Дистанционно (самостоятельно)
Описание Изучение внутреннего устройства Linux, принципов функционирования ядра и логики принятия архитектурных решений. Рассматриваются системные вызовы, работа виртуальной файловой системы, механизмы передачи сетевого трафика и алгоритмы планировщика процессов. Подробно разбирается управление ресурсами и кэширование страниц памяти. Курс поможет системным программистам и разработчикам драйверов глубоко разобраться в низкоуровневых процессах операционной системы.
Цели
  • Сформировать целостное представление о фундаментальной архитектуре ядра Linux.
  • Проанализировать принципы взаимодействия подсистем VFS, сетевого стека и планировщика.
  • Подготовить к работе с низкоуровневыми интерфейсами операционной системы.
  • Обосновать выбор конкретных архитектурных решений в реализации ключевых функций ядра.
Чему я научусь?
  • Использовать API системных вызовов для управления ресурсами.
  • Анализировать структуры данных файловых систем и механизмы монтирования.
  • Настраивать параметры сетевого стека на уровне ядра.
  • Оценивать эффективность работы планировщика и алгоритмов кэширования памяти.
  • Проектировать программные решения с учетом особенностей переключения контекста и обработки прерываний.

Авторы

Емельянов Павел Владимирович
Емельянов Павел Владимирович
Чему я научусь?
  • Использовать API системных вызовов для управления ресурсами.
  • Анализировать структуры данных файловых систем и механизмы монтирования.
  • Настраивать параметры сетевого стека на уровне ядра.
  • Оценивать эффективность работы планировщика и алгоритмов кэширования памяти.
  • Проектировать программные решения с учетом особенностей переключения контекста и обработки прерываний.

Учебный план

Занятия
Экзамен экстерном Внимание! Экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите подтвердить свои знания по данному курсу без его изучения или поверить свои знания по нему. Экзамен экстерном можно сдать только один раз. 90 мин
1 Функции ядра операционной системы
2 Общие понятия об API к ядру операционный системы
3 Функция ядра - управление ресурсами
4 Системный вызов - завершение
5 Ядро Linux и его подсистемы
6 Подсистемы procfs, sysctl, netlink
7 Вопросы и планы на будущие лекции
Вопросы и планы на будущие лекции тест для курса Внутреннее устройство ядра Linux 30 мин
8 Файловые системы
9 Описание файловой системы (file_system_type)
10 Информация о файловой системе (super_block)
11 Индексный дескриптор inode
12 Структура элемента каталога dentry и коллекция inode
Структура элемента каталога dentry и коллекция inode тест для курса Внутреннее устройство ядра Linux 40 мин
13 Фундаментальные операции для директории
14 Как работает revalidate в procfs
15 Уменьшение дерева
16 Как работают приложения с файлами
17 Разбор нескольких примеров открытия файлов
18 Удаление файлов
Удаление файлов тест для курса Внутреннее устройство ядра Linux 45 мин
19 Монтирование файловой системы
20 Bind mount
21 Размонтирование файловой системы
22 Множественное монтирование супер-блока
23 Создание жёстких ссылок и другие особенности
Создание жёстких ссылок и другие особенности тест для курса Внутреннее устройство ядра Linux 45 мин
24 Общие понятия о сетевом стеке ядра Linux
25 Сокеты (общие понятия)
26 Сокеты и VFS
27 Структуры socket и Sock
28 Некоторые детали отправки и передачи данных
Некоторые детали отправки и передачи данных тест для курса Внутреннее устройство ядра Linux 45 мин
29 Обработка входящего трафика на уровне сетевой карты и её драйвера
30 Использовании NAPI и особенности создания sk_buff
31 Обработка входящих пакетов в обработчике NET_RX_SOFTIRQ
32 Исходящий сетевой трафик
33 Клонирование sk_buff
34 Очереди пакетов
Очереди пакетов тест для курса Внутреннее устройство ядра Linux 50 мин
35 Структура sk_buf
36 Работа с sk_buf на исходящем трафике
37 Работа с sk_buf на входящем трафике
38 Особенности оптимизации работы с sk_buf
Особенности оптимизации работы с sk_buf тест для курса Внутреннее устройство ядра Linux 40 мин
39 За что отвечает протокол ip
40 Входящий ip траффик
41 Исходящий ip трафик
42 Destination entry
43 Routing: fib и Neigbors
Routing: fib и Neigbors тест для курса Внутреннее устройство ядра Linux 40 мин
44 Планировщик: общие понятия
45 Переключение контекста
46 Как работает планировщик при выборе процесса
47 Трудности написания планировщиков
48 Исторический экскурс
49 Priority inversion
Priority inversion тест для курса Внутреннее устройство ядра Linux 45 мин
50 Кэши
51 Read and Page Cache
52 Write and Page Cache
53 Запись грязных страниц кэша
54 Флаги выделения памяти и открытия файла
Флаги выделения памяти и открытия файла тест для курса Внутреннее устройство ядра Linux 50 мин
Тренировочный экзамен Внимание! Тренировочный экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите проверить свои знания курса перед сдачей экзамена. Тренировочный экзамен можно сдавать сколько угодно один раз. 90 мин
Экзамен 60 мин

Какой документ я получу?

Сертификат

Выдаётся автоматически после успешного завершения программы.

Удостоверение о повышении квалификации

Выдается при наличии среднего специального или высшего образования (необходимые документы).

Стоимость программы

690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.