MeeGo — дистрибутив Linux, разработка которого, на данное время, прекращена. Платформа предназначена для работы на широком спектре устройств, включая смартфоны, планшеты, нетбуки, настольные компьютеры, телевизионные приёмники и информационно-развлекательные системыWhat’s Next for MeeGo | MeeGo. . Для каждой категории устройств разрабатывается отдельная сборка и подготавливается загрузочный 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 в БарселонеСтатья на сайте на lenta.ru: «Nokia и Intel показали новую операционную систему» Intel: MeeGo exists because Microsoft let us down | News | TechRadar UK. .

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 года альянс BMW, GM, PSA Peugeot Citroën, Intel, ARM. Членами альянса являются также Renault, Hyundai, Nokia, Pioneer, Cisco, Samsung, Vivante и др.

28 октября 2010 года вышел релиз MeeGo 1.1. Было заявлено, что новая версия обеспечивает надёжную основу для поставщиков устройств и разработчиков, позволяя приступить к созданию программного обеспечения для различных категорий устройств на архитектурах x86 и 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.