Еще в 2002 году в MIT решили, что необходимо начать преподавание курса по инженерии операционных систем. В рамках этого курса студенты должны были написать экзоядро (exokernel) для архитектуры x86, используя для этого систему Sixth Edition Unix (V6) и комментарии Джона Лайонса ( John Lions) в качестве учебного материала. Однако, с этим курсом возникли проблемы.
Самая большая проблема состояла в том, что хотя курс курс был ориентирован на обучение написанию экзоядра для архитектуры x86, система Sixth Edition Unix и комментарии Джона Лайонса относились к области PDP-11 - системы совершенно другого вида. Студенты жаловались на эти различия, и у них также не было желания учиться программировать для PDP-11. Кроме того, система Sixth Edition Unix была написана в мертвом диалекте языка C (еще до языка С Кернигана и Ричи).
Поэтому в MIT решились на резкий поворот: было решено переписать систему Sixth Version Unix для архитектуры x86 на языке ANSI C. Попутно система была улучшена за счет добавления поддержки SMP (многопроцессорности - прим.пер. ). На странице проекта указывается, "использование архитектуры x86 в системе Xv6 оказалось более уместным для студенческой практики, чем V6, и позволило унифицировать курс вокруг единой архитектуры", а "добавление многопроцессорности потребовало параллельной обработки с использованием блокировок и потоков (вместо использования специальных однопрецессорных решений, таких как включение / отключение прерываний), повысило актуальность курса. Наконец, написание новой системы позволило чище переписать грубые версии частей системы V6, такие как планировщик и файловая система".
Хотя этот проект был выпущен в 2006 году, я никогда он нем не слышал (до вчерашнего дня), и я уверен, что многие из вас тоже нем не слышали. Конечно, комментарии Джона Лайонса и система V6 невероятно знамениты, но я не уверен, что то же самое относится к системе Xv6.
В любом случае, код доступен всем (git clone git://pdos.csail.mit.edu/xv6/xv6.git) для просмотра и использования под лицензией MIT. Обычно, код не запускается на реальном оборудовании, на самом деле, в MIT его запускают под QEMU.