Interested Article - Minix
- 2020-09-18
- 1
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 года) .
История
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 и транспьютеров .
Minix 1.5
Minix 1.5 вышел в 1991 году . Включал в себя поддержку для систем MicroChannel IBM PS/2 , которые были также портированы для архитектур Motorola 68000 и SPARC , при этом также поддерживая Atari ST , Amiga , Macintosh , и SPARCstation .
Minix 2
Minix 2.0 снова поддерживал только архитектуру x86 и был реализован в 1997 году . Он прилагался ко второй редакции книги Таненбаума, написанной им в соавторстве с Альбертом Вудхаллом (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:
- Добавлены новые драйверы: , , , ;
- Поддержка VirtualPC Network (DEC Tulip);
- Поддержка ;
- Поддержка — монтирование каталогов VMware как файловой системы;
- Поддержка FPU ;
- Поддержка System Event Framework (SEF);
- Экспериментальная поддержка APIC (по умолчанию отключена);
-
Добавлены порты:
- набор базовых системных утилит из OpenBSD — bsd-utils;
- интерпретатор Lua 5.1.4;
- файловый менеджер Midnight Commander ;
- эмулятор QEMU 0.12.2;
- средства для измерения производительности aim 9, 3;
- 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, был портирован .
Релиз 3.3.0 стал поддерживать ARM .
Minix 3.4.0 стал кандидатом на релиз в январе 2016 года .
Minix 3 всё ещё имеет сообщество, которое его разрабатывало, и сообщество было встречено на MINIXCon 2016 с 50 человек, чтобы обсудить будущее Minix .
Все чипсеты Intel после 2015 года выполняются в MINIX 3 как программный компонент Intel Management Engine .
Отношения с Linux
Раннее влияние
Торвальдс использовал и оценил MINIX, а также был знаком с книгой Таненбаума , однако при реализации архитектуры ядра Linux решил не использовать архитектуру MINIX, применив архитектуру монолитного ядра вместо архитектуры микроядра. Данное решение Торвальдса было не одобрено Таненбаумом и вылилось в спор Таненбаума — Торвальдса . Таненбаум представил свои аргументы в пользу использования архитектуры микроядра в мае 2006 года .
Ранняя разработка ядра Linux была выполнена на хост-системе MINIX, что привело к тому, что Linux включил в себя различные функции из MINIX, такие как поддержка файловой системы MINIX.
Утверждение Кеннета Брауна
В мае 2004 года Кеннет Браун из выдвинул обвинение в том, что основные части ядра Linux были скопированы из кодовой базы MINIX, объявив это в своей книге « Самиздат » . Эти обвинения были опровергнуты — в первую очередь, Эндрю Таненбаумом, который сильно критиковал Кеннета Брауна и опубликовал длинное опровержение на своём личном веб-сайте, также указывая на то, что Браун финансировался Microsoft'ом .
Литература
- Таненбаум Э., Вудхалл А. Операционные системы: разработка и реализация. 2-е издание. ISBN 5-469-00148-2
- Таненбаум Э., Вудхалл А. Операционные системы: разработка и реализация. 3-е издание. 2007 год. ISBN 5-469-01403-7
См. также
- - аналогичная образовательная операционная система от 1984 года.
Примечания
- — 2017.
- . Дата обращения: 11 сентября 2010. Архивировано из 18 августа 2010 года.
- ↑ . Дата обращения: 17 июня 2018. Архивировано из 26 апреля 2019 года.
- . Дата обращения: 17 июня 2018. 4 марта 2016 года.
- . Дата обращения: 11 марта 2011. 17 декабря 2009 года.
- . Дата обращения: 17 июня 2018. 26 февраля 2021 года.
- . Дата обращения: 17 июня 2018. 17 апреля 2016 года.
- . Дата обращения: 17 июня 2018. Архивировано из 12 мая 2016 года.
- . Дата обращения: 17 июня 2018. Архивировано из 4 февраля 2012 года.
- . 28 ноября 2002 года.
- . Дата обращения: 17 июня 2018. 28 мая 2013 года.
- . Дата обращения: 18 июня 2012. Архивировано из 21 июня 2012 года.
- . Дата обращения: 17 июня 2018. 17 июня 2018 года.
- . Дата обращения: 17 июня 2018. 24 июня 2018 года.
- . Дата обращения: 17 июня 2018. 3 июня 2018 года.
- . Дата обращения: 17 июня 2018. Архивировано из 2 августа 2021 года.
- . Дата обращения: 18 июля 2018. 18 июля 2018 года.
- . Дата обращения: 18 июля 2018. 20 июня 2018 года.
- . Дата обращения: 18 июля 2018. 18 июля 2018 года.
Ссылки
- — официальный сайт Minix (англ.)
- (англ.)
- Линуса Торвальдса и Эндрю Таненбаума о технологиях Minix и Linux
- — Minix Usenet newsgroup
- в каталоге ссылок Curlie (dmoz) (рус.)
- в каталоге ссылок Curlie (dmoz) (англ.)
- 2020-09-18
- 1