Minix

Материал из Википедии — свободной энциклопедии
Перейти к навигацииПерейти к поиску
Minix
Изображение логотипа
РазработчикЭндрю Таненбаум
Первый выпуск1987[3]
Последняя версия
Поддерживаемые языкианглийский
Поддерживаемые платформыX86 и ARM architecture
ТипядраМикроядро
Лицензиямодифицированная лицензия BSD[4][5][…]
Репозиторий исходного кодаgit.minix3.org
Веб-сайтminix3.org (англ.)
Логотип Викисклада Медиафайлы на Викискладе

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

Первоначально целью MINIX было обучение студентов конструированию компьютеров и созданию операционной системы,исходные коды которой MINIX полностью отличаются от кодов операционной системыLinux, но, как и Linux, MINIX представляет собойUnix-подобную операционную систему с аналогичными командами.

Исходный кодMINIX 3 с переведёнными на русский язык комментариями можно было получить на CD вместе с книгой «Операционные системы: разработка и реализация», в которой детально расписано строение ОС на примере MINIX.

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

Содержание

История

[править |править код]

MINIX 1

[править |править код]

Эндрю Таненбаум создал MINIX вАмстердамском свободном университете для наглядной демонстрации принципов, описываемых в своей книге «Операционные системы: Разработка и реализация» (1987). Сокращённые 12000строкисходного кодаядра, подсистемы управления памятью ифайловой системы MINIX были напечатаны в самой книге.

В 1987 году Таненбаум относился к MINIX только как к учебному пособию. Чтобы оставить код ОС доступным для изучения в течениесеместра, Таненбаум отвергал предложения усовершенствовать MINIX или принятьпатчи, которые поступали от читателей его учебника. Роль проекта, в котором читатели Таненбаума воплотили своё стремление разрабатывать операционные системы, взял на себяLinux.

Изначально Таненбаум разработал MINIX для компьютеровIBM PC и IBM PC/AT, доступных в то время. MINIX версии 1.5 был перенесен наMotorola 68000, что обеспечило совместимость с популярными платформамиAmiga,Atari ST,Apple Macintosh. Кроме того, были сделаны версии дляSPARC,National SemiconductorNS32032 итранспьютеров.

MINIX 1.5

[править |править код]

MINIX 1.5 вышел в 1991 году. Включал в себя поддержку для системMicroChannelIBM PS/2, которые были также перенесены для архитектур Motorola 68000 иSPARC, при этом также поддерживаяAtari ST,Amiga,Macintosh[10] иSPARCstation[11][12].

MINIX 2

[править |править код]
Загрузочный экран MINIX 2.0.4
Командная оболочка MINIX 2.0.4

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

MINIX 3

[править |править код]
Вывод команды top в MINIX 3.2
ЗапущенныйX11 с оконным менеджеромtwm в MINIX 3
Основная статья:MINIX 3

