09 July, 2014

Project Ozone: Google's Mir?

It's July 9, 2014. Here I am, doing my usual decipherment of open source Chromium code in an attempt to find out how many new features the Chrome team has up its Athena sleeve. The journey started ― naturally ― with the Athena source tree. From there, after seeing a chrome.shell API that Athena appears to be implementing, it moved on to the shell tree, where I then found out about some Aura code serving as a kind of back-end for some of those features. When I got there ― to the UI code ― another project, being indicated in code comments as something VERY significant, really caught my eye: Ozone.

Why is Project Ozone so significant? Let's start with the context it was referred to in: as some kind of separate platform. To be even more precise, X11 and Ozone were being referred to in the same context. Snooping through its code revealed some more details. Most notably, there's mention of cursor factories, event factories, native pixmaps (!), display mode proxies, display snapshot proxies, display management, GPU management, oh, yeah, and input device management. These are ALL features typical of not just window managers (like Athena, Ash, Mutter, and Compiz), or widget toolkits (like Aura, Qt, and GTK+). No, these are features of full-fledged display servers like X11, Wayland, and Mir.

Could this mean Google is actually taking something from Canonical's playbook here when it comes to mobile/desktop convergence? Well, let's start with I/O: there was definitely some tight Android/Chrome OS integration demoed there, starting with notifications and making it all the way to, oh, yeah, Android apps running natively on a Chromebook. For now, it's mere integration/continuity between the platforms... but yeah, it's also the start of a long road to complete convergence. As the Ubuntu team noted, X11 is a kind of roadblock to that. Why? Because, well, it is way too bloated with legacy code (due to its age) to run on mobile devices easily, which is clearly why it's stuck on the desktop. So, with that in mind, to get something on both the desktop and mobile devices simultaneously, sleeker, slimmer, less bloated, oh, yeah, and more modern, natively-accelerated display servers are needed.

That's why Canonical started working on Mir in the first place: X was clearly too old. It had 30 years worth of code piled up, which IMHO is way too much to work well on mobile. At the same time, Wayland was too ahead of its time. It depended on the GPU so much that a lot of older computing devices without powerful GPUs are often left in the dust by it. Thus, Mir was born. It's compatible with both accelerated and non-accelerated hardware, and at the same time, is far less bloated than X is. It appears Project Ozone serves a very similar purpose for Google that Mir serves for Canonical: one display server across all mobile and desktop devices, Chrome and Android alike.

If the ability to run Android apps natively on a Chromebook is actually truly seamless and not just some clever Google Cast mirroring, well, then Athena, Ares, and finally Ozone could all be catalysts for complete Ubuntu-style convergence between the two platforms. That probably won't happen until 2015 at the least... ah, but given all that's been revealed now, not to mention all that we'll be seeing this fall, only time will tell.