"Mir" display server will power phone/tablet/desktop/TV convergence.

The X window system has served numerous Linux- and Unix-based operating systems well over its nearly three decades of life. But Canonical is ready to move on from X, saying a new display server is necessary to power the Unity user interface in Ubuntu as the OS expands from desktops to tablets and phones.

Canonical yesterday unveiled "Mir," which it describes as "a system-level component targeted as a replacement for the X window server system to unlock next-generation user experiences for devices ranging from Linux desktop to mobile devices powered by Ubuntu."

This isn't the first time Canonical has tried to move beyond X. In November 2010, founder Mark Shuttleworth floated plans to replace X with the Wayland display system created in 2008 by a developer who worked for Red Hat.

Ars writer Ryan Paul noted at the time that X, a display server that is responsible for showing graphics and mediating user input, "is included in all mainstream desktop Linux distributions. The problem with this venerable component of the Linux technology stack is that it was created in the '80s and hasn't been able to shed the superfluous accoutrements of yesteryear computing."

Now, Canonical has decided that neither X nor Wayland will meet its needs in creating one version of Unity that can scale from phones to tablets, desktops, and even TVs. Thus, Canonical is building its own replacement.

Canonical's Oliver Ries, head of engineering product strategy, explained the company's thinking in a blog post:

Today Unity (the rendering part of it) runs as a plugin in Compiz which sits on top of X and is a recurring source of frustration on the developer-, design- and finally also on the user side as a lot of our ideas (handling a multi-monitor setup in 12.04 or our plans for menu bars come to mind) require quite some intrusive changes to the underlying system. Regardless of how carefully crafted the solution, it is bending a stack to something that it wasn’t necessarily designed for. Bend over backwards too much and you will fall on your back, bugging users with nasty bugs, regressions, unexpected behavior and plenty more that drives the frustration level up.

While evaluating our options, looking at extending the current stack to our needs, using the Wayland protocol (or any of its implementations) and comparing that with our designs & ideas we concluded that neither approach would allow us to do what we want in the quality that we would like to see for Ubuntu & Unity (at cost and in time).

Plus, there is the rather sizable challenge of pulling Wayland/X onto a mobile device, working with SoCs on driver support, tuning this stack for power consumption and performance and dealing with other issues of a stack that hasn’t been designed for a convergence setup as we envision it. A lot of distraction from the actual goal, to provide an outstanding experience across all the supported devices – from consumer electronics to desktop computing devices to enterprise devices.

The chosen approach was to develop Mir, our own Display Server which is engineered driven by the designs and requirements that our larger vision dictates – no compromises, no crude hacks, fully testable & tested, performance in mind, support for legacy X applications, developed by Ubuntu for Ubuntu.

Canonical also announced that it is moving Unity away from Nux, an OpenGL-based widget toolkit and canvas for creating user interfaces. Nux will be replaced by Qt/QML.

"Driven by Ubuntu Touch we are starting to move Unity over to a Qt/QML based implementation, embracing Qt as a community backed technology for our offerings," Ries wrote. "We are looking at tackling the transition from the Nux based implementation to a Qt/QML based implementation component by component and are striving to do that in a transparent way for the user. This topic is also up for discussion at UDS and we are providing a spec at http://wiki.ubuntu.com/UnityNextSpec."

As for Mir, the new display server is projected to be "completely integrated with the rest of the system to support an Ubuntu Phone product" by October of this year. By April 2014, the goal is to have "complete convergence across the form factors," namely phones, tablets, desktops, and Ubuntu TV.

Canonical demonstrated Mir running as part of Unity on a Nexus 7 tablet and an Ubuntu desktop, as seen today in videos posted by OMGUbuntu. In the desktop demonstration, a voiceover says, "As you can see, it's not actually very interesting because it's exactly the same as regular Unity at the current state in time. It all just works."

119 Reader Comments

Wow. This is a bold move, and one that could have tremendous repercusions in the Linux ecosystem as a whole.

A quick search shows it's only 14K lines of code. In C++. That's compact indeed. It also says it's very much in its infancy (it still requires an X server for things like access rights, and it's not supported on anything other than open source Intel and Radeon drivers), but it's an exciting development nonetheless.

While this is obviously a big challenge for them, I really think this is the right move. I'm slightly more skeptical of their move to Qt/QML though, the combination of GTK/Vala seemed like a better long term strategy.

This was a long time coming. Should have happened a long time ago. Now the only question remains whether Mir is quality and will gain widespread adoptance.

The only problem I can see is that X is legacy software. Linux suffers from something similar to what Microsoft has been dealing with: Figuring out how to move forward while still being tied to having to support legacy software that's decades old.

X has been around since the 80s (as has been said) and is ubiquitous. So this is an uphill battle for them.

As Big and Huge and Crufty as X(11?12?13? what are we on now?) is, the freedesktop/x.org server has done wonders at making it more componentized and portable, and IIRC, they have attempted to support the idea of replacing just 'component y' such as the display server, while maintaining the rest of the stack - to allow for easier testing and migration to 'better' solutions.

That being said - I keep hearing about replacements. And I see them pop up now and then... But have any of them actually caught on? (I mean, I assume for anyone other than ubuntu, you'd probably have to have an X-compatibility layer, otherwise it's NEVER going to catch on.. but ubuntu might be large enough to self-port enough important applications and provide the patches upstream for this to work.. Or, they really are keeping an X-compatible client protocol to allow existing apps to work.)

As Big and Huge and Crufty as X(11?12?13? what are we on now?) is, the freedesktop/x.org server has done wonders at making it more componentized and portable, and IIRC, they have attempted to support the idea of replacing just 'component y' such as the display server, while maintaining the rest of the stack - to allow for easier testing and migration to 'better' solutions.

That being said - I keep hearing about replacements. And I see them pop up now and then... But have any of them actually caught on? (I mean, I assume for anyone other than ubuntu, you'd probably have to have an X-compatibility layer, otherwise it's NEVER going to catch on.. but ubuntu might be large enough to self-port enough important applications and provide the patches upstream for this to work.. Or, they really are keeping an X-compatible client protocol to allow existing apps to work.)

I wonder if they'll do something like what Apple does with OSX, where they use their own display stack but still include an X server for applications that need it.

Ubuntu has Not Invented Here syndrome worse than Microsoft ever did. Don't like the direction Gnome is going in? Better create our own window manager. Don't like the direction systemd is going in? Better create our own init manager. Don't like the direction Wayland is going in? Better create our own display manager. At this rate, they'll be building their own kernel within five years.

That being said - I keep hearing about replacements. And I see them pop up now and then... But have any of them actually caught on? (I mean, I assume for anyone other than ubuntu, you'd probably have to have an X-compatibility layer, otherwise it's NEVER going to catch on.. but ubuntu might be large enough to self-port enough important applications and provide the patches upstream for this to work.. Or, they really are keeping an X-compatible client protocol to allow existing apps to work.)

Wayland (the protocol) and Weston (the reference implementation) has been the primary candidate to replace Xorg/X11. And, Wayland was started by many of the top/main contributors to Xorg (including the ones that helped bring about the Xorg fork of XFree). In the last State of the Xorg report (or whatever the name), while it's not the 'official' stance yet, they're already looking forward to Wayland as the likely future evolution of X.

That being said - I keep hearing about replacements. And I see them pop up now and then... But have any of them actually caught on? (I mean, I assume for anyone other than ubuntu, you'd probably have to have an X-compatibility layer, otherwise it's NEVER going to catch on.. but ubuntu might be large enough to self-port enough important applications and provide the patches upstream for this to work.. Or, they really are keeping an X-compatible client protocol to allow existing apps to work.)

Wayland (the protocol) and Weston (the reference implementation) has been the primary candidate to replace Xorg/X11. And, Wayland was started by many of the top/main contributors to Xorg (including the ones that helped bring about the Xorg fork of XFree). In the last State of the Xorg report (or whatever the name), while it's not the 'official' stance yet, they're already looking forward to Wayland as the likely future evolution of X.

