Программа лекций и презентации по курсу «ОС UNIX»
- Лекция 1. Введение, история и разновидности (презентация)
- История развития UNIX.
- Сильные и слабые стороны UNIX.
- Разновидности UNIX и дистрибутивы GNU/Linux.
- Лекция 2. Пакеты, процессы и файловая система (презентация)
- Понятие пакета, пакетные менеджеры, типы зависимостей между пакетами.
- Обработка зависимостей между пакетами и её вычислительная сложность.
- Процессы, зомби, демоны, группы процессов, сигналы, идентификатор процесса
pid\_t
.
- Управление процессами, функции
fork()
, exec*()
, wait()
; команды ps
, kill
, killall
.
- Структура файловой системы, типы файловых систем, монтирование файловых систем, команда
chroot
.
- Типы файлов и права доступа.
- Лекция 3. Управление сетью и инструменты обеспечения безопасности (презентация)
- Сетевые интерфейсы, таблица маршрутизации и беспроводные подключения.
- Инструменты отладки
nmap
, ping
и traceroute
.
- Установление сетевого подключения.
- Утилиты подсчёта хэш-сумм.
- Утилиты
gpg
и cryptsetup
.
- Лекция 4. Контейнерная виртуализация (презентация)
- Технологии контейнерной виртуализации, плюсы и минусы.
- Docker и его понятия.
- Сервисы в Docker Compose и Docker Stack.
- Инструменты оркестрации.
Лекции, названия которых выделены полужирным шрифтом, выносятся на устный зачёт.
Презентации к практическим работам
- Оболочка и скриптовые инструменты.
- Оформление проектов и инструменты сборки.
Задания для лабораторных работ
Лабораторная работа 1
Требуется написать скрипт, совместимый с POSIX Shell,
который производит сборку некоторого исходного файла.
Таким файлом может быть как программа на языке C/C++,
так и страница TeX.
Скрипт должен:
- Возвращать информативный код ошибки (скажем, если исходный файл вообще невозможно откомпилировать).
- Анализировать текст и находить заготовленный комментарий с именем конечного файла.
Комментарий должен быть некоторым ключевым словом, наиболее логично использовать, скажем, "
Output:
".
- Сборка должна производиться в временном каталоге, который должен быть создан при помощи утилиты mktemp.
- Каталог должен быть удалён при любом исходе работы скрипта, включая обработку сигналов,
которые требует немедленного прекращения работы.
- Рядом с исходным файлом после завершения работы должен появиться конечный файл с именем,
как в распознанном комментарии.
Все попутные файлы компиляции должны быть удалены вместе со временным каталогом
(что очевидно, потому что они не должны покидать пределы временного каталога).