• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

C++ Development on Linux

2024/2025
Academic Year
RUS
Instruction in Russian
6
ECTS credits
Delivered at:
Department of Informatics
Course type:
Compulsory course
When:
1 year, 1, 2 module

Instructor

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

Аннотация

Основная цель дисциплины - научить разрабатывать низкоуровневое программное обеспечение на языке С++ для платформы Linux. Первая часть курса посвящена ознакомлению с программной архитектурой, интерфейсами взаимодействия с операционной системой, работе с системными библиотеками. Вторая – применению современных практик программирования на C++ для разработки сложных программных систем. Предполагается, что на входе студенты знакомы с техниками современного языка С++.
Цель освоения дисциплины

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

  • Формирование у студентов знаний о структуре программного окружения ОС LINUX, интерфейсе системных вызовов, общей структуре ядра ОС
  • Формирование знания лучших практик применения языка С++ при разработке системного ПО
  • Формирование навыков анализа и разработки системного ПО в ОС Linux
Планируемые результаты обучения

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

  • Знает основные принципы взаимодействия прикладных программ с ядром ОС
  • Знает структуру и основные принципы работы ядра ОС
  • Умеет использовать современные средства языка С++ для разработки системного ПО
  • Умеет использовать средства стандартной библиотеки для разработки системного ПО
  • Владеет инструментами компиляции и сборки системного ПО
  • Владеет современными практиками использования языка С++ для управления ресурсами, организации взаимодействия компонентов, многопоточного программирования
  • Владеет методиками анализа качества архитектуры и реализации системного ПО
Содержание учебной дисциплины

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

  • Среда выполнения программ в ОС LINUX
  • Интерфейсы взаимодействия с файловой системой
  • Управление ресурсами и обработка ошибок
  • Управление процессами и потоками
  • Организация параллельных вычислений
  • Средства межпроцессного взаимодействия
  • Организация взаимодействия между компонентами приложения
  • Средства сетевого взаимодействия
  • Организация взаимодействия с внешними системами
  • Структура ядра ОС
  • Основные принципы разработки модулей ядра
  • Использование функциональной парадигмы программирования
  • Основные элементы метапрограммимрования
  • Перспективы развития
Элементы контроля

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

  • неблокирующий Домашнее задание №1
    Срок выполнения домашнего задания - 8 недель. Форма представления обучающимися домашнего задания - решение задачи, представленное в виде исходного кода.
  • неблокирующий Домашнее задание №2
    Срок выполнения домашнего задания - 8 недель. Форма представления обучающимися домашнего задания - решение задачи, представленное в виде исходного кода.
  • неблокирующий Домашнее задание №3
    Срок выполнения домашнего задания - 8 недель. Форма представления обучающимися домашнего задания - решение задачи, представленное в виде исходного кода.
  • неблокирующий Домашнее задание №4
    Срок выполнения домашнего задания - 8 недель. Форма представления обучающимися домашнего задания - решение задачи, представленное в виде исходного кода.
  • неблокирующий Домашнее задание №5
    Домашнее задание №5 выдается студентам в одном варианте и состоит из 4 задач. Каждой задаче присвоен свой балл. Срок выполнения домашнего задания - 8 недель. Форма представления обучающимися домашнего задания - решения задач, представленные в виде исходного кода.
  • неблокирующий Экзамен
    На экзамене будет дано 2 вопроса из программы курса. Каждый вопрос оценивается из 5 баллов.
Промежуточная аттестация

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

  • 2024/2025 1st module
    «Отлично» (8-10) Решено задач на 20 или более баллов «Хорошо» (6-7) Решено задач на 14-19 баллов «Удовлетворительно» (4-5) Решено задач на 9-13 баллов «Неудовлетворительно» (0-3) Решено задач менее чем на 9 баллов
  • 2024/2025 2nd module
    0.5 * Домашнее задание №5 + 0.5 * Экзамен
Список литературы

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

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

  • UNIX. Профессиональное программирование. 3-е изд. - 978-5-4461-0649-3 - Стивенс У., Раго С. - 2018 - Санкт-Петербург: Питер - https://ibooks.ru/bookshelf/356950 - 356950 - iBOOKS
  • Страуструп, Б. Язык программирования C++ для профессионалов : учебное пособие / Б. Страуструп. — 2-е изд. — Москва : ИНТУИТ, 2016. — 670 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100542 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

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

  • Corbet, J., Rubini, A., & Kroah-Hartman, G. (2005). Linux Device Drivers: Vol. 3rd ed. O’Reilly Media.

Авторы

  • Спицина Кристина Станиславовна
  • Архимандритов Игорь Борисович
  • Юдаева Оксана Юрьевна