Upgrading through OS/2; Version 1.3

Keeping with the ping-point tradition, I’m going to upgrade IBM OS/2 1.2 to Microsoft OS/2 1.30.1, the LAN Manager 2.1 install.  At this point Microsoft basically was taking IBM OS/2 1.3 and repackaging it.  All their efforts were shifting out of OS/2 and into Windows NT.  But to support existing customers and build their enterprise market OS/2 was still very much an integral part of the strategy as Windows NT wasn’t ready by a long shot yet.

Products like Microsoft Mail & SQL Server (ported & rebranded Sybase SQL) were the companies future direction, but for now they were OS/2 applications, and they needed an update from OS/2 1.2.

And continuing on, it’s the same bland tradition.

Maybe I just have mixed feelings about the grey background thing, it just feels either military or industrial.  Then again that was what OS/2 was trying to be, industrial computing on the PC.  I suspect there was a color study done by IBM on the whole look and feel.  The schema feels like a design by committee thing.

And please, don’t format my disk!

Now this selective installer is new.  Prior to this you’d get all of OS/2 and from there you could disable or delete as you wanted… But now a selective install.  I went ahead and selected everything.  Naturally this being a ‘server’ version you may not want the MS-DOS stuff at all…

It sounds like a lot more stuff… But go through and select down the line.  It is strange that my control+c (break) on is never honored, I have to always go there and enable it.

Now we just shuffle diskettes, and let the install finish up.

And to select a printer.  I don’t know why it just doesn’t upgrade my old printer, maybe it just wants to show off all the drivers… A sharp contrast from OS/2 1.0!

So with the install done, and a quick reboot we are teleported to the OS/2 1.3 desktop.

Very cool.  And… very.. 1.2’ish.

So I thought I’d first verify my applications work.  Excel launches but Word..

Ouch.  I guess this Microsoft OS/2 doesn’t do upgrades.  Although it did preserve my groups. I’ve got to say this is kinda sad.  At least it did backup the config.sys so I could simply append the lines to the PATH & LIBPATH and get my applications running again. One can’t help but wonder if this was some passive aggressive attack on Word & Excel?

Also new in OS/2 1.3 is the ability to lock the desktop!  Good stuff to keep people out, too bad it’s just a system thing, not an account / role based thing.

The default ‘screen saver’ lockout screen is the OS/2 logo.  I’ve only seen it on the Microsoft BOX, and a few Microsoft books, but here it is.

OS/2 1.3 is said to be more stable then OS/2 1.2, and faster.  I couldn’t tell the difference, I’m sure being under emulation would be one of the reasons, the other being on a significantly faster machine.  Nobody could imagine Ghz CPUs in 1987.

I don’t have much to add to OS/2 1.3 as it really feels like OS/2 1.2.

Next up is OS/2 2.0, the first of the 32bit releases of OS/2… Operate at a higher level!

Upgrading through OS/2; Version 1.2

I couldn’t find a Microsoft OS/2 1.2 so on with IBM OS/2 1.2.  I figured it was still a joint project that IBM should upgrade a Microsoft install.

OS/2 1.2 installAnd away we go!

Into good old fashioned blue on grey. I’m not even going to bother with the dual boot thing, and anyways who cares, right, better dos then dos? right!

New in OS/2 1.2 is the HPFS filesystem.  I could go on about it’s extended attributes, long file names, speed, but I’m sure others have written far better about it then me.  Also how it didn’t have any journaling, could crash out easily, and there was no method to map longfilenames onto the 8.3 filesystem could easily leave DOS applications in the dark.

So basically we let it load and hit enter… select a keyboard and..

Again don’t let it format the disk.  I wonder how many people went ahead and formatted thinking it’d preserve anything… Oh well we’ll keep things FAT for the duration of this exercise.  Which reminds me, it’s a shame IBM/Microsoft didn’t include a tool to convert FAT to HPFS.  I guess that was another lesson learned for WindowsNT.

The install also asks if I’d like to keep my old program groups (yes!) and a mouse & serial port.  The IBM OS/2 1.2 version has no support for PS/2 mice on AT computers.  Oddly enough the PS/2 driver won’t load on VirtualBOX, so the real fix is to load the OS/2 1.3 PS/2 mouse driver on OS/2 1.2, add it to the mouse driver, and it’ll work fine.

So with the installation out of the way, let’s boot it up!

And here we are, in the OS/2 1.2 GUI.  Notice how it looks more Windows 3.0’ish which is a nice improvement.  The timestamps are from 8-31-1989.

