24 февр. 2011 г.

xv6 - учебная операционная система для курса 6.828 в MIT

В MIT'шном курсе "Разработка операционных систем" (Operating System Engineering) используется простая, учебная операционная система, названная xv6. На нее я наткнулся, читая пост "Примеры хорошого кода" в блоге "Программирование — это просто!".
Когда-то давно, на заре становления данного курса (тогда он был еще экспериментальным) студенты работали сразу с двумя операционными системами. Первая ОСь - Unix V6 Кернигана и Томпсона, использовалась на лекциях и была написана на каком-то диалекте языка C, существовавшем еще до издания Керниганом и Ритчи  своей книги, посвященной языку программирования C. Вдобавок ко всему прочему, этот Unix V6 работал на устаревшем оборудовании - PDP-11.
Была и вторая операционная система - Jos, которую студенты разрабатывали сами, дабы постичь премудрости курса. Система была на основе экзоядра и писалась под Intel x86.
Нет ничего хорошего в том, что студенты изучают две различные архитектуры одновременно, на курсе, отнюдь не посвященном архитектурам вычислительных систем и преподаватели решили написать xv6 - операционную систему, основанную на V6, но тем не менее написанную на C и работающую на x86 процессорах.