[ON] Джеймс Боттомли анализирует промахи Android при взаимодействии с Linux-сообществом

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
rssbot
Бот
Сообщения: 6000
ОС: gnu/linux

[ON] Джеймс Боттомли анализирует промахи Android при взаимодействии с Linux-сообществом

Сообщение rssbot »


Компания Parallels, развивающая открытую систему изолированных контейнеров OpenVZ и коммерческие решения для виртуализации, автоматизации хостинга и облачных вычислений, предоставила перевод тезисов доклада "Чему научил Android сообщество open source?", прочитанного Джеймсом Боттомли на конференции Linux Plumbers. Джеймс Боттомли, входит в управляющий совет организации Linux Foundation, занимает пост технического директора по серверной виртуализации компания Parallels и является известным разработчиком ядра Linux (мэйнтейнер SCSI-подсистемы). В своём выступлении Джеймс рассказывает о важности тесной работы с upstream-проектами, приводя в качестве примера отношение разработчиков Android к вливанию написанного кода в основное ядро Linux и размышляя какие уроки можно извлечь из этой истории. Джеймс начал начал своё выступление с общих вещей и для начала попытался ответить, что такое Android. Android – плоть от плоти Linux. И, конечно, самый успешный по количеству инсталляций дистрибутив мобильной операционной системы. Настольные версии Linux во всем их многообразии существенно отстают по численности установок. Особенности Android:
  • В основе платформы лежит форк ядра Linux;
  • Написана с нуля часть инструментария, в частности Си-библиотека bionic;
  • Создана оригинальная виртуальная машина Java (Dalvik JVM).
