Сервер

Дисплейный сервер mir: Unity (оболочка рабочего стола) — Википедия

Содержание

Unity (оболочка рабочего стола) — Википедия

Unity — свободная оболочка для среды рабочего стола GNOME, разрабатываемая компанией Canonical для операционной системы Ubuntu. Проект был закрыт[2] после того, как вышла последняя версия 14 мая 2016 года. Но затем разработка продолжилась в рамках проекта Ubports[3].

Unity являлась средой по умолчанию в Ubuntu Netbook Edition версии 10.10. Она позволяет более эффективно использовать маленькие экраны нетбуков, благодаря, например, вертикальной панели для переключения между запущенными программами[4][5].

Изначально, в качестве оконного менеджера использовался Mutter, который затем был заменён на Compiz. Начиная с Ubuntu 11.04, Unity использовалась по умолчанию вместо классической оболочки GNOME[6][7][8]. Все стандартные приложения по-прежнему разработаны GNOME[9][10][11], но не самые свежие.

Unity — оболочка рабочего стола для GNOME. Это не абсолютно новая среда рабочего стола. Оболочка рабочего стола — интерфейс, который вы видите. Unity будет использовать те же приложения и библиотеки GNOME, что используются сейчас. К примеру, GNOME shell — ещё одна оболочка для GNOME.

Оригинальный текст (англ.)

Unity is a desktop shell for GNOME. This is not the same as a totally new desktop environment. A desktop shell is the interface that you use. Unity will still use the same GNOME apps and libraries that the current desktop does. GNOME shell is an example of another shell for GNOME.

  Комбинации клавиш Unity в Ubuntu 12.04 LTS

Вначале Марк Шаттлворт, Canonical планировал перенести Unity с оконной системы X на Mir[12][13] — разработку Canonical. Он мотивировал это незрелостью, небезопасностью Wayland[14]. В ответ один из разработчиков Wayland иронизирует[15] над тем, что больше ни один дистрибутив Linux пока не принял Unity, предполагая, что та же судьба может ожидать и новую разработку.

5 апреля 2017 года Марк Шаттлворт объявил[16] о решении вернуть Ubuntu к поставке GNOME в качестве основной оболочки рабочего стола. Более того, заявлено о прекращении инвестирования в разработку оболочки Unity 8, редакций Ubuntu для смартфонов и планшетов, а также в развитие режима convergence, предоставляющего средства для перехода мобильных устройств в десктоп-режим. Выпуск Ubuntu 18.04 LTS будет иметь графическую оболочку, поэтому для возврата на GNOME, перед LTS-релизом, у разработчиков остаётся лишь один промежуточный выпуск (17.10).

В качестве приоритетных направлений заявлены облачные технологии и Интернет вещей (IoT). При этом Canonical не отказывается от работы по дальнейшему усовершенствованию редакции Ubuntu для рабочего стола, но уже на базе штатного окружения GNOME. Поддержка ранее выпущенных релизов на базе Unity будет продолжена, так же как будут выполнены все обязательства перед партнёрами, связанные с распространением решений для рабочего стола и мобильных устройств.

С переходом на GNOME Ubuntu также оставляет в прошлом дисплейный сервер Mir, так как GNOME рассчитан на работу поверх Wayland. Напомним, что изначально планировалось сделать Ubuntu 18.04 первым LTS-выпуском, предлагающим по умолчанию пользовательский сеанс на базе оболочки Unity 8 и дисплейного сервера Mir. На смену Ubuntu Phone (Touch) готовилась платформа Ubuntu Personal, которая использует для поставки приложений технологию Snap вместо применяемых в Ubuntu Phone пакетов в формате Click). Большие ставки делались на проект Convergence, развивающий адаптивное окружение для мобильных устройств, которое при подключении к монитору, предоставляет полноценный рабочий стол и превращает смартфон в портативную рабочую станцию.

По словам Шаттлворта, он рассчитывал на то, что, будучи перспективными и свободными, идеи по развитию комбинированного рабочего стола на базе Unity будут оценены как сообществом, так и представителями индустрии, не довольными имеющимися закрытыми альтернативами. Но он ошибся в обоих направлениях. Сообщество расценило проект как фрагментацию, а не инновацию. А представители индустрии не воспользовались возможностью и посчитали, что «известная беда лучше ожидаемой неизвестности», или инвестировали в создание своих аналогов технологии Convergence. Unity 8 получился отличным продуктом, но судьба разработки находится в руках рынка и сообщества, которые определяют, остаться ему на плаву или исчезнуть.

В релизе Ubuntu 11.10 появился специально упрощённый вариант оболочки — Unity 2D — для обеспечения нормальной работы пользователей с устаревшими видеокартами[17]. Наряду с этим, решено исключить из состава дистрибутива классическую оболочку GNOME, которая присутствует в Ubuntu 11.04. Также возможна установка пакета с Unity 2D в Ubuntu 11.04.

Unity 2D был написан как плагин для Compiz[18], и использовал инструмент на базе OpenGL, названный Nux[19].

Unity 2D написана на C++ с использованием библиотеки Qt[20][21]. Конкретно, Unity 2D лишь заменяет главную панель, панель запуска и главное меню, и использует те же бэкэнд-компоненты[22][23].

В Ubuntu 12.10, 2D-версия стала недоступна. В репозиторий был загружен пустой пакет с Unity 2D, инсталляция которого при обновлении удаляет уже установленную версию. Поэтому поставить Unity 2D из репозитория в Ubuntu 12.10 больше будет нельзя[24].

Удаление Unity 2D не означает, что разработчики Ubuntu отказываются от запуска дистрибутива на устаревших системах.

Вместо этого пользователям будет представлена Unity 3D, запущенная с помощью специального видеодрайвера llvmpipe[25].

Также не стоит беспокоиться и пользователям Ubuntu 12.04, работающих с данной десктоп-оболочкой, поддержка Unity 2D будет по-прежнему осуществляться в течение всего жизненного цикла дистрибутива до апреля 2017 года.

Основные элементы интерфейсаПравить

Панель запуска (Launcher)
Позволяет запускать закреплённые на ней приложения, и переключаться между уже запущенными.
Верхняя панель
Панель, содержащая глобальное меню, системные индикаторы и индикаторы приложений.
Главное меню (Dash)
Меню, в котором можно воспользоваться поиском как по локальным (установленные приложения, файлы и папки, музыка), так и по удалённым (доступные для установки приложения, видео на YouTube).
Глобальное меню (Global Menu)
Отображает заголовок и, при наведении, для приложений, развёрнутых на весь экран, также отображаются кнопки управления окном.
Линзы главного меню (Dash Lens) (старое название — Places)
Вкладка главного меню, с помощью которой можно искать в отдельной категории:

  • Поиск приложений;
  • Поиск файлов и папок;
  • Поиск видео;
  • Поиск музыкальных композиций;
  • Поиск фотографий;
  • Поиск в социальных сетях.
Производить поиск можно как и на вкладке линзы, так и с главного экрана главного меню через глобальный поиск. Каждая линза должна иметь одну или несколько сфер, которые, по сути, являются поисковыми движками, их графическое представление — группы. Пример линзы содержащей несколько сфер — Приложения (Установленные и доступные в Центре приложений Ubuntu) и Музыка (локальная и музыка в интернет магазинах).[26]
Индикаторы (Application Indicators)
Отображают меню сеанса, время и дату, область уведомлений в правом верхнем меню экрана. Меню сеанса также используется для изменения статуса в IM и запуска Центра управления.

Unity подверглась значительной критике[27] в начале своего существования, из-за того что включённая в поставку с Ubuntu 11.04 версия была очень сыра и изобиловала ошибками[28].

Комитет по техническому развитию Ubuntu (Ubuntu Tech Board) утвердил на состоявшемся в марте 2013 года совещании придание сборке Ubuntu с десктоп-окружением GNOME статуса официального ответвления от Ubuntu. Изначально сборка Ubuntu с десктоп-окружением GNOME 3 была представлена летом прошлого года и распространялась под именем Gnomebuntu, но имела статус неофициального ответвления, развиваемого энтузиастами вне инфраструктуры Ubuntu.

Передача персональной информацииПравить

В версии Unity, использовавшейся в дистрибутиве Ubuntu 12.10 (выпущен Canonical), были добавлены предложения от магазинов (т. н. «shopping lens»). По состоянию на октябрь 2012 года, все поисковые запросы от пользователя посылались по незащищённому соединению на сайт productsearch.ubuntu.com,[29] который затем пересылал запрос в интернет-магазин Amazon.com для поиска релевантных товаров (позже были добавлены ebay и другие сайты). Amazon предоставлял изображение продукта, которое отсылалось напрямую пользователю по соединению HTTP (протокол изменён в сентябре 2013 года). Если пользователь переходил на сайт продавца и делал покупку, компания Canonical получала небольшую комиссию от сделки.[30]

Подобный механизм был подвергнут критике: поисковое поле рассматривается в первую очередь как средство поиска данных на собственном компьютере. Пересылка на внешние сервера поисковых запросов имеет сомнительную ценность для пользователя и может создать проблемы с безопасностью персональных данных. [29] Подобная функциональность включена по умолчанию,[29][30][31][32] вместо того, чтобы использоваться только после получения информированного согласия (opt-in). Многие пользователи не знают о подобном поведении и не отключают его.

23 сентября 2012 Марк Шаттлворт заявил о ценности такого поиска, объяснив, что «Home Lens» в Dash в будущем позволят находить что угодно и где угодно, и подключение к поиску магазинов является естественным шагом в развитии функции. Также он сказал, что анонимность сохраняется за счёт пересылки запросов через сервера Canonical.[29][33]

29 октября 2012 года EFF выступила с критикой встроенного поиска по магазинам. Организация рекомендовала разработчикам Ubuntu запрашивать согласие пользователя перед включением функциональности и сделать настройки приватности более подробными.[29][34]

В декабре 2012, Ричард Столлман заявил что Ubuntu содержит шпионские функции (spyware) и не должна использоваться людьми, поддерживающими свободное программное обеспечение. [35][36][37]

Альтернативные версии Ubuntu, такие как Kubuntu, Xubuntu, Lubuntu и некоторые другие не содержат подобной поисковой функциональности.

С сентября 2013 года используется анонимизированный протокол для пересылки изображений из магазина на компьютер пол

Вопросы и ответы про новый дисплейный сервер Mir.

Новый дисплейный сервер Mir стремительно ворвался в Ubuntu мир. С самого начала, со времён анонса Mir, не всё было гладко, особенно когда обиделись поклонники Wayland некорректным сравнением Mir с Wayland. Но разработка Mir, как паровоз, мчится дальше.

В почтовой рассылке разработчиков Убунту, в личных блогах и на официальных сайтах Canonical есть крупицы информации про Mir, который в будущем заменит Xorg на посту.

  • Как новый дисплейный сервер Mir будет поддерживать старые видеокарты?
    Ответ от разрабов таков: «Mir использует свободные драйвера, которые используются в данный момент в X11. На платформе Android используются родные андроид драйвера. Так что, если на desktop ваша видеокарта сейчас поддерживается в Xorg через какой-либо драйвер intel, ati, nouveau, то и в Mir видеокарта будет работать. «
  • Был задан ещё вопрос о гибридных конфигурациях типа NVIDIA Optimus.
    Это легко реализовать в Mir, так как xserver уже будет за кадром. Хорошая поддержка гибридных конфигураций зависит от ядра линукс и улучшения ожидаются в ядре 3.12. Затем нужно обеспечить поддержку RandR в Mir и предоставить UI для переключения.
  • Что будет в Ubuntu 13.10 Saucy Salamander?
    Для тестирования перед будущим LTS выпуском, в Убунту 13.10 дефолтной оболочкой будет Unity 7, которая будет использовать Xorg через прослойку XMir. Предусмотрен режим fallback, когда можно использовать только Xorg и проприетарные драйвера NVIDIA и AMD.
    Разработчики обещают возможность попробовать Unity 8, работающая с Mir, в отдельной сессии.
  • Что будет в Ubuntu 14.04 LTS?
    В Ubuntu 14. 04 LTS режим fallback будет не доступен и будет использоваться XMir, который будет поддерживаться в рамках релиза 5 лет. Нужно понять, что никто эксклюзивно для Mir не требует новых драйверов для видеокарт, нужен просто новый EGL в замен GLX. Производители видеокарт обещают реализовать EGL, так как это нужно всем, а не только Canonical.
  • Что будет в Ubuntu 14.10?
    Ubuntu 14.10 полностью перейдёт на Unity 8 и Mir без Xorg и без прослойки Xmir.
  • Как посмотреть используется ли сейчас у меня Mir в качестве дисплейного сервера или нет?
    Следующие команды помогут в этом.
    ps aux | grep unity-system-compositor
    grep -i xmir /var/log/Xorg.0.log
    ls -l /var/log/lightdm/unity-system-compositor.log
  • Что там про Mir и KDE?
    Мартин Гресслинг (Martin Gräßlin), разработчик KDE и мантейнер KWin, поклонник Wayland и обиженный на Mir товарищ, который не видит будущего у KDE и Mir, по крайней мере пока.

    Проект Kubuntu не будет использовать Mir и останется на Xorg, несмотря на прозрачную работу Kubuntu через XMir. Джонатан Риддел (Jonathan Riddell), лидер сообщества Kubuntu, сказал, что, несмотря на Xmir, поддержка графического сервера Mir включена всё равно не будет, так как перед разработчиками Kubuntu и так стоят непростые задачи по работе с последней Mesa + KWin. Лишние проблемы и прослойки только всё усложнят.

    В будущем, возможно, Kubuntu сделает ставку на Wayland, чьи библиотеки уже есть в Ubuntu.

  • Что там про Mir и Lubuntu?
    Проект Lubuntu не будет использовать Mir и останется на Xorg, несмотря на прозрачную работу Lubuntu через XMir. Причина проста — Lubuntu ориентирована на работу на устаревшем оборудовании и пришлось бы отказаться от Openbox в пользу композитного менеджера и проиграть в быстродействии.

    Но на Mir крест никто не ставит и после релиза Ubuntu 14.04 LTS к данному вопросу обещают вернуться.

  • Какая лицензия у Mir?
    Сам сервер лицензирован под свободной GPLv3. Однако, чтобы помочь производителям GPU и SoC легче добавлять в проприетарные драйвера поддержку Mir, клиентские и серверные библиотеки для разработки (development libraries) лицензированы под менее ограничительной лицензией LGPLv3.

Показана работа оболочек Unity 7, GNOME 3, KDE, XFCE и LXDE без какой-либо переделки со стороны соответствующих разработчиков в связке XMir + Mir.

Выводы.

Для Ubuntu 13.10 Saucy Salamander выпала революционная роль — быть полигоном для Unity 8 и Mir. Unity 8, как ступенька к Unity Next, и Mir принесут единение в разношёрстный мир вычислительных устройств со своими различными архитектурами, форм-факторами и возможностями. Когда всё стихнет, это можно будет образно сравнить с выходом на орбиту в космосе, когда после окончания разгона вокруг становится тихо и безмятежно.

Но сейчас, всё не так. Сейчас старт, пламя вырывается из сопел, всё бурлит и меняется каждую секунду.

Вудро Вильсон как-то сказал: «Если хочешь нажить врагов, попробуй что-нибудь изменить«.

Canonical — инноватор и с этом трудно не согласиться. Медленное, классическое развитие любого линукс дистрибутива, когда берутся более новые версии всё тех же компонент и помещаются в новый релиз, было заменено на новое видение всей ситуации. Цель Убунту — объединить все устройства под единой системой, чтобы навыки работы в одной легко переносились на другую. Домашнего пользователя не должно волновать различие между ARM и x86. Ему не нужно знать как расшифровывается SoC и с чем его едят.

Такое радикальное изменение всей ситуации не могло не нажить противников. Но задайтесь вопросом, рано или поздно придётся всем меняться, так может лучше раньше?

Дополнительные материалы:
Mir и Android.
Mir и Android GPU.
Планы разработчиков о Mir и Unity 8.
Планы разработчиков на Ubuntu 13.10 Saucy Salamander.
Новый формат пакета, ориентированный на мобильные платформы.
Разработчик Стивен Уэбб рисует своё видение будущего Ubuntu Desktop.

Дата последней правки: 2013-08-05 15:47:11

Почему выбор дисплейного сервера не так важен?

Когда только Canonical начала разрабатывать свой дисплейный сервер Mir, на этом поле уже были работающий, но старый X и новенький, но вяло разрабатываемый Wayland. Третий лишний! — решила часть пользователей. Кто вам будет писать писать заново драйвера? — неверно рассуждала другая часть, ибо многим разработчикам нужно в драйверах лишь новый интерфейс EGL вместо старого GLX. Разработчик Роберт Анцел (Robert Ancell) повествует, о таком компоненте как дисплейный сервер.


Роберт сетует, что такой компонент как дисплейный сервер в дисплейном стеке занимает слишком много внимания пользователей, хотя он им наименее важен.

Современный дисплейный стек состоит из 5 главных компонент:

  • Железо (Hardware)
  • Драйвер (Driver)
  • Дисплейный сервер (Display Server / Shell)
  • Тулкит (Toolkit / Platform API)
  • Приложения (Applications)

Над аппаратным обеспечением (Hardware) у нас нет власти, кроме выбора что покупать.

Над драйверами (Driver) чуть больше контроля — от закрытых драйверов от производителя до открытых. И тут происходит вечное перетягивание каната между производителями, которые закрытыми драйверами прячут свои наработки в железе, и свободным сообществом, которое хочет возможности изменять и улучшать драйвера.

Мы слишком много времени жили с дисплейным сервером X в этом мире открытых исходников. Сейчас из нового поколения дисплейных серверов есть соперники друг другу: Mir и Wayland.

Приложения (Applications) используют тулкиты и API (Toolkit / Platform API) для получения доступа к графической функциональности. Есть множество замечательных тулкитов, таких как Qt и GTK, которых можно рассматривать как завершённый API к платформе, что замечательно для прикладных программистов.

Читая новости в Интернете, может сложиться неверное мнение, что самая важная часть в общей системе — это дисплейный сервер. На самом деле это всего лишь часть и причём не имеющая большого значения:

  • Приложения получают доступ к дисплейному серверу через тулкиты. Все современные тулкиты поддерживают множество backend, так как они работают на множестве операционных систем. К примеру, вы можете взять приложение, написанное на GTK, и запустить в MS Windows.
  • Железо и драйвера становятся для нас всё более и более обобщёнными. Видеокарты используются ради узко специализированной функциональности и OpenGL использует ограниченный набор функций. Современные видеокарты обладают большим количеством процессоров (их может задействовать OpenCL) и OpenGL занимается обработкой шейдеров и содержимого буфера.

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

Что же важно?

  • Важно обладать открытыми драйверами. Потому что нужно иметь возможность исправлять различные нестыковки в драйверах. К примеру, когда дисплейного сервера Б касается некий баг, а дисплейного сервера А — нет. Подобное наблюдалось при обеспечении работы Mir с драйверами Андроида. Поскольку их использовал до сего момента только один SurfaceFlinger, есть пару ошибок, если вы делаете те же вещи, но по-другому. Просто отправка отчёта о баге не может заменить возможность самому быстро исправить баг.
  • Shell теперь имеет бо́льшее значение. Сейчас идёт отступление от парадигмы WIMP (windows, icons, menus, pointer). На рынке множество устройств с различным форм-фактором и от shell зависит то, что может приложение выразить и разные shell делают это по разному.

Роберт надеется, что дал некоторое представление о современном дисплейном стеке, и показал, что их работа в Canonical над его средней частью полна инноваций, но не принесёт проблем в важные для пользователей компоненты.


Как многие справедливо пишут — Xorg стар и не соответствует современным реалиям. Сейчас многое делается на стороне тулкитов и современным линукс дистрибутивам давно нужен новый дисплейный сервер, который учитывает новомодные тенденции.

Дополнительные материалы:
Дисплейный сервер Mir будет по умолчанию в Ubuntu 16.04 LTS.
Дебют Mir 0.1. 4.
Вопросы и ответы про новый дисплейный сервер Mir.

Дата последней правки: 2014-05-02 12:00:34

Установка и тестирование Mir в Ubuntu 13.10.

Ситуация со следующим релизом Ubuntu 14.04 LTS вынуждает Canonical внедрять свой новый дисплейный сервер Mir уже в Ubuntu 13.10 Saucy Salamander. Если не внедрить Mir сейчас, то придётся ждать до релиза Ubuntu 14.10, чтобы не трогать стабильный и долгоподдерживаемый 14.04 LTS. Но тут рядом планы Ubuntu Touch, которая собирается выйти на рынок весной 2014 года и нужна единая кодовая база. Поэтому Canonical, увеличив штат сотрудников, интенсивно и агрессивно работает над Mir’ом, что даёт право директору по развитию Unity и Mir Оливеру Райсу (Oliver Ries) считать, что Mir удовлетворяет критериям качества, предъявляемым к компонентам, включаемые в релиз.

Но следует учитывать, что переход с Xorg на Mir будет плавным. В Ubuntu 13.10 будет по умолчанию использоваться Mir, но Unity 7 будет использовать Xorg. Взаимодействие X.Org-сервера и Mir будет построено на основе прослойки XMir, обеспечивающей трансляцию ввода и вывода между Mir и X-сервером. Так же будет предусмотрен режим fallback, если используются проприетарные драйвера NVIDIA и AMD. Дело в том, что мировое сообщество просит от данных вендоров внедрения EGL вместо GLX в их закрытых драйверах и как только это будет сделано, то Mir, Wayland и другие проекты смогут легко отойти от Xorg.

Только с Ubuntu 14.10 не будет ни прослойки XMir, ни Xorg. Mir и Unity 8 будут использовать EGL в драйверах (свободных и проприетарных) NVIDIA, AMD, Intel и другие.

Сейчас есть возможность попробовать работу нового дисплейного сервера Mir в Ubuntu 13.10 Saucy Salamander.

Актуальная Ubuntu 13.10.

Сначала не забудьте обновиться до актуального состояния.

sudo apt-get update && sudo apt-get dist-upgrade

Удаление проприетарных драйверов.

К сожалению, из-за причин, описанных выше, проприетарные драйвера нужно будет удалить и использовать свободные драйвера для вашей видеокарты.

Штатно с помощью Программы и обновления переключитесь на свободные драйвера и удалите проприетарные.

Удалите проприетарные драйвера AMD: sudo apt-get remove --purge fglrx* в Терминале.

Удалите проприетарные драйвера NVIDIA: sudo apt-get remove --purge nvidia* в Терминале.

Для тестов, если это возможно, лучшим вариантом будет использовать графику от Intel.

Обязательно перезагрузитесь.

Установка Mir.

Добавьте PPA
sudo add-apt-repository ppa:mir-team/system-compositor-testing

Нужно создать файл /etc/apt/preferences.d/50-pin-mir.pref с помощью sudo -e /etc/apt/preferences.d/50-pin-mir.pref и добавить содержимое:


Package: *
Pin: origin "private-ppa.launchpad.net"
Pin-Priority: 1001

Package: *
Pin: release o=LP-PPA-mir-team-system-compositor-testing
Pin-Priority: 1002

Обновите списки и установите Mir — sudo apt-get update && sudo apt-get dist-upgrade в Терминале.

Перезагрузитесь и вы сразу поймёте по двум курсорам мыши, что используется Mir: чёрный аппаратный курсор и белый программный. Это временный баг, который до сих пор не исправлен. Его скоро устранят или заменят на логотипчик Mir.

Чтобы точно определить используется ли Mir вместо Xorg, нужно запустить команду ps afx | grep unity-system-compositor в Терминале.

Удаление Mir.

Есть два способа избавиться от Mir в вашей системе:

  • Временный. В файле /etc/lightdm/lightdm.conf.d/10-unity-system-compositor.conf закомментируйте строку type=unity и перезапустите lightdm — sudo restart lightdm
  • Навсегда. Установите ppa-purge и с помощью него удалите репозиторий с Mir — sudo apt-get install ppa-purge && sudo ppa-purge ppa:mir-team/system-compositor-testing. Желательно, но не обязательно, после избавления от репозитория Mir обновиться, чтобы быть уверенным на 99,99% что вы нормально откатились назад — sudo apt-get update && sudo apt-get dist-upgrade.

