A new port of UNIX Version 7 to the x86 (IA-32) based
PC is now
available. The port, called V7/x86, was originally done around
1999: "as something to do with the UNIX source code", when the $100
source licences first became available. Over the last year or so,
I've been working intermittently at preparing it for release.
In classic porting style, the port includes a 16- and 32-bit
UNIX-style x86 assembler written from scratch, though the next step
of conjuring pcc to emit 32-bit x86 code was not done. Originally,
the system used the TenDRA C compiler, but TenDRA is huge and this
was never a good match. (Without demand paging, and with restrictions
on the size of the buffer cache, there is a definite limit to how
big you want much-used binaries to be.) However, since the Amsterdam
Compiler Kit was released as open source, the ACK K&R compiler,
with a backend revised to speak "as" rather than "ACK assembler",
works very well.
V7/x86 currently supports ATA (IDE) hard drives, ATAPI CD drives,
a 1.44M floppy drive, and standard serial ports, in addition to the
usual PC screen and keyboard. For easier installation and setup,
supplied utilities allow access to CD (ISO 9660) and FAT (MS-DOS)
filesystems. Boot code uses the PC BIOS. At present, there is no
SCSI support.
Overall, the system is stable and quite generally usable. For
instance, it is an easy-ish task to build the V7/x86 distribution
on V7 itself, including packaging it as a small CDROM image. When
using the C shell, together with contemporary versions of vi and
more, one even tends to forget this is V7. (Given the absence of
X and TCP/IP, the overall "feel" of the system is something like
an early SCO System V release: though possibly not so unreliable.)
The port was originally done more for the sheer pleasure of getting
to grips with the V7 source code than for any good reason. But
I've since spent a bit of effort trying to put together a fairly
usable release -- though there will be plenty of rough edges -- in
the hope that, for instance, some school or college might eventually
take the thing up as a vehicle for students to get practical
experience on. After all, it really is possible to write (say) a
device driver from scratch and get it working in the course of only
one or two evenings. Of course, the PDP-11 original can be (and I
hope still is) used for that purpose, but presumably PC architecture,
and devices, and assembly language, would all be part of a modern
curriculum, anyway, leaving fewer layers of obscurity for the
student.
Anyway, if any of you would like to take a look at the thing (even
if only to point out some of the more egregious of the remaining
errors) the link is
http://www.nordier.com/v7x86/
Apart from actually installing the system on some suitable PC, it
is also possible to boot from the CDROM or floppy image and then
simply quit out of the install utility to the shell prompt.
Alternatively, the system can be fairly readily run under Bochs or
some other emulator, using the available "demo" image.
There is a short user-oriented introductory document, with examples,
here
http://www.nordier.com/v7x86/doc/v7x86intro.pdf
What is presently lacking is a document containing a more technical
description of the port, but I hope this will be available before
too long.
As far as the web pages are concerned, these were originally set
up before the 10 August 2007 Judge Kimball ruling in favour of
Novell. No changes have been made (to copyright notices, licence
information, etc.) in the light of that ruling, though of course I
will willingly make changes if and when I know what they should be.
Incidentally, there's been mention, here, in the past, of one or
two projects to port V7 or 32V to the PC. For all I know, these
may still be ongoing: V7/x86 is an unrelated effort.
--
Robert Nordier
////////////////////////////////////////////////////////////////////////////
Nordier & Associates rnordier(a)nordier.com Telephone: +27 31 261-4895
PO Box 11266, Marine Parade, 4056, South Africa Mobile : +27 72 265-2390
////////////////////////////////////////////////////////////////////////////
_______________________________________________
TUHS mailing list
TUHS(a)minnie.tuhs.org
https://minnie.tuhs.org/mailman/listinfo/tuhs
Awesome work. I notice that you require at least a 486 to run this
though. Is there any technical reason, or could this be moved to a 386
by means of a simple recompile? Also, how 32-bit IS the port? Would it
be hard to build a 286 version or even 8086/8088 version to give a
real OS to the old XT/AT in the basement?