[Top][All Lists]
[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
- [Qemu-devel] [PATCH 0/3] Attempting to run Microport UNIX (ca 1987),
Matthew Ogilvie <=