We use cookies in order to improve the quality and usability of the HSE website. More information about the use of cookies is available here, and the regulations on processing personal data can be found here. By continuing to use the site, you hereby confirm that you have been informed of the use of cookies by the HSE website and agree with our rules for processing personal data. You may disable cookies in your browser settings.

  • 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.

Авторы

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