Unfortunately, Canonical didn't even talk to a single Wayland person.

I was wondering why they don't use Wayland. Guess a case of - not invented here - syndrome...

Edit: I am curious what they mean by saying that porting Xorg to moblile is hard. I always thought that Android used at least some of it?

One of the things I always thought was cool about X was that it was designed from the ground up to be remoted (the display is not necessarily on the same box as where the application is running). Running a full desktop on my local machine that is being generated by code running at my university is still cool.

This is entirely different from most modern approaches which simply try to encode a video of the application or desktop screen and ship that across to wherever the display is.

I hope whatever X replacement is finally able to gain some acceptance has the ability to do this in some fashion.

While this is obviously a big challenge for them, I really think this is the right move. I'm slightly more skeptical of their move to Qt/QML though, the combination of GTK/Vala seemed like a better long term strategy.

Ubuntu has Not Invented Here syndrome worse than Microsoft ever did. Don't like the direction Gnome is going in? Better create our own window manager. Don't like the direction systemd is going in? Better create our own init manager. Don't like the direction Wayland is going in? Better create our own display manager. At this rate, they'll be building their own kernel within five years.

Of course, this is totally consistent with the Free Software, Open Source, and general Linux-y way. That's why there are so many distros in the first place. It's not necessarily a bad thing as long as there's a high degree of interoperability.

KitsuneKnight wrote:

Wayland (the protocol) and Weston (the reference implementation) has been the primary candidate to replace Xorg/X11. And, Wayland was started by many of the top/main contributors to Xorg (including the ones that helped bring about the Xorg fork of XFree). In the last State of the Xorg report (or whatever the name), while it's not the 'official' stance yet, they're already looking forward to Wayland as the likely future evolution of X.

Unfortunately, Canonical didn't even talk to a single Wayland person.

