OS 2MIT Spring — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
м (Krinkin.m переименовал страницу OS 2MIT spring в OS 2MIT Spring)
 
(не показано 18 промежуточных версий этого же участника)
Строка 1: Строка 1:
 
Лектор — Кринкин Михаил (<b>[mailto:krinkin.m.u@gmail.com krinkin.m.u@gmail.com]</b>)
 
Лектор — Кринкин Михаил (<b>[mailto:krinkin.m.u@gmail.com krinkin.m.u@gmail.com]</b>)
  
Практики — Кринкин Михаил (<b>[mailto:krinkin.m.u@gmail.com krinkin.m.u@gmail.com]</b>), Новокрещенов Константин (<b>[mailto:novokrest013@gmail.com novokrest013@gmail.com ]</b>)
+
Практики — Кринкин Михаил (<b>[mailto:krinkin.m.u@gmail.com krinkin.m.u@gmail.com]</b>), Новокрещенов Константин (<b>[mailto:k.novokreshchenov@gmail.com k.novokreshchenov@gmail.com ]</b>)
  
 +
Вопросы можно задавать (и отвечать) в google группе: <b>[mailto:os-2mit-spring-qa@googlegroups.com os-2mit-spring-qa@googlegroups.com]</b>
 
== Группа Новокрещенового ==
 
== Группа Новокрещенового ==
  
Строка 33: Строка 34:
 
* Третьякова Елизавета Алексеевна
 
* Третьякова Елизавета Алексеевна
 
* Черникова Ольга Александровна
 
* Черникова Ольга Александровна
 +
 +
