We have so many options for window managers, shells, desktop environments, distros, and kernel architectures under Linux, but why after (maybe) 20 years do we only have X.org server (including its predecessor) as the bottom layer of GUI?

I know about XFree86, and Y, but most of them are stuck. Is it so hard to create a new (i.e modern) one? Or is there any other reason we are stuck on X.org?

does directFB supported by GPU manufacturer in order to get hardware acceleration?
–
urayAug 23 '10 at 19:52

DirectFB seems to have hardware acceleration for some embeded SoCs, as well as for some (mainly older) desktop GPUs. Probably mostly 2D & video decoder acceleration.
–
JanCAug 23 '10 at 22:27

DirectFB is pretty awesome, and its perfect for embedded systems. Its the right amount of layer, for very low resource consumption. Wouldn't hurt to really think about hardware utilization, but that's a much bigger problem in general.
–
TechZillaFeb 5 '12 at 21:11

Despite the fact that X.org is 20+ years old, what is it exactly that you need from a windows server that it doesn't provide? You have OpenGL support, anti-aliased fonts, double buffering, spiffy translucent composite windows, hardware-accelerated video playback. You can even play some DirectX games on it with wine if you're into that. What makes an X11 server 'modern' in your opinion?

Writing an X11 server is hard. Developing it and adding features and hacking on top of it for 20 years to keep it relevant is even harder. The barrier of entry for X server programming is high, and I think there are not THAT many people hacking on it. In fact, the crucial point of X.org is the ongoing effort to refactor and modularize the existing code mess into a more manageable infrastructure that will allow for easier development and implementation of new features.

There are occasional discussions of rewriting X.org itself, or inventing an "X12" successor protocol, but these blue-sky projects keep failing. There's just too much inertia behind the way things are currently being done.
–
Warren YoungAug 24 '10 at 10:23

2

what X11 lack of is simplicity, performance, and up to date codes, I can't imagine how the 20 years old codes to cope with current hardware technology, its must full of patch and workaround
–
urayAug 24 '10 at 18:38

X.org is tried and tested. We might see a new paradigm in the X Window Server when quantum computers appear, but there's no point before then ;)
–
invertAug 26 '10 at 13:29

1

An example for lack of "modern" approach, is the non-standard hell that maintaining different language inputs in an X is. It's straightforward to do that in Windows, and there's no way any program would reverse the capslock behavior in Windows. In 2010, this bug happens with X barregren.se/blog/openoffice-reverse-caps-lock
–
Elazar LeibovichAug 26 '10 at 18:31

@Elazar Leibovich: i don't know about that specific bug, but are you sure it's an X issue? i can't see it in the launchpad page... anyway, my point is that, although we agree xorg is a mess, rewriting it would be even messier.
–
axel_cAug 27 '10 at 6:14

Well, there's SVGALib or fbdev, you could build a window manager on top of one of those, if you'd like. I think the existing desktop environments (Gnome/KDE) are built on top of the X.Org programming interfaces, so you'd have quite a bit of work to do to make them work on a different substrate. I've heard that Android uses it's own frame buffer system and doesn't rely on X. Unlike POSIX, there isn't really a portable API for the underlying graphics system, so we all use X by default.

As others have said, Wayland is the main X.org alternative that is currently being developed. Right now, it's nowhere near being usable for normal tasks. However, there have been several exciting new developments.

Earlier today, Kristian Høgsberg (Wayland's author) committed the code changes to Mesa that are necessary to run Wayland to the master Mesa branch (they were previously in his personal repository). This should make it easier to use Wayland, because, eventually, you should be able to use your distro's Mesa package rather than compiling it yourself. (Mesa is by far the largest package that needs to be built to run Wayland.)

Recently, Kristian posted a screenshot of his initial support for using Gtk+ in Wayland: