Авторские статьи

Зачем Canonical создала Мир? 5 причин от Кристофера Роджерса.


Кристофер Роджерс (Christopher Halse Rogers), разработчик Canonical, в Гугл+ опубликовал своё видение и объяснение ситуации с новым дисплейным сервером Mir.

Дальше текст от лица Кристофера.

Стоя на плечах гигантов.

Мы недавно объявили публике о проекте Мир (ура!), над которым работали в течении нескольких месяцев.

Устройство дисплейнего сервера Mir

Это было чуток сложнее, чем я предполагал (бу!). В частности, мы успели обидеть неправильной информацией на странице спецификации Mir в разделе "Почему не Wayland и Weston?".

Я делал вычитку и не заметил связи между "обработка событий ввода в X не безопасна" и "протокол Wayland обработки событий ввода может повторять проблемы X".
В конце концов, одна из приятных вещей в Wayland - он решает проблемы безопасности в X. Фразу "протокол Wayland обработки событий ввода может повторять проблемы X" можно было прочесть как "обработка входных событий Wayland так же небезопасна, как и в X", что абсолютно неверно и я приношу извинения всем, особенно Kristian Høgsberg и Daniel Stone.

Теперь когда с извинениями покончено ...

Несмотря на то, что у нас есть раздел на вики странице "Почему не Wayland и Weston?", есть куча размышлений людей о ситуации "зачем мы создали Мир?". От разумных "мы создали собственный дисплейный сервер, чтобы лучше контролировать ситуацию" до глуповатых "Canonical - это фасад Microsoft, чтобы проникнуть и разрушить Linux".

Я не думаю, что объяснение на странице неточное, но, возможно, не вполне ясное.

Заметка: Я не участвовал в первоначальном обсуждении о необходимости в создании Mir или исправить Wayland под наши нужды.

Я чуть позже беседовал с теми кто участвовал в обсуждении. Так что отнеситесь к моим словам, как к переосмыслению и фильтрованию через моё собственное понимание ситуации.

Мнение высказанное тут может не совпадать с мнением моего работодателя Canonical.

1) Мы хотели интегрировать оболочку пользовательского интерфейса с дисплейным сервером, так как было множество разочарований при написании десктопной оболочки под X. Смотрите видео ролики про Wayland для подробностей :). Поэтому мы хотели Wayland или что-то вроде того.

2) Мы не хотим использовать Weston. Weston, эталонная реализация композитного менеджера Wayland, является испытательным полигоном. Он служит для разработки протокола Wayland, а не для работы какой-либо реальной десктопной оболочки. Мы могли бы форкнуть Weston и изменить его под себя, но по результатам автоматического тестирования это было бы трудновато на той существующей кодовой базе. Вестон обладает своими тестами, но у нас есть свои супер-пупер-тестирующие программы. Мы не хотим Weston, но, возможно, мы хотим Wayland?

3) В то время, когда Mir стартовал, обработка событий ввода Wayland ещё не существовала. Daniel Stone проделал много работы с тех пор, но в то время всё выглядело так, что нужно начать работу с написания всего стека обработки ввода. Возможно, мы хотим Wayland, то придётся писать весь этот стек.

4) Нам нужно выделение памяти под буфер (buffer allocation) на стороне сервера на платформе ARM. По разным причинам, мы бы так же хотели выделение памяти под буфер на стороне сервера для всех аппаратных платформ. Weston использует выделение памяти для буферов на клиентской стороне и Wayland EGL в Mesa поступает так же. Хотя можно реализовать размещение буферов на серверной стороне в протоколе Wayland, но это как плыть против течения. Возможно, мы хотим Wayland, но нужно написать стек обработки входных событий и патчить Mesa EGL.

5) Мы хотим минимум возможной сложности. В перспективе, мы хотели что-то, идеально подходящее нашим требованиям, без излишнего кода. Мы хотим другую WM семантику существующих wl_shell и wl_shell_surface (десктопный интерфейс мета-данных), а, в идеале, выбросить их и заменить на что-то новое. Возможно, мы хотим Wayland, но нужно написать стек обработки входных событий, патчить Mesa EGL и заново повторить обработку WM для всех тулкитов.

На этом этапе, похоже мы хотим Wayland, но разный ему во множестве деталей.

Пока не ясно, как Wayland спас бы нас от излишних усилий, когда мы начали бы делать свои задумки, создавать легко проверяемую кодовую базу, использовать целиком нашу инфраструктуру, не использовать своего лишнего уровня над wayland. Как всё это не перевесило бы затраты на создание своего? Поэтому и создан Мир!

Это стало возможным, благодаря работе Wayland разработчиков, в частности Kristian Høgsberg. Mir похож на Wayland. Мы напрямую зависим от того хорошего, что создано в Wayland.

Надеюсь, мы будем вносить свой вклад не только в замечательный дисплейный сервер Мир и в удивительную рабочую среду Unity, но и в низкоуровневые вещи, которые могут быть использованы в композитном менеджере Wayland.

Я особенно рад нашим контактам с NVIDIA и AMD. Хотя ещё рано говорить, но я надеюсь, что мы скоро получим решение на вопрос "а что насчёт проприетарных драйверов?", но не только для Мира, а для всех.

Родственники на связи:
Canonical представила дисплейный сервер Mir.

Дата последней правки: 2023-03-31 16:31:15

RSS vasilisc.com   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи об Astra Linux
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта