CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
25.07.2016

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Дистрибутивы :: MINIX

Введение в MINIX 3

Оригинал

www.minix3.ru

Как часто вы перезагружали ваш телевизор в прошедшем году? Вероятно, гораздо меньше, чем ваш компьютер. Конечно же, для этого есть много «резонов», но всё больше и больше пользователей, далёких от техники, не хотят и слышать о них. Они хотят только, чтобы их компьютер всё время прекрасно работал и никогда не отказывал. 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 является результатом коллективной работы и ваша помощь будет только приветствоваться. Возьмите систему, поэкспериментируйте с ней и шагните в будущее.

сентябрь 2006




Комментарии

Страницы комментариев: 1 :: 2 :: следующая

аноним, Fri May 29 14:23:26 2009:
Дорогая редакция... Работа ничего не поедает.

>Например работа (любая) на всех дистрибутивах >которыми я пользовался (около 10), поедает всегда >намного больше процессорного времени чем та же в >Виндовс.
аноним, Fri May 29 13:45:55 2009:
Дорогая редакция... Работа ничего не поедает.

>Например работа (любая) на всех дистрибутивах >которыми я пользовался (около 10), поедает всегда >намного больше процессорного времени чем та же в >Виндовс.
BUGGY_DRIVER, Fri May 29 12:51:49 2009:
Очень интересно. Хотелось бы чтобы этот проект развивался, и развился в новую свободную ОС, которая потеснила бы Линукс. При всем уважении, Линукс не привлекает. Например работа (любая) на всех дистрибутивах которыми я пользовался (около 10), поедает всегда намного больше процессорного времени чем та же в Виндовс. Это меня очень расстроило. Можно сказать - крайне разочаровало. Я не люблю холиваров, не люблю когда тупо поливают помоями толи Виндовс толи Линукс. Понимаю, что сказанное мною - это камень в огород линуксоидов, и сейчас посыпятся такие знакомые фразы. Однако, подчекркну: я сам был разочарован, прежде не имел никакой предвзятости к Линуксу. Считайте, что меня задела реклама Дебиана в неположенном месте. Ибо здесь обсуждается Миникс.
Прекрасно, что есть такое движение за открытый код. Поэтому очень интересно, что выйдет из этого проекта. Микроядро. Очень интересно. Всяких успехов ему.
аноним, Wed Apr 29 18:07:22 2009:
Допилит)
аноним, Wed Apr 29 17:01:32 2009:
Если свой миникс допилит, то памятник ему! :)
аноним, Wed Apr 29 16:12:34 2009:
Танненбаум вообще мужик!!Очень интересные книги у него по осям
аноним, Wed Apr 29 12:19:52 2009:
>Операционная система Minix, детище профессора >Эндрю Тененбаума из голландского университета >Vrije, получила грант Европейского >исследовательского совета (European Research >Council) на сумму 2.5 млн. евро.

Если деньги потратят с умом, то линуксу может прийти конец...микроядро действительно надежнее и этим выиграет, имхо
rty, Wed Apr 29 09:44:06 2009:
Уважаю Таненбаума! Молодец!
аноним, Wed Apr 29 08:05:19 2009:
аноним, вторник, 28 апреля 2009 г. 23:11:58:
Зачем вам minix? Debian рулит!!!

а венда - царствует.
аноним, Wed Apr 29 06:46:21 2009:
Вот так:

Операционная система Minix, детище профессора Эндрю Тененбаума из голландского университета Vrije, получила грант Европейского исследовательского совета (European Research Council) на сумму 2.5 млн. евро. Деньги будут потрачены на дальнейшие исследования в области разработки операционной системы, которая сама смогла бы находить уязвимости в своем коде и в последующем устранять их.

Ошибки в программном обеспечении никогда не будут полностью искоренены, написал Таненбаум в представлении к проекту. Но такие операционные системы как Windows и Linux изначально спроектированы без уделения должного внимания стабильности кода. Индустрия ПО намного более безответственно подходит к проверке качества готовой продукции, чем, например, автомобильная промышленность, где выявление дефекта одной детали может повлечь отзыв всего модельного ряда автомобилей. Решением данной проблемы может стать создание защищенной операционной системы, которая бы предъявляла более жесткие требования к исполняемому коду.

Концепция микроядер, вокруг которой построен Minix, накладывает определенные ограничения на взаимодействия процессов между ядрами. Это позволяет сводить к минимуму ситуации, когда нестабильно работающий драйвер периферийного устройства или любой другой код, запущенный в ядре, вызывает крах системы. По замыслу Таненбаума нестабильность должна локализовываться внутри микроядра, а взаимодействие с процессом ее вызвавшим блокироваться.

Выделенных средств должно хватить на оплату труда трех исследователей и двух программистов в течении следующих пяти лет.

Страницы комментариев: 1 :: 2 :: следующая

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds