Finally: Ubuntu Ditches X, Switches to Wayland

Finally. Finally the leader of a major distribution who has the guts to stand up and say what a lot of people have known for a long time, but didn’t dare to say because it usually leads to a storm of criticism. Mark Shuttleworth has announced that Ubuntu will be moving away from X.org, opting to go with Wayland instead.

I’ve said it before, and Iill say it again: for desktop computing, X is a total and utter mess. Layers upon layers of cruft, new features have to be added with ductape and glue, leading to an incredibly slow development pace for an already anachronistic graphics stack.

Ubuntu is the first of the major distributions who has the guts to stand up and say “no more”. Shuttleworth has announced that Ubuntu will switch to the brand-new and modern Wayland display server, maintaining compatibility with X.org by running X.org rootless inside Wayland. This way, the transition to Wayland can be gradual, minimising breakage. The first useful images should appear within a year, with the complete transition expected to take about four years, according to Shuttleworth.

“We don’t believe X is setup to deliver the user experience we want, with super-smooth graphics and effects,” he says, “I understand that it’s *possible* to get amazing results with X, but it’s extremely hard, and isn’t going to get easier. Some of the core goals of X make it harder to achieve these user experiences on X than on native GL, we’re choosing to prioritize the quality of experience over those original values, like network transparency.”

Ubuntu also considered Android’s compositing environment, but it would take too much time and work to adapt the free software stack to that solution. Ubuntu also talked to several providers of proprietary solutions to get them to open up their code, and they even considered writing their own. These options were all discarded in favour of Wayland.

The Wayland architecture is drastically less complex than that of traditional X. Most of the complex stuff the X server used to take care of (things like KMS, evdev, mesa, fontconfig, freetype, cairo, Qt, and so on) is now available in the kernel or in self-contained libraries, which has turned the X server into “just a middle man that introduces an extra step between applications and the compositor and an extra step between the compositor and the hardware”. In Wayland, the display server is the compositor.

This is incredibly good news, and I think it’s both wise and brave for Ubuntu to take this daunting but much-needed step – the announcement alone will increase interest in Wayland, and Canonical, too, will contribute considerable manpower to its development. Hopefully, other distributions will follow in Ubuntu’s footsteps, and we can finally enjoy a modern, fast, and stable graphics stack on Linux.

