Подготовка курса Операционные системы

Материалы по курсу Операционные системы.

Содержание

1 Информация по предмету

  • Наименование дисциплины: Операционные системы
  • Объем курса:
    • 4 кредита,
    • общая трудоёмкость: 144 часа
    • контактные часы: 54 часа
    • лекции: 18 часов
    • лабораторные работы: 36 часов
    • самостоятельная работа: 63 часа
    • контроль: 27 часов
  • Курс: 1
    • Семестр: 2
    • Модуль: 4
  • Продолжительность курса: 9 недель
  • Лекции: 2 часа
  • Лабораторные работы: 4 часа

2 История курса

3 Идеология курса

  • Идеология курса постепенно дрейфовала от желания изучения структуры операционной системы к желанию просто научить студентов пользоваться операционной системой Linux.
  • Преподавания Linux как полной альтернативы Windows представляется мало перспективным. Не видя большой разницы, студенты не понимают, зачем им изучать ещё одну операционную систему.
  • Предполагается рассматривать Linux как основную систему для научной работы.
  • Это последний курс общего назначения, который посещают все группы. Поэтому следует на курсе дать знания, которые можно будет требовать со студентов на последующих курсах.

4 Методические материалы

4.1 БРС

АктивностьКоличествоБаллы за единицуОбщие баллы
А1.114228
А1.214114
А211212
А3818
А4.16212
A4.2616
A512020
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 Навыки работы с компьютером

  1. Основные навыки

    • Протоколирование работы
      • Запись скринкастов
    • Коллективная работа
      • git
    • Подготовка отчётов
      • markdown
    • Подготовка презентаций
      • markdown
    • Обслуживание своего компьютера (домашнего каталога)
    • Работа с mc
  1. Системы контроля версий

    • В качестве системы контроля используется git (см. Система контроля версий git).
    • Студентам даётся конкретный сценарий работы с git на основе git-flow и общепринятых коммитов (см. Практический сценарий использования git).
    • Результат.
      • Умения.
        • Студенты получают общее представление о работе с системами контроля версий.
      • Навыки.
        • Все лабораторные работы необходимо выложить на хостинг git (обычно github).
        • При работе следует использовать общепринятые коммиты и семантическое версионирование.
  1. Протоколирование выполнения лабораторной работы

    • Выполнение лабораторной работы записывается в виде скринкаста (см. Видеозапись самостоятельной работы).
    • Результат.
      • Умения.
        • Студенты получают общее представление о записи скринкастов.
      • Навыки.
        • Отрабатываются навыки записи скринкастов с помощью конкретного программного обеспечения (OBS Studio).
        • Запись делается к каждой лабораторной работе.
  1. Markdown

    • Для оформления отчётов используется Markdown.
    • Студентам предлагается шаблон отчёта.
    • Студентам предлагается шаблон презентации.
    • Результат.
      • Умения.
        • Студенты получают общее представление о работе с Markdown.
        • Студенты получают общее представление по работе с библиографией.
        • Студенты получают представление по работе с формулами.
      • Навыки.
        • Отчёт по каждой лабораторной работе выполняется в Markdown.
        • Презентация по итогу выполнения каждой лабораторной работы делается в Markdown.

4.2.2 Умения работы с компьютером

  1. Установка операционной системы

    • Будем устанавливать операционную систему Linux в виртуальной машине.
    • Необходимо для ознакомления с установкой операционной системы.
    • В дисплейных классах студенты работают на установленном Linux.
    • Дома они могут установить Linux:
      • на виртуальную машину;
      • на флешку;
      • на железо.
    • Стоит только вопрос с выбором конкретного дистрибутива (см. Выбор дистрибутива Linux).
    • Результат.
      • Умения.
        • Студенты только знакомятся с установкой операционной системы Linux.
      • Устанавливается только один конкретный дистрибутив, нет никаких обобщений (нет знания).
      • Установка производится один раз (не вырабатывается навык).

