Бакалавриат
2021/2022
Научно-исследовательский семинар "Дистрибьюция программного обеспечения в Linux"
Лучший по критерию «Новизна полученных знаний»
Статус:
Курс по выбору (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 1-3 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для всех кампусов НИУ ВШЭ
Преподаватели:
Силаков Денис Владимирович
Язык:
русский
Кредиты:
3
Контактные часы:
44
Программа дисциплины
Аннотация
Дистрибьюция программного обеспечения в Linux является нетривиальной задачей как ввиду многообразия вариаций ОС Linux и используемых в них средств управления ПО, так и ввиду большого количества средств сборки приложений из исходного кода. Исторически, пер-выми универсальными способами распространения ПО в Linux являются пакеты в форматах RPM и Deb, активно используемые и сегодня. Принципиальные ограничения эти подходов обусловлены их ориентация на разработчиков конкретных дистрибутивов Linux, а не стороннего ПО — в частности, невозможно подготовить пакет RPM или Deb, подходящий для всех вариантов Linux, поддерживающих соответствующий формат пакетов. Это ограничивает возможности распротранени ПО, подготовленного сторонними программистами, а не разработчиками дистрибутивов. В качестве альтернативы, в последнее десятилетие был предложен ряд подходов, не привязанных к каким-то вариантам Linux. Наиболее распространенным на данный момент является применение контейнеров Docker, основанных использовании лекговесной виртуализации для изоляции приложений друг от друга и от основной системы.
Цель освоения дисциплины
- Целью научно-исследовательского семинара “Дистрибьюция программного обеспечения в Linux” является формирование у студентов профессиональных компетенций, связанных с общей методологией научного исследования (сбор, анализ и синтез информации), понимания студентами базовых принципов построения и развертывания сложных программных комплексов в Linux, необходимых для практического использования на последующих этапах обучения и в профессиональной сфере деятельности будущего специалиста, реализации проектов (определение круга задач в рамках поставленной цели и выбор оптимальных способов решения исходя из действующих правовых форм, ресурсов и ограничений).
Планируемые результаты обучения
- Знать основные недостатки Docker с точки зрения безопасности и уметь их нивелировать
- Иметь представление о многообразии вариантов Linux и их основных отличиях
- Иметь представления об аналогах Docker, их преимуществах и недостатках
- Понимать основные задачи и проблемы, возникающие при дистрибьюции ПО в Linux
- Уметь пользоваться инструментальными средствами RPM и/или Deb для сборки и установки пакетов
- Уметь распознавать по исходному коду – какие инструменты нужны для его сборки
- Уметь собирать контейнеры Docker
- Уметь создавать проекты и собирать пакеты в среде сборки ABF (Automated Build Farm)
- Уметь составлять инструкции по сборке приложений в форме spec-файлов для RPM
- Уметь управлять множеством взаимосвязанных контейнеров Docker
Содержание учебной дисциплины
- Традиционные средства управления ПО в Linux (RPM, Dpkg и аналоги) и соответствующие форматы пакетов.
- Автоматизированные системы сборки и контроля качества пакетов
- Основные средства сборки ПО из исходного кода
- Инструментальные средства подготовки контейнеров Docker и аналогов
- Вопросы безопасности Docker и аналогов
Элементы контроля
- Экзамен (Э)Экзамен письменный, без прокторинга. Технические требования: web-камера, микрофон, наушники / колонки
- Домашняя работа 1 (ДР1)
- Домашняя работа 2 (ДР2)
- Домашняя работа 3 (ДР3)
- Контроль посещаемости (КП)
Промежуточная аттестация
- 2021/2022 учебный год 3 модуль0.1 * Домашняя работа 2 (ДР2) + 0.1 * Домашняя работа 3 (ДР3) + 0.1 * Домашняя работа 1 (ДР1) + 0.1 * Контроль посещаемости (КП) + 0.6 * Экзамен (Э)