The future of Ubuntu

December 16, 2010 at 5:04 pm (FOSS)

This is supposed to be a draft version for Linit 2011

Traditionally Ubuntu has been known for providing the world with a stable, friendly and usable GNU/Linux desktop while Fedora has been known for launching cutting edge technologies which might not be very mature at the point of release. Hence hardcore hackers swear by the likes of Fedora and Debian while casual users loved Ubuntu.

Ubuntu has decided to take a brave leap into the future by replacing two core systems of it’s desktop UI. According to announcements made Ubuntu 11.04 is going to ship with the Unity interface instead of the standard Ubuntu Gnome UI. It is also going to replace the venerated Xorg server display system with Wayland. Lets see what Unity and Wayland are all about.

X server’s most lauded feature is it’s network transparency. This means that you may have a X server running on your local machine and an X client running in a PC in Australia can display its contents over the network. There are several Edubuntu deployments that use this feature. As it turns out though, this feature is not used by most people on a day to day basis. Normally both the X server and the X client run on the same machine. There is substantial overhead to maintain this network transparency which most of us dont really need for the desktop.

When you’re an X server there’s a tremendous amount of functionality that you must support to claim to speak the X protocol, yet nobody will ever use this. For example, core fonts; this is the original font model that was how your got text on the screen for the many first years of X11. This includes code tables, glyph rasterization and caching, XLFDs (seriously, XLFDs!) Also, the entire core rendering API that lets you draw stippled lines, polygons, wide arcs and many more state-of-the-1980s style graphics primitives. For many things we’ve been able to keep the X.org server modern by adding extension such as XRandR, XRender and COMPOSITE and to some extent phase out less useful extension. But we can’t ever get rid of the core rendering API and much other complexity that is rarely used in a modern desktop

X gave programmers a way to display windows and pixels, but it didn’t speak to buttons, menus, scroll bars, or any of the other necessary elements of a graphical user interface. Programmers invented their own. The Motif toolkit was created. It tried to do what Windows had done by assembly code. Only Motif developers decided to do it on top of 2-3 layers of X code. It obviously became very slow.

There are more problems. The X server determines which window the event affects and sends it to the clients that have selected for the event in question on that window. The X server doesn’t actually know how to do this right, since the window location on screen is controlled by the compositor and may be transformed in a number of ways that the X server doesn’t understand (scaled down, rotated, wobbling, etc). The X server doesn’t have the information to decide which window should receive the event, nor can it transform the screen coordinates to window local coordinates. And even though X has handed responsibility for the final painting of the screen to the compositing manager, X still controls the front buffer and modesetting. Most of the complexity that the X server used to handle is now available in the kernel or self contained libraries (KMS, evdev, mesa, fontconfig, freetype, cairo, Qt etc). In general, the X server is now just a middle man that introduces an extra step between applications and the compositor and an extra step between the compositor and the hardware.

Wayland is basically a compositor. A compositor is tasked with drawing different windows together on the screen. It is the task of the compositor to position different windows on the right respective positions on the screen. In this design it is upto the Wayland client (the application) how it wants to render itself. Wayland simply takes that rendered data and puts it on the right place on the screen. Since Wayland is also smart enough to understand window transformations such as scaling, rotating and wobbling it always knows which window to map the input even with. Wayland gives up network transparency features for efficiency and speed which helps it deliver a super-smooth UI experience. Think of it as a  thin layer over the low level 3d graphics hardware which understands modern high level UI technology.

Wayland Architecture

X Architecture

Now lets talk about Unity. Unity is written in a toolkit called Clutter. Other popular UI toolkits are Qt and Gtk. Clutter uses much of the glib functionality. Clutter uses OpenGL for rendering (and optionally OpenGL|ES for use on mobile and embedded platforms), but wraps an easy to use, efficient, flexible API around GL’s complexity. Clutter enforces no particular user interface style, but provides a rich, generic foundation for higher-level toolkits tailored to specific needs.

Putting great design at the heart of the project, Unity and its technologies such as Application indicators, System indicators, and Notify OSD, have strived to solve common problems in the Free Software desktop while optimizing the experience for touch, consistency and collaboration.

Application indicators provide a simple and effective API to provide an application icon in the notification area in the top-right part of the screen, and provide simple, accessible, and complete access to key parts of your application. With bindings for C, Python, and Mono, you can integrate your app into the Unity desktop quickly and easily.

Features:

  • Application indicators are more consistent – no more left and right-click inconsistency. Always left click to see the items.
  • Scrubbing – you can click once on an app indicator and scrub left and right through other indicators with your mouse.
  • More accessible – importantly, scrubbing also applies to the keyboard: this means you could bind a key to the indicator applet, hit that key and then use the arrow keys to navigate through all the indicators.
  • Themable panel icons – you can set a specific icon to be a panel icon for an indicator: this should make it easier for creating single colour panel icons for light and dark themes.
  • KDE/GNOME compatability – KDE applications running in GNOME will have their application notification menus rendered with GTK widgets and vice-versa.

