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"...
There's no replacement. This Wayne's World fiasco still needs 5 years until delivery.
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.
It was called "Decwindows", and it ran in VAXStations (my first one was a VS-2000). To have several DecTerminals in your desktop, each one connected to a different machine was something magic at that time!
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?
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 to composited desktops, although tearing still occurs on many setups. The GNOME2 / KDE3 era was kind of a sweet spot when we had relatively good performance and nice composited desktop. After that the big Linux desktops have gotten quite sluggish and animations get sometimes choppy. The composited desktop of Windows is much smoother and more responsive. Waiting for the angry replies for saying the truth.
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. :-)
Happy Birthday X11. Still the best piece of software ever written !!!
Any Linux or Mac still runs X11 (or XQuartz)
A roomful of IBM XTerminals with Motif.
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*
X11 is long-lived, not because it's the best, but because it's good enough and that there are a huge amount of applications depending on it. Changing to something else will just cause pain.
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
First time I saw it was on Sun 3s and Sun Sparcs I think in 1991 - might be too early for Sparcs? X11 blew me away right after I'd got used to terminal sessions - having a graphical interface and being able to send windows anywhere was just.. well.. futuristic. It still is. Played a lot of xtank, perpetually fiddled with the .XDefaults.
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
Worked OK then (more than a few memory leaks). Works much better now.
Kind of amusing the people who want to get rid of it just because it's old. Especially amusing are the people who seem to think they could re-write it in a week. Delusional but amusing.
Cheers,
Dave
They that can give up essential liberty to obtain a little temporary safety deserve neither safety nor liberty.
Ben
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.
University days. 20 years ago. HP-UX terminals.
I compiled and ran it on my Sun 3/50 in 1989. SunView was better at the time. Fantastic machines. Still the best feeling keyboard I have ever used. It also ran on DecStations in our lab. Those were great days.
1989? could have been. It was about 3 months before X11r3 was released.
It was and still is the best remote graphics/display system around.
Nothing has surpassed it.
It is time for a new protocol (as that is what the 11 is referring to).
Time for an X12r0. And the protocol doesn't have to be fully compatible with its predecessor, but a compatible plugin should be available.
And Wayland isn't it. No remote protocol whatsoever.
I was a senior in high school and wound up at SIGGRAPH in Boston in 1989. I was doing graphic design and programming for a small company that did medical imaging on the Amiga and we were in the Amiga pavilion. Nearby were some guys who had developed an X11 server and tools to build common X11 programs, with an optical three-button mouse. I think it was Dale Luck's company - I found a relevant announcement:
https://groups.google.com/forum/#!topic/comp.sys.amiga/ks3jiuCT5oQ
In 1992 I went to work for a company doing graphics software for the film industry. I was supposed to be writing Amiga software, but when I showed up they pointed to a $30K SGI 3000 system they had just bought and said "learn that". That began my crash course all things UNIX, X11, Motif, and gl. One of the cool things about SGIs was their gl api (the precursor to OpenGL) that integrated with the X server, so you could log into another SGI box and run 3D graphics programs with amazing speed remotely.
My campus had some Sparc systems and more DEC systems, but it wasn't until '91 when my campus got a boatload of AIX systems that we really got into it and then shortly after that I got into Linux.
In college. I interned for a startup internet service provider in Niagara Falls called Macronet. It was located on my college. They had a BSD/OS server, on the console startx, into twm, using Mosaic. I still use TWM
-- 4 8 15 16 23 42
Undergrad CS lab had SGI and HP machines, and another lab had some Suns. Also 3 button mice and a scroll wheel that was a separate unit from the mouse.
The fun of making things pop-up on other people's screens on the lab. Nothing was locked down by default so unless you changed the permissions anyone could launch a process to display on your screen.
Neko was fun too.
I heard so much about Linux, and how it blew Windows away, in terms of performance.
At the time, Windows 1995 ran acceptably well on a 386. Linux, with Gnome, was so slow, I could practically count the pixels as they appeared on my screen.
These days, I use Linux, nearly exclusively. On modern hardware, I think Linux does just fine. But on 1990s era hardware, not so much.
I'm supporting X to this day, for some niche publishing applications still in active development. Whee!
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.
Two reasons I went with OS X was for java and X11. Neither one is included by default anymore and I can't say I miss them. I have run X11 programs under OS X in the past but they're just so ugly and awkward I delete them immediately. Maybe if all you run is X11 then it would be ok.
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).
To this day I am puzzled by hacks like Citrix. They actually make money selling it. We've had a nice remote display capability for 30 years and no one has ever paid attention. The thing I admired about X was the high quality documentation they had since day one. A class job.
(sorry, used wrong formatting mode - moderators, you can mod the above post down to -1, redundant if you wish).
. . . on a Silicon Graphics Personal Iris - 1990
I also had a monochrome Tektronix XTerminal on my desk with 10Base2 Ethernet!
Not sure about the version number, but I think it was v2.4 of Sun Solaris, when around 1996 LG Electronics Brazil gave me their main Brazilian server and a full stack of Sun documentation to start their operations down here.
Had heard about it since the early 1990s, as far as I can remember, mentioned in Byte magazine announcements of QuarterDeck DesqView/X. Must have been late 1991, or most probably 1992. Perhaps even earliers, as in the middle of 1991 I asked an IT manager at Siemens Brazil about some Unix advertising in Byte, and he told me it was far superior to what we had, but it was too expensive — Brazil had crazy prices back then. Still has, but it was even worse, and imports were mostly forbidden.
30th Birthday?
Renew! Renew! RENEW!!!!!!
Besides Athena, CMU also had the Andrew network, some campus-wide middleware concept based on X11 and Unix, which included a bunch of GUI apps including a word processor (?!), the Andrew filesystem (now OpenAFS), and plused email addresses where, by convention, your main address was user+@andrew.cmu.edu which discouraged brokeass forms that reject + characters.
in ~1996, XFree86 rendered all the Andrew toolkit's cursors as a single pixel white dot which made their apps useless to me, and this bug persisted for years, but I was still able to see how cool the apps would've been if someone had fixed the bug because aside from that everything worked.
Networked cairo would be a pretty good, just nice smooth vector primitives over the net.
I was a co-op at IBM in Manassas, VA in 1992. My group was aggregating components for a submarine-based rack system with an embedded "monstrous" 19" monitor. I thought running processes on a remote system and viewing the result on a local system was the coolest thing I had ever seen in my life. My mentor was tasked with finding every security leak he could in X. I was clueless then and my brain on overdrive just learning vi (not vim) and ksh. It was a mostly worthless internship, but it did imbue my soul with unix. So I have that going for me.
I had a shell account on a Vax earlier, but if it had X I did not have access to a Graphic Workstation to access it and never knew. The first time I saw X was in my C instructors office, she had the graphics workstation, I am thinking it was an SGI actually but I am not sure. The server was definitely HP/UX, the department had a number of them in a kind of cluster, you got a login on a particular machine but if it was busy it would just authenticate you and pass you to another.
I still didnt have a graphical workstation to access it at that point, only got to play with it a few minutes on the teachers machine. The next brush was using that account with Desqview/X to run remote apps on the same servers from my PC in my office.
This would have been during the 80s and very early 90s.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
I first saw X on Apollo workstations in 1986. At that date all the Sun workstations in the lab still ran a windowing system called 'News', if I remember correctly. I saw X on both Suns and Silicon Graphics workstations before 1988, and on DEC Station and RS/6000 machines shortly thereafter. We also had PERQ machines in the lab but I don't believe they ever ran X. In those days I used Xerox 1108 and 1186 machines, which didn't run X.
The first machine I personally owned which ran X was an Acorn R260 running Risc IX (BSD 4.2) in 1990. I switched to Linux at kernel 0.99pl11 in 1993, which is to say more than twenty years ago.
Gosh.
I'm old enough to remember when discussions on Slashdot were well informed.
I first saw it while walking down the halls of the Infinite Corridor at MIT - there were rooms with a sign saying "Project Athena". I didn't actually start using X until a couple of years later when as a graduate student, I used X10 on Unix decstations. I remember what a pain it was when we upgraded to X11 and a number of the X programs we had needed to be rewritten since X11 was not backwards compatible with X10.
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.
One of the beauties of X11 has been the fact that the application programmer typically does not even have to /plan/ for network transparency
That's simply not true. It's very easy to write an application using X11 that works reasonably well with a local view but performs *terribly* when running remotely. You definitely need to take these cases into consideration when developing your application.
Sure - you don't need to make special calls in order to get network transparency - but these days nobody does. RDP and other OS-level remote desktoping things will do that for any application - and often better.
I remember the glory days of X and showing coworkers how cool it was that I could work remotely from a machine with ease. But these days X11 just sucks compared to other remote desktop offerings - especially over high-latency connections.
"Ignorance more frequently begets confidence than does knowledge"
- Charles Darwin
On a friend's first Linux installation. I was unimpressed, as I didn't see much use in a system that wouldn't let me play any of the great games of the time... And the WM he used was ugly even compared to MS Windows 3.x.
Great..it works for you and the type of applications you use. It absolutely does not and will not work for whats coming. Do you really want to try to move 4K bitmaps over the network? Some of the things that are "eye candy" for you are going to be needed for the applications and interfaces that are coming. X11 needs to be replaced and unfortunately Wayland is not going to cut it either.
I started my IT life on DEC/VAX with VT220 terminals. VMS wasn't too. Then Solaris 4.* came along and I had the privilege of setting up a bunch of X-Windows terminals. UNIX, I found, rocked much more than VMS. The best GUI I ever used on X was xterm. Nowadays the herminal emulators on Cygwin are pretty good. The socond best GUI which I ran on X is Eclipse. The Internet browser comes in third.
I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
At the job I'd just started: Sun 3, Irix mostly.
After working for a good number of years to get into Unix, I'd finally made it.... Then, years later, I made the mistake of saying to my managers that even though I was a good programmer, no, I wasn't afraid of hardware....
mark, sr. Linux/Unix systems administrator
I believe X came out of Xerox Park. The X was for Xerox. I first used it on the BLIT. ;-)
SCO OpenServer 5 in the late 90s
Worked at Altos and Altos Unix was command line. We worked with SCO(Santa Cruz Operating Systems) and brought SCO Unix on to our x8x based server hardware.We were all excited. Wow no more have 2 vt220 terminals in your cub. With an X-terminal you could open multiple shell windows; AMAZING!
Off course our senior engineer stayed with his 2 vt220 ASCII terminals, while we fought for the new black/white xterminals, and was still more productive then us.
Then there was the big fire storm where one camp said X was a resource hog(inherited classes etc) where the other camp said , it didn't matter as memory and CPU power was becoming greater and cheaper.
Late 1989, on a VAXstation II/GPX running VMS 5.0. Not exactly a desktop workstation, it was a desk-side box as big as a 2-drawer file cabinet. That newfangled DECWindows came out and killed off the old VMS GUI "VWS". Right about that same time the VAXstation 3100 came out, a true desktop VAX workstation...
The early versions ran a "desktop" called "XUI", which was replaced with Motif in 1991.
Another commenter wrote that the performance has not improved that much since the early 90s. My current desktop Linux box has the equivalent CPU horsepower of 10,000 VAXstation 3100s, but it boots to the login window only about twice as fast. Progress?
there are 3 kinds of people:
* those who can count
* those who can't
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.
Compared to what? Unless you use old motif apps, X11 is already doing this with QT and GTK. Nobody uses X11 drawing primitives anymore.
At least with Wayland, it is optimized, and you also have the choice to use RDP or other drawing protocols that work even better.
Nostalgia is fine, but what you say simply isn't true anymore.
Useless for the corporate world isn't that bad, if Wayland have been scientifically proven* to increase FPS by a significant margin, Valve will hire some of the Wayland devs, pay them to improve Wayland even more, draw more peoples to Linux as their main gaming platform, increasing amount of games ported to Linux as devs finally acknowledges that Linux is a viable platform, AMD and Nvidia finally improves their drivers, more people games on Linux, and the vicious cycle continue... and gamers wouldn't give a shit about network transparency as they already have Nvidia Shield and Steam In-Home Streaming
*Note: It means that Wayland could increase a game FPS, all game in a broad hardware specification, not like increasing FPS from 200 to 210, but like from 20 to 50
Since, I'm not a programmer, or wasn't at a University in the late 80's, my first exposure to X was in 2002 on a wacky Red Hat 6 variant on a wacky MIPS variant. In fact it was Slashdot where I first heard about Linux, so I'm a johnny-come-lately.
Since the machine ran RH6, it was a fairly standard distro of that time period, Windowmaker was the default window manager, though others were installed, KDE1, Gnome 1 something or other, FVWM. Default desktop looked something like this:
http://ps2linux.no-ip.info/pla...
Yes, my first exposure to X was on a PS2.
http://en.wikipedia.org/wiki/L...
However much the technology improves WANs won't go faster than the speed of light. A perfect network and you are still talking around 17ms to get across the USA. Make lots of round trips and application performance sucks. Use touch interfaces and humans start noticing around 1ms of latency and don't like latency over 10ms. You can't fix the problem with X11.
I first saw X windows on a system used to design/simulate electronic circuits Daisy Systems" in 1988. One of the founders of Daisy Systems -Vinod Khosla- later went on to found the company (Sun Microsystems) where I saw X windows for the second time (in a University CS lab). After 6 months in University, I started using Linux where X11R6 was the thing (along with the 1.2.13 kernel). That was a long time ago (1994). In the years since, I've seen it on more SPARC machines, AIX machines, DEC machines, etc.
"Do you really want to try to move 4K bitmaps over the network?"
I dont want to touch a 4k bitmap in any way shape or form. Particularly not over the network.
"Some of the things that are "eye candy" for you are going to be needed for the applications and interfaces that are coming"
You have to be more specific. Something is 'coming.' Lovely. Is it something I might actually want on my computer for some reason, or is it more flashy marketing and idiotic overblown effects that I will just be looking for a way to disable? More likely the second I think.
There are a very small set of applications which have a genuine need for that kind of bandwidth devoted to video. And it's really not rocket science to figure out it's better to run those on your workstation instead of doing it remotely.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
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)
In 1992, when I entered the University, I managed to see a variety of Unix workstations in different labs. Our Computer Science labs were exclusively Sun workstations - at the time, SunOS, not even Solaris. We had some DECstations (the ones based on MIPS 3k, not Alpha) in our VLSI lab, running DECwindows on Ultrix. In our Parallel Computing lab, we had some RS/6000 workstations running AIX and Motif (remember that?) There was one term when we had a Real Time computing class, which involved running HP/RT - a real time version of HP/UX on the PA-RISC. Elsewhere, I saw SGI Indigo workstations in the Graphics lab of the CS department.
At that time, I was new to UNIX, so none of these were easy to use, so having X on them didn't really help me. What revolutionized my computer use were the NeXTstations in our computer center. Our computer center had NeXTs, IBM mainframes, Vaxes and Suns. The NeXTs were somewhat painful to use, being diskless workstations, but they drew their data from the Sun servers. It was there that I became a fast typist, and learnt to use quite a few applications, like NewsReader (for USENET), Improv (for spreadsheets) and Frame. After I graduated and NeXT got bought by Apple, I missed them.
The thing I miss about those days is not X, which never impressed me, but the fact that most of those RISC beauties are out to pasture: even having Windows NT on some of them, like Alpha or MIPS, could not save them ;-(
Can anyone explain why NeWS was ultimately replaced by X on SunOS? I never understood that one.
I was in engineering grad school at Texas A&M and we were investigating MIT Athena. We already Digital Equipment Corporation workstations -- VAXwindows running VMS and DECwindows running Ultrix, but X10 R3 from MIT was a lot more interesting. It loaded and ran on Ultrix with a minimum of fuss. Very cool for that time.
Here is an example. An aerospace customer of mine wants to use their CAD and engineering apps from terminals on the shop floor. They do not want to put a high dollar workstation in that environment but they do want the full graphics. The current methods for doing this don't really work acceptably with todays video resolutions, much less with retina/4K resolutions.
How about remote access for contract developers over VDI? IDEs work better with more screen real estate today. How do you think they are going to work once 4K screens become commonplace.
Once upon a time, anything more than 16 colors and VGA was "eye candy".
The VAR for which I was the Tech Support Department became a reseller for SUN, NOVEL, and AutoCAD during one busy six month growth spurt. Most of my training consisted of "here's the manual, read it and explain it to us tomorrow". When they handed me the document crate [ about 10,000 pages ] for UNIX and the Sun system I suggested that a bit of formal training might be in order. I got a 4 day System Admin class from SUN that included an afternoon on the X-window system.
By 1988 we were networking PCs and Sparcstations using PCNFS and running X11 clients on the PCs using Hummingbird software. That allowed us to move the workstation out of the engineers office and into the server room where no one person could horde the physical machine by virtue of it being located on his/her desktop. It was a giant step backward for personal computing but a leap forward in productivity since the grunts didn't have to wait for the boss to leave for lunch in order to get into his office to use the decent computer.
"Here is an example. An aerospace customer of mine wants to use their CAD and engineering apps from terminals on the shop floor. They do not want to put a high dollar workstation in that environment but they do want the full graphics. The current methods for doing this don't really work acceptably with todays video resolutions, much less with retina/4K resolutions."
CAD is one of those applications I mentioned where you actually need the video bandwidth. Trying to do CAD on a dumb terminal with a remote client doing the processing is just not the right way to go about this. It wont work well with X and it also wont work well with any alternatives, real or imaginary, to X.
Pointing to poor performance in this application as a failing of X in the context of a situation where none of the purported challengers would do the job any better (or, in fact, at all) seems particularly perverse to me. It's like saying my old semi-tractor is having trouble pulling steep grades with heavy loads, so let's replace it with a Ferrari two-seater. Huh?
The correct solution here is probably to mount the guts of the workstations in some sort of protected enclosure that will shield them from environmental hazards, but still in the same general area, and just use long cables to connect input and and output devices at the desks.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
You're not making any sense.
I use simple minimal themes with Gtk and Qt (e.g. flat-colour backgrounds, system fonts like Helvetica, etc). AFAIK w/ GTK v2 at least, if not later, these still get drawn using X11 primitives.
This is not nostalgia. It is GETTING WORK DONE.
The way more recent toolkits are doing their rendering (composing client-side and sending bitmaps over) just shows that WE NEED NEW PRIMITIVES (like another AC commenter suggested - encoding Cairo calls over the network), and possibly other features to reduce client-server round-trip time such as display lists (from memory I believe NeXT's display system used them?).
It is not a valid reason to throw the baby with the bathwater out and do away with network transparency altogether.
My argument for producing something that will be accepted by the corporate world meant that corporate environments are one big important funding source for Linux/open source development - they will always buy support contracts from vendors such as Red Hat/Ubuntu etc, which allow these Linux companies to actively employ full-time developers on relevant open source projects.
As I said - Wayland may be acceptable for gaming, and probably would also be a reasonable solution for embedded devices (where network transparency overhead is not needed). But to propose it as the "next X11" is a SERIOUS mistake for the reasons I outlined above.
It is you who is not making any sense.
Watch this if you want to know why a number of X11 devs started Wayland: http://www.youtube.com/watch?v... .
You will still get your network transparency with Wayland, only in a different way. You can have an Xserver on top of it, or RDP, or bitmaps (like VNC)... But it will be up to the toolkits to use/implement it. Once the dust settles, implementations can become shared libraries.
Meanwhile, feel free to continue using whatever you like. You may have to use older software though, since there is little interest in developing X12...
I first saw X Windows in 1988 when they installed X terminals for the CS staff at university.
First used it in 1989 when they replaced the Telerays, Volkercraigs and old VAX in the CS 2/3 terminal room with X terminals off 3 MIPS running System V.
They wouldn't let us run Xclock because it wasted CPU cycles. I had to hide my copies of Tetris and Nethack inside object files.
The Workstations in Evans Basement (WEB), on a bunch of diskless Sun 4/50s running X10 with uwm.
Once I got settled in, I started running X11(R1? R2?) with a custom root window bitmap and fielded lots of questions from other undergrads about how I'd done it. I later worked at Sun on XNeWS and DeskSet, among other things.
Even to this day, I use X's network transparency, though mostly just for xterms at this point.
Your mentioning of IDE in this context was rather idiotic.
Undergrad classes '95 and on, then '98 at Sun's headquarters as an intern... many customer-facing individuals were also on Windows NT at the time, interestingly. Got my own private X workstation with Corel Linux around that time too, moved on to Red Hat and SuSE quickly. Pentium ll / 32MB RAM rocked!
The problem I have with the toolkits implementing network transparency is that:
a) there are many toolkits and they have to reach common ground for a protocol to be as universally usable as X11 is.
b) some toolkit programming teams probably don't have the resources or motivation to implement network transparency, meaning that the advantage of X11 (the application programmer doesn't have to plan for network transparency, it just happens) is lost.
If the application programmer chooses a toolkit that doesn't support network transparency (or requires special API calls to be made that they don't bother writing code for), then the application end-user is SOL if they ever find a situation (which can often come up unpredictably) where they need remoting (especially if it's an app that doesn't need low-latency high-bandwidth video access).
I explained that using a bitmap change polling system like RDP/VNC incurs CPU overhead that limits scalability. Sending core primitives over the network in a push-style mechanism is much better.
c) Just because Keith Packard and other former X.org developers are working on Wayland doesn't give it any further technical merit. It just means they have more experience programming graphics hardware and software stacks.
Wayland will be nothing more than a toy, like Windows 95. Several projects (like Berlin and GGI) before have tried to displace X11 and have failed.
If every toolkit finds that they still have to support X11 to be usable or popular, then it relegates Wayland to an optional side-extra.
It is a serious folly to think that Wayland will completely replace X11.
Who do you think you are to approach the long-time Unix community and tell them that they don't "need" a feature that they use every day, just because you don't use it, or you have a petulant want for useless eye-candy animations that other users have not needed for the last 20 years?
I like your complaint about not wanting resource hogging eye candy. No one does. Ironically that's one of the respond that Wayland's response to remote desktop is to pixel scrape, X11s way of doing it is horrendously inefficient.
Also what you want, at least the way you are describing it is not network transparency but rather user transparency. The ability for the use to send applications simply to a remote display server. There's no rain why this wouldn't work in Wayland but let's just rain on their parade and not even give them the chance to show it working.
I explained that using a bitmap change polling system like RDP/VNC incurs CPU overhead that limits scalability. Sending core primitives over the network in a push-style mechanism is much better.
Yes, you keep repeating that, but you don't seem to understand what RDP does: it's a protocol that sends drawing primitives from a client to a display server, like X, only better (less overhead, less latency, compression, etc). It doesn't send bitmaps, unless the primitive is a bitmap.
And it's built into Wayland nowadays: http://tech.slashdot.org/story...
X11 will go nowhere, it will be around for a long time in legacy systems. But for modern Linux distros, it will be replaced with Wayland. That's a fact.
If you want that to change, then you'll have to find people who are willing to maintain and extend the current X11 stack.
This isn't about eye candy. Watch the video of Daniel Stone in my previous post. X is a mess, people got tired of having to maintain it.
Like I said before: use whatever you want to use, the rest of us are moving on.
I would think a KVM-type solution would be the right approach for that. Use CAT5 based amplifiers/extenders to get the HDMI/DVI signal to the right place so that they don't have to have the workstations on the shop floor.
Yes, I am aware that RDP can send primitives. According to http://blogs.msdn.com/b/rds/ar... RDP under MS-WIndows is more-or-less implemented as a special graphics driver that simply relays the drawing primitive commands from a Windows application over the network to the RDP client.
X11 when being used with drawing primitives works in a similar manner - only the primitive commands are being sent.
However, the key feature that Wayland tries to hype itself on is client-side rendering - Wayland clients draw into a memory buffer (array of pixels) and then tell Wayland what parts of the buffer have changed, in order to force an update.
http://wayland.freedesktop.org...
The problem is that you have to expend more CPU time on the client to determine how to send those pixels to the remote machine in the most efficient manner. You have no insider knowledge on what sort of primitive was drawn (the app programmer will typically use a function call in the graphics toolkit to draw something - but Wayland won't know if the app just drew a 60deg arc, or plotted lots of little pixels all around the place?).
This is clearly a scalability problem on application servers as you add more users. Wayland refuses to go anywhere near remoting, so you have no way of /efficiently/ sending the toolkit primitive operations down the line, without having to rely on the toolkit designers themselves to design a common remoting protocol themselves.
This is a loss of progress - as I mentioned above, once app programmers have to go well out of their way to make remoting work, then many of them won't bother coding for it and you get stuck with useful (but not justified needing low-latency graphics) applications that can't be remoted in a corporate networked environment because the application programmer decided to use an amateur graphics toolkit that only uses Wayland.
Move on all you like, but one of two things will happen - either Wayland will be rejected by corporate environments, or it will eventually have to grow up and establish a decent common remoting protocol that takes no more CPU load than X11 - by which case you've essentially almost recreated X.
Lastly, relying on RDP is legally dangerous as it's patented by Microsoft and we don't know if/when Microsoft will assert the rights to their patents.
http://en.wikipedia.org/wiki/R...
Ha!
Did this in the late 90's through early 00's.
That exact scenario. Know what? It kicked some very serious ass. Still to this day we don't really have a software combination quite as potent. Here's the setup:
SGI Origin multiple CPU, lots of RAM, one or more 1000T interfaces. I started the thing on 100T, which was more than acceptable for most users, but I ended up with a lot of users.
ONE COPY of the software, ONE shared data repository, and the software contained data management, revision control, etc...
That machine hosted 30+ users via the X window system. Users could run another SGI, a PC, Linux, whatever they felt like running.
A simple script logged them onto the CAD system, where they could build solid models, make drawings, perform analysis, and many other things.
No user ever touched the data store. It was owned by the account that ran the application (SUID), and no user ever touched the application data either. All remote display.
Admin on this thing was fucking cake. Never had it so good. Still don't. And systems today that either run "cloud" or copy data all over the place are a mess by comparison.
The network model of the X Window System had some very serious advantages. Today we are missing out on a few options in most cases due to the lack of network transparent display capability. That lack is costing us a lot of time and money too. Thing is, nobody actually knows, so it's all A-OK.
At the time this was done, I competed with traditional setups and kicked their ass solid on every single metric. Cost, administration, performance, etc... It wasn't even a contest.
Today, with the networking we have and overall compute power available, it's hard to imagine how freaking good a similar setup would run.
Shop floor, various departments... no worries.
For the odd user at home, X required too much and we didn't have things like NX yet. That was a case for "screen scraping" type tech, to which I just setup a VNC like thing, let them access that over the home network, and life was good.
I could, and did, administer that thing from all over the place, often using one of those "Free JUNO" accounts, just to get a dialup and a few K/sec needed to run a command line or two.
Brilliant!
Truth is, the direction we took from those times, the decline of UNIX for this kind of thing, etc... was so much more labor intensive and expensive, I moved on to other things, occasionally consulting and mostly laughing when nobody sees the clusterfuck for what it is.
I agree with you about 4K and some other cases being more optimal without network transparency, but that's not the point. We also have other resource issues associated with those.
The protocol needs to have it all baked in, so that as we gain capability, smart people can apply it and actually get the benefit of it, not some diluted down thing we wish were as good as planned.
X did that. The protocol was there for when things grew, and some of us applied it all, and it rocked hard. A whole lot of us don't get it, and are still slogging around doing so many extra things we don't need to, it's a wonder there are any gains at all.
UNIX + X is multi-user computing. It's the bar, and most of the industry has forgotten what multi-user really means and how it can be used. Their loss.
Blogging because I can...
I recall seeing Jim Gettys doing a demo of X Windows at Siggraph 1984 in Minneapolis. He brought up a window, typed a command, got output and the crowd went wild. We were easily amused back then.
As others have observed, it became the basis for DECWindows. Tom Dahl and I used that, in turn, to build VAX FLIGHT, a wireframe flight simulator. Fun times.
Fantasic comment, PotatoHead, thanks for your input. This is /exactly/ the sort of set-up I had envisioned.
I used to work at a company that made air traffic control systems - we often used X11 remoting in many ways (mainly in the development testing systems, to save on the number of machines and displays needed on a large distributed cluster) but also as part of the fault-tolerance in the finished product. If the machine for one ATC position failed, at short notice you could simply drop in a replacement thin X11 client (dedicated hardware or a bare-bones UNIX/Linux install) that connects to another machine, instead of having to completely re-image and re-configure another machine to replace it.
Those who do not understand true multi-user UNIX+X11 are doomed to reinvent it poorly. It is disappointing to see Wayland developers claim on one hand that their project will replace X11, yet on the other hand they treat remoting as a second-class citizen and push that responsibility out to the graphics toolkit developers and application programmers (who will have much more trouble coordinating their efforts in making a quality implementation).
I used X10 at College and I still have a reel of tape labelled "X11.3 Tape 14/11/88"
I also have multiple shirts from speaking at X Window System Technical Conferences and I contributed one of the standard X11 extensions.
Those were the days...
Yes. We really need to take a hard look at network transparent displays in the context of what we can really do today as well as the future.
When I did this, 10T networks were common, and just a little slow for something like CAD. 100T networks were growing in popularity, and then we sort of jumped to 1000T.
Also during that time, I started on dialup, moved to DSL, and then more came.
Know what? The fiber connection I have in my home is fast enough to run X with few worries today.
And it's going to improve more. My 4G cell phone can run X too. Amazing!
Honestly, I miss the vision our early innovators had. In a way, the field was more open and people could build without so many legacy ties. The need to incorporate those into the next step is holding people back. Legacy "screen scrapers" should get attention. They are useful, and they do have advantages for application developers.
Network transparent, multi-user, concurrent multi-processor, networked computing is the bar to cross, and if we don't maximize it, we risk losing out on a lot of the potental.
Sad really.
All I know, is I won arguments back then, and I did it on UNIX when the dominant move was to Windows and the PC, and all that distributed software bullshit we face today. Won solid. No fucking contest.
The difference was really understanding how things worked and applying that instead of following the cookie cutter stuff we see being done so often today.
With X, one can distribute or centralize as needed!
Fonts on one machine, window manager on another, application on another, storage on yet another, graphics server on yet another, or even better, how about a few displays, each capable of serving a user?
Or, pile it all on one box somebody can carry with them!
Doesn't matter with X. It's all trade-offs, and this leaves people to structure things how it makes best sense to them. For some, having very strong local compute / storage / graphics / I/O is best. For others, centralizing that pays off the best.
Only X does this. Nothing else does, or has.
The screen scrapers are impressive, but they really aren't multi-user in the sense that X is, and that requires a lot of kludges, system resources, etc... to manage things.
I remember the day I read about X in BYTE. It changed how I viewed computing, and when I got my chance, I went for it whole hog and it paid off very well.
Also IMHO, part of this vision really should be to provide developers with dead simple tools to get things done. It is true that building an efficient network aware application takes some work. SGI, BTW, did educate people. If you developed on IRIX, you got the tools to make it all happen, and you get the education and consulting of a vendor who knew their shit cold.
Today, we don't have that surrounding X, and it's hurting development pretty big.
Back in the 90's, I was doing video conferencing, running things all over the place on lots of machines, melding Linux, IRIX, Windows, etc... together in powerful ways, often using machines secured from a dumpster. No joke.
We've managed to cobble that together again, but it's a far cry from what could have been, and could still be with people thinking this stuff through like it was the first time.
IMHO, the other real problem is as I've stated. We have a whole generation of people doing this stuff now who basically have no clue! They were never introduced to multi-user computing properly, never got to experience X as intended, etc...
When I explain some of this to people, they make comments like, "sounds like Star Trek" and "amazing", "wish I were there..."
Yeah. I was. Many of us here were.
Blogging because I can...