

XFree86 10 Years Old 441
ChazeFroy writes "XFree86 is now 10 years old. To quote from the page, 'What makes this particularly eventful is that it is fully backwards compatible; this is a true testament to the spirit of the original X protocol of which XFree86 is its finest implementation.'" Ten years and
still binary compatible. Very cool.
Much more importantly (Score:4, Interesting)
So driver manuals were dug out, guesses made for my monitor maxmum horizontal something rate. Huge configuration files edited. Even though, as a complete newbie, I had no idea what the various things I was changing did.
But! When it worked... I never went back to Windows again...
On the nostalgia tip (Score:3, Interesting)
Also lacking a proper connection at home, later on I stole literally hundreds of floppies from work to get X, Gnome and Enlightenment onto it. God, I loved that eyecandy. Anyway.
Re:Much more importantly (Score:2, Interesting)
I first used X (not XFree86) in 1988 or so, on a 386 with a horribly expensive video card. But it worked.
I still have some binaries from 1990 or so (SPARC, SunOS 4) that still run and talk to the X server. For that matter I still have some NeWS programs (like display PostScript) that don't run because NeWS died.
So, it's cool that we're finally getting antialiasing, downloadable outline fonts, and maybe even user-defined server-side graphics paths. Welcome to 1990. Ten years old, but with a lot of catching up to do.
In other areas, like Keith Packard's new XML-based configuration format, XFree86 is setting trends for the rest of Unix/Linux to follow. And where it's behind, it's being worked on.
It'll be interesting to see if X has enough momentum (I think it does) that Berin [berlin-consortium.org] will die too, a footnote because not mainstream enough. just like NeWS.
NeWS was trivial to install, no config file at all. Installation matters, but applications matter more.
Re:Much more importantly (Score:4, Interesting)
My first Linux box monitor (a 14" Emerson) blew its top after only a few weeks use (I had been running the monitor at 65Hz when it only supported 60Hz), so I got ahold of a 19" fixed-frequency Tektronix sync-on-green monitor and built a sync-converter circuit with a little resistor coming out the top pot to help align the signal. I still have the schematic filed away somewhere...
Then I spent the afternoon trying to see what I could get out of the monitor, finally settling on 1088x702 or something like that at about 58Hz (ugh, flicker!) with of course no hardware text mode or CTRL-ALT-PLUSMINUS magic, just that one mode. When I booted the machine, I saw nothing at all until the magic 'X' cursor in the middle of the stipple pattern would appear. Beautiful. I probably still have the XF86Config file on a DC6150 tape somewhere.
Damn fun. These days it's all about water cooling and big CPU fans and neon lights in case holes, but it's somehow less entertaining...
Re:Much more importantly (Score:2)
Re:Much more importantly (Score:3, Interesting)
One thing I think is funny is setting up XFree86 on sparcstation - aside from the fact that it should have been called xfreesparc - none of the configuration scripts that came with it were suited to sparc - so I'm answering questions about vga, resolutions, colour depths and monitor info when I'm using an sbus, 8 bit, fixed frequency monitor
Re:Much more importantly (Score:2)
Re:Much more importantly (Score:2)
I recently hand-tweaked mine to adjust video timings for a DLP projector. The projector doesn't need nearly as much horizontal blanking as the average CRT, but it has a fairly limited bandwidth, so I was trying to drive the v-refresh as high as possible by squeezing the blanking parameters. This is for active stereo (left and right eyes each see only half the frames) so every Hz counts. Got it from 85 Hz up to around 93 Hz that way - I know the projector can handle 96 Hz or more (I've seen it under HP-UX), but the X server and/or the graphics card seemed to think some of those numbers were just too small.
Thank goodness for ESR's video timings HOWTO. I don't know of any way in Windows to do the equivalent (OT: anyone?), so our Windows box is stuck at 85 Hz. XFree86 rules!
Re:Much more importantly (Score:2)
1024x768 interlaced was unbearable on a 13" display... 800x600 got you 65,000+ colours, and FVWM windows that extended beneath the viewable desktop. Ferocious learning curve xf86config and example output files...
God bless 'em! The XFree team had a display server that was able to handle more hardware than any commercial vendor. Sometime in '94-'95 we tweaked this thing onto an uncooperative SCO Interactive/86 installation, and had local display support for a client.
I still scoff madly at the Xinside advertisements that FUD against XFree in the pages of SysAdmin. Writing down to a technical audience... Go figure.
Re:Much more importantly (Score:2)
They do however have a much faster 3D X server for ATI then whats available freely today, although for a high price (when was the last time you payed $100 for a 3D driver?)
Re:Much more importantly (Score:4, Funny)
I have an Infomagic CD collection with a 1995 copyright which contains a very small leaflet outlining slackware installation. Section 9 is titled
X11 Configuration Cookbook -- How to Get X
Running Under Linux (without calling the fire
department)
Later they go on to say "Thus it is possible to overdrive the horizontal synch. of most monitors and cause *damage* or even *fire*. (Yes, they WILL burst into flames...it has happened!)".
I was truly and eternally impressed. =-)
-Paul Komarek
Re:Much more importantly (Score:4, Interesting)
xroach - infests X with disgusting cockroaches
You have new mail in
wwarner:/home/wwarner# apt-cache show xroach
Package: xroach
Priority: optional
Section: games
Installed-Size: 96
Maintainer: Joey Hess
Architecture: i386
Version: 4.0-8
Depends: libc6 (>= 2.2.4-4), xlibs (>> 4.1.0)
Filename: pool/main/x/xroach/xroach_4.0-8_i386.deb
Size: 13414
MD5sum: dfd42a1b3861765ad2af5eb9e8aced64
Description: infests X with disgusting cockroaches
Xroach displays disgusting cockroaches on your root window. These creepy
crawlies scamper around until they find a window to hide under. Whenever
you move or iconify a window, the exposed orthoptera again scamper for
cover.
Still there in debian. We use it here in the office to find out who leaves there DISPLAY wide open. It is fun to launch xroach onto someone elses display.
Re:Much more importantly (Score:2)
Re:Much more importantly (Score:3, Funny)
Re:Much more importantly (Score:2)
Last time I dipped into Linux, in 1999, this was still the case.
Re:interesting (Score:2)
I have had minimal problems installing Mandrake - until I came across a laptop with an nvidia board. I went to nvidia.com, found the linux section, and followed the detailed instructions. Pretty much a piece of cake!
Slackware is still good for learning the nitty gritties and having a rock stable system, but it is not for the command line interface challenged. It is not intended to be.
Re:interesting (Score:2, Offtopic)
"Me too" (Score:4, Funny)
Well done man, getting modded as insightful for admitting that you have been asleep for 6 years
Hey, I nodded off a lot. Can I have a point too?
-- MarkusQ
P.S. I'm shooting for Funny but I'll take Insightfull if that's all you've got.
Sure, but... (Score:2, Funny)
Re:Sure, but... (Score:2)
Cool... not :-) (Score:2)
suggested X changes (Score:2, Insightful)
Re:suggested X changes (Score:3, Interesting)
I don't see any disadvantage by doing this. You still get to program in the language you prefer with the library commands you prefer, but they all draw the same widgets. While you are at it, design a new clipboard system that works - base it on the existing code from the Gnome and KDE people if you want to.
Is there a reason not to do this? Is it technically impossible? If so, please explain why. I'm a programmer, but I'm not very experienced in X development.
Re:suggested X changes (Score:2, Informative)
The problem with this is that X is intended as a much lower level toolkit. X is what you you when you want to create a widget set such as Qt or GTK or Motif of Athena. As far as X is concended (and rightly so), widgets are "someone elses job"
Re:suggested X changes (Score:2)
Re:suggested X changes (Score:3, Informative)
The tradeoff is that X was originally designed 10 years ago to work with thin clients. A thin client is supposed to have nothing but a video card and the X client. If you add a widget library, on what storage space do you put it? Not to mention storing the user preferences for the window mananger and widgets. Also not to mention the extra processing necessary to render the widgets.
To a thin client, especially one designed when X was first designed, storage space and processing power are much more limited than bandwidth.
And if you can live without KDE's pretty eye candy or 3D screensavers, even a broadband wire to the server will be more than enough (hint, Motif may be ugly, but it works for its purpose).
Re:suggested X changes (Score:2)
Re:suggested X changes (Score:2)
The problem comes from the fact that there really is no such thing as a "real widget" on just about all platforms. When you consider a toolbar on Windows 2000 as a real widget, you are actually looking at MFC. Borland has their own toolbars, as does Qt. Even at the heart of win32 there is just a display buffer that these widget sets draw on, just like X. OS X is the same way.
The difference between Windows and X though, is that it maintains consistency. Or at least, it tries to (common exceptions would be Winamp, Quicktime, gtk-win32 apps, etc). If we want consistency in X, then what we need is a defined look and feel. Then the toolkit doesn't matter, as long as the result looks the same.
I agree that making a more high-level remote protocol would be more bandwidth efficient, but it might be too limiting as well. I have pondered the idea of funneling Qt QStyle calls over the network, but I'm not sure how that might turn out.
Re:suggested X changes (Score:2, Insightful)
What you describe is DPS, Display PostScript. The display server can run and even store code snippets sent by the client. Thus you get a completely generic environment that can still draw you exact style of buttons on demand. Think of PostScript as the pre-web-browser equivalent of Java. (:
DPS never did have a free implementation (though Display Ghostscript is around nowadays - but I have no idea how complete / usable it is) but it or similar technology appears/appeared in NeWS, NeXTStep and now MacOS X.
Re:suggested X changes (Score:5, Informative)
Unfortunately, neither Gtk nor Qt honour Xt, nor X's excellent "resource database" generalised configuration and theming (yes, theming!) system.
Gtk because it was written by a bunch of people initially without the faintest clue how X actually works, and Qt because Qt is like "Swing for C++" - it's intended to be cross-platform, and thus handles most drawing "itself", merely requiring prettu much a dumb framebuffer underneath.
Thus, the two most popular toolkits on Linux are abysmal from an X standpoint.
Re:suggested X changes (Score:5, Interesting)
I will not speak of Qt, because I have limited knowledge of it. However, Gtk+ and later GNOME addressed many of these shortcomings in ways that made a great deal of sense. It also did so in ways that were portable to Windowing systems that were either variants of The X-Window System or different altogether, but still provided the basiscs of display manipulation and event model.
The core X Protocol is a wonderful way for applicaiton and display server to talk. XLib is painful, but you can abstract it and still live with it reasonably. Xt was simply unworkable.
Of course, these points are moot. Gtk+ today along with GNOME do much more than Xt or Xaw or Motif ever did, and there's simply no going back. Color management, font management, internationalization, window manager interaction, system- and user-level configuration: These are all things that todays toolkits do far better than was ever available in the bad old days.
Of course the way your modern audience here on Slashdot thinks of theming, this is terribly misleading. You could build wildly complex resource configurations that would hand-tweek the widget heirarchy of a specific application. You could also set background colors and such, but since there were no solid conventions (not at all in Xt, and not enough in Motif and Xaw), these were of limited usefulness.
Re: suggested X changes (Score:3, Informative)
The core X Protocol is a wonderful way for application and display server to talk. XLib is painful, but you can abstract it and still live with it reasonably.
For an Xlib alternative in its early stages, check out XCB [pdx.edu], a lightweight, transparent X protocol C Binding. One of the beauties of the X protocol is that sticking a new (and hopefully "better") API on top of it is relatively straightforward.
Re:suggested X changes (Score:2)
usegeometry=80x63+85+174
class=Class-MAIL
termi
command=ssh -C user@example.com
font=-schumacher-clean-medium-r
This is an example from my gnome-terminal config that is used to start up the login shell to my home machine. Only that class of terminal is affected, of course....
GNOME is very easy to configure in a large number of ways. You should try it out!
Re:suggested X changes (Score:3, Insightful)
X is a network protocol. If you look at network protocol stacks you see layered design patterns everywhere. That's the beauty of X. It is confined to a layer, and performs that layer service extremely well. I know it has drawbacks and inefficiencies, but it is the best protocol so far.
Including widgets and component architectures is stepping on the upper layer. It violates layer independency, and introduces unneeded complexity. X is a large enough behemoth as it is.
Leave widgets separate, as they are now. It works, and it is elegant.
BTW, this is also why I disagree with the various alternatives to X that discard the network protocol, and go for direct hardware communication. It is a decision that mixes the graphical communication layer with the layer beneath it -- you gain some speed and loose lots of flexibility.
Re:suggested X changes (Score:2)
This was a serious problem with NeWS, which I worked on, and basically made it impossible to make a C program talk to the widgets efficiently.
In any case I think "standardized widget set" is seriously misguided. If X had been designed with such a set it would be still using Athena style widgets today and would be laughably primitive.
Re:suggested X changes (Score:2)
Well, you're probably right. The problem is X's extension mechanism. Doing this means sticking a whole load of code in the X server. And, since different people will want different styles, the user has to be able to choose which widget set to install (but, once installed, all applications will use it).
Unfortunately, X runs as root. This means that it's already a huge security/stability risk, and letting users customise it would be unthinkable.
Anyway, fix the must-run-as-root problem and the way opens up to add all kinds of new features to X since you don't have to audit every line...
Re:suggested X changes (Score:2)
All applications would look the same and act the same. Let's say that you start Emacs and Gnumeric under KDE. Now you see three different graphical widget styles, all acting slightly different. If I set KDE to use a single menubar on top of the screen, only applications utilizing the KDE (or Qt?) framework adhere to this rule. This is just so damn wrong.
By utilizing a single, underlying library for these things, problems like these would disappear. I don't see anything wrong in all applications behaving the same - a consistent user experience can't be bad.
Re:suggested X changes (Score:3, Interesting)
OK. Now. It's your job to convince all the GTK+ and GNOME hackers that they should all start programming in C++ instead of the half-dozen languages they currently use, so that they can use the Qt toolkit. Obviously this requires a complete rewrite of all the GTK+ programs they currently have. To make this an easier pill for them to swallow, you should mention that they will also have the wonderful opportunity to rethink their component model, their a11y model, their i18n model, their UI generation method (for those who use Glade), and so forth.
Alternately, you can convince all those silly KDE hackers that their applications should all be rewritten to use GTK+ and the GNOME libraries. Similar to above, but reactions will probably be even more amusing.
Keep in mind, here, that these are the same people who are so flexible and open-minded that they hacked on KDE for literally years while Qt was available only with a non-GPL-compatible license (and KDE is GPL-licensed), which created the interesting situation where KDE was illegal to distribute at all. While some KDE hackers acknowledged this discrepancy, they didn't want to look bad so they refused even to add a license clause to KDE to allow it to be distributed with its Qt bindings. This would have been a simple exception clause - two lines at most. Instead, they (by implication) refused to allow anyone to distribute their software. (Many parties such as Caldera and Red Hat just "looked the other way" and distributed it anyway - strict license compliance took a back seat to customer demand.)
I mention the license difficulty not to reopen long-dead flame wars [oops, I probably did already] - because indeed the situation resolved itself admirably when Troll Tech relicensed Qt to the GPL - but to show the extreme loyalty these people have shown towards Qt, despite its former legal issues.
A third option is for you to do all the necessary porting work to move all your favorite applications to a single widget set / desktop framework. Pick whichever one you want, though you might keep in mind that if you decide on Qt, you will have to rewrite a lot of stuff in C++. Of course, you're rewriting a lot of stuff either way....
Re:suggested X changes (Score:2)
Re:suggested X changes (Score:2, Interesting)
<whew> - you just saved someone a lot of work. (:
Did you read the interview with Nat Friedman [slashdot.org] yesterday? Last question, third paragraph of his answer:
I hadn't thought of this, but it's a good point. You (or someone you know) could port Qt to use the Gdk graphics widget set, which is what Gtk+ uses. Since both Gtk+ and Qt support multiple display systems (both run natively on Windows, for example) the apps themselves shouldn't be much the wiser.
Re:suggested X changes (Score:2)
Re:suggested X changes (Score:2)
It would be nice if Xlib added some easier interface to this stuff so that all the toolkits did not have to do it.
"X"Free86 (Score:4, Funny)
Re:"X"Free86 (Score:2)
Seems a bit... odd (Score:2, Insightful)
Re:Seems a bit... odd (Score:2, Insightful)
Re:Seems a bit... odd (Score:3, Funny)
... by not really adding anything new in the last 10 years.
;-)
Si
Re:Seems a bit... odd (Score:3, Interesting)
I see your smiley =)
xinerama, render, shared memory, xv, truetype. To name just a few.
Re:Seems a bit... odd (Score:5, Insightful)
And exactly that is the genius of X (in contrast with most other windowing systems that are based on API's). Therefore, it is easy to get network transparency, and backwards compatability does not confront you with the headaches that API binary compatability causes.
Maintaining compatability is just as simple (OK a bit less since it is a complex protocol, but the extention mechanism was very clever) as backwards compatability for ftp,nntp,dns etc.
Re:Seems a bit... odd (Score:2)
RFC 2671, RFC 2980 (Score:2)
DNS: see RFC 2671 [faqs.org]. It uses a label type that was deliberately reserved in the original standard in order to send extended information, and a new resource type, OPT, that lets you advertise what extensions you support and to send more kinds of request than could possibly be encoded in the original standard.
NNTP: see RFC 2980 [faqs.org]. (The extension mechanism seems to be that if the client sends an extended command that's not recognised, it'll get an error. :) )
X kicks ass, XFree86 doubly so. (Score:4, Interesting)
X works, works now, and has worked for over a decade. I can still run some very old, but very useful software, and I can do it in a network-transparent fashion. X is fast, elegant (not the code necessarily, the functionality), does 2D, 3D and applications wonderfully, and is free and fully multiplatform, across all *nixes, Linux, MacOS and Windows.
Come back when you have something that works for real work that isn't just a theory, and if it's better than X without losing any of the benefits or extensibility, I'm suree the *nix community will thank you for it. Until then, X and XFree86 (the gold standard) are here to stay, and that's a good thing.
Re:X kicks ass, XFree86 doubly so. (Score:2)
Linux needs to consider running X on top of the desktop rather than underneath it. Implement versions of GTK/QT that talk to the framebuffer directly and run KDE/GNOME on top of that. I bet the performance increase would be astounding. It's getting to the stage now where more and more people exclusively or generally run their desktops locally so it's a makes little sense that everything must go via clunky old XFree86.
People who run remote could simply fire up XFree86 just as before running in rootless mode. I do this on the OS X and XP and it works fine.
Re:X kicks ass, XFree86 doubly so. (Score:3, Insightful)
Then someone would start to complain about lackine network transparency.
Come on, X is here now, and it works beautifully! Nor is it slow, as seen by the mailer Sylpheed, or Dillo. Or Qt Designer. It's obvious that the perceived slowness of X lies neither in the toolkits or the windowing system, but somewhere else.
For KDE and GNOME that slowness rather stems from the kparts/bonobo component architectures
Re:X kicks ass, XFree86 doubly so. (Score:2)
So? The point remains that it's significantly slower than other windowing systems that aren't network transparant.
Then, of course, there's the utter lack of standardized widgets for doing just about anything. Which is where kparts, gtk, etc. come in. But it's a sad statement that a GUI that is WELL over 10 years old (X11 predates XFree86) is just starting to get some decent standardized widgets (sorry, no, CDE, OpenWindows, Motif, etc. didn't cut the mustard even when they were new).
And while developing for Windows is a PITA, developing for X has been even worse traditionally. It's changing, again thanks to the libraries mentioned above, but it's taken way way too long.
Realistically the only trick that X11 has over the competition is network transparancy. And that kicks ass, no question. But I don't think it's worth everything that has been missing (and will continue to be missing) for that. I mean come on, if you can run a Windows desktop over the network with decent response then network transparancy doesn't mean a hell of a lot anymore. Windows is about as network-hostile of a desktop as you can get.
Re:X kicks ass, XFree86 doubly so. (Score:2, Insightful)
Well, no
Actually KDE and GNOME would surely suffer from the same slowness in startup times even if implented (sp?) on Windows (the horror).
Then, of course, there's the utter lack of standardized widgets for doing just about anything. Which is where kparts, gtk, etc. come in.
GTK+ and Qt provides widgets, neither of these are slow if used as widgetlibrary, on the contrary, especially GTK is plenty fast. Qt suffer some from the gcc C++ linker.
But it's a sad statement that a GUI that is WELL over 10 years old (X11 predates XFree86) is just starting to get some decent standardized widgets (sorry, no, CDE, OpenWindows, Motif, etc. didn't cut the mustard even when they were new).
If only you weren't right...
Seriously what the various _UNIX_ desktop environments lack compared to Windows is a speedy component architecture. This is as stated above and in previous post not dependant on X. X handles the display and only the display. What the applications actually do behind the scenes are of no interest for X. Only what they display.
And with a well setup accelerated display, you shouldn't be suffering from artifacts or flickering.
On the problem of server for X, why do many seem to think the framebuffer would be better supported? I have no experience coding X-servers, nor any experience coding framebuffer support, so I ask: why should any one of those be easier? Enlighten me!
Re:X kicks ass, XFree86 doubly so. (Score:2)
I'm not saying toss away X if you need it, but consider that an ever increasing number of desktop users do not need remote access yet they are burdened by the architecture.
Re:X kicks ass, XFree86 doubly so. (Score:5, Insightful)
So, you run Gtk+ right on the bare metal. Well, that's fine as long as you don't mind running full-screen. If you want to have more than one application running at once, someone has to arbitrate. That means you need a window manager. Then someone has to keep track of the mouse pointer - individual applications would otherwise fight over it. That includes drawing it, moving it around, changing it to the right sizes, shapes and colors on demand. I guess that would go into the window manager as well. Same goes for keyboard focus - applications can't all think they have the keyboard at the same time, now, can they? What the hey, throw that into the window manager too.
Cut 'n' paste between applications? Need some sort of message passing server. Throw that into the window manager as well, why don't we. Drag 'n' drop? More messages - have to support that in the new window manager. Session management (i.e. login, logout, and which applications to start up when you re-log-in)? Need something for that too. 3D calls to the graphics card? Someone had better arbitrate - you only want one application doing that sort of thing at a time. I guess the kernel could probably handle that, since it is already arbitrating the frame buffer.
By now you have a new "window manager" which has subsumed a lot of the complexity of the X server. Sure, you are no longer passing messages between two processes just to display 2D graphics, but I'm not really sure how much of a speedup you get just from that. As Jim Gettys (you're posting technical comments about X11, so I hope you know that name!) is fond of pointing out, lots of people think X is old, clunky and bloated, but nobody seems to be able to produce an alternative windowing system with equivalent (or even adequate) feature set but without comparable complexity.
Re:X kicks ass, XFree86 doubly so. (Score:3, Funny)
Microwindows demonstrates that it is quite feasible to produce something with the right kind of functionality required but considerably less overhead. That is what KDE & GNOME should be running on, a lightweight, local desktop. If someone wants remote they can run XFree86 in rootless mode, but a lot of people won't care about that.
And yes, it must be possible to produce an equivalent feature set simply because Win32 & Mac both manage to have fast desktops despite not using X at all.
Re:X kicks ass, XFree86 doubly so. (Score:2, Informative)
Re:X kicks ass, XFree86 doubly so. (Score:2, Interesting)
Linux installations typically don't (except for Mandrake 8.1+), since they're generally assumed to be "server" machines - you can significantly speed up your GUI by running X with a negative nice value, since that way the GUI pre-empts background stuff, just like on Windows.
So if you nice -n-10 X, it'll be apparently faster, and the slower your machine, the more noticeable the improvement will be. Since you machines are godawful slow by the sound of it, this should help you a lot.
This _is_ mentioned in the X manual, BTW. I don't understand why people don't read computer manuals. It takes months to learn how to drive. Computers are several orders of magnitude more complicated than cars, yet people seem to think one should be able to jsut muddle through wihtout any learning. Even windows only has a VERY thin veneer of "easiness", it's actually horrendously complicated (more so than unix).
Re:X kicks ass, XFree86 doubly so. (Score:2)
IIRC the highest priority task in Windows is driving the mouse pointer.
Linux installations typically don't (except for Mandrake 8.1+), since they're generally assumed to be "server" machines - you can significantly speed up your GUI by running X with a negative nice value, since that way the GUI pre-empts background stuff, just like on Windows.
This _is_ mentioned in the X manual, BTW. I don't understand why people don't read computer manuals.
With many pieces of software it's a case of "good luck finding a user manual". (With even better luck if you need a service manual.)
It takes months to learn how to drive. Computers are several orders of magnitude more complicated than cars, yet people seem to think one should be able to jsut muddle through wihtout any learning.
An important point is that even once someone has learned to drive they do not suddenly become a motor mechanic. Yet a lot of fuss is made about how computers should enable something analagous to a barely competant driver being able to perform major maintanance.
Even windows only has a VERY thin veneer of "easiness", it's actually horrendously complicated (more so than unix).
It is also very "unfriendly" when things go wrong.
Re:You're right... (Score:5, Interesting)
Yes it is.
For most of us the killer feature is network transparency. There are many windowing systems out there which do a great job of running applications on a local CPU, rendering them to a local graphics card, and taking input from local keyboards and mice. This is, however, very limiting to those of us who have been accessing our machines over networks for the past 10 years. Only recently has the Windows world achieved remote access with decent usability / performance (and I'm still not sure if there's a Windows-based remote access solution that supports input devices other than keyboard + mouse), and most other non-X graphics platforms never even made the attempt.
It's not like we are asking for a bunch of esoteric features that only found in X11. We're asking for one basic feature, network transparency. Those who marginalise this feature probably don't understand what all it can be useful for.
Re:You're right... (Score:2)
network transparency
It's nice, but maybe it could be extended even further.
I mean, I'm usually stuck with
and get the keyboard and mouse lumped together with the screen as local devices connected to one X server.Perhaps there's something I'm missing about the flexibility of X, but in this day and age it seems like everything should be capable of being a networked device.
Can I, with X, set my keyboard to be one networked device, my mouse to be another networked device and the screen be another?
(As wireless networking takes off, this seems like it could be more useful than it sounds. A keyboard with its own IP address and port sounds a little bit silly.)
Re:You're right... (Score:2, Informative)
No - not yet anyway. It is interesting to look at how the X display model has held up over the years. As most of you know, the DISPLAY=myhost:m.n specification allows for multiple hosts (addressed by TCP/IP), multiple display servers per host (doing business on separate TCP ports, 6000+m), and multiple screens per display. Each display has a single set of input devices, which is shared across however many screens it has.
The X protocol designers clearly saw the need for multiple display servers per machine, and this is used for many things - most often, perhaps, running multiple X sessions on a single head, which you can switch between, but also running "fake" X servers which are actually tunnel endpoints with ssh or lbxproxy. However, the multiple-screens capability has mostly gone unused - since it would force an application to specify a particular screen number when drawing a new window. Applications shouldn't have to care about confining windows to particular monitors, so the usual solution is for the X server to present a single logical screen (SLS) larger than any one physical screen. This is one of the few instances I know of where the X protocol turned out to be too general.
OK, back off the tangent. What you propose is sort of the opposite to the screen model, and it won't work, at least not the way X is designed currently. Basically, all applications on a desktop have to use the same core pointer (mouse) and core keyboard. Why? Because the X server is only geared to showing one mouse pointer on the screen, and the window manager must know unambiguously where it is at all times so it can raise windows to the foreground, switch input focus, etc. And speaking of input focus, there is no provision within the ICCCM [the standards and guidelines for X window management) for keeping track of application keyboard focus with multiple keyboards possibly targeted to multiple applications.
In short, the keyboard and mouse must be common to all clients of a specific X server. That in turn implies that you couldn't set a client variable to use such-and-such a mouse or keyboard, since there's no way to guarantee that all clients have the same variable set. You'd have to configure it at the server end.
Which isn't to say you couldn't write an X input driver that internally gets its data from TCP/IP or bluetooth or something....
Re:X kicks ass, XFree86 doubly so. (Score:2)
Sure X has some good "ideas", but even the most devout techie knows that the lack of an easy to use and easy to configure GUI is the major obstacle holding Linux (and other unicies) back from widespread desktop adoption.
As just one example, see how long it takes for a new Linux user to install a true type font and get it working everywhere. Compare that to Windows or Mac (or even a pre-system 7 Mac with that goofy Font Mover program).
Re:X kicks ass, XFree86 doubly so. (Score:2)
That is a shockingly low percentage of the overall computing population.
The same anti-intellectual memes that allow for Microsoft GUI mediocrity to be sufficient for the masses, do the same for Unix ironically enough.
Although, I am sure if any of my cluebie relatives got in their heads to install a font for themselves that I would be the first one that they would call to help them out of their WinDOS GUI quagmire. Most end users simply have a very low threshold of confusion. A shiny happy interface simply isn't going to help most of them much of the time anyways.
Re:X kicks ass, XFree86 doubly so. (Score:2)
Can u give me a URL for full accelerated driver for my Geforce 2 card? how about some fast 3D graphics please? good XvMC support? umm, perhaps XFT-2 support please?..
Apparently not...
Re:X kicks ass, XFree86 doubly so. (Score:2, Insightful)
http://www.nvidia.com/
Re:X kicks ass, XFree86 doubly so. (Score:2)
All "mother" needs is a sufficient good frontend. Those infact exist for X.
Re:X kicks ass, XFree86 doubly so. (Score:3, Insightful)
I've never seen one on linux[1] that I'd want to use everyday.
Sure KDE and GNOME et. al. are interesting toys, but their numerous kludges, bugs, inconsistencies, slowdowns, crashes, and poor GUI design annoy the hell out of me.
C-X C-S
[1] SGI's desktop wasn't bad, for a UNIX/X desktop.
Bit on the ugly, CDE-ish side, but at least everything seemed to work "right".
X rules the waves! (Score:3, Informative)
- it's flexible, allowing a multitude of different window managers to front-end for it
- it's network portable, allowing me to run X-sessions off another box completely over a ssh-connection
- it's cross-platform, running on almost any architecture and operating system (with the obvious exceptions of course)
- it allows me to run a screensaver in root-window as background, dazzeling all those MSWindows folks =)
- it's free!
In my opinion, there are very little GUI's able to beat that, not OSX for all it's beauty but lack of flexibility and not MSWindows for it's compatibility but ugliness.
Re:X rules the waves! (Score:2, Informative)
For 99% of computer users none of the features you list above have any meaning.
For most people the multitude of window managers is merely confusing.
I, too, can remember the good old times when the mainframes were faster than desktops and it made sense to run some applications in the mainframe with the display on the desktop. Those days are gone. For the rare occasion that one needs to control something remotely, one can use VNC over ssh.
Cross-platform is mostly meaningless since most desktop computers run Windows.
Windows already comes with a graphics system bundled, so X being free is meaningless
And I bet the MSWindows folks have some fast-action 3D games they can dazzle you with
That said, I have to admit XFree86 has come a long way since the early days. Good work, guys!
Re:X sucks :) (Score:5, Funny)
- it's flexible, meaning each of our lecturers wants the students to use a different window manager, and the students edit their
- it's network portable, which means our students could be using machines on the other side of the world and running netscape on that and then complaining to me that it's running slowly and I cant tell they are running it on foo.bar.au
- it's cross platform, meaning whatever machine someone has on their desk, they want a copy of it installed! Grrr! There's nothing a BOFH hates more than having someone want some software!
- it allows you to run a screensaver as background, using up CPU cycles that the rest of our students would like to use for statistical analyses! killall -9 xscreensaver!
- it's free, which means I cant use our budget as an excuse to not get it so I dont have to install it, thus creating more work for me!
No, I love it really. X is fantastic. Here's to X more years!
Baz
Nothing compared to mother nature (Score:2, Funny)
Re:Nothing compared to mother nature (Score:2, Funny)
Re:Nothing compared to mother nature (Score:2, Funny)
Re:Nothing compared to mother nature (Score:2)
Re:Nothing compared to mother nature (Score:5, Funny)
What the fsck are you talking about? Yes, we may be compatible at the lowest Physical layer, but for those same millions of years you speak of, we (men) have also been trying to reverse engineer their (women's) higher-level protocols. We've barely broken the Data-Link layer and even our understanding there is only minimal. Compatible? We can barely keep our sockets connected. Hell, the last time I tried to ping my wife she gave me a protocol mismatch error! My Session layer with my her has been working reasonably well for many years now, but you ought to see the Presentation layer break down, especially on birthdays and anniversaries! I'm afraid, my friend, that we've got a long way to go to achieve full compatibility.
--Jim
Re:Nothing compared to mother nature (Score:2, Funny)
Hell, the last time I tried to ping my wife she gave me a protocol mismatch error!
Maybe shes's getting a DOS attack from another source. :-P
History Please (Score:2)
Thanks
Ale
Re:History Please (Score:2)
Why has Citrix surpassed X?
In what way do you mean? It is much more bandwidth friendly than X, but AFAIK it doesn't do some of the things X does.
Why has X only been a server with no attempt to make it a coherent and useable UI?
Urm, because that's the design of it? It has never made any pretensions to being any kind of UI, let alone a usable one.
Why has X been horribly unsupported by Video Card manufacturers?
For the same reason that sound cards, winmodems et al have been horribly unsupported in linux/*BSD etc.
Why does Apple whip up a better rendition of a complete GUI an order of magnitude faster than these MIT peeps?
Because X isn't a GUI and also because Apple have been working on GUI design for 20 years. KDE is less than what, 5 years old? For most of Unix's history, UI has been less important than the technical power. Now, blinkenlichts are becoming more important and the Unix/linux/*BSD community has to play catchup.
More (Score:3, Funny)
First of all, it allowed me to bombard my testicles with 1 gigawatt/sec of abnormal radiation whilst I frantically rummaged through old manuals looking for the hertz values of the Y-axis of my monitor.
Oh wait! No got it! No! Yes! No! No!
Not only has it rendered my sperm inert, it has rendered the rest of me inert, too.
I was the director of business dev at a failed dotcom, so I'm not entirely sure what portion of me was inert at any one time during the crucial "growth phase" of my company or when my monitor was transforming my DNA on a daily basis.
But! I lived to tell about it.
Relevant quote (Score:5, Funny)
"Really, not X-Windows?"
"I said 'intellectual'."
-- overheard in Silicon Valley
Binary compatible? (Score:2, Insightful)
Go ahead, grab XF86-2.1-bin.tar.gz [xfree86.org] and see if any of the binaries run
xload: Linux/i386 demand-paged executable ZMAGIC), stripped
-adnans
The wisdom of "fortune" (Score:3, Interesting)
X windows: Accept any substitute; Making the world safe for competing window systems; It could be worse, but it'll take time; Simplicity made complex; One thousand monkeys. One thousand MicroVAXes. One thousand years. X windows; It's not how slow you make it. It's how you make it slow; Warn your friends about it; A mistake carried out to perfection; Complex nonsolutions to simple nonproblems; The defacto substandard.
Re:The wisdom of "fortune" (Score:2)
Accept any substitute.
Form follows malfunction.
The Cutting Edge of Obsolescence.
The trailing edge of software technology.
Making the world safe for competing window systems.
Let it get in YOUR way.
The problem for your problem.
If it starts working, we'll fix it. Pronto.
It could be worse, but it'll take time.
Simplicity made complex.
The greatest productivity aid since typhoid.
Flakey and built to stay that way.
What's in it for me? (Score:4, Funny)
Still slow on DSL lines (Score:2, Interesting)
X11: Even with compression it's still extremely slow on DSL lines. The main performance consumer are a mouse cursor and graphics.
X11: I've tried it also through 10Mb hub in LAN - works good to read mail in VM mode of XEmacs, as for GNOME - it sucks, a lot of bugs and error messages.
X11: Also, on both 10Mb and DSL, Mozilla's drag-n-drop behaviour becomes unpredictable. Without drag-n-drop Mozilla works fine.
X11: On 100Mb networks works fine with some annoying behaviour of GTK. Generally GTK and GNOME specifically is not good to run cross network - it seeks for some local resources, like audio, CORBA, which are different on different computers.
VNC: Comparing to VNC on windows platform on same lines and speeds: VNC is much slower in lots of situations.
Web: Comparing to HTTP/HTML on same lines and speed: X11 is certainly worse. However, the application base of X11 is still broader, although the rate of new-coming web-applications is much higher.
Conclusion: X11 is better than VNC on slow lines, but much slower than Web, but X11 and VNC are for different platforms. As for web, web is much more optimal for slow lines. Eventually, when virtually everything will be Web accessible - X11 as a network protocol will dye. But it will stay forever as a layer between desktop applications and X server drivers. Probably, instead of the war of GNOME and KDE, we may see something like a war of Mozilla and Xemacs desktops :).
P.S. GNOME is designed against networking principals of X11, probably, b/c GNOME designers want to see GNOME working without X11. Bad for GNOME (all driver problems) and bad for X11 (good application is gone).
Broke it for this... (Score:3, Informative)
The one comment that gets put out there by opponents of X *time after time* is that it's old and cobbled together. This is seen as a bad thing.
Then there's some MS article, where everyone attacks their old compatibility layers and old implementations.
Now, a story on XFree's birthday rolls around. "It's still compatible with stuff 10 years old!" Well good for you. Why is that a good thing? Sometimes the old has to go if you want to properly implement the new.
If there's one protocol that has been overridden adn axtended in more unnatural ways than X, it has to be HTTP. (At least X was intended for applications from the outset.)
Re:Time for twm to die? (Score:2)
Re:Time for *BSD to DIE (Score:2)
Then there is the reason behind your post. Someone who was detached and objective would not bother to post something like this deep within a thread on a completely different subject. The fact that you have says that you're either selling something or at the very least that you have some sort of irrational bias against *BSD. Are you one of those people who actually thinks that it is a competitor to Linux? Linux and the BSDs are no more a competitior than Ford and Mercury are. Development work on any one of them helps all the others as well. A great deal of the code that you find in a standard Linux distribution comes straight from BSD, including portions of the kernel itself. Linux and *BSD are also very compatible on the source code level. Very few and far between are the open source apps that have been developed on linux and not ported to *BSD. Ultimately you can think of *BSD as simply another kernel on top of which your standard apps and utilities such as XFree86, Gnome, KDE, Mozilla, etc. all run. Because of this it doesn't need vast numbers of users to keep it going because it benefits equally from all the development done to create apps for Linux.
If you want to rant about something, find something worth ranting about. Attacking *BSD is about as senseless as the US invading Belgium, there is nothing to be gained and Belgium is not an enemy to begin with. Why not spend some time and energy PROMOTING something instead.
Lee
Re:Time for *BSD to DIE (Score:2)
Re:Hmm... (Score:2)
But you can display the oldest "X binaries" running on your "Sun 3" on your "Alpha or PA-RISC or Intel machine" even it runs the latest and greatest X server, i.e. the protocoll is fully backwards compatible.
I bet you can even display simple X applications like xterm from today on the oldest X server for the sun 3. At least I could so with an old Sony NEWS workstation and NEWS OS (from 1990) (But sadly, starting a browser crashed the X server on the News...).
Re:10 years of binary compatibility (Score:2)
Re:Still binary compatible.... and.... (Score:3, Informative)
By what definition of "monolith"? The five or six client libraries you may or may not need to link to? The separation between client and server for display? The (optional) separation between graphics server and font server? The separation between graphics server and window manager? The separate client libraries for low-level network protocol and widget set? The loadable modules which implement everything from hardware backends to input device drivers to font rasterizers? The separation between user-space and kernel-space components (particularly for 3D graphics rendering)?
Which of the components I have mentioned so far is the "monolith" of which you speak?
Re:color depth (Score:2)
Re:color depth (Score:3, Interesting)
I would say that a couple of years ago it would have been worth solving the problem, but now I say crank it all the way up and don't worry about it. I can certainly see the problem, old applications would never understand being told their colorspace has changed, though I would think you could slip something into the X libraries that could make it work for new and dynanicly links apps, but I'm far from an expert.
Re:color depth (Score:3, Interesting)
"[the driver] provides support for the following framebuffer depths: 8, 15, 16, 24, and an 8+24 overlay mode.
All visual types are supported for depth 8, and both TrueColor and DirectColor visuals are supported for the other depths except 8+24 mode which supports PseudoColor, GrayScale and TrueColor."
I never needed something like that but I knew this because a colleague requested a G450 for a PC workstation he was to use alongside his trusty Octane, just for that feature... not that the G450 isn't an otherwise excellent choice for a workstation of course. I have one at home and it is the best thing I bought for my PC after that SMP motherboard...
Re:binary compatibility (Score:2, Insightful)
but XFree86 retains compatibility for 10 years and it is "impressive"?
Apples and oranges..
DOS is a 16-bit operating system for 16-bit processors,
the argument against DOS compatibility was that
to do this, Windows had to include a lot of 16-bit
code, instead of being fully 32-bit.
This caused windows to be notoriously unstable,
(WinNT on the other hand, is fully 32 bit, which
is one of the reasons 2000/XP are more stable
than the old 95,98,Me branch)
X never had any such problems.
Retained backward compatibility is impressive, because it is an indicator of a good original design. (in the X case)
But backward compatibility that serves to retain a flawed design is bad. (the windows case)