[TUHS] 2.9bsd with networking on 18-bit possible?
pnr at planet.nl
Thu Dec 13 03:55:17 AEST 2018
> > the code size is about 25KB for both a minimal V6 kernel and the TCP
> > stack, the rest is data.
> That's impressively small; the MIT V6+ with 'demux only in the kernel' was
> 40KB for the combined code (although I can't easily get separate figures for
> the networking part and the rest).
I think my sentence was confusing: it is ~25KB each, so about 50KB combined.
The original V6 kernel was about 29KB (says here https://www.tuhs.org//cgi-bin/utree.pl?file=V6). I've simplified the TTY driver, only support one type of disk driver, dropped shared text segments, dropped FP emulation. Remains about 25KB. Note that the SLIP is merely via a "super RAW" mode on the TTY driver, so I don't need to include the bulky IMP interface driver. Even at 30KB, the V6 kernel must have offered the best bang/buck ratio in the history of software, imho.
> > The Gurwitz code also has an Ethernet driver (note ARP was not invented
> > yet)
> How did it get Ethernet addresses?
:^) See here: https://www.tuhs.org//cgi-bin/utree.pl?file=BBN-Vax-TCP/bbnnet/netconf.c
"Someday this will be generated from the configuration file." I think later it did, but I don't have that code.
> > a project to make V6 run ... on a TI990 clone
> Oh, about the basic part of this: did you start with a plain V6 distribution?
> So you've had to do all the machine language stuff from scratch (and modify
> things in C like estabur())?
> What are you using for a C compiler ? Is there one out there, or did you have
> to do your own?
I has been a journey. I started with the 2.11BSD compiler and ported that to the TI990 architecture (more precisely the 9995 chip, which is similar to a T11 chip).
I debugged that to make XINU run, and then moved on to LSX (as recovered by the BK-UNIX project). Then I started with the V6 kernel from the TUHS website and made that work. Dave Pitts made it work on a real TI990 (he has a TI990/10 and a TI990/12 in working order). So, yes, I did bootstrap all the low level stuff from scratch.
After a three year hiatus I resumed work on this, integrating the Gurwitz TCP stack.
The journey is documented here:
The network code is in a different tree, I'll move it over to the above tree over the weekend.
More information about the TUHS