Generated by GPT-5-mini| Mir (software) | |
|---|---|
| Name | Mir |
| Developer | Canonical Ltd. |
| Released | 2013 |
| Programming language | C++, Vala, Rust |
| Operating system | Ubuntu, Linux distributions |
| License | GPLv3, LGPLv3 |
Mir (software) is a display server and compositor originally developed by Canonical Ltd. as part of the Ubuntu ecosystem. It provides an alternative to X Window System and Wayland (protocol), designed to support modern graphics stacks on Linux-based systems and to enable convergence across desktop, tablet, and embedded devices. Mir emphasizes modularity, performance, and secure client isolation while integrating with graphics drivers and toolkits.
Mir was announced by Canonical in 2013 during efforts around Ubuntu (operating system) convergence and the Ubuntu Touch project. The announcement followed Canonical's previous investments in Upstart and coincided with work on Unity (user interface). Early roadmap items referenced support for accelerated graphics via Mesa (software) and drivers from NVIDIA, Intel, and AMD. The initial reception involved debates with the Wayland (protocol) community and projects like GNOME and KDE. Over time Canonical shifted strategy, and Mir's role evolved from a Canonical-centered stack to a general-purpose compositor with renewed focus after collaborations with projects such as Sway (software)-adjacent toolchains and embedded vendors including Purism (company) and System76. Development milestones intersected with releases of Ubuntu 13.10, Ubuntu 14.04 LTS, and later Ubuntu editions as Canonical adjusted priorities in response to community and industry developments including the broader adoption of Wayland in KDE Plasma and GNOME Shell.
Mir's architecture centers on a compositor core that handles display surfaces, input routing, and buffer management while interfacing with device drivers and kernel subsystems such as Linux kernel's Direct Rendering Manager and Kernel Mode Setting. The stack includes backends for Wayland (protocol) clients, X11 clients via XWayland, and native Mir protocol clients. Graphics pipeline integration leverages EGL and OpenGL or Vulkan through Mesa (software) and proprietary vendor stacks like NVIDIA Corporation drivers. Mir employs a client–server model with IPC mechanisms influenced by D-Bus patterns and uses sandboxing strategies analogous to approaches in Flatpak and Snapcraft to isolate client processes. The design allows multiple surfaces, nested compositors, and remote display scenarios comparable to X Remote Desktop, enabling Mir to run on embedded platforms such as Raspberry Pi variants and OEM devices.
Mir's mainline development is coordinated by Canonical engineering teams alongside community contributors from companies and projects including Collabora, Intel Corporation, AMD, and independent maintainers. Governance uses code review workflows on distributed platforms similar to those used by GitLab and GitHub, with licensing under GNU General Public License and GNU Lesser General Public License terms. Roadmaps have been informed by input from downstream stakeholders like Ubuntu Touch maintainers at UBports and hardware vendors such as Purism (company) and System76. Technical stewardship involves collaboration with standards bodies and upstream projects such as the Wayland (protocol) compositor community, Mesa (software), and the Linux kernel maintainers.
Mir provides compositing, input handling, and buffer management along with a native protocol for clients designed for efficiency and security. Major components include the Mir Server, MirAL (a client API layer), protocol libraries, backends for DRM/KMS, and support tools for session management analogous to components in LightDM and systemd. Mir supports direct scanout, zero-copy buffer passing with DMA-BUF, GPU offload, and hardware-accelerated rendering via OpenGL and Vulkan pipelines. Input subsystem integrations include support for libinput and touch protocols relevant to devices like PinePhone and tablets from OEMs. Mir also exposes APIs for shell developers and integrates with toolkits such as Qt (software), GTK and Flutter (software), enabling application porting from ecosystems like Ubuntu Touch and Android.
Mir has been adopted in embedded and appliance contexts by vendors seeking an integrated, lightweight compositor. Use cases span in-vehicle infotainment systems, kiosk terminals, handheld devices, and specialized appliances from companies akin to Purism (company)],] System76, and small IoT vendors. Community projects such as UBports explored Mir for mobile interfaces, and Mir has been used in experimental convergence projects that bridge desktop environments like KDE Plasma and application frameworks including Electron (software) and Flutter (software). Mir's modular backends make it suitable for custom distributions and academic research in human-computer interaction at institutions comparable to MIT and University of Cambridge labs.
Mir interoperates with legacy X11 applications via integration with XWayland-style compatibility layers and supports Wayland clients through protocol adaptations. Integration points include Mesa (software), libinput, EGL, and display management standards like Kernel Mode Setting. Mir can be packaged for distributions such as Ubuntu (operating system), Debian, Fedora, and lightweight derivatives, and it supports deployment with init systems including systemd and session managers like LightDM. Third-party toolkits and stacks—Qt (software), GTK, Electron (software), and Flutter (software)—have been ported to run atop Mir with bridging code analogous to adapters used by Wayland (protocol) compositors.
Mir emphasizes process isolation, sandbox-friendly APIs, and buffer access controls similar to practices in Flatpak and Snapcraft packaging to reduce attack surface. Performance optimizations include zero-copy DMA-BUF paths, GPU scheduling cooperation with drivers from NVIDIA Corporation, Intel Corporation, and AMD, and low-latency input handling comparable to efforts in Sway (software) and Weston (compositor). Profiling and tracing employ tooling from the Linux kernel ecosystem and graphics stacks like perf, apitrace, and VKTrace-like utilities. Security considerations also address privilege separation, session privilege minimization, and mitigation strategies aligned with standards discussed by projects such as OpenChain.
Category:Display servers