X Window System Turns 30 Years Old
An anonymous reader writes "One of the oldest pieces of the Linux desktop stack still widely in use today is the X Window System that today is commonly referred to as X11 or in recent years the X.Org Server. The X Window System predates the Linux kernel, the Free Software Foundation, GCC, and other key pieces of the Linux infrastructure — or most software widely-used in general. Today marks 30 years since the announcement of X at MIT when it was introduced to Project Athena." X wasn't new when I first saw it, on Sun workstations the summer before I started college. When did you first encounter it?
that's where I first saw X. at DEC we had DECwindows on ultrix (bsd like unix) and vax/vmx.
motif was the toolkit we developed guis in. and we used UIL to describe the UI, which was data that was read in and could change the look/feel of the widgets or their layout without rebuilding from source.
instead of node:1 for a display it was node::1 for the display (double colon meant decnet instead of that newfangled thing called IP)
--
"It is now safe to switch off your computer."
30 years is long enough.... time for the ritual of "Carrousel"...
30 is ancient in computer years, the X system is too old for the new generation of developers. I recommend we replace it with a far more superior one written in Javascript and Rails. With AGILE development methods we can have a better system up in a week.
Was in school, supposedly the first community college on the internet (ISDN to UVa across town) and we had NeXt workstations. I do not remember if they used X11, but that clued me into Unix. Later that year we wanted to get our gopher and mosaic servers on a better box, so I took an amazing 486DX2 and setup Slackware. There I know I saw X (although it was later removed from the server). IIRC I downloaded the entire set of Slackware discs directly to floppy using FTP from Sunsite the first time and NFS the second from UIUC (after searching hours for open NFS exports in the mirror lists). I did it directly to floppy as I did not have enough HDD space for the files and the currently running OS. I think that was Linux kernel 1.2.10. Am I old?
Silence is a state of mime.
First time I saw it was also on a Sun. Lowly kids like me (data entry clerk) had to use DOS on the job but the cool guys (engineers) had Sun workstations running WABI*. I was blown away by how much more advanced their stuff was than what we were stuck with. First time actually using it was when I finally managed to get Slackware installed along side Windows 95.
* Sun's Windows Application Binary Interface which allowed a full blown Windows 3.1 installation to run on their "desktop".
Creationist Textbook Stickers Declared Unconstitutional by CowboyNeal
It's funny, I'm working on a project for which a lot of the components were coded back in the mid '90s. The state of the art really hasn't advanced since then. The basic API (Xlib/Motif/Xcb) are nominally well documented -- you can find books and the library calls have man pages. Newer libraries and X extensions are a hodge-podge of largely-undocumented and generally incompatible API calls that take more work to integrate than they do to program in (Assuming you can find an example to work from.) The actual frameworks typically require you to drink all their kool-aid in order to use the framework. So I could go GTK+ or QT, learn their idioms and framework implementation details and that's great assuming I never want to change frameworks again and am willing to accept their quirks. And outside of QT, everyone (including motif/xlib) re-invent C++ badly with home-rolled type systems which often involve pushing strings around. Brilliant.
Somehow despite all this it still does what it does better than anything else I've seen. I'm not sure how this is possible, but there you go.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
Mine would be as a first-year EE student, NC State U. 1987. OSF wouldn't ship Motif for another year and half, so it was Athena Widgets and TWM all the way.
God, I miss the screaming. :-)
They are replacing X11 with Wayland. There's definitely much of X11 that is obsolete from a developer's standpoint. Pretty cool actually. http://en.wikipedia.org/wiki/W...
*plays the Apogee theme song music*
Back when REAL Linux distros were named by the kernel version.
Employer morphed from being a Unix shop (1990-2000) to Microsoft + Mainwin (2000-2010) shop, then slowly coming back to display agnostic (2011 - till date) (but limited to X11+OpenGL or MSWin) shop.
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
Paul and his adviser, whom I forget, wrote it in the early 1980s at Stanford. MIT liked it and decided to manage its development. It was after Xerox Parc and Apollos distributed graphics system, but before Sun, Apple and MicroSoft. Following Unix's minimalist toolkit naming convention "X" was the command stream and "W" the display api. Our Stanford computer joined in at version #5 on a VAX. It was commercially supperted around version 10 by DEC and Sun. And "froze" at version 11, going into 2nd and 3rd digit numbering after that.
There was always the intent to make it objected-oriented, hence the tootlkit kludge called Motif. The early 80s was in flux over OO languages Xerox MESA, way-to-slow Smalltalk, ObjectPascal, etc. C++ and ObjectiveC wouldnt be around for a few more years.
I was still working at Symbolics back then. We thought it a little silly that the input focus followed the mouse.
Now I sort of prefer it that way...
On a re-purposed Win NT 4.0 box running OpenCaldera 1.0. That was when I first dipped my toes into the Linux pool, and I've been swimming happily ever since.
Back in the day the repaint strategy of XFree86 was terrible and windows flickered a lot when their contents were updated. Windows did not have this problem. X got rid of the flicker it when we moved
You are confusing an implementation XFree86 with the general case (X). As it happens, X supported BackingStore on windows for a long time, which meant flicker-free updates in the 90s. I think XSGI had that on by default and it looked amazing.
Whichm, on-topic is how I first encountered it. Something on an Apollo (by that stage a rebranded diskless HP workstation running CDE) and an SGI of some sort, in 1994. Holy fuck the SGI was amazing.
SJW n. One who posts facts.
I've been using Linux/UNIXes for 15yrs now. One of the beauties of X11 has been the fact that the application programmer typically does not even have to /plan/ for network transparency - it's built in right from the start (in the various graphics toolkits), no special APIs to .
This means that whenever the users have a need for displaying X11 apps remotely (e.g. needing to deploy new thin clients at short notice to accommodate new staff in a corporate environment - very quick setup time), you just simply set $DISPLAY and away you go. I've long come to count on this feature and I value having that option kept open all the time.
I believe in the future fibre optic LAN equipment will come down in price and will offer much lower-latency and higher-throughput than today's copper-wired Ethernet. It may even get to the point where transmit times of sending bitmapped real-time graphics over fibre may be as fast as a CPU writing to a reasonably modest PCI/AGP graphics card.
I think the Wayland project is making a SERIOUS mistake in treating network transparency as a second-class citizen, and will likely see the project relegated to a toy-like status (useful only for gaming and entertainment, or apps that need extremely low video latency like video editing suites) and shunned by the corporate world.
If the current X11 protocol makes it hard to do anti-aliased text, glossy/brushed GUIs, zooming fading menus, wobbly exploding windows and the like, then what we need is a new set of core drawing primitives, much like Apple's Display Quartz system (IIRC). Call it X12 if you will, but keep the network transparency in and that decision will pay off many times over.
I personally have no need for such resource-hogging eye-candy - I turn all of that off and prefer a minimalistic slick-but-functional snappy inteface. I am perfectly happy with X11, and all the current-version applications I use work well with it. It has its quirks and faults, but I believe they can be reasoned with and there is certainly room for improvement: http://www.x.org/wiki/Developm...
I also think the Wayland proposals of polling (pixel-scraping) window buffers and sending them over rdesktop for remoting is only going to lead to massive CPU overhead on shared application servers, for one thing.
At the very least, I'd like to see the major graphics toolkit groups (Qt, GTK, WxWindows et. al.) collaborate on designing a standard remote drawing protocol that has similar transparency to X11 - then I might have more respect for Wayland attempting to replace X11.
(sorry for double post - accidentally selected wrong formatting mode. Mod my other post into oblivion if you wish).
There are four different protocols that permit double-buffering on X. These days, pretty much everyone has converged on using XRender and manually doing the buffer management. For most of the history of X, different vendors supported different double buffering APIs and writing code that would detect which one was available and using it was painful. Double buffering isn't part of the core specification, because the RAM requirements for two copies of the frame buffer were too big for a lot of early implementations.
I am TheRaven on Soylent News
I first remember seeing X11 on a family vacation. We visited my uncle on his remote tropical island on which he was building a theme-park. My sister actually introduced me to it, because she knew it.