Подготовка курса Операционные системы
Материалы по курсу Операционные системы.
Содержание
1 Информация по предмету
- Наименование дисциплины: Операционные системы
- Объем курса:
- 4 кредита,
- общая трудоёмкость: 144 часа
- контактные часы: 54 часа
- лекции: 18 часов
- лабораторные работы: 36 часов
- самостоятельная работа: 63 часа
- контроль: 27 часов
- Курс: 1
- Семестр: 2
- Модуль: 4
- Продолжительность курса: 9 недель
- Лекции: 2 часа
- Лабораторные работы: 4 часа
2 История курса
3 Идеология курса
- Идеология курса постепенно дрейфовала от желания изучения структуры операционной системы к желанию просто научить студентов пользоваться операционной системой Linux.
- Преподавания Linux как полной альтернативы Windows представляется мало перспективным. Не видя большой разницы, студенты не понимают, зачем им изучать ещё одну операционную систему.
- Предполагается рассматривать Linux как основную систему для научной работы.
- Это последний курс общего назначения, который посещают все группы. Поэтому следует на курсе дать знания, которые можно будет требовать со студентов на последующих курсах.
4 Методические материалы
4.1 БРС
Активность | Количество | Баллы за единицу | Общие баллы |
---|---|---|---|
А1.1 | 14 | 2 | 28 |
А1.2 | 14 | 1 | 14 |
А2 | 1 | 12 | 12 |
А3 | 8 | 1 | 8 |
А4.1 | 6 | 2 | 12 |
A4.2 | 6 | 1 | 6 |
A5 | 1 | 20 | 20 |
100 |
Активности
- А1.1: Лабораторные работы. Выполнение.
- А1.2: Лабораторные работы. Самопроверка и взаимопроверка.
- А2: Доклады по темам.
- А3: Тесты к лекциям.
- А4.1: Индивидуальный проект. Выполнение.
- А4.2: Индивидуальный проект. Самопроверка и взаимопроверка.
- A5. Итоговый контроль знаний (тест).
Разделы
- Р1: Общие принципы ОС UNIX
- Р2: Начала администрирования ОС UNIX
Темы
- Введение в операционную систему UNIX
- Архитектура UNIX. Файлы и устройства
- Архитектура UNIX. Процессы
- Терминал и командная строка
- Введение в безопасность UNIX
- Сеть в UNIX
- Управление службами
- Управление программным обеспечением
4.2 Знания, умения, навыки
- Необходимо дать то, что будет необходимо на следующих курсах.
- Поскольку этот курс слушают все группы, данные знания можно спокойно требовать при изучении последующих предметов.
4.2.1 Навыки работы с компьютером
Основные навыки
- Протоколирование работы
- Запись скринкастов
- Коллективная работа
- git
- Подготовка отчётов
- markdown
- Подготовка презентаций
- markdown
- Обслуживание своего компьютера (домашнего каталога)
- Работа с mc
- Протоколирование работы
Системы контроля версий
- В качестве системы контроля используется git (см. Система контроля версий git).
- Студентам даётся конкретный сценарий работы с git на основе git-flow и общепринятых коммитов (см. Практический сценарий использования git).
- Результат.
- Умения.
- Студенты получают общее представление о работе с системами контроля версий.
- Навыки.
- Все лабораторные работы необходимо выложить на хостинг git (обычно github).
- При работе следует использовать общепринятые коммиты и семантическое версионирование.
- Умения.
Протоколирование выполнения лабораторной работы
- Выполнение лабораторной работы записывается в виде скринкаста (см. Видеозапись самостоятельной работы).
- Результат.
- Умения.
- Студенты получают общее представление о записи скринкастов.
- Навыки.
- Отрабатываются навыки записи скринкастов с помощью конкретного программного обеспечения (OBS Studio).
- Запись делается к каждой лабораторной работе.
- Умения.
Markdown
- Для оформления отчётов используется Markdown.
- Студентам предлагается шаблон отчёта.
- Студентам предлагается шаблон презентации.
- Результат.
- Умения.
- Студенты получают общее представление о работе с Markdown.
- Студенты получают общее представление по работе с библиографией.
- Студенты получают представление по работе с формулами.
- Навыки.
- Отчёт по каждой лабораторной работе выполняется в Markdown.
- Презентация по итогу выполнения каждой лабораторной работы делается в Markdown.
- Умения.
4.2.2 Умения работы с компьютером
Установка операционной системы
- Будем устанавливать операционную систему Linux в виртуальной машине.
- Необходимо для ознакомления с установкой операционной системы.
- В дисплейных классах студенты работают на установленном Linux.
- Дома они могут установить Linux:
- на виртуальную машину;
- на флешку;
- на железо.
- Стоит только вопрос с выбором конкретного дистрибутива (см. Выбор дистрибутива Linux).
- Результат.
- Умения.
- Студенты только знакомятся с установкой операционной системы Linux.
- Устанавливается только один конкретный дистрибутив, нет никаких обобщений (нет знания).
- Установка производится один раз (не вырабатывается навык).
- Умения.
4.2.3 Знания работы с компьютером
4.2.4 Уровень владения
Наименование | Навык | Умение | Знание |
---|---|---|---|
git | + | ||
markdown | + | ||
emacs | + | ||
LaTeX | + |
5 Активности
5.1 Лекции
5.2 Лабораторные работы
5.2.1 Установка ОС Linux
- Лабораторная работа Установка ОС Linux
- Предлагается установка Fedora Linux
- Установка необходимого программного обеспечения
- Установка на внешний SSD-диск
5.2.2 Первоначальна настройка git
- Лабораторная работа Первоначальна настройка git
- Учётная запись на github.
- Ключ ssh (см. Ключи ssh).
- Ключи pgp (см. Верификация коммитов git с помощью GPG).
- Настройка рабочего каталога пользователя (см. Рабочее пространство для лабораторной работы).
5.2.3 Настройка рабочей среды
- Лабораторная работа Настройка рабочей среды
- Установка и настройка тайлового менеджера окон: i3wm (см. Window manager i3) или sway (см. Переход на Sway).
5.2.4 Продвинутое использование git
- Лабораторная работа Продвинутое использование git
- Использование git flow
- Семантическое версионирование
- Соглашение о коммитах
- Релизы на github
- Утилиты для автоматизации работы с git
5.2.5 Emacs
- Установка emacs
- Настройка emacs
5.2.6 Подготовка отчётов
- Markdown
- Установка Pandoc
- Установка TexLive
- Подготовка отчёта
- Набор в Emacs
- Математические формулы
5.2.7 Подготовка презентаций
- Принципы создания презентации
- Форматы презентаций
- Подготовка презентации в Markdown
- Экспорт в
pdf
- Экспорт в
html
5.2.8 Работа с базой библиографии
- Создание базы библиографии
- Добавление в базу новых публикаций
5.2.9 Добавление библиографии в текст
- Зависимая база библиографии
- Добавление ссылок в текст
- Форматы ссылок в тексте
- Форматы библиографических записей
5.2.10 Обслуживание домашнего каталога
- Работа с afs
- Проверка квоты
- Очистка каталога
- Синхронизация конфигурационных файлов между хостами
- Синхронизация рабочих файлов между хостами
5.2.11 Регулярные выражения
5.2.12 Работа с паролями
- Установка и настройка
pass
. - Работа из броузера.
- Использование
pass
в других приложениях.
5.3 Доклады
5.3.1 По темам лекций
- Доклады, сгруппированные по темам лекций.
Введение в операционную систему UNIX
- История зарубежных операционных систем.
- История отечественных операционных систем.
- История и диалекты операционной системы UNIX.
- Поддержка мультипрограммирования и разделения времени в операционных системах.
- Обзор и сравнительный анализ операционных систем Plan9 и Inferno.
- Обзор операционной системы FreeBSD.
- Обзор дистрибутива Linux Gentoo.
- Сравнительный анализ линейки операционных систем семейства Windows.
- Сравнительный анализ дистрибутивов Linux: Ubuntu, Fedora.
- Обзор фреймовых оконных менеджеров для linux (ion, awesome и т.д.).
- Особенности построения серверных операционных систем.
- Основные производители серверных операционных систем.
- Основные производители клиентских операционных систем.
- Кластерные операционные системы.
- Обзор коммерческих Unix-операционных систем различных производителей.
- Обзор свободно распространяемых Unix-операционных систем различных производителей.
- Обзор Linux-операционных систем различных производителей.
- Операционные системы реального времени.
- Обзор стандартов, регламентирующих разработку операционных систем.
- Операционные системы многопроцессорных компьютеров.
- Виртуальные машины и их операционные системы.
- Особенности построения сетевых операционных систем.
Архитектура UNIX. Файлы и устройства
- Обзор концепции файла и типов файлов в файловых системах.
- Обзор расширений имён файлов.
- Обзор методов доступа к файлам.
- Обзор операций над директориями и методов реализации директорий в файловых системах.
- Обзор концепции монтирования и методов монтирования файловых систем в операционных системах.
- Обзор виртуальных файловых систем.
- Файловая система FAT.
- Файловые системы с индексируемым размещением файлов.
- Обзор системы NFS.
- Обзор видов внешних устройств в современных компьютерах.
- Обзор видов прерываний и методов их обработки в современных компьютерах.
- Метод DMA и DMA-контроллеры.
- Обзор архитектур реализаций ввода-вывода в операционных системах.
- Обзор сетевых устройств в компьютерных системах.
- Библиотеки sys и os языка python для работы с файловой системой (манипуляция с файлами и директориям).
Архитектура UNIX. Процессы
- Понятие процесса, виды процессов и его состояния в операционных системах.
- Реализация системных структур ОС для управления процессами (блок управления процессом, системные очереди) и операций над ними.
- Обзор подходов к созданию дочерних процессов и разделению ресурсов дочерним и родительским процессами в операционных системах.
- Обзор алгоритмов планирования в Linux.
- Обзор алгоритмов планирования в Windows.
- Планирование и диспетчеризация процессоров в системе Solaris.
- Планирование и диспетчеризация процессоров в системе Mac OS.
- История синхронизации процессов.
- Сравнение возможностей достоинств и недостатков различных средств синхронизации процессов.
- Концепция семафора и ее использование для синхронизации процесов.
- Концепция монитора и ее использование для синхронизации процесов.
- Концепция критической области и ее использование для синхронизации процесов.
- Обзор методов откачки и подкачки в операционных системах.
- Обзор стратегий распределения основной памяти.
- Обзор архитектур таблиц страниц.
- Обзор методов сегментно-страничной организации памяти в компьютерных системах.
- Методы управления памятью в операционных системах.
- Методы адресации в компьютерных системах.
- Этапы обработки программы от исходного кода к исполняемому в операционных системах.
- Физическая и логическая адресация в компьютерных системах.
- Организация оверлейной структуры программ.
- Обзор методов реализации виртуальной памяти в операционных системах.
- Страничная организация по требованию.
- Сегментная организация по требованию.
- Сравнительный анализ алгоритмов замещения страниц.
- Межпроцессное взаимодействие с использованием Unix сокетов и сетевых сокетов.
- Межпроцессное взаимодействие: очереди сообщений, разделяемая память и семафоры.
- Межпроцессное взаимодействия на базе протокола 9P2000. Реализация с помощью библиотек p9p.
- Межпроцессные взаимодействия на базе протокола plumbing. Принципы работы.
- Межпроцессное взаимодействия на базе протокола 9P2000. Реализация с помощью POSIX совместимых библиотек.
Терминал и командная строка
- Настройка csh. Специфика по сравнению с bash.
- Настройка zsh. Специфика по сравнению с bash.
- Настройка tcsh. Специфика по сравнению с bash.
- Сравнение систем управления версиями git, mercurial и bazaar.
- Применение awk для разбора текстовых файлов с данными.
- Утилиты-мультиплексоры screen и tmux.
- Использование rsync для резервного копирования данных.
- Планировщик задач cron и ему подобные подобные. Настройка и примеры заданий.
Введение в безопасность UNIX
- Методы организации безопасности в операционных системах.
- Современные методы криптографии.
- Trustworthy Computing Initiative.
- Схема аутентификации пользователей с помощью логинов и паролей.
- Методы защиты от атаки типа переполнение буфера.
- Проверка неизменности системных файлов и директорий.
- Методы криптования на основе закрытого ключа.
- Методы криптования на основе открытого ключа.
- Обзор методов защиты файлов в операционных системах.
Сеть в UNIX
- Обзор архитектур распределенных систем и локальных сетей.
- Обзор сетевых топологий.
- Архитектура и организация локальных сетей.
- Архитектура и организация глобальных сетей.
- Архитектура, параметры и организация беспроводных сетей.
- Обзор стратегий маршрутизации и маршрутизаторов.
- Архитектура и функционирование DNS.
- Методы сетевых соединений.
- Методы разрешения коллизий в сетях.
- Сетевые возможности Linux.
- Настройка сервера в Linux.
- Сравнительный анализ сетевых возможностей Windows и Linux.
- Методика работы пользователя в сети Linux.
Управление службами
- Система инициализации SystemV.
- Система инициализации SystemD.
- Система инициализации Upstart.
- Система инициализации Openrc.
- Система инициализации Runinit.
- Система инициализации Launchd.
- Система инициализации типа BSD.
Управление программным обеспечением
- Система управления пакетами rpm. Управление зависимостями: yum, dnf.
- Система управления пакетами dpkg. Управление зависимостями: aptitude, apt.
- Система управления пакетами packman.
- Система управления пакетами portage.
- Система управления пакетами NuGet.
- Система управления пакетами Chocolatey.
- Система управления пакетами Scoop.
- Система управления пакетами Homebrew.
- Система управления пакетами Snap.
- Система управления пакетами Nix.
5.3.2 По темам лабораторных работ
- Доклады, сгруппированные по темам лабораторных работ.
5.4 Проекты
5.4.1 Индивидуальный проект Персональный сайт научного работника
5.5 Внешние курсы
5.5.1 Общая информация
- В список показателей внесено количество студентов, прошедших внешние курсы.
- Внешний курс должен либо подменять локальный, либо давать определённые балы на локальном курсе.
5.5.2 Рекомендованные платформы для внешних курсов
- Список платформ, на которых можно рекомендовать для записи студентов на внешние курсы:
- Открытое образование: https://openedu.ru/.
- Stepik: https://stepik.org/.
- Универсариум: https://universarium.org/.
- Лекториум: https://www.lektorium.tv/mooc.
5.5.3 Курс
- Введение в Linux: https://stepik.org/course/73
5.5.4 Необходимо для прохождения
- Пройти курс.
- Получить сертификат.
- Записать видео (с записью камерой лица) по прохождению контрольных мероприятий (тесты и задания) по каждому разделу.
- Написать отчёт по прохождению контрольных мероприятий (тесты и задания) по каждому разделу.
5.5.5 Требования к оформлению отчёта по прохождению внешнего курса
- Отчёт должен соответсвовать следующим требованиям:
- должен быть оформлен в Markdown с использованием шаблона для оформления лабораторных работ (https://github.com/yamadharma/academic-laboratory-report-template);
- должен содержать описание всех заданий, выполненных при прохождении внешнего курса.
- Для каждого тестового вопроса в отчет должны быть включены:
- скриншоты с формулировкой вопроса и подтверждающие прохождение теста;
- пояснения по выбору ответа на вопрос теста.
- Для каждого интерактивного задания в отчет должны быть включены:
- скриншоты с формулировкой задания и подтверждающие его прохождение;
- пояснения по выполнению интерактивного задания.
- Отчёт считается неполным, если в нём отсутствуют какие-либо элементы:
- скриншоты с формулировкой;
- скриншоты, подтверждающие прохождение;
- пояснения по выполнению активности.
5.5.6 Пакет для оценки
- Приложенный файл сертификата.
- Ссылка на сертификат на внешнем сайте.
- Вставленное в форму ответа видео по каждому разделу (3 видео, каждое на 2-х платформах).
- Файлы отчётов прохождения внешнего курса по каждому этапу (3 отчёта) (в формате
pdf
). - Ссылка на проект на собственном сайте научно-инженерного работника (см. Учебный проект Сайт научника), оформленная в виде проекта с подробным описанием прохождения.
5.5.7 Критерии оценки
- Максимальная оценка за внешний курс — 24 балла.
Разделы | 0 | 2 | 4 | 8 |
---|---|---|---|---|
Раздел 1. Введение | Нет сертификата или нет (видео + отчёт) | Сертификат + (видео или отчёт) | Сертификат + видео + неполный отчёт | Сертификат + видео + отчёт + размещено на сайте |
Раздел 2. Работа на сервере | Нет сертификата или нет (видео + отчёт) | Сертификат + (видео или отчёт) | Сертификат + видео + неполный отчёт | Сертификат + видео + отчёт + размещено на сайте |
Раздел 3. Продвинутые темы | Нет сертификата или нет (видео + отчёт) | Сертификат + (видео или отчёт) | Сертификат + видео + неполный отчёт | Сертификат + видео + отчёт + размещено на сайте |
6 Пересдача
6.1 Порядок сдачи
- Материалы для переаттестации выкладываются на ТУИС.
- На переаттестации может потребоваться продемонстрировать, как были выполнены все лабораторные работы, дать пояснения, ответить на вопросы.
6.1.1 Лабораторные работы
- На переаттестацию представляется ссылка на плейлисты на https://rutube.ru/ и https://plvideo.ru, содержащие:
- скринкасты выполнения лабораторных работ, с фиксацией лица видеокамерой и записью пояснений голосом;
- скринкасты презентаций защит выполненных лабораторных работ;
- скринкасты подготовки отчёта и презентации для защиты.
- На переаттестацию представляется ссылка на репозиторий на https://github.com, содержащий:
- отчёты о выполнении работ во всех необходимых форматах;
- презентации защит выполненных лабораторных работ;
- код и промежуточные вычисления, если это необходимо;
- результирующие файлы отчёта и презентации к каждой лабораторной работе должны быть выложены в виде релизов git.
6.1.2 Индивидуальный проект
- На переаттестацию представляется ссылка на плейлисты на https://rutube.ru/ и https://plvideo.ru, содержащие:
- скринкасты выполнения этапов индивидуального проекта, с фиксацией лица видеокамерой и записью пояснений голосом;
- скринкасты презентаций защит выполненных этапов индивидуального проекта.
- На переаттестацию представляются ссылка на репозиторий на https://github.com, содержащий:
- выполненный индивидуального проект;
- презентации по защите этапов индивидуального проекта;
- результирующие файлы отчёта и презентации к каждой лабораторной работе должны быть выложены в виде релизов git.
6.2 Требования
- На пересдаче следует продемонстрировать выполнение заданий и владение компетенциями.
6.2.1 Установленное программное обеспечение
- Уставленный дистрибутив линукс с соответствующим менеджером окон (sway).
6.2.2 Навыки работы
- Работа без использования манипулятора мышь.
- Умение работать с репозиторием git.
6.2.3 Индивидуальный проект
- Компиляция и публикация сайта для индивидуального проекта.
- Добавление материалов в личный сайт (пост, проект).
6.3 Вопросы к пересдаче
- Горячие клавиши для работы в мозаичном оконном менеджере Sway.
- Основные операции в Sway:
- Перемещение окон.
- Работа в многооконной конфигурации.
- Создание скриншотов.
- Основные операции с оболочке mc (Midnight Commander).
- Основные команды редактора vi (vim).
- Основные операции в редакторе Emacs.
- Алгоритм настройки git с поддержкой подписи коммитов.
- Настройка репозитория git для работы семантическими версиями. Рабочий процесс git flow.