4.2.3 Знания работы с компьютером

4.2.4 Уровень владения

НаименованиеНавыкУмениеЗнание
git+
markdown+
emacs+
LaTeX+

5 Активности

5.1 Лекции

5.2 Лабораторные работы

5.2.1 Установка ОС Linux

5.2.2 Первоначальна настройка git

5.2.3 Настройка рабочей среды

5.2.4 Продвинутое использование 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 По темам лекций

  • Доклады, сгруппированные по темам лекций.
  1. Введение в операционную систему UNIX

    1. История зарубежных операционных систем.
    2. История отечественных операционных систем.
    3. История и диалекты операционной системы UNIX.
    4. Поддержка мультипрограммирования и разделения времени в операционных системах.
    5. Обзор и сравнительный анализ операционных систем Plan9 и Inferno.
    6. Обзор операционной системы FreeBSD.
    7. Обзор дистрибутива Linux Gentoo.
    8. Сравнительный анализ линейки операционных систем семейства Windows.
    9. Сравнительный анализ дистрибутивов Linux: Ubuntu, Fedora.
    10. Обзор фреймовых оконных менеджеров для linux (ion, awesome и т.д.).
    11. Особенности построения серверных операционных систем.
    12. Основные производители серверных операционных систем.
    13. Основные производители клиентских операционных систем.
    14. Кластерные операционные системы.
    15. Обзор коммерческих Unix-операционных систем различных производителей.
    16. Обзор свободно распространяемых Unix-операционных систем различных производителей.
    17. Обзор Linux-операционных систем различных производителей.
    18. Операционные системы реального времени.
    19. Обзор стандартов, регламентирующих разработку операционных систем.
    20. Операционные системы многопроцессорных компьютеров.
    21. Виртуальные машины и их операционные системы.
    22. Особенности построения сетевых операционных систем.
  1. Архитектура UNIX. Файлы и устройства

    1. Обзор концепции файла и типов файлов в файловых системах.
    2. Обзор расширений имён файлов.
    3. Обзор методов доступа к файлам.
    4. Обзор операций над директориями и методов реализации директорий в файловых системах.
    5. Обзор концепции монтирования и методов монтирования файловых систем в операционных системах.
    6. Обзор виртуальных файловых систем.
    7. Файловая система FAT.
    8. Файловые системы с индексируемым размещением файлов.
    9. Обзор системы NFS.
    10. Обзор видов внешних устройств в современных компьютерах.
    11. Обзор видов прерываний и методов их обработки в современных компьютерах.
    12. Метод DMA и DMA-контроллеры.
    13. Обзор архитектур реализаций ввода-вывода в операционных системах.
    14. Обзор сетевых устройств в компьютерных системах.
    15. Библиотеки sys и os языка python для работы с файловой системой (манипуляция с файлами и директориям).
  1. Архитектура UNIX. Процессы

    1. Понятие процесса, виды процессов и его состояния в операционных системах.
    2. Реализация системных структур ОС для управления процессами (блок управления процессом, системные очереди) и операций над ними.
    3. Обзор подходов к созданию дочерних процессов и разделению ресурсов дочерним и родительским процессами в операционных системах.
    4. Обзор алгоритмов планирования в Linux.
    5. Обзор алгоритмов планирования в Windows.
    6. Планирование и диспетчеризация процессоров в системе Solaris.
    7. Планирование и диспетчеризация процессоров в системе Mac OS.
    8. История синхронизации процессов.
    9. Сравнение возможностей достоинств и недостатков различных средств синхронизации процессов.
    10. Концепция семафора и ее использование для синхронизации процесов.
    11. Концепция монитора и ее использование для синхронизации процесов.
    12. Концепция критической области и ее использование для синхронизации процесов.
    13. Обзор методов откачки и подкачки в операционных системах.
    14. Обзор стратегий распределения основной памяти.
    15. Обзор архитектур таблиц страниц.
    16. Обзор методов сегментно-страничной организации памяти в компьютерных системах.
    17. Методы управления памятью в операционных системах.
    18. Методы адресации в компьютерных системах.
    19. Этапы обработки программы от исходного кода к исполняемому в операционных системах.
    20. Физическая и логическая адресация в компьютерных системах.
    21. Организация оверлейной структуры программ.
    22. Обзор методов реализации виртуальной памяти в операционных системах.
    23. Страничная организация по требованию.
    24. Сегментная организация по требованию.
    25. Сравнительный анализ алгоритмов замещения страниц.
    26. Межпроцессное взаимодействие с использованием Unix сокетов и сетевых сокетов.
    27. Межпроцессное взаимодействие: очереди сообщений, разделяемая память и семафоры.
    28. Межпроцессное взаимодействия на базе протокола 9P2000. Реализация с помощью библиотек p9p.
    29. Межпроцессные взаимодействия на базе протокола plumbing. Принципы работы.
    30. Межпроцессное взаимодействия на базе протокола 9P2000. Реализация с помощью POSIX совместимых библиотек.
  1. Терминал и командная строка

    1. Настройка csh. Специфика по сравнению с bash.
    2. Настройка zsh. Специфика по сравнению с bash.
    3. Настройка tcsh. Специфика по сравнению с bash.
    4. Сравнение систем управления версиями git, mercurial и bazaar.
    5. Применение awk для разбора текстовых файлов с данными.
    6. Утилиты-мультиплексоры screen и tmux.
    7. Использование rsync для резервного копирования данных.
    8. Планировщик задач cron и ему подобные подобные. Настройка и примеры заданий.
  1. Введение в безопасность UNIX

    1. Методы организации безопасности в операционных системах.
    2. Современные методы криптографии.
    3. Trustworthy Computing Initiative.
    4. Схема аутентификации пользователей с помощью логинов и паролей.
    5. Методы защиты от атаки типа переполнение буфера.
    6. Проверка неизменности системных файлов и директорий.
    7. Методы криптования на основе закрытого ключа.
    8. Методы криптования на основе открытого ключа.
    9. Обзор методов защиты файлов в операционных системах.
  1. Сеть в UNIX

    1. Обзор архитектур распределенных систем и локальных сетей.
    2. Обзор сетевых топологий.
    3. Архитектура и организация локальных сетей.
    4. Архитектура и организация глобальных сетей.
    5. Архитектура, параметры и организация беспроводных сетей.
    6. Обзор стратегий маршрутизации и маршрутизаторов.
    7. Архитектура и функционирование DNS.
    8. Методы сетевых соединений.
    9. Методы разрешения коллизий в сетях.
    10. Сетевые возможности Linux.
    11. Настройка сервера в Linux.
    12. Сравнительный анализ сетевых возможностей Windows и Linux.
    13. Методика работы пользователя в сети Linux.
  1. Управление службами

    1. Система инициализации SystemV.
    2. Система инициализации SystemD.
    3. Система инициализации Upstart.
    4. Система инициализации Openrc.
    5. Система инициализации Runinit.
    6. Система инициализации Launchd.
    7. Система инициализации типа BSD.
  1. Управление программным обеспечением

    1. Система управления пакетами rpm. Управление зависимостями: yum, dnf.
    2. Система управления пакетами dpkg. Управление зависимостями: aptitude, apt.
    3. Система управления пакетами packman.
    4. Система управления пакетами portage.
    5. Система управления пакетами NuGet.
    6. Система управления пакетами Chocolatey.
    7. Система управления пакетами Scoop.
    8. Система управления пакетами Homebrew.
    9. Система управления пакетами Snap.
    10. Система управления пакетами Nix.