Which is weird, since they were talking up Wayland so much in the past. But it looks like they got Mobile-itis in a hurry and decided that creating their own display server would be faster and easier for Canonical than trying to help everybody else by working with the Wayland team. We'll see how far their push goes when it comes to convincing AMD and Nvidia to support it in their binary blobs; if it simply doesn't work on the desktop without the open source drivers (and right now, even the open-source nouveau doesn't work), it's probably not long for this world. Not to mention all the mobile graphics design houses they so desperately need if they're serious about mobile and who might already be eying Wayland as the best way forward for mobile Linux support. They're trying to cram this into the upcoming October release of Ubuntu. Let's hope it's not as disastrous as their other "get it out the door ASAP" bungles.

The only problem I can see is that X is legacy software. Linux suffers from something similar to what Microsoft has been dealing with: Figuring out how to move forward while still being tied to having to support legacy software that's decades old.

X has been around since the 80s (as has been said) and is ubiquitous. So this is an uphill battle for them.

Apple dealt with the same issue—the desire to run X applications—and so included an X server, which runs on top of the native OS X interface. It's far from ideal, as I recall (all X applications go under the same "X11" dock icon, and key bindings still favour Control-... rather than Apple-...) but it works; I don't see why Linux distributions couldn't do something at least as well.

That said, I don't think legacy support is the real issue here: the big problem is that this is all conjecture: the project is a lot closer to nothing than it is to being a viable graphic foundation. The articles about Mir on Phoronix (www.phoronix.com) are great at describing just how little Mir actually is at this point.

It might take off, it might not; it's still far too early to tell (and far, far too early to have posted an article using the present tense "dumps" and "creates" in the title).

One of the things I always thought was cool about X was that it was designed from the ground up to be remoted (the display is not necessarily on the same box as where the application is running). Running a full desktop on my local machine that is being generated by code running at my university is still cool.

This is entirely different from most modern approaches which simply try to encode a video of the application or desktop screen and ship that across to wherever the display is.

I hope whatever X replacement is finally able to gain some acceptance has the ability to do this in some fashion.

Yeah really cool, and basically unusable even at broadband speeds over the Internet for any sort of complex application.

Note the phoronix review and other stories about Mir, which is supposed to be comparable to Wayland in a years time, while Wayland itself has been under development for far longer than that. The only advantage they may have is in pressuring AMD/nVidia and maybe Intel to actually support Mir over Wayland.

The problems Canonical's Mir faces are the same as those facing Wayland. They need to integrate with the major toolkits: Gtk+, Qt, EFL, SDL, etc. They also need to handle applications that are on Gtk+2 or Qt4 (like Firefox, Chrome and OpenOffice/LibreOffice). Not to mention platforms like Wine and DosBox and driver support.

Replacing X11 is a huge undertaking, which is part of the reason why the migration to Wayland is taking so long. Pieces were moving in the right direction -- more of the graphics logic is being handled in the kernel (introducing capabilities like kernal mode setting).

Now, with Mir, Canonical are disturbing that migration. They are solving the same problems Wayland is. However, they are alienating the upstream developers they need to collaborate with to make this work -- especially by including misinformation about Wayland on their rationale page and by not communicating with the people involved with the Wayland migration before this announcement (especially considering that Mir was being developed for just under a year).

They also face a challenge getting Mir support merged upstream when it is only Ubuntu that will be using it -- especially as the toolkits are beginning migration to Wayland and applications to Gtk+3 and Qt5.

Doing this complex a migration is non-trivial and I think Canonical are setting unrealisic expectations -- especially as they have not started the input model yet. Also, I suspect that upstream will reject Mir patches, making their maintenance harder for Canonical.

One of the things I always thought was cool about X was that it was designed from the ground up to be remoted (the display is not necessarily on the same box as where the application is running). Running a full desktop on my local machine that is being generated by code running at my university is still cool.

This is entirely different from most modern approaches which simply try to encode a video of the application or desktop screen and ship that across to wherever the display is.

I hope whatever X replacement is finally able to gain some acceptance has the ability to do this in some fashion.

Except all implementations that create a video stream of the desktop and transport it over the network work better than X at doing what it was designed to do.

But it looks like they got Mobile-itis in a hurry and decided that creating their own display server would be faster and easier for Canonical than trying to help everybody else by working with the Wayland team

Exactly. Plus the Wayland people may not have been as interested in the phone space. Similar interests, but not exactly the same goals.

As KitsuneKnight wrote, a case of NIH syndrome as they didn't even bother actually asking Wayland developers about features or fixes they wanted. The comments in this G+ post describe pretty well the frustration this has caused for develoeprs of Wayland as Canonical couldn't even compare Wayland and Mir correctly, not really a surprise since they didn't even try to communicate with them.

Fragmentation in order to provide different features is completely different and unreasonable compared to creating something out of scratch due to sheer stupidity and ignorance.

One of the things I always thought was cool about X was that it was designed from the ground up to be remoted (the display is not necessarily on the same box as where the application is running). Running a full desktop on my local machine that is being generated by code running at my university is still cool..

Honestly, this is a feature I couldn't give a crap about. If whatever I'm doing on a remote machine can't be done from bash then something is wrong.

I hope that is why it's performing so terribly and the interface looks so bad at that resolution. I could reasonably tie my hands behind my back, close my eyes and use my nose to navigate that interface....

A few weird things here. IIRC, back when they had a fall-back version of Unity it used QT/QML. Then they got rid of that and now there's back to QT/QML? I mean, I'm not a hater - I love QT/QML - I'm a KDE user and also QML is the first time I've ever understood GUI programming.

Since KDE is working on their own tablet, it seems like they would be tailoring QT/QML for tablets and phones (which are, in many ways, tiny tablets). So that seems like a good idea. They might also get to take advantage of some of the work KDE is doing on the tablet, Plasma Active.

But KDE doesn't seem to be having a problem with X on tablets. Not sure why it wouldn't work well on phones. And KDE is doing a lot of work to get KWin ready for Wayland.

Also, Ubuntu seems to hate working with others. The nice thing about Linux is that you can learn one distro and then the basics are the same everywhere else. All the major distros (I know "all" is a loaded and dangerous word) use systemd, network manager, yum or apt-get, etc So it's nice that as you're trying to find the one that works best for you, you don't have to keep learning the basics.

Ubuntu has Not Invented Here syndrome worse than Microsoft ever did. Don't like the direction Gnome is going in? Better create our own window manager. Don't like the direction systemd is going in? Better create our own init manager. Don't like the direction Wayland is going in? Better create our own display manager. At this rate, they'll be building their own kernel within five years.

Well, if they are not happy with the direction those projects have chosen, why should they use them then?

I think there's nothing wrong with Ubuntu trying out their own stuff. If you want the "standard" Linux-stuff, you have plenty of distros to choose from. Why should they all do the same thing? Why not let some try something different? What if Canonical manages to create something really great? Wouldn't we all be better off then?

Edit: I am curious what they mean by saying that porting Xorg to moblile is hard. I always thought that Android used at least some of it?

Nope.. I'm pretty sure there is no X in stock android at all. There's a nice POSIX layer, so command line apps work well, but android uses something called simply "WindowManager", but I don't believe it is at all X compatible.

But it looks like they got Mobile-itis in a hurry and decided that creating their own display server would be faster and easier for Canonical than trying to help everybody else by working with the Wayland team

Exactly. Plus the Wayland people may not have been as interested in the phone space. Similar interests, but not exactly the same goals.

Nokia was doing some of the mobile implementation of Wayland as part of MeeGo (the Qt5 version of MeeGo was supposed to integrate Wayland). So that's over.

Of course, if Wayland is taking so long because it has to integrate with all the desktop frameworks, and Canonical is only supporting two or three on mobile, can Canonical wait for Wayland?

But it looks like they got Mobile-itis in a hurry and decided that creating their own display server would be faster and easier for Canonical than trying to help everybody else by working with the Wayland team

Exactly. Plus the Wayland people may not have been as interested in the phone space. Similar interests, but not exactly the same goals.

Nokia was doing some of the mobile implementation of Wayland as part of MeeGo (the Qt5 version of MeeGo was supposed to integrate Wayland). So that's over.

Of course, if Wayland is taking so long because it has to integrate with all the desktop frameworks, and Canonical is only supporting two or three on mobile, can Canonical wait for Wayland?

Mir will support all devices including laptops, desktops and servers. Canonical have mentioned they intend to support Gtk+3, Qt5 and Firefox (XUL). They are considering SDL (used by games) support. All other platforms and applications will likely run on their X11 to Mir compatibility layer (called XMir).

That being said - I keep hearing about replacements. And I see them pop up now and then... But have any of them actually caught on? (I mean, I assume for anyone other than ubuntu, you'd probably have to have an X-compatibility layer, otherwise it's NEVER going to catch on.. but ubuntu might be large enough to self-port enough important applications and provide the patches upstream for this to work.. Or, they really are keeping an X-compatible client protocol to allow existing apps to work.)

Wayland (the protocol) and Weston (the reference implementation) has been the primary candidate to replace Xorg/X11. And, Wayland was started by many of the top/main contributors to Xorg (including the ones that helped bring about the Xorg fork of XFree). In the last State of the Xorg report (or whatever the name), while it's not the 'official' stance yet, they're already looking forward to Wayland as the likely future evolution of X.

Unfortunately, Canonical didn't even talk to a single Wayland person.

I was wondering why they don't use Wayland. Guess a case of - not invented here - syndrome...

Edit: I am curious what they mean by saying that porting Xorg to moblile is hard. I always thought that Android used at least some of it?

Its my understanding most of the interface of Android is written in Java.

Snate wrote:

I wonder how this will affect Steam for Linux.

Valve designed Steam with Ubuntu in mind to start with but it was using the X window system.

This new user interface will have legacy support and those Valve will adjust. They only have to support X-Window on the LTS support for as long as Ubuntu does.

Which means one of two things will happen.

There will be leagacy support for XWindow within the 2014 version of Ubuntu. This means they can continue to support XWindow for many years to come.

If the new system is easy enough to support they simply port their own application and support two versions.