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





Системное программирование
Статус:
Курс обязательный (Информационная безопасность)
Направление:
10.03.01. Информационная безопасность
Когда читается:
3-й курс, 2-4 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Балескин Виталий Андреевич,
Галкин Юрий Алексеевич,
Колтаков Дмитрий Юрьевич,
Мещеряков Ярослав Евгеньевич,
Панасюк Евгений Владимирович,
Смирнов Данил Вадимович
Язык:
русский
Кредиты:
8
Программа дисциплины
Аннотация
Архитектура компьютера и системное программирование является областью знаний о цифровых электронных блоках компьютера (включая схемы с комбинационной и последовательной логикой), а также об архитектуре компьютера и разработке системного программного обеспечения (например, загрузчики, трансляторы программ, операционные системы, средства контейнерной оркестрации и т.д). В данной дисциплине рассматриваются таксономии программ и языков программирования, а также устройство основных компонентов вычислительных систем (аппаратные и программные) различных архитектур (архитектуры фон Неймана и Гарвардская). В ходе изучения дисциплины студенты познакомятся с машинным представлением программ (ассемблер) и данных и аспектами трансляции программ.
Особое место в дисциплине занимает внутреннее устройство операционных систем: объекты и файловые системы, представление памяти, процессы и потоки, прерывания и подсистема ввода-вывода, средства межпроцессного взаимодействия и синхронизации, а также механизмы конфигурации. Также в курсе представлены основы архитектуры контейнерной оркестрации: подход «Infrastructure-as-a-Code» (IaC), интерфейсы и среды выполнения контейнеров, изоляция, планирование и балансировка нагрузки между приложениями.
При обучении предусмотрен контроль знаний студентов в виде практических работ и учета активности студентов на семинарах.
Цель освоения дисциплины
- Ознакомление с внутренним устройством основных компонентов вычислительных систем
- Ознакомление с машинным представлением программ и аспектами трансляции программ
- Ознакомление с внутренним устройством операционных систем
- Ознакомление с принципами разработки многопоточных и асинхронных программ с множественным доступом к разделяемым ресурсам и сетевым взаимодействием
- Ознакомление с основами архитектуры систем контейнерной оркестрации
- Формирование навыков разработки системного программного обеспечения
- Формирования навыков обратной разработки и отладки программ на уровне машинного представления
Планируемые результаты обучения
- Знает классификацию ПО (системное и прикладное)
- Знает классификацию языков программирования (компилируемые, интерпретируемые)
- Знает основы трансляции программ и основные типы трансляторов (компиляторы, интерпретаторы, виртуальные машины)
- Знает устройство основных компонентов вычислительных систем различных архитектур (фон Неймана и Гарвардской)
- Знает основы машинного представления программ (ассемблер) и данных в памяти компьютера
- Знает механизмы вызова подпрограмм и передачи аргументов в функции (соглашения о вызовах)
- Знает особенности сегментного и страничного устройства памяти
- Знает назначение и таксономию операционных систем
- Знает основы архитектуры операционных систем реального времени
- Знает основы архитектуры операционных систем с разделением времени
- Знает устройство памяти, процессов и потоков ОС
- Знает устройство объектов ОС и виртуальной файловой системы
- Знает основы диспетчеризации прерываний, устройство подсистемы ввода-вывода и основных файловых систем
- Знает механизмы конфигурации ОС
- Знает основы виртуализации и контейнеризации
- Знает основы архитектуры контейнерных сред
- Знает основы архитектуры систем контейнерной оркестрации
- Знает механизмы планирования систем контейнерной оркестрации
- Знает механизмы обеспечения безопасности систем контейнерной оркестрации
- Знает лучшие практики по внедрению и эксплуатации систем контейнерной оркестрации
- Умеет развертывать и настраивать операционные системы и отдельные подсистемы
- Умеет разрабатывать системные программы на языках Ассемблер/C/Rust с использованием низкоуровневых API операционных систем или аппаратных модулей
- Умеет проводить обратную разработку и отладку программ на уровне машинного представления (ассемблер)
- Умеет проводить анализ слепков оперативной памяти различных операционных систем
- Умеет развертывать и настраивать системы контейнерной оркестрации
- Знает принципы разработки многопоточных и асинхронных программ с множественным доступом к разделяемым ресурсам и сетевым взаимодействием
- Умеет разрабатывать многопоточные и асинхронные программы на языках C/Rust с множественным доступом к разделяемым ресурсам и сетевым взаимодействием (мультиплексирование ввода-вывода)
Содержание учебной дисциплины
- Введение в дисциплину "Системное программирование"
- Основные этапы создания программы
- Устройство процессора и программирование на ассемблере
- Механизмы передачи данных между функциями
- Устройство памяти компьютера
- Введение в операционные системы (ОС). Операционные системы реального времени (ОСРВ)
- Операционные системы реального времени (ОСРВ)
- Операционные системы с разделением времени
- Устройство памяти, процессов и потоков ОС
- Системные механизмы и основы безопасности ОС
- Диспетчеризация прерываний, подсистема ввода-вывода и файловые системы ОС
- Подходы к синхронизации, межпроцессное взаимодействие и сетевая подсистема ОС
- Основы виртуализации и контейнеризации
- Архитектура контейнерных сред
- Архитектура систем контейнерной оркестрации
- Механизмы планирования систем контейнерной оркестрации
- Механизмы обеспечения безопасности систем контейнерной оркестрации
- Дополнительные главы архитектуры систем контейнерной оркестрации
Элементы контроля
- Тест 1
- Практическая работа 1
- Практическая работа 2
- Практическая работа 3
- Практическая работа 4 (3.1)
- Практическая работа 5 (3.2)
- Практическая работа 6 (3.3)
- Практическая работа 7 (3.4)
- Практическая работа 8 (4.1)
- Практическая работа 9 (4.2)
- Практическая работа 10 (4.3)
- Тест 2
Промежуточная аттестация
- 2024/2025 3rd module0.17 * Практическая работа 2 + 0.07 * Практическая работа 6 (3.3) + 0.15 * Практическая работа 5 (3.2) + 0.06 * Тест 1 + 0.15 * Практическая работа 4 (3.1) + 0.17 * Практическая работа 1 + 0.16 * Практическая работа 3 + 0.07 * Практическая работа 7 (3.4)
- 2024/2025 4th module0.3 * Практическая работа 9 (4.2) + 0.3 * Практическая работа 10 (4.3) + 0.1 * Тест 2 + 0.3 * Практическая работа 8 (4.1)
Список литературы
Рекомендуемая основная литература
- Linux API. Исчерпывающее руководство - 978-5-496-02689-5 - Керриск М. - 2018 - Санкт-Петербург: Питер - https://ibooks.ru/products/356956 - 356956 - iBOOKS
- Аблязов, Р. З. Программирование на ассемблере на платформе x86-64 / Р. З. Аблязов. — Москва : ДМК Пресс, 2011. — 304 с. — ISBN 978-5-94074-676-8. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/1273 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
- Архитектура компьютера, Таненбаум, Э., 2014
- Внутреннее устройство Linux - 978-5-4461-0938-8 - Б. Уорд - 2021 - Санкт-Петербург: Питер - https://ibooks.ru/products/374451 - 374451 - iBOOKS
- Внутреннее устройство Microsoft Windows. 6-е изд. - 978-5-496-00434-3 - Руссинович М., Соломон Д. - 2013 - Санкт-Петербург: Питер - https://ibooks.ru/products/338561 - 338561 - iBOOKS
- Внутреннее устройство Microsoft Windows. 6-е изд. Основные подсистемы ОС - 978-5-496-00791-7 - Руссинович М., Соломон Д. ., Ионеску Алекс - 2014 - Санкт-Петербург: Питер - https://ibooks.ru/products/341181 - 341181 - iBOOKS
- Вскрытие покажет! Практический анализ вредоносного ПО - 978-5-4461-0641-7 - Сикорски М., Хониг Э. - 2018 - Санкт-Петербург: Питер - https://ibooks.ru/products/358154 - 358154 - iBOOKS
- Монаппа, К. А. Анализ вредоносных программ / К. А. Монаппа , перевод с английского Д. А. Беликова. — Москва : ДМК Пресс, 2019. — 452 с. — ISBN 978-5-97060-700-8. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/123709 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
- Работа с ядром Windows. - 978-5-4461-1680-5 - Иосифович Павел - 2021 - Санкт-Петербург: Питер - https://ibooks.ru/products/377032 - 377032 - iBOOKS
- Современные операционные системы, Таненбаум, Э., 2018
- Цифровая схемотехника и архитектура компьютера : пер. с англ., Харрис, Д. М., 2018
- Цифровая схемотехника и архитектура компьютера: RISC-V, Харрис, С. Л., 2022