Open webOS 1.0
🕛 01.10.2012, 04:06
Компания Hewlett-Packard анонсировала первый релиз полностью открытой мобильной платформы Open webOS, созданной благодаря открытию исходных текстов проприетарной платформы webOS. В общей сумме в процессе открытия кода webOS были опубликованы исходные тексты 75 компонентов платформы, размер открытых исходных текстов которых составил более 500 тысяч строк кода. Open webOS не только распространяется в открытых исходных текстах под свободной лицензией Apache, но и развивается под управлением независимого комитета, работа которого организована в стиле сообщества Apache. Для курирования проекта в будущем планируется создать некоммерческую организацию, процесс принятия решений в которой будет предельно прозрачным и независимым от отдельных вендоров. Изменения будут передаваться через уполномоченных коммитеров. При наличии разногласий решения будут приниматься путем достижения консенсуса. На начальной стадии основной костяк коммитеров сформирован из работников HP, но проект будет целиком следовать принципам меритократии, поэтому в будущем постепенно права коммитеров обретут наиболее активные представители сообщества и компаний, выделяющих ресурсы на развитие webOS.
Для использования платформы сформировано два сборочных окружения: build-webos - окружение на основе проекта OpenEmbedded, предназначенное для оценки работы на портативных устройствах и для портирования webOS для новых устройств. Сборка на основе OpenEmbedded дополнительно включает в себя эмулятор ARM и средства кросс-компиляции для различных аппаратных платформ. build-desktop - окружение для оценки работы Open webOS на обычных десктоп-системах, которое позволяет энтузиастам использовать обычные средства разработки для изучения и улучшения webOS, а также для экспериментов по интеграции различных открытых технологий.
В качестве основы платформы выступает базирующийся на Qt и QtWebKit системный менеджер (System Manager) Luna, который управляет выполнением web-приложений, отвечает за организацию работы интерфейса Card View, обеспечивает запуск приложений, формирует экран блокировки системы, управляет меню и статусной строкой. Системный менеджер обеспечивает функционирование компонентов, необходимых для зпуска пользовательских и системных приложений, среди которых почтовый клиент, календарь-планировщик, почтовый клиент, система ведения заметок, адресная книга, часы, калькулятор, менеджер управления распределением финансов и web-браузер Isis.
Конечные доступные пользователю приложения и базовая оболочка создаются с использованием web-технологий (CSS, HTML5 и JavaScript) и JavaScript-фреймворка Enyo, который предоставляет необходимый набор виджетов и макетов размещения элементов (layout). Обмен данными между приложениями построен на основе шины, манипулирующей данными в формате JSON. Для доступа web-приложений к системному API используется D-Bus Bridge. Для хранения данных задействована БД LevelDB. Базовая пользовательская оболочка Open webOS основана на использовании вместо окон парадигмы сменяющих друг друга карт, поддерживается навигация через жесты и одновременные касания к экрану (мультитач режим).
С использованием web-технологий написан даже web-браузер Isis, интерфейс которого построен на языке JavaScript с использованием фреймворка Enyo и библиотеки Qt 4.8. В качестве брузерного движка задействован QtWebKit, для выполнения JavaScript используется JavaScriptCore. Браузер построен с использованием клиент-серверной модели, при которой рендеринг и обеспечение работы пользовательского интерфейса вынесены в разные процессы. В частности, процесс Browser Server выполняет рендеринг страницы в буфер, а плагин Browser Adapter обеспечивает отображение сформированного буфера. Отмечается, что вынос интерфейса в отдельный процесс позволил достичь отличной отзывчивости браузера и обеспечить поддержку плавного скроллинга. Использование WebKit позволяет добиться поддержки всех современных web-стандартов. Поддерживается подключение NPAPI-плагинов, таких как Adobe Flash.
Из планов на будущее отмечается переход проекта на Qt5 и WebKit2, добавление открытых компонентов для работы с мультимедиа и звуком (мультимедийные приложения не вошли в состав первого релиза), интеграция стека BlueZ для обеспечения работы Bluetooth, задействование системы ConnMan для организации настройки сети, оптимизация архитектуры рендиренга в системном менеджере.
Дополнение: сообщество webOS-Ports.org представило первый рабочий порт платформы Open webOS 1.0 для смартфона Google Nexus.