MINIX (от mini- Unix ) — Unix-подобная операционная система , основанная на микроядерной архитектуре . Начиная с версии 2.0 она совместима с POSIX . [10] [11]
Ранние версии MINIX были созданы Эндрю С. Таненбаумом для образовательных целей. Начиная с MINIX 3 , основная цель разработки сместилась с образования на создание высоконадежной и самовосстанавливающейся микроядерной ОС. MINIX 3 разрабатывалась как программное обеспечение с открытым исходным кодом .
MINIX был впервые выпущен в 1987 году, и его полный исходный код был предоставлен университетам для изучения на курсах и исследований. Он стал бесплатным и открытым программным обеспечением с тех пор, как был перелицензирован под лицензией BSD 3-Clause в апреле 2000 года. [6]
Эндрю С. Таненбаум создал MINIX в Свободном университете в Амстердаме, чтобы проиллюстрировать принципы, изложенные в его учебнике « Операционные системы: проектирование и реализация» (1987). (Несмотря на общее название, он не имеет никакого отношения к более старой системе MINIX от Digital Systems House, Inc. [12], основанной на коде Unix компании AT&T .)
Сокращенные 12 010 строк исходного кода ядра MINIX 1.0 на языке C , менеджера памяти и файловой системы MINIX 1.0 напечатаны в книге. Prentice-Hall также выпустил исходный код MINIX и двоичные файлы на дискете со справочным руководством. MINIX 1 был совместим по системным вызовам с седьмым изданием Unix . [13]
Первоначально Таненбаум разработал MINIX для совместимости с микрокомпьютерами IBM PC и IBM PC/AT 8088 , доступными в то время.
MINIX 1.5, выпущенный в 1991 году, включал поддержку систем MicroChannel IBM PS/2 и был также портирован на архитектуры Motorola 68000 и SPARC , поддерживая платформы Atari ST , Amiga , Macintosh , [14] и Sun SPARCstation . Были также неофициальные порты на совместимые с ПК Intel 386 (в 32-битном защищенном режиме ), National Semiconductor NS32532 , ARM и транспьютерные процессоры Inmos . Meiko Scientific использовала раннюю версию MINIX в качестве основы для операционной системы MeikOS для своих параллельных компьютеров Computing Surface на основе транспьютера .
Однако спрос на 68k-архитектуру пошел на убыль, и MINIX 2.0, выпущенный в 1997 году, был доступен только для архитектур SPARC x86 и Solaris . Это было предметом второго издания учебника Таненбаума, написанного совместно с Альбертом Вудхаллом и распространявшегося на CD-ROM , включенном в книгу. MINIX 2.0 добавил соответствие POSIX .1, поддержку процессоров 386 и более поздних в 32-битном режиме и заменил сетевые протоколы Amoeba , включенные в MINIX 1.5, на стек TCP/IP . Также была доступна версия MINIX, работающая как пользовательский процесс под SunOS и Solaris , симулятор под названием SMX (операционная система) или просто SMX для краткости. [15] [16]
Версия 2.0.3 была выпущена в мае 2001 года. Это была первая версия после того, как MINIX была перелицензирована в соответствии с лицензией BSD-3-Clause , которая имела обратную силу для всех предыдущих версий. [17]
Minix-vmd — это вариант MINIX 2.0 для процессоров, совместимых с Intel IA-32 , созданный двумя исследователями из Свободного университета, который добавляет виртуальную память и поддержку X Window System .
MINIX 3 был публично анонсирован 24 октября 2005 года Таненбаумом во время его вступительного выступления на симпозиуме Ассоциации вычислительной техники (ACM) по принципам операционных систем (SOSP). Хотя он по-прежнему служит примером для нового издания учебника Таненбаума, соавтором которого является Альберт С. Вудхалл, он был полностью переработан, чтобы быть «пригодным для использования в качестве серьезной системы на компьютерах с ограниченными ресурсами и встроенных компьютерах, а также для приложений, требующих высокой надежности». [18]
В настоящее время MINIX 3 поддерживает системы архитектуры IA-32 и ARM . Он доступен в формате live CD , что позволяет использовать его на компьютере без установки на жесткий диск, а также в версиях, совместимых с системами аппаратной эмуляции и виртуализации, включая Bochs , QEMU , VMware Workstation и Fusion , VirtualBox и Microsoft Virtual PC .
Версия 3.1.2 была выпущена 18 апреля 2006 года. Это была первая версия после того, как MINIX была перелицензирована в соответствии с лицензией BSD-3-Clause с новым четвертым пунктом. [19]
Версия 3.1.5 была выпущена 5 ноября 2009 года. Она содержит X11 , emacs , vi , cc , gcc , perl , python , ash , bash , zsh , ftp , ssh , telnet , pine и более 400 других распространенных служебных программ Unix . С добавлением X11 эта версия знаменует собой переход от текстовой системы. Во многих случаях она может автоматически перезапускать сбойный драйвер, не влияя на работающие процессы. Таким образом, MINIX является самовосстанавливающейся и может использоваться в приложениях, требующих высокой надежности. MINIX 3 также поддерживает управление виртуальной памятью , что делает ее пригодной для использования в настольных ОС. [20] Однако настольные приложения, такие как Firefox и OpenOffice.org, пока не доступны для MINIX 3.
Начиная с версии 3.2.0, пользовательское пространство было в основном заменено пространством NetBSD , и поддержка pkgsrc стала возможной, что увеличило количество доступных программных приложений, которые может использовать MINIX. Clang заменил предыдущий компилятор ( теперь GCC нужно было компилировать вручную), а GDB , отладчик GNU, был перенесен. [21] [22]
MINIX 3.3.0, выпущенный в сентябре 2014 года, обеспечил поддержку ARM.
MINIX 3.4.0RC, релиз-кандидаты стали доступны в январе 2016 года. [23] Однако стабильный релиз MINIX 3.4.0 еще не был анонсирован, а разработка MINIX была приостановлена с 2018 года. [24]
MINIX поддерживает множество языков программирования, включая C , C++ , FORTRAN , Modula-2 , Pascal , Perl , Python и Tcl .
Более 50 человек посетили MINIXCon 2016, конференцию, на которой обсуждалась история и будущее MINIX. [25]
Все чипсеты Intel, выпущенные после 2015 года, используют MINIX 3 как программный компонент Intel Management Engine . [26] [27]
Линус Торвальдс использовал и ценил MINIX, [28] но его проект значительно отличался от архитектуры MINIX, в частности, за счет использования монолитного ядра вместо микроядра . Это не было одобрено Таненбаумом в дебатах Таненбаума и Торвальдса . Таненбаум снова объяснил свое обоснование использования микроядра в мае 2006 года. [29]
Ранняя разработка ядра Linux велась на хост-системе MINIX, что привело к тому, что Linux унаследовал различные функции от MINIX, такие как файловая система MINIX . Эрик Рэймонд утверждал, что Линус на самом деле не писал Linux с нуля, а скорее повторно использовал исходный код самого MINIX, чтобы иметь рабочую кодовую базу. По мере развития разработки код MINIX постепенно полностью исчезал. [30]
В мае 2004 года Кеннет Браун из Института Алексиса де Токвиля в книге под названием «Самиздат» выдвинул обвинение в том, что основные части ядра Linux были скопированы из кодовой базы MINIX . [31] Эти обвинения были повсеместно опровергнуты — наиболее заметным из них был Таненбаум, который резко раскритиковал Брауна и опубликовал длинное опровержение на своем личном веб-сайте, также заявив, что Браун финансировался Microsoft . [10] [11]
Во время первоначальной разработки MINIX ее лицензия была относительно либеральной. Ее лицензионный сбор был очень небольшим ($69) по сравнению с другими операционными системами. Таненбаум хотел, чтобы MINIX был максимально доступен для студентов , но его издатель не хотел предлагать материалы (например, исходный код), которые можно было бы свободно копировать, поэтому в качестве компромисса была применена ограничительная лицензия, требующая номинальной платы (включенной в стоимость книги Таненбаума). Это предотвратило использование MINIX в качестве основы для свободно распространяемой программной системы.
Когда в начале 1990-х годов стали доступны бесплатные и открытые Unix-подобные операционные системы, такие как Linux и 386BSD , многие добровольные разработчики программного обеспечения отказались от MINIX в пользу них. В апреле 2000 года MINIX стал бесплатным и открытым программным обеспечением под лицензией BSD-3-Clause , которая была применена задним числом ко всем предыдущим версиям. [17] [7] Однако к этому времени другие операционные системы превзошли его возможности, и он оставался в первую очередь операционной системой для студентов и любителей . В конце 2005 года MINIX был перелицензирован с добавлением четвертого пункта к лицензии BSD-3-Clause . [4]
Лицензия Minix изменилась в апреле 2000 г. и имеет обратную силу для всех предыдущих дистрибутивов Minix, хотя они по-прежнему содержат старую, более ограничительную лицензию.
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка )