четверг, 4 ноября 2010 г.

Фатальный недостаток

Написать данную статью меня побудила ситуация, сложившаяся вокруг OpenSolaris в связи с его поминками. Хотя, в общем-то, ситуация не новая во всех отношения.

Начать, конечно, следует вообще с обстановки в мире open source. Исключая отдельные устоявшиеся программы и утилиты, UNIX-подобные операционные системы почему-то всегда являлись лакомым кусочком для деятелей от IT, желающих создать свою ОС (не иначе, как под влиянием комплекса неполноценности перед лицом Майкрософт) с блэкджеком и шлюхами.

Растащив исходники Solaris, начали клепать свои сборки (деривативы, или, что более правильно на мой взгляд, девиации):

  • Illumos, a full-opensource fork of the project, started in 2010 by a community of Sun OpenSolaris engineers and the NexentaOS support - Note that OpenSolaris was not 100% opensource, some drivers and some libraries were property of other companies that Sun (now Oracle) licensed and was not able to release.
  • OpenIndiana, a project under the Illumos umbrella aiming "... to become the defacto OpenSolaris distribution installed on production servers where security and bug fixes are required free of charge."[25]
  • Belenix, Live CD[55]
  • EON ZFS Storage,[56] a NAS implementation targeted at embedded systems
  • Jaris OS, Live DVD and also installable.[57] Pronounced according to the IPA but in English as Yah-Rees. This distribution has been heavily modified to fully support a version of Wine called Madoris that can install and run Windows programs at native speed. Jaris stands for "Japanese Solaris". Madoris is a combination of the Japanese word for Windows "mado" and Solaris
  • marTux, Live CD/DVD,[58] first distribution for SPARC
  • MilaX, small Live CD/Live USB[59]
  • napp-it,[60] free Browser managed internet/ san/ nas/ project, based on nexenta3 or eon/opensolaris
  • Nexenta OS, Ubuntu-based with ZFS[61]
  • NexentaStor, optimized for storage workloads, based on Nexenta
  • SchilliX, Live CD
  • StormOS, a lightweight desktop OS based on Nexenta and Xfce.
  • OSUNIX


Девианты, клепающие девиации, руководствуясь самыми благими намерениями создать свою ось с блэкджеком и шлюхами, чхать хотели и на главный (и старейший) принцип IT - "Совместимость важнее производительности" и на то, что, в общем-то, ОС тем и отличается от девиаций, что имеет архитектурную целостность и непротиворечивость - говоря в терминах некоторых разработчиков - ядра и юзерленда.

Я клоню в ту сторону, что даже Индиана (один из самых ортодоксальных деривативов) имел только ядро Соляриса. Уже такой вещи, как совместимости на уровне пакетов, в нем не было (команда pkgadd отсутствовала, пакеты устанавливались совершенно иначе).

Одно дело, когда на одно и то же ядро навешивают разный гуй. Это еще куда бы ни шло, в терминалах все выгдяит одинаково. Но когда, считая себя умнее других, начинают менять ядерный функционал, вносить изменения в файловую систему, уводя дериватив все дальше и дальше от системы-родителя - это, знаете ли, несколько чересчур.

Единственная по-настоящему полноценная монолитная ОС от начала и до конца, BSD, тоже не избежала печальной участи большинства религий - раскольничества.


Все лучше и лучше. Ладно бы разница была чисто косметической, как в большинстве линуксовых деривативов. Так ведь доходит до различий в ABI, управлении конфигурацией и других не менее критичных вещах.

Смотришь на систему. Вроде бы тот же самый Солярис с перекрашенной мордой - ан, нет! Той команды нет, этой команды нет, здесь дерево директорий другое, тут конфиг не там лежит, а здесь вообще нет конфига.

Линуксы (во множественном числе) это вообще отдельная тема. Больше 300 известных деривативов, из которых 17 (!) наиболее известны. Вам не кажется, что это слишком? Мне - кажется. Разница между некоторыми настолько велика, что по-сути можно говорить о разных системах.

Стоять, я знаю, что по большей части ядро одно и то же. Просто у ядра есть конфигурационное окружение, а еще есть юзерленд, который не только из гуя состоит.

Забавный факт. Столлман настаивает на названии GNU/Linux и переругивается с Тео на тему того, чья лицензия свободней. Тео де Раадт чхал на Столлмана и продолжает клепать свою OpenBSD (не самый плохой дериватив, кстати говоря).

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

Но речь не об этом, опять таки. А о фатальном недостатке open source. А конкретно, об операционных системах.

Я категорически против ситуации, когда, будучи экспертом в какой-то платформе среди UNIX-подобных систем, вдруг обнаруживаешь, что в другой, вроде бы с виду похожей системы, нет ничего подобного твоей родной системе. Мало того, там вообще нет ничего канонического, того, что казалось неизменным. И изучать новую систему фактически приходится заново.

Например, мне категорически не нравится исчезновение канонических ссылок rc.X. Да, SMF круче и лучше. И рефлекторно набираешь не те команды. Но когда, для включения сервиса надо редактировать /etc/rc.conf, и, в большинстве случаев, перезагружаться. Когда провозглашается монолитное ядро, но тем не менее возможность динамической загрузки модулей-таки присутствует... Как-то становится несколько не по себе. Про несовпадение структуры основных директорий я просто молчу. Здесь сюрприз может оказаться ошеломляющим. Ах, да, и не забудьте, что шеллы по умолчанию практически везде выбраны по желанию разработчика. Сюрприз, правда? 

А желание разработчика - это, в общем, зависимость от фаз луны, ПМС и тому подобных радостей жизни. Прямо и открыто это сказано здесь:

Another major consideration is the wishes of the developers. The OpenBSD developers are the ultimate judges of what does and doesn't go into the project. Just because an application is "good" doesn't mean the OpenBSD project wishes to devote the resources needed to maintaining it, or that they will share other's enthusiasm about its place in OpenBSD. 

Там же:

Of course, If you wish to use one of these packages and your use is compatible with the license of the products, no one will stop you (that wouldn't be very free if we tried, would it?). However, your needs may change -- you may not want to develop a "Killer Application" that you can't sell, distribute, or get rich from because you incorporated non-free software into it. 

Я обхожу стороной вопросы поддержки, своевременных обновлений, бинарной и пакетной совместимости, наконец. Жаль, что OpenSolaris не избежал общей участи.

И все было бы ничего. Разнообразние в принципе хорошо, нежизнеспособное само сдохнет. Но нет же! Всегда находится достаточное количество идиотов, готовых вложить пару-тройку сотен завалящих долларов почти в каждый из подобных проектов. И подобных идиотов хватает. Поскольку до сих пор живет большинство подобных проектов. Потому что на одном энтузиазме далеко не уедешь. Причем идиотами очень часто являются не мизантропические индивидуумы, а целые крупные корпорации, вкладывающие девятизначные суммы в развитие (в пику конкуренту) подобной поделки. Дабы чужими руками насолить (Уж потопить-то всяко слабо) конкуренту, коль скоро в прямой схватке ему же продули.

Линукс популярен не потому, что хорош. А потому, что в него вовремя вложили очень много денег.

Windows повсюду не потому, что хороша. А все по той же самой причине. "Вы не представляете, как много можно сделать, имея миллиард долларов" (фраза, приписываемая не то Биллу, не то Стиву).

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

А теперь и OpenSolaris присоединился к компании.