Бакалавриат
2024/2025





Разработка операционных систем
Статус:
Курс по выбору (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Где читается:
Факультет компьютерных наук
Когда читается:
4-й курс, 1-3 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Хорошилов Алексей Владимирович
Язык:
русский
Кредиты:
10
Программа дисциплины
Аннотация
В курсе рассматриваются ключевые принципы проектирования ядра операционных систем с акцентом на их освоение на практике. В рамках курса каждым студентом выполняется постепенная разработка маленькой операционной системы на языке Си с небольшими количеством вставок на ассемблере x86, которая запускается на эмуляторе ЭВМ Qemu. Каркас операционной системы постепенно выдается слушателям, наполнение каркаса осуществляется совместно в ходе занятий и в рамках самостоятельной работы.
Цель освоения дисциплины
- Знакомство на практике с основными принципами конструирования ядра операционной системы и сопутствующих понятий, таких как планировщик, виртуальная память, прерывания, механизмы синхронизации, системные вызовы, файловые системы и т.д.
Планируемые результаты обучения
- Знание механизмов аппаратной поддержки работы ядра
- Знание навыков программирования на языке Ассемблер
- Знание навыков проектирования и программирования компонентов ядра операционной системы и отладки программ в привилегированном режиме работы процессора
- Знание основных принципов внутреннего устройства ядра операционной системы
- Знание ПО начальной инициализации платформы и периферийных устройств, интерфейсов базового программного обеспечения (BIOS) на основе современных спецификаций ACPI, SMBIOS, UEFI и пр.
Содержание учебной дисциплины
- Введение.
- Устройство ядра JOS.
- Описатели процессов в JOS.
- Прерывания в x86.
- Обработка вложенных прерываний в x86.
- Управление распределением физических страниц.
- Переключение между режимами работы процессора.
- Управление процессами.
- Примитивная файловая система.
Элементы контроля
- Домашняя работа
- Экзамен
- ЛабораторныеВ первом модуле в сумме макс. 10 баллов за все лабораторные работы.
Промежуточная аттестация
- 2024/2025 1st moduleКоличество накопленных баллов за лабораторные работы
- 2024/2025 3rd module0модуль3 = Олаб*0.1 + Одз*0.1 + Оэкз*0.1
Список литературы
Рекомендуемая основная литература
- Архитектура компьютера, Таненбаум, Э., 2014
- Операционная система UNIX, учебное пособие, 2-е изд., 635 с., Робачевский, А., Немнюгин, С., Стесик, О., 2014
- Операционные системы. Разработка и реализация. Классика CS. 3-е изд. - 978-5-469-01403-4 - Таненбаум Эндрю С, Вудхалл Альберт С. - 2007 - Санкт-Петербург: Питер - https://ibooks.ru/bookshelf/339939 - 339939 - iBOOKS
- Современные операционные системы, Таненбаум, Э., 2012
Рекомендуемая дополнительная литература
- Corbet, J., Rubini, A., & Kroah-Hartman, G. (2005). Linux Device Drivers: Vol. 3rd ed. O’Reilly Media.
- Research and Markets. (3 C.E. 2011). Research and Markets: Operating Systems In Depth: Design and Programming. Business Wire (English).
- Siever, E. (2005). Linux in a Nutshell: Vol. 5th ed. O’Reilly Media.