Впечатление.

Должен сознаться, что я рискнул попробовать Mir со своей видеокартой nVidia GeForce GT 520 и свободными драйверами nouveau, но у меня не получилось. LightDM стартовал нормально и корректно без артефактов. Видел два курсора, намекающих на использование Mir, но Unity не запускалась корректно и не было полного захода в систему. У меня есть тестовый пользователь в системе, которому не сложно удалить все конфигурационные файлы в домашней папке, если есть сомнения, что какие-либо конфы могут помешать. Но чистый запуск Unity 7 + Mir из под тестового пользователя не был до конца удачным.

Но многие авторы технических изданий пишут об отличных впечатлениях при работе в среде под управлением Mir. Например, Джек Валлен (Jack Wallen) так описывает своё впечатление: «Я предположил, что в виду ранней стадии проекта Mir, его тестирование будет чередой аварий и ошибок. Верите или нет, но я был приятно удивлён зрелостью и стабильностью Mir.»

Джек Валлен считает, что несмотря на ту критику и сгустившиеся тучи, разработчиков Mir можно только похвалить. Они смогли за короткий срок сделать очень надёжный и годный к употреблению дисплейный сервер, используя тот факт, что в современном мире в старом Xorg многое уже делалось «этажом выше» в тулкитах. Поэтому «убийцу X» не нужно было писать ещё 30 лет.

Чтобы заинтересовать вас попробовать Mir в Ubuntu 13.10, рекомендую глянуть одно из последних видео. В целом работа системы проходит гладко и даже прозрачные окна и запущенные 4 видеофайла не вызывают проблем у Mir, даже если вывести их всех в режиме Spread.

Мировые новости:
Mir и Android.
Mir и Android GPU.
Планы разработчиков о Mir и Unity 8.
Планы разработчиков на Ubuntu 13.10 Saucy Salamander.
Разработчик Стивен Уэбб рисует своё видение будущего Ubuntu Desktop с Mir.
Вопросы и ответы про новый дисплейный сервер Mir.

Дата последней правки: 2013-08-08 23:17:14

Разработчики представили дисплейный сервер Mir 1. 0 для IoT

Оглавление (нажмите, чтобы открыть):

Разработчики представили дисплейный сервер Mir 1.0 для IoT

Форум системных администраторов

Форум сообщества системных администраторов и просто людей, которым не безразличен их компьютер.

  • Темы без ответов
  • Активные темы
  • Поиск
  • Текущее время: 10 ноя 2020, 22:01
  • Часовой пояс: UTC+06:00

Доступен дисплейный сервер Mir 1.0

Доступен дисплейный сервер Mir 1.0

Сообщение [Ботя] » 21 сен 2020, 21:30

———
Размещено: Сегодня, 20:11

Представлен релиз дисплейного сервера Mir 1.0, разработка которого продолжается компанией Canonical, несмотря на отказ от развития оболочки Unity и редакции Ubuntu для смартфонов. Mir остаётся востребован в проектах Canonical и теперь позиционируется как решение для встраиваемых устройств и интернета вещей (IoT). Пакеты для установки подготовлены для Ubuntu 16.04/18.04/18.10 (PPA) и Fedora 27/28/29.

Релиз дисплейного сервера Mir 1.5

Несмотря на отказ от оболочки Unity и переход на Gnome, компания Canonical продолжает разработку дисплейного сервера Mir, релиз которого под версией 1.5 состоялся недавно.

Среди изменений можно отметить расширение прослойки MirAL (Mir Abstraction Layer), используемую для ухода от прямого обращения к серверу Mir и абстрагирования доступа к ABI через библиотеку libmiral. В MirAL была добавлена поддержка свойства application_id, возможность обрезания окон по границам заданной области и обеспечена поддержка установки серверами на базе Mir переменных окружения для запуска клиентов.
Пакеты подготовлены для Ubuntu 16.04, 18.04, 18.10, 19.04 и Fedora 29 и 30. Код распространяется под лицензией GPLv2.

Canonical рассматривает Mir как решение для встраиваемых устройств и интернета вещей (IoT). Также Mir может использоваться как композитный сервер для Wayland.

кто-то это использует для встраиваемых устройств и интернета вещей?

Mir 1.0 появится в Ubuntu 17.10, получит поддержку клиентов Wayland

Из блога разработчика Mir и сотрудника Canonical Алана Гриффитса (Alan Griffiths) стало известно, что релиз графического сервера Mir 1.0 получит поддержку Wayland-клиентов и по-прежнему ожидается в составе Ubuntu 17.10 «Artful Aardvark».

Несмотря на резкое изменение планов Canonical по Ubuntu для десктопов и смартфонов, затронувшее и графический сервер компании — Mir, ­— в ближайшее время ожидается выпуск Mir 0.27. В самой Canonical главной целью для Mir остаётся Ubuntu Core — Linux-платформа для интернета вещей (и крупных облачных инсталляций с контейнерами). Вне Canonical этот графический сервер используют Open Source-проекты, продолжающие развитие Ubuntu для смартфонов: UBports и Yunit.

Ближайшую версию Mir — 0.27 — не будут выпускать для Ubuntu 17. 04, её тестируют только для Ubuntu 17.10, к моменту финального выпуска которой ожидается и релиз Mir 1.0. В Mir 0.27 появятся новые API, необходимые для разработки так называемой «платформы Mir» (mir-platform) вне репозитория самого Mir, — это позволит проектам вроде UBports формировать такие платформы, как mir-on-android, без необходимости создавать форк Mir. Также Алан сообщает, что в релизе Mir 1.0 больше нет планов убирать устаревшие функции libmirclient ABI, но ведётся «работа над тем, чтобы клиенты Wayland поддерживались напрямую».

IoT Graphics: Mir Release 1.0

by Alan Griffiths on 21 September 2020

The Mir team is pleased to announce the milestone release of Mir 1.0.0. This is the first major release targeted at IoT device makers and enthusiasts looking to build the next-generation of graphical solutions.

Mir is a display server and is used by other projects to draw graphics on the screen. The Mir team have created mir-kiosk, a fully functional kiosk implementation that satisfies many IoT-related use cases: Running a kiosk on Ubuntu Core showcases a set of Qt applications as examples apps you could run on a kiosk.

The fast, open and secure display server

Whether for building a device or for writing a shell for the desktop, Mir can give you a graphics stack that is fast, light, and secure. The Mir graphical stack works across different graphics platforms and driver models and is easy to integrate into your kiosk, digital signage, or purpose built graphical solution. It was first conceived over 6 years ago as part of an initiative by Canonical to unify the graphical environment across all devices, including desktop, TV, and mobile devices and continues to be developed with new features and modern standards.

Applying Mir to the Internet of Things

Many types of device need to provide some sort of graphical output or display to the user. Some examples include digital signage, interactive kiosks, automotive in-car entertainment gateways, smart meters, and the screens seen on everything from washing machines to smart thermostats. All of these need to output graphics to a display but that it is not always easy in an embedded environment.

Linux is one of the most popular OS choices for manufacturers and solution providers to use in IoT devices and with it there are a few options available for graphical environments. From custom software to drive the display, through direct frame buffer access with toolkits such as Qt, to a full X windowing server.

Mir allows device makers to use a well-defined, efficient, flexible, and secure platform for their graphical environment.

Why Wayland?

Wayland is intended as a simpler replacement for X, easier to develop and maintain…
…Wayland is a protocol for a compositor to talk to its clients as well as a C library implementation of that protocol.
https://wayland.freedesktop.org/

Historically, graphical user interfaces on the Linux platform have been powered by the X windowing system. X has a long and successful history and it has served the purposes of both system level and application level UI well for more than three decades. However, users nowadays expect a more consistent, integrated and secure user experience than is possible to offer on top of the X windowing system.

The X11 protocol (used by X) was not designed with security in mind and a malicious application can obtain information from other running X11 applications. For instance X11 servers do not protect sensitive information like keystrokes between applications using them.

Mir has been designed from the ground-up with security in mind. To meet the needs of today’s users, Mir avoids the X11 protocol and uses Wayland. Each application talks exclusively to the Mir server through its own connection that is both secure and robust against attack. Wayland is the de facto successor to X11 and is designed to address the problems that have proved intractable with the X windowing system.

Applications that can use Wayland directly and will work with Mir include those built with GTK3/4, Qt5 and SDL2.

Using Mir

For more about developing graphical snaps for IoT applications, including tutorials for creating your own snaps, see: mir-kiosk: a project that uses Mir

Developers using Mir will find it packaged and available on Ubuntu, Fedora, Arch and (soon) Debian. The latest Mir release is available for all supported Ubuntu series from the Mir team’s “release PPA”:

sudo apt-add-repository —update ppa:mir-team/release

Выпуск дисплейного сервера Mir 0.28 c начальной поддержкой Wayland