254 Comments

  1. 2010-11-05 7:24 pm
    • 2010-11-06 11:58 am
      • 2010-11-08 9:17 pm
    • 2010-11-06 1:13 pm
  2. 2010-11-05 7:30 pm
    • 2010-11-05 7:39 pm
      • 2010-11-05 7:46 pm
        • 2010-11-05 8:59 pm
          • 2010-11-07 10:33 pm
      • 2010-11-06 3:10 am
        • 2010-11-07 7:12 am
        • 2010-11-09 7:36 pm
          • 2010-11-09 8:49 pm
      • 2010-11-06 7:19 am
        • 2010-11-07 8:45 am
      • 2010-11-07 10:04 pm
    • 2010-11-05 7:44 pm
      • 2010-11-05 7:56 pm
      • 2010-11-05 9:19 pm
    • 2010-11-05 7:54 pm
      • 2010-11-07 3:36 pm
      • 2010-11-08 1:07 pm
  3. 2010-11-05 7:43 pm
    • 2010-11-05 8:18 pm
  4. 2010-11-05 7:46 pm
    • 2010-11-05 8:52 pm
      • 2010-11-05 9:17 pm
        • 2010-11-05 9:19 pm
    • 2010-11-05 11:51 pm
      • 2010-11-06 12:30 am
        • 2010-11-06 12:53 am
      • 2010-11-06 1:06 am
        • 2010-11-06 1:26 am
          • 2010-11-06 1:57 am
    • 2010-11-06 5:32 am
  5. 2010-11-05 7:49 pm
    • 2010-11-05 7:54 pm
    • 2010-11-06 3:22 am
      • 2010-11-06 3:33 am
        • 2010-11-06 12:04 pm
          • 2010-11-06 5:39 pm
          • 2010-11-06 6:16 pm
          • 2010-11-08 1:16 pm
      • 2010-11-06 8:19 am
        • 2010-11-07 8:06 pm
        • 2010-11-07 11:54 pm
  6. 2010-11-05 7:56 pm
  7. 2010-11-05 7:57 pm
    • 2010-11-05 8:06 pm
      • 2010-11-05 10:22 pm
    • 2010-11-08 7:58 pm
  8. 2010-11-05 7:58 pm
    • 2010-11-05 8:14 pm
      • 2010-11-05 8:45 pm
        • 2010-11-05 8:58 pm
          • 2010-11-05 10:24 pm
      • 2010-11-05 8:50 pm
        • 2010-11-05 10:16 pm
      • 2010-11-07 8:42 pm
        • 2010-11-09 3:02 am
          • 2010-11-09 4:47 am
          • 2010-11-09 8:32 pm
          • 2010-11-09 4:30 pm
          • 2010-11-09 6:48 pm
      • 2010-11-08 12:31 pm
        • 2010-11-08 1:46 pm
          • 2010-11-08 9:33 pm
          • 2010-11-08 9:42 pm
        • 2010-11-08 1:50 pm
          • 2010-11-08 9:26 pm
          • 2010-11-08 9:32 pm
          • 2010-11-08 9:46 pm
          • 2010-11-08 9:40 pm
        • 2010-11-09 12:16 am
      • 2010-11-08 4:01 pm
  9. 2010-11-05 8:01 pm
    • 2010-11-05 8:23 pm
    • 2010-11-06 12:34 am
      • 2010-11-06 11:55 pm
        • 2010-11-06 11:57 pm
    • 2010-11-06 3:10 am
      • 2010-11-06 5:58 am
        • 2010-11-06 7:02 am
        • 2010-11-06 11:48 am
        • 2010-11-07 3:51 pm
          • 2010-11-08 6:27 am
          • 2010-11-08 4:18 pm
          • 2010-11-08 4:33 pm
          • 2010-11-08 4:57 pm
    • 2010-11-08 12:33 pm
  10. 2010-11-05 9:20 pm
    • 2010-11-05 9:53 pm
      • 2010-11-06 1:28 am
        • 2010-11-06 1:49 am
        • 2010-11-06 3:30 am
        • 2010-11-06 2:11 pm
          • 2010-11-06 5:06 pm
        • 2010-11-07 6:01 am
          • 2010-11-08 9:30 pm
          • 2010-11-10 7:36 pm
          • 2010-11-10 8:20 pm
  11. 2010-11-05 11:05 pm
  12. 2010-11-05 11:29 pm
  13. 2010-11-05 11:46 pm
    • 2010-11-07 8:09 pm
  14. 2010-11-06 12:52 am
    • 2010-11-06 12:55 am
      • 2010-11-06 4:40 am
        • 2010-11-06 6:33 am
      • 2010-11-08 4:58 pm
    • 2010-11-06 7:55 am
  15. 2010-11-06 1:16 am
  16. 2010-11-06 1:49 am
    • 2010-11-06 2:17 am
      • 2010-11-06 3:38 am
        • 2010-11-06 3:54 am
        • 2010-11-06 5:18 am
          • 2010-11-06 10:37 am
        • 2010-11-06 5:57 am
      • 2010-11-06 4:05 pm
        • 2010-11-06 4:21 pm
      • 2010-11-07 2:54 am
  17. 2010-11-06 1:56 am
    • 2010-11-06 10:19 pm
      • 2010-11-08 12:37 pm
        • 2010-11-09 10:46 pm
          • 2010-11-10 12:36 pm
  18. 2010-11-06 3:07 am
  19. 2010-11-06 4:31 am
    • 2010-11-06 10:17 pm
      • 2010-11-06 10:30 pm
        • 2010-11-07 1:15 pm
          • 2010-11-07 2:23 pm
          • 2010-11-07 3:00 pm
          • 2010-11-07 4:16 pm
          • 2010-11-07 4:40 pm
          • 2010-11-07 5:37 pm
          • 2010-11-07 6:17 pm
          • 2010-11-07 6:44 pm
          • 2010-11-07 7:01 pm
          • 2010-11-07 7:40 pm
          • 2010-11-07 7:57 pm
          • 2010-11-07 8:53 pm
          • 2010-11-08 4:56 pm
          • 2010-11-08 5:22 pm
          • 2010-11-08 5:45 pm
          • 2010-11-08 5:57 pm
          • 2010-11-08 6:26 pm
          • 2010-11-09 9:07 pm
          • 2010-11-09 11:09 pm
          • 2010-11-10 1:09 pm
          • 2010-11-10 4:29 pm
          • 2010-11-08 3:28 am
      • 2010-11-08 3:53 pm
    • 2010-11-08 1:05 pm
  20. 2010-11-06 7:13 am
  21. 2010-11-06 10:29 am
    • 2010-11-06 5:46 pm
  22. 2010-11-06 1:58 pm
  23. 2010-11-06 3:05 pm
    • 2010-11-06 3:51 pm
      • 2010-11-06 4:12 pm
  24. 2010-11-06 3:15 pm
    • 2010-11-06 5:48 pm
      • 2010-11-06 6:36 pm
        • 2010-11-06 7:52 pm
          • 2010-11-06 7:56 pm
          • 2010-11-06 8:13 pm
          • 2010-11-06 8:37 pm
          • 2010-11-06 9:21 pm
          • 2010-11-07 1:08 am
          • 2010-11-08 5:17 pm
          • 2010-11-08 5:24 pm
          • 2010-11-08 5:59 pm
          • 2010-11-08 6:27 pm
          • 2010-11-09 9:00 pm
  25. 2010-11-06 3:24 pm
  26. 2010-11-06 3:41 pm
  27. 2010-11-06 5:40 pm
  28. 2010-11-06 7:46 pm
  29. 2010-11-06 9:02 pm
    • 2010-11-06 9:14 pm
      • 2010-11-06 11:48 pm
        • 2010-11-06 11:58 pm
        • 2010-11-07 1:10 am
        • 2010-11-07 1:11 am
        • 2010-11-08 5:25 pm
          • 2010-11-08 10:18 pm
    • 2010-11-06 9:17 pm
      • 2010-11-06 11:52 pm
  30. 2010-11-06 9:32 pm
    • 2010-11-06 10:04 pm
      • 2010-11-06 10:59 pm
    • 2010-11-07 1:19 am
  31. 2010-11-06 11:47 pm
    • 2010-11-07 4:16 am
      • 2010-11-07 8:35 am
        • 2010-11-07 12:17 pm
          • 2010-11-07 2:41 pm
    • 2010-11-08 9:36 pm
  32. 2010-11-07 1:52 am
  33. 2010-11-07 11:43 am
    • 2010-11-07 12:28 pm
  34. 2010-11-07 1:25 pm
    • 2010-11-07 2:42 pm
  35. 2010-11-07 7:18 pm
  36. 2010-11-07 10:09 pm
  37. 2010-11-07 10:32 pm
  38. 2010-11-08 1:05 am
  39. 2010-11-08 11:26 am
    • 2010-11-08 9:39 pm
      • 2010-11-08 9:49 pm
  40. 2010-11-08 10:00 pm
    • 2010-11-09 3:28 am
      • 2010-11-09 5:43 am
        • 2010-11-09 9:12 am
          • 2010-11-09 11:05 am
          • 2010-11-09 2:11 pm
          • 2010-11-09 10:06 pm
          • 2010-11-09 10:17 pm
          • 2010-11-09 10:29 pm
          • 2010-11-09 10:47 pm
          • 2010-11-09 10:30 pm
          • 2010-11-09 10:38 pm
          • 2010-11-10 5:11 am
          • 2010-11-10 5:17 am
          • 2010-11-10 8:22 am
          • 2010-11-10 7:26 am
          • 2010-11-10 8:21 am
          • 2010-11-09 4:48 pm
          • 2010-11-09 10:08 pm
          • 2010-11-09 10:18 pm
          • 2010-11-09 10:25 pm
          • 2010-11-09 10:50 pm
          • 2010-11-09 11:16 pm
          • 2010-11-09 11:37 pm
          • 2010-11-09 10:38 pm
          • 2010-11-09 4:45 pm
        • 2010-11-09 4:38 pm
          • 2010-11-09 10:43 pm
          • 2010-11-09 10:54 pm
          • 2010-11-09 11:10 pm
          • 2010-11-09 11:24 pm
  41. 2010-11-09 7:44 am
    • 2010-11-09 4:41 pm
  42. 2010-11-10 4:39 am
    • 2010-11-10 5:11 am
      • 2010-11-10 8:42 am
        • 2010-11-10 9:10 am
          • 2010-11-10 8:33 pm
  43. 2010-11-10 12:54 pm
    • 2010-11-10 10:10 pm