MeeGo

MeeGo — проект с открытым исходным кодом на базе ядра Linux. Платформа предназначена для работы на широком спектре устройств, включая смартфоны, планшеты, нетбуки, настольные компьютеры, телевизионные приёмники и информационно-развлекательные системы. Для каждой категории устройств разрабатывается отдельная сборка и подготавливается загрузочный ISO-образ. В основе любой из них лежит базовая составляющая — MeeGo Core Software Platform, определяющая основную функциональность системы. Пользовательский интерфейс различен для каждой сборки соответствующей категории устройств, исходя из различных принципов, особенностей и условий их работы. Центральной идеей является обеспечение максимально легкой переносимости приложений между различными вариантами сборок. Перенос приложения на другие устройства, работающие под управлением MeeGo, не будет представлять собой разработку нового приложения, а будет лишь доработкой или расширением уже существующего приложения.

MeeGo — независимый проект, возглавляемый MeeGo Technical Steering Group (TSG) под эгидой The Linux Foundation. Управление проекта основано на меритократии в соответствии с принципами и культурой Open Source. Не существует процедуры приема, контрактов и членских взносов, необходимо только желание присоединиться к проекту и внести вклад. Любая организация или частное лицо могут принять участие в разработке MeeGo. Все разработчики ПО и производители оборудования имеют равный и свободный доступ к инфраструктуре сборки и репозиторию исходных текстов.

В MeeGo используются наработки проектов Maemo (от Nokia), Moblin (от Intel), а также таких Linux-проектов, как Fedora, Debian, OpenSUSE. Многие частные компании принимают участие в разработке и адаптации MeeGo: Intel (на сегодня основной участник проекта), AMD, Novell, ASUS, Acer, MSI и другие.

Проект объединил опыт и знания, накопленные в процессе разработки технологий мобильной связи и компьютерных технологий. По мнению участников проекта, эти направления будут иметь ключевое значение в разработке технического фундамента для компьютерных и мобильных устройств следующего поколения.

Архитектура MeeGo

Архитектура системы MeeGo изначально проектировалась как решение, предназначенное для работы на широком спектре устройств. Один из способов рассмотрения архитектуры предполагает разделение системы на три уровня (слоя).

Уровень пользователя

Обеспечивает пользовательский интерфейс (UX) для различных сегментов платформы. Для разных устройств необходим различный интерфейс, но строится он на аналогичных принципах и, если уже создано приложение для какого-нибудь устройства, то его перенос на другие устройства, работающие под управлением системы MeeGo, не будет представлять собой разработку нового приложения, а будет лишь доработкой или расширением приложения. В настоящее время поддерживаются следующие варианты интерфейса:

  • Netbook UX — для нетбуков.
  • Handset UX — для телефонов и смартфонов.
  • In-Vehicle Infotainment (IVI) UX — для информационно-развлекательных систем.
  • Tablet UX — для планшетов (альфа-версия).

Этот уровень также предоставляет набор программных компонентов (Application Framework) для каждого из поддерживаемых профилей устройств.

Уровень приложений и интерфейс программирования приложений

Содержит MeeGo API, основанный на Qt и Qt Mobility, обеспечивает интерфейс для разработки приложений. Текущий релиз включает Qt 4.7.3, Qt mobility 1.2, OpenGL ES 1.1 и OpenGL ES 2.0. Дополнительные функции находятся в стадии разработки.

Базовая система

Включает в себя ядро Linux, программную прослойку (middleware), необходимую для определения оборудования, обеспечивающую связь ядра и прикладного программного обеспечения, а также ПО для обеспечения адаптации оборудования (Hardware Adaptation Software).

Программную прослойку (middleware) можно рассматривать как совокупность доменов, предоставляющих соответствующие службы (middleware/OS service domains), исходя из выполняемых функций:

  • Обеспечение безопасности (Security).
  • Управление данными (Data Management).
  • Управление программным обеспечением (Software Management).
  • Управление устройствами, распределение ресурсов, контроль состояния системы (System).
  • Локализация (Location Framework).
  • Графическая подсистема (Graphics).
  • Основные системные библиотеки (Essentials).
  • Поддержка мультимедиа и соответствующих драйверов (Multimedia).
  • Управление персональной информацией, резервное копирование, синхронизация, учётные записи и т. д. (Personal Information Management).
  • Интернет, телефония, средства мгновенного обмена сообщениями, сотовая связь (Communication).
  • Поддержка Qt, QtWRT, Qt Mobility (Qt).
  • Ядро Linux и драйверы ядра (Kernel).

Важной частью Базовой системы выступает ПО для обеспечения адаптации оборудования (Hardware Adaptation Software). Предоставляет соответствующий интерфейс программирования для адаптации оборудования (Hardware Adaptation API), что даёт возможность приспособить MeeGo для работы на оборудовании различных архитектур.

Каждый продавец оборудования должен предоставить необходимые компоненты для программного обеспечения, чтобы система MeeGo могла успешно работать на его платформе, включая драйверы, патчи и конфигурацию ядра, дополнительные патчи и конфигурацию для X Window System, поддержку модема, а также другие специфические компоненты, необходимые для поддержки аппаратуры.

Более детальную информацию можно получить на официальной странице для разработчиков MeeGo.

Основные характеристики

В базовой сборке MeeGo 1.2 Core Software Platform, определяющей основную функциональность системы, задействованы следующие компоненты:

  • Linux-ядро 2.6.37 c дополнительными оптимизациями, направленными на понижение энергопотребления, поддержку процессоров Intel Atom Z6xx и платформы Nokia N900.
  • Инструментарий сборки на базе GCC 4.5.1. Сборка осуществляется с расширенной поддержкой оптимизации для микроархитектуры Intel Atom и задействованием инструкций Intel SSSE3. В комплект включены выпущенные в рамках релиза Linaro 2010.09 патчи по оптимизации для основанных на ARMV7-A чипсетов, включая Tegra2 и Marvell Thumb2/Neon.
  • Файловая система по умолчанию — btrfs. Присутствует поддержка ext2, ext3, ext4, FAT, VFAT, FAT32, возможна поддержка NTFS через FUSE после установки драйвера NTFS-3G.
  • Содержит X.Org Server 1.9.0, Mesa 7.9.1, современный графический 2D/3D стек, поддерживающий переключение видеорежимов на уровне ядра (KMS) и не требующий для работы X-сервера привилегий суперпользователя.
  • Организация взаимодействия с оборудованием через DeviceKit и udev.
  • Qt 4.7.2 и Qt-mobility 1.2. Поддерживается GLee (GL Easy Extension library), дополнительно реализована поддержка мультитач через XInput2 API. В Qt-mobility дополнительно добавлены расширенные функции для работы с фотокамерами, поддержка libva и возможность работы с шейдерами через OpenGL ES 2.
  • Для обеспечения совместимости приложений в платформу включены библиотеки GTK+ и Clutter.
  • Для обеспечения функций голосовой связи и передачи данных задействованы телефонный стек oFono и система конфигурирования ConnMan.
  • В ConnMan из новых возможностей можно отметить поддержку OpenVPN, автоконфигурирование прокси, возможность организации работы других машин через текущую систему, поддержку IPv6 DNS.
  • В новой версии oFono добавлена поддержка новых модемов, улучшенная поддержка SSN и голосовых вызовов, возможность перенаправления звонков, функции обновления данных с SIM-карты, поддержка осуществления экстренных вызовов без SIM/PIN.
  • Поддержка Universal Plug and Play (UPnP).
  • В качестве формата пакетов для распространения приложений используется RPM, предпочтение отдано в основном из-за упрощенных средств для определения лицензии пакета, позволяющих осуществить сборку, включающую или исключающую какие-то компоненты в зависимости от их лицензии.
  • Звуковой сервер PulseAudio 0.9.22 c поддержкой политик управления ресурсами, обеспечением телефонных вызовов и управления звуком. Дополнительно добавлена поддержка bluetooth-профиля A2DP для прямого потокового проигрывания MP3.
  • Прослойка для управления пакетами программ PackageKit 0.6.13. Расширены возможности по работе через прокси, добавлена возможность отмены выполнения операций в процессе загрузки/установки пакетов, добавлена возможность прямой установки уже загруженных RPM-пакетов. Для управления пакетами используется пакетный менеджер Zypper/libzypp.
  • Также в платформе используется: Bluetooth-стек BlueZ, управляющая шина D-Bus, мультимедийный фреймворк GStreamer 0.10.32, встроен поисковый движок Tracker для индексации данных, в качестве коммуникационного фреймворка задействован Telepathy, синхронизация данных основана на фреймворке Buteo.

История разработки

