OS 5SE осень 2017 — различия между версиями
Xamgore (обсуждение | вклад) |
|||
Строка 3: | Строка 3: | ||
Контакты: <code>[mailto:os-au@osll.ru os-au@osll.ru]</code> | Контакты: <code>[mailto:os-au@osll.ru os-au@osll.ru]</code> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * | + | * '''[https://github.com/OSLL/os-au-2017 Репозиторий курса на гитхабе]''' |
− | ** https://stepik.org/course/253/syllabus | + | ** [https://github.com/OSLL/os-au-2017/tree/master/docs Презентации] |
− | ** https://stepik.org/course/548/syllabus | + | |
+ | * '''[https://stepik.org/course/3636/syllabus Лабораторные работы]''' | ||
+ | ** [https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/lecture-notes-and-readings/ Задания лабораторных работ]: | ||
+ | **# [https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/labs/MIT6_828F12_lab1.pdf C, Assembly, Tools, and Bootstrapping] | ||
+ | **# [https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/labs/MIT6_828F12_lab2.pdf Memory Management] | ||
+ | **# [https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/labs/MIT6_828F12_lab3.pdf User Environments] | ||
+ | |||
+ | * '''Учебные материалы''' (дополнительные модули содержат хорошие источники): | ||
+ | ** [https://stepik.org/course/1780/syllabus «Операционные системы»] | ||
+ | ** [https://stepik.org/course/253/syllabus «Введение в архитектуру ЭВМ. Элементы операционных систем»] | ||
+ | ** [https://stepik.org/course/548/syllabus «Основы программирования для Linux»] | ||
Версия 17:18, 4 октября 2017
Преподаватель: Кринкин Кирилл Владимирович
Контакты: os-au@osll.ru
- Учебные материалы (дополнительные модули содержат хорошие источники):
Как запустить vagrant, qemu, и запатчить решение
sudo vagrant up --provider=docker sudo vagrant ssh default
Содержимое conf/env.mk
QEMU=/usr/bin/qemu-system-i386 QEMUEXTRA=-curses
Параметр QEMUEXTRA
можно не ставить (и так даже лучше); вместо этого нужно запускать QEMU
с помощью make qemu-nox
- тогда QEMU
запустится прямо в вашей консоли и вы не будете страдать.
Если вам не хочется потом каждый раз удалять переменную QEMUEXTRA
из гит-диффа, можете создать линку на исполняемый файл под именем qemu
:
sudo ln /usr/bin/qemu-system-i386 /usr/bin/qemu
После этого все будет находиться.
При проблемах с gdb (типа warning: File "/home/vagrant/lab/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load:/vagrant/lab/.gdbinit".
) действовать так, как он укажет: добавить в файл /home/vargant/.gdbinit
одну из двух строк:
add-auto-load-safe-path /home/vagrant/lab/.gdbinit set auto-load safe-path /
И так и так работает.
Если у вас проблемы с дублированием букв внутри QEMU
, не паникуйте и просто проверьте команды help
и kerninfo
- скорее всего удваивание букв будет проигнорировано и команды выполнятся.
Для выхода их QEMU
используюйте сочетание клавиш ctrl-a x
.
Для создания файла с патчем работает следующая схема:
sudo touch patch sudo chmod a+rw patch git diff > patch
Совы не то, чем кажутся или The desc field contains the line number and the value contains the code address for the start of that source line: http://www.sourceware.org/gdb/onlinedocs/stabs.html#Line-Numbers
При отправке патчей проверять сначала на своих репозиториях и следить за тем, чтобы концы строк были не ос-специфичными (типа \r\n на винде). С такими различиями патчи не применяются и падают с ошибкой
Можно избежать проблемы с концами строк, если трансферить патч следующим образом:
vagrant ssh -c "cat /home/vagrant/lab/patch" | dos2unix > patch
Если вам лень вручную переносить изменения из виртуальной машины в файлы в вашем форкнутом репозитории, можете воспользоваться утилитой patch
:
cd solutions/${вставь_свою_фамилию}/lab1 patch < your_patch.txt
Скорее всего программа не поймет, где именно лежат ваши измененные файлы, и попросит указать пути к ним. Но это всяко лучше чем руками копировать все это.