Two BIG things that were absent in OS/2 1.1 is the inclusion of a Tutorial, “Introducing OS/2”, and the “OS/2 Command Reference”.  It’s sure nice having online help for the system commands.

The text mode editor is gone, replaced by the PM e editor.

E seems designed for you to use the mouse, not the alt/arrow keys.  But that’s how I navigate and I find it kind of forceful to alt, then letter to get a command menu. Oh well.

As you can guess by the grey backgrounds, OS/2 doesn’t do wall paper.  Not even a screen saver.  As you can see for the late 1980’s and early 1990’s OS/2 is missing out on two of the big sellers for bored office workers.  It’s an IBM inspired system, which meant GREYS and YAWNS.  But it sure can multitask, but boy is it BORING.

Oh sure there is a control panel, but it’s mostly rigged to date, time, and the incredibly convoluted process for adding a printer.  I’m just glad that my printer has been preserved to this point.

Since this is OS/2 1.2 there is some applications at this point I do have that will work.  Namely Microsoft Excel 3.0 for OS/2.  Installation is just like installing Excel 3 on Windows.  3 disks, and a reboot.

Excel 3.0 for OS/2 1.2Since there was no divorce at this point Excel runs just fine.

And PMWord 1.1 (Microsoft Word 1.1 for OS/2).  So far so good, right?

And it can shutdown!  So really what are my impressions of OS/2 so far?  It’s come a LONG way, it’s starting to feel like something workstation esque, but really it’s just so.. barren.  With the ‘standard’ version you don’t have all the accessories you did get with Windows.  I know they were largely ‘junk’ but hell even having the windows terminal with X-modem was still awesome for the time as you could actually kind of multitask. It would have been different for OS/2 but you’d never know it.  IBM & Microsoft really expected people to fall in love with the multitasking, and basically bear with the ultra minimalism of OS/2.  But Windows 3.0 changed everything.

Anyways, Onward to OS/2 1.3!

Upgrading through OS/2; Version 1.1

Continuing from the previous post, let’s get started with Microsoft OS/2 1.1

I added a 500MB hard disk to VirtualBOX, booted up an OS/2 1.1 boot diskette I had created that allows me to fdisk/format and do basic backup/restores, esp since OS/2 1.0 cannot install on a large (lol) 500MB disk.

So with the restore done, I’m booting up the Microsoft OS/2 1.1c Nokia OEM release.

Nokia OS/2 1.1c splash screenAnd..

The dates for this release is 2/20/1989.  I would have imagined that the original version of OS/2 1.1 shipped in 1988, as mentioned by the copyright. Apparently the Microsoft versions of OS/2 1.0 & 1.1 included support for the 386 method of switching from protected mode to real mode, while the IBM versions only included the 286 triple fault method.  I’d imagine the Microsoft ones would include both, but the only way to verify is to install on a 286.  Something that I simply do not have.

This style of the OS/2 installer will be with us for quite some time.  it’s not until Warp did the look and feel start to change.

It’s a little worrisome that OS/2 is always looking for a way to format your drive.  OS/2 1.1 only supports the FAT filesystem at this point, and formatting defeats the point of the upgrade.

The setup program renames my config.sys , autoexec.bat and startup.cmd files.  Obviously things are now different from OS/2 1.0

And at this point it’s just an install disk to prepare the disk, then we reboot off the hard disk to continue the install, in text mode.

We just feed some disks to the OS, then we get to select a mouse.

Thankfully the PS/2 option is in here! Very exciting stuff.

For some reason things like serial ports are optional, so after letting it load the serial driver, we are all set to go!

Ok, let’s experience some real OS/2 power!

What is cool is that my printer choice has been preserved.

And the C drive has been cleaned up… some.  Although most of this stuff is backups of my OS/2 1.0 stuff, along with some portion of the OS/2 1.0 install in os2.000 .. I just deleted all of this crap.

Now to see OS/2 1.1 in action…

OS/2 1.1 stress testSo again you are limited to 12 sessions in OS/2, along with the single DOS Box.  However notice that the windowed icons (the black ones) and the full screen are independent.  This was also another annoyance in OS/2, that you cannot switch an application from full to windowed at will, and some text mode stuff is compiled as full screen so launching it from a window will jump you fullscreen.  OS/2 also finally included a game, a breakout clone, with various neat pictures.  I like the Seattle one myself.

And a text editor! A nice one too.  Also I don’t know if it’s VirtualBOX but the UI is VERY sluggish, the worst thing you can do is open a command window and have it scroll.

But all in all, OS/2 1.1 was certainly a step in the right direction, and really what people would start to expect in an OS.  The GUI really is needed to get a feel for multitasking.  It’s a shame that ‘paging’ the real mode box out to disk and going between multiple sessions could have been done…. But I imagine they tried it, and it failed badly.  Or the paging got out of hand.. Hard to say.

As a slight detour I’ve also setup IBM OS/2 1.1 Extended Edition, which you can see my quick review here.

And for the few people who care, here is what 1.1 in Mono EGA mode looked like:

The other things that Microsoft OS/2 is really lacking is online documentation, and a way to shut down the OS from the desktop. It’s still control-alt-delete.

Onward to OS/2 1.2

Upgrading through OS/2; Version 1.0

On the heels of the upgrading Windows, I thought I’d do something similar with OS/2.

So to get things started, let’s start with OS/2 1.0

I’ve got to admit it, I really like the splash screen stuff.  It’s a shame that basically it wouldn’t come back until Windows 95.  This one does animate, but on VirtualBOX it is hard to see what it’s doing but I think it’s the logo coming together, like it did in early Windows.

The installer is text based, as is the OS back then.  To get this to run, I had to hexedit the keyboard driver (as discussed here) and change the hard disk driver from a non-working IBM version of OS/2 1.0 .  None of the Microsoft ones seemed to work.

In 1987 this would be an awesome kickass machine.  Now kids toys have better features.  At any rate, back then FAT was limited to 32MB partitions. I just gave this thing a 32MB disk, as I didn’t feel the need to mess with it too much.

Talk about a weird installation process.

Notice the lack of PS/2 mice?  This would go back and forth as one of many weird things that one or the other would not support.  It’s very strange.  But at the time of course, only PS/2 machines could have PS/2 mice.  Not that it really matters in OS/2 1.0’s text only interface.

And the next time you feel like complaining about a lack of drivers for anything.. Look at this extensive list.

Anyways basically pick out what you are going to do , and away it goes copying the first floppy then it’s time to reboot.

I should also point out at this point the install for OS/2 is three (yes 3!) high density diskettes.

On reboot we continue the install..

And then on to disk 3.

And we are done!

And now we can eject the disks, and reboot.  We get the nice splash screen only to be dumped to…

This. Now you can see why so many people were underwhelmed by OS/2.  Now I know it’s a tough thing that Microsoft & IBM were at here, the basic underlying structure of OS/2 was working, IBM had been selling IBM AT’s since 1984 going on about some advanced OS, and the PS/2 line had just launched, with… MS-DOS.  The need to spend 15+ thousand dollars on a fancy 286 to run MS-DOS just seemed totally insane.  So they launched without the UI.

I’m thinking this must be a late version of 1.0 as my files are timestamped 12/15/1987. While not immediately obvious, this version can multitask like all the others. hitting control-escape brings up the Program Selector:

OS/2 1.0 task selectorAnd tabbing around we can run a bunch more of the OS/2 command prompts, and select the single MS-DOS task that the 1.x versions of OS/2 are limited to.

Shutting down OS/2 involved control-alt-delete.  Remember OS/2 was designed to be a single user workstation, not a multi-user time-sharing system like Unix.

One thing I dislike immensely about OS/2 1.0 is that it dumps all the files into the root directory.  What a mess!  I mean look at this!  Ugh.

Also it was interesting that you can run 12 OS/2 sessions, and the one MS-DOS session.  Oh well it’s a heck of a lot more responsive the Windows trying to run this many sessions.  Also for you GWBasic fans out there, you’ll be happy to know OS/2 includes GW Basic 3.20

GWBasic under OS/2Oddly enough there are no text editors.  I guess everyone is expected to be running wordstar under the ‘MS-DOS’ session box.  And of course sure you can task switch but only ONE copy.. and no cut/paste…

Ok, So now I’m going to backup this OS/2 1.0 session, restore it onto a larger disk (which OS/2 1.0 cannot boot from) but then I can ‘upgrade’ it to 1.1.

Onward to OS/2 1.1

Installing OS/2 1.x in VirtualBox

OS/2 Museum just published this great article detailing what is needed to run older versions of OS/2 on VirtualBox. The ‘skinny’ is that Microsoft OS/2 is the way to go as they included the 386 method of switching from protected mode to real mode in their product, while 1.0 and 1.1 from IBM relied on the 286 triple fault.

Almost all versions have timing issues however. And again they are covered.

I may finally have that excuse to dig around and install OS/2 1.0!

Javascript MIPS

