• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
2019/2020

Ядро Linux

Статус: Дисциплина общефакультетского пула
Когда читается: 3, 4 модуль
Язык: русский
Кредиты: 2
Контактные часы: 24

Программа дисциплины

Аннотация

Курс про устройство ядра Linux, от самых простых понятий до сложных концепций. Курс будет интересен и полезен студентам, кто хочет подробнее разобраться в том, как устроены операционные системы Linux, какие механизмы и подходы в них реализованы, а также набраться опыта низкоуровневой разработки.
Цель освоения дисциплины

Цель освоения дисциплины

  • Познакомиться и изучить основные механизмы и понятия семейства операционных систем Linux
Планируемые результаты обучения

Планируемые результаты обучения

  • Знать базовые понятия ядра Linux
  • Знать основные структуры ядра
  • Иметь базовые навыки работы в CLI
  • Уметь разворачивать виртуальные машины
  • Понимать, что такое аппаратная и программная виртуализация
  • Знать основные программные средства для виртуализации
  • Знать базовые понятия о процессах
  • Иметь понимание о работе планировщика в Linux
  • Ознакомиться с реализацией планировщика в Linux
  • Знать, что такое прерывания
  • Уметь реализовывать обработчик прерывания
  • Знать основные термины прерываний
  • Знать, что такое атомарные операции и спин-блокировки
  • Знать и уметь работать с мьютексами и семафорами
  • Знать, что такое барьеры и каких типов они бывают
  • Знать, как устроена работа со временем в Linux
  • Уметь реализовывать таймеры и их обработчики
  • Уметь реализовывать задержку выполнения
  • Знать, что такое страничная организация памяти, выделение страниц
  • Понимать, как работает блочное распределение памяти
  • Понимать, как работает выделение памяти для конкретного процессора
  • Понимать, что такое области виртуальной памяти
  • Уметь работать с областями памяти
  • Знать методики кэширования
  • Знать, что такое буферный кэш
  • Знать, что такое потоки синхронизатора
  • Уметь понимать диагностические сообщения
  • Уметь задавать конфигурацию для отладки ядра
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Базовые понятия
    Устройство ядра Linux. Подсистемы Linux. Системные функции. Структуры данных ядра
  • Виртуализация
    Аппаратная и программная виртуализация. Виртуализация в Linux. KVM. Qemu, Virtualbox.
  • Управление процессами
    Управление процессами: понятие процесса, дескриптор процесса, реализация потоков в ядре. Системный планировщик и диспетчеризация процессов: стратегия планирования, алгоритм работы планировщика, реализация планировщика в Linux, планирование в режиме реального времени.
  • Прерывания и их обработка: верхняя и нижняя половины.
    Верхняя половина: регистрация обработчика прерывания, написание обработчика прерывания, контекст прерывания, система обработки прерывания и ее реализация, управление прерываниями. Нижняя половина: отложенные прерывания, тасклеты, очереди отложенных действий, блокировки между нижними половинами обработчиков.
  • Синхронизация кода ядра
    Синхронизация кода ядра: критические участки, доступ к системным ресурсам, блокировки и взаимоблокировки. Средства синхронизации ядра: атомарные операции, спин-блокировки, семафоры, мьютексы, условные переменные. BKL. Последовательные блокировки. Барьеры.
  • Отладка ядра
    Отладка ядра. Диагностические сообщения, сообщения Oops. Параметры конфигурации для отладки ядра.
  • Кэш
    Страничный кэш и отложенная запись страниц. Методики кэширования. Реализация страничного кэша в Linux. Буферный кэш. Потоки синхронизатора.
  • Работа с памятью
    Адресное пространство процесса. Дескриптор памяти. Области виртуальной памяти. Работа с областями памяти. Таблицы страниц.
  • Управление памятью
    Управление памятью. Страничная организация памяти, зоны. Блочное распределение памяти. Выделение страниц памяти. Статическое выделение памяти в стеке. Выделение памяти для конкретного процессора. Интерфейс percpu.
  • Таймеры и управление временем
    Таймеры и управление временем. Учет времени в ядре. Переменная jiffies. Аппаратные часы и таймеры, абсолютное время. Реализация таймеров. Обработчик прерываний таймера. Задержка выполнения.
Элементы контроля

Элементы контроля

  • неблокирующий Домашняя работа 1
  • неблокирующий Домашняя работа 2
  • неблокирующий Домашняя работа 3
  • неблокирующий Домашняя работа 4
  • неблокирующий Домашняя работа 5
  • неблокирующий Домашняя работа 6
  • неблокирующий Домашняя работа 7
  • неблокирующий Домашняя работа 8
  • неблокирующий Домашняя работа 9
    Оценка за дисциплину выставляется в соответствии с формулой оценивания от всех пройденных элементов контроля. Экзамен не проводится.
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (4 модуль)
    0.112 * Домашняя работа 1 + 0.111 * Домашняя работа 2 + 0.111 * Домашняя работа 3 + 0.111 * Домашняя работа 4 + 0.111 * Домашняя работа 5 + 0.111 * Домашняя работа 6 + 0.111 * Домашняя работа 7 + 0.111 * Домашняя работа 8 + 0.111 * Домашняя работа 9
Список литературы

Список литературы

Рекомендуемая основная литература

  • Назаров С.В., Широков А.И. - Современные операционные системы - Национальный Открытый Университет "ИНТУИТ" - 2016 - 351с. - ISBN: 978-5-9963-0416-5 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100498

Рекомендуемая дополнительная литература

  • Дэвид М. Харрис, Сара Л. Харрис - Цифровая схемотехника и архитектура компьютера - Издательство "ДМК Пресс" - 2017 - 792с. - ISBN: 978-5-97060-522-6 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/97336