16 февраля 2010 года состоялся официальный анонс проекта MeeGo на Mobile World Congress в Барселоне.

Amino отвечал за распространение MeeGo на телевизионные устройства, в то время, как Novell всё чаще внедряла технологию, которая была первоначально разработана для openSUSE.

31 марта 2010 года были представлены в открытый доступ первые предварительные версии MeeGo для разработчиков. Доступными стали сборки для нетбуков на основе процессоров Intel Atom, мобильных устройств на базе платформы Intel Moorestown и планшета Nokia N900.

В период с мая по август 2010 были представлены версии MeeGo 1.0 для нетбуков (Netbook), смартфонов (Handset) и автомобильных информационно-развлекательных систем (In-Vehicle Infotainment). Также был представлен комплект средств разработки MeeGo SDK.

26 июля 2010 года альянс GENIVI (англ. GENIVI)BMW, GM, PSA Peugeot Citroën, Intel, ARM. Членами альянса являются также Renault, Hyundai, Nokia, Pioneer, Cisco, Samsung, Vivante и др.

28 октября 2010 года вышел релиз MeeGo 1.1. Было заявлено, что новая версия обеспечивает надёжную основу для поставщиков устройств и разработчиков, позволяя приступить к созданию программного обеспечения для различных категорий устройств на архитектурах х86 и ARM.

В ноябре 2010 компания Advanced Micro Devices заявила о намерении принять участие в разработке операционной системы MeeGo на конференции MeeGo Conference 2010 в Дублине.

К этому моменту в руководстве компании Nokia уже произошли кадровые перемены. На должность генерального директора был назначен Стивен Элоп, до этого работавший на должности главы бизнес-подразделения корпорации Microsoft. Это кардинально повлияло на позицию Nokia в отношении разработки и внедрения MeeGo в своей продукции. 11 февраля 2011 года Microsoft и Nokia заключили долгосрочное соглашение по разработке и продаже ориентированных на мобильную платформу решений. Nokia официально представила новую стратегию развития компании, заключающуюся в принятии платформы Windows Phone 7 как базовой платформы для своих устройств и совместном с Microsoft продвижении этой платформы на рынке мобильных устройств.

В соответствии с новой стратегией MeeGo больше не является основной платформой для мобильных устройств Nokia, а переходит в разряд «проекта» с открытым исходным кодом. Было заявлено, что Nokia не отказывается от выпуска продуктов на базе MeeGo, но сам проект теперь позиционируется как долгосрочный и ориентированный на устройства следующего поколения. Впоследствии технический директор Nokia Рич Грин (Rich Green) сообщил на конференции Nokia Developer Day, что одно устройство под управлением MeeGo всё же должно быть выпущено до конца 2011 года, оно будет называться Nokia N950 и станет преемницей модели Nokia N900.

Компания Intel и организация The Linux Foundation публично выразили своё разочарование решением Nokia, но указали на то, что продолжат развитие платформы MeeGo, даже несмотря на потерю ключевого партнера по разработке данной платформы. Охлаждение интереса Nokia может привлечь к разработке MeeGo других производителей, которые осознают преимущество данной платформы и теперь имеют возможность выпустить MeeGo-телефоны, не находясь в тени такого гиганта, как Nokia.

19 мая 2011 года представлен релиз MeeGo 1.2. Одним из ключевых улучшений нового выпуска является подготовка компонентов, необходимых для использования MeeGo на коммуникаторах. Вариант для смартфонов содержит упрощённый интерфейс домашнего экрана, поддерживает виртуальную клавиатуру, строку статуса (отображаются часы, индикатор состояния сети, Bluetooth и 3G-соединения, область уведомлений и индикатор заряда батареи) и приложение для осуществления звонков (Dialer) и приема/отправки SMS. Реализована поддержка работы в сетях GSM, GPRS и HSPA+, подготовлен инструментарий для поддержки SIM-карт (SIM Application Toolkit), добавлена поддержка расширенных Bluetooth-профилей, реализованы дополнительные методы аутентификации для VPN и беспроводных сетей, обеспечена возможность предоставления доступа внешних ПК в сеть через коммуникатор (USB, WiFi и BT-PAN), расширена поддержка мультимедиа, включая поддержку RTSP-потоков.