MINIX версии 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]:

  • улучшена производительность;
  • добавлена поддержкаразделяемой памяти (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, использующий всю доступную память для минимизации задержки при вводе-выводе;
  • поддержка кодировокCP1251 иKOI8-U.

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

  • пользовательское пространство был в основном заменен наNetBSD, и появилась поддержка от pkgsrc, увеличив доступныеприложения, которые MINIX может использовать. Clang заменил предыдущий компилятор (с поддержкой GCC), а GDB, отладчик GNU, был портирован[17][18];
  • релиз 3.3.0 стал поддерживатьARM;
  • MINIX 3.4.0 стал кандидатом на релиз в январе 2016 года[19];
  • MINIX 3 всё ещё имеет сообщество, которое его разрабатывало, и сообщество было встречено на MINIXCon 2016 с 50 человек, чтобы обсудить будущее MINIX[20];
  • все чипсеты Intel после 2015 года выполняются в MINIX 3 как программный компонентIntel Management Engine[21].

Отношения с Linux

[править |править код]

Раннее влияние

[править |править код]

Торвальдс использовал и оценил MINIX, а также был знаком с книгой Таненбаума[22], однако при реализации архитектуры ядра Linux решил не использовать архитектуру MINIX, применив архитектурумонолитного ядра вместо архитектуры микроядра. Данное решение Торвальдса было не одобрено Таненбаумом и вылилосьв спор Таненбаума — Торвальдса. Таненбаум представил свои аргументы в пользу использования архитектуры микроядра в мае 2006 года[23].

Ранняя разработка ядра Linux была выполнена на хост-системе MINIX, что привело к тому, что Linux включил в себя различные функции из MINIX, такие как поддержкафайловой системы MINIX.

Утверждение Кеннета Брауна

[править |править код]

В мае 2004 года Кеннет Браун изИнститута Алексиса де Токвиля[англ.] выдвинул обвинение в том, что основные части ядра Linux были скопированы из кодовой базы MINIX, объявив это в своей книге «Самиздат»[24]. Эти обвинения были опровергнуты — в первую очередь, Эндрю Таненбаумом, который сильно критиковал Кеннета Брауна и опубликовал длинное опровержение на своём личном веб-сайте, также указывая на то, что Браун финансировался Microsoft’ом[7][25].

См. также

[править |править код]
  • Xinu[англ.] — аналогичная образовательная операционная система от 1984 года
  • Redox — операционная система наRust, использующая ядро типа MINIX

Примечания

[править |править код]
  1. MINIX 3.3.0 is Available Now
  2. Release v3.3.0 · Stichting-MINIX-Research-Foundation/minix (англ.)
  3. History of MINIX 3
  4. Legal Questions
  5. https://git.minix3.org/index.cgi?p=minix.git;a=blob_plain;f=LICENSE;hb=HEAD
  6. WebCite query result . Дата обращения: 11 сентября 2010. Архивировано изоригинала 18 августа 2010 года.
  7. 12faq [Wiki] . Дата обращения: 17 июня 2018. Архивировано изоригинала 26 апреля 2019 года.
  8. MINIX is now available under the BSD license . Дата обращения: 17 июня 2018. Архивировано 4 марта 2016 года.
  9. MINIX 3 News — 01 Nov 2008 . Дата обращения: 11 марта 2011. Архивировано 17 декабря 2009 года.
  10. macminix (MacMinix) · GitHub . Дата обращения: 17 июня 2018. Архивировано 26 февраля 2021 года.
  11. Источник . Дата обращения: 17 июня 2018. Архивировано 17 апреля 2016 года.
  12. Installing and running MINIX for Solaris (SMX) . Дата обращения: 17 июня 2018. Архивировано изоригинала 12 мая 2016 года.
  13. Архивированная копия . Дата обращения: 17 июня 2018. Архивировано изоригинала 4 февраля 2012 года.
  14. MINIX/SH Home Page.Архивировано 28 ноября 2002 года.
  15. MINIX 3
  16. New to minix — Группы Google . Дата обращения: 17 июня 2018. Архивировано 28 мая 2013 года.
  17. WebCite query result . Дата обращения: 18 июня 2012. Архивировано изоригинала 21 июня 2012 года.
  18. MINIX 3.2: A microkernel with NetBSD applications [LWN.net] . Дата обращения: 17 июня 2018. Архивировано 17 июня 2018 года.
  19. Index of /iso/snapshot/ . Дата обращения: 17 июня 2018. Архивировано 24 июня 2018 года.
  20. MINIXCon 2016 . Дата обращения: 17 июня 2018. Архивировано 3 июня 2018 года.
  21. Positive Technologies — learn and secure : Disabling Intel ME 11 via undocumented mode . Дата обращения: 17 июня 2018. Архивировано изоригинала 2 августа 2021 года.
  22. How Linux was born, as told by Linus Torvalds himself | Ars Technica . Дата обращения: 18 июля 2018. Архивировано 18 июля 2018 года.
  23. Tanenbaum-Torvalds Debate Part II . Дата обращения: 18 июля 2018. Архивировано 20 июня 2018 года.
  24. Samizdat’s critics… Brown replies
  25. Andrew S. Tanenbaum, Professor at the Vrije Universiteit . Дата обращения: 18 июля 2018. Архивировано 18 июля 2018 года.

Литература

[править |править код]

Ссылки

[править |править код]
Имеетсявикиучебник по теме«Minix»
Перейти к шаблону «Операционные системы»
Для серверов
или рабочих станций
Unix-подобные
Не Unix-подобные
Встраиваемые
Другие
Источник —https://ru.wikipedia.org/w/index.php?title=Minix&oldid=150992205
Категории:
Скрытые категории: