MINIX3 операционная система
ФлагСайт русскоязычного сообщества разработчиков и пользователей операционной системы MINIX 3


  Навигация


Переводы и публикации

Назад в будущее!

Роман Игнатов (ignatov@minix3.ru)

24 октября 2005 года было объявлено о выходе новой операционной системы MINIX 3. С этого знаменательного события прошло ровно два года. Вы спросите, почему именно знаменательного? Именно это я и постараюсь объяснить. Попытаюсь также немножко заглянуть в будущее с тем, чтобы понять, что же будет с «Енотом». Кроме того, я постараюсь подвести первые итоги работы русскоязычного сообщества разработчиков операционной системы MINIX 3. Это моя вторая статья1, поэтому я прошу читателя не слишком строго судить программиста, взявшего в руки перо. На то были причины, о них я тоже скажу. А теперь, я думаю, с введением можно закончить. В путь!

Программное обеспечение

Итак, на момент написания статьи последний — предварительный — релиз операционной системы MINIX 3 числился за номером 3.1.3а. Что первым бросается в глаза? Это размер дистрибутива. Он составляет 532 MB в запакованном виде или 690 MB после распаковки. Это уже солидный размер! Давайте-ка посмотрим, что же там такое внутри, что именно занимает такой объём? Это новое портированное программное обеспечение. За два года, прошедших с момента выхода первого дистрибутива операционной системы MINIX 3, количество программ значительно выросло и составляет сегодня около 650. Давайте посмотрим, какие же именно новые пакеты появились.

Вот список портированных пакетов с официального сайта ОС MINIX 3: ackpack, antiword, apache, apr, apr-util, ascii, atk, audio, autoconf, automake, avra, bash, bc, bchunk, bcrypt, binutils, bison, bitlbee, btyacc, cpio, CSSC, ctags, cvs, dact, db, diffstat, diffutils, dungeon, ede, efltk, emacs, exim, fb, flawfinder, flex, flip, fltk, gawk, gcc, gdbm, gettext, ghostscript, glib, gnu-coreutils, grep, gv, gzip, hexcat, ImageMagick, irssi, jikes, john, jpeg-6b, jwm, kermit, lcrack, less, libiconv, libmcrypt, libpng, libungif, libxml2, links, lpr, lynx2, lzo, lzop, m4, make, mtools, mysql, nano, nasm, nawk, ncftp, ncsa_httpd, ncurses, neon, nethack, nomarch, nrg2iso, nvi, openssh, openssl, patch, pcre, pdksh, perl, php, picasm112c, pine, pkg-config, prng, pscan, python,rcs, readline, rman, robodoc, rsync, screen, sed, shhmsg, simhv, sip, slang, slrn, sqlite, src2tex, subversion, tcl/tk, tetex, texinfo, tiff, unrtf, unzip, vice, vile, vim, wdiff, webcpp,wget, whichman, X11, Xaw3d, xv, zip, zlib, zsh.

Глаза разбегаются, глядя на него! Остановимся на этом списке поподробнее. Прежде всего, хочется отметить это появление пакета X11, а, значит, и графического интерфейса у операционной системы MINIX 3. Следует также отметить и появление оконных менеджеров, таких, как JWM и EDE2.

EDE

Equinox Desktop Environment

Нельзя не упомянуть и наличие программ с графическим интерфейсом пользователя (GUI). Это xv – средство просмотра рисунков, ghostscript – программа, предназначенная для просмотров документов в формате PostScript, а также ImageMagick – графический редактор. Да, программ с GUI маловато, согласен. Но под MINIX 3 уже портированы различные графические библиотеки, в том числе и GTK. Так что «дело за малым» — остаётся «взять и портировать» другие необходимые пакеты.

Теперь обратим внимание на компиляторы. Здесь выбор будет немного богаче. Помимо стандартного cc и наиболее популярного gcc, присутствуют такие компиляторы, как python, perl, php. Особо следует отметить появление в дистрибутиве tcl/tk. Так что у программистов есть из чего выбирать, я думаю.

Редакторы. Здесь тоже есть из чего выбрать: vi, nvi, vile и, конечно же, vim и emacs.

Следующее — это командные оболочки (shell). Здесь мы тоже видим привычные bash, zsh и др.

За эти два года под MINIX 3 появились также и различные СУБД. Это db, sqlite и mysql. Насчет mysql хочу сразу заметить, что портирован пока только клиент, но не за горами и портирование самого сервера.

MINIX 3 богат различными утилитами, такими, как grep, gawk и др., хорошо знакомыми по другим популярным реализациям *nix. Со всем списком пакетов и с их кратким описанием желающие могут ознакомиться на официальном сайте MINIX 3 (http://www.minix3.org/), я же теперь перейду к новшествам самой системы.

MINIX 3.1.3

Итак, какие же изменения произошли в самой системе? Что появилось нового?

Во-первых, теперь разработка ведётся с использованием системы контроля версий Subversion.

Во-вторых, начиная с версии 3.1.3, появилась поддержка виртуальной файловой системы (VFS). VFS обеспечивает унифицированный программный интерфейс к услугам файловой системы, причём неважно, какой тип файловой системы: FAT, NTFS или ext3 — имеется на жёстком диске или на каком-либо другом физическом носителе. Виртуальная файловая система VFS, расположенная как бы между приложениями и конкретными файловыми системами, позволяет пользовательским приложениям получать доступ к множеству файловых систем разных типов.

Изменение (а точнее добавление), которое, как я надеюсь, будет не только приятно, но и полезно для русскоязычного пользователя MINIX 3 — это поддержка русского языка. Пока реализована поддержка только кодировки KOI8-R, но работа над поддержкой оставшихся кодировок продолжается3.

В текущей версии MINIX 3 снято также и ограничение с размера файловой системы в 4GB, так что теперь есть где развернуться!

Вышеперечисленное — наиболее заметные изменения, произошедшие с операционной системой MINIX 3. Вдаваться в анализ остальных изменений я не буду, а отсылаю всех желающих к документу «Комментарии к выпуску MINIX 3.1.3» и к ChangeLog'ам.

Хочу также кратко рассказать о работе русскоязычного сообщества разработчиков операционной системы MINIX 3. Помимо портирования различных программ (а это практически половина всех программ, портированных сегодня под MINIX 3) и реализации поддержки русского языка, мы перевели и продолжаем переводить на русский язык различную документацию, касающуюся MINIX 3. Например, сейчас переводятся на русский язык руководства man. Ведётся кропотливая работа по реализации поддержки динамических библиотек и виртуальной памяти4. Кроме того, мы курируем работу русскоязычного форума, посвящённого MINIX 35.

Назад в будущее!

Теперь перехожу к последней и наиболее важной главе, из-за которой я, собственно, и взялся за перо.

Бродя по необъятным просторам интернета, я то и дело обнаруживаю различные дискуссии, в той или иной степени затрагивающие MINIX. Сегодня я решил открыто высказать свою точку зрения по данному поводу.

Одна из самых популярных тем для споров на различных форумах — «Что лучше: микроядро и монолитное ядро?» Отвечаю: микроядро. Возражения вроде «посмотри, где Linux, а где твой MINIX!» убедительными не считаю. Судите сами.

Исторически микроядерная ОС MINIX с самого начала создавалась Энди Таненбаумом как учебная операционная система! И она с самого начала полностью соответствовала этой задаче. На этой учебной ОС и блестящих книгах профессора Таненбаума выросло не одно поколение специалистов. Тот же Линус Торвальдс, например. Однако поскольку в те теперь уже далёкие времена производительность компьютеров оставляла желать лучшего, то борьба за производительность вычислительных систем практически ставила крест на использовании микроядер в связи с их самым известным недостатком — меньшим быстродействием по сравнению с монолитными ядрами. Именно по этой причине на передний план тогда и вышли такие прогрессивные операционные системы (по сравнению с «идеологически устаревшими микроядерными»), как Windows, *BSD и, наконец, Linux — «луч света в тёмном царстве».

Но сегодня, когда на первое место ставится не столько производительность программного обеспечения, сколько его надёжность и безопасность, пришло время именно микроядерных операционных систем. Не буду приводить длинный перечень аргументов в пользу большей надёжности микроядер по сравнению с монолитными, приведу лишь один, но наиболее веский, с моей точки зрения, довод. Это сам размер ядра. На данный момент ядро MINIX 3 является самым маленьким в мире, а сама MINIX 3 является «самой микроядерной изо всех микроядерных ОС». Попробуйте если не прочитать, то хотя бы просмотреть исходники ядра операционной системы Linux. А затем просмотрите исходники ядра MINIX 3. Разница заметна? Мало того, что исходники ядра MINIX удивительно компактны, так они ещё и отлично комментированы! Ведь MINIX изначально создавалась как учебная ОС, поэтому для облегчения её изучения все исходные тексты с самого начала снабжаются ясными комментариями.

А как насчёт того, чтобы найти ошибку в монолитном ядре? По этому поводу приведу одно интересное сообщение: «Второй человек в Linux, Andrew Morton, горько сетует по поводу состояния разработки -mm ветки ядра (напомню, что именно в неё сначала добавляются экспериментальные патчи, а только потом, после тестирования, они имеют шанс попасть в основное ядро): «У меня ушло двое полных суток на то, чтобы всё это скомпилировать и загрузить на нескольких моих компьютерах. Чтобы добиться положительного результата в этом процессе, я написал около девяноста исправляющих патчей и патчей по отбрасыванию ненужного. Уже сейчас я наблюдаю несколько известных мне багов, но полагаю, на самом деле их гораздо больше. Я должен сказать, что [такая модель разработки] больше не работает». Последний патч для ядра 2.6.23-rc6 весит почти 30 мегабайт. По-русски говоря, это около тридцати тысяч страниц исходников (если оптимистично считать по тысяче символов на страницу)»6.

Как говорится, без комментариев...

Конечно же, гарантированно отловить в коде операционной системы MINIX 3 любую ошибку пока ещё тоже невозможно (хотя в микроядре MINIX за последние 10 лет не было найдено ни одной ошибки!), но её надёжность и безопасность существенно повышена за счёт структурного устранения многих классов ошибок.

И, прежде закончить эту тему, хочу снова спросить уважаемых читателей. Сколько из написанных вами патчей для таких операционных систем, как Linux и FreeBSD, было принято? Не думаю, что эта цифра будет большой. Более того, судя по последним Changelog'ам ядра Linux, скорее даже очень маленькой. А у нас с развитием кода MINIX 3 этих проблем нет. У нас для заинтересованных в развитии операционной системы людей двери всегда открыты. Добро пожаловать в команду разработчиков MINIX 3!

В общем, чем дальше, тем больше становится очевидным, что наступает время микроядерных операционных систем. Сотовые телефоны и другие мобильные устройства, различные встраиваемые системы, такие, например, как бортовые компьютеры автомобилей или самолётов, ясно диктуют нам: нужны компактные, надёжные и безопасные ОС. За MINIX и ей подобными «устаревшими» ОС будущее. Нам остаётся только ускорить ход событий. Так что, НАЗАД В БУДУЩЕЕ!

P.S.

Когда статья была уже готова и я собирался её выложить для всеобщего обозрения, случайно наткнулся на такую новость: «Microsoft собирается переписать ядро Windows, сделав его более изящным. Новое ядро будет применяться в ряде продуктов, включая ОС Windows 7, которая должна прийти на смену Vista. Внутренний проект с кодовым названием MinWin пока не относится ни к какому конкретному продукту, но его результат войдет в состав Windows 7, сообщил на недавней презентации в Университете штата Иллинойс выдающийся инженер Эрик Траут. Видеозапись его доклада опубликована в онлайне. «Многие думают, что Windows — это большая, громоздкая операционная система, и я готов признать, что это правда, — сказал он. — Но само ядро и близкие к нему компоненты, которые составляют основу операционной системы, на самом деле довольно компактны». Траут продемонстрировал систему MinWin, пока еще без графического интерфейса. Она занимает всего 25 Мбайт на диске, вместо 4 Гбайт, которые требуются для Windows Vista. MinWin может работать всего с 40 Мбайт ОЗУ. «Это доказывает, что внутри Windows заключено действительно очень изящное ядрышко, — сказал Траут. Однако Microsoft хочет сжать его еще. — Оно все еще больше, чем хотелось бы». Microsoft использует одно и то же ядро в разных продуктах, от клиентских редакций Windows до серверных. Сохранение его максимально компактным позволяет применять это ядро и в ОС для систем с малым объемом памяти, таких как встроенные устройства. «Это обеспечит нам возможность выхода на новые рынки», — сказал Траут. Microsoft планирует выпустить Windows 7 к 2010 году, но о том, что в ней будет нового, компания пока не говорит.»7

А вот теперь всё...

1  Первой была «MINIX 3 – реинкарнация»; ознакомиться с ней можно на сайте http://www.minix3.ru/

2Скриншоты взяты с официального сайта операционной системы MINIX 3 - www.minix3.org/

3Дополнительную информацию о настройки поддержки русского языка в операционной системе MINIX 3, Вы можете найти на сайте http://www.minix3.ru/

4Данным проектом занимается Бен Грас.

5   С планом работ русскоязычного сообщества разработчиков операционной системы MINIX 3, Вы можете ознакомиться здесь: http://www.minix3.ru/plan.html

7Новость с сайта http://algonet.ru/?ID=635898 

www.minix3.ru Copyright © 2006-2009