Небольшой FAQ от Kevin (ник kdub на #ubuntu-mir freenode), который поможет разобраться в шумихе вокруг дисплейного сервера Mir и операционной системы Ubuntu Touch для планшетов. В данной статье описано, как именно Mir будет абстрагирован от нижележащего слоя, чтобы уметь работать и на обычных десктопах, заменив Xorg, и на планшетах, заменив SurfaceFlinger. Не забывайте, что выше этажом будет работать Unity Next, чья цель объединять своим интерфейсом различные платформы и архитектуры.
Чтобы понимать, о чём идёт речь, стоит взглянуть на иллюстрацию текущего положения дел с Убунту для планшетов.
Как видно из рисунка, к маю 2013 года нужно избавиться от SurfaceFlinger и заменить его на дисплейный сервер Mir.
Да. При запуске Mir внутри планшета под управлением Ubuntu Touch используется платформа андроид, чтобы получить полное OpenGLES ускорение. OpenGL ES (OpenGL for Embedded Systems) — OpenGL для встраиваемых систем.
Полное ускорение! Более конкретно, это означает, что весь путь от рендера (client render) до framebuffer будет аппаратно ускорен. Это даст пользователям дисплейного сервера Mir и Unity Next так необходимую производительность.
Ох, нет! Mir не содержит в себе Java. Mir - это C++11, с использованием новомодных вещичек типа умных указателей, лямбда функций и т.п.
Нет! Все зависимости и инструментарий сборки доступны в deb пакетах Убунту. Мы используем пакет программ gcc arm из репозитория Убунту. Программа adb из android-tools-adb может быть полезна, но не обязательна.
Мы фокусируемся на линейке Nexus в первую очередь, но всё должно будет работать на любом устройстве, независимо от производителя GPU. Сейчас в основном разработчики нацелены на платформу Ice Cream Sandwich и новее. Список устройств, тестирующихся на работу с Mir, можно глянуть в Installing pre-built packages on an Android device.
Разработчики Mir используют напрямую, как есть, бинарники от производителя GPU. Разработчики андроид драйверов вложили миллионы долларов, чтобы их драйвера отлично работали под Android и Mir не собирается выкидывать их труд и деньги на помойку.
Драйвера под андроид используют:
Mir использует то же самое сочетание, чтобы быть таким же надёжным, как текущая система отображения данных Андроида.
Кратко, нет. Драйвера андроида используют bionic libc, которую знают и любят разработчики андроид драйверов, а код Mir и библиотеки используют обычную GNU libc, которую мы лучше знаем и любим.
Рассматривали этот вопрос и нашли, что:
Нет! Клиенты Mir могут быть запущены как на платформе Mesa/GBM, так и на Android. Мы много сделали, чтобы "клиент" не зависел от нижележащей модели драйверов OpenGLES.
Никакой перекомпиляции или определения нужной платформы не нужно!
Моя мысль.
В целом, мне многое стало ясно. Unity Next, переписываемая в Qt/QML стиле, продолжит дело Unity и будет объединять разрозненные вычислительные платформы под единым интерфейсом. Qt/QML даст разработчикам лёгкость в адаптации Убунту под разные устройства с их разными экранами и наличию/отсутствию сенсорных, новомодных штучек.
Под капотом Unity Next будет работать дисплейный сервер Mir, который заменит старика Xorg, который на новых устройствах вызывает больше проблем, чем помогает. Mir не будет зависеть от нижележащего слоя. На десктопе Mir будет использовать знакомые нам проприетарные или свободные драйвера к NVIDIA и AMD видеокартам. На планшетах и других ARM устройствах, Mir будет использовать родные андроид драйвера GPU производителя. Задача Mir'а изолировать работу с видеосистемой и предоставить для Unity Next единый механизм работы.
В этом свете, создание Мира - это действительно грамотный шаг.
Wayland пытается охватить только десктоп и его разработчики, возможно, не рассматривали работу Wayland на драйверах мобильных платформ типа планшетов. Самим реализовывать нужное? Чем это лучше с нуля написанного? Кристофер Роджерс уже указывал на 5 причин почему не выбрали Wayland.
30 летний Xorg пилить и изменять под современные нужды и множество различных аппаратных платформ - банальная трата времени.
Вот цель Canonical! Единая кодовая база Ubuntu, которая легко превратится в Ubuntu Touch или что-то подобное в будущем для будущих устройств. Эта единая Убунту, но с разными лицами, благодаря Unity Next, будет работать на дисплейном сервере Mir. А Mir будет работать на разных платформах - с разными архитектурами CPU и GPU. И всё под контролем Canonical! Браво!
Вы по-прежнему не любите новости про Мир? Писаете кипятком от сетевой прозрачности Иксов? Она уже не работает в нём на 100%.
Читаем:
Французский программист Julien Danjou, разработчик оконного менеджера Awesome, и его мысли вслух о протоколе X.
Jasper St. Pierre, разработчик GNOME Shell в статье Графический стек Linux.
Связанное единым Миром:
Wayland, Mir, X - разные проекты.
Зачем Canonical создала Мир? 5 причин от Кристофера Роджерса.
Canonical представила дисплейный сервер Mir.