Y Window System Project Started
cuppm writes "Y, Mark Thomas's final year project for his masters degree, is back in active development (outlined here). Here is the email I received: '...Y development is about to start up again. If you are interested in participating, the website is at: http://www.y-windows.org/. There are links to mailing lists there, and you can download the latest development snapshot, which should compile this time :o). I apologise if I did not respond to your email personally. I was on holiday in Japan when the story broke, and by the time I got back I had over 80 emails about the subject, many of them in depth. If you had specific points that you'd like to raise, I suggest re-raising them on the y-devel mailing list.' So for all those who think it's time for a X replacement, here's your shot. And for those X lovers, use Y's extensibility to make it X compatible." See our previous story for more background.
Um... Women don't have a Y chromosome.
I think the renewed interest in Y-Windows may be doe to the licensing concerns about X's new license not being GPL compatible.
I was reading an old book on X Windows the other day and the naming came something like this:
Stanford had an operating system called V where they developed a windowing environment called W. MIT needed such a windowing environment for the Athena project and borrowed the W system from Stanford. They made so many improvements over time that it no longer resembled the W system so they named it the X Windows system. Over time 11 versions were developed as more and more Unix companies got interested. But by then MIT had its needs met so an X Consortium was formed that developed the X11 system from revision 1 to 6 reaching the X11R6 release that we have now.
Try reading for once, GPL version 3 is supposed to take into account the incompatiblities with the new Apache License, and xfree86 4.4 new license. Then again it isn't out yet either.
i thought once I was found, but it was only a dream.
Taken from their site:
About Y
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...
Y was my final year project for my masters degree at the Department of Computing, Imperial College, London. I set out to design and begin the implementation of a modern windowing system. The Y design has the following features:
Network Transparency
Contrary to popular belief, supporting network transparency does not reduce the speed of the window system on local hosts. Further, with Y's in-server knowledge of widgets, applications run over a slow network can appear almost as responsive as local applications (especially when compared to an X application).
Modularity (plug-in style: dynamically unloadable and reloadable)
Unload an old video driver, load a new version. On the fly. No restart in sight.
In-server implementation of widgets
Y specifies a core set of widget classes. Objects of these classes are stored in the server, where they are closer to the user and thus more responsive from the user's point of view.
Consistency and Themeability
Y widgets use the currently loaded theme to render themselves. Since all server widgets are using the same theme, all widgets appear consistent throughout the desktop. Client applications can also use the theme's drawing operations, allowing specialised widgets to make themselves fit in with the look-and-feel.
Support for hardware acceleration
The Y design can make use of hardware acceleration to speed up rendering operations. This can even include the use of 3D-accelerators' textures to draw windows with (someone has already implemented a prototype of this which is very smooth).
Better internationalisation, localisation, and accessiblity
In-server widgets means there can be exactly one current language, one complex input method system for languages that require them, and one set of accessibility features.
Some more information can be found in my individual project report. If you have any more questions, ask them on the appropriate mailing list.
The current implementation is, however, very basic. It needs a lot more work before it will be usable on a day-to-day basis.
This is all taken from the PDF file.
I for one, am all for standardizing a window system. That's not saying that we can't have competiting Window managers, but there is standard of the communication to the windows system. This is (IMO) what is holding back Linux from the desktop.
Every Super Villan uses Linux.
hit #y-windows on irc.freenode.net if you want to chat about Y.
CB
free ipod and free gmail!
Hence XRender and the introduction of a new visual type with an alpha channel done by FreeDesktop.org, both done in a non-crufty way, yet within the confines of the existing X protocol.
DNA just wants to be free...
I'm with you, with this caveat though.
X is not a GUI system. It is a display system. Ratpoison, for instance, requires X to run, since it runs in graphical mode as opposed to text mode, but is not a GUI.
As such replacing X really has nothing to do with replacing your GUI.
There is something to be said, however, for occasionally replacing old, crufty systems with newer shiney ones that work better.
In the case of X though, since it's function is so low level, arguements as to what is meant by "better" abound.
KFG
The new X license has a clause that says that you must attribute the XFree86 team (with some specific language). Essentially, the incompatibility is that the GPL doesn't require that, so you can't take code from XFree and throw it into your GPL'd program. (Similarly, they've never been able to take GPL'd code and put it into XFree86.)
I don't see the big deal, myself -- if you want to use their code, you use their license -- but if people want to get apopletic about it, they're welcome to do so.
How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
From the COPYING file:
The Y communication library and the YC++ library, being the contents of the
libY and libYc++ directories in this archive, are licensed according to the
terms of the GNU Lesser General Public License, contained in the file
COPYING.LGPL.
The yiterm program, being the contents of the clients/yiterm directory in this
archive, are licensed according to the terms of the Common Public License,
contained in the file COPYING.CPL.
The remainder of the files in this archive are, unless otherwise stated in the
file, licensed according to the terms of the GNU General Public License,
contained in the file COPYING.GPL.
(C) 2003 Mark Thomas
Scratched Emulsion
Unless there's some history that I'm unaware of, motif is a widget set that ran on top of X -- analogous to GTK+ or QT. Motif was not under a free license. There is another project, Lesstif, which was supposed to be compatible with motif, while being free -- that may be what you're thinking of.
Of course, at this point, Motif is pretty much dead, at least on the free Unix desktop, because it was succeeded by more technologically advanced widget sets. I don't think that we will see any migration away from X until the alternatives provide a similar jump in technology.
How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
Funny that I should read your post right after opening the Y Windows project report. The very title of the report is "Y: A Successor to the X Windows System"
NO WE BLOODY WELL DON'T!! why dont people RTFM and find out that XFree86 have been writing their own accelerated (yes, 3D as well) drivers for ATI cards since time began... as they release the specs. sure, ati also make their own, but XFree86 also make them. and they also work on FreeBSD. also, incase you didn't notice, the linux kernel even ships with the radeon and ati Direct Rendering Modules.
if i have to point this out ONE MORE TIME on slashdot, i swear to god i'm gonna explode...
i wouldnt think for a minute that binary only drivers would work with Y... but i'd like to hear how different at the level of the source code, the drivers are from teh XFree86 ones... i.e., how hard will it be to port over XFree86 drivers? (assuming no license issues, which there will be since Y windows is GPL)
this is one of the most exciting projects i have ever seen... and it has appeared at JUST the right time with the XFree86 team being assholes, and the FreeDesktop.org guys without a useable server... they are almost on a par.
if someone could make an X11R6 compatibility layer on top of this thing... everyone oculd start using it (once drivers are made) and that is all the encouragement anybody needs to start porting their programs (or toolkits). but porting a toolkit kinda defeats the purpose, as this new implementation is trying to get rid of the need for multiple toolkit.
but to be quite honest, the thing i am most excited about is the license... fully GPL (probably someone will advice them to go LGPL)... which means no more jokes about GNU/Linux needing to be called GNU/XFree86/Linux :-)
X is a single-threaded client/server application which provides windowing services and network transparency.
Since the terms 'client' and 'server' tend to be redefined every year or two by the Xfree team, nobody else really knows which is which any more. X interfaces directly with video drivers and also with the window managers.
The problems are fairly numerous and unfortunately difficult to fix:
Single-threaded X is forced to share its timeslice with every client (?) program, which leads even people like Linus to complain about GUI latencies on 4-way systems with top of the line hardware. Not so cool. Kernel 2.6 contains some hacks to kludge around this problem, but the underlying issue still hasn't (yet) been addressed. Considering Xfree's Design by Committee creed, it never will be fixed. You might say that X is rotten by design. You might more accurately state that X is 1980 technology, and wasn't meant to do the things that modern users expect as a matter of course (eg. 3D low latency, non-stuttering graphics). There isn't an elegant solution aside from ditching X entirely.
From the other end, the Xfree API is a big mess of kludges. Extensions have proven an excellent tactic to obfuscate and uglify code.
just like the humble blood clot... turboporsche@telus.net
If you run 'startY' within X, Y will appear as a Window on X. This is because Y dosent use its own graphics routines, it uses SDL. Hence it will run on any hardware SDL supports. I couldn't get any applications on it to work though :(.
For the umpteenth time, the 'big deal' is that a *ton* of stuff already uses their code, at least in the form of linking to their libraries. A lot of that stuff is GPL, and so can no longer be linked with said libraries and distributed without violating either the GPL or the new XFree license. As a result, we either dump all this GPL code, or we dump XFree 4.4. XFree 4.3 still works well, and is covered by the old license, hence no dumping of GPL code. Which would you choose?
You may ask "what GPL code is so all-fire important?". Well, QT for one (and by extension all of KDE). I'm sure several key components of Gnome as well, though I dunno for sure if the new XFree and the LGPL clash. And once you've eliminated all the window managers (most are GPL), then why do you need XFree86 at all?
You hear a lot of people bitch, but mostly because they do not understand it. People tend to do that. Hell, I did that myself, before people beat some sense into me and made me actually understand the system I was bashing.
X does have some problems. The set of actual problems with X, and the set of perceived problems with X are more or less disjoint.
X is not slow. X is not a memory hog. X's feature set is not outdated. It does, however, have a very weird way of handling color, has some protocol peculiarities, and the default interface library (xlib) makes it hard to write fast apps. Most of these things can be fixed without ditching X. For example, there is an extension called XFixes which fixes certain problems with the protocol. There is a new interface library called XCB which is more "low-level" and makes it easier for toolkit authors to identify potential performance issues. Freedesktop.org's new X server will incorporate compositing and OpenGL-acceleration, to make X competitive with Longhorn, all within the existing X framework!
A deep unwavering belief is a sure sign you're missing something...
I read the posts that say X is slow.
One of the first sections in the original "Y Window System" paper listed the problems with X. It started off with "X is slow." However, it made a very specific allegation. It was not that X is slow per-se, but that it is highly sensitive to latency. Yeah, we all run X11 applications on our local desktop, and they're lightning fast. We can even run X11 applications from machines close by on the LAN. But very few people ever try to run X11 applications across 20 hops of the internet. Unless you have somehow ensured very low latency connections, you're gonna have lag city.
The X Protocol is very verbose. It's one of the reasons that there have been projects to try to compress or otherwise remove redundancy from the protocol. But, at some level, it's the protocol itself which needs rethinking when it comes to speed.
My two cents...
However, I'll demonstrate by answering them.
> X is too slow
On the contrary, I fnd it's quite fast with a good accelerated AGP card. The network transparency is a very nice feature that I use regularly.
The original document outlining Y specifically says that X is fast. Locally. But you try running a very interactive X11 application across a many-hop internet connection with lots of latency and then you'll see just how slow it is.
This is one of the problems with X, that the protocol is very sensitve to latency and is very verbose. Unnecessarily so, IMHO.
Does that mean the speed issues are such that you shouldn't use it on a desktop? Certainly not, as testified by the thousands of people who use it for such every day.
That's why we have things like GTK.
Again, this is addressed directly by the PDF:
> Xfree86 is over 10 years old
So am I. So is UNIX. So are most of the theories in Computer Science. Shound we throw them away?
Of course not. But age can certainly bring problems. Again quoting the PDF:
In summary, X is just fine.
For many purposes, yes. But it's starting to show signs of not being able to cope with what window systems are being asked to do in the last 5 or so years. It's worth revisiting now and again.