Об этом проекте
Sophia — экспериментальный дисплейный сервер и композитор, построенный вокруг транзакционного движка (Engine) с нативным X11-фронтендом. Его ключевая идея: геометрия окон и пиксели фиксируются вместе как единая визуальная транзакция, поэтому зависший клиент оставляет на экране последнее зафиксированное состояние, пока не будет готово замещение.
Проект следует Unix-стилю разделения обязанностей. Движок владеет физическим вводом, графом сцены, планированием кадров, визуальными фиксациями, рендерингом и выводом на дисплей. X11-фронтенд (написан на Rust в sophia-x-authority) принимает X11-соединения, управляет ресурсами, обеспечивает соблюдение правил протокола и преобразует состояние клиента в транзакции движка. Управление окнами, оболочка и межприкладные передачи обрабатываются отдельными процессами, общающимися через версионированные протоколы.
Ключевые компоненты:
- Sophia Engine: авторитет композитора для ввода, графа сцены, проверки попаданий, отслеживания повреждений, планирования кадров, атомарных визуальных фиксаций и сканирования вывода.
- Sophia X Server Frontend: X11-ресурсы, выделения, захваты и проверки протокола; генерирует транзакции поверхностей с проверкой пространств имён.
- Sophia WM: предлагает раскладку и фокус через sophia_wm_v1, используя непрозрачные узлы раскладки и дескрипторы поверхностей, без доступа к XID, заголовкам, PID или содержимому буфера обмена. Hagia — эталонный оконный менеджер.
- Sophia Shell: предоставляет панели, лаунчеры и переключатели через sophia_shell_v1, запрашивает пространство по краям экрана и получает очищенные метаданные через брокер. Narthex — эталонная оболочка-дескриптор.
- Sophia Portals: брокерируют обмен буфером обмена, перетаскивание и захват экрана между пространствами имён, требуя авторизации для каждого конкретного получателя.
Изоляция пространств имён — ключевая архитектурная особенность. Доверенные приложения могут разделять пространство и использовать традиционную объектную модель X11, тогда как приложения, требующие изоляции, работают в отдельных пространствах, где межпространственные поиски ресурсов завершаются отказом. Портал авторизует конкретные передачи, не открывая ни одно пространство для общего доступа.
Документация включает руководство по созданию оконных менеджеров, оболочек или сред рабочего стола на Sophia, индекс спецификаций архитектуры, протоколов, конфигурации и безопасности, а также журнал разработки с исследованиями и проектными решениями. Текущая работа отслеживается в todo.md.
Статус: Sophia — исследовательский прототип. X11 — текущий прикладной протокол, и Rust-фронтенд реализует его подмножество; совместимость приложений и сквозная валидация всё ещё в процессе. Другие протокольные фронтенды, включая Wayland, — будущая работа. Проект лицензирован под BSD 3-Clause.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.