Slashdot Log In
Wayland, a New X Server For Linux
Posted by
kdawson
on Mon Nov 03, 2008 05:47 PM
from the at-least-it's-not-called-Y dept.
from the at-least-it's-not-called-Y dept.
An anonymous reader writes "Phoronix has a new article out on Wayland: A New X Server For Linux. One of Red Hat's engineers has started writing a new X11 server around today's needs and to eliminate the cruft that has been in this critical piece of free software for more than a decade. This new server is called Wayland and it is designed with newer hardware features like kernel mode-setting and a kernel memory manager for graphics. Wayland is also dramatically simpler to target for in development. A compositing manager is embedded into the Wayland server and ensures 'every frame is perfect' according to the project's leader."
Related Stories
Submission: Wayland: A New X Server For Linux by Anonymous Coward
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
Does this... (Score:5, Interesting)
...spell the death-knell of X-based graphics drivers? Does this mean that such drivers will finally be folded into pure kernel modules with no fancy wrappers required? Does that also mean that we can eliminate X as a dependency for playing video games, and using Linux in multimedia or kiosk environments?
Re:Does this... (Score:5, Funny)
Parent
Re:Does this... (Score:5, Funny)
...year of Linux at last?
This sentence no verb and no desktop.
Parent
Re:Does this... (Score:5, Funny)
Parent
Re:Does this... (Score:5, Insightful)
Man, we really need OSS drivers.
Parent
Re:Does this... (Score:5, Interesting)
Parent
Re:Does this... (Score:5, Informative)
I don't understand why you were modded down, when you are technically correct: nVidia's driver stack simply doesn't use most of X.org's API/ABI. There are actually bits and pieces of X that we'd like to deprecate, but we can't because the nVidia blobs need them in order to do their thing.
Parent
this has stumped me for years (Score:5, Interesting)
We went through the same thing when switching to X.org from XFree86. When will nVidia support it? When will ATi support it? When will my driver be ported?
Why is X dealing directly with the drivers anyway? Why isn't there a thin graphics layer in Linux, like a framebuffer that supports acceleration? Write X to that. Then you can switch your X or use whatever GUI you want and you hardware still works. Freedom to choose, right? The mantra of Open Source?
I remember a bunch of very promising GUIs coming up in the early 2000s that really struggled without enough drivers. "The source is open, just port the thousands of drivers!" yeah sure.
Parent
Re:this has stumped me for years (Score:5, Informative)
``Why is X dealing directly with the drivers anyway? Why isn't there a thin graphics layer in Linux''
Don't forget that Linux is not the only game in town. X.org suppors Linux, but it also supports FreeBSD, NetBSD, OpenBSD, Solaris, UnixWare, LynxOS and HURD. I think there are actually more, but those are the ones listed in the manpage.
If we do as you propose and make the operating system kernel supply the drivers, drivers would have to be written for all those 7 kernels, instead of just once for X.org. What we have now is exactly how I like things to be: a common driver API across operating systems, so that drivers need be written only once.
Parent
Re:Does this... (Score:5, Insightful)
Parent
get bent (Score:5, Interesting)
a single distro gaining popularity will be instrumental for standardizing what is expected of Linux for introduction into a larger market
the flaws in your biased & self interested statement are manifest. manifest and hilarious.
first off, i dont see what advantage linux has by gaining a larger market. will these corporate interest invest time and code into linux? will they provide free support to end users? will the people joining your standardized Linux gain anything from the homogenized OS they've switched to?
second, how will standardization improve linux's marketability? to what extend to we enforce homogenization? do we enforce a single wm on all users? do we enforce a single office suite? a single programming language?
third, how do you plan to tell everyone they must work on the same thing? do you think everyone will willingly conform to the standard patterns you wish to impose and stop working on the things they think are cool?
Linux's only strength is that it grants developers an open environment to develop novel new things. all I see in your desire is a self interested bid to crush out the free spirited developer spirit and to replace it with something tooled to replace commercial operating systems with something free, for your own good. honestly I dont think you or your desires contribute anything useful to the linux community, in fact I think the desire to make Linux conform to the expectations of the "typical" desktop has been the worst mistake the Linux movement.
Parent
Re:Does this... (Score:5, Funny)
Getting it into the Ubuntu repos probably wouldn't hurt, either. (Sad that a single distro can have that much influence)
Wow. The Economy must be bad! People are getting their Ubuntus repossessed!
Parent
Re:Does this... (Score:5, Insightful)
Parent
Re:Does this... (Score:5, Interesting)
But if you're going to "get rid of the cruft", doesn't that suggest that you'd want to move to an architecture that depends on the kernel's graphics subsystem rather than maintaining a zoo of obsolete usermode drivers?
Hardware is the purview of the kernel. Or at least the Hardware Abstraction Layer. (Depending upon your OS's architecture.) Today's X servers still support all kinds of usermode drivers, just so that 95% of configurations can thunk it all to the kernel. Thus there doesn't seem to be much point in providing the graphics drivers in the X server. Better to let the kernel do its job while the X server does its job of drawing the GUI through interpreting a series of abstract commands.
As a bonus, the graphical system becomes available to a variety of programs that desire low-level access to the graphics card rather than running an X server.
Perhaps I'm being naive, but why wouldn't a clean separation between the graphics system and the kernel drivers be an advantageous goal?
Parent
Re:Does this... (Score:5, Informative)
Kernel modesetting is a good thing, but there is no need to put the drivers into the kernel. KMS gets you lots of good things: BSoD (much better than the display freezing with no error message), flicker-free boot, and X could be moved away from needing to run as root.
As far as the drivers themselves, the best thing for them will be the move to the Gallium3D driver model, which will greatly reduce the amount and complexity of code needed to write a new driver. [1][2][3]
Keith Packard talks in his blog [4] about kernel mode drivers, but this seems to be KMS + memory management (GEM or TTM), not having, say, the entire Radeon driver in kernel. I guess it depends on how you define drivers. or maybe the difference between classic 2d drivers and DRM drivers (I have never figured out the details of that)?
>Today's X servers still support all kinds of usermode drivers, just so that 95% of configurations can thunk it all to the kernel.
All X drivers are usermode. There are graphics drivers that are in the kernel (fbdev), but these are unrelated to X.
Note: I am not a X dev or even a real programmer, but I follow X blogs, mailing lists, etc, and I try to learn as much as possible about X. If I am wrong about anything here, please correct me!
[1] http://www.tungstengraphics.com/wiki/index.php/Gallium3D [tungstengraphics.com]
[2] http://akademy.kde.org/conference/presentation/9.php [kde.org]
[3] http://zrusin.blogspot.com/search/label/Gallium3D [blogspot.com]
[4] http://keithp.com/blogs/kernel-mode-drivers/ [keithp.com]
Parent
Re:Does this... (Score:5, Interesting)
Microsoft moved the ENTIRE graphical subsystem to the kernel. Which made things faster, but did make them less stable and less secure. (Sun also had an option to take this route in Solaris.) This would be like taking the entire X server and cramming it down into the kernel.
I'm not suggesting anything quite so extreme. Rather, I'm talking about leaving device control in the hands of the device manager (i.e. the kernel or the HAL) and having the X server access the device through a standard driver interface. Much like audio, mouse, keyboard, networking, and storage are all handled by the kernel.
FWIW, Microsoft left the graphics in the kernel. They did add some extra checks to stabilize it, but we're all living with those kernel graphics today.
Parent
Re:Does this... (Score:5, Informative)
No, Vista removed the most complex bits of drivers from the kernel space. In essence, Vista kernel now controls modesetting, command submission, memory allocation and GPU scheduling. Also, some legacy graphics functions and some parts of USER subsystem remain in the kernel, but by now they are very well debugged and stable.
The rest (like compiling shaders and window compositing) is done in user-space.
X.org actually slowly moves to this model.
Parent
Its good to see Red Hat developers doing this (Score:5, Interesting)
While I'm a firm believer in "If it ain't broke, don't fix it", I think it is good to see Red Hat developers (or any developers) looking to future needs and being allowed to devote development time towards those needs.
Xorg isn't broken for most users right now, but planning and creating alternatives is a good idea.
What's wrong with X... (Score:5, Interesting)
Xorg isn't broken for most users right now, but planning and creating alternatives is a good idea.
In a sense I think it really is... Admittedly, not necessarily in a way that everybody would notice, as you said - but still...
What X is good at, basically, is putting simple UIs over a network. For instance, I can run XEmacs remotely over the internet, and performance is decent.
Presently, this feature of X is being under-utilized. We're using a network-transparent protocol for the display server, but most people aren't running apps from remote hosts, and applications aren't being written with this in mind.
Basically, for all the overhead associated with something like X to be worthwhile then one of a few possible conditions must be satisfied. Either applications must be designed such that they work efficiently over the network with the present limitations in the display protocol, or the display protocol must be enhanced or altered such that today's applications can run reasonably well over a network link.
Running X apps over an internet link versus a LAN is an extreme case, admittedly - but nevertheless, an old Athena app can do it, while the simplest of GTK or QT apps can have a real problem with it...
Parent
Re:Its good to see Red Hat developers doing this (Score:5, Funny)
We're talking about X. You seem to have wandered onto some other topic. ;)
Parent
Re:Its good to see Red Hat developers doing this (Score:5, Funny)
Poor analogy, you can still use your buggy whip on your bicycle (especially tandem bicycles).
Parent
There is alreeady a brainstorm... (Score:5, Interesting)
For including Wayland in Ubuntu:
http://brainstorm.ubuntu.com/idea/15205/ [ubuntu.com]
HELL yes. (Score:5, Interesting)
eliminate the cruft
ABOUT F'ING TIME.
X has been a case study in How Not to Write Software for twenty years now. Once upon a time, it was a pretty cool experimental software project. But for twenty years now, there have been exactly two kinds of X development:
A) Throw a layer on top of it to make it useable for normal people
B) Throw another driver underneath it to make it just barely work on your particular hardware.
Project A is fine until someone has to get beyond your little layer, in which case it's .xinitrc hell. Project B is just treading water, postponing the day that we all realize this indispensable software tool is a gigantic house of cards headed for collapse.
Probably some XFree86 dudes are reading this. Let me just tell you I appreciate your diligence in the nightmare of a job you've set yourself to, but the time has come. Take off and nuke the site from orbit. It's the only way to be sure.
Re:HELL yes. (Score:5, Insightful)
What in the world does the X11 rendering engine have to do with "useable for normal people" or the "xinitrc"?
X11, and by extension, the X server, is a layer whose job is to put stuff on screen. That means dealing with the wibbly bits (mice, keyboards, displays, video cards, tablets, pedals, etc.) that cause the stuff on screen to be displayed or interact with the stuff on screen.
Furthermore, it's not like people haven't been modifying how the bits in between your "Project A" and "Project B" work, either. See xrandr 1.2 and 1.3, for example, as well as the countless other projects working on this very part of X11.
That's not to say there aren't problems with X11 and the various implementations of the X server, but it'd help to at least have studied what's actually going on before attacking the work of those who are actually doing the work.
Parent
Re:HELL yes. (Score:5, Interesting)
Fun fact: Every single bit of development put into X.org since the big fork has been undoing the mistakes committed during the XFree86 years. Making X modular, reworking font handling, introducing EXA, crafting AIGLX, even kernel mode-setting, all of these are undoing bad things from the past.
KRH, who's been writing Wayland, also is responsible for parts of GEM, RGBA OpenGL visuals, and other GLX improvements. Neither he, nor any of us, are planning to just abandon code that's still viable. Tender love and care goes a long way with bit-rotted code.
Parent
Wayland-Yutani (Score:5, Funny)
Y windows; drivers (Score:5, Insightful)
There's another project called Y Windows [y-windows.org], which also aims to replace X with something that has less historical cruft.
The real question in my mind is whether this kind of thing does anything to address the big problems users are really encountering. Of course, not every open source project has to make large numbers of users happier. But the author of Y Windows says, for example, "I've got tired with the state of desktop GNU/Linux. Most of the problems that I see with it can be traced back to the underlying window system, X. So I decided to write its successor... "
For me as an end-user, the big issues are simply hassles with xorg not correctly recognizing LCD screens, so that it sets them to an inappropriate resolution, or the image appears offset. I have close to zero interest in gaming, so personally I just use the onboard video of my mobo, with only 2-d driver features, but the impression I get from people who do care about gaming (or fancy WMs) is that the big issue is drivers, not the internal structure of X.
As far as programming, the structure of X also seems like kind of a non-issue. Sure, X's APIs are heinously ugly, but almost nobody uses them directly.
The advantages listed by the article are things like a more manageable code base, a smaller memory footprint, and elimination of rendering artifacts. To me, none of those seem like major issues that I was all that worried about.
Re:Y windows; drivers (Score:5, Informative)
I remember when Y windows was slashdotted in Feb 2004. It sounded pretty interesting. Unfortunately, it also looks like there hasn't been a single news item on their web site since Feb 2004, and their "community wiki" link points to a domain-squatter-ad-site. Also, the downloads match the version announced in 2004.
It's dead, Jim.
Parent
Article misunderstands concept? (Score:5, Interesting)
The article describes this as a "new X server". However it quotes the author of said program pretty much implying this is some kind of a new, non-X video interface. He talks about "porting" GTK+ from X, and about writing native applications for it and a "new, rootless X server" in order to be able to run X apps. All things that would not be necessary if this were an X server.
In other words, this is not an X server.
Canonical (Score:5, Interesting)
Shuttleworth said he is going to pay devs to work on major upstream projects. He should focus on this. For one, it would affect both KDE and Gnome users, and it would solve a major problem with Linux. If he really wants Linux to compete with OS X in terms of interface, he should focus on the X Server first.
That being said, I hope Novell chips in some dev support, and that the KDE, Gnome, QT and GTK+ devs all chime on what they'd like to see changed.
X11 - The X Windowing System (Score:5, Insightful)
I hear a lot of (I bet) young people clamoring for X to die, and that would somehow improve Linux or Unix.
X does not need and should not be allowed to die. Sadly X11 is probably one of the coolest pieces of misunderstood software on the planet. It is a bit dated and it does need a code cleanup/refactor, but because of proper design, that can happen without breaking the system.
To those who have *no* understanding of X, they should try this:
ssh -XC some_linux_machine
eyes
What happens is that the "display" is a network device. Windows terminal server and citrix, even today, can't easily separate application from display. X has had it for years. It isn't an afterthought requiring drivers to probe and figure out what got changed on the display surface and send a block over the network (like citrix and VNC), no the display is rendered over the network.
X11, IMHO, is one of those hidden jewels in Unix that don't quite get. They focus on trying to make it like Windows or be a gaming platform, but UNIX is a "productivity" platform.
Like I said, I'm all for refactoring, cleanup, cruft-removal, etc. to the codebase, but keep X11.
Re:X11 - The X Windowing System (Score:5, Insightful)
Parent
Syncing to vblank? (Score:5, Insightful)
At the same time, I'm trying to fix some of the problems with composite that we still have in the X server; input redirection, window resizing, syncing to vblank, throttling of animations and atomic, consistent redrawing.
That feature alone would make this rewrite worthwhile. This has been missing from our desktops for far too long.
Re:Been done (and failed) like a million times? (Score:4, Informative)
Uh, what else? None of these have replaced the X11 standard.
True, but this isn't aiming to replace the X11 standard for all purposes, at least not for the moment. The article/interview seems to make it clear that the goal is to do lightweight sorts of things - login managers and screen savers first, remote desktop access later - that don't have necessarily complicated needs beyond being able to fire up quickly, not take up that much space, and hopefully look nice in the process.
This isn't the New Linux Desktop. (unless it is.)
Parent
Re:Been done (and failed) like a million times? (Score:5, Informative)
If I understand the article correctly, this is a new X server, not a new API or protocol. Programs would still compile against XLib and still access the server through TCP/IP or unix sockets. The only difference is that the rendering engine that interprets those commands has been swapped out.
OS X *is* NeXT. So I'd say that "that stuff" went to good use.
Not sure what you're referring to. But BeOS was awesome. Especially when it came to multimedia.
LFB is a pretty standard module in Linux these days. It's why Linux can boot with fancy graphical screens rather than staring at boring off-white text.
OpenGL is a standard part of modern X servers. Are you perhaps thinking of Project Looking Glass? That was an attempt at creating a new window manager rather than a new API. It's still under development, but it's coming along at Enlightenment speeds. Its development should not be impacted by a new X server.
I don't think that most of them were trying to.
Parent
Re:Been done (and failed) like a million times? (Score:5, Insightful)
Parent
X11 has replaced the X11 standard... (Score:4, Informative)
None of these have replaced the X11 standard.
X11 in 2008 is a lot different from X11 in 1998. Much of the X11 API is never used, and therefore you can get away with making a much simpler X-server which only supports the new calls. It won't run very old programs without some sort of compatibility box, but those are fairly rare.
Parent
Re:Thank you! (Score:5, Insightful)
Thank you sweet Jesus! Finally somebody is doing something that should have been done looooong time ago!
People have been doing bits and pieces of it for a long time. Client-side font handling, client-side rendering in general, kernel mode setting... Without those things, this project would be a lot larger.
This is quite typical of free software by the way: A lot of things are quietly replaced and enhanced without anyone noticing, and suddenly someone uses all the changed bits to create something radically new.
Parent
Re:Thank you! (Score:5, Insightful)
Parent
Re:Thank you! (Score:5, Insightful)
X is an application. *And* a server. On OS X as well. And under *nix, and even under Windows (when you add an X server to it.)
X's architecture works pretty well for what it was written to do. It was written in a time when lots of people used wimpy X terminals and did their work on a shared beefy central server.
VNC might be more of the architecture you're referring to?
Parent
Re:Thank you! (Score:5, Informative)
Parent
Re:Thank you! (Score:5, Insightful)
Parent
Re:Thank you! (Score:5, Informative)
X does not *have* to run the graphics ... just because Xorg/Xfree86 and just X before that (usually?) worked that way, that doesn't mean it's the only way it can be done. Counter-examples include X on OS X (yes, I know, it was mentioned), X on Windows, and even things like Xvnc, Xvfb and Xnest.
Just because YOUR X server also manages the graphics hardware, that doesn't mean that's an X thing -- it just means it's something else that YOUR X server does. Others may not.
FishWithAHammer was just not very clear.
Parent
Re:Thank you! (Score:5, Insightful)
I use X on 32 and 64 bit versions of both OpenBSD and Ubuntu Linux and can't recall it crashing on my anytime in the recent past. Certainly not "all the time" in my experience.
Parent
NeWS was good and bad (Score:5, Interesting)
When it was good, it was very very good, but when it was bad, well, it was a windowing system written in Postscript that let you pass pieces of Postscript code back and forth between client and server to get things done, which could be appallingly insecure and buggy. (The fix for this was that Gosling later wrote Java with things he'd learned from NeWS.) (Postscript is essentially FORTH souped up with font knowledge, but it's good enough to handle objects in.)
Postscript means that WYSIWYG, really, rendered however you'd like. The terminal emulator, for instance, used Postscript, rendered at screen resolutions, and if you needed to print it, it rendered them at printer resolutions, or if you iconized a terminal window, that just set to font size to 1 point / 1 pixel, and you could still see any interactions happening in the icon. My boss was around 60, and constantly switching pairs of glasses if he needed to talk to somebody and also read his computer screen. We set his psterm default to 24-point font, and everything was Just Bigger, and he could just read it without messing around. Mouse tracking worked well, because you could make the tracking happen down in the server without the extra round-trip to the client, so if you had a slow network connection it was ok - you were passing data across the link, not pictures of the mouse, etc.
Parent
Re:Notes for the Uninformed (Score:5, Insightful)
It's rarely discussed because it's extremely slow. Even on low resolutions it takes an absurd amount of CPU power and latency. On high resolutions it's like a slide show with an awkward guest speaker. There's a reason we have hardware acceleration even for 2D.
Parent
Re:But does it run... (Score:5, Funny)
http://maemo.org/maemo_training_material/maemo4.x/html/maemo_Getting_Started/images/captures/xephyr_empty.png [maemo.org]
Parent
Re:Finally? (Score:5, Informative)
You don't know what you're talking about. When not using network transparency, X.org uses unix domain sockets which are very fast. Given that you've got to do IPC somehow, and a well designed protocol will work just as well over TCP sockets as unix sockets, you basically get network transparency for free.
Parent
Re:Finally? (Score:5, Informative)
All folks who claim that X's problems lay in it's *ability* to use clients over a network are 17 years late. I.e., they have no clue at all. There are problems with X, but they are elsewhere.
Parent
Re:Network Transparency? (Score:5, Informative)
1) NO ONE programs with xlib.
2) X doesn't "suffer" from being network transparent from the point of view of the user.
I don't even want to think about setting up some kludge like VNC to deal with a future Unix GUI subsystem that isn't network aware.
With X, I can just treat a network of machines like one big hive mind. Just make sure to set $DISPLAY.
Parent