На взгляд Джеймса, Android – канонический пример, как не надо делать open source проекты. Болевые точки – значительное отклонение от апстрима в модификациях ядра и изобретение двух "велосипедов"(bionic и Dalvik). Тем не менее, Android – просто вопиюще успешный Linux-дистрибутив. Стало быть, всему сообществу нелишне проанализировать ситуацию и выяснить всю правду. Кто знает, может, трюки из арсенала Android помогут в создании еще одного успешного проекта на рынке. А успешный проект – это не менее привлекательно, чем красивый и правильный код. Цели бизнеса и разработчиков практически ортогональны. Для бизнеса важно найти свою нишу, заполнить ее и работать над удовлетворением запросов клиентов. Для сообщества разработчиков ценность традиционно составляет легкость сопровождения и простота добавления новой функциональности, а также то, чтобы в коде непременно были реализованы наиболее удачные, красивые технические решения. Компания Google создавала Android как существенное ответвление от основного ядра Linux – недаром дополнительно были созданы две заметные надстройки, библиотека C и JVM. Это было сделано для того, чтобы уложиться в жёсткие сроки и чтобы внести в ядро ряд существенных изменений, необходимых для мобильных устройств. Например – добавить поддержку wakelocks (модуль для того, чтобы ядро поскорее засыпало, но при этом не переходило в спящий режим тогда, когда этого делать нельзя — например, во время разговора по телефону или игры). Все модификации изменили ОС настолько, что драйверы под обычное ядро Linux и под ядро Linux из состава Android — немного разные. Из всего вышесказанного можно сделать вывод, что форк – зло. Однако это не так. Во-первых, все изменения в обязательном порядке выкладываются в общий доступ, как это предписывается GPL. Для сообщества это огромный плюс: без форков сообщество остановилось бы в развитии, и Google с проектом Android никогда не достиг бы его нынешних высот. Тот факт, что форк был инициирован Google, позволил компании контролировать ход работ над Android и хорошо контролировать процесс разработки. Так что форки не только не нужно запрещать, их нужно всячески поддерживать. Другой важный вопрос – о том, насколько правомерно считать форк фрагментацией. Большинство сторонников open source, конечно же, ответят, что да, форк – это и есть фрагментация. Но Джеймс в данном вопросе категоричен. Форк – это всего лишь ответвление; фрагментация же начинается тогда, когда результаты форка не получается влить обратно в мейнстрим. В этом отношении – да, фрагментация есть безусловное зло. Она, кстати, уничтожила Unix. Но чтобы форк оставался форком и не превращался во фрагментацию, его результаты нужно вовремя влить в мейнстрим. Еще одна тема, вызывающая бурные дискуссии, – природа GPL для бизнеса: добро или зло? Бизнес-пользователи в большинстве считают, что зло. Им не хочется делиться своими разработками со всем миром. Похоже, у людей, которые стояли во главе проекта Android, были аналогичные представления. Но избежать GPL все равно не удалось, и ничего страшного не случилось. Самое главное – соблюдать условия лицензии. И помнить, что именно благодаря GPL мобильная платформа вообще появилась на свет. Что насчет виртуальной машины Dalvik ? Это самая инновационная деталь в Android. Применив её, создатели ОС заложили в платформу большой потенциал для создания действительно интересных решений. Уровень приложений для Android отделен от ядра. Ну а restricted API – это средство сделать для «Андроида» любой пользовательский интерфейс. Что мы и видим на гаджетах от разных производителей. Пока «Андроид» выглядит как дитя гениальных родителей. Между тем, при его создании был допущен ряд больших и обидных ошибок. Первое и главное фиаско – с календарем, совместимым с MS Exchange. По какой-то причине в Android не была добавлена эта функция. Хотя она является одной из основных, например, у Blackberry. Без календаря путь Android на корпоративный рынок был закрыт. Motorola исправила этот недостаток в версии Android 1.6, самостоятельно реализовав нужную функциональность (приложение CorpCal) для телефона Droid. Поддежка календаря в рамках ОС появилась только в версии 2.2. Таким образом ОС потеряла целый год только потому, что в ней не было очевидной возможности. Более того, создатели Android почему-то не использовали код Motorola, чтобы перенести календарь в ОС. Все оттого, что разработчики Google привыкли писать код «за высоким забором». Google плотно контролирует разработку мобильной операционной системы, «выбрасывая через забор» лишь готовые версии. Для партнеров – производителей оборудования (HTC, LG, Samsung и т.д.) нет раннего доступа к коду. Соответственно, у них и нет времени, чтобы портировать свои разработки в новую версию ОС (хотя отдельные наблюдатели утверждают, что в последнее время ситуация с ранним доступом к коду постепенно улучшается). Возможно, Android боится копирования со стороны Apple. Ну и самое основное: чему все-таки можно научиться на опыте Google и Android? Первое и основное – неким правилам правильного форка. Надо понимать, что форк – это благо: он развивает сообщество. Для разработчика upstream - единственный способ гарантировать долгую жизнь своему коду. Вот поэтому Parallels сейчас усиленно работает над тем, чтобы интегрировать в основное ядро Linux поддержку контейнеров OpenVZ. Это большая работа, потому что код большой. С вливанием wakelocks и других модификаций ядра большие сложности, на преодоление которых реально потребуются годы. Сложности начинаются у точки слияния. Процессом нужно хорошо управлять. Как правило, код большой, что делает слияние еще большей проблемой. Кроме того, те люди, которые вливают код в апстрим, часто воспринимают чужой код как никому не нужную поделку, сделанную на коленке (даже если это не так). Поэтому код, который планируется к вливанию, лучше регулярно показывать сообществу. Даже если слияние – дело далекого будущего. Лучше, чтобы тебя услышали на раннем этапе. В том числе и те, кто потом будет вливать код в апстрим. Ряд рекомендаций для того, чтобы слияние прошло как можно более гладко:
  • Разбивать код на небольшие фрагменты.
  • Но вместе с тем вливать код с реализацией определенной функциональности, а не кусками.
  • Быть готовыми приложить большие усилия на этапе вливания кода в апстрим.
