2026-02-27 - All the world's a VAX! =================================== The phrase "All the world's a VAX" referred to assumptions made about writing software in the 1980's that wouldn't necessarily hold true on platforms different from a VAX [1]. I think the NetBSD project had institutional knowledge of the lessons learned [2] from this era. I searched DDG for this phrase, and the results were almost entirely about anti-vaccination political horse crap. Enshittification indeed. Just for the record, below [A] i quoted a relevant post. I chatted with a Linux user about the memory requirements to build Rust and they responded "Well, you know you don't have to compile it yourself. You can just install the pre-compiled binaries." To me this heads into "Free as in beer" territory, which does not fit the original spirit of the Linux endeavor. I've seen many express the opinion that it is expedient to "drop all of the trash architectures and focus on amd64/arm64". In other words, your old computer equipment is archaic and it's unfair for you to hold everyone else back. I'm curious what it is that everyone else is being held back from? Aside from streaming video, the way i see it, "modern" web standards require inordinate amounts of hardware resources to do the same job: scroll text and graphics on a screen. Where are the radical new capabilities that justify it? [A] All the world's a VAX! ========================== Hello! Those of you who are old enough will remember that certain kinds of implicit assumptions in programming used to raise the outcry: All the world's a VAX! E.g. taking for granted that a pointer will always fit into an integer and vice versa. After trying Qemu for the first time and a long debugging session last weekend I'd like to suggest a new phrase for the current millennium: If it ain't Windows, it must be Linux! Please don't get me wrong, this is definitely not meant to be an insult, but I got quite frustrated short of banging my head against something. So, what happened? I have an old license of Windows 98 SE lying around and I was seeking a free way to run that on my old Powerbook G4. Luckily I own a fast Intel iMac as well that I could use for setup and later compiling, but the system was to run on the PowerPC CPU. Reason was a single Windows application that I need. It talks to my GPS receiver that I carry while paragliding via a serial port. I first tried Bochs. While a appreciate the effort and even used Bochs a couple of years ago to run Minix, it's far from usable for any real work in Windows. Next try: Qemu. Boy, was I surprised! Installing Windows 98 SE from CD took less than two hours, perceived speed about a 486 or Pentium I, quite usable. This was on the Intel iMac. Then I copied the finished Windows installation to the G4. Still good. Really good. I love the product. OK, documentation says, to setup COM1 to be passed to a serial port of the host system, add "-serial /dev/ttyXY". That was /dev/cu.KeySerial1 for my Keyspan USB serial adapter. This produced nothing but an error message like "could not open /dev/cu.KeySerial1". This is when the debugging session started. It ended to no avail. I'll spare you amount of times I looked at the access bits of the device, tried if I could open it with minicom and stuff like that, the workarounds with Unix domain sockets instead of the tty and socat, ... the true reason hit me like a hammer when I looked at the source of vl.c: #if defined(__linux__) /* all the code that deals with ttys */ #endif Wiiiiiiiiilmaaaaaaaaa! Boys and girls, this code should run without modification on _any_ sufficiently recent variant of Unix. _Unix_. That's a whole class of operating systems adhering to certain API standards. It even includes Linux, now, ain't that great? And of course I proved it to run on Mac OS X in no time. Da, zeerial port beink workink now. So, please, please, please, don't make things that work perfectly almost everywhere depend on Linux. Why would you? End rant. Please don't take the tone too seriously. Now that I can use the serial port without a hitch, I really like Qmemu. All this was just so unnecessary. Kind regards, Patrick P.S. No, I don't have a patch, because what I did locally does not fix the problem. Once we change #if defined(__linux__) to #if defined(__linux__) || defined(__DARWIN__) we will in no time have to add || defined(__FreeBSD__) ... ... ad nauseam. -- punkt.de GmbH * Vorholzstr. 25 * 76137 Karlsruhe Tel. 0721 9109 0 * Fax 0721 9109 100 address@hidden http://www.punkt.de Gf: Jürgen Egeling AG Mannheim 108285 tags: bencollver,technical,unix Footnotes ========= [1] VAX [2] Software portability Tags ==== bencollver technical unix