Hot on the heels of the javascript 80386 emulator, I found this javascript MIPS syscall emulator, jsmips.

What is cool about this one, is that commands are downloaded on demand.  And it supports more browsers, like Internet Explorer (well modern ones, IE 5.5sp2 didn’t work).

Vi works, but you’ll need to reset the terminal afterwards.  At least with this on demand filesystem it’d make it easier to add new binaries…

It’s amazing how far the world of javascript has come, but at the same time, it’s scary how precarious it is perched on browsers where stuff only seems to work at the moment and on select browsers.  But then that’s the way things seem to go.

 

 

Sysadmin rosetta stone.

A friend passed this link on to me, and it’s a good place to turn for some old/foreign OS’s.

It’s covers some basic tasks with the following OS’s:

  • AIX
  • A/UX
  • DG/UX
  • FreeBSD
  • HP-UX
  • IRIX
  • Linux
  • Mac OS X
  • NCR Unix
  • NetBSD
  • OpenBSD
  • Reliant
  • SCO OpenServer
  • Solaris
  • SunOS 4
  • Tru64
  • Ultrix
  • UNICOS

Always a good thing to have handy if you run into a supercomputer…..

Javascript PC! / Linux in a browser!

That’s right.  Fabrice Bellard, has done it again, he’s given us such great things like TCC, Qemacs, and of course, Qemu.  But now he’s written a x86 emulator in javascript.

Thats right, javascript.

Behold jslinux (works in Chrome 11 & Firefox 4).

I must say, it’s fast.  A lot faster than I would have ever expected.

The hardware is a basic CPU, clock chip, and a UART.  however it’ll run things like vi just fine.  If you have either browser, give it a shot, it’s nothing short of amazing.

Spot the difference….

Picture A

Picture B

I know, it’s hard they both look identical.  Well they kind of are, Picture A is the installed OS/2 2.0 image that I’ve been playing around with.  It’s a 500MB IDE disk formatted with the HPFS filesystem.  For the heck of it, I used the qemu-img tool to convert it from a qcow2 into a vhd (qemu-img convert 500M.disk -O vpc 500M.vhd) and then tried to boot it up on Virtual PC.  I know in the past it’d fail with some weird error as something on HPFS wouldn’t transfer and it’d be the end.

But it worked!

This is really a great victory for Qemu!

Qemu starts to add more Dec Alpha support.

From the mailing list:

Since virtio devices intentionally access memory directly, we
are not actually dependant on the iommu patches in order to 
make progress.  Merely fixing the PCI interrupt setup was 
enough to get the virtio-pci interface working.

We now make it quite a long way into the Debian Lenny install.

At some random point during the install, it hangs.  I assume
we're somehow losing an interrupt or something, but it's very
hard to tell.  The cpu is still running, servicing timer
interrupts, but the userland process is stuck.

I hope to get the vga console working next.  That should allow
me multiple vt's, which should allow me to poke at the install
process from within the VM.

And..

$ ./alpha-softmmu/qemu-system-alpha -nographic -kernel 
../../linux/linux-git/vmlinux -append 'console=ttyS0 rdinit=/bin/sh' -initrd 
../alpha-test/initrd.gz
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 2.6.39-rc4+ (address@hidden) (gcc version 4.7.0 
20110408 (experimental) (GCC) ) #18 SMP Thu Apr 28 10:11:46 PDT 2011
[    0.000000] Booting GENERIC on Tsunami variation Clipper using machine 
vector Clipper from MILO
[    0.000000] Major Options: SMP MAGIC_SYSRQ 
[    0.000000] Command line: console=ttyS0 rdinit=/bin/sh
[    0.000000] memcluster 0, usage 1, start        0, end        8
[    0.000000] memcluster 1, usage 0, start        8, end    16384
[    0.000000] freeing pages 8:2048
[    0.000000] freeing pages 3813:16384
[    0.000000] reserving pages 3813:3814
[    0.000000] Initial ramdisk at: 0xfffffc0007b26000 (5079886 bytes)
[    0.000000] SMP: 1 CPUs probed -- cpu_present_map = 1
[    0.000000] PERCPU: Embedded 6 pages/cpu @fffffc0000126000 s12608 r8192 
d28352 u49152
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total 
pages: 16272
[    0.000000] Kernel command line: console=ttyS0 rdinit=/bin/sh
[    0.000000] PID hash table entries: 512 (order: -1, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 65536 bytes)
[    0.000000] allocated 524288 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want 
memory cgroups
[    0.000000] Memory: 110088k/131072k available (3489k kernel code, 20920k 
reserved, 8487k data, 384k init)
[    0.000000] SLUB: Genslabs=16, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, 
Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  RCU-based detection of stalled CPUs is disabled.
[    0.000000] NR_IRQS:32784
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [ttyS0] enabled
[    0.000000] Calibrating delay loop... 10138.40 BogoMIPS (lpj=158408704)
[    1.343750] pid_max: default: 32768 minimum: 301
[    1.343750] Mount-cache hash table entries: 512
[    1.343750] Initializing cgroup subsys ns
[    1.343750] ns_cgroup deprecated: consider using the 'clone_children' flag 
without the ns_cgroup.
[    1.343750] Initializing cgroup subsys cpuacct
[    1.343750] Initializing cgroup subsys memory
[    1.343750] Initializing cgroup subsys devices
[    1.343750] Initializing cgroup subsys freezer
[    1.343750] Initializing cgroup subsys blkio
[    1.343750] SMP mode deactivated.
[    1.343750] Performance events: Supported CPU type!
[    1.343750] Brought up 1 CPUs
[    1.343750] SMP: Total of 1 processors activated (10138.56 BogoMIPS).
[    1.343750] devtmpfs: initialized
[    1.343750] atomic64 test passed
[    1.343750] NET: Registered protocol family 16
[    1.375000] EISA bus registered
[    1.375000] bio: create slab <bio-0> at 0
[    1.375000] vgaarb: loaded
[    1.375000] Switching to clocksource qemu
[    1.375000] NET: Registered protocol family 2
[    1.375000] IP route cache hash table entries: 1024 (order: 0, 8192 bytes)
[    1.375000] IPv4 FIB: Using LC-trie version 0.409
[    1.375000] TCP established hash table entries: 4096 (order: 3, 65536 bytes)
[    1.375000] TCP bind hash table entries: 4096 (order: 3, 65536 bytes)
[    1.375000] TCP: Hash tables configured (established 4096 bind 4096)
[    1.375000] TCP reno registered
[    1.375000] UDP hash table entries: 256 (order: 0, 8192 bytes)
[    1.375000] UDP-Lite hash table entries: 256 (order: 0, 8192 bytes)
[    1.375000] NET: Registered protocol family 1
[    1.375000] Trying to unpack rootfs image as initramfs...
[    1.406250] Switched to NOHz mode on CPU #0
[    1.625000] Freeing initrd memory: 4960k freed
[    1.656250] srm_env_init: This Alpha system doesn't know about SRM (or 
you've booted SRM->MILO->Linux, which gets misdetected)...
[    1.687500] VFS: Disk quotas dquot_6.5.2
[    1.687500] Dquot-cache hash table entries: 1024 (order 0, 8192 bytes)
[    1.687500] ROMFS MTD (C) 2007 Red Hat, Inc.
[    1.687500] msgmni has been set to 224
[    1.687500] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 
253)
[    1.687500] io scheduler noop registered
[    1.687500] io scheduler deadline registered
[    1.687500] io scheduler cfq registered (default)
[    1.687500] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    2.093750] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    2.125000] brd: module loaded
[    2.125000] mousedev: PS/2 mouse device common for all mice
[    2.125000] TCP cubic registered
[    2.125000] NET: Registered protocol family 17
[    2.156250] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    2.156250] Freeing unused kernel memory: 384k freed

BusyBox v1.10.2 (Debian 1:1.10.2-2) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/bin/sh: can't access tty; job control turned off
~ # mount -t proc none /proc
~ # cat /proc/cpuinfo
cpu                     : Alpha
cpu model               : EV67
cpu variation           : 0
cpu revision            : 0
cpu serial number       : 
system type             : Tsunami
system variation        : Clipper
system revision         : 0
system serial number    : MILO QEMU
cycle frequency [Hz]    : 250000000 
timer frequency [Hz]    : 1024.00
page size [bytes]       : 8192
phys. address bits      : 40
max. addr. space #      : 255
BogoMIPS                : 10138.40
kernel unaligned acc    : 0 (pc=0,va=0)
user unaligned acc      : 0 (pc=0,va=0)
platform string         : N/A
cpus detected           : 0
cpus active             : 1
cpu active mask         : 0000000000000001
L1 Icache               : 64K, 2-way, 64b line
L1 Dcache               : 64K, 2-way, 64b line
L2 cache                : n/a
L3 cache                : n/a
~ # QEMU: Terminated

It’s incredible isn’t it?  I know the VMS crowd will be thrilled, even the legacy Digital UNIX folk.. Heck maybe one day it’ll even run Windows NT!