X debut 40 years ago (1984)
talisman.org
talisman.org
Still remember that feeling of first typing xeyes & and xlock & and inspecting the result on that 14" color CRT screen (I was beaming more than it, perhaps).
Then by winter term 1996 I owned a refurbished HP9000-715/75 running HP-UX 9.03 (also X11-based), pre-owned and via uni discount and still the price of a car at the time... the only undergrad on my corridor who had a workstation in the dorm room (its 21" CRT filling most of the 9 m² space that was not occupied by the bed). My next goal then was to get all the manual books (X11 and HP-UX) - still got 'em.
HAPPY 40th BIRTHDAY, X11! And thanks to the X11 authors for making it available for free - imagine, X11 supported mice with 16 buttons already back then!
In 1993, I worked my way up to becoming the lab manager for the residential computer lab in my dorm (basically a bunch of Macs for people to use, as we were the dorm farthest away from the library's undergrad computing center). I did that so I could put my SGI Indigo XS24 directly onto the 10Base2 Ethernet, rather than connecting it via the university's phone system in my room using PPP at 57kbps.
I went back for a reunion about five years ago and the lab was still running (although in a different dorm now). I talked to the kid running it, who was nice enough, but he said nobody used the lab really, and he didn't know the first thing about networking. He was a gamer who "wanted to learn more about Linux". I tried to keep an open mind, times have changed, and he was eager, but boy was it depressing that the old culture is long dead.
I consider myself as part of the one of tbe last generation where people had to use a computer (e.g. I remember windows XP and even older somewhat vividly but never owned a non-smart phone) and even then I was sat next to people who could barely type so could never really do anything without being taken out of the zone.
The culture does exist but the average is so mediocre/disinterested that they don't bother (there's no reason to) "going" to the computer anymore. I think that's slightly sad in, nerds are much more social than most people realise.
Thinking about it I did get a little bit of that experience at school in that I learnt a lot of the basics of programming by playing with compiler explorer in the back of my computing and D&T lessons.
Even supported the last remaining VAX because no one else dared dig into the wall of manuals to figure out how it worked.
Was a fun time.
After high school I went to Cal Poly San Luis Obispo, where the CS department highly encouraged the use of Unix, whether it was Solaris on servers, Linux on desktops, and Mac OS X, “bougie Unix” for those who could afford MacBooks. Most CS students at Cal Poly only used Windows for games and for non-CS courses that required Windows-only software tools.
This is what made me learn Linux, my universities comp sci also ran Solaris and required the assignments run under that environment. This was in early 2000's I hated the university computer labs they were full of Sun Hardware they all ran CDE desktop environment which I thought was ugly as all sin (it looked incredibly dated by 2000's).
Someone in my class told me about SSH and that you could work from home. He gave me a stack of burnt cd's (with Mandrake - an old Linux distribution, which ran KDE) I was able to remotely work on my assignments from comfort of my home and I've been a Linux user ever since.
Not sure, if I miss that. I read about hacker culture and such, but my own limited experience of the early nineties of the labs of a large university weren't all that romantic.
I recall that some more experienced users poked fun at newbies (who didn't know of xauth) by making their workstation bloke like a sheep. While that was fun, there was no other interaction, quiet, anonymous and uninviting like a library reading room.
Once me and a team mate shared a whole lab with only one third guy. My mate had a cold which he neglected and during the session passed out, hitting his head hard on the desk. I had to shout at the third guy to solicit his help. He seemed to be content hacking on his terminal and let my mate die as long as he'd be quiet about it.
In the same lab (might have been the same session earlier, I don't recall) one fellow not being member of my team ran `crashme` on the shared server (pre-Solaris SunOS, iirc). He apologized with the words (paraphrasing) "I didn't expect it would actually crash" when the server in fact did. We were not amused.
Mid nineties the labs got deserted as most everyone was working from home.
I wasn't even a CS grad (I tried to but CP wouldn't let me switch from physics, one of their less endearing policies) but being there in 2001, 2002 was a really cool time. I remember when the email went down and my roommate commented "just SSH* in and use Pine" and for some reason something clicked right then - "oh yeah, you can do a whole lot more without the browser than with one". I feel like that mindset was there when I was doing a coding exercise for a job a few years back and figured it made sense to just open a socket with netcat instead of building a whole REST API - it was fun (if non-robust!)
I vaguely recall systems meant to help automatically register you for classes as soon as they became available, and even used their touch-tone based class reg system at one point.
Anyway, ramblings. I ended up with a physics degree and going in to tech anyway; I wish they had just let me switch.
* Hell, it might even have just been telnet. This was back when you could browse all your dormmate's media libraries and we shared freely, even unsecured wifi was common for a few years.
I got X11 the hard way, with a stack of floppies, but had a great guide, and lots of help. Thanks Barry. I ran X on everything.
http://oldvcr.blogspot.com/2021/04/refurb-weekend-hewlett-pa...
I think the 1024x768 CRT is a 2-person lift -- Sony Trinitron inside? (Vertically flat)
Definitely an OSHA violation.
A tiny bit later for me, with the Slackware distro, around 1994 I'd say.
I remember manually editing the modelines to create "uncommon" screen sizes (in pixels), like 720x492 instead of 640x480, etc.
Dumbest purchase I ever made.
I remember trying to understand how things like twm, fvwm, motif etc. worked. The first few programs using Xlib and Xaw. Great times.
Happy birthday X11!
I still remember having startx finally work properly on my FreeBSD 2.1 system running on a Pentium-75 with 16MB of RAM (so luxurious!) back in 1995. The fixed sync monitor[1] coming to life with that black and white crosshatch pattern, and probably TWM decorating that terminal window that would shut down X if you closed it. Luckily at that time there were quite a number of window managers so you could try a bunch to see which one you liked the most. The hardest part of getting X running was tracking down those magic numbers you had to enter for the modeline in the configuration file, although old X used to ship with a database you could look up of older monitors that were no longer in production, but might be kinda close to what you had.
[1] Supporting 640x480, 800x600, and 1024x768(interlaced only)
For the longest time the top result when searching for my real name was a mailing list post asking about getting sound working on that same FreeBSD Pentium 75.
We had to carry that IBM behemoth across campus to “prove” that we installed FreeBSD onto it for one of the CS lab courses.
https://news.ycombinator.com/item?id=20313616
DonHopkins on June 29, 2019 | parent | context | favorite | on: Red Hat Expecting X.org to “Go into Hard Maintenan...
NCD (Network Computing Devices), who made X Terminals, came up with a sound server called "NetAudio", based on the X11 server, protocol and client library, with the graphics ripped out and sound stuck in. I used it in the early 90's to support the Unix/X11/TCL/Tk multi player version of SimCity, with a scriptable TCL/Tk audio server that could drive either /dev/audio on Sun/SGI/etc or NetAudio on NCD X Terminals. Other TCL/Tk clients like SimCity (but possibly others) communicated with it via the TCL/Tk "send" command, which bounced messages off the X server.
http://www.art.net/~hopkins/Don/simcity/simcity-announcement...
NetAudio had its problems, but basically worked. Except that it insanely mixed audio by AVERAGING (add waveforms then divide by the number of sounds) instead of adding and clipping, and I couldn't convince the NCD engineer that was the wrong way to mix sound, and to just add and clip instead, like sounds mix in the real world: When you talk over music, the music volume and the volume of your voice doesn't magically lower by half. Hopefully they've fixed that problem by now.
https://donhopkins.com/home/archive/NeWS/sound-mixers.txt
It evolved into the Network Audio System (NAS):
http://www.radscan.com/nas.html
I can't say how popular it is, or if anyone actually uses it, though:
The Release version is now 1.9.4 (10/07/2013).
I was invited to the Atlanta Linux Symposium in the late 90s and met just about everyone around the Linux/Slashdot/X11 world. I had been hacking on OpenGL drivers and one of the first to "integrate" 3dfx 2d acceleration into X.
I had a wonky alpha AXP desktop I'd built from random parts and porting X11 to 64 bits on Linux as the code & binary was actually still 32bit. I'm chatting with rasterman for a bit and up walks an older gentleman.
He'd been listening in on our conversation and was eager to get my take on X. I told him straight-up I thought it was kinda crappy and it should have used blah blah bah. He said "I'm Jim Gettys and I co-wrote X windows.." I was aghast...Oh shit. He laughed and we had a long conversation about how X was implemented.
I remember the first time I saw an X terminal in my first year at college. I didn't have a computer of my own, and windows labs were overcrowded, so I figured I'd cut my teeth and learn this Unix thing a year earlier.
It was SunOS with twm, and the defaults made the font size unreadably small. I went to the bookstore, bought some Unix beginner's guide (I made sure it had an xwindows chapter, since I mistakenly thought I was using an "xwindows OS.")
I spent more time figuring out that environment than I did working on my assignments, but I had a great time. The advantage of working in a lab with older students is I could see what they had on their screen and ask them about it.
Lovely memories. Hard to believe I've been an X user in one form or another for more than half of its existence. It already seemed ancient when I first started.
Edit: it gets better. Apparently W ran on the V operating system.
20+ years ago, I joined a group of open source devs wanting to build a successor to X11, and I suggested "Umlaut" as a working name because of Germanic languages' alphabets typically had letters with umlauts after 'Z'...
However, we wanted different things, so we disbanded. I wanted to push network transparency with object capability-based security and SVG-like vector graphics. Others wanted something more similar to what Wayland is today, or even simpler: with 32-bit framebuffers like what SerenityOS has. Today I think perhaps a capability-based windowing systems would best be built on top of a capability-based OS — building it on top of Unix/Linux would be a kludge at best.
Until recently, tear-free video playback necessitated double buffering hacks and older Intel drivers, or using a compositor like picom. Results were always sub-par imo.
Along came Mr Sultan Alsawaf: https://gitlab.freedesktop.org/xorg/xserver/-/commit/0dacee6...
Been running the patch set through Arch's xorg-server-git package ever since it came out, and with mpv as player spaceships have never been zooming smoother along the starry sky. For ultimate playback smoothness I scan the video file for dimensions and refresh rate and then set a custom modeline using xrandr to match display timing with media fps, while maxing out the capabilities of the display link.
I think it's interesting they had a CLU binding before C. https://en.m.wikipedia.org/wiki/CLU_(programming_language)
After I expressed interest in learning how to program X on my first Linux machine in 1995, a friend showed me the giant wall-o-manuals (I think that's how O'Reilly got its start) and said "Are you ready to read all of these?"
I got by learning the basics of Xlib with the man pages and, I believe, Kenton Lee's site. X's display model is really straightforward if you already understand something like Win32, which is one reason why Wine was able to make rapid progress: translating GDI calls to X calls required only a thin shim.
X ran FAST, too. If you set the GC clip origin and mask you could blit a sprite in one XCopyArea call; I banged out a game engine based on that and was able to get draw speeds that Windows required DirectX to match (assuming a local display).
"X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984.[3] The X protocol has been at version 11 (hence "X11") since September 1987."
The CEE/7 standard was last revised in 1983 and is used by hundreds of millions of people every day.
ISO 8879 (SGML), which XML is a subset of, was ratified in 1986 already, making it closer to X11.
Also, you may want to check what XML 1.1 as opposed to 1.0 is about [1] - the vast vast majority of XML is 1.0 and has no reason to ever declare itself as 1.1 and in fact, every reason not to.
[1]: <http://www.ibiblio.org/xml/books/effectivexml/chapters/03.ht...>
By that timeline, we’re only a decade from Wayland’s successor protocol being released. It may, optimistically, have had five entire years of being the unequivocal standard by then!
In contrast Wayland is mature enough that ChromeOS decided to go all-in on Wayland, and Microsoft uses it too, for WSL2.
ChromeOS has been using Wayland in Crostini and ChromeOS's Android emulator for years, but only in the last year or so have versions of the OS rolled out to ordinary users that use Wayland also for the main UI (browser and task bar and such). Till then ChromeOS used a hand-rolled graphics system for that.
Also Wayland was embraced many years ago by makers of graphical user interfaces for cars.
https://developers.slashdot.org/comments.pl?sid=75257&cid=67...
Note that the title of the comment implies that Apple had the option of incorporating X into OS X, as do these next 2 quotes:
"The window system . . . is graphics model agnostic, working equally well with QuickDraw, OpenGL, the Quartz drawing engine, X11"
(The final sentence) "Been there, evaluated that," where "that" is a reference to X11. (If X11 was not ever an option for OS X, there would be no need for an Apple engineer like Paquete to evaluate it.)
Although it makes points similar to the point you make (namely, some at NeXT or at Apple considered it important for hardcopy to look like it did on screen), Paquete's comment gives many other reasons that have nothing to do with hardcopy for why X was lacking for Apple's purposes.
To summarize, Apple rejected X back in the 1990s for many reasons, most of which cannot be dismissed as demands from the past.
X11 was X10++ and I think we've been coasting since. Wayland has confused me.
IIRC there was some terrifying step involved around setting scan frequencies or modelines or something that was advertised as making it possible to set a CRT on fire (which could have been the maintainers being cheeky).
Does anyone remember that era well enough to know the details?
And it could damage the monitor in the process.
Searched the web as much as possible to try and get horizontal scan rates etc, not quite feeling completely comfortable, then biting the bullet with my best guesses. Luckily it worked - to much relief that I hadn't burnt out one of the offices more expensive monitors.
I didn't use X much initially because my version of the card wasn't properly supported in Xfree86 and had some colour/palette problem. Also the resolution and quality and size of cheap CRTs at the time made Xterminals less readable than the console IMO. The SVGA support in console for things like image viewers just worked. It was only when Mosaic came out that I started to run X more often and it wasn't my default for a few years I think.
Before PCI, PlugnPlay and Windows 95 everything was configured with dip switches and port numbers and interrupts went into configs even on the DOS side. Partitioning a disk wasn't a trivial thing. Even so modelines seemed kind of silly even back then. When people say Arch is complicated I just chuckle to myself at how far things have come.
At least when configuring XFree86 on Slackware in nineteen-ninety-something, I had local man pages and documentation to refer to out-of-the-box.
And that's great for people who know this, and who also know in advance what documentation they'll want in the future.
It's less-great for people who have booted their new installation without knowing one or both of these things.
I mean: I get it. I do realize that a line must be drawn somewhere on what to include or not include by default. I just don't like where that line is drawn in this particular instance.
My feeling is that storage is cheap and plentiful... unless it isn't.
It seems to me that the people who would benefit from superfluously-available documentation the most are the ones who are likely to have plenty of space available: They're newbs -- newbs who are not building something to fit into less than 2GB of flash, and who are not making a template that will be used for a thousand instances. They're just trying to get their feet wet.
And it also seems that the people who would benefit most from a system that is a wee bit leaner due to a lack of auto-installed documentation are the same ones who would have the least amount of difficulty removing that documentation.
Monitors had a spec, of course -- and it was easy-enough to stay within that spec. They were bandwidth-constrained, but as analog devices that bandwidth was always somewhat flexible.
So why have settle for 1024x768 at 75Hz that the book says will work, when that same 15" monitor would do 1360x1020 or more at a similar refresh rate and still have readable tiny text? Why not run a 19" monitor at 2130x1598?
"You can fit so many xterms in this baby!"
And why not shrink down the vertical blanking interval and front and back porches as far as possible before geometry got too bad, to maximize the number of pixels that could be pushed down the wire within a given bandwidth? And why not tweak the trimpots inside to put the monitor's front panel controls into a better range for this kind of service?
Fun times, those. The quality of the VGA cable made a substantial difference in smear when pushing things hard enough (literally bandwidth-throttled video), and getting a better DAC to drive the kit with (for even more literal bandwidth) was a primary motivation for periodically finding a better video card.
(No fires to report even after a decade and a half or so of these games. Sorry. I guess if any of this stuff ever caught on fire I'd have found a different approach.)
(May have played an inordinate amount of Netrek on those.)
Made me smile.
What kind of tape would that be in those times?
QIC-24 was nine-track in a handy container - a bit like a compact cassette for computers.
Another memory: joining a bioinformatics lab and encountering a fleet of NCD boxes that could do nothing more than bootp/rarp their way onto the network and run an Xserver, with all the processing happening down the hall on a SparcStation. Blew my young mind that network booting was possible, but then again, those were the glory days of Sun, and the Network Was the Computer.
11 revisions in 5 years 1984 - 1989 At that point they stopped changing it. And we have enjoyed 35 years of compatibility since then. Api's come and go, in and out of fashion. But I bet you could take your brand new linux X server and still have your 30 year old sun workstation drawing windows on it.
Noteworthy: CLX is written in Lisp and does not use Xlib (which is a C library).
Related, I've always found it odd that in Linus' history of Linux, part of it was a desire to implement an Amiga-like OS on a PC. This is the message-passing-bad guy. What happened?
Fortunately 2024 is the year of the Linux desktop, while Apple and Microsoft are busy adding creepy and intrusive AI features.
Love it!