21 июня 2011 года был представлен первый в мире смартфон на MeeGo — Nokia N9. Данный смартфон имеет процессор ARM Cortex A8 с тактовой частотой 1000 MHz, также присутствует 1 Гигабайт оперативной памяти. В смартфоне Nokia N9 в качестве операционной системы используется MeeGo 1.2 Harmattan — отдельный вариант MeeGo от компании Nokia. MeeGo 1.2 Harmattan не имеет полной бинарной совместимости с MeeGo 1.2 Core Software Platform (хотя большинство библиотек совместимыAPI и основных программных компонентов. Кроме этого, используется система управления пакетами на основе формата deb, в отличие от ранее официально принятого в MeeGo формата RPM.

1 июля 2011 года версия MeeGo 1.2 вышла как «Летний релиз» для смартфона Nokia N900.

27 сентября 2011 года было объявлено, что в течение 2012 года наработки MeeGo войдут в состав проекта Tizen, разработка которого будет вестись совместно с Samsung.

Осенью 2011 года бывшими сотрудниками компании Nokia из числа разработчиков MeeGo была основана компания Jolla для возобновления работы над операционной системой, от которой отказался менеджмент Стивен Элопа. К маю 2012 года к Jolla присоединились многие специалисты, участвовавшие в разработке Maemo и MeeGo, в том числе Марк Диллон, бывший ведущий разработчик Linux-направления в Nokia. Позже Марк Диллон был назначен COO. Новая компания намерена разработать новую операционную систему на базе MeeGo с использованием основы Mer, и фреймворка Qt. Но эта операционная система будет обладать собственным брендом и графическим интерфейсом. Руководители Jolla утверждают, что имеют в своём составе квалифицированных разработчиков, а также располагают поддержкой инвесторов

Системные требования и архитектуры, на которых работает MeeGo

MeeGo — это мультиплатформенный проект, поэтому, как и в любом проекте с открытым кодом, сообщество может самостоятельно выбрать направление и портировать проект на любую новую архитектуру. На данный момент поддерживаются архитектуры x86 и ARM.

Системные требования могут иметь свои особенности в зависимости от того, какую именно сборку (загрузочный образ MeeGo) вы хотите использовать, исходя из своего типа устройства. Все они строятся вокруг одной базы — MeeGo Core Software Platform.

MeeGo v1.2 for Netbooks

Процессор Intel Atom или Intel Core 2 CPU, обязательно с поддержкой SSE3. Протестировано на следующих платформах:

  • Pinetrail Netbook: HP mini, Asus Eee PC* 1005PE, Samsung N100-MA01
  • Nettop: MSI AE1900-B
  • Notebook: Acer Aspire* One 5740-6025
  • Lenovo S10-3t
MeeGo v1.2 for In-Vehicle Infotainment (IVI)

Процессор Intel Atom или Intel Core 2 CPU, обязательно с поддержкой SSE3. Протестировано на следующих платформах:

  • Intel Russellville eMenlow systems
  • Intel Atom processor E6XX series with Intel Platform Controller Hub EG20T platform (formerly CrownBay)
  • Intel Atom processor E6XX series with OKI Semiconductor Companion Chip ML7213 (Crossville/OKI)
MeeGo v1.1 for Handset (v1.2 ожидается в скором времени)

Поддерживаемые платформы: Nokia N900 ARM based,Aava Mobile Intel Moorestown DV2.

Устройства с предустановленной системой MeeGo

Смартфоны:

  • Nokia N9
  • Nokia N900 (версия 1.2 доступна с 26 марта 2011)
  • Nokia N950 (ограниченная серия, специально для разработчиков)

Моноблоки и планшетные компьютеры:

  • WeTab
  • Maestro S от Evolve III
  • iRU 101
  • 3Q Surf TU1102T

Нетбуки:

  • iRU Intro 102/104
  • Lenovo IdeaPad S10-3
  • Lenovo IdeaPad S100
  • Fujitsu LifeBook MH330
  • Asus Eee PC X101/X101H
  • Samsung N100 Netbook
  • 3Q EN8901N, ES1001N, EU1001N, EL1004N, RS1001T, BN1302N
  • MSI Wind U135DX

Ноутбуки:

  • Acer Aspire 5749-2334G50
  • Acer Aspire 5733Z-P623G50Mnkk
  • eMachines E529-P462G25Mikk
  • Lenovo IdeaPad S100
  • Samsung N100S <NP-N100S-N06> Atom N2100/2/320/WiFi/MeeGo/10.1"