Представлен релиз дисплейного сервера Mir 0.28, разработка которого продолжается компанией Canonical, несмотря на отказ от развития оболочки Unity и редакции Ubuntu для смартфонов. Mir остаётся востребован в проектах Canonical для встраиваемых устройств и интернета вещей ( IoT ). Пакет с Mir 0.28 одобрен для включения в репозиторий Ubuntu 17.10, который находится на стадии заморозки перед релизом.

  • Перелицензирование кодовой базы. Лицензия на код Mir изменена с GPLv3 на связку «GPLv2 или GPLv3» для сервера и с LGPLv3 на «LGPLv2 или LGPLv3» для клиентских компонентов;
  • Обеспечена начальная поддержка работы клиентов Wayland, что позволяет организовать запуск Wayland-приложений в окружении Mir, используя Mir в качестве композитного сервера для Wayland;
  • Стабилизирован серверный ABI. В состав включена прослойка MirAL (Mir Abstraction Layer), которую можно использовать для ухода от прямого обращения к серверу Mir и абстрагирования доступа к ABI. В основной пакет добавлены библиотеки libmirclientcpp и libmiral, которые упростят поставку snap-пакетов с Mir, дав возможность поставлять в них свежие выпуски библиотеки без нарушения совместимости с серверными компонентами и в будущем предоставят возможность использования Mir API поверх Wayland;
  • В состав включена оболочка miral-kiosk, применяемая в snap-пакете mir-kiosk-snap для организации графического окружения UbuntuCore;
  • В качестве эталонного примера разработки Mir-сервера теперь предлагается оболочка miral-shell. Старые примеры удалены, а демонстрационный сервер mir_demo_server переработан для использования API MirAL;
  • Добавлен экспериментальный API для разработки плагинов c поддержкой различных графических платформ (graphics platform API). Так как компания Canonical отстранилась от развитии плагина для платформы Android , его разработку подхватил проект UBports2, который также намерен разработать плагин для поддержки платформы Wayland.
  • Релиз дисплейного сервера Mir 1.2

    Компания Canonical выпустила новую версию дисплейного сервера Mir 1.2.

    • Новый пакет libmirwayland-dev, являющийся первой итерацией API для включения оболочек на базе Mir (для поддержки собственных расширений Wayland).
    • Несколько связанных дополнений для API MirAL.
    • В WaylandExtensions была добавлена поддержка регистрации собственных расширений Wayland.
    • Новый класс MinimalWindowManager, предоставляющий применяемые по умолчанию настройки управления окнами.
    • Продолжена работа над экспериментальной поддержкой X11. Теперь при необходимост

    Mir — Дисплейный сервер Ubuntu

    В начале Canonical планировали перейти на Wayland, потом были долгие раздумья что вообще делать с дисплейным сервером. Но сейчас всё стало ясно — у Ubuntu будет свой дисплейный сервер.

    Mir — это своя альтернатива X и Wayland от Canonical. Данный дисплейный сервер будет тесно интегрирован с обновлённой оболочкой Unity, а сам он будет полностью кроссплатформенный, так как будет использоваться на всех устройствах, на которые ориентируются разработчики Ubuntu (компьютеры, планшеты, телефоны и телевизоры).

    Причина разработки собственного дисплейного сервера проста — существующие решения не позволяют полностью реализовать задуманные идеи без громоздких доработок, которые отрицательно скажутся на впечатлении и качестве продукта в целом. Дисплейный сервер X не подходит из за того, что он значительно устарел, а Wayland, как считают разработчики Ubuntu, придётся дорабатывать (в Canonical решили, что проще написать свой сервер с нуля).

    Планы у Canonical довольно грандиозные, вот только придётся проделать колоссальную работу (хоть разработка Mir и идёт в еще с июня прошлого года). Сложность заключается не только в разработке дисплейного сервера, нужно ведь ещё и убедить производителей графических чипов заняться поддержкой новой системы в их драйверах.

    Планируется, что уже в мае 2013-го года Mir будет представлен на обозрение. К октябрю же планируется включить его в состав сборок для телефонов и планшетов как замену SurfaceFlinger, который используется в текущих сборках Ubuntu Touch. Окончательное завершение работы планируется в апреле 2014-го, к выходу Ubuntu 14.04 LTS.

    Больше подробностей вы найдёте на официальной Wiki-странице: wiki.ubuntu.com.

    Ну и напоследок — демонстрация работы Mir. В первом видео демонстрируется работа Mir вместе с Ubuntu Touch на Nexus 7:

    youtube.com/v/OZVvQmK6V8Y?version=3&fs=1&autohide=1&theme=light&showinfo=0″ type=»application/x-shockwave-flash» allowfullscreen=»true» allowscriptaccess=»always»>

    На втором видео показана работа Unity на базе X-сервера, интегрированного в Mir:

    Друзья, а вы что думаете по поводу такого решения Canonical. Осилят ли?

    Хотите приобрести МФУ KYOCERA? Тогда вам на сайт куосера.рф!

    Mir: API графических инструментов MIR

    Сенсорная панель должна быть создана.Подробнее …

    MirTouchscreenMappingMode

    def

    9000

    9000

    тип vodetext

    vodetext

    0yumpatform000

    typedef enum MirWindowAttrib MirWindowAttrib
    Атрибуты окна, которые клиент и сервер / оболочка могут захотеть получить или установить по сети. Подробнее …
    ЬурейеЕ перечисление MirWindowType MirWindowType
    ЬурейеЕ перечисление MirWindowState MirWindowState
    ЬурейеЕ перечисление MirWindowFocusState MirWindowFocusState
    ЬурейеЕ перечисление MirWindowVisibility MirWindowVisibility
    ЬурейеЕ перечисление MirLifecycleState MirLifecycleState
    ЬурейеЕ перечисление MirPowerMode MirPowerMode
    ЬурейеЕ перечисление MirOutputType MirOutputType
    typedef enum MirPromptSessionState MirPromptSessionState
    typedef enum MirPixelFormat MirPixelFormat
    32-битные форматы пикселей (8888): порядок компонентов в перечислении соответствует порядку компонентов, поскольку они были бы записаны в виде целого числа, представляющего значение пикселя этого формата . Подробнее …
    typedef enum MirOrientation MirOrientation
    Направление относительно «естественной» ориентации дисплея. Подробнее …
    typedef enum MirMirrorMode MirMirrorMode
    Зеркальное отображение оси относительно «естественной» ориентации дисплея. Подробнее …
    ЬурейеЕ перечисление MirOrientationMode MirOrientationMode
    ЬурейеЕ перечисление MirEdgeAttachment MirEdgeAttachment
    ЬурейеЕ перечисление MirPlacementGravity MirPlacementGravity
    Контрольная точка для выравнивания поверхности относительно прямоугольника. Подробнее …
    typedef enum MirPlacementHints MirPlacementHints
    Подсказки позиционирования для выравнивания окна относительно прямоугольника. Подробнее …
    typedef enum MirResizeEdge MirResizeEdge
    Подсказки по изменению размера окна. Подробнее …
    typedef enum MirFormFactor MirFormFactor
    Форм-фактор, связанный с физическим выходом.Подробнее …
    typedef enum MirSubpixelArrangement MirSubpixelArrangement
    Физическое расположение субпикселей на физическом выходе. Подробнее …
    typedef enum MirShellChrome MirShellChrome
    Корпус хром. Подробнее …
    typedef enum MirPointerConfinementState MirPointerConfinementState
    Ограничение указателя.Подробнее …
    typedef enum MirOutputGammaSupported MirOutputGammaSupported
    Поддерживает гамма-коррекцию. Подробнее …
    ЬурейеЕ int64_t MirInputDeviceId
    ЬурейеЕ перечисление MirPointerHandedness MirPointerHandedness
    ЬурейеЕ перечисление MirPointerAcceleration MirPointerAcceleration
    MirPointerAcceleration описывает способ фильтрации движения указателя: Подробнее. ..
    typedef enum MirTouchpadClickMode MirTouchpadClickMode
    MirTouchpadClickMode настраивает, как сама сенсорная панель должна генерировать события кнопки указателя. Подробнее …
    typedef unsigned int MirTouchpadClickModes
    typedef enum MirTouchpadScrollModeMasterScrollModeMasterScrollMode

    ЬурейиХ неподписанный Int MirTouchpadScrollModes
    ЬурейиХ неподписанный Int MirInputDeviceCapabilities
    ЬурейеГо перечисление MirTouchscreenMappingMode
    Режимы отображения для устройств с сенсорным экраном. Подробнее …
    typedef void * MirEGLNativeWindowType
    typedef void * MirEGLNativeDisplay
    ЬурейаЯ структура MirSurface MirWindow
    ЬурейеЙ структуру MirSurfaceSpec MirWindowSpec
    ЬурейеЙ структуру MirScreencast MirScreencast
    ЬурейеЙ структуру MirScreencastSpec MirScreencastSpec
    typedef struct MirPromptSession MirPromptSession
    typedef struct MirBufferSt рассверлить MirBufferStream
    ЬурейуЮ структуру MirPersistentId MirWindowId
    ЬурейеЙ структуру MirBlob MirBlob
    ЬурейеЙ структуру MirDisplayConfig MirDisplayConfig
    ЬурейаЯ структура MirError MirError
    ЬурейеЙ структуру MirPresentationChain MirPresentationChain
    ЬурейеЙ структуру MirBuffer MirBuffer
    ЬурейеЙ структура MirRenderSurface MirRenderSurface
    typedef struct MirOutput MirOutput
    Дескриптор для выходного соединения тион. Подробнее …
    typedef struct MirWaitHandle MirWaitHandle
    Возвращается асинхронными функциями. Подробнее …
    typedef struct MirPlatformMessage MirPlatformMessage
    typedef void (* MirConnectedCallback MirConnectedCallback клиент) Обратный вызов, передаваемый при отправке запроса mir_connect.Подробнее …
    typedef MirConnectedCallback mir_connected_callback MIR_FOR_REMOVAL_IN_VERSION_1 («Использовать вместо MirConnectedCallback окно MirConnectedCallback»)
    )
    Обратный вызов, который будет передан при вызове оконных функций: Подробнее . ..
    typedef void (* MirBufferStreamCallback) (MirBufferStream * stream, void * client_context)

    Обратный вызов, который необходимо передать при звонке: Подробнее…
    typedef void (* MirWindowEventCallback) (MirWindow * window, MirEvent const * event, void * context)
    Обратный вызов для обработки оконных событий. Подробнее …
    typedef void (* MirLifecycleEventCallback) (соединение MirConnection *, состояние MirLifecycleState, void * context)
    Обратный вызов вызывается при запросе события жизненного цикла / обратного вызова работающий сервер.Подробнее …
    typedef void (* MirPingEventCallback) (соединение MirConnection *, серийный номер int32_t, void * context)
    Обратный вызов вызывается, когда сервер проверяет отклик на запрос. Подробнее …
    typedef void (* MirDisplayConfigCallback) (соединение MirConnection *, void * context)
    Обратный вызов вызывается при изменении конфигурации дисплея.Подробнее …
    typedef void (* MirClientFdCallback) (MirPromptSession * prompt_session, size_t count, int const * fds, void * context)
    Callback дескрипторы файлов клиента завершаются. Подробнее …
    typedef void (* MirWindowIdCallback) (MirWindow * window, MirPersistentId * id, void * context)
    тип

    Собственный тип буфера для системы, к которой подключен клиент.Подробнее …
    typedef struct MirPlatformPackage MirPlatformPackage
    typedef struct MirModule ModuleProperties MirModule load

    0 Подробнее …. Подробнее …0005

    MirInputConfig

    0005 90 014

    9000 memberSession подсказка для сеансов обработки

    4 Callback Подробнее …

    MirErrorDomain

    000 MirError источник ошибки.Подробнее … 910_call_sign (typedef) ) (MirSurface * surface, void * client_context) MIR_FOR_REMOVAL_IN_VERSION_1 («Вместо этого используйте MirWindowCallback»)00030003

    9 0003

    4, описывающее состояние сенсорного экрана

    45

    4Подробнее …

    Режим отображения MirOutputModeПодробнее …

    )

    поверхность

    клиент и сервер / оболочка могут захотеть получить или установить по сети.Подробнее …
    Информация о загрузке

    ЬурейеЕ перечисление MirBufferLayout MirBufferLayout
    ЬурейеЕ перечисление MirPresentMode MirPresentMode
    ЬурейеЕ STRUCT MirGraphicsRegion MirGraphicsRegion
    Полученная информация о MirWindow.Подробнее …
    typedef struct MirDisplayInfo MirDisplayInfo
    typedef struct MirDisplayCard MirDisplayCard MirDisplayCard 9000 предоставляет подробные сведения о среде MirDisplayCard

    ЬурейеЕ перечисление MirDisplayOutputType MirDisplayOutputType
    ЬурейеЕ перечисление MirOutputConnectionState MirOutputConnectionState
    ЬурейеЕ STRUCT MirDisplayMode MirDisplayMode
    ЬурейаЯ структура MirDisplayOutput MirDisplayOutput
    ЬурейеЙ структуру MirDisplayConfiguration MirDisplayConfiguration
    ЬурейаЯ структуру MirBufferStreamInfo MirBufferStreamInfo
    смещения от верха -левый угол поверхности.Подробнее …
    typedef struct MirRectangle MirRectangle
    typedef struct MirInputConfig MirInputConfig

    ЬурейаЯ структура MirKeyboardConfig MirKeyboardConfig
    ЬурейеЙ структуру MirPointerConfig MirPointerConfig
    ЬурейеЙ структуру MirTouchpadConfig MirTouchpadConfig
    ЬурейеЙ структура MirTouchscreenConfig MirTouchscreenConfig
    typedef struct MirScreencastParameters MirScreencastParameters
    MirScreencastParameters — это структура необходимой информации, которую вы должны предоставить Mir, чтобы создать MirScreencast.Подробнее …
    typedef void (* MirScreencastCallback) (MirScreencast * screencast, void * client_context)
    Обратный вызов должен передаваться при вызове функций MirScreencast. Подробнее …
    typedef void (* MirPromptSessionCallback) (MirPromptSession * prompt_provider, void * context)
    Участник обратного вызова MirPromptSession для обработки сессий prompt.Подробнее …
    typedef void (* MirPromptSessionStateChangeCallback) (MirPromptSession * prompt_provider, состояние MirPromptSessionState, void * context)
    typedef void (* MirPlatformOperationCallback) (соединение MirConnection *, MirPlatformMessage * ответ, void * context)
    Обратный вызов вызывается, когда операция платформы завершается.Подробнее …
    typedef void (* MirInputConfigCallback) (MirConnection * соединение, void * context)
    Обратный вызов вызывается при смене устройств ввода. Подробнее …
    typedef void (* MirBufferCallback) (MirBuffer *, void * context)
    typedef

    typedef enum
    typedef enum MirDisplayConfigurationError MirDisplayConfigurationError
    Ошибки из mir_error_domain_display_configuration. MirErrorDomain. Подробнее …
    typedef enum MirInputConfigurationError MirInputConfigurationError
    Ошибки из mir_error_domain_input_configuration MirErrorDomain.Подробнее …
    typedef void (* MirErrorCallback) (MirConnection * соединение, MirError const * error, void * context)
    typedef void (*_mir_surface_event_CventOR_CONTEX_VOID_VOID *) «Вместо этого используйте MirWindowEventCallback»)
    typedef void (* mir_surface_id_callback) (MirSurface * surface, MirPersistentId * id, void * context) Вместо этого используйте Mir_FOR_REMOVAL_IND

    typedef struct MirSurfaceEvent MirWindowEvent
    ЬурейаЯ структура MirResizeEvent MirResizeEvent
    ЬурейеЙ структуру MirPromptSessionEvent MirPromptSessionEvent
    ЬурейеЙ структуру MirOrientationEvent MirOrientationEvent
    ЬурейиХ структуры MirCloseSurfaceEvent MirCloseWindowEvent
    ЬурейеЕ STRUCT MirInputEvent MirInputEvent
    ЬурейеЕ STRUCT MirKeymapEvent MirKeymapEvent
    ЬурейеЕ STRUCT MirSurfaceOutputEvent MirWindowOutputEvent
    typedef struct MirInputDeviceStateEvent MirInputDeviceStateEvent
    ЬурейеЕ STRUCT MirSurfacePlacementEvent MirWindowPlacementEvent
    ЬурейеЕ STRUCT MirCookie MirCookie
    ЬурейеЕ STRUCT MirEvent MirEvent
    ЬурейеЕ неподписанных Int MirInputEventModifiers
    typedef struct MirKeyboardEvent MirKeyboardEvent
    Тип события, описывающий изменение состояния клавиатуры.Подробнее …
    typedef struct MirPointerEvent MirPointerEvent
    Тип события, описывающий изменение состояния устройства-указателя. Подробнее …
    typedef unsigned int MirPointerButtons
    typedef struct MirTouchEvent Состояние устройства MirTouchEvent
    typedef int32_t MirTouchId
    Идентификатор точки касания. Подробнее …
    typedef struct MirSurfacePlacementEvent MirSurfacePlacementEvent
    typedef struct MirOutputMode14

    typedef enum MirScreencastResult MirScreencastResult
    typedef void (* MirScreencast

    void (* MirScreencast

    typedef void (* MirRenderSurfaceCallback) (MirRenderSurface *, void * context) MIR_DEPRECATE_RENDERSURFACES_FOR_RENAME
    enum MirWindowAttrib {
    mir_window_attrib_type,
    mir_window_attrib_state,
    mir_window_attrib_swapinterval,
    mir_window_attrib_focus,

    mir_window_attrib_dpi,
    mir_window_attrib_visibility,
    mir_window_attrib_preferred_orientation,
    mir_window_attribs

    }
    Атрибуты окна, которые клиент и сервер / оболочка могут захотеть получить или установить по сети. Больше…
    enum MirSurfaceType
    enum MirWindowType {
    mir_window_type_normal,
    mir_window_type_utility,
    mir_window_type_dialog,
    mir_window_type_gloss,

    mir_window_type_freestyle,
    mir_window_type_menu,
    mir_window_type_inputmethod,
    mir_window_type_s satellite,

    mir_window_type_tip,
    mir_window_type_decoration,
    mir_window_types

    }
    enum MirSurfaceState
    enum MirWindowState {
    mir_window_state_unknown,
    mir_window_state_restored,
    mir_window_state_minimized,
    mir_window_state_maximized,

    mir_window_state_vertmaximized,
    mir_window_state_fullscreen,
    mir_window_state_horizmaximized,
    mir_window_state_hidden,

    mir_window_states

    }
    enum MirSurfaceFocusState
    enum MirWindowFocusState {mir_window_focussed_state = 0,
    mir_window_focus_state_focused
    }
    enum MirSurfaceVisibility
    enum MirWindowVisibility {mir_window_visibility_occluded = 0,
    mir_window_visibility_exposed
    }
    перечисление MirLifecycleState {mir_lifecycle_state_will_suspend,
    mir_lifecycle_state_resumed,
    mir_lifecycle_connection_lost
    }
    перечисление MirPowerMode {mir_power_mode_on,
    mir_power_mode_standby,
    mir_power_mode_suspend,
    mir_power_mode_off
    }
    enum MirOutputType {
    mir_output_type_unknown = 0,
    mir_output_type_vga = 1,
    mir_output_type_dvii = 2,
    mir_output_type_dvid = 3,

    mir_output_type_dvia = 4,
    mir_output_type_composite = 5,
    mir_output_type_svideo = 6,
    mir_output_type_lvds = 7,

    mir_output_type_component = 8,
    mir_output_type_ninepindin = 9,
    mir_output_type_displayport = 10,
    mir_output_type_hdmia = 11,

    mir_output_type_hdmib = 12,
    mir_output_type_tv = 13,
    mir_output_type_edp = 14,
    mir_output_type_virtual = 15,

    mir_output_type_dsi = 16,
    mir_output_type_dpi = 17

    }
    enum MirPromptSessionState {mir_prompt_session_state_stopped = 0,
    mir_prompt_session_state_started,
    mir_prompt_session_state_suspended
    }
    перечисление MirPixelFormat {
    mir_pixel_format_invalid = 0,
    mir_pixel_format_abgr_8888 = 1,
    mir_pixel_format_xbgr_8888 = 2,
    mir_pixel_format_argb_8888 = 3,

    mir_pixel_format_xrgb_8888 = 4,
    mir_pixel_format_bgr_888 = 5,
    mir_pixel_format_rgb_888 = 6,
    mir_pixel_format_rgb_565 = 7,

    mir_pixel_format_rgba_5551 = 8,
    mir_pixel_format_rgba_4444 = 9,
    mir_pixel_formats

    }
    32-битные форматы пикселей (8888): порядок компонентов в перечислении соответствует порядку компонентов, поскольку они были бы записаны в виде целого числа, представляющего значение пикселя этого формата.Подробнее …
    enum MirOrientation {mir_orientation_normal = 0,
    mir_orientation_left = 90,
    mir_orientation_inverted = 180,
    mir_orientation_right = 270
    }
    Направление относительно «естественной» ориентации дисплея. Подробнее …
    enum MirMirrorMode {mir_mirror_mode_none,
    mir_mirror_mode_vertical,
    mir_mirror_mode_horizontal
    }
    Зеркальное отражение оси относительно «естественной» ориентации дисплея.Подробнее …
    enum MirOrientationMode {
    mir_orientation_mode_portrait = 1 << 0, mir_orientation_mode_landscape = 1 << 1, mir_orientation_mode_portrait_inverted = 1 << 2, mir_orientation_mode_landscape_inverted = 1 << 3,
    mir_orientation_mode_portrait_any,
    mir_orientation_mode_landscape_any,
    mir_orientation_mode_any

    }
    enum MirEdgeAttachment {mir_edge_attachment_vertical = 1 << 0, mir_edge_attachment_horizontal = 1 << 1, mir_edge_attachment_any }
    enum MirPlacementGravity {
    mir_placement_gravity_center = 0,
    mir_placement_gravity_west = 1 << 0, mir_placement_gravity_east = 1 << 1, mir_placement_gravity_north = 1 << 2,
    mir_placement_gravity_south = 1 << 3, mir_placement_gravity_northwest = mir_placement_gravity_north | mir_placement_gravity_west, mir_placement_gravity_northeast = mir_placement_gravity_north | mir_placement_gravity_east, mir_placement_gravity_southwest = mir_placement_gravity_south | mir_placement_gravity_west,
    mir_placement_gravity_southeast = mir_placement_gravity_south | mir_placement_gravity_east

    }
    Контрольная точка для выравнивания поверхности относительно прямоугольника.Подробнее …
    enum MirPlacementHints {
    mir_placement_hints_flip_x = 1 << 0, mir_placement_hints_flip_y = 1 << 1, mir_placement_hints_slide_x = 1 << 2, mir_placement_hints_slide_y = 1 << 3,
    mir_placement_hints_resize_x = 1 << 4, mir_placement_hints_resize_y = 1 << 5, mir_placement_hints_antipodes = 1 << 6, mir_placement_hints_flip_any = mir_placement_hints_flip_x | mir_placement_hints_flip_y,
    mir_placement_hints_slide_any = mir_placement_hints_slide_x | mir_placement_hints_slide_y,
    mir_placement_hints_resize_any = mir_placement_hints_resize_x | mir_placement_hints_resize_y

    }
    Подсказки позиционирования для выравнивания окна относительно прямоугольника.Подробнее …
    enum MirResizeEdge {
    mir_resize_edge_none = 0,
    mir_resize_edge_west = 1 << 0, mir_resize_edge_east = 1 << 1, mir_resize_edge_north = 1 << 2,
    mir_resize_edge_south = 1 << 3, mir_resize_edge_northwest = mir_resize_edge_north | mir_resize_edge_west, mir_resize_edge_northeast = mir_resize_edge_north | mir_resize_edge_east, mir_resize_edge_southwest = mir_resize_edge_south | mir_resize_edge_west,
    mir_resize_edge_southeast = mir_resize_edge_south | mir_resize_edge_east

    }
    Подсказки по изменению размера окна.Подробнее …
    enum MirFormFactor {
    mir_form_factor_unknown,
    mir_form_factor_phone,
    mir_form_factor_tablet,
    mir_form_factor_monitor,

    mir_form_factor_tv, г.
    mir_form_factor_projector

    }
    Форм-фактор, связанный с физическим выходом. Подробнее …
    enum MirSubpixelArrangement {
    mir_subpixel_arrangement_unknown,
    mir_subpixel_arrangement_horizontal_rgb,
    mir_subpixel_arrangement_horizontal_bgr,
    mir_subpixel_arrangement_vertical_rgb,

    mir_subpixel_arrangement_vertical_bgr,
    mir_subpixel_arrangement_none

    }
    Физическое расположение субпикселей на физическом выходе.Подробнее …
    enum MirShellChrome {mir_shell_chrome_normal,
    mir_shell_chrome_low
    }
    Корпус хром. Подробнее …
    enum MirPointerConfinementState {mir_pointer_unconfined,
    MIR_DEPRECATED_ENUM = (mir_pointer_confined_to_surface, «mir_pointer_confined_to_window»),
    mir_pointer_confined_to_window = mir_pointer_confined_to_surface
    }
    Ограничение указателя.Подробнее …
    enum MirOutputGammaSupported {mir_output_gamma_unsupported,
    mir_output_gamma_supported
    }
    Поддерживает гамма-коррекцию. Подробнее …
    enum MirPointerHandedness {mir_pointer_handedness_right = 0,
    mir_pointer_handedness_left = 1
    }
    enum MirPointerAcceleration {mir_pointer_acceleration_none = 1,
    mir_pointer_acceleration_adaptive = 2
    }
    MirPointerAcceleration описывает способ фильтрации движения указателя: Подробнее…
    enum MirTouchpadClickMode {mir_touchpad_click_mode_none = 0,
    mir_touchpad_click_mode_area_to_click = 1 << 0, mir_touchpad_click_mode_finger_count = 1 << 1 }
    MirTouchpadClickMode настраивает, как сама сенсорная панель должна генерировать события кнопки указателя. Подробнее …
    enum MirTouchpadScrollMode {mir_touchpad_scroll_mode_none = 0,
    mir_touchpad_scroll_mode_two_finger_scroll = 1 << 0, mir_touchpad_scroll_mode_edge_scroll = 1 << 1, mir_touchpad_scroll_mode_button_down_scroll = 1 << 2 }
    MirTouchpadScrollMode настраивает, как сенсорная панель должна генерировать события прокрутки.Подробнее …
    enum MirInputDeviceCapability {
    mir_input_device_capability_none = 0,
    mir_input_device_capability_pointer = 1 << 1, mir_input_device_capability_keyboard = 1 << 2, mir_input_device_capability_touchpad = 1 << 3,
    mir_input_device_capability_touchscreen = 1 << 4, mir_input_device_capability_gamepad = 1 << 5, mir_input_device_capability_joystick = 1 << 6, mir_input_device_capability_switch = 1 << 7,
    mir_input_device_capability_multitouch = 1 << 8, mir_input_device_capability_alpha_numeric = 1 << 9
    }
    enum MirTouchscreenMappingMode {mir_touchscreen_mapping_mode_to_output,
    mir_touchscreen_mapping_mode_to_display_wall
    }
    Режимы отображения для устройств с сенсорным экраном.Подробнее …
    enum MirBufferUsage
    MirBufferUsage определяет, как поверхность может и будет использоваться. Подробнее …
    enum {mir_platform_package_max = 32
    }
    перечисление MirPlatformType {mir_platform_type_gbm,
    mir_platform_type_android,
    mir_platform_type_eglstream
    }
    Собственный тип буфера для системы, к которой подключен клиент.Подробнее …
    enum MirBufferLayout {mir_buffer_layout_unknown = 0,
    mir_buffer_layout_linear = 1
    }
    enum MirPresentMode {
    mir_present_mode_immediate,
    mir_present_mode_mailbox,
    mir_present_mode_fifo,
    mir_present_mode_fifo_relaxed,

    mir_present_mode_num_modes

    }
    enum {mir_supported_pixel_format_max = 32
    }
    УСТАРЕЛО.Подробнее …
    enum MirDisplayOutputType {
    mir_display_output_type_unknown = mir_output_type_unknown,
    mir_display_output_type_vga = mir_output_type_vga,
    mir_display_output_type_dvii = mir_output_type_dvii,
    mir_display_output_type_dvid = mir_output_type_dvid,

    mir_display_output_type_dvia = mir_output_type_dvia,
    mir_display_output_type_composite = mir_output_type_composite,
    mir_display_output_type_svideo = mir_output_type_svideo,
    mir_display_output_type_lvds = mir_output_type_lvds,

    mir_display_output_type_component = mir_output_type_component,
    mir_display_output_type_ninepindin = mir_output_type_ninepindin,
    mir_display_output_type_displayport = mir_output_type_displayport,
    mir_display_output_type_hdmia = mir_output_type_hdmia,

    mir_display_output_type_hdmib = mir_output_type_hdmib,
    mir_display_output_type_tv = mir_output_type_tv,
    mir_display_output_type_edp = mir_output_type_edp,
    mir_display_output_type_virtual = mir_output_type_virtual,

    mir_display_output_type_dsi = mir_output_type_dsi,
    mir_display_output_type_dpi = mir_output_type_dpi

    }
    enum MirOutputConnectionState {mir_output_connection_state_disconnected = 0,
    mir_output_connection_state_connected,
    mir_output_connection_state_unknown
    }
    перечисление {mir_display_output_id_invalid = 0
    }
    перечисление MirErrorDomain {mir_error_domain_display_configuration,
    mir_error_domain_input_configuration
    }
    Определяет источник ошибки.Подробнее …
    enum MirDisplayConfigurationError {mir_display_configuration_error_unauthorized,
    mir_display_configuration_error_in_progress,
    mir_display_configuration_error_no_preview_in_progress,
    mir_display_configuration_error_rejected_by_hardware
    }
    Ошибки из mir_error_domain_display_configuration MirErrorDomain. Подробнее …
    enum MirInputConfigurationError {mir_input_configuration_error_rejected_by_driver,
    mir_input_configuration_error_base_configuration_unauthorized,
    mir_input_configuration_error_unauthorized
    }
    Ошибки из mir_error_domain_input_configuration MirErrorDomain.Подробнее …
    enum MirEventType {
    MIR_DEPRECATED_ENUM = (mir_event_type_key, «mir_event_type_input»),
    MIR_DEPRECATED_ENUM = (mir_event_type_key, «mir_event_type_input»),
    MIR_DEPRECATED_ENUM = (mir_event_type_key, «mir_event_type_input»),
    mir_event_type_window = mir_event_type_surface,

    mir_event_type_resize,
    mir_event_type_prompt_session_state_change,
    mir_event_type_orientation,
    MIR_DEPRECATED_ENUM = (mir_event_type_key, «mir_event_type_input»),

    mir_event_type_close_window = mir_event_type_close_surface,
    mir_event_type_input,
    mir_event_type_keymap,
    MIR_DEPRECATED_ENUM = (mir_event_type_key, «mir_event_type_input»),

    MIR_DEPRECATED_ENUM = (mir_event_type_key, «mir_event_type_input»),
    mir_event_type_window_output = mir_event_type_surface_output,
    mir_event_type_input_device_state,
    MIR_DEPRECATED_ENUM = (mir_event_type_key, «mir_event_type_input»),

    mir_event_type_window_placement = mir_event_type_surface_placement

    }
    перечисление MirInputEventType {mir_input_event_type_key = 0,
    mir_input_event_type_touch = 1,
    mir_input_event_type_pointer = 2,
    mir_input_event_types
    }
    enum MirInputEventModifier {
    mir_input_event_modifier_none = 1 << 0, mir_input_event_modifier_alt = 1 << 1, mir_input_event_modifier_alt_left = 1 << 2, mir_input_event_modifier_alt_right = 1 << 3,
    mir_input_event_modifier_shift = 1 << 4, mir_input_event_modifier_shift_left = 1 << 5, mir_input_event_modifier_shift_right = 1 << 6, mir_input_event_modifier_sym = 1 << 7,
    mir_input_event_modifier_function = 1 << 8, mir_input_event_modifier_ctrl = 1 << 9, mir_input_event_modifier_ctrl_left = 1 << 10, mir_input_event_modifier_ctrl_right = 1 << 11,
    mir_input_event_modifier_meta = 1 << 12, mir_input_event_modifier_meta_left = 1 << 13, mir_input_event_modifier_meta_right = 1 << 14, mir_input_event_modifier_caps_lock = 1 << 15,
    mir_input_event_modifier_num_lock = 1 << 16, mir_input_event_modifier_scroll_lock = 1 << 17
    }
    Описание состояния ключевого модификатора.Подробнее …
    enum MirKeyboardAction {mir_keyboard_action_up,
    mir_keyboard_action_down,
    mir_keyboard_action_repeat,
    mir_keyboard_actions
    }
    Возможные действия по изменению состояния ключа. Подробнее …
    enum MirPointerAction {
    mir_pointer_action_button_up = 0,
    mir_pointer_action_button_down = 1,
    mir_pointer_action_enter = 2,
    mir_pointer_action_leave = 3,

    mir_pointer_action_motion = 4,
    mir_pointer_actions

    }
    Возможные действия указателя.Подробнее …
    enum MirPointerAxis {
    mir_pointer_axis_x = 0,
    mir_pointer_axis_y = 1,
    mir_pointer_axis_vscroll = 2,
    mir_pointer_axis_hscroll = 3,

    mir_pointer_axis_relative_x = 4,
    mir_pointer_axis_relative_y = 5,
    mir_pointer_axes

    }
    Идентификаторы оси указателя. Подробнее …
    enum MirPointerButton {
    mir_pointer_button_primary = 1 << 0, mir_pointer_button_secondary = 1 << 1, mir_pointer_button_tertiary = 1 << 2, mir_pointer_button_back = 1 << 3,
    mir_pointer_button_forward = 1 << 4, mir_pointer_button_side = 1 << 5, mir_pointer_button_extra = 1 << 6, mir_pointer_button_task = 1 << 7
    }
    enum MirTouchAction {mir_touch_action_up = 0,
    mir_touch_action_down = 1,
    mir_touch_action_change = 2,
    mir_touch_actions
    }
    Возможные действия касания для изменения состояния.Подробнее …
    enum MirTouchAxis {
    mir_touch_axis_x = 0,
    mir_touch_axis_y = 1,
    mir_touch_axis_pressure = 2,
    mir_touch_axis_touch_major = 3,

    mir_touch_axis_touch_minor = 4,
    mir_touch_axis_size = 5,
    mir_touch_axes

    }
    Идентификаторы сенсорной оси. Подробнее …
    enum MirTouchTooltype {mir_touch_tooltype_unknown = 0,
    mir_touch_tooltype_finger = 1,
    mir_touch_tooltype_stylus = 2,
    mir_touch_tooltypes
    }
    Идентификаторы для типов инструментов касания.Подробнее …
    enum MirInputConfigurationAction {mir_input_configuration_action_configuration_changed,
    mir_input_configuration_action_device_reset
    }
    MirInputConfigurationEvent указывает на изменение конфигурации в подсистеме устройства ввода. В конце концов, его использование потребуется для правильной интерпретации MirInputEvent, например: если мы получим нажатие кнопки, а затем сброс устройства, мы не должны ожидать, что кнопка будет поднята.Подробнее …
    enum MirScreencastResult {mir_screencast_success,
    mir_screencast_error_failure
    }

    Скачать Мир Linux 1.7.0

    Кроссплатформенный диспетчер отображения с открытым исходным кодом для операционной системы Ubuntu

    Mir — это бесплатная технология серверов отображения с открытым исходным кодом, которая была разработана с нуля для обеспечения эффективной поддержки графических сопроцессоров в системах GNU / Linux.Он разработан Canonical для самой популярной в мире бесплатной операционной системы Ubuntu.

    Реализации клиента и сервера

    Mir распространяется как клиент (libmirclient), так и как сервер (libmirserver). Он был разработан как замена для X Window System (X.Org) в Ubuntu и ее производных. Он также совместим с графическими драйверами Android.

    Продукты Mir и XMir будут по умолчанию распространяться в следующих выпусках операционной системы Ubuntu Linux, разработанной Canonical.Это также сервер отображения по умолчанию, используемый в текущей стабильной версии мобильной операционной системы Ubuntu Touch для питания смартфонов и планшетов.

    Что включено

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

    Программное обеспечение в чем-то идентично по функциональности и во многом вдохновлено широко используемым X.Сервер отображения Org, который в настоящее время реализован в 99,9% всех дистрибутивов GNU / Linux, а также совершенно новый сервер отображения Wayland.

    Он был разработан для поддержки многих существующих аппаратных композиторов, разработанных для EGL / GL (ES), и использования преимуществ существующих драйверов, реализующих модель драйвера Android.

    Под капотом и поддерживаемые операционные системы

    Программа не зависит от платформы и полностью написана на языке программирования C ++, предназначена для работы в системах GNU / Linux, дистрибутивах BSD, а также на других UNIX-подобных платформах.

    Он был успешно протестирован как с 32-битной, так и с 64-битной архитектурой набора команд, и последнюю версию можно протестировать на текущем выпуске операционных систем Ubuntu Linux или с помощью последнего исходного кода из официального репозитория.

    Зарегистрировано под

    Диспетчер дисплея Графический сервер Диспетчер дисплея Графический сервер Диспетчер дисплея Графика сервера

    Мир в Кубунту — Блог Мартина

    Как вы могли видеть в сообщении в блоге Джонатана, мы обсуждали Мир в Kubuntu на «Сессии Mataro II».Это тема, которую я бы предпочел вообще не обсуждать. Но динамика в мире свободного программного обеспечения вынуждает нас обсуждать это, и, очевидно, наши участники нижнего уровня должны знать, почему мы, как ведущие, не рассматриваем принятие «Мира» как допустимый вариант.

    Это подчеркивает огромную проблему, созданную Canonical с помощью Mir. Я не могу просто сказать «Канонический отстой» [1], чтобы отказаться от «Мира» в качестве варианта, я должен предоставить надлежащие технические аргументы, почему мы не будем интегрировать Мир. Мне нужно потратить время, чтобы изучить различия, преимущества и недостатки.Поскольку у меня есть эти аргументы, я подумал, что было бы неплохо поделиться ими в блоге.

    Обсуждение началось во время презентации X11 и Wayland моим коллегам по команде из Blue Systems. Я решил сначала объяснить X11, так как считаю, что невозможно понять потребности Wayland без понимания X11. Я вообще не собирался обсуждать Мир, но каким-то образом дискуссия перешла в нужное русло, и были подняты обоснованные вопросы о том, в чем различия и преимущества Mir или Wayland.За этим последовала тирада об Ubuntu и Canonical [2]. Итак, позже на этой неделе мы обсудили «Мир в Kubuntu» более подробно, чтобы попытаться найти ответы на многие вопросы, которые это поднимает для наших участников.

    Разочарование и потерянная мотивация

    Прежде чем я углублюсь в детали, я хочу прояснить одну вещь: Canonical полностью разрешено разрабатывать все, что они хотят. Меня это полностью устраивает, и меня не волнует, разработают ли они другой сервер отображения, собственное ядро ​​ОС или еще одну оболочку рабочего стола.Мне все равно. Это деньги Canonical / Mark, и он может вложить их любым способом, который сочтет полезным. Меня даже не волнует, будет ли это проприетарное программное обеспечение, все в порядке.

    Нехорошо вызывает серьезный сбой в экосистеме свободного программного обеспечения, приводя ложные технические аргументы и делая смелые заявления о программном обеспечении, которому Canonical не способствует. Это неприемлемо. Это очень расстраивало и разрушало мое доверие к Canonical. Восстановить это доверие будет сложно.Canonical может радоваться тому, что это мир свободного программного обеспечения, а не обычный корпоративный мир. Было довольно много заявлений, которые могли бы поднять юридический отдел в нормальном корпоративном мире [3]. Это также стоило много мотивации, по крайней мере, с моей стороны, и я даже сомневался, стоит ли по-прежнему быть членом экосистемы свободного программного обеспечения. Вместо того, чтобы работать вместе, мы теперь имеем ситуацию, когда участники экосистемы становятся конкурентами, а эта недоброжелательная часть программного стека.Очень неприятная ситуация.

    Конечно, есть веские причины для разработки «Мира», которые тоже имеют смысл. К сожалению, они пока не представлены. Я совершенно уверен, что знаю причины, и если бы они были сказаны сразу, это было бы для меня и других проектов, вероятно, намного проще. Это сняло бы разочарование, вызванное объявлением, и нам вообще не пришлось бы его обсуждать, потому что этих знаков вопроса не было бы. Но очевидно, что Canonical решила привести ложные технические аргументы вместо реальных.

    Еще не готов

    На данный момент Мира еще нет, это важно помнить. После объявления у нас было четыре варианта, как справиться с ситуацией.

    1. Продолжить план Вэйланда и игнорировать Мир
    2. Переключиться на Мир и игнорировать Wayland
    3. Поддержите Мир и Вэйланд
    4. Отсрочка принятия решения до готовности Мира

    Если я сопоставлю нашу временную шкалу для Plasma Workspaces 2 с временной шкалой Mir, я не увижу перекрытия.Мы хотим поддержать Wayland до того, как Мир будет готов. Так что откладывать решение — плохая идея. Это просто отбросило бы нас назад. Это также означает, что вариант 2 недействителен, тем более, что нам нужно будет отложить, пока Мир не будет готов, чтобы это произошло. Так что единственные допустимые варианты — поддержка как Mir, так и Wayland или только Wayland. На данный момент код еще не готов, чтобы должным образом решить, является ли поддержка Mir в дополнение к Wayland допустимым подходом или нет. В прошлый раз, когда я проверил исходную базу, я наткнулся на несколько заглушек, а затем, очевидно, перестал смотреть на код, поскольку он еще не стоит усилий.Поэтому мы должны оценивать знания, которые у нас уже есть, и это не очень хорошо со стороны «Мира».

    Возможные преимущества Мира перед Вэйландом

    Различия между Миром и Вэйландом минимальны. Одно из отличий заключается в том, что Mir использует выделенные сервером буферы, в то время как Wayland использует выделение буфера на стороне клиента. Я не могу судить, преимущество это или недостаток. Но я больше доверяю Кристиану и команде Wayland в этой теме.

    Еще одно отличие состоит в том, что Мир использует разработку через тестирование.Для меня методология разработки — не технический аргумент. Я предпочитаю использовать рабочую систему без модульных тестов, чем систему с неработающими модульными тестами [4]. Также KWin не использует TDD. Если бы я считал TDD лучше, мне пришлось бы поставить под сомнение собственную методологию разработки.

    Но это все. Вот те различия, которые я обнаружил до сих пор, которые можно считать преимуществом для «Мира». Но, конечно, есть преимущество в том, что «Мир» будет классным. Из-за недостатков я проведу полный раздел по каждому пункту.

    Специфично для дистрибутива

    Пока что «Мир» — решение с одним распределением. Пока ни один другой дистрибутив не проявил интереса к упаковке «Мира», даже если бы она стала рабочим решением. К сожалению, у меня нет возможности заглядывать в будущее, но я могу использовать прошлое и настоящее, чтобы черпать идеи на будущее. Прошлое подсказывало мне, что есть другие решения, специфичные для Canonical, которых нет в других дистрибутивах. Я не знаю ни одного дистрибутива, который бы упаковывал Unity, и, насколько я слышал, невозможно упаковать Unity даже в дистрибутивы, отличные от Ubuntu.При этом весьма вероятно, что «Мир» пойдет по той же дороге. Он разработан как решение для Unity, и если дистрибутивы не упаковывают Unity, нет необходимости упаковывать Mir.

    Это имеет некоторое влияние на возможное усыновление. Я не знаю ни одного разработчика kde-workspace, использующего (K) Ubuntu. Я не понимаю, как кто-то будет работать над этим или как мы должны иметь возможность проверять код или даже поддерживать код. Это означало бы, что все принятие должно происходить в разделах ifdef, которые никто не компилирует и никто не запускает.Это лучший способ убедиться, что он начинает гнить. Более того, наша система CI работает на openSUSE, поэтому даже CI не сможет обнаружить поломку. Конечно, такой нисходящий поток, как Kubuntu, может развить внедрение и нести его в качестве патча поверх восходящего, но я настоятельно рекомендую им не делать этого, поскольку отток исходного кода KWin слишком велик. Кроме того, мы все согласны с тем, что последующие патчи — это зло, и мы больше не сможем каким-либо образом помочь последующим пользователям с точки зрения поддержки.

    Архитектура

    Архитектура «Мира» сосредоточена вокруг Unity.Трудно понять архитектуру Mir, поскольку спецификация настолько полна модных словечек, что я ее не понимаю [5]. Из всего, что я могу видеть и понимать, Unity Next — это комбинация оконного менеджера и оболочки рабочего стола, реализованная поверх Mir. Как именно это будет выглядеть, я не знаю. В любом случае, это не соответствует нашему проекту разделения оболочки рабочего стола и оконного менеджера, и мы не знаем, поддержит ли Мир это. Мы также не знаем, разрешит ли Mir использовать любую другую оболочку рабочего стола, кроме Unity Next, учитывая, что это основная цель.Wayland, с другой стороны, спроектирован так, чтобы иметь более одной реализации композитора. Использование KWin в качестве композитора сеанса является примером в спецификации.

    Лицензия

    Wayland лицензируется как X по лицензии MIT, что хорошо послужило нам для сервера отображения. Я думаю, что это очень хороший выбор, и я рад, что разработчики Wayland выбрали эту лицензию. Мир находится под лицензией GPLv3-only с CLA. Я думаю, что это очень не подходит для такой части стека и представляет большой риск для использования в KDE Plasma.KWin (и большая часть программного обеспечения KDE) является GPLv2-или более поздней версией, это больше невозможно, это превратит наш код в GPLv3-only, поскольку KWin (или любое другое программное обеспечение, которое будет зависеть от mir-server) будет производной работой Мира. Я не рассматриваю программное обеспечение, предназначенное только для GPLv3, как возможную зависимость от какой-либо основной части нашего стека приложений. Это представляет серьезную угрозу для будущего в случае GPLv4, несовместимого с GPLv3. Еще мне не нравится CLA [6]. Так что с точки зрения лицензирования «Мир» вряд ли приемлем.

    Только для Unity / без протокола

    Одним из наиболее важных аспектов Wayland для нас является возможность расширения протокола. Это уже было довольно важной функцией в X, и мы используем наши собственные расширения для ICCCM и EWMH для реализации дополнительных функций. Конечно, в нашем рабочем пространстве есть собственные идеи, и для нас важно иметь возможность «стандартизировать» их, а также сделать их доступными для других, если они заинтересованы. Это возможно благодаря расширениям протокола.
    «Мир» не имеет настоящего протокола. «Внутреннее ядро» описывается как «не зависящее от протокола». Это создает для нас проблему, если мы хотим его использовать. Наша архитектура отличается (как описано выше), и нам нужен протокол между оболочкой рабочего стола и композитором. Если «Мир» не предоставит этого, нам придется использовать наш собственный протокол. А то, что уже есть, называется «Вэйланд». Значит, даже если бы мы поддержали Мир, нам понадобится протокол Wayland?!? Для меня это не имеет никакого смысла. Если нам нужно запустить Wayland поверх Mir, чтобы получить необходимые функции, зачем вообще запускать Mir?

    Но становится еще хуже, протокол между сервером «Мир» и клиентами «Мира» определяется как нестабильный.На самом деле обещано, что он сломается. Это огромная проблема, я бы даже назвал это препятствием. Для Canonical это нормально — они контролируют весь стек и могут просто настраивать все биты с помощью протокола, такого как QMir.

    Для нас это выглядит иначе. Учитывая, что протокол может измениться в любое время, и учитывая, что все это разработано для нужд Unity, мы должны ожидать, что серверные библиотеки не будут двоично совместимы или что старая версия серверных библиотек не может взаимодействовать с последними клиентскими библиотеками.Нам постоянно приходилось развиваться против нестабильной и ломающейся базы. Я знаю, что это звучит слишком пессимистично, но я знаю один случай, когда изменение, внесенное в канонический протокол в конце цикла выпуска, полностью нарушило работу приложения в Kubuntu, которое хотело использовать этот протокол. Учитывая этот опыт, я бы не поверил, что протокол не изменится за день до выпуска, что означает, что Kubuntu не может быть выпущен.

    Это не круто, это ужасно. Значит, KWin не будет нормально работать на Мире.

    Я надеюсь, что это показывает, что использование Mir внутри рабочих пространств KDE Plasma не вариант. Нет никаких преимуществ, которые превратили бы Mir в лучшее решение, чем Wayland, и в то же время есть несколько препятствий, которые означают, что мы не можем интегрировать Mir — даже опционально в дополнение к Wayland. Нестабильный протокол и выбор лицензирования явно неприемлемы.

    Вопросительные знаки

    Для Kubuntu переключатель Mir от Canonical вызвал ряд вопросов.Ответ на один из этих вопросов получен: Upstream не заинтересован в его поддержке и, скорее всего, не будет принимать исправления для поддержки. Поскольку апстрим не использует Mir, вопрос в том, как будет выглядеть стек графики для Kubuntu после перехода Ubuntu на Mir? На вопросы сейчас невозможно ответить, но это не выглядит хорошо.

    Патчи в стек

    В Ubuntu всегда был один из худших графических стеков в мире свободного программного обеспечения. Я вижу это в баг-трекере. Качество стека Mesa в Ubuntu действительно плохое.Для Mir Ubuntu придется еще больше патчить стек Mesa. Я бы не хотел этого видеть. Также Mesa должна иметь поддержку Wayland. Но продолжит ли Canonical это делать? Если нет, нужно ли Kubuntu (и другим разновидностям Ubuntu) поставлять собственный стек Mesa? Что, если изменения от Canonical настолько велики, что стандартный стек Mesa не работает поверх стека Ubuntu?

    Коммутация

    Одним из преимуществ бесплатного программного обеспечения является то, что можно выбрать среду рабочего стола в диспетчере входа в систему.Похоже, что в мире Мира это уже невозможно. Unity будет работать с системным композитором Mir с вложенным LightDM. Нам понадобится либо X-сервер, либо системный композитор Wayland. Таким образом, из менеджера входа в систему невозможно будет запустить сеанс напрямую с использованием другого системного композитора. Как по-прежнему можно будет использовать Unity и KDE Plasma в одной системе? Одновременный запуск сеанса Unity и KDE Plasma (или GNOME, XFCE или чего-либо еще) больше не возможен.

    Системный композитор

    Насколько глубоко в системе будет находиться системный композитор? Можно ли будет отключить системный композитор Мир и заменить его на X или Wayland? Что делать, если пакеты начинают конфликтовать? Можно ли будет установить Kubuntu и Ubuntu в одной системе? Будет ли Canonical заботиться об этом? Будет ли системный композитор означать, что в Grub нужно решать, загружать ли Ubuntu или Kubuntu?

    Посылки откуда

    На данный момент X, Wayland и Mesa были упакованы Canonical.Но как насчет будущего? Будут ли еще пакеты для X, будут ли пакеты для Wayland? Если нет, то где их взять? Скорее всего, Debian нестабильный. Но Debian может быть заморожен. Можно ли будет вообще использовать пакеты Debian для X и Wayland в стеке Ubuntu? Отвечают ли они требованиям KDE Plasma [7]? Если Canonical не предоставляет пакеты Wayland, они упадут во вселенную, поэтому Mesa в основном не может зависеть от них. Как получить Mesa с поддержкой Wayland?

    Только будущее может сказать

    На эти вопросы сейчас невозможно ответить.Придется подождать, пока Мир не будет интегрирован в стек Ubuntu. Тогда разработчики Kubuntu увидят, насколько сильно сломался стек. Я не очень оптимистично настроен по поводу того, что после перехода на Mir все еще можно будет предоставить варианты Ubuntu. Я не думаю, что Canonical больше заинтересована в сообществе, предоставляющем дистрибутивы поверх Ubuntu. Есть много небольших изменений в направлении, указывающих на это. Но посмотрим, может я слишком пессимистичен.

    [1] Учитывая, как Canonical представила Mir неверную информацию о Wayland, я считаю это правильным подходом к отказу от технологии.

    [2] В то время я был очень устал от Ubuntu, потому что наш трекер ошибок снова взорвался после выпуска Ubuntu.

    [3] Признаюсь, я думал о том, чтобы спросить KDE e.V. послать Abmahnung после заявления, что KWin будет отлично работать на Mir.

    [4] На самом деле я считаю TDD полной бессмыслицей и бесполезной методологией, хотя некоторые аспекты полезны.

    [5] «с нашим подходом, не зависящим от протокола и платформы, мы можем быть уверены, что достигаем нашей цели — согласованного и красивого взаимодействия с пользователем на всех платформах и форм-факторах устройств»

    [6] Да, я знаю, что у Qt также есть CLA, который я подписал.Но для Qt существует также соглашение KDE Free Qt Foundation.

    [7] На прошлой неделе появилась функция KWin, которую я не могу протестировать / использовать, потому что X-Server слишком стар для тестирования Debian.

    Война есть мир — Блог Мартина

    Сегодня у меня много вопросов о KWin и Mir, о том, как это влияет на нас, что это значит для наших планов на Wayland и так далее. Я не хотел ничего об этом писать, потому что думаю, писать не о чем, но, прежде чем отвечать на один и тот же вопрос снова и снова, я думаю, что лучше написать здесь несколько строк.Wiki будет обновлена ​​после обновления вики Wayland, чтобы у нас было на что ссылаться.

    Первый вопрос: влияет ли на нас Мир? Да, конечно. Из-за Мира я должен написать этот пост в блоге, разработчики Wayland должны извлечь FUD из документации Мира, это создает напряжение и вредит развитию. Нам снова и снова придется сталкиваться с вопросом, лучше ли Вэйланд или нет. Так что да, это влияет на нас, и мне это не нравится.

    Второй вопрос: влияет ли это на наши планы относительно Вэйланда? Я думаю, было бы очень непрофессионально, если бы мы изменили наши планы только потому, что Canonical объявила, что они хотят создать собственный сервер отображения для Unity (мы также не выбросили Plasma из-за Unity).В настоящий момент судить о том, предоставляет «Мир» технические преимущества или нет, нам придется подождать и посмотреть, и тогда мы сможем принять решение, стоит ли менять наши планы. Пока я не видел в документации ничего, что выглядело бы как преимущество перед Wayland. Учитывая неверные утверждения о Wayland, я очень скептически отношусь к тому, могут ли быть какие-то преимущества. Я не хочу вдаваться в подробности, просто поищите в Интернете информации об этом уже достаточно. Также следует учитывать, что Canonical меняет планы по их распространению через день.Просто подумайте о количестве наборов инструментов, которые использовались для Unity — учитывая, что я бы не стал делать ставку на то, что Мир будет использоваться в следующем году, и это, конечно, означает, что мы не должны учитывать его при планировании.

    Третий вопрос: поддержит ли KWin Мир? Нет! Mir в настоящее время является решением только для одного дистрибутива, и любые изменения будут зависеть от дистрибутива. Мы не принимаем патчи для поддержки одного из последующих. Если есть специальные патчи для нисходящего потока, они должны применяться ниже по течению. Это означает, что в настоящее время нет возможности добавить поддержку, и даже если бы кто-то реализовал поддержку KWin в Ubuntu, я бы наложил вето на патчи, поскольку мы не принимаем специфичный для дистрибутива код.Если Мир станет доступен в других дистрибутивах, можно будет рассмотреть второй вопрос. Учитывая невероятный успех Unity в дистрибутивах, отличных от Ubuntu, я с оптимизмом смотрю на то, что нам никогда не придется проводить оценку второго вопроса.

    Mir будет поставляться как сервер отображения по умолчанию в Ubuntu 13.10

    Mir будет поставляться в качестве сервера отображения по умолчанию в Ubuntu 13.10, сообщила сегодня Ubuntu.

    Замена XServer

    Canonical будет использоваться для обеспечения питания настольного компьютера Unity 7 на устройствах с драйверами видеокарты с открытым исходным кодом.

    Unity 7 будет работать поверх XMir, реализации X, которая обеспечивает уровень совместимости, позволяющий программному обеспечению, средам рабочего стола, периферийным устройствам и настройкам с несколькими мониторами, разработанным для X, продолжать работать должным образом.

    Но хотя Mir и XMir по умолчанию будут поставляться в октябрьском выпуске, не все смогут его использовать.

    Те, у кого установлены проприетарные драйверы видеокарты (NVidia, ATi и т. Д.), Вместо этого будут обслуживаться с традиционной оконной системой XServer в качестве запасного варианта.

    Этот запасной вариант необходим, потому что в настоящее время поставщики графических процессоров не предоставляют поддержку Mir / XMir в своих бинарных драйверах. Ожидается, что эта ситуация будет разрешена выпуском Ubuntu 14.04 LTS в следующем году.

    Xmir уже может грамотно запускать большинство окружений рабочего стола, включая LXDE и KDE, как показано в следующем видео:

    «Почему именно сейчас?»

    Так почему именно сейчас? Почему по умолчанию в Ubuntu 13.10?

    «Размещение Mir в центре рабочего стола Ubuntu так скоро — рискованный шаг, но также неизбежный…»

    Для достижения цели доставки Mir как единственный по умолчанию в Ubuntu 14.04 LTS, и, тем временем, для питания любых мобильных устройств Ubuntu, которые OEM-производители планируют поставлять, Mir (и XMir) должны быть готовы к производству как можно скорее.

    Таким образом, если так быстро поставить Mir на первый план рабочего стола Ubuntu, это рискованный шаг, но он также неизбежен, если он добьется успеха. Использование в реальном мире даст разработчикам более сильную обратную связь, которая поможет в формировании, оптимизации и оттачивании функции.

    Как объяснил мне сегодня Canonical Олли Райс :

    «Мир достиг уровня зрелости с точки зрения качества и производительности, что позволяет нам сделать его основным компонентом Ubuntu 13.10. С его текущим дизайном мы позволяем всем зависимым производным инструментам работать без изменений поверх этого нового стека.

    Интеграция Mir сегодня дает Ubuntu один дополнительный цикл для повышения производительности и дальнейшей интеграции, чтобы к 14.04 получить еще один первоклассный Ubuntu LTS ».

    Mir был создан, чтобы помочь в достижении конвергентной цели Canonical для Ubuntu — обеспечить работу одного и того же кода на смартфонах, планшетах и ​​телевизорах. Поскольку форм-факторы масштабируются, то и технология отображения должна ими управлять; Требовалось более легкое и гибкое решение по сравнению с существующими проектами.

    XMir, который работает поверх Mir и будет стоять перед рабочим столом Unity 7 в 13.10, используется для обеспечения обратной совместимости для приложений и служб, которые полагаются на X.

    Что это значит для вас

    Если не считать энтузиазма по поводу технологии, внесенного в это изменение, это изменение будет мало что значить в плане видимых изменений.

    Независимо от того, будете ли вы использовать рабочий стол на базе Mir или XServer, реальные возможности рабочего стола в Ubuntu 13.10 должны быть одинаковыми.

    И это все, что имеет значение для большинства из нас.

    Если вы уже работаете с Ubuntu 13.10 и хотите попробовать Mir, вы найдете все, что вам нужно знать, в этом сообщении блога.

    Главная »Новости» Mir будет поставляться как сервер отображения по умолчанию в Ubuntu 13.10

    Ubuntu Создание собственного сервера отображения, Unity для перехода на Qt / QML

    Canonical сегодня публично подтвердила, что они работают над новым кроссплатформенным сервером отображения для Ubuntu.

    Названный «Мир», на замену X Window Server поставлена ​​задача «обеспечить разработку Unity следующего поколения». Который, в очередной раз, должен быть перестроен в Qt / QML.

    Новости не такие уж неожиданные. Ранее в этом году Джоно Бэкон из Canonical сделал несколько замечаний в ходе сеанса вопросов и ответов, которые намекнули на возможность использования альтернативного диспетчера дисплеев.

    ’’… Реальность такова, что X не удовлетворяет эти потребности, Wayland не удовлетворяет эти потребности.’

    Судя по журналу фиксации для «Мира», это заключение было получено с июня прошлого года, когда, похоже, работа над «Миром» началась.

    Почему Мир?

    Когда Марк Шаттлворт сформулировал свою грандиозную цель — сделать Ubuntu «конвергентной» — работать с мобильными устройствами, планшетами, настольными компьютерами и телевизорами — он также бросил ряд технических препятствий, которые сначала необходимо было преодолеть. Одним из шагов к очистке всегда был выбор сервера отображения — той части системы, которая рисует пользовательский интерфейс и взаимодействует с ним на экране.

    В настоящее время Ubuntu использует X.

    X эффективно делает то, что делает, но у него есть проблема: он построен на коде, которому почти 30 лет. Зрелая кодовая база приносит с собой устаревшую поддержку функций и функций, которые больше не нужны на современных настольных компьютерах, не говоря уже о телефонах и планшетах.

    Решить эту проблему намеревается Wayland — относительно новый протокол отображения, который интегрирует функции (например, композитинг) непосредственно в сервер отображения, а не добавляет их на заднем плане.

    Компания Canonical стояла перед выбором: адаптировать одну из существующих технологий / протоколов серверов дисплеев для работы в различных форм-факторах, но при этом пойти на компромисс с точки зрения видения или создать свою собственную с нуля.

    Компания

    Canonical выбрала последнее, при этом Мир был создан специально для достижения целей и задач Unity.

    Задача впереди

    Большой задачей Canonical в будущем будет убедить поставщиков графических процессоров инвестировать в Mir и поддерживать его.

    Canonical заявляет, что они «находятся в контакте [и] тесно сотрудничают» с производителями графических чипов, чтобы поддержать Mir, и, что, возможно, более интересно, «… разработали многоразовую и унифицированную модель драйвера EGL, которая еще больше упрощает разработку серверов отображения в целом. и учитывает кроссплатформенные варианты использования.”

    Но на данный момент Мир может работать только поверх бесплатных графических драйверов.

    Когда он появится?

    Согласно спецификации Mir на Ubuntu WIki, Mir предназначен для замены SurfaceFlinger, сервера отображения Android, используемого в образах Ubuntu Touch, в какой-то момент в ближайшем будущем. с рабочим столом, предназначенным после этого.

    Также доступен промежуточный PPA для «Мира».

    Примерно в мае этого года мы должны увидеть первую полезную демонстрацию Mir с Unity Next («новая» версия Unity на Qt / Qml) на Ubuntu Touch.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    2024 © Все права защищены. Карта сайта