[https://docs.google.com/spreadsheets/d/1Dra-SXqoIcF7bXxQKtjW9ziKQNgz1g_GVjYsRhPnJig/edit?usp=sharing Результаты ДЗ]
  
 
== Материалы курса ==
 
== Материалы курса ==
Строка 44: Строка 47:
 
== Домашние задания ==
 
== Домашние задания ==
  
# Прерывания, таймер и последовательный порт. Дедлайн: 25 февраля (к 25 февраля задание должно быть сдано).
+
# Прерывания, таймер и последовательный порт. Дедлайн: 25 февраля. Решение в репозитории.
 +
# Аллокация памяти. Дедлайн: 21 марта. Решение в репозитории.
 +
# Потоки, плнирование и синхронизация. Решение в репозитории.
 +
# Файловая система в памяти. Решение в репозитории.
  
 
== Критерии выставления оценки ==
 
== Критерии выставления оценки ==
Строка 53: Строка 59:
 
* ни одно отдельно взятое домашнее задание не влияет на оценку (т. е. если вы провалили одно задание, то вы все еще можете рассчитывать на отличную оценку)
 
* ни одно отдельно взятое домашнее задание не влияет на оценку (т. е. если вы провалили одно задание, то вы все еще можете рассчитывать на отличную оценку)
  
== Рекомендации по сдаче домашних заданий ==
+
== Правила и рекомендации по сдаче домашних заданий ==
  
* Заведите на github репозиторий для домашних заданий, присылайте ссылку на этот репозиторий и указание ветки или тега, который нужно проверять.
+
* Заведите на github репозиторий для домашних заданий, присылайте ссылку на этот репозиторий и указание ветки или тега, который нужно проверять (под ссылкой на репозиторий имеется ввиду такая, с которой можно выполнить команду git clone, а не ссылка на github).
* Домашнее задание должно сопровождаться Cover Letter, которое должно описывать из чего состоит ваше решение (файлы, функции, кто и что делает).
+
* Домашнее задание <b>должно</b> сопровождаться Cover Letter, которое должно описывать из чего состоит ваше решение (файлы, функции, кто и что делает, кто и за что отвечает).
 
* Вопросы по домашним заданиям можно задавать только до того, как вы попытаетесь его сдавать.
 
* Вопросы по домашним заданиям можно задавать только до того, как вы попытаетесь его сдавать.
 
* Дополнительные подзадания проверяются только после того, как засчитаны основные.
 
* Дополнительные подзадания проверяются только после того, как засчитаны основные.
 +
* Дополнительные подзадания от начала и до конца делаются самостоятельно, вы можете задавать вопросы, но ответов на них вы не получите.
  
 
== Полезные ссылки ==
 
== Полезные ссылки ==
  
* [https://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjZqJKI1-rKAhXjO5oKHSGxA7QQFggbMAA&url=http%3A%2F%2Fwww.x86-64.org%2Fdocumentation%2Fabi.pdf&usg=AFQjCNHM5xtL4RVMdUxJSuuXe3SA6m9JEA&sig2=8gnPCHQjfL0TLC0RVztuwQ&bvm=bv.113943665,d.bGs System V ABI для amd64 (x86-64)]
+
* [https://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjZqJKI1-rKAhXjO5oKHSGxA7QQFggbMAA&url=http%3A%2F%2Fwww.x86-64.org%2Fdocumentation%2Fabi.pdf&usg=AFQjCNHM5xtL4RVMdUxJSuuXe3SA6m9JEA&sig2=8gnPCHQjfL0TLC0RVztuwQ&bvm=bv.113943665,d.bGs System V ABI для amd64 (x86-64)], если вы пользуетесь компиляторами от Microsoft, то они используют другой ABI
 +
* [http://www.skyfree.org/linux/references/ELF_Format.pdf спецификация ELF]
 
* [http://wiki.osdev.org/Main_Page сайт с множеством полезной информации (аккуратно, возможны ошибки!)]
 
* [http://wiki.osdev.org/Main_Page сайт с множеством полезной информации (аккуратно, возможны ошибки!)]
 +
* [https://en.wikibooks.org/wiki/Serial_Programming/8250_UART_Programming#Interrupt_Enable_Register еще одно описание работы с последовательным портом (с сопутствующими объяснениями портов ввода/вывод, прерываний и контроллеров прерываний)]
 +
 +
=== Для пользователей MAC OS X ===
 +
 +
Компилятор и сопустствующие средства идущие вместе с XCode (или command line tools из app store) это не gnu toolchain, а урезанный clang и сопутствующие утилиты рассчитанные на прикладное ПО (в частности они не поддерживают linker script и мне не известно опций, которые могли бы его заменить). Поэтому у вас есть несколько опций:
 +
 +
* найти способ пользоваться теми утилитами, что есть (я тут не помошник - мне негде проверять)
 +
* собрать свой gnu toolchain и использовать его (тут я, возможно, смогу помочь)
 +
* использовать виртуальную машину с Linux
 +
 +
Для тех, кто выбрал 2 или 3 варианты, могут оказаться полезными следующие ссылки:
 +
 +
* [http://wiki.osdev.org/User:Max/Building_a_GCC_4.9_cross_compiler_on_OS_X_Mavericks сборка gcc для Mavericks (полагаю, что для Yosemite и El Capitan тоже должно работать)]
 +
* [https://support.apple.com/en-us/HT203296 если вы используете ВМ, то проверьте, что прошивка не блокирует Intel VT и при создании ВМ включите использование аппартной виртуализации - это должно заметно ускорить ВМ]

Текущая версия на 10:39, 21 апреля 2016

Лектор — Кринкин Михаил (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 - исходники ОС (будут обновляться по мере прохождения дедлайнов и выдачи новых заданий)

Домашние задания

  1. Прерывания, таймер и последовательный порт. Дедлайн: 25 февраля. Решение в репозитории.
  2. Аллокация памяти. Дедлайн: 21 марта. Решение в репозитории.
  3. Потоки, плнирование и синхронизация. Решение в репозитории.
  4. Файловая система в памяти. Решение в репозитории.

Критерии выставления оценки

Точные правила выставления оценки пока не зафиксированы, но вы как минимум можете рассчитывать на следующее:

  • выполнять необязательные подзадания для получения отличной оценки не нужно
  • ни одно отдельно взятое домашнее задание не влияет на оценку (т. е. если вы провалили одно задание, то вы все еще можете рассчитывать на отличную оценку)

Правила и рекомендации по сдаче домашних заданий

  • Заведите на github репозиторий для домашних заданий, присылайте ссылку на этот репозиторий и указание ветки или тега, который нужно проверять (под ссылкой на репозиторий имеется ввиду такая, с которой можно выполнить команду git clone, а не ссылка на github).
  • Домашнее задание должно сопровождаться Cover Letter, которое должно описывать из чего состоит ваше решение (файлы, функции, кто и что делает, кто и за что отвечает).
  • Вопросы по домашним заданиям можно задавать только до того, как вы попытаетесь его сдавать.
  • Дополнительные подзадания проверяются только после того, как засчитаны основные.
  • Дополнительные подзадания от начала и до конца делаются самостоятельно, вы можете задавать вопросы, но ответов на них вы не получите.

Полезные ссылки

Для пользователей MAC OS X

Компилятор и сопустствующие средства идущие вместе с XCode (или command line tools из app store) это не gnu toolchain, а урезанный clang и сопутствующие утилиты рассчитанные на прикладное ПО (в частности они не поддерживают linker script и мне не известно опций, которые могли бы его заменить). Поэтому у вас есть несколько опций:

  • найти способ пользоваться теми утилитами, что есть (я тут не помошник - мне негде проверять)
  • собрать свой gnu toolchain и использовать его (тут я, возможно, смогу помочь)
  • использовать виртуальную машину с Linux

Для тех, кто выбрал 2 или 3 варианты, могут оказаться полезными следующие ссылки: