Using UnixWare 2 to Set Up a Web Server: A Case Study

I stumbled across this ancient page, and thought it was so dated that I had to share it.

https://support.novell.com/techcenter/articles/ana19950903.html

Bravo on MicroFocus for keeping it up.

Original UnixWare website over at Novell

It’s kind of cute they ran it all on a couple of  Zenith Z-Server LT P60E computers, which have 128MB of RAM and 5GB of hard disk space, and 2 T1’s.

Even more shocking to me is that their LAN was just 10Mbit, which for a Unix/Networking OEM you’d think they would be on the edge with new tech like 100Mbit Ethernet, or more complicated/fast technology like ATM or FDDI.  Heck even 16MB Token Ring.

Novell home page circa 1995

It’s amazing the tiny screens we had back then.  I can still remember the 800×600 debate, as people even in the later 90’s were pushing for megabyte pages, and ludicrously big real-estate.

As always it’s funny how dismissive they were of Linux:

Linux didn’t have good support and we were concerned about its ability to perform under heavy loads

And of course how they dismissed Windows NT:

Windows NT, on the other hand, handled the chores okay, but it lacks a wide developer base. As a result, few tools are available for working with Windows NT. 

Naturally the tell is that they didn’t load HTTPD directly on NetWare as it was dead with the arrival of Windows NT.  And UnixWare and commercial Unix was also dead with the utter stagnation of SYSVR4.

UnixWare home page

And the product page for UnixWare was that awkward 50’s stock images, with too much red/pink that was all to common for Novell back then.  It’s almost laughable that they considered being able to run on the i386 as being ‘portable’ but for whatever reason they never could port UnixWare to any other platforms.  When they sold off UnixWare to Caldera they failed to do anything with it, and famously turned to lawsuits to attempt to recoup their money from the botched port to the Itanium that was done with IBM’s ‘help’.

UnixWare was going to lead the charge in the post SYSV world, but it’s constantly being sold, and pushed to do different things and fit an increasingly smaller role just cemented the demise of SYSV.

And of course marginalized and almost forgotten, NeXTSTEP would go on to be the #1 commercial UNIX in the market place.

Adding an Xserve RAID

Xserve Raid

So yeah, I wanted to get a ‘real’ SAN for a while, but they always cost too much.  So I just decided to look for something older, like a MSA-1000, which are surprisingly still expensive.  Failing that I thought about how I could get that MacPro 2010 for ~$300 so I said what the heck and picked up a super cheap 7TB fully loaded out Xserve RAID.

I got a PCI-133 LSI Logic “LSI7202XP” Fiber Channel card for my G5, as I figured that this stuff was of the same era, may as well configure it with a PowerPC.

Configure the LSI

After setting the LSI to 2GB and in point to point mode, the system needed a reboot, and it would report a link on the FC adapter. Great.

To actually configure the array, you need the Xserve RAID admin tool, along with a working copy of Java on your machine.  I downloaded version 1.5.1 which is thankfully still on Apple’s site. It runs fine from OS X 10.5, although the readme does make mention of 10.2, so perhaps it’d run there, although I didn’t feel like booting into 10.2 to find out.  By default the password for read only access is ‘public’ and for admin control it’s ‘private’. Yes just like SNMP community strings.

Finding the array

You need to connect the Xserve RAID to an Ethernet network.  I’ve only used the MSA’s and they let you configure them over the FC, but no so with Apple, it’s a Bonjour enabled service, so you don’t have to setup the Ethernet, just plug it in, and that’ll be good enough.

Creating the array is straight forward, however the SAN with it’s two controllers aren’t redundant, rather it’s really 2 SAN’s in one chassis with a left & right hand side.

A new disk appears!

So the solution is to use 2 connectors to the dual card, I have 2 DAC cables so I’m set.

But for now it’s just more so messing with the unit.  I’ll probably just set it in JBOD mode, and pass it up to something like Solaris 10 with ZFS exports.

Where the heck is rc.local in Debian 9?

Thanks to a quick search here is how to re-create it:

cat </etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0
EOF
chmod +x /etc/rc.local
systemctl daemon-reload
systemctl start rc-local
systemctl status rc-local

Nice.

Excellent archive of Watcom C/C++ CD-ROMs on Archive.org

Watcom C/C++ CD-ROM collection!

I found this collection recently by accident, but it’s certainly worth sharing.  I was a SUPER big fan of Watcom C/C++ 10.0 back in the day as it includes not only so many targets, but also host setups making it a really great compiler for the day to target 16-bit MS-DOS, 32bit extended DOS,  OS/2 16bit & 32bit, Win16, Win32, a custom 32bit Windows extender, 32bit Novel NLM’s, Autocad extensions, and no doubt many more I’m forgetting.

Head on over, and just search for Watcom:

https://archive.org/search.php?query=Watcom

Or for the heck of it:

This is great for things like trying to build Duke Nuke’m 3D, and other vintage era stuff.

Unsurprisingly my adventure in containers failed. again.

I can’t catch a break.

2018-05-28 07:31:48 > [Sun May 27 23:31:46.625718 2018] [core:crit] [pid 17] (13)Permission denied: [client A.B.C.D:34944] AH00529: /var/www/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/var/www/' is executable
2018-05-28 07:31:48 > A.B.C.D - - [27/May/2018:23:31:46 +0000] "GET /wordpress/category/japanese-software/ HTTP/1.1" 403 570 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50"
2018-05-28 07:31:48 > [Sun May 27 23:31:46.742137 2018] [core:crit] [pid 18] (13)Permission denied: [client A.B.C.D:34950] AH00529: /var/www/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/var/www/' is executable
2018-05-28 07:31:48 > A.B.C.D - - [27/May/2018:23:31:46 +0000] "GET /feed/ HTTP/1.1" 403 538 "-" "Tiny Tiny RSS/17.12 (4fa64e8) (http://tt-rss.org/)"
2018-05-28 07:31:48 > [Sun May 27 23:31:48.249140 2018] [core:crit] [pid 19] (13)Permission denied: [client A.B.C.D:35034] AH00529: /var/www/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/var/www/' is executable
2018-05-28 07:31:48 > A.B.C.D - - [27/May/2018:23:31:48 +0000] "GET /2014/05/ HTTP/1.1" 403 541 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50"

Or even later on, trying to restart the container

2018-05-28 20:20:34 > Starting task neozeed-blog_webserver_web1.828b8c42-6271-11e8-bbc7-c22eda63b1bd
2018-05-28 20:20:37 > docker: Error response from daemon: VolumeDriver.Mount: {"Error":"open /dev/scinia: invalid argument"}.
2018-05-28 20:20:37 > See 'docker run --help'.
2018-05-28 20:20:46 > Starting task neozeed-blog_webserver_web1.8ae12f33-6271-11e8-bbc7-c22eda63b1bd

I swear this is such a crappy year for hosting…. I guess we’ll see how long this one lasts, lol

IOCCC 2018 Best of show, aka PDP-7 emulation in under 4kb!

The most incredible thing about this PDP-7 emulator is that it not only can run Unix v0 as recovered by TUHS, but for kicks there is also a PDP-11 emulator coded in PDP-7 assembly that is capable of running both Unix v6 & 2.9BSD!

So if I have a PDP-7 emulator, how do I run operating systems that expect a PDP-11? Simple… I emulate a PDP-11/40 on the PDP-7. I have written PDP-7 assembler code to emulate a PDP-11/40 with the following equipment:

PDP-11/40 (KD11-A)
EIS instruction set (KE11-E)
Memory management unit (KJ11-A)
Line time clock (KT11-D)
124 Kwords of memory (244 Kbytes)
RK05 fixed disk drive (RK11)
Console TTY (DL11)

And as you can see, here is the PDP-7 running 2.9BSD via the emulated PDP-11!

You read that right.  And yes, here it is running 2.9BSD.  This is nothing short of amazing!

Read about Christopher Mills’s entry here:

http://ioccc.org/2018/mills/hint.html

And yes, the source has been stylized like a paper tape…

It really works best on a ‘real’ Unix like system.  I’ve run it on Debian 9 & OS X 10.13.14 … It does consume 100% of a CPU core.  But it’ll run a PDP-7 with v0 Unix, PDP-11 with Unix v6, and the aforementioned 2.9BSD. The Linux subsystem for Windows 10 didn’t handle the terminal control so well.

So, yeah kill your CPU and bask in the 4k glory!

BattleTech musings

Now that I have awesome animated GIF technology I can show off one of the greatest things to do in the 1988 BattleTech game, escaping the initial Kurita invasion with a battle mech.  While you can try to beat the 3-4 Jenners, and maybe win, it’s far far far easier to just make a dash for it.

So basically all you have to do is run south, then head west, don’t engage, just jump over rough terrain, and run!  Once outside the wall, you can flee.
Meanwhile back in 2018, people are crying that the new BattleTech is some how stacked, and the AI just cheats.  But the mechanics are pretty darned close to the real table top game, except that if you have been pushed down, you can not only get up on your next turn, but run around and fire.  Grrr…  The story in 2018 is just as laughably bad as it was in 1988, but honestly I didn’t come here for Shakespear, I wanted to see giant robots fight!  I know for many the idea of the table top game is … well outside of what people know, and the idea that you are standing in front of something with a 98% chance to hit, and you not only miss, but manage to explode while doing so is just a slice of life that is the hell that is table top gaming.

And for those who think the new game is rather ‘un-fair’, Just after I stole the Chameleon, guess what happened?

That’s right, a Locust of all things got off a lucky shot to my weak back, and destroyed my mech, and the next shot with a machine gun, killed me as I tried to flee.  How is that for fair?

BattleTech has always been like this.

So yeah, Kids need to GTFO my lawn.

Animated GIF’s from Qemu

I found this one recently… So the first thing is you need Qemu 0.10 or higher (probably not a problem), as it’ll save in ppm format no issues.  Then the fun expect program (Yay Linux subsystem), and of course Imagemagik.

Run Qemu so you can telnet to the command monitor:

i386-softmmu\qemu.exe -L pc-bios -hda c:\temp\127disk.img -monitor telnet:127.0.0.1:23,server,nowait -hdb fat:\temp\dosb

I used this small program

#!/usr/bin/expect
set timeout -60
set capture 1
spawn telnet localhost
expect “(qemu)”
send “brake 1000\r”;
expect “(qemu)”
while { 1 == 1 } {
set fstring [format %04s $capture]
send “screendump /temp/$fstring.ppm\r”;
expect “(qemu)”
incr capture
sleep 3
}

and then to convert it into an animated gif:

d:\ImageMagick-7.0.7-18-Q16>convert -loop 0 -delay 100 \temp\*.ppm \temp\GHZ.gif

and behold:

Isn’t that great?

Qemu now supports the HPPA in softmmu mode!

I’ve worked on machines with HP-UX, but never owned one.  Well Qemu now has system emulation thanks to Richard Henderson! You can find information over at:

https://parisc.wiki.kernel.org/index.php/Qemu

Being the unfair person I am, I thought I’d try NeXTSTEP to see how far it gets.

Processor   Speed            State           Coprocessor State  Cache Size
---------  --------   ---------------------  -----------------  ----------
0      250 MHz    Active                 Functional            0 KB

Available memory: 512 MB
Good memory required: 16 MB

Primary boot path: FWSCSI.6.0
Alternate boot path: LAN.0.0.0.0.0.0
Console path: SERIAL_1.9600.8.none
Keyboard path: PS2

Available boot devices:
1. DVD/CD [lsi 00:00.0 2:0 Drive QEMU QEMU CD-ROM 2.5+]
2. lsi 00:00.0 0:0 Drive QEMU QEMU HARDDISK 2.5+

Booting from lsi 00:00.0 0:0 Drive QEMU QEMU HARDDISK 2.5+

Booting...
Boot IO Dependent Code (IODC) revision 153

HARD Booted.
Can't determine I/O subsystem type

NEXTSTEP boot v3.3.4.17
524288 memory

NEXTSTEP will start up in 10 seconds, or you can:
Type -v and press Return to start up NEXTSTEP with diagnostic messages
Type ? and press Return to learn about advanced startup options
Type any other character to stop NEXTSTEP from starting up automatically

boot:

And amazingly the bootloader works, although that is about it. Trying to boot up OpenBSD gets about this far:

PDC_CHASSIS: Initialize (3), CHASSIS  cec0
>> OpenBSD/hppa CDBOOT 0.2
booting dk0a:/bsd.rd: 2703360+851960+2675712+547840=0x8631f0


SeaBIOS: Unimplemented PDC_CACHE function 1 8ddad0 1 1 1

I found on Windows though that the Debian 8 CD’s work the best, as the earlier ones lock up after loading a kernel, and the later one doesn’t fully initialize.  I’ve been using this one: debian-8.0-hppa-NETINST-1.iso  Serial console interaction is the way to go, so I ran Qemu like this:

qemu-system-hppa.exe -L . -serial telnet:127.0.0.1:4444,server,wait -boot d -cdrom debian-8.0-hppa-NETINST-1.iso -hda Deiban8HPPA.vmdk

So this way I can get get the install kicked off.  Although I should probably have just downloaded debian-8.0-hppa-CD-1.iso

Linux on HPPA

Otherwise, yeah, it’s Linux, on HPPA

And for anyone who is interested, the only version of HP-UX I have hanging around, HP-UX 10.20 [HP9000 S700] gives me the following:

HP-UX 10.20 on Qemu

Booting my PowerMAC G5 from SSD

Grandpa’s G5

In my last trip to the United States, I scored yet another PowerMac G5, a model 7,2 which is one that is capable of running OS X 10.2.7 for the G5.  It was the proverbial dream come true, used by an elderly man to keep track of photos in iPhoto, which he used maybe a handful of times a year.

Needless to say, he wasn’t too pleased that his copy of Snow Leopard didn’t work on the machine, and he dumped the G5 for a much quieter MacBook.

At any rate, it also included an Apple Studio Display.  I found another Cinema Display in the used hardware market for $25, which even though the display works the screen was damaged at some point and shows scratches on the surface when the display is a solid colour.

At any rate, the machine was deadly slow to boot, I upgraded the RAM from 256MB to 1.2GB, and replaced the ancient disk for a SAMSUNG SSD PM830 2.5 256GB flash drive.  Now it’ll boot up in under 30 seconds from the graphics initialization.

That makes this the only machine I have capable of running MacOS 9, although in emulation under OS X 10.2.  I have the Jaguar DVD set, but Classic mode was removed in 10.5.  It was the ending of the PowerPC era, just as 10.6 was the last version to ship with Rosetta.

Its a fun machine from the era of the introduction of personal 64bit RISC computing to the home user, although too bad the full industry didn’t catch up until later, just as 32bit desktop computing had a few stumbles out of the gates.