5.3.2 По темам лабораторных работ

  • Доклады, сгруппированные по темам лабораторных работ.

5.4 Проекты

5.4.1 Индивидуальный проект Персональный сайт научного работника

5.5 Внешние курсы

5.5.1 Общая информация

  • В список показателей внесено количество студентов, прошедших внешние курсы.
  • Внешний курс должен либо подменять локальный, либо давать определённые балы на локальном курсе.

5.5.2 Рекомендованные платформы для внешних курсов

5.5.3 Курс

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 балла.
Таблица 1: Критерии оценки прохождения внешнего курса
Разделы0248
Раздел 1. ВведениеНет сертификата или нет (видео + отчёт)Сертификат + (видео или отчёт)Сертификат + видео + неполный отчётСертификат + видео + отчёт + размещено на сайте
Раздел 2. Работа на сервереНет сертификата или нет (видео + отчёт)Сертификат + (видео или отчёт)Сертификат + видео + неполный отчётСертификат + видео + отчёт + размещено на сайте
Раздел 3. Продвинутые темыНет сертификата или нет (видео + отчёт)Сертификат + (видео или отчёт)Сертификат + видео + неполный отчётСертификат + видео + отчёт + размещено на сайте

6 Оценивание

7 Пересдача

7.1 Порядок сдачи

  • Материалы для переаттестации выкладываются на ТУИС.
  • На переаттестации может потребоваться продемонстрировать, как были выполнены все лабораторные работы, дать пояснения, ответить на вопросы.

7.1.1 Лабораторные работы

  • На переаттестацию представляется ссылка на плейлисты на https://rutube.ru/ и https://plvideo.ru, содержащие:
    • скринкасты выполнения лабораторных работ, с фиксацией лица видеокамерой и записью пояснений голосом;
    • скринкасты презентаций защит выполненных лабораторных работ;
    • скринкасты подготовки отчёта и презентации для защиты.
  • На переаттестацию представляется ссылка на репозиторий на https://github.com, содержащий:
    • отчёты о выполнении работ во всех необходимых форматах;
    • презентации защит выполненных лабораторных работ;
    • код и промежуточные вычисления, если это необходимо;
    • результирующие файлы отчёта и презентации к каждой лабораторной работе должны быть выложены в виде релизов git.

7.1.2 Индивидуальный проект

  • На переаттестацию представляется ссылка на плейлисты на https://rutube.ru/ и https://plvideo.ru, содержащие:
    • скринкасты выполнения этапов индивидуального проекта, с фиксацией лица видеокамерой и записью пояснений голосом;
    • скринкасты презентаций защит выполненных этапов индивидуального проекта.
  • На переаттестацию представляются ссылка на репозиторий на https://github.com, содержащий:
    • выполненный индивидуального проект;
    • презентации по защите этапов индивидуального проекта;
    • результирующие файлы отчёта и презентации к каждому этапу проекта должны быть выложены в виде релизов git.

7.2 Требования

  • На пересдаче следует продемонстрировать выполнение заданий и владение компетенциями.

7.2.1 Установленное программное обеспечение

  • Уставленный дистрибутив линукс с соответствующим менеджером окон (sway).

7.2.2 Навыки работы

  • Работа без использования манипулятора мышь.
  • Умение работать с репозиторием git.

7.2.3 Индивидуальный проект

  • Компиляция и публикация сайта для индивидуального проекта.
  • Добавление материалов в личный сайт (пост, проект).

7.3 Вопросы к пересдаче

  • Горячие клавиши для работы в мозаичном оконном менеджере Sway.
  • Основные операции в Sway:
    • Перемещение окон.
    • Работа в многооконной конфигурации.
    • Создание скриншотов.
  • Основные операции с оболочке mc (Midnight Commander).
  • Основные команды редактора vi (vim).
  • Основные операции в редакторе Emacs.
  • Алгоритм настройки git с поддержкой подписи коммитов.
  • Настройка репозитория git для работы семантическими версиями. Рабочий процесс git flow.

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие