OS 2MIT Spring
Лектор — Кринкин Михаил (krinkin.m.u@gmail.com)
Практики — Кринкин Михаил (krinkin.m.u@gmail.com), Новокрещенов Константин (k.novokreshchenov@gmail.com )
Вопросы можно задавать (и отвечать) в google группе: os-2mit-spring-qa@googlegroups.com
Содержание
Группа Новокрещенового
- Беляев Станислав Валерьевич
- Бойкий Дмитрий Игоревич
- Бугакова Надежда Александровна
- Валин Глеб Александрович
- Гайдашенко Анастасия Валериевна
- Гуцол Ксения Дмитриевна
- Дегтяренко Иван Антонович
- Кравченко Дмитрий Сергеевич
- Кравченко Юрий Николаевич
- Лабутин Игорь Николаевич
Группа Кринкина
- Лапшин Дмитрий Владимирович
- Малышева Александра Ивановна
- Маркелов Александр Сергеевич
- Никонов Михаил Иванович
- Пластинин Виталий Вячеславович
- Подгузов Никита Владимирович
- Ребрик Юрий Андреевич
- Розплохас Дмитрий Александрович
- Смирнов Петр Юрьевич
- Старкова Анастасия Алексеевна
- Степанов Владимир Игоревич
- Степанов Всеволод Андреевич
- Суворов Егор Фёдорович
- Третьякова Елизавета Алексеевна
- Черникова Ольга Александровна
Материалы курса
Все материалы курса находятся в репозитории https://github.com/krinkinmu/os-course :
- lec{\d+} - слайды лекций
- hw{\d+} - описание домашних заданий
- src - исходники ОС (будут обновляться по мере прохождения дедлайнов и выдачи новых заданий)
Домашние задания
- Прерывания, таймер и последовательный порт. Дедлайн: 25 февраля. Решение в репозитории.
- Аллокация памяти. Дедлайн: 21 марта. Решение в репозитории.
- Потоки, плнирование и синхронизация. Решение в репозитории.
- Файловая система в памяти. Решение в репозитории.
Критерии выставления оценки
Точные правила выставления оценки пока не зафиксированы, но вы как минимум можете рассчитывать на следующее:
- выполнять необязательные подзадания для получения отличной оценки не нужно
- ни одно отдельно взятое домашнее задание не влияет на оценку (т. е. если вы провалили одно задание, то вы все еще можете рассчитывать на отличную оценку)
Правила и рекомендации по сдаче домашних заданий
- Заведите на github репозиторий для домашних заданий, присылайте ссылку на этот репозиторий и указание ветки или тега, который нужно проверять (под ссылкой на репозиторий имеется ввиду такая, с которой можно выполнить команду git clone, а не ссылка на github).
- Домашнее задание должно сопровождаться Cover Letter, которое должно описывать из чего состоит ваше решение (файлы, функции, кто и что делает, кто и за что отвечает).
- Вопросы по домашним заданиям можно задавать только до того, как вы попытаетесь его сдавать.
- Дополнительные подзадания проверяются только после того, как засчитаны основные.
- Дополнительные подзадания от начала и до конца делаются самостоятельно, вы можете задавать вопросы, но ответов на них вы не получите.
Полезные ссылки
- System V ABI для amd64 (x86-64), если вы пользуетесь компиляторами от Microsoft, то они используют другой ABI
- спецификация ELF
- сайт с множеством полезной информации (аккуратно, возможны ошибки!)
- еще одно описание работы с последовательным портом (с сопутствующими объяснениями портов ввода/вывод, прерываний и контроллеров прерываний)
Для пользователей MAC OS X
Компилятор и сопустствующие средства идущие вместе с XCode (или command line tools из app store) это не gnu toolchain, а урезанный clang и сопутствующие утилиты рассчитанные на прикладное ПО (в частности они не поддерживают linker script и мне не известно опций, которые могли бы его заменить). Поэтому у вас есть несколько опций:
- найти способ пользоваться теми утилитами, что есть (я тут не помошник - мне негде проверять)
- собрать свой gnu toolchain и использовать его (тут я, возможно, смогу помочь)
- использовать виртуальную машину с Linux
Для тех, кто выбрал 2 или 3 варианты, могут оказаться полезными следующие ссылки: