There is a brand new version of the Unix windowing system, XFree86 4.2, available for download. This is mostly a bug fixed release, no major new features were introduced. Our Take: XFree does the job just right when it comes to serve just what it was designed to do back in the ’80s: provide a windowing system to a Unix workstation or server. But these days, everyone seems so busy trying to shapeshift X11 with themes or funky window managers and squeeze its architecture and code hard to push it to perform adequate with 3D games. But X was not designed for all that. Proof of that is the fact that X is not as smooth as MacOSX’s Aqua or BeOS is, is not multithreading, it does not have good response times or latencies, it does not support font antialias correctly, no double buffering, and even 3D gaming support is a hack. Should X be pushed to do things it was not designed to do, or should it be re-implemented in such a way that it features all the latest tech gizmos, but in a more “natural” way that it also stays compatible with most of today’s X applications? Discuss.
Well there is the frame buffer.
http://www.directfb.org/
But I don’t think X is going to go away for a very long time.
I wonder if Hopkins “The X-Windows Disaster (or How to make a 50-MIPS Workstation Run Like a 4.77MHz IBM PC)” is still true 8 years after. (http://catalog.com/hopkins/unix-haters/x-windows/disaster.html)
Actual or not, I’ve read it a pair of times and still amuses me anyway:
<<If the designers of X-Windows built cars, there would be
no fewer than five steering wheels hidden about the cockpit, none of which
followed the same principles — but you’d be able to shift gears with your
car stereo. Useful feature, that.
– Marus J. Ranum, Digital Equipment Corporation>>
I have learned to accept this “computer virus” and simply try to stay away, most slackers absolutely adore its “complexity”, check out slash:
<<Compiling and installing Xfree is difficult.
People constantly complain about X needing to be replaced. While there are real problems with Xfree, most of the stuff that people complain about to slashdot is complete crap.
To me this suggests that Xfree needs to concentrate on their PR skills. Xfree guys need to make development easier for newbies. Key developers need to have more interviews. They need to prove that developing X is just as cool as developing the kernel. There need to be more frequent updates–posted to linuxtoday hopefully.>>
Insightful one:
<<I think we have had our share of this discussion.. =)[good start]
But what the hell, let’s do it again!
The power of X11 is in it’s extensibility, XRENDER was added and traparency & antialization is now possible, Even over network, any network. TrueType fonts were needed and were added. XFree86 even had sub-pixel antialization before Windows ever had (those loonies just forgot to mention it anywhere).
X11 is perfect example of OO separation between different tasks. Server does drawing and client does it’s own things. And message passing comes ‘builtin’.
So what is really wrong with X11? You tell me.>>
It’s hard to accept but…THEY LOVE IT.
Don’t be fooled! Just say no to X.
X-Windows: …A mistake carried out to perfection.X-Windows: …Dissatisfaction guaranteed.X-Windows: …Don’t get frustrated without it.X-Windows: …Even your dog won’t like it.X-Windows: …Flaky and built to stay that way.X-Windows: …Complex nonsolutions to simple nonproblems.X-Windows: …Flawed beyond belief.X-Windows: …Form follows malfunction.X-Windows: …Garbage at your fingertips.X-Windows: …Ignorance is our most important resource.
X-Windows: …It could be worse, but it’ll take time.X-Windows: …It could happen to you.X-Windows: …Japan’s secret weapon.X-Windows: …Let it get in *your* way.X-Windows: …Live the nightmare.X-Windows: …More than enough rope.X- Windows: …Never had it, never will.X-Windows: …No hardware is safe.
X-Windows: …Power tools for power fools.X-Windows: …Putting new limits on productivity.X-Windows: …Simplicity made complex.X-Windows: …The cutting edge of obsolescence.X-Windows: …The art of incompetence.X-Windows: …The defacto substandard.X-Windows: …The first fully modular software disaster.
X-Windows: …The joke that kills.X-Windows: …The problem for your problem.
X-Windows: …There’s got to be a better way.X-Windows: …Warn your friends about it.X-Windows: …You’d better sit down.X-Windows: …You’ll envy the dead.
Are we getting an Aunt Tillie version yet?
Ok so we have tons of Apps that run on X, and a lot of people are happy with X. But the fact is Linux + X = LAG!! It bogs down the system and limits the capabilities of Linux. A OS like Linux with the User base it has should be far more advanced than it is.
Throw X out or atleast make something compatible that performs a lot better.
if you throw out X you’re throwing out just about every graphical app for linux, might as well start over with a new kernel at that point. Lets not throw the baby out with the bathwater. X does it’s job pretty well all things considered.
You can’t compare X to a direct framebuffer display since X never ever had the intention to export a general frame buffer interface. Besides, X is a lot more flexible than any frame buffer interface since the X “opcodes” or better yet, the XRender “opcodes” are not dependant on the hardware. Line drawing, alpha chanels, circles, blitting and so on can all be accelerated if needed to be and not accelerated if there is no support.
The biggest problem with X is the windowmanager. As a stand alone application you actually need to have at least two processes talking to the X server when a window is moved instead of one as it should be. If you then add to that slow performance of some windowmanagers you get really awful update rates on moving windows and such.
X-Windows serves every graphical app available for Linux at the momement and to replace it would mean a lot of people having to rewrite code. A new project would have to have a WINE style layer to translate X calls to the new window system calls. Then just promote the new windowing system to developers.
In fact, thats not a bad idea.
X-Windows is Ok, let XRender and DRI develop a bit more… I fell quite confortable with e16 and Xfree4.1.0DRI,
BTW MacOSX looks better thanks to Quartz not Aqua (that I simply hate for his white dominance) I know that GNUstep has something similar..
unix was never meant to be a gaming os and it shouldn’t turn into one.
Wow, full on Eugenia rant in that “article” Stating your opinion and then writing “Discuss” is a bit childish (more like Slashdot than OSAlert of old IMHO)
So, yes X was “designed” to have external window managers, that’s why it has no built-in Policy, something slowly being copied in WinXP and OS X. Yes, it was “designed” to be themed, the old classic “Athena” widget toolkit can be themed, just like that brand new “WinXP” operating system.
What’s more the X widget toolkits for the most part are user friendly, rather than user hostile, because they let the USER choose to override fonts, layout, widget struture and thus make the software useful for their circumstances, rather than giving all this power solely to crazy UI programmers (no more purple & orange Win32 apps, I beg of you).
Latency and performance is dependent on your implementation (XFree is competent but hardly a stand out) and the availability of appropriate acceleration. Note that the hardware most commonly in use was 100% designed to accelerate Win32 GDI code, not X. Assuming that the abstraction in the design is at fault would suggest that Quartz should be a complete DOG. So, is it? (Honestly a question, I’ve never written code for Quartz) Should OS X users throw out Quartz Eugenia?
Most desktop Unix systems don’t apply foreground priority boost to X and X applications, so it’s unfair to compare BeOS in this respect anyway. Maybe more Linux distributions should provide such a boost and see if it helps.
Describing GLX and DRI as “a hack” is to put down people who implemented a much cleaner design than “DirectX” with very limited resources. The original GLX design is still a wonder to behold, and I for one think it’s fantastic that it was possible to even approach it with consumer hardware. The nVidia drivers show that GLX (but not necessarily DRI) can pass Windows with its foot flat on the floor.
(Still an X fan, despite agreeing with some Unix Hater criticisms)
well, I’ve been in the unix world for a while, and I soon hated X.
So ooked for something else, and I found:
-berlin (a big project, but where is it going?)
-Ywindows (maybe the most of you don’t even ever heard it)
-TinyX (interesting, but absolutely not useful at the moment)
-That win32/explorer are faster than linux/X because most of the work is done in kernel space.
(Well, now i understand why crashin’ IE would kill the system, would you have the same with mozilla)
So, the things I say are: be happy with the command line, and wait until OpenBeOS is ready
>everyone seems so busy trying to shapeshift X11 with themes
You don’t have to use them. I sure don’t.
> or funky window managers
Now most people use Sawfish or KDE’s windows manager, no?
>and squeeze its architecture and code hard to push it to perform adequate with
>3D games.
The beauty of an extendable architecture would be that you can later add things. I don’t see why 3D under X is a ‘hack’. Do you have _any_ arguments for that?
>But X was not designed for all that. Proof of that is the fact that X is not as
>smooth as MacOSX’s Aqua or BeOS is, is not multithreading, it does not have
>good response times or latencies,
Have you tried the kernel-preempt patch? Part of the problem may be the kernel. A nice thing about this patch is that it supposedly improves performance for high-priority tasks more than now (at least on Debian X is ran on a higher priority).
Why does X need to be multithreaded? I doubt that’s going to make any difference.
>it does not support font antialias correctly,
It doesn’t? Care to elaborate…
>no double buffering,
That would be a toolkit issue. Both GTK+ 2 and Qt 3 (Qt2 too I think) do double buffering.
>and even 3D gaming support is a hack.
You said that before but you didn’t explain yourself. Gaming works fine under X for me.
>Should X be pushed to do things it was not designed to do, or should it be
>re-implemented in such a way that it features all the latest tech gizmos, but
>in a more “natural” way that it also stays compatible with most of today’s X
>applications?
X is very extendable. Proof of that is that modern desktop environments like GNOME and KDE run on top of X and don’t have to re-invent the wheel.
I just wanted to point out that there a project with is sortof reimplements ‘X’
the ‘Berlin’ project
http://www.berlin-consortium.org/
I dont think throwing away X is a good choice since to start all over again with graphical application for unix flavour OS will leave us far behind Window$ or Mac.
I am a Dos/Window$ convert since 4 years ago and I admit that X are much slower in performance conpared to Window$. I think more effort needed to improve X while maintaining the concept of remote display. It look like until now, most developer are focusing on window manager compared to the core of X. In my opinion if more programmers working together toward improving X can lead to a high performance X that might be better tahn Window$ or Mac. The time taken to do this will be faster than reinventing new windowing system and porting the available application to it.
Our Take: XFree does the job just right when it comes to serve just what it was designed to do back in the ’80s
Hate to nitpick, but the XFree86 Project has only been in existence since the mid-90’s. XFree86 and X Windows proper are not interchangable!
AOL will fix X, hehehe… ;p
why not do what apple did… reimplement the entire gui (we don’t need to redo the kernel, since we already have linux/bsd using X), and add a compatibility layer on top? i know i know, who the hell is gonna do this? not me. i’m not a programmer. but if apple can do it, can’t everyone else? would it be amazing to have a standardized fast gui for *nix, while still retaining compatibility with current apps until they get updated (like the mac OSX with mac OS9 compatibility layer). i mean, if this were done (maybe IBM funded? dunno), it would definitely make linux and most other *nixes mainstream.
instead of using X Windowing System (or XFree86) with all the different gui’s, all the differnent libraries, different look, a new gui subsystem with a new standardized (albeit skinnable) gui look and feel would do a lot for *nixes. if this happens, then i might not buy an ibook.
Forget patches and layers (more latency), promote something like DirectFB or Berlin and have a wine-like translating X calls to the new window system calls for the old code. You could still have X afterall for what X is good at…
XFree does the job just right when it comes to serve just what it was designed to do back in the ’80s: provide a windowing system to a Unix workstation or server.
yeah, and the WIMP concept hasnt changed since then, so why do anything about X?
But these days, everyone seems so busy trying to shapeshift X11 with themes or funky window managers and squeeze its architecture and code hard to push it to perform adequate with 3D games.
X is just regions and events. that is ALL. windows (the things that you drag around and have stuff in them) are implemented ON TOP. in fact, Qt and GTK implement so much on top they dont really need X any more.
But X was not designed for all that.
X was designed to be extensible. it is designed for everything. theres a low-bandwidth X (LBX) which is damn good, cos its completely transparent, the spps dont even know its there. theres XShape, for non-rectangualr windows. again its just an add-on. XRENDER, for anti-aliased TT fonts and other shapes is also JUST AN ADD-ON.
Proof of that is the fact that X is not as smooth as MacOSX’s Aqua or BeOS is, is not multithreading, it does not have good response times or latencies, it does not support font antialias correctly, no double buffering, and even 3D gaming support is a hack.
ROFL! aqua/OS X runs like a dog on most machines. i’m running X on a PII233 and the response is better than OS X on my friend’s 500MHz iBook (or whatever). and i run anti-aliased fonts with KDE, the works. why is my stuff so goddamn fast? “–enable-mt”. Qt and KDE both support multi-threading in the widget-set, its experimental but i havent had any problems. i will guarantee one thing: compile it yourself and its much faster, responsive and crashes less.
Should X be pushed to do things it was not designed to do, or should it be re-implemented in such a way that it features all the latest tech gizmos, but in a more “natural” way that it also stays compatible with most of today’s X applications?
i think X should be pushed further! the fact that DRI and RENDER can be added to X shows that the original design was good and complete. however, because X was designed in a monolithic manner (like unix kernels) its way too big. what needs to happen is a “microkernel” X, like QNX’s photon.
i might be wrong
X Windows is freakin’ nightmare, its true. We all know this, some people are just too die-hard UNIX zealots to admit it so they come up with a whole bunch of complicated arguments to try and make X Windows sound good. Lets get back to basics, it is a disaster of inconsistency, ugliness, and sloth-like speed.
Hi,
have you folks looked at QNX Rtp Photon architecture? Maybe a good model to follow?
-pekr-
The nice thing about X is that it’s a protocol (with extensions) so there’s no need to drop it immediately. I can run an X-window in MSWindows or on a Framebuffer. The Linux toolkits are starting to loosen from X, and it’s only a matter of time.
And quite frankly I no longer listen to anyone telling me that X is slow. Eugenia – I bet you weren’t speaking from data. Sure, the Linux GUI is slow – but many bits of software make up the GUI – not just X. Until people stop speaking in generalities I won’t pay any attention, nor would any reasonable person.
Run Windowmaker on X 4.2.0 and see the speed of X.
X Windows is freakin’ nightmare, its true. We all know this, some people are just too die-hard UNIX zealots to admit it so they come up with a whole bunch of complicated arguments to try and make X Windows sound good. Lets get back to basics, it is a disaster of inconsistency, ugliness, and sloth-like speed. <p> You’be basically just asked to have nearly every graphical application developer to throw out all their code and start all over again. Without even a hope of something that will replace X, good plan! Yes X is not the optimal solution but that doesnt mean we should just toss it out before even a hope of something new is in place.
Okay, so if xfree isn’t the problem, then what is?
Haha, a favorite of Eugenia: telling lies and half truths about X11. I’m only going to comment on the “3D being a hack” thing. How the fsck is that? DRI is not a hack, unless you call evolving software a “hack”. Many large vendors are supporting the DRI (Matrox, ATI, Kryo). NVidia does its own thing because their unified driver architecture doesn’t fit well into the DRI, not without some major reengineering. The fact that the DRI and NVidia DRM could be written for X11 is proof that X11 is FLEXIBLE enough to incorporate new technology. Also check out XRENDER, a brandnew rendering model for X11, anti-aliased fonts, alpha channel, Plan9 style rendering model, it rocks!
At least X11 will be around for a long time, who needs a dead(-locking) BeOS app_server anyway…….
Three days ago now I installed SuSE Linux 7.2 with KDE. I was sort of expecting to be disappointed, as I’d played with (very) old versions of Linux on old machines, and heard all about how slow and dodgy X was. But you know what? It works like a dream for me. I don’t see how X is slow, everything is almost OS X like is smoothness (yes i have used OS X extensively), the instant theme switching is great, virtual desktops are fantastic (coming from windows here) and all the OpenGL games that came with it work fine.
Criticisms? The fake transparency is annoying, but better than in win98 where there is no transparency (and i believe this is being fixed soon with XRender etc.), the multiple widget themes were wierd at first but I’ve got used to it now and don’t mind at all.
So there’s a users point of view. Believe me, don’t compare it to OS X.
1) OS X is -not- hardware accelerated. That’s right, it’s not.
2) The reason Aqua is so smooth is because it has a kernel priority of 10,000. It quite literally overrides almost everything else (except i think quicktime). That’s why it’s smooth, but even on ultra-powerful machines it still takes several seconds to launch a simple application. I’d bet if I boosted the priority of X to 10,000 it’d be pretty smooth too.
Now for the programmer in me – X has a pretty good architecture. Yep, it’s old, but it was designed with sound engineering principles, which is why it has been successfully extended to support new technologies and concepts. I can see that in some ways X is holding Linux back, simple things, little things like the clipboard incompatabilities (largely fixed in Qt3 and therefore KDE3 I believe), and the fact that switching anti-aliasing on will switch the font set I can use. But – I still believe that is X is working, and will meet the needs of the unix community in the future. Once people agree standards, the rest will fall into place. The core seems sound. Speed? I suppose it’s slower than windows, but that’s the price you pay for network transparency (which -is- good).
Okay, rant over. I’m totally new to Unix and learning fast, but I vote for keeping X. It doesn’t seem so bad.
Its nice to see XDarwin is getting a healthy share of bugfixes, especially with multiple monitor support. A high percentage of the OSX users running X probably have multiple monitors….not to mention the lucky devils with TiBook’s and auxilliary cinema displays.
One’s “X experience” depends a lot on what video card is installed. Perhaps the pro- and anti- X camps would like to comment on what they’re using?
“One’s “X experience” depends a lot on what video card is installed.”
I have a voodoo3 2000, and X runs sloooow. Wheras, BeOS runs great on it…
Anyway, the most users who saying is slow use X in a dumb framebuffer mode without knowning about it
Go on Gib, tell us about X extensions now…F this xshit.
Wasn’t it OSAlert here that had a pointer to a discussion of how bad OS X’s font rendering was on a technical level compared to the FreeType engine that I believe is being used in XFree86 4.2? Some good objective points there, honestly–OS X doesn’t do subpixel rendering at all and only follows limited hinting, and FreeType does both.
I’m not an X11 fan but I don’t see it as the root of Linux’s problems. (Root! Ha! Unxi joke! Never mind.) And, I admit that subjectively I prefer OS X’s font rendering to the renderers in both QNX RtP and BeOS 5 (I think QNX is using Font Fusion, the one BeOS was supposed to get, although I’m not positive). Windows 2000 has a pretty good renderer itself, although–again subjectively–I’m not sure I can say it’s superior to OS X.
Basically, XFree86 is moving toward supporting direct hardware rendering, aliased fonts and alpha transparency–we’re really reaching a point where the complaints should be directed at applications that don’t take advantage of XFree86’s unique features. The lowest common denominator of X11 isn’t going to be moved, and it’s not very high, no–but complaining about baseline X11 features in current releases of Xfree86, let alone future ones, is somewhat akin to running 100% Posix apps under BeOS and complaining about how, judging by them, BeOS just doesn’t have a modern API.
<blockquote>I have a voodoo3 2000, and X runs sloooow. Wheras, BeOS runs great on it…</blockquote>No… your GUI runs slow. X is only part of your GUI.
What I mean to say is that people bash X, and then people quote others bashing X, and it’s a self-fulfilling prophecy. It’s very rare that anyone has any data, and when they do I’ve never seen X take the blame.
A friend of mine has told me that BeOS was using a modified version of X.
If this is true then the real problem is not X, but how it is implemented.
To replace X is just dumb, its a huge project. To make it better though is always possible =)
As i see it, the big problem with X is not performance. It is the code.
It’s a lot of code, that seems porly organized and just plain untidy.
What I would like to see is a total cleanup of the code. A build/install system that would let my grannie compile and install it for her computer.
Something along the lines of menuconfig only much cleaner and that eaven sets the defaults for XF86Config and such.
The other thing I dont like is the font system. Mainly becasue I dont understand the either =) but I’d also would like some nice standard fonts that were renderd nicely on my display.
Third, and here comes the biggest problem, the libs for windowmanagers, why do there have to be seperate? They do the same thing, and shouldn’t affect the end user anyway, so if qt gtk and enlightenment joind together to form the ultimate lib, things would be great.
I’ve also read a little about the berlin project. The only feature that got to me was the pixel/meter thing. I agree a window shouldnt be 400 pixels wide it should be 400 mm.
Personally I do not like X too much. Reading Xfree mailing lists I see a lot of people blaming kde and gnome programmers who make widget code for redrawing. But it seems the one that understand “the good” way to reduce client server transfer is a genius! Why a person should spend so much time on reducing client server communication?
But there are people who like X…
The problem is another: why we cannot choose?
Why we can run libggi +xggi or +berlin or +dgs or whatever we want?
Answer: because the drivers 2d and 3d for your video card are tied to xfree code…
Open GL is tied to! Why I cannot have an opengl application without X??????
Mario: It’s true that drivers are tied to X but X are actively moving toward a more generic driver API that other pieces of software should be able to share.
I have a great time tinkering with X and have been watching it become more mature, why all the cocky fuss, 3D games are comming along nicely too. Let it ride ppl…lets see where it goes next.
X is fast, run windowmaker on X 4.2.0 and see for yourselves.