Бакалавриат
2021/2022![Цель освоения дисциплины](/f/src/global/i/edu/objectives.svg)
![Планируемые результаты обучения](/f/src/global/i/edu/results.svg)
![Содержание учебной дисциплины](/f/src/global/i/edu/sections.svg)
![Элементы контроля](/f/src/global/i/edu/controls.svg)
![Список литературы](/f/src/global/i/edu/library.svg)
Разработка операционных систем
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Лучший по критерию «Новизна полученных знаний»
Статус:
Курс по выбору (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Где читается:
Факультет компьютерных наук
Когда читается:
4-й курс, 1-3 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Хорошилов Алексей Владимирович
Язык:
русский
Кредиты:
10
Контактные часы:
60
Программа дисциплины
Аннотация
В курсе рассматриваются ключевые принципы проектирования ядра операционных систем с акцентом на их освоение на практике. В рамках курса каждым студентом выполняется постепенная разработка маленькой операционной системы на языке Си с небольшими количеством вставок на ассемблере x86, которая запускается на эмуляторе ЭВМ Qemu. Каркас операционной системы постепенно выдается слушателям, наполнение каркаса осуществляется совместно в ходе занятий и в рамках самостоятельной работы.
Цель освоения дисциплины
- Знакомство на практике с основными принципами конструирования ядра операционной системы и сопутствующих понятий, таких как планировщик, виртуальная память, прерывания, механизмы синхронизации, системные вызовы, файловые системы и т.д.
Планируемые результаты обучения
- Знание механизмов аппаратной поддержки работы ядра
- Знание навыков программирования на языке Ассемблер
- Знание навыков проектирования и программирования компонентов ядра операционной системы и отладки программ в привилегированном режиме работы процессора
- Знание основных принципов внутреннего устройства ядра операционной системы
- Знание ПО начальной инициализации платформы и периферийных устройств, интерфейсов базового программного обеспечения (BIOS) на основе современных спецификаций ACPI, SMBIOS, UEFI и пр.
Содержание учебной дисциплины
- Введение.
- Устройство ядра JOS.
- Описатели процессов в JOS.
- Прерывания в x86.
- Обработка вложенных прерываний в x86.
- Управление распределением физических страниц.
- Переключение между режимами работы процессора.
- Управление процессами.
- Примитивная файловая система.
Элементы контроля
- Лабораторные работыВыполнение лабораторных работ Олаб, за которые можно получить максимум 33 балла
- Домашняя работаЗа выполнение домашней работы можно получить максимум 42 балла.
- ЭкзаменЗа экзамен можно получить максимум 25 баллов.
Список литературы
Рекомендуемая основная литература
- Архитектура компьютера, Таненбаум, Э., 2014
- Операционная система UNIX, учебное пособие, 2-е изд., 635 с., Робачевский, А., Немнюгин, С., Стесик, О., 2014
- Современные операционные системы, Таненбаум, Э., 2012
- Таненбаум Эндрю С. Операционные системы. Разработка и реализация (+СD). Классика CS. 3-е изд. / С. Альберт. - Санкт-Петербург : Питер, 2007. - 704 с. - ISBN 978-5-469-01403-4. - URL: https://ibooks.ru/bookshelf/339939/reading (дата обращения: 12.10.2020). - Текст: электронный.
Рекомендуемая дополнительная литература
- 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.