XFree86 10 Years Old
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.
XFree86 is now easy to install. Does anyone remember, back in the early 1990s, going through the agony of trying to get XFree to run on a Linux box? Why it didn't have 'standard' 1024x800 screen mode, I'll never know.
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...
--- My dad's political betting
...it still doesn't have Albert Einstein helping you search for files on your computer. You call this advancement!?!
-- We live in a world where lemonade is artificial and soap has real lemon.
Congrats to X on it's birthday. I've noticed in the past on /. that everyone has opinions on what should be changed in X. I havn't had any problems with it and I'm quite pleased with it's performance. But i'm wondering what do you guys thing should be changed/added/taken out etc?
ahh, the egg in the basket..
Now the X has another meaning :)
Stupid like a fox!
Well, I hadn't started my experimenting with X 'til five years ago, but I distinctly remember buying a crappy PC at the time with low-end onboard video and having to wait six weeks for the X guys to write drivers for it. Man, that was painful! (What did I know, eh?)
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.
========================================
Death will come, and will have your eyes
-- Pavese
For the inevitable "X sucks, I hate X, let's replace X, screw X" crowd: Suck eggs.
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.
STOP . AMERICA . NOW
X rules:
- 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.
---
"The chances of a demonic possession spreading are remote -- relax."
Men and women have lived in millions of years and we're still compatible. Ain't that cool? Mother nature must have been a heck of a designer.
Beware: In C++, your friends can see your privates!
Can anyone give a quick rundown of the most notable points in X's 10 year history? Or is there a URL that does that?
Thanks
Ale
I really hope you are joking and pretending to be misunderstanding things. I can't for the life of me understand how you can achieve this catastrophical level of confusion, and still think you can understand it enough to comment on it on slashdot. Oh wait, this is slashdot, well, I guess it's quite normal then...
Nobody said something even remotely like that.
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...).
If BSD is dead or dying, why do you take the time and effort to write this repetitive rant about it? If you were to take out all the sentences that simply repeated "*BSD is dying" your post would be MUCH shorter. The form of persuasion you're attempting by saying the same thing over and over again fell out of favor among marketing experts during the Eisenhower administration.
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
Muslim community leaders warn of backlash from tomorrow morning's terrorist attack.
I loved early X.
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.
They should have used the Java pet instead, just to annoy Sun and make some headlines. :)
Beware: In C++, your friends can see your privates!
"Mach is the biggest intellectual fraud of the last decade."
"Really, not X-Windows?"
"I said 'intellectual'."
-- overheard in Silicon Valley
Try Mandrake. But I also encourage you to check up with the graphics board manufacturer web site, and find out about your monitor timings - escpecially if your hardware is new.
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.
Stop the brainwash
Well done man, getting modded as insightful for admitting that you have been asleep for 6 years ;)
-- What do you need?
-- Gnus. Lots of Gnus.
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.
dude, you just got trolled.
You dont have to deal with several hundred students using Xterminals...
.xsession and window manager configs until I haven't a clue what does what and can't help them sort out problems.
- 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
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.
"How can you claim that you are anti-crack, while still writing a window manager?" — Metacity README
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?
"How can you claim that you are anti-crack, while still writing a window manager?" — Metacity README
Only if your Linux system supports the old a.out exec format and the ancient libc installed, no?! :-)
/tmp/bin$ file xload
Go ahead, grab XF86-2.1-bin.tar.gz and see if any of the binaries run
xload: Linux/i386 demand-paged executable ZMAGIC), stripped
-adnans
"In short: just say NO TO DRUGS, and maybe you won't end up like the Hurd people." --Linus Torvalds
Does XFree86 provide alternate color spaces as overlays? I have never tried, but I know sun hardware will allow an 8bpp program to run in a 32 bpp screen depth as an overlay. This would make things much easier than switching on the fly. I think overlays are better than changing screen depths ont he fly. There was a time when changing color depths would have been more important, for example my Voodoo3 needs to be in 16bpp mode for games, and 32bpp is nice for non-games. Also, people wanting to have really large screens most of the time, but added color depth at a smaller resolution is not so much an issue with cards with massively large amounts of memory, that can operate in massive color depths at any resolution.
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.
XML is like violence. If it doesn't solve the problem, use more.
Some of the contributors to the "fortune" program (a random quote generator) had some affectionately nasty things to say about X windows. Under Linux, try fortune -m "X windows". A random sample:
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.
MS windows retains compatibility with 20 year old DOS programs and they are considered behind the times,
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)
DNS: see RFC 2671. 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. (The extension mechanism seems to be that if the client sends an extended command that's not recognised, it'll get an error. :) )
GROGGS: alive and well and living in
I want 3 of those 10 years back for wasting so much time trying to get my XF86Config file to work right.
--
Does anyone remember
You're talking about RandR support. It's coming (maybe in XFree86 4.3.0 - don't know for sure), but it will allow you this exact feature, and you can also rotate your screen (90, 180,270 degrees)..
Hetz (Heunique)
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).
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.)
"Provided by the management for your protection."
Yes, I'm Blacking Out right now, or whatever...but this just had to be said.
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.)
± 29 dB
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....
"How can you claim that you are anti-crack, while still writing a window manager?" — Metacity README
Like you said, Sun *hardware* did this. Apparently XFree86 supports this, at least with Matrox hardware. Here's what mga(4) says:
"[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...
Will we be able to say the same about Perl in a few years?
If I understand the idea behind Perl 6 right, it won't quite run Perl 5 unless you compile the P5 code and decompile it to P6. If this happened to XFree86, wouldn't we see it as a stain on its history?
Let's try to make sure we can run this announcement (backward compat for 10 years) for all our projects.
-twb
The real solution is to have "true color" where a program does not keep track of a colormap, but instead asks for a color directly and the server does whatever it wants to get that color (such as allocate it from a colormap).
X supported this but had a serious design flaw: the calls for true color only worked when the screen was in true-color mode. You still had to manage colormaps if it was not in this mode. Since virtually all screens then had colormaps, most programs did not bother with the true color calls, or they made buggy untested versions.
When True Color became practical people quickly discovered that 90% of their programs did not work. Most manufacturers (Sun, for instance) were forced to add hardware to their cards so that some pixels could be in true color while others were in colormap. It wasn't until XFree86 started doing true-color on PC cards that lacked such hardware that programs started to be rewritten so that colormaps were not necessary.
Why did Windows not have this problem? In fact it was due to a good design decision, of the type that the X people seem to seriously lack the ability to make. The "true color" calls worked even when the screen was in colormap mode!. This meant that a program that just wanted a color worked when the screen was set to full color. Only programs that wanted to do funny things to colormaps failed, but on Windows this was only a small percentage of them (mostly games).
Why didn't X do this? It was due to a weird type of stupidity: The Windows version, when asked for a random color, produced a halftone of a fixed colormap, which looked horrible. But there were 64 (16 on early versions) of colors that looked good on all displays because they did not halftone.
The X people probably thought of this design, said "only 64 special colors looks good, while with our design the programmer can choose any set of 64 colors, and we won't implement that less-powerful design, besides they can always emulate it atop our design"
People writing Windows programs, however, said "I can use this complex mess to manage colormaps, or I can use this nice simple call to get a color." They then try it, and say "well, only these 64 colors work." But then they don't say "that sucks, I better learn colormaps". Instead they fix their program to only use the nice colors! And their programs worked right away on True Color because Windows had provided the stupider and simpler interface, and not worried that that interface could not do "everything".
I sincerly hope the X developers will learn something from this about what a good interface is. But from what I am seeing come out of there, I'm afraid it is not happening.
Heck, I was programming X back when it was X10. (X version 10, that is.) I suppose one of these days I should learn how to do without X10's XAssocTable stuff so that I can stop linking with -loldX.
-- Alastair
It may make sense to question the idea of having a window manager at all. It seems quite possible to implement the windows in the toolkits and reduce the complexity to a "task manager" that only needs to be running if the user wants a list of running tasks. Yea, the window borders will look different depending on the toolkit, but I don't think it will be that bad, and it might lead to designs where there are no window borders.
For most of us the killer feature is network transparency.
Absolutely! Those sitting at home with single boxes connected to nothing but their ISP will never know the utter usefulness of this.
I'm running Adobe Framemaker 6 on my FreeBSD box. How? Easy. It's called network transparency. The application is actually running on my Solaris box, but being displayed on my FreeBSD screen. Ditto for Clearcase, ClearDDTS and Rational Rose. Screw that old horrible Sun monitor that makes your eyes wither into dust, I can use the glorious Sony Trinitron on the Dell GX240 instead!
A Government Is a Body of People, Usually Notably Ungoverned
what is Sub7?
cpeterso
Also common is assumming an image could be built in 8 bits per pixel, assumming it could blink everything that was one color by changing a colormap entry, or that various colors could be produced by xor'ing pixels. These would naturally happen if programmers assummed colormaps, and these problems also exist in Windows programs.
In any case the fact that no extension was added for about 10 years is not something X can be proud of. The problem is that everybody who wrote an extension refused to write code to emulate it on old servers, instead insisting that programmers write code to detect and use the extension, and forcing them to emulate the extension if it was not found. It was easier for programmers to just emulate the extension (with modifications they wanted) and ignore it. For this reason nothing appeared for years and years.
Only recently has Xrender been added and started being used commonly. But even there it is a pain, you have to check for the extension and figure out how to draw everything two ways. However Xft (the antialised font stuff) does have the ability to work on systems without Xrender, for this reason almost everybody is working on antialiased fonts, but nobody is using the rest of Xrender.
How do you feel about OS X? Just curious.