Mir (software)
Lua error in package.lua at line 80: module 'strict' not found.
Original author(s) | Canonical Ltd. |
---|---|
Developer(s) | Canonical Ltd. |
Initial release | TBA |
Stable release | 0.22.0 / 28 April 2016[1] |
Development status | In development |
Written in | C++ |
Operating system | Linux |
Type | Display server |
License | GPLv3[2] |
Website | launchpad |
Mir is a computer display server for the Linux operating system currently in development by Canonical Ltd. It is planned to replace the currently used X Window System for Ubuntu.[3][4][5]
Mir was announced by Canonical on 4 March 2013.[6] Mir has been developed to enable the development of Unity 8, the next generation of the Unity user interface.[3]
Contents
Software architecture
Mir, like Wayland, is built on EGL[7] and uses some of the infrastructure originally developed for Wayland[8] such as Mesa’s EGL implementation[7] and Jolla’s libhybris.[9][10] The compatibility layer for X, XMir, is based on XWayland.[11]
Other parts of the infrastructure used by Mir originate from Android. These parts include Android’s input stack[12] and Google’s Protocol Buffers.[13] An implementation detail in memory management shared with Android is the use of server-allocated buffers which Canonical employee Christopher Halse Rogers claims to be a requirement for "the ARM world and Android graphics stack".[14][15]
According to Ryan Paul of Ars Technica,
<templatestyles src="Template:Blockquote/styles.css" />
Some of the benefits that Mir will eventually offer include lower overhead in the display pipeline, more seamless transitions between display modes during the boot process, richer input handling that will make it easier to support things like touchscreen gestures, more seamless support for systems with switchable graphics hardware (like laptops that can dynamically shift between using embedded and discrete graphics), and better application interchange (which will help improve things like the clipboard and drag-and-drop).[15]
Adoption
As of May 2014[update] the only announced desktop environment with native support for Mir is Canonical's Unity 8. No other Linux distribution has announced plans to adopt Mir as default display server.
On 23 July 2013, Compiz developer Sam Spilsbury announced a proof-of-concept port of XBMC to Mir,[16] based on the previous proof-of-concept port of XBMC to Wayland.[17] On the same day Canonical developer Oliver Ries confirmed that "this is the first native Mir client out in the wild".[18]
Among Ubuntu derivatives using a non-Unity environment, Xubuntu developers announced in early August 2013 that they would evaluate running Xfce via XMir,[19] but three weeks later decided to refrain from adopting it.[20]
Ubuntu
In June 2013, Canonical's publicly announced milestones for Mir development were to ship Unity 7 with XMir by default and a pure X11 fallback mode with Ubuntu 13.10, remove the X11 fallback with Ubuntu 14.04 LTS, and Unity 8 running natively on Mir by Ubuntu 14.10.[21] Later, on 1 October 2013, Canonical announced a postponement of their Mir plans for desktop use and not use XMir as default in Ubuntu 13.10. Ubuntu Touch, however is targeted to ship with Mir and a smartphone version of Unity 8.[22][23]
On May 2016 during his traditional video interview with the community held during the Ubuntu Online Summit, Mark Shuttleworth confirmed that "You will be able to get 16.10 with Unity 8, just like you can get 16.04 with MATE,or KDE, or GNOME. It’ll be there, it’ll be an option, and the team that’s working on that is committed to making that a first-class option."[24]
Toolkits
- SDL support for Mir and Wayland is available from SDL 2.0.2 but it was disabled by default.[25][26] Wayland and Mir support is enabled by default in SDL 2.0.4.[27]
- GTK+ 3.16 includes an experimental Mir backend.[28]
- Qt5 is the official and supported toolkit for Unity8 and Ubuntu Touch, included in the Ubuntu SDK.[29]
Controversy
In March 2013 Canonical Ltd. announced Mir as the replacement display server for the X.Org Server in Ubuntu.[6] Previously, in 2010, it had announced that it would use Wayland.[30] Canonical stated that it could not meet Ubuntu’s needs with Wayland.[15] There were several posts made in objection or clarification, by people leading other similar or affected projects.[31][32][33][34]
When originally announcing Mir, Canonical made various claims about Wayland's input system, which the Wayland developers quickly rebutted.[35][36] Official Canonical documentation in 2014 states, "our evaluation of the protocol definition revealed that the Wayland protocol does not meet our requirements. First, we are aiming for a more extensible input event handling that takes future developments like 3D input devices (e.g. Leap Motion) into account...With respect to mobile use-cases, we think that the handling of input methods should be reflected in the display server protocol, too. As another example, we consider the shell integration parts of the protocol as privileged and we'd rather avoid having any sort of shell behavior defined in the client facing protocol."[37] In late 2015 Mir switched from a custom Android-derived input stack to Wayland’s libinput.[38][39]
Longtime Linux kernel developer Matthew Garrett criticized the choice of licensing for Canonical's software projects, particularly Mir. Unlike X.Org Server and Wayland, both under the MIT License, Mir is licensed under GPLv3 – "an odd [choice]" for "GPLv3-hostile markets" – but contributors are required to sign an agreement that "grants Canonical the right to relicense your contribution under their choice of license. This means that, despite not being the sole copyright holder, Canonical are free to relicense your code under a proprietary license." He concludes that this creates asymmetry where "you end up with a situation that looks awfully like Canonical wanting to squash competition by making it impossible for anyone else to sell modified versions of Canonical's software in the same market".[2][40][41][42] Garrett’s concerns were echoed by Bradley M. Kuhn,[43][44] Executive Director of the Software Freedom Conservancy.[45] Richard Stallman of the Free Software Foundation has stated that he supports dual-licensing of GPL software, as long as there are no proprietary extensions or proprietary versions of the free program.[46]
In June 2013, Jonathan Riddell of Kubuntu announced that Kubuntu did not plan to switch to Mir. He stated "A few months ago Canonical announced their new graphics system for Ubuntu, Mir. It's a shame the Linux desktop market hasn't taken off as we all hoped at the turn of the millennium and they feel the need to follow a more Apple or Android style of approach making an OS which works in isolation rather than as part of a community development method. Here at Kubuntu we still want to work as part of the community development, taking the fine software from KDE and other upstream projects and putting it on computers worldwide. So when Ubuntu desktop gets switched to Mir we won't be following. We'll be staying with X on the images for our 13.10 release now in development and the 14.04 LTS release next year. After that we hope to switch to Wayland which is what KDE and every other Linux distro hopes to do".[47][48][49]
In September 2013, an Intel developer removed XMir support from their video driver and wrote "We do not condone or support Canonical in the course of action they have chosen, and will not carry XMir patches upstream".[50][51][52]
See also
References
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 2.0 2.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 3.0 3.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 6.0 6.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 7.0 7.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 15.0 15.1 15.2 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.