Minix

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Minix
MINIX screenshot.png
Разработчик

Таненбаум, Эндрю

Семейство ОС

UNIX-подобная операционная система

Первый выпуск

1987[1]

Последняя версия

3.3.0 (16 сентября 2014)[2]

Поддерживаемые платформы

x86 и ARM

Тип ядра

Микроядро

Лицензия

лицензия BSD[3]

Состояние

Актуальное

Репозиторий исходного кода

git.minix3.org/?p=minix.git;a=summary[4]

Веб-сайт

minix3.org

Commons-logo.svg Minix на Викискладе

Minix — свободная Unix-подобная микроядерная операционная система, распространяемая по лицензии BSD. Эндрю Таненбаум создал первую версию Minix в 1987 в качестве «иллюстрации» учебника «Операционные системы: Разработка и реализация». Среди студентов, изучающих теорию операционных систем по исходникам Minix, наибольшей известности достиг Линус Торвальдс, разработчик Linux. Изначально, целью Minix являлось обучение студентов строению компьютеров и основ операционных систем. Исходные коды Minix совершенно отличны от кодов ОС Linux, но как и Linux, Minix является Unix-подобной операционной системой с аналогичным набором команд.

Исходный код MINIX 3 с переведёнными на русский язык комментариями можно получить на CD вместе с книгой «Операционные системы: разработка и реализация» (Таненбаум Э. С., Вудхалл А. С., 3-е издание опубликовано в России в 2007 году), в которой детально расписано строение ОС на примере Minix.

1 ноября 2008 года Эндрю Таненбаум получил грант в 2,5 млн евро от Европейского исследовательского совета для работы над проектом: «Исследование действительно надёжного и безопасного системного программного обеспечения». Грант позволит продолжить работы по дальнейшему развитию ОС MINIX 3 в течение не менее пяти лет (до ноября 2013 года)[5].

История[править | править вики-текст]

Minix[править | править вики-текст]

Эндрю Таненбаум создал Minix в Амстердамском свободном университете для наглядной демонстрации принципов, описываемых в его книге «Operating Systems: Design and Implementation» (1987). ISBN 0-13-637406-9. Сокращённые 12000 строк исходного кода ядра, подсистемы управления памятью и файловой системы Minix были напечатаны в книге. Minix написан преимущественно на языке программирования C.

В далёком 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 2[править | править вики-текст]

Minix 2.0 снова поддерживал только архитектуру x86. Он прилагался ко второй редакции книги Таненбаума, написанной им в соавторстве с Альбертом Вудхаллом (Albert Woodhull). Minix 1 и 2 были средствами обучения.

Minix 3[править | править вики-текст]

Minix версии 3 был анонсирован 24 октября 2005 года Эндрю Таненбаумом во время его речи на конференции по принципам операционных систем, организованном Association for Computing Machinery (ACM Symposium on Operating Systems Principles). Несмотря на то, что Minix всё ещё служит в качестве учебного примера в новой редакции книги Таненбаума и Вудхалла, он был переработан и доведён до годности к использованию в качестве надёжной операционной системы для микроконтроллеров и других встраиваемых систем. Он доступен на LiveCD, с которым можно работать без необходимости установки системы на жёсткий диск, а также в виде, совместимом со многими эмуляторами, такими, как Bochs, QEMU, VMware, VirtualBox и Virtual PC.

Эта операционная система является компактной. Части, которые работают в пользовательском режиме, разделены на небольшие модули и хорошо изолированы друг от друга. Например, каждый драйвер устройства выполняется как отдельный процесс пользовательского режима, и ошибка в драйвере (безусловно, источник большинства ошибок в любой операционной системе) не может полностью остановить её. В Minix, когда драйвер терпит крах, он автоматически перезапускается, не требуя пользовательского вмешательства, перезагрузки, и не затрагивая выполняющихся программ. Перечисленные особенности, микроядерная архитектура и другие аспекты значительно повышают надёжность этой операционной системы.

Начиная с версии 3.1.4 Minix поддерживает виртуальную память.

Анонс изменений в релизе 3.1.5:

улучшена производительность,
добавлена поддержка разделяемой памяти (Shared memory),
добавлена функция setitimer,
улучшен код обработки сигналов,
добавлены порты PostgreSQL, QEMU и Sudo.

Анонс изменений в релизе 3.1.6:

Добавлены новые драйверы: Atheros L2, Intel E1000, Realtek 8169, DEC Tulip;
Поддержка VirtualPC Network (DEC Tulip);
Поддержка PipeFS;
Поддержка HGFS — монтирование каталогов VMware как файловой системы;
Поддержка FPU;
Поддержка System Event Framework (SEF);
Экспериментальная поддержка APIC (по умолчанию отключена);
Добавлены порты:
- набор базовых системных утилит из OpenBSD — bsd-utils;
- интерпретатор Lua 5.1.4;
- файловый менеджер Midnight Commander;
- эмулятор QEMU 0.12.2;
- средства для измерения производительности aim9, lmbench3;
- tcpdump.

Анонс изменений в релизе 3.1.7:

Планирование ресурсов на пользовательском уровне (Userspace scheduling) и поддержка серверов-планировщиков;
Корректная поддержка одновременной работы с несколькими Ethernet-картами одного типа;
Исправлены ошибки, мешающие запуску Minix под управлением системы виртуализации KVM;
Загрузчик теперь может работать с образами, размер которых превышает 16 Мб;
Размер корневого раздела увеличен до 64 Мб, скрипт установки изменен с целью корректной работы с корневыми разделами нестандартного размера;
В системе сборки появилась поддержка сборки MINIX с использованием GCC (ранее использовался набор компиляторов ACK), ведется работа по обеспечению поддержки icc, clang и llvm-gcc;
Проведена реорганизация и чистка дерева исходных текстов;
Добавлены новые порты: Git и GCC 4.4.3;
Реализован вторичный уровень кеширования ФС в VM, использующий всю доступную память для минимизации задержки при вводе-выводе;
Поддержка кодировок CP-1251 и KOI8-U.

Анонс изменений в релизе 3.2.0:

Сегодня Эндрю Таненбаум благосклонно относится к участию в развитии MINIX 3.

Литература[править | править вики-текст]

  • Таненбаум Э., Вудхалл А. Операционные системы: разработка и реализация. 2-е издание. ISBN 5-469-00148-2
  • Таненбаум Э., Вудхалл А. Операционные системы: разработка и реализация. 3-е издание, 2007 год. ISBN 5-469-01403-7

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]