Minix
Minix — свободная Unix-подобная микроядерная операционная система, распространяемая по лицензии BSD[7][8]. Эндрю Таненбаум создал первую версию Minix в 1987 в качестве «иллюстрации» учебника «Операционные системы: Разработка и реализация». Среди студентов, изучающих теорию операционных систем по исходникам Minix, наибольшей известности достиг Линус Торвальдс, разработчик Linux[9]. Изначально целью Minix являлось обучение студентов строению компьютеров и основ операционных систем. Исходные коды Minix совершенно отличны от кодов ОС Linux, но как и Linux, Minix является Unix-подобной операционной системой с аналогичным набором команд.
Minix | |
---|---|
Разработчик | Эндрю Таненбаум |
Семейство ОС | UNIX-подобные операционные системы |
Первый выпуск | 1987[1] |
Последняя версия |
|
Последняя тестовая версия | |
Поддерживаемые языки | английский |
Поддерживаемые платформы | x86 и ARM |
Тип ядра | Микроядро |
Лицензия | модифицированная лицензия BSD[d][4][5][6] |
Репозиторий исходного кода | git.minix3.org/?p=minix.… |
Веб-сайт | minix3.org (англ.) |
Медиафайлы на Викискладе |
Исходный код MINIX 3 с переведёнными на русский язык комментариями можно получить на CD вместе с книгой «Операционные системы: разработка и реализация» (Таненбаум Э. С., Вудхалл А. С., 3-е издание опубликовано в России в 2007 году), в которой детально расписано строение ОС на примере Minix.
1 ноября 2008 года Эндрю Таненбаум получил грант в 2,5 млн евро от Европейского исследовательского совета для работы над проектом: «Исследование действительно надёжного и безопасного системного программного обеспечения». Грант позволит продолжить работы по дальнейшему развитию ОС MINIX 3 в течение не менее пяти лет (до ноября 2013 года)[10].
История
Minix 1
Эндрю Таненбаум создал 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 1.5
Minix 1.5 вышел в 1991 году. Включал в себя поддержку для систем MicroChannel IBM PS/2, которые были также портированы для архитектур Motorola 68000 и SPARC, при этом также поддерживая Atari ST, Amiga, Macintosh[11], и SPARCstation[12][13].
Minix 2
Minix 2.0 снова поддерживал только архитектуру x86, и был реализован в 1997 году. Он прилагался ко второй редакции книги Таненбаума, написанной им в соавторстве с Альбертом Вудхаллом (Albert Woodhull). Minix 1 и 2 были средствами обучения[14][15].
Minix 3
Minix версии 3 был анонсирован 24 октября 2005 года Эндрю Таненбаумом во время его речи на конференции по принципам операционных систем, организованном Association for Computing Machinery (ACM Symposium on Operating Systems Principles). Несмотря на то, что Minix всё ещё служит в качестве учебного примера в новой редакции книги Таненбаума и Вудхалла, он был переработан и доведён до годности к использованию в качестве надёжной операционной системы для микроконтроллеров и других встраиваемых систем. Он доступен на LiveCD, с которым можно работать без необходимости установки системы на жёсткий диск, а также в виде, совместимом со многими эмуляторами, такими, как Bochs, QEMU, VMware, VirtualBox и Virtual PC[16].
Эта операционная система является компактной. Части, которые работают в пользовательском режиме, разделены на небольшие модули и хорошо изолированы друг от друга. Например, каждый драйвер устройства выполняется как отдельный процесс пользовательского режима, и ошибка в драйвере (безусловно, источник большинства ошибок в любой операционной системе) не может полностью нарушить работу системы в целом. В Minix, когда драйвер терпит крах, он автоматически перезапускается, не требуя пользовательского вмешательства, перезагрузки, и не затрагивая выполняющихся программ. Перечисленные особенности, микроядерная архитектура и другие аспекты значительно повышают надёжность этой операционной системы.
Начиная с версии 3.1.4, Minix поддерживает виртуальную память.
Анонс изменений в релизе 3.1.5[17]:
- улучшена производительность,
- добавлена поддержка разделяемой памяти (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:
- Пользовательское пространство был в основном заменен на NetBSD, и появилась поддержка от pkgsrc, увеличив доступные приложения, которые Minix может использовать. Clang заменил предыдущий компилятор (с поддержкой GCC), а GDB, отладчик GNU, был портирован[18][19].
Релиз 3.3.0 стал поддерживать ARM.
Minix 3.4.0 стал кандидатом на релиз в январе 2016 года[20].
Minix 3 всё ещё имеет сообщество, которое его разрабатывало, и сообщество было встречено на MINIXCon 2016 с 50 человек, чтобы обсудить будущее Minix[21].
Все чипсеты Intel после 2015 года выполняются в MINIX 3 как программный компонент Intel Management Engine[22].
Отношения с Linux
Раннее влияние
Торвальдс использовал и оценил MINIX, будучи студентом у Таненбаума[23], однако при реализации архитектуры ядра Linux решил не использовать архитектуру MINIX, применив архитектуру монолитного ядра вместо архитектуры микроядра. Данное решение Торвальдса было не одобрено Таненбаумом и вылилось в спор Таненбаума — Торвальдса. Таненбаум представил свои аргументы в пользу использования архитектуры микроядра в мае 2006 года[24].
Ранняя разработка ядра Linux была выполнена на хост-системе MINIX, что привело к тому, что Linux включил в себя различные функции из MINIX, такие как поддержка файловой системы MINIX.
Утверждение Кеннета Брауна
В мае 2004 года Кеннет Браун из Института Алексиса де Токвилявыдвинул обвинение в том, что основные части ядра Linux были скопированы из кодовой базы MINIX, объявив это в своей книге «Самиздат»[25]. Эти обвинения были опровергнуты — в первую очередь, Эндрю Таненбаумом, который сильно критиковал Кеннета Брауна и опубликовал длинное опровержение на своём личном веб-сайте, также указывая на то, что Браун финансировался Microsoft[26][8].
Литература
- Таненбаум Э., Вудхалл А. Операционные системы: разработка и реализация. 2-е издание. ISBN 5-469-00148-2
- Таненбаум Э., Вудхалл А. Операционные системы: разработка и реализация. 3-е издание. 2007 год. ISBN 5-469-01403-7
См. также
- Xinu - аналогичная образовательная операционная система от 1984 года.
Примечания
- Minix3
- MINIX 3.3.0 is Available Now
- https://www.phoronix.com/scan.php?page=news_item&px=MINIX-3.4-RC6-Released — 2017.
- Legal Questions
- https://git.minix3.org/index.cgi?p=minix.git;a=blob_plain;f=LICENSE;hb=HEAD
- https://web.archive.org/web/20120210122509/http://www.minix3.org/license.html
- WebCite query result
- faq [Wiki] (недоступная ссылка). Дата обращения: 17 июня 2018. Архивировано 26 апреля 2019 года.
- MINIX is now available under the BSD license
- MINIX 3 News — 01 Nov 2008
- macminix (MacMinix) · GitHub
- http://www.minix3.org/previous-versions/CD-ROM-2.0/README.TXT
- Installing and running MINIX for Solaris (SMX)
- Архивированная копия (недоступная ссылка). Дата обращения: 17 июня 2018. Архивировано 4 февраля 2012 года.
- MINIX/SH Home Page. Архивировано 28 ноября 2002 года.
- MINIX 3
- New to minix — Группы Google
- WebCite query result
- MINIX 3.2: A microkernel with NetBSD applications [LWN.net]
- Index of /iso/snapshot/
- MINIXCon 2016
- Positive Technologies — learn and secure : Disabling Intel ME 11 via undocumented mode
- How Linux was born, as told by Linus Torvalds himself | Ars Technica
- Tanenbaum-Torvalds Debate Part II
- Samizdat’s critics… Brown replies
- Andrew S. Tanenbaum, Professor at the Vrije Universiteit
Ссылки
- minix3.org — официальный сайт Minix (англ.)
- Официальный сайт поддержки MINIX 2 (англ.)
- Русскоязычное сообщество разработчиков и пользователей MINIX 3
- Форум поддержки ОС Minix / MINIX 3 на сайте Романа Игнатова
- Minix на лаптопах и КПК
- История Minix от Эндрю Таненбаума
- Спор Линуса Торвальдса и Эндрю Таненбаума о технологиях Minix и Linux
- Minix под лицензией BSD
- comp.os.minix — Minix Usenet newsgroup
- Интервью Таненбаума для русского сообщества разработчиков и пользователей MINIX 3
- Minix в каталоге ссылок Curlie (dmoz) (рус.)
- Minix в каталоге ссылок Curlie (dmoz) (англ.)