Краткое заключение:
  • Android – яркий пример, как не стоит делать разработчикам, если хотят развивать детище, а для сообщества – урок по усмирению гордыни.
  • Сообществу нужно искать более простые способы принимать ответвившиеся проекты.
  • Сообщество должно разъяснять, почему бизнесу не надо бояться open source и GPL.
  • Каждый форк должен разрабатываться с прицелом на дальнейшее слияние кода с upstream.
  • Несмотря на все сложности, Android один из самых успешных проектов.



Источник: http://www.opennet.ru/opennews/art.shtml?num=32062


оригинал на opennet.ru
Спасибо сказали:
Slimy
Сообщения: 1689
ОС: openSuSE 11.2 GM (GеMор едишн)

Re: [ON] Джеймс Боттомли анализирует промахи Android при взаимодействии с Linux-сообществом

Сообщение Slimy »

Android – канонический пример, как не надо делать ПОПУЛЯРНЫЕ open source проекты. И к этому добавить нечего. Сейчас даже прожженые вендузятники радостно клепают софт под эту платформу.
Если уже ничего не помогает - прочти инструкцию.
sysinstall - гадость :)
ASUS A6q00Vm Pentium-M 1.7 GHz, 2Gb RAM, 160Gb HDD,
GeForce Go 7300 64Mb video
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora

Re: [ON] Джеймс Боттомли анализирует промахи Android при взаимодействии с Linux-сообществом

Сообщение arkhnchul »

Сейчас даже прожженые вендузятники радостно клепают софт под эту платформу.

ну им не привыкать, наверно. Там такие костылища, бывает, приходится делать...
Losing is fun!
Спасибо сказали:
Slimy
Сообщения: 1689
ОС: openSuSE 11.2 GM (GеMор едишн)

Re: [ON] Джеймс Боттомли анализирует промахи Android при взаимодействии с Linux-сообществом

Сообщение Slimy »

arkhnchul писал(а):
19.10.2011 12:11
Сейчас даже прожженые вендузятники радостно клепают софт под эту платформу.

ну им не привыкать, наверно. Там такие костылища, бывает, приходится делать...

Пользователю это не важно он видит софт, море софта, которое делает что ему нужно, есть из чего выбрать. Ну и выглядит это все отлично и однородно в отличие от уродств(gtk+ <-> Qt and etc.) неудачной локализации вообще полностью нарушенном look and feel. Ну и в качестве бонуса не надо таскать с собой 20 летнее наследие. Есть неплохой шанс что эта платформа может придти и на десктопы.
Если уже ничего не помогает - прочти инструкцию.
sysinstall - гадость :)
ASUS A6q00Vm Pentium-M 1.7 GHz, 2Gb RAM, 160Gb HDD,
GeForce Go 7300 64Mb video
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora

Re: [ON] Джеймс Боттомли анализирует промахи Android при взаимодействии с Linux-сообществом

Сообщение arkhnchul »

Пользователю это не важно он видит софт, море софта, которое делает что ему нужно, есть из чего выбрать.
ну разговор был про тех, кто "клепают софт", а не пользователей)
Есть неплохой шанс что эта платформа может придти и на десктопы.
НЕНАААДАААА!!!! вы под андроид пробовали написать чего-нибудь более-менее сложное? лично я всего в двух программках уже запарился бегать по граблям его апи с жесткой завязкой любой визуальной деятельности на Activity, цирком с конями вокруг адаптеров к виджетам и их тредов, "not implemented due to security reasons" и прочим. Ну и плюс - не подойдет такое пальцетыкательное на десктоп.
Losing is fun!
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: [ON] Джеймс Боттомли анализирует промахи Android при взаимодействии с Linux-сообществом

Сообщение Bluetooth »

Slimy писал(а):
19.10.2011 15:25
Есть неплохой шанс что эта платформа может придти и на десктопы.

нет никаких шансов. И слава богу.
Спасибо сказали: