qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 0/3] Attempting to run Microport UNIX (ca 1987)


From: Matthew Ogilvie
Subject: [Qemu-devel] [PATCH 0/3] Attempting to run Microport UNIX (ca 1987)
Date: Fri, 27 Jul 2012 12:55:54 -0600

I've recently been trying to get an ancient version of UNIX
I used to use working in qemu:

    Micoport UNIX System V/386, v 2.1 (ca 1987).

I used this from about 1987 until about 1996, when I first
got Linux.

With a couple of small patches, I can get qemu to boot and run UNIX
from the first install floppy, although I still have some sporadic
issues accessing the hard drive.

I don't know of any reason the first two patches of this series
shouldn't be applied now.

But the last patch (VGA) is a temporary hack just to make UNIX
usuable, and is currently not appropriate for general use.  The
commit comment discusses some possible strategies for improving
it; does anyone want to weigh in?

I've also noticed some other problems that I have not yet
tracked down:

-------
Hard Drive Issues:
-------

I also encounter a couple of hard drive issues, which I haven't
investigated as carefully, nor attempted to work around:

  1. It doesn't seem to recognize the hard drive geometry, even
     if I use "-hdachs" and keep it carefully inside ancient
     limitations.  Note that at the time, hard drives did not support
     self-identification commands for the geometry; you had to
     configure it in BIOS.   I also have some old notes from when my
     dad was asking Microport about compatibility; apparently
     they wanted to know the specific BIOS version in order to
     decide about compatibility.  Maybe UNIX is bypassing later
     standards for looking up geometry, and trying to get it in
     some non-standard way (straight from CMOS or something?)

  2. Although it can access the hard drive for a short time, when
     accessing the hard disk, the kernel will sporadially panic
     with a message about a logic error in a splint() method,
     which dissasembly shows is called from interrupt
     handlers.  (See also
     http://www.linuxmisc.com/29-unix-internals/4e6c1f6fa2e41670.htm
     for some general background information I found about UNIX
     kernel spl*() functions.)

I haven't spent much time investigating either of these yet, but
in my limited investigation so far, it hasn't yet run long enough
to complete the first phase of installation to the hard drive (when
it is running from floppy).

-------
KVM Issue:
-------

Finally, if KVM is enabled, I get different results.  It (somehow)
seems to make it past the control register instructions even with or
without my patch 2, but the UNIX kernel very quickly panics with
a logic error in an splx() method [apparently for restoring
interrupt controller bitmasks; see link above], before it runs
any userspace code.

I haven't investigated this, either.

-------

If anyone is interested in examining this system for themselves,
contact me and I can send you at least the first (bootable)
installation floppy image.

--

Matthew Ogilvie (3):
  fix debug printf 64bit format strings
  target-i386/translate.c: mov to/from crN/drN: ignore mod bits
  HACKS to make vga text mode work with old Microport UNIX (ca 1987)

 hw/cirrus_vga.c         |  4 ++--
 hw/ide/cmd646.c         |  5 +++--
 hw/ide/via.c            |  5 +++--
 hw/vga.c                |  5 +++--
 target-i386/translate.c | 16 ++++++++++++----
 5 files changed, 23 insertions(+), 12 deletions(-)

-- 
1.7.10.2.484.gcd07cc5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]