uTouch for future users is two-fold: simplicity of use, and the potential for expressing sophisticated gesture combinations. There are two significant markets out there for touch: every day use, e.g., media applications on tablets, phones, touch-enabled netbooks, etc. And then there are specialty applications like CAD and instrumentation software running on table-top touch surfaces, etc., and these need their touch framework to be highly extensible and ready for anything. uTouch is positioned to address both market segments.

Notify OSD provides a notification system that provides simple and elegant bubbles that can convey different types of information, but are always dismissable by simply moving your mouse over the bubble, to fade it.

Hence Ubuntu has put its money where its mouth is and has decided to push forward with a new paradigm in UI interaction. It strives to achieve super smooth graphics and a desktop where all applications seem to merge into a common user experience guideline conforming to the Unity features. Lets hope the new Ubuntu makes it to the public soon.

 

Resources:

FreeDesktop Website

Unity Ubuntu Project Website

X Disasters webpage

Advertisements

16 Comments

  1. Imric said,

    And no native apps, just an X server on top of Wayland.

    Only RDP-like viewers – once they are coded, that is – so Ubuntu is dumbing-down to the Windows level at least on that score. Why is that bad? 2 users = two instances Wayland with all the overhead. Want to access a graphical app on a server? If it’s Wayland-based, that means Wayland must be running there – with all the associated wasted processing and memory – not to mention the MS-like idiocy of needing a graphics accelerated video card on a server.

    Show me I’m wrong. You can’t. Wayland is a step backward, they are removing features from Ubuntu. This isn’t a ‘brave leap’ it’s a lemming jump.

    • debayan said,

      Well ya. Mark Shuttleworth clearly says that his focus is the desktop UI experience. He is ready to let go of non-single user usage scenarios for this one motive. Ubuntu has always been about the desktop. By the way. Ubuntu server distro sucks anyways. No ones using it on the server. I think what we will see is very clear demarcation of the kind of Linux distros people run on desktops and servers.

      • Ants said,

        You cannot be serious! I work for a major ISP in Australia and I know for a fact 90% of our servers are running Ubuntu Server.

      • Whaa said,

        Oh gosh, lol. ‘Ubuntu server distro sucks’ Where did you get that idea? I can’t think of a single server I’ve come across in last year or two that wasn’t Ubuntu. Actually, yes, two were RedHat. All 200 others were Ubuntu.

    • Jon Smirl said,

      Imric, you are wrong. The largest network transparent app in the world is the World Wide Web. If you want your app to be network transparent, code the UI in HTML5. You will be network transparent onto all operating systems too.

      This works locally. Write your app as a local server process and use a browser for the front-end. Google has Quake running in HTML5 so it can handle any UI you dream up.

      This is not more inefficient than the Xserver. The Xserver is client sever too. It talks over sockets using the X protocol instead of the HTML5 protocol. The architecture is essentially identical.

      You just need to think about app writing differently. Think HTML5 – not QT or GTK. You can develop apps in this model today – no need to wait for Wayland.

    • OSS Coder said,

      You have never programmed X11 if you think it’s the way to go. Seriously, we should get rid of it as soon as possible.

  2. The future of Ubuntu | Ubuntu-News - Your one stop for news about Ubuntu said,

    […] Traditionally Ubuntu has been known for providing the world with a stable, friendly and usable GNU/Linux desktop while Fedora has been known for launching cutting edge technologies which might not be very mature at the point of release. Hence hardcore hackers swear by the likes of Fedora and Debian while casual users loved Ubuntu. More here […]

  3. Anon said,

    “Hence hardcore hackers swear by the likes of Fedora and Debian while casual users loved Ubuntu.”

    Oh FFS, please base yourself on actual facts. Please show me the study that says that. I’m using Linux for as long as can remember for loads of different small, medium and big environments, and have been using Ubuntu Server as the main OS for the last couple of years. So please, cut the crap. Not only casual users love Ubuntu.

    “Ubuntu server distro sucks anyways. No ones using it on the server.”

    Another example of ‘ignorance is bliss’. Like I said, get your facts straight before you rant. Yes, braindead ranted gets you a lot of readers. Great job!

    Thanks.

    • debayan said,

      @Anon I accept I said that without basing it on research. In my experience I have not seen till date an Ubuntu Server deployment. Maybe that is because I am in India and Canonical support program is not that great here.
      When I said hard-core hackers use Fedora more, I meant ‘most’ hackers I know use Fedora + Debian.
      As for getting a lot of readers, I had no idea it would be syndicated to so many websites. But it feels good to get comments from people.

  4. Alwan said,

    Unity uses ‘Compiz’ instead of ‘Clutter ‘ .

    • debayan said,

      @Alwan Yes Indeed 🙂 Read up on it just now.

  5. Andy said,

    The order of your article does not reflect the expected order of reality and you fail to discuss how these changes may or may not affect Ubuntu over the medium term of long term. Your article states that you will explore the “future” of Ubuntu. To do so you discuss the exciting/controversial moves to Wayland and Unity. The order is backwards and is a relatively flat description of what is going to change. Anyone can read Shuttleworth’s blog and learn this much. You should think about the order in which you present this information and consider shortening what you have and include links to the original source material. Then, branch out and consider the potential impact of these changes. This would make for a more interesting article.

    Unity is expected to be delivered to end users in 11.04. In contrast, there is no expected delivery date for a Wayland based Ubuntu. Unfortunately, the order/structure of your article is misleading because it focuses first on Wayland and then on Unity. Good or bad, we will see Unity delivered to end users long before we see Wayland.

    Your article falls flat because after describing Wayland, in some detail you gloss over Unity as though it is an afterthought. Considering when we can expect to see these changes, this emphasis is surprising. Furthermore, you don’t really stop to consider how these changes may impact Ubuntu or Linux. An article called “The Future of Ubuntu” that fails to consider the future of Ubuntu is kinda boring. (No offense)

    You mention some of the controversy with Wayland but you don’t discuss the conflict over Unity. For example – other distros such as Fedora have already announced that they too are looking seriously at delivering Wayland to end users in the next few years. In contrast, the next version of Fedora will use Gnome-Shell (barring some problem with the shell) while Ubuntu will focus on Unity. So, how does this affect Ubuntu? For the past few years – distro reviews have been little more than KDE v. Gnome and my distro is better than your distro nonsense. With Ubuntu taking a very different tack, consumers will have yet another option in the increasingly crowded computer desktop shell space. I suspect we will see increased competition/innovation from both Red Hat and Canonical. In fact, the move to Unity could prove to be more controversial and is certainly more important in the next year or so than any Wayland issues.

    Wayland has been attacked because of it’s lack of network transparency. At this point in time, it is assumed that network access will rely on some soft of VNC/RDP type interface, but this is only an assumption. Someone may come up with something better. Edubuntu has the most to lose in this change and I suspect we may see some interesting new technologies developed to work around Wayland’s current lack of network transparency.

    With the exception of thin client use, such as Edubuntu, etc. I can’t think of many user-cases for X forwarding. I’ve used it a few times to prove that I could do it, but most (90% +) of my server interaction is via the command line, not a GUI. To further add fuel to the fire – you can buy a server today with a discrete graphics card and I suspect this will become increasingly common place in the future. Graphics cards are good for more than simply painting wobbly windows on a cube and are increasingly used for math and science. As the tool kits used to take advantage of this horsepower mature and become easier to use, I think it is only natural that we will see servers shipping with graphics cards either discrete or built into the system as Intel and AMD are doing with their laptops.

    Expand on how these changes will affect Ubuntu. Don’t focus so much on the nuts and bolts. Just link to the implementation details.

    • debayan said,

      @Andy Thanks for taking the pain to write such a lengthy comment. Every thing you have said has been well taken. Will make sure I keep them in mind in the future. Thanks.

  6. renoX said,

    >> As it turns out though, this feature is not used by most people on a day to day basis.<> When you’re an X server there’s a tremendous amount of functionality that you must support to claim to speak the X protocol, yet nobody will ever use this. <<

    If this is really an issue, it is trivial to solve: just increment the protocol version number and remove the support of all these obsolete features.
    If this really simplify the maintenance/implementation of X, then this could be an improvement, yes.

    But I think that a real improvement of Linux's GUI would be to improve the network transparency by merging the various project that exist which allow better remote responsiveness in X not to go the other way..
    Or at least not to use Wayland until it has network transparency at least as good as we have currently.

    • renoX said,

      My post was broken, here is a second try:
      [As it turns out though, this feature(network transparency) is not used by most people on a day to day basis.]

      Well, most people use Windows, does this mean that Ubuntu should try to emulate Windows? I don’t think so..

      [When you’re an X server there’s a tremendous amount of functionality that you must support to claim to speak the X protocol, yet nobody will ever use this]

      f this is really an issue, it is trivial to solve: just increment the protocol version number and remove the support of all these obsolete features.
      If this really simplify the maintenance/implementation of X, then this could be an improvement, yes.

      But I think that a real improvement of Linux’s GUI would be to improve the network transparency by merging the various project that exist which allow better remote responsiveness in X not to go the other way..
      Or at least not to use Wayland until it has network transparency at least as good as we have currently.

  7. syncdram said,

    Well the good news is you don’t have to use Unity when it comes out. Your only a few clicks away from going back to Gnome. On top of that all those whose graphics cards don’t support the requirements default to gnome any way. I can almost guarantee you that once unity is looked at by the general Ubuntu community and see just how ridiculous this gui is we will be reading yet another blog here on linuxtoday on how to be happy again. It will be called “Making the switch back to Ubuntu”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: