Интервью с Джеймсом Боттомли: Android изнутри

  • Категория: Пишут в сети / Apple
  • Дата: 17-05-2013, 23:33
  • Просмотров: 0

Редакции iGuides удалось задать несколько вопросов Джеймсу Боттомли, техническому директору по серверной виртуализации Parallels. Джеймс — один из доверенных лиц Линуса Торвальдса и выдающийся разработчик ядра операционной системы Linux. Он очень любит Android как мобильную операционную систему и коммерчески успешный продукт, но критикует его с позиции open source разработки. В интервью Джеймс Боттомли рассказывает об ошибках, допущенных при создании Android, комментирует спор с Oracle из–за Java и объясняет, почему нужные пользователям новинки, например, Project Butter появились так поздно. Android основан на ядре Linux, но оно было существенно изменено. Какие основные сложности встали перед инженерами при создании мобильной операционной системы? Какие основные ошибки были допущены, и что нужно исправить пока не поздно? Разработчики изначально сильно изменили его. Проблема, с которой столкнулись в процессе, заключалась в необходимости соблюдать дедлайны. Модель работы open source сообщества — это вообще не про временные рамки, так что Android изначально был обречен на то, чтобы развиваться за пределами комьюнити. Когда вы работаете над чем–то много лет, получается ядро со значительными изменениями. Чтобы уложиться в жесткие промышленные сроки, оставаясь вне рамок сообщества, пришлось внести в ядро новую функциональность, например, вейклоки (Wakelocks – модуль, чтобы ядро засыпало как можно скорее, но не делало это, например, во время разговора по телефону — прим. ред.). С того времени Linaro (некоммерческая организация, занимающаяся консолидацией и оптимизацией программного обеспечения — прим. ред.) несет бремя по получению приемлемого для сообщества кода Android, так что он приблизился к основной линии разработки Linux. Это урок на будущее. Вместо того чтобы работать отдельно, с самого начала они должны были использовать модель сообщества. А функции, которые будут нужны на момент выхода продуктов, добавлять в патчах. Это похоже на разработку ядра Parallels Virtuozzo Containers. Мы постоянно работаем над добавлением частей кода open-source продукта OpenVZ (реализация технологии виртуализации на уровне операционной системы — прим. ред.) в kernel-ядро Linux. Если на момент релиза не хватает каких–то функций или они не доработаны, мы добавляем их в патчах. Такая модель работы позволяет сохранять ядро ближе к основной линии. Oracle утверждала, что Java в Android используется незаконно, но они не смогли доказать это в суде. А что если бы они выиграли? Насколько серьезной проблемой это стало бы для Android–сообщества и для какой именно компании? Возможно, это стало бы большой проблемой для userspace Android, ведь он полностью основан на Java. Однако если вы посмотрите внимательней на выдвинутые Oracle обвинения, их победа имела бы существенные последствия для отрасли в целом. Проще говоря, Oracle заявляли о своих правах на интерфейсы для Java, очевидно, добиваясь отчислений от других разработчиков под Android. Впрочем, эту проблему наверняка можно было решить адаптацией Android под бесплатную версию Java от Oracle под GPLv3. Но это было бы первым шагом к незаконному использованию clean room реверс–инжиниринга (разработка известных функций в «чистой среде», без знаний о закрытых технологиях конкурентов — прим. ред.), что сильно повредило бы разработке продуктов с открытым и даже закрытым исходным кодом. Так почему же Java (Dalvic) так важна для Android? Модель создания Android–приложений основана на Java. Dalvic — версия Java, созданная методом clean room. Это одна из самых необходимых деталей в Android. С ее помощью уровень приложений для Android отделен от ядра, а restricted API — средство сделать любой пользовательский интерфейс. Без некоторых интерфейсов, например Java, было бы намного сложнее скрыть различия в оборудовании между разными андроид–устройствами. И намного больше сил приходилось бы тратить на создание приложений для работы на каждом смартфоне или планшете. А почему Project Butter появился только в Android 4.1? Сложно поверить, что до этого Google не понимала важность плавной работы интерфейса. На самом деле это нельзя назвать проблемой open source разработки. Я верю, что цитату Вольтера можно применить к Android: «Лучшее — враг хорошего». В первую очередь Google нужно было представить разработку, которая может стать конкурентом Apple. Заниматься доработками (а именно этим является project butter) можно позднее, по мере дальнейшей работы над проектом. Изначально для Android важнее было иметь хоть какой–то интерфейс, а не плавный и «сияющий». Есть информация, что бренд «Galaxy» становится популярней «Android». В новых сервисах все чаще используется приставка «Google». Я имею в виду Google Now, Google Glass, Google Babble... Как вы думаете, может ли Google разделить мобильную операционную систему на два направления: «Google OS» для флагманов и «Android» для недорогих смартфонов и, например, часов или автомагнитол? Если вы говорите о делении Linux на два направления, это уже есть. Google занимается разработкой Chrome OS и Android. Я не вижу возможность еще большей фрагментации. Android обладает широкими возможностями изменения, этим пользуются сторонние производители для кастомизации операционной системы. И он достаточно хорош для использования в часах и автомобилях, так что нет нужды в создании еще одной встраиваемой операционной системы. Однако речь идет о проекте с открытым исходным кодом, и он на уровне «инстинктов» стремится к унификации, чтобы в итоге все попало в основной поток разработки. Я думаю, фрагментация из–за кастомизации и форки Android просуществуют недолго, хотя я не стал бы заходить так далеко, чтобы утверждать о становлении Android доминирующей операционной системой. В заключение хочется спросить, что вы думаете Ubuntu Mobile? Будет ли она популярной? Проблема Ubuntu Mobile в том, что она выходит на рынок третьей, после Android и Tizen. Это не значит, что операционная система не будет популярной, но будет нелегко убедить людей попробовать ее, потому что на рынке уже будет два альтернативных варианта, а Ubuntu Mobile — новичок. Впрочем, я пока не видел никаких прототипов, так что это все лишь общие наблюдения за рынком. В цикле статей «История мобильных операционных систем» я рассказывал о развитии Android глазами потребителя. Но мобильная операционка — часть огромного Linux–сообщества, так что не все происходящие процессы заметны и понятны среднестатистическому пользователю. Значительное отклонение от основного направления разработки в модификациях ядра Linux, возвращение кода в «апстрим» и необходимость оптимизации для различных устройствах привели к тому, что в некоторых аспектах Android отставал от iOS. Но к четвертой версии операционной системы необходимый минимум был доработан, и началась «полировка» Андроид и отдельно взятых функций. Появились Project Butter, облачная синхронизация, игровой центр. Много новых заметных для пользователя изменений будет представлены в следующих версиях — об этом я вчера писал в статье «Послевкусие Google I/O».

По материалам: www.iguides.ru