Иллюстрированный самоучитель по теории операционных систем

Микроядро. Minix. Open Software Foundation.

Концепция микроядра с технической точки зрения подробно рассматривается в разд. "Монолитные системы и системы с микроядром". С коммерческой (если уместно говорить о коммерческих целях разработки свободно распространяемого ПО) точки зрения BSD Mach был попыткой убить одновременно двух зайцев – совместить переписывание ядра BSD Unix для достижения лицензионной чистоты с изменением архитектуры этого ядра.

Микроядерная архитектура позволила бы избежать самой одиозной черты традиционных Unix систем – однопоточного (или, точнее, кооперативно многозадачного) ядра и сделала бы систему пригодной для использования в задачах реального времени. Проект Mach не имел успеха – полноценного ядра Unix на его основе построить не удалось ни самим участникам проекта, ни Столлмэну в рамках проекта GNU HURD.

Однако идея микроядра и сам термин получили широкое распространение. Микроядерную архитектуру имеет UNIX System V Release 4. Кроме того, на самостоятельно разработанном микроядре основана своеобразная ОС реального времени, часто относимая к семейству Unix – QNX.

Основные работы над ядром BSD UNIX пошли в другом направлении: подсистемы, которые AT&T считал основанием для требования лицензионных выплат, переписывались с нуля, но архитектура системы в целом пересмотру не подвергалась. Этот процесс был в основном завершен к 1994 г., и современные ветви BSD по-прежнему имеют монолитную архитектуру.

Minix

Minix был разработан А. Танненбаумом, преподавателем университета Врийе (Vrije University) в Амстердаме [www.cs.vu.nl minixj. Это компактная система, созданная для учебных целей, способна работать на 16 – и 32-разрядных микропроцессорах, причем не только самостоятельно, но и будучи скомпилирована и запущена в качестве задачи под "нормальной" ОС Unix. Первая версия системы имела очень консервативную (чтобы не сказать – архаичную) архитектуру, очень близкую к архитектуре ранних версий UNIX. Minix 2.0, выпущенный в 1996 г., основан на микроядре и поддерживает страничную виртуальную память на процессорах х86.

Основной целью разработки было создание системы, которая, с одной стороны, была бы работоспособна и могла бы продемонстрировать основные архитектурные концепции современных многозадачных ОС, а с другой – достаточно проста, чтобы студенты могли полностью в ней разобраться. Второе требование фактически исключало возможность доработки ОС до состояния, в котором она могла бы стать коммерчески применима.

Наиболее известен прямой потомок Minix – Linux. Первая версия Linux разрабатывалась путем переписывания ядра Minix модуль за модулем, что значительно упростило Л. Торвальдсу отладку системы. Воспоминаниями об этих временах в современном Linux является поддержка файловой системы minix, название основной ФС – ext2fs (Second Extended File System – расширенная [по сравнению с minix] файловая система, вторая версия) и реликты миниксового кода в некоторых модулях.

Open Software Foundation

Консорциум OSF, в который вошли DEC, IBM, Hewlett-Packard и ряд менее известных поставщиков рабочих станций и серверов, был создан в 1988 г. Его деятельность началась с принятия и публикации стандарта POSIX.1 (Portable OS Interface based on uniX – переносимый интерфейс ОС, основанный на Unix).

В рамках OSF начались работы по разработке ядца Unix-совместимой ОС, по архитектуре в целом аналогичной UNIX SVR3 (монолитное ядро с поддержкой STREAMS и некоторыми особенностями BSD). К моменту завершения разработки уже был выпущен UNIX System V Release 4.2 (Destiny), достигший всех целей, заявлявшихся в проекте UNIX System VI, и консорциум фактически распался. DEC Unix (известный также как OSF/1) оказался чрезмерно тяжеловесным, не имел коммерческого успеха и, возможно, сыграл немалую роль в судьбе компании DEC. Значительно более счастливой оказалась судьба IBM AIX, лишь частично основанной на коде OSF.

В 1996 г. то, что осталось от OSF, слилось с консорциумом Х/Open, деятельность которого по стандартизации Unix-систем имела гораздо больший успех.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.