«Android – это прямо-таки канонический пример, как не надо делать проекты в рамках Open Source», - заявил CNews технический директор компании Parallels и один из самых известных разработчиков ядра Linux Джеймс Боттомли (James Bottomley). При том, что Android это, с коммерческой точки зрения «просто вопиюще успешный Linux-дистрибутив», с точки зрения сообщества разработчиков он больше похож на провал, говорит Боттомли.
Критика Android - это довольно редкое явление в среде разработчиков свободного ПО, однако Боттомли правдоподобно аргументировал свою мысль: «Цели бизнеса и разработчиков практически ортогональны: если для бизнеса важно найти свою нишу и заполнить ее, то сообщество разработчиков ценит, чтобы код было легко сопровождать, легко добавлять новую функциональность, и чтобы в коде непременно были реализованы наиболее удачные, красивые технические решения».
Google создавала Android как серьезное ответвление (форк) от основного ядра Linux, вспоминает Боттомли. Специально для него были написаны библиотека C и фреймворк JVM (Java Virtual Machin), и несколько важных программных модулей, (например, Wakelocks, модуль, управляющий «засыпанием» ядра, и мешающий ядру «уснуть», во время телефонного разговора или игры). Эти модификации изменили ОС настолько, что драйвера под обычное ядро Linux и под Android отличаются, говорит Боттомли.
Присоединение Wakelocks и прочих модификаций к главному направлению разработки ядра вызывает большие сложности, на преодоление которых потребуются годы, считает Боттомли.
Процессом вхождения нового кода в «апстрим» (upsream, основное направление разработки) нужно хорошо управлять,а код, запланированный к вхождению в апстрим, лучше показывать сообществу, начиная с самой ранней стадии, чтобы люди, от которых зависит, вливание кода в апстрим, не воспринимали его «как никому не нужную поделку, сделанную на коленке (даже если это не так)», - предупреждает разработчик.
Однако Google привык писать код «за высоким забором, перебрасывая через него лишь готовые версии», продолжает Джеймс Боттомли. Отсутствие раннего доступа к коду создает для партнеров Google - HTC, LG, Samsung и других - проблемы с разработкой собственных приложений для новых версий ОС.
Критика платформы Android — это одно из любимых хобби Боттомли. Он уже поднимал вопросы возвращения кода Android в апстрим в апреле 2010 г. на Linux Collaboration Summit. Теперь, Раскрывая свои «тезисы об Android», и говоря об опасностях отрыва от сообщества разработчиков, Боттомли и сам не скрывал, что его критический разбор истории мобильной платформы затрагивает интересы его нынешнего работодателя Parallels.
«Первое и основное, чему можно научиться на опыте Google и его Android – это правилам правильного форка. Форк – это благо: он развивает сообщество. Для разработчика «апстрим» (upsream, основное направление разработки) — это единственный способ гарантировать долгую жизнь своему коду. Parallels сейчас усиленно работает над тем, чтобы «заапстримить» OpenVZ-контейнеры в код ядра Linux», - говорит Боттомли.
Будучи одиним из известнейших деятелей движения Open Source и разработчиков ядра Linux, с августа 2011 г. Джеймс Боттомли занимает должность технического директора Parallels (CTO). Одновременно с этим он входит в совет директоров Linux Foundation и несколько последних лет является одним из ведущих разработчиков подсистемы SCSI в ядре Linux.
Интересно, что, комментируя прием на работу Боттомли, в Parallels помимо его ценности как технического специалиста, высоко отмечали его способности лоббиста в сообществе разработчиков Linux-ядра. Старший вице-президент Parallels Станислав Протасов говорил, что «если Джеймс сможет включить исходные коды продуктов контейнерной виртуализации (OpenVZ, Parallels Virtuozzo Containers) в состав основного ядра Linux, можно считать, что жизнь прожита не зря».
Стоит заметить, что опыт включения своего кода в ядро у Боттомли есть: работая в компании Steel Eye Technology, Боттомли разработал и внес в код технологии Network Block Device и сетевого хранилища (Net storage).
Компания Parallels поддерживает один из двух главных современных трендов в технологиях виртуализации: контейнерную виртуализацию. В отличие от технологии «гипервизора», поддерживаемой конкурентом Parallels компанией VMWare, которая позволяет создавать виртуальный образ «железа», «контейнерная технология» Parallels виртуализирует ядро системы, установленной на сервере.
По заявлению самого разработчика, с ее помощью обеспечивается в «2-3 раза большая плотность виртуальных сред на сервер» по сравнению с гипервизорным подходом. Главный коммерческий продукт Parallels для виртуализации серверов - это Parallels Virtuozzo Containers, основанный на коде открытого проекта OpenVZ.
Источник: CNews
|