Содержание
9:00 25.06 |
|
Команда «Насосная №1»
|
|
13:00 25:06 - I |
13:00 25:06 - II |
Команда «Седьмого ищем»
|
Команда «Плюсы не против»
|
9:00 26:06 - I |
9:00 26:06 - II |
Команда «Эффект телевизора»
|
Команда «Клуб Фанатов Дениса Расщупкина»
|
13:00 26:06 - I |
13:00 26:06 - II |
Команда «The Beatles»
|
Команда «Не в последнюю очередь»
|
/EffectTelevizora /KlubDenisaR /LastNotLeast /PlusyNeProtiv /SedmogoIschem /TheBeatles /Насосная№1 |
Формат
- Устная беседа в группе примерно по 7 человек на все основные темы курса в течение примерно двух часов.
- В процессе беседы экзаменатор задаёт вопросы по темам, студенты в произвольном порядке отвечают.
- Экзаменатор составляет протокол оценок в примитивной форме («кто, тема, +/-/±» …):
«-»: ответ, не соответствующий действительности, или ответ не на тот вопрос; общие рассуждения, показывающие незнание темы; чтение вслух любых текстов, содержащих ключевые слова, без их понимания
«±»: сильно неполный ответ, ответ, содержащий верные и неверные утверждения, необоснованный/неверно обоснованный правильный ответ (например, наугад)
«+»: достаточно полный ответ в любой форме (включая «не знаю, но думаю, что…», адекватный пересказ документации и пр.)
Коллективный «0»: отсутствие ответа на простой с точки зрения экзаменатора вопрос, при подведении итогов слегка понижает балл каждого
Пользоваться можно чем угодно, кроме пересказа чужих ответов, вопросы задаются на понимание.
Оценивание
Оценивается по каждому студенту
- соотношение правильных/неправильных ответов
- покрытие ответами разделов курса
- любые дополнительные знания по теме
Несколько замечаний по ведению экзамена
- В группе всегда находятся участники, которые норовят отмолчаться (в обычной ситуации они стараются сесть во второй ряд). Экзаменатору надо за этим следить (это видно из протокола) и некоторые вопросы задавать не всем, а вот таким молчунам.
- Тем не менее, если человек решил отмалчиваться, он сам себе враг
- Хорошая тактика сдачи экзамена в такой форме — это самим слушателям сорганизоваться заранее и договориться, чтобы в группе всегда присутствовал кто-то способный ответить на сложные вопросы, и чтобы на простые отвечали те, кто менее уверен.
Темы
Темы — это не вопросы. Это области, относительно которых вопросы задаются. Обычно это вопросы вида:
- что это такое?
- как работает?
- зачем нужно?
почему нельзя использовать [что-то другое]?
почему [верное утверждение] а не [менее верное утверждение]?
чем отличается [почитать документацию в одном месте] от [почитать документацию в другом месте]»
- … и т. п.
При ответе на вопрос можно (а иногда просто нужно) пользоваться справочными материалами, но:
Оперативно пользоваться справочными материалами надо уметь, экзамен выявляет в том числе это умение
- Почёрпнутые из внешних источников сведения принимаются только в пересказе или с объяснениями; сами сведения, разумеется, не оцениваются
- Если вы не до конца понимаете, о чём говорите, пересказ и/или чтение источника вслух только усиливают этот эффект ☹
Дальнейшая разбивка сделана по модулям, а не по темам, чтобы было проще готовиться (за исклчением переноса некоторых тем в модуль «архитектура»)
Архитектура компьютера и язык ассемблера
- Система команд и её место в архитектуре ЭВМ
- Ассемблер и язык ассемблера
- RISC и MIPS
- Регистры и память, виды адресации
- Адресация в коде:
- условные операторы
- циклы
- массивы
- Стек и подпрограммы
- Понятие конвенции
- +конвенции по вызову подпрограмм
- +конвенции по использованию регистров
- Математический сопроцессор
- Кадр вызова подпрограммы
- Макроассемблер
- Поллинг и MMIO
- Исключения и программные ловушки (traps)
- Прерывания
- Конвейер
- Предсказание перехода
- Кеш: прямой и ассоциативный
- Виртуальная память
- Выгрузка страниц (swap)
Системное программирование и Си
- Основные конструкции и типы данных в Си
- Сборка многофайлового проекта в Си
- Системы сборки, GNU make
- Адресация и адресная арифметика в Си
- Обеспечение многозадачности в ОС
- Выделение и освобождение памяти в Си
- Файловые системы (два определения)
- Файловый/поточный ввод-вывод
- Процессы
- Права доступа
- Базовая дискреционная модель
- SetUID/SetGID
- Строковые операции в Си
- Регулярные выражения
- IPC: Сигналы
- IPC: Сообщения и разделяемая память
Архитектура операционной системы
Несколько более детальный список вопросов для отдельного выставления баллов по финальному тесту четвёртого модуля.
- Операционная система
- Задачи ОС и примеры их решения
- «Цветочек»: Syscall → utility → shell → script → service
- Интерфейсы ОС
- Командная оболочка (shell):
- Как язык программирования
- Как пользовательский интерфейс
- Как инструмент интеграции («скриптования»)
- Стек протоколов TCP/IP
- Задачи, решаемые на каждом из уровней
- Пакеты, инкапсуляция/декапсуляция пакетов
- Независимость уровней
- Сокеты и работа с ними
- Виды сокетов
send()/recv() против read()/write()
- Пример кода, использующего сокеты
- Досистемная загрузка
- Этапы досистемной загрузки и решаемые ими задачи (в теории)
- Досистемная загрузка конкретной ОС (на практике)
- Загрузка операционной системы
- Задачи ядра ОС
Процесс init и его особенности
- Возможности Systemd
Основные задачи, решаемые systemd
Юниты: .service, .mount и другие, структура .service-файла
Сокет-активация .socket-активируемой службы
- Пакеты в Linux
- Свойства пакета
- Установщик пакетов и пакетный диспетчер
- Установка, удаление и обновление пакетов
- Репозиторий, дистрибутив, сообщество
- Особенность пакетов в репозитории
- Сопровождение репозитория сообществом: основные задачи
- Информационные ресурсы сообщества
- Открытая разработка и свободное лицензирование
- Разрешительные (BSD-like) и копилефтные (GPL/MPL-like) свободные лицензии. Определение СПО (по Столлману).
- Бизнес-модели, основанные на или использующие СПО
- Процесс сопровождения пакетов
- Этапы превращения ПО в исходных текста в пакет
- Требования к пакету, публикуемому в репозитории
- Настройка сети в Linux
- Настройка сетевых интерфейсов вручную
- Настройка маршрутизации и DNS
- Автоматическая настройка
- Прикладная шина
- Назначение и архитектура
- Пример сервиса
- Системное программирование на языках высокого уровня
- Достоинства и недостатки системного программирования на языках высокого уровня
- Пример программы, взаимодействующей с ОС на известном вам языке высокого уровня
- Повышение привилегий процесса
- Недостатки традиционной SEUID/SETGID модели
- Архитектура Polkit