Skip to content

bsdimp/v7

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 

Repository files navigation

7th Edition Unix Ported to 8088 and 8086

As part of my Venix reconstruction efforts that have been going on for some time, I thought I'd approach the problem from a different angle.

This work aims to take a rather vanilla 7th edition and port it to my Old DEC Rainbow and the IBM PC/XT and maybe AT.

Look in usr for the work to date. So far it contains just a stubbed out version of the 7th edition compiling with TKChia's ia16-elf-gcc/binutils. I've added the drivers from Robert Nordier's V7/x86 port that targetted 32-bit machines. It builds and creates a unix that's an acceptable size:

% ia16-elf-size unix
   text	   data	    bss	    dec	    hex	filename
  31448	    548	  15256	  47252	   b894	unix

I suspect that it will grow my 8-10k before all is said and done and that for the Rainbow, some of that growth may be reduced by having smaller drivers.

For the moment, to get it running, I'll be focusing on the same mythical machine that Elks uses to test its code with QEMU: an IBM-PC/XT, but with modern ATA controller and IDE disk. But I also hope to see it running on my DEC Rainbow 100B someday.

7th Edition didn't have networking, so there will likely be a side project to port 2.9BSD and/or 2.11BSD over.

I've pulled in some drivers from Robert Nordier's v7/x86 port to get a leg up on things. His port was a 32-bit port (this one is 16-bit) and to the later members of the early IBM family with a full 16-bit ISA bus. Some adjustments are necessary. Some other of his code will be good, while a lot of it is sadly only applicable to the 32-bit version.

I'm also trying to do this with an eye to still supporting the old pdp-11 code as well. I'm doing this so I can prove there's no regressions. I'm trying hard to not move things around, but introduce new directies (ia86*) that mirror the old ones and are at the same level in the heirarchy so that the "../h/blah.h" includes will still work.

In the future, I may do an ANSI-ification pass over this code. It would be helpful to have a regression machine to test against as well nutil the x86 port is robust enough to take over the testing.

For comparison, the venix kernel on my DEC Rainbow is

text    data    bss    dec   hex
40060   3044    18840  61944 f1f8
-r--r--r-- 1 root    43354 Dec  7 16:49 /venix

About

V7 repo for some experiments

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published