Форумы Якутск Онлайн

Форумы Якутск Онлайн (https://forum.ya1.ru/index.php)
-   Soft (https://forum.ya1.ru/forumdisplay.php?f=45)
-   -   Введение в MINIX 3 (https://forum.ya1.ru/showthread.php?t=20857)

Весёлый Молочник 06.11.2007 17:50

Введение в MINIX 3
 
Эндрю С. Таненбаум (Andrew S. Tanenbaum)
Перевод: Павел Макаров

Оригинал

www.minix3.ru

1 февраля 2007 г

Как часто вы перезагружали ваш телевизор в прошедшем году? Вероятно, гораздо меньше, чем ваш компьютер. Конечно же, для этого есть много «резонов», но всё больше и больше пользователей, далёких от техники, не хотят и слышать о них. Они хотят только, чтобы их компьютер всё время прекрасно работал и никогда не отказывал. MINIX 3 является проектом по разработке операционной системы, надёжной, как телевизор, для встраиваемых систем и критических приложений, как, впрочем, и для будущих 50-долларовых однокристальных портативных компьютеров и настольных систем общего применения. Сегодня эта маленькая, простая и надёжная операционная система уже существует. И прошу заметить: это последняя публикация в дискуссии на тему альтернативных ОС.


Исторический экскурс

MINIX 3 имеет ясное будущее, но несколько затушёванное прошлое. Первая версия, MINIX 1, была создана в 1987 году и была первым клоном UNIX с полностью открытым исходным кодом. Она разрабатывалась быстро и скоро обрела свою собственную группу USENET (comp.os.minix) с 40'000 подписчиков в течение 3 месяцев – это большая цифра для времени, когда Интернет был доступен только исследователям из университетов и студентам. Одним из первых приверженцев MINIX был финский студент по имени Линус Торвальдс, который пошёл и купил ПК специально для того, чтобы запустить MINIX, очень тщательно изучил её и затем, вдохновлённый MINIX, решил написать свою собственную операционную систему. Хотя Линус и знал MINIX очень хорошо, он не заимствовал из неё какой-либо код, как приписывают ему некоторые. Система Линуса выросла в современную операционную систему Linux. Автор MINIX, Эндрю Таненбаум (Andrew Tanenbaum, и Торвальдс провели несколько красивых публичных дискуссий по устройству операционных систем, первую из них в 1992 году, а самую последнюю – в 2006 году (см. перевод - прим. CITKIT.ru).

Возрождение


Хотя MINIX была (и остаётся по-прежнему) широко используемым инструментом для курсов по изучению операционных систем в университетах, она получила новый импульс в 2005 году, когда Таненбаум собрал новую команду разработчиков для полной переделки её в сверхнадёжную систему. Хотя MINIX 3 и имеет общие исторические корни с MINIX 1 и MINIX 2 (реализованной в 1997 году как POSIX-совместимая ОС), но это фактически новая система (ситуация аналогична тому, как соотносятся Windows XP и Windows 3.1).

Различные исследования показывают, что программное обеспечение в общем случае содержит порядка 6ч16 ошибок на 1000 строк кода и что драйверы устройств имеют в 3ч7 раз больше ошибок, чем вся остальная операционная система. Если добавить ещё тот факт, что 70% типовой операционной системы состоит из драйверов устройств, то становится ясно, что драйверы устройств являются самым большим источником ошибок. Для Windows XP, например, 85% сбоев происходят из-за ошибок в драйверах устройств. Очевидно, для того, чтобы сделать ОС надёжной, нужно что-то сделать с этими «вредоносными» драйверами устройств. Построение системы, надёжной, несмотря на неизбежное существование ошибок в драйверах, и было главной причиной появления MINIX 3.

Конструкция


Подход, используемый в MINIX 3 для достижения высокой надёжности, основан на изоляции ошибок. В частности, в отличие от традиционных ОС, где весь код объединён в единую огромную исполняемую программу, работающую в режиме ядра, в MINIX 3 в режиме ядра работает только крошечная часть кода – всего около 4'000 строк кода. Этот код обслуживает прерывания, диспетчеризацию процессов и межпроцессное взаимодействие (interprocess communication - IPC). Оставшаяся часть операционной системы работает как набор процессов в пространстве пользователя, причём каждый из них защищён аппаратно диспетчером памяти (MMU) и ни один из них не имеет привилегий суперпользователя. Один из этих процессов, наречённый сервером реинкарнации, хранит таблицы всех остальных процессов, и когда один из этих процессов начинает работать некорректно или отказывает, сервер реинкарнации автоматически заменяет его новой копией. Поскольку многие ошибки нестабильны и возникают неожиданно, в большинстве случаев перезапуск отказавшего компонента решает проблему и позволяет системе восстановить себя без перезагрузки и без того, чтобы пользователь вообще заметил это. Это свойство называется «самовосстановление» (или «самолечение» - кому что больше нравится – прим. переводчика) и оно отсутствует в традиционных системах.

Структура MINIX 3 показана на Рис. 1. Она спроектирована как многоуровневая конструкция. Внизу находится микроядро, работающее в режиме ядра и состоящее приблизительно из 3'000 строк кода на С и 800 строк кода на ассемблере. Выше него находится уровень драйверов устройств, причём каждый драйвер является отдельным процессом в пространстве пользователя для облегчения его замены в случае, если он откажет. Затем идут серверы, которые составляют ядро операционной системы. Они включают сервер реинкарнации, упомянутый выше, файловый сервер, диспетчер процессов и др., включая Х сервер, хранилище данных (data store) и множество прочих. И, наконец, сверху расположены процессы пользователя. Хотя изнутри MINIX 3 совершенно не похожа на остальные UNIX-образные системы, она поддерживает стандартный POSIX-интерфейс приложений, так что обычное ПО для UNIX может быть довольно легко в неё портировано.


Рис. 1. Архитектура MINIX 3

Компоненты взаимодействуют между собой посылкой сообщений фиксированной длины. Например, процесс пользователя запрашивает файл, посылая сообщение файловому серверу, который в свою очередь, проверяет свой кэш и, если необходимый блок отсутствует, посылает сообщение процессу дискового драйвера начать получение блока. И хотя посылка сообщения добавляет немного дополнительного времени к длительности процесса обмена (около 500 нс на 3 ГГц Pentium 4), система остаётся вполне быстродействующей. Например, полная сборка системы, требующая более 120 компиляций, укладывается в 10 секунд.

Точка зрения пользователя

С пользовательской точки зрения MINIX 3 выглядит, как UNIX, но не такой раздутый. Она содержит X Window System и более 400 стандартных программ UNIX, включая:

* Командные процессоры (shells): ash, bash, pdksh, rsh
* Редакторы: emacs, nvi, vim, elvis, elle, mined, sed, ed, ex
* Языки программирования (language tools): cc, gcc, g++, bison, flex, perl, python, yacc
* Средства программирования (programming tools): cdiff, make, patch, tar, touch
* Сетевые средства (networking): ssh, telnet, ftp, lynx, mail, rlogin, wget, pine
* Файловые утилиты: cat, cp, bzip2, compress, mv, dd, uue, GNU utilities
* Текстовые утилиты: grep, head, paste, prep, sort, spell, tail
* Администрирование: adduser, cron, fdisk, mknod, mount, cvs, rcs
* Игры: dungeon, nethack

В настоящее время пользовательским интерфейсом является только Х, но со временем может быть добавлен и графический пользовательский интерфейс (GUI), если подходящий лёгкий GUI найдётся. По этой ссылке можно посмотреть скриншоты.

Доступность


MINIX 3 является программным обеспечением с открытыми исходными кодами, распространяющимся под лицензией BSD. Она имеет свой собственный Интернет-сайт (http://www.minix3.org), с которого может быть скачан загружаемый образ CD-ROM, содержащий все исходники и исполняемые файлы (всё это читатели могут также найти и на сайте русскоязычной группы разработчиков ОС MINIX 3 - http://www.minix3.ru – прим. переводчика). Для её установки просто загрузите CD-ROM, войдите как root и наберите setup. Установка займёт около 10 минут. После установки системы с CD-ROM или с Интернет-сайта простым набором: packman с последующим выбором может быть загружено большое количество пакетов. В настоящее время MINIX 3 работает на платформе х86, но работа над портами на PowerPC и Xscale уже идёт. Она также прекрасно работает на виртуальных машинах, таких, как VMware и Xen.

С тех пор, как MINIX 3 была публично анонсирована в начале 2005 года, на Интернет-сайт наведалось более 300'000 различных посетителей, а образ CD-ROM был скачан 75'000 раз. В настоящее время на сайт заглядывают более 1'000 посетителей в день. Существует также активная тематическая конференция на Google USENET, comp.os.minix, где люди задают вопросы и получают ответы, сообщают о новом ПО и обсуждают MINIX 3. MINIX 3 является результатом коллективной работы и ваша помощь будет только приветствоваться. Возьмите систему, поэкспериментируйте с ней и шагните в будущее.

samoed 06.11.2007 23:38

Я читал в "хакере" ещё про одну интересную операционку. MENUET вроде называется. написана целиком на ассемблере. Транслятор и исходники есть. Помещается на дискете. Всё собирался её поюзать. Могу закинуть статью про неё.

Весёлый Молочник 07.11.2007 08:37

Menuet. =) Читал и слышал на LinixFormat.


Часовой пояс GMT +9, время: 04:10.

Powered by vBulletin® Version 3.6.3
Copyright ©2000 - 2024, Якутск-Online. Перевод: zCarot