Mir і android

Невеликий FAQ від Kevin (нік kdub на # ubuntu-mir freenode), який допоможе розібратися в галасі навколо дисплейного сервера Mir і операційної системи Ubuntu Touch для планшетів. В даній статті описано, як саме Mir буде абстраговані від нижчого шару, щоб вміти працювати і на звичайних десктопах, замінивши Xorg, і на планшетах, замінивши SurfaceFlinger. Не забувайте, що вище поверхом буде працювати Unity Next, чия мета об'єднувати своїм інтерфейсом різні платформи і архітектури.

Щоб розуміти, про що йде мова, варто поглянути на ілюстрацію поточного стану справ з Убунту для планшетів.

Mir і android

Mir буде підтримувати андроїд драйвера?

Так. При запуску Mir всередині планшета під управлінням Ubuntu Touch використовується платформа андроїд, щоб отримати повне OpenGLES прискорення. OpenGL ES (OpenGL for Embedded Systems) - OpenGL для вбудованих систем.

Яке прискорення буде з андроїд драйверами?

Повний прискорення! Більш конкретно, це означає, що весь шлях від рендеру (client render) до framebuffer буде апаратно прискорений. Це дасть користувачам дисплейного сервера Mir і Unity Next так необхідну продуктивність.

Android використовує Java. Чи означає це, що Mir використовує Java?

О, ні! Mir не містить в собі Java. Mir - це C ++ 11, з використанням новомодних дрібничок типу розумних покажчиків, лямбда функцій і т.п.

Мені потрібні інструменти, типу SDK або NDK, від платформи Android для роботи з Mir в Ubuntu Touch?

Ні! Все залежить і інструментарій збірки доступні в deb пакетах Убунту. Ми використовуємо пакет програм gcc arm зі сховищ Убунту. Програма adb з android-tools-adb може бути корисна, але не обов'язкова.

На яких пристроях вже працює Mir?

Ми фокусуємося на лінійці Nexus в першу чергу, але все повинно буде працювати на будь-якому пристрої, незалежно від виробника GPU. Зараз в основному розробники націлені на платформу Ice Cream Sandwich і новіше. Список пристроїв, тестують на роботу з Mir, можна глянути в Installing pre-built packages on an Android device.

Як Mir використовує android драйвера?

Розробники Mir використовують безпосередньо, як є, бінарники від виробника GPU. Розробники андроїд драйверів вклали мільйони доларів, щоб їх драйвера відмінно працювали під Android та Mir не збирається викидати їх працю і гроші на смітник.

Драйвера під андроїд використовують:

  • ядро андроїда.
  • bionic libc - варіант стандартної бібліотеки мови Сі, розроблений Google для використання в складі ОС Android.
  • бібліотеки драйвера.

Mir використовує те ж саме поєднання, щоб бути таким же надійним, як поточна система відображення даних Андроїда.

Чи означає це, що Mir використовує bionic libc?

Коротко, немає. Драйвера андроїда використовують bionic libc, яку знають і люблять розробники андроїд драйверів, а код Mir і бібліотеки використовують звичайну GNU libc, яку ми краще знаємо і любимо.

А чого не використали SurfaceFlinger замість написання свого дисплейної сервера Mir?

Розглядали це питання і знайшли, що:

  • SurfaceFlinger дуже прив'язаний до платформи Андроїд і буде потрібно багато роботи, перетворюючи звичайну Ubuntu в Ubuntu Touch. Якщо уявити, гіпотетично, що це вийшло, то це будуть дуже різні Убунту.
  • SurfaceFlinger заснований на дуже простому методі відтворення за допомогою Z-буферів (z-order based compositing). Нам же потрібно було те, що підтримає можливості Unity, які вже працюють на Desktop.
  • SurfaceFlinger потрібно було б адаптувати для роботи з драйверами Mesa / GBM, а це величезний фронт робіт і, можливо, це не реально зробити.

Користуються Mir стосуватиметься на якій платформі Android або Mesa / GBM вони запущені?

Ні! Клієнти Mir можуть бути запущені як на платформі Mesa / GBM, так і на Android. Ми багато зробили, щоб "клієнт" не залежав від нижележащей моделі драйверів OpenGLES.
Ніякої перекомпіляції або визначення потрібної платформи не потрібно!

Mir і android

Моя думка.
В цілому, мені багато чого стало ясно. Unity Next, переписують в Qt / QML стилі, продовжить справу Unity і буде об'єднувати розрізнені обчислювальні платформи під єдиним інтерфейсом. Qt / QML дасть розробникам легкість в адаптації Убунту під різні пристрої з їх різними екранами і наявності / відсутності сенсорних, новомодних штучок.

У цьому світлі, створення Світу - це дійсно грамотний крок.

Wayland намагається охопити тільки десктоп і його розробники, можливо, не розглядали роботу Wayland на драйвери мобільних платформ типу планшетів. Самим реалізовувати потрібне? Чим це краще з нуля написаного? Крістофер Роджерс вже вказував на 5 причин чому не обрали Wayland.

30 річний Xorg пиляти і змінювати під сучасні потреби і безліч різних апаратних платформ - банальна трата часу.

Ось мета Canonical! Єдина кодова база Ubuntu, яка легко перетвориться в Ubuntu Touch або щось подібне в майбутньому для майбутніх пристроїв. Ця єдина Убунту, але з різними особами, завдяки Unity Next, буде працювати на дисплейному сервері Mir. А Mir буде працювати на різних платформах - з різними архітектурами CPU і GPU. І все під контролем Canonical! Браво!

Mir і android

Ви як і раніше не любите новини про Світ? Писав окропом від мережевої прозорості іксів? Вона вже не працює в ньому на 100%.
читаємо:
Французький програміст Julien Danjou, розробник віконного менеджера Awesome, і його думки вголос про протокол X.
Jasper St. Pierre, розробник GNOME Shell в статті Графічний стек Linux.

Схожі статті