`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Sun: открытое наступление на всех фронтах

Статья опубликована в №19 (587) от 22 мая

+66
голосов

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

Скептического читателя преамбула статьи может насторожить. Именно из-за этого на прошедшей в Санкт-Петербурге 20-21 апреля ежегодной Всемирной конференции Sun Tech Days Джефф Джексон, вице-президент подразделения разработки ПО Sun, отвечающий за развитие ОС Solaris, в начале своего выступления на простом шутливом примере показал, что открытые исходные тексты открытым исходным текстам рознь. Джексон разорвал целлофановый кулечек с Дюком (персонаж, символ Java) и предложил добровольцу на выбор бесплатные и открытые - или разорванный пустой кулечек, или Дюка. И события всей конференции, а также последовавшие непосредственно после нее показали: Sun действительно совершает беспрецедентный поступок и открывает-раздает не пустые кулечки, а самое ценное, что есть в арсенале компании, - настоящие беспроигрышные козыри.

Solaris 10

Выпуском этой версии ставшей уже классикой операционной системы Sun фактически создала новую организацию жизненного цикла и процесса разработки масштабных эволюционных программных проектов с большой предысторией. Разделенный на две ветви - бесплатную и доступную на уровне исходных текстов OpenSolaris и основанную на ней коммерческую Solaris, распространяемую в бинарном виде с гарантированной поддержкой, проект характеризуется беспрецедентной открытостью. Перечень пока не доступных в исходных кодах модулей системы мало того что скромен - он содержит исключительно то, открытое распространение чего недопустимо из-за соглашений со сторонними поставщиками кода. Все остальное - как на ладони и доступно бесплатно любому желающему на основании одобренной Инициативой Открытого ПО (Open Source Initiative, OSI) достаточно либеральной лицензии CDDL. Сразу следует оговориться - назойливые пуристы и ортодоксы, требующие всемирного почитания и принятия "единственно правильной лицензии" (какой бы она ни была), могут не переживать по поводу ключевых нюансов CDDL. Так, например, если вы разрабатываете CDDL-лицензированный код модификацией CDDL-лицензированного кода, вы не нарушаете ни патентного права, ни прав интеллектуальной собственности правообладателя, даже если модифицируете защищенный патентом код. Более того, CDDL распространяет свое действие на файл, а не на весь код проекта, что позволяет разработчикам из сообществ FreeBSD, DragonFly BSD и Mac OS X портировать фрагменты Solaris для использования в своих системах. Но в Solaris 10 все эти детали - далеко не главное. Главное то, что Sun открыла код, являющийся настоящим Событием в мире операционных систем. Впрочем, обо всем по порядку.

Solaris 10 и ZFS для посвященных уже стали чуть ли не синонимами. ZFS, заменившая собой не только традиционные файловые системы, но и ряд сопутствующих подсистем (а также добавившая новую функциональность), уже успела стать и объектом почти религиозного почитания, и фанатичных нападок, и предметом отчаянных споров. Но все же главное то, чем стала ZFS в действительности - уникальным программным изделием, не имеющим аналогов ни в одной современной ОС.

Zetta File System - проект нетривиальный даже на уровне неформального описания методологии проектирования. Анализ и переосмысление де-факто стандартного стека функций файловой системы, выявление очевидных зависимостей и совершенно новой реализации кода, без привязки к традиционным в области разработки файловых систем приемам - все это позволило команде ZFS в разумные сроки (пять лет) реализовать восемью десятками тысяч строк функциональность уникальной файловой системы с возможной компрессией, RAID-контроллера, менеджера томов, механизмов создания образов (snapshots) и клонов файловой системы (и еще десятка-другого механизмов, в том числе и не имеющих аналогов; в текущей версии ZFS пока не работают всего два механизма классических файловых систем - шифрование данных и тонкое управление квотированием дискового пространства), и при этом не забыть о поддержании функциональной и даже семантической совместимости. Так, реализация ZFS содержит прослойку обеспечения POSIX-совместимости (ZFS POSIX Layer) для сохранения привычной программистам и системным администраторам семантики объектов файловой системы.

Sun открытое наступление на всех фронтах
Время идет, но Sun не утрачивает университетского характера - в ансамбле SunBand играют только сотрудники представительства Sun в СНГ

О численных характеристиках файловой подсистемы ZFS достаточно сказать кратко - это 128-битовая система, в которой адрес хранимого блока задается 128-битовым числом. Почему именно 128 бит? Архитекторы не стали размениваться на мелочи и, отталкиваясь от петабайтовой емкости многих реально существующих и работающих современных систем хранения информации, спрогнозировали на основании закона Мура (емкость долговременных накопителей удваивается каждые 9-12 месяцев) недостаточность 64-битовой адресации уже через десять лет. Посему и сочли создание 64-битовой файловой системы бесперспективным занятием. И не ошиблись: пять лет разработки и несколько лет эксплуатации, необходимые для доведения системы до уровня технологической зрелости, легко "съедают" этот временной промежуток, и по завершению полноценного проектного процесса появляется фактически уже морально устаревшее изделие. 128 бит же оказались разумным выбором и с точки зрения перспективности проекта, и при учете вычислительных возможностей современных компьютеров. Ведь даже потенциально замечательная, но имеющая сегодня низкую производительность система интересна разве что ученым. Кстати, о производительности: в ZFS одновременно просто и изящно решена задача сохранения высоких показателей системы при независимости от порядка байтов в машинном слове целевой платформы. Эту задачу поставила перед разработчиками Sun реальность - сейчас компания использует как машины архитектуры x86, так и SPARC, фундаментально отличающиеся порядком байтов в машинном слове, что непременно сказывается при работе с метаданными. По сути, это означает, что или одну систему надо делать по определению производительнее другой, или... обеспечить одинаково высокое быстродействие обеих, позволив процессорам работать с полной отдачей, оперируя "родными" для аппаратных средств данными. Именно так и поступили разработчики Sun. А чтобы обеспечить возможность подключения накопителей к компьютеру другой архитектуры, файловая система содержит специальный флаг, идентифицирующий порядок байтов в слове.

Неудивительно, что и архитектурно ZFS существенно отличается от того, что принято понимать под файловыми системами. Ее образуют три уровня (сверху вниз) - интерфейсный, объектный транзакций и накопителей, объединенных в пул. Самый нижний - уровень накопителей, объединенных в пул - достаточно точно характеризуется своим названием. Он аналогичен менеджерам томов в классических системах и решает две задачи - отображения ресурсов разных физических накопителей одним общим логическим ресурсом виртуального устройства (называемого vdev в терминах ZFS) и объединения виртуальных устройств в пул. Виртуальные устройства могут формироваться из физических с использованием развитых механизмов (например, с избыточностью). Радикальным отличием от традиционных менеджеров томов является механизм диспетчеризации - все операции на уровне виртуальных устройств и пулов характеризуются приоритетами и гарантированными сроками завершения. На уровне транзакций в ZFS применяется механизм защиты от сбоев - при записи блока данных ZFS сначала модифицирует резервные блоки, и только затем обновляет метаданные, указывая появление обновленной версии данных (подобный принцип хорошо известен и даже назван аббревиатурой COW ). Если транзакция не завершена нормально и процесс не достиг модификации метаданных, ни один бит ранее созданных в файловой системе данных не изменит своего значения, т. е. механизм записи в ZFS по определению является неразрушающим. В "нагрузку" к защите от сбоев такой механизм дает возможность не только делать "моментальные снимки" фрагментов и всей файловой системы, но и превращает эти "моментальные снимки" в полноценные объекты файловой системы.

Второй уже ставший культовым элемент Solaris 10, конечно же, - dtrace. Задача построения механизма, с помощью которого можно безопасно и без потерь производительности анализировать работу ядра и важнейших подсистем ОС в реальном времени на основании анализа тысяч наблюдаемых параметров (например, внутренних данных ядра), с блеском решенная разработчиками Sun Брайном Кэнтрилом, Майком Шапиро и Адамом Левенталем, - не из простых. А о востребованности ее решения говорят полученные авторами награды InfoWorld, Technology Review и наивысшее признание миром большого бизнеса - Wall Street Journal отметил dtrace как лучшую инновацию 2006 г. Несмотря на очевидную очень сильную "привязку" dtrace к коду ядра Solaris, CDDL-лицензия позволила разработчикам из сообществ FreeBSD и Mac OS X начать ее успешное портирование на эти системы. Кроме того, dtrace стала быстро "обрастать" сторонними разработками, расширяющими потенциал этой системы, например, модифицированным интерпретатором популярного языка Ruby, который дает возможность программировать "реакции" на dtrace-события (joyeur.com/2007/ 05/07/dtrace-for-ruby-is-available, dtrace обладает собственным языком описания реакций D).

Третий ключевой элемент Solaris 10 - вовсе не технический (не следует думать, что ZFS и dtrace - это все "козыри", которыми располагает Sun, просто перечень уникальных разработок в Solaris слишком велик для журнальной статьи). По сути, эта система стала первым детищем корпоративного мира, образовавшим свое значимое сообщество приверженцев открытых исходных текстов. На базе OpenSolaris сторонними разработчиками создаются существенно отличающиеся от базовой системы дистрибутивы (Shillix, Nexenta), и, что главное, - в самой Sun зреет проект Indiana, во главе которого стоит сравнительно недавно (в марте) ставший сотрудником Sun человек-легенда мира Linux Ян Мердок, основатель проекта Debian. Результатом работ по проекту Indiana будет создание нового Linux-подобного дистрибутива на основе OpenSolaris, и не просто нового дистрибутива, а, по словам Яна Мердока, "лучшей Linux, чем Linux". Располагающая инсталляционной базой, оцениваемой более чем в 7,6 млн лицензированных копий Solaris, Sun собирается всерьез побороться за умы и таланты разработчиков, и это не может не радовать. И если Мердоку удастся максимально задействовать достоинства двух миров - всегда отличавшееся новизной и качеством великолепное системное ПО Sun и более современное окружение пользовательского уровня, развитое за счет широкой пользовательской базы UNIX-подобных систем с открытыми исходными текстами (Linux, *BSD), - результаты Indiana не разочаруют никого.

Java и средства разработки

Выход Java SE 6 и изменение политики лицензирования Java, по сути, стали событиями такого же масштаба, как и появление Solaris 10. Кроме того, событиями в какой-то мере индикативными - похоже, в Sun полностью согласились с правилами игры, принятыми разработчиками, и теперь технологические средства, в отличие от операционной системы, лицензируются на основе популярной среди программистов GPL.

Sun открытое наступление на всех фронтах
NetBeans 6. Теперь IDE позволяет не только интерактивно отлаживать Ruby-код, но и непосредственно rhtml-файлы

Вопреки бытующему в радикально настроенной среде мнению, перевод Java на иную схему лицензирования оказался действительно очень непростым, и вовсе не из-за опасений ведущего разработчика этой системы, т. е. Sun. Главная сложность заключается в том, что Java - продукт с колоссальным рыночным значением и громадной инсталлированной базой. При этом Java создавалась весьма традиционно для мира коммерческого ПО, и, надо сказать, эта традиционность ничуть не помешала Sun добиться всемирного и всестороннего признания своей программной системы (достаточно упомянуть, что численность устройств, использующих мобильную версию Java, измеряется миллиардами, а количество загрузок за один квартал с сайтов Sun среды исполнения Java и средств разработки - сотнями и десятками миллионов соответственно). Естественно, в таких условиях производитель несет очень нелегкий груз ответственности перед потребителями. И, хоть для степени этой ответственности существуют только весьма условные оценки, пренебрежение пользовательской аудиторией выражается в вещах совершенно реальных - начиная от банальной прибыли и заканчивая жизнеспособностью и самой компании, и ее продуктов. Трансформировать традиционный механизм разработки Java так, чтобы одновременно и сохранить требуемую громадной пользовательской аудиторией стабильность релизов системы, и утилизировать возможности активного сообщества разработчиков (свыше ста тысяч которых приобщилось к процессу создания и совершенствования JDK 6) - решение подобной задачи может показаться тривиальным разве что людям, совсем уж далеким от программной индустрии. Прочим же достаточно просто оценить "скорострельность" проекта GlassFish, разрабатывающего открытую реализацию сервера приложений Java EE (glassfish.dev.java.net/servlets/ProjectNewsList), чтобы понять, насколько непросто согласовать средний недельный интервал между версиями продукта с требованиями сотен тысяч его потребителей.

"В нагрузку" к Java программисты получили от Sun и GPL-лицензированную кросс-платформенную среду разработки (IDE) NetBeans. В ожидаемой в ближайшее время очередной версии этой системы существенным модернизациям подвергнется редактор исходных текстов (появится механизм автодополнения ключевых слов, имен переменных и т. д.), и, что куда более существенно, - появится полноценная поддержка "сторонних" скриптовых языков, в первую очередь - набирающего популярность Ruby. Кроме GPL-лицензированной NetBeans, программисты также теперь имеют возможность свободно использовать легально бесплатные компиляторы и весь инструментальный набор SunStudio.

Еще одна составляющая "программы открытости" Sun - конечно же, аппаратные средства. Инициатива компании - открытие исходных текстов (пригодных к синтезу) своих процессоров, включая модели самого последнего поколения, по сути, уникальна.

В целом Sun сделала "политику открытости" фактически стратегией развития компании. И, возможно, тем самым создала не только прецедент, но и новую, так долго ожидаемую сторонниками открытого ПО симбиотическую модель, в пределах которой успешно, мирно и взаимовыгодно сосуществуют два мира - традиционный коммерческий и Open Source.

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

+66
голосов

Напечатать Отправить другу

Читайте также

Sun дуже радує останнім часом. Сподіваюсь (і вірю!) така стратегія розвитку компанії принесе їй зокрема та (що навіть більш важливо) спільноті відкритого програмного забезпечення загалом лише вигоду.

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT