Конфигурирование программного обеспечения вычислительных систем, Командная строка, менеджеры пакетов, системы управления версиями, Советов П.Н., 2025.
В книге рассматриваются практические задачи, программное решение которых демонстрировалось на лекциях в РТУ МИРЗА в 2024-2025 учебном году, а именно: реализация модели конвейера командной оболочки Linux на языке Python; реализация конвейера на разных языках программирования для задач обработки данных: разработка эмулятора командной оболочки Linux с виртуальной файловой системой; разработка средства построения графов зависимостей пакетов Debian; разработка средства для автоматического разрешения зависимостей пакетов на основе SMT-решателя: реализация алгоритма cliff на основе модифицированного расстояния Левенштейна; реализация модели системы контроля версий git и разбор объектов git-репозитория.
Учебно-методическое пособие предназначено для преподавателей, для студентов бакалавриата Института информационных технологий, изучающих дисциплину «Конфигурационное управление», для студентов магистратуры Института информационных технологий, изучающих дисциплину «Документирование и управление версиями программного обеспечения», для аспирантов. обучающихся по направлениям подготовки технических наук, а также для практикующих программистов, стремящихся углубить свои знания командной оболочки Linux, узнать о том. как работают менеджеры пакетов и система контроля версий git изнутри.
Учебное пособие издается в авторской редакции.

Сопрограммная модель конвейера.
В предыдущей реализации модели все функции, которые могут использоваться вместе с конвейером |, должны быть реализованы по приведенному выше шаблону - эти функции обязательно возвращают новый экземпляр класса Pipe, в который передана ссылка на вложенную функцию, выполняющую вычисления.
Кроме того, в Linux выполнение объединенных при помощи конвейера процессов является сопрограммным - при получении данных из stdout первого процесса через stdin второй процесс сразу же начинает их обрабатывать, а в нашей реализации конвейера на Python списки строк обрабатываются функциями сразу целиком, функции выполняются не сопрограммно, а последовательно.
Первое замечание легко исправить, реализовав декоратор [7], позволяющий «превращать» обычные Python-функции в экземпляры класса Pipe, совместимые с оператором |. А для того, чтобы реализовать сопрограммную обработку строк, достаточно работу со списками заменить на работу с генераторами [8] - в этом случае каждая функция, являющаяся частью конвейера, не будет дожидаться обработки списка строк целиком, обработка элементов последовательности будет проводиться по мере получения новой строки от предыдущей функции.
ОГЛАВЛЕНИЕ.
Введение.
1. Командная строка.
1.1. Модель конвейера.
1.1.1. Простая модель конвейера.
1.1.2. Сопрограммная модель конвейера.
1.1.3. Упражнения.
1.2. Конвейер на разных языках программирования.
1.2.1. Поиск по подстроке на языке Python.
1.2.2. Поиск по подстроке на языке C.
1.2.3. Вывод статистики на языке Python.
1.3. Однострочники для анализа данных.
1.3.1. Разбор JSON для получения статистики из GitHub.
1.3.2. Разбор XLSX для поиска бассейнов.
1.3.3. Разбор HTML для получения индекса Хирша.
1.3.4. Упражнения.
1.4. Эмулятор командной оболочки Linux.
1.4.1. Простые команды.
1.4.2. Виртуальная файловая система.
1.4.3. Упражнения.
2. Менеджеры пакетов.
2.1. Граф зависимостей пакетов.
2.1.1. Загрузка списка пакетов Debian.
2.1.2. Разбор формата Packages.gz.
2.1.3. Визуализация графа в редакторе yEd.
2.1.4. Упражнения.
2.2. Задача разрешения зависимостей пакетов.
2.2.1. SAT- и SMT-решатели.
2.2.2. Пример описания задачи для SMT-решателя.
2.2.3. Разрешение зависимостей с помощью SMT-решателя.
2.2.4. Упражнения.
3. Системы управления версиями.
3.1. Алгоритм diff.
3.1.1. Команда git diff.
3.1.2. Расстояние Левенштейна.
3.1.3. diff на основе расстояния Левенштейна.
3.1.4. Упражнения.
3.2. Модель git.
3.2.1. Наивное управление версиями.
3.2.2. Управление версиями в git.
3.2.3. Модель git на Python.
3.2.4. Упражнения.
3.3. Разбор объектов git-репозитория.
3.3.1. Служебная папка.git.
3.3.2. Утилита cat-file.
3.3.3. Реализация cat-file на Python.
3.3.4. Упражнения.
4. Задачи на зачёт.
4.1. Работа с git из командной строки.
4.1.1. Разбор задачи.
4.1.2. Упражнения.
4.2. Разрешение зависимостей пакета.
4.2.1. Разбор задачи.
4.2.2. Упражнения.
Список литературы.
Купить - rtf .
Купить .
Теги: учебник по программированию :: программирование :: Советов








