Minix
MINIX — свободная Unix-подобная микро-ядерная операционная система, распространяемая по лицензии BSD[6][7], написанная на языке Си и ассемблер. Эндрю Таненбаум создал первую версию MINIX в 1987 в качестве «иллюстрации» учебника «Операционные системы: Разработка и реализация». Среди студентов, изучающих теорию операционных систем по исходникам MINIX, наибольшей известности достиг Линус Торвальдс, разработчик ядра Linux[8]. Изначально целью MINIX являлось обучение студентов строению компьютеров и основ операционных систем. Исходные коды MINIX совершенно отличны от кодов ОС Linux, но, как и Linux, MINIX является Unix-подобной операционной системой с аналогичным набором команд. Исходный код MINIX 3 с переведёнными на русский язык комментариями можно получить на CD вместе с книгой «Операционные системы: разработка и реализация» (Таненбаум Э. С., Вудхалл А. С., 3-е издание опубликовано в России в 2007 году), в которой детально расписано строение ОС на примере MINIX. 1 ноября 2008 года Эндрю Таненбаум получил грант в 2,5 млн евро от Европейского исследовательского совета для работы над проектом «Исследование действительно надёжного и безопасного системного программного обеспечения». Грант позволит продолжить работы по дальнейшему развитию ОС MINIX 3 в течение не менее пяти лет (до ноября 2013 года)[9]. ИсторияMINIX 1Эндрю Таненбаум создал MINIX в Амстердамском свободном университете для наглядной демонстрации принципов, описываемых в его книге «Operating Systems: Design and Implementation» (1987). ISBN 0-13-637406-9. Сокращённые 12000 строк исходного кода ядра, подсистемы управления памятью и файловой системы MINIX были напечатаны в книге. В 1987 году Таненбаум относился к MINIX только как к учебному пособию. Чтобы оставить код ОС доступным для изучения в течение семестра, Эндрю Таненбаум отвергал предложения усовершенствовать MINIX или принять патчи, которые поступали от читателей его учебника. Роль проекта, в котором читатели Таненбаума воплотили своё стремление разрабатывать операционные системы, взял на себя Linux. Изначально Таненбаум разработал MINIX для компьютеров IBM PC и IBM PC/AT, доступных в то время. MINIX версии 1.5 был перенесен на Motorola 68000, что обеспечило совместимость с популярными платформами Amiga, Atari ST, Apple Macintosh. Кроме того, были сделаны версии для SPARC, National Semiconductor NS32032 и транспьютеров. MINIX 1.5MINIX 1.5 вышел в 1991 году. Включал в себя поддержку для систем MicroChannel IBM PS/2, которые были также перенесены для архитектур Motorola 68000 и SPARC, при этом также поддерживая Atari ST, Amiga, Macintosh[10], и SPARCstation[11][12]. MINIX 2Minix 2.0 снова поддерживал только архитектуру x86 и был реализован в 1997 году. Он прилагался ко второй редакции книги Таненбаума, написанной им в соавторстве с Альбертом Вудхаллом (Albert Woodhull). Minix 1 и 2 были средствами обучения[13][14]. MINIX 3MINIX версии 3 был анонсирован 24 октября 2005 года Эндрю Таненбаумом во время его речи на конференции по принципам операционных систем, организованном Association for Computing Machinery (ACM Symposium on Operating Systems Principles). Несмотря на то, что MINIX всё ещё служит в качестве учебного примера в новой редакции книги Таненбаума и Вудхалла, он был переработан и доведён до годности к использованию в качестве надёжной операционной системы для микроконтроллеров и других встраиваемых систем. Он доступен на LiveCD, с которым можно работать без необходимости установки системы на жёсткий диск, а также в виде, совместимом со многими эмуляторами, такими, как Bochs, QEMU, VMware, VirtualBox и Virtual PC[15]. Эта операционная система является компактной. Части, которые работают в пользовательском режиме, разделены на небольшие модули и хорошо изолированы друг от друга. Например, каждый драйвер устройства выполняется как отдельный процесс пользовательского режима, и ошибка в драйвере (безусловно, источник большинства ошибок в любой операционной системе) не может полностью нарушить работу системы в целом. В MINIX, когда драйвер терпит крах, он автоматически перезапускается, не требуя пользовательского вмешательства, перезагрузки, и не затрагивая выполняющихся программ. Перечисленные особенности, микро-ядерная архитектура и другие аспекты значительно повышают надёжность этой операционной системы. Начиная с версии 3.1.4, MINIX поддерживает виртуальную память. Анонс изменений в релизе 3.1.5[16]:
Анонс изменений в релизе 3.1.6:
Анонс изменений в релизе 3.1.7:
Анонс изменений в релизе 3.2.0:
Отношения с LinuxРаннее влияниеТорвальдс использовал и оценил MINIX, а также был знаком с книгой Таненбаума[22], однако при реализации архитектуры ядра Linux решил не использовать архитектуру MINIX, применив архитектуру монолитного ядра вместо архитектуры микроядра. Данное решение Торвальдса было не одобрено Таненбаумом и вылилось в спор Таненбаума — Торвальдса. Таненбаум представил свои аргументы в пользу использования архитектуры микроядра в мае 2006 года[23]. Ранняя разработка ядра Linux была выполнена на хост-системе MINIX, что привело к тому, что Linux включил в себя различные функции из MINIX, такие как поддержка файловой системы MINIX. Утверждение Кеннета БраунаВ мае 2004 года Кеннет Браун из Института Алексиса де Токвиля[англ.] выдвинул обвинение в том, что основные части ядра Linux были скопированы из кодовой базы MINIX, объявив это в своей книге «Самиздат»[24]. Эти обвинения были опровергнуты — в первую очередь, Эндрю Таненбаумом, который сильно критиковал Кеннета Брауна и опубликовал длинное опровержение на своём личном веб-сайте, также указывая на то, что Браун финансировался Microsoft'ом[25][7]. Литература
См. такжеПримечания
Ссылки
|