КС:2015:Проект:xv6
Содержание
Что это за проект
Введение
xv6 — современная реализация 6-й версии операционной системы UNIX для архитектуры x86, написанная на ANSI C. Она используется в учебных целях в MIT и других университетах США и Европы в курсах, связанных с проектированием операционных систем. ОС xv6 - достаточно простая система (около 9000 строк кода с подробными комментариями), чтобы изучить её за один семестр, но при этом она содержит все основные идеи и архитектуру UNIX. Подробнее можно почитать на странице курса, а также в справочном руководстве [ PDF ].
Что требуется
Требуется в существующей реализации ОС доработать некоторый набор функциональных возможностей, представленных в современных POSIX-совместимых системах.
Чему вы научитесь
Работе с эмуляторами физических машин, писать код и отлаживать в режиме ядра, добавлять новые системные вызовы.
Начальные требования
1. Владение техническим английским языком.
2. Умение разрабатывать программы на Cи или C++.
Критерии оценивания
Требования на зачет в конце 1-го модуля
Реализовать расширение системного вызова exec() для исполняемых скриптовых файлов, продемонстрировать его использование. Реализован системный вызов mkfifo().
Итоговая оценка
- 3 балла (базовая часть). Реализованы требования на зачёт в конце первого модуля.
- +2 балла. Добавление прав пользователей (без групп пользователей), реализация входа в систему по паролю (хранить не пароль, а его хеш), безопасная смена пароля пользователя.
- +2 балла. Реализация механизма ненадежных сигналов.
- +2 балла. Реализация виртуального каталога (/proc).
- +2 балла. Реализация легковесных процессов, или нитей (threads) с механизмами управления и синхронизации.
- +1 балл. Реализация межпроцессных бинарных семафоров (mutex).
- +(2+) балла. Реализация системного вызова mmap(). Количество баллов будет зависеть от полноты реализации mmap().
Максимальный итоговый балл: 10.