[TUHS] Origins of the SGS (System Generation Software) and COFF (Common Object File Format)

segaloco via TUHS tuhs at tuhs.org
Fri Feb 24 08:11:31 AEST 2023


Basic-16......augh I feel like I actually saw a Basic-16 eval board of some kind pop up in auctions in my documentation search the past few years.  I thought about bidding but I didn't, could've had some cool hardware to reply back with pictures of.  Lesson learned, if something catches my attention enough I should probably research it more closely.

Thanks for the article link, that pretty much captures the sort of "origin story" I was seeking out on both the tools and format.  I now realize I could've known this already but didn't read far enough in the '84 Bell journal, I've got copies of that and the '78 one, I forget how many juicy details are in there that didn't make it into manuals and technical reports.  All the more reason to go back through and take some notes...

- Matt G.

------- Original Message -------
On Thursday, February 23rd, 2023 at 1:37 PM, Paul Ruizendaal <pnr at planet.nl> wrote:


> > Date: Thu, 23 Feb 2023 18:38:25 +0000
> > Subject: [TUHS] Re: Origins of the SGS (System Generation Software)
> > and COFF (Common Object File Format)
> > 
> > For the sake of timelines:
> > 
> > June 1980 - Publication date on the front page of the 3.0 manual in which the utilities are still very much research for PDP-11 and 32V-ish for VAX where distinctions matter.
> > 
> > June 1981 - Publication date on the front page of the 4.1 manual in which the man-pages very much refer to all of this as the "3B-20 object format"
> > 
> > June 1982 - Publication date on the front page of the 5.0 manual by which point these same pages had been edited and extended to describe the "common object file format"
> > 
> > Additions at the 1981 release include dump(1), list(1), and the ld-prefixed library routines for managing these object files. These likewise persist in 5.0, SysV, and beyond as COFF-related tools.
> > 
> > So this puts the backstop of what would become COFF at at least '81.
> > 
> > - Matt G.
> 
> 
> 
> The surviving source code for SysV R2 supports this timeline:
> - The header files (start from https://github.com/ryanwoodsmall/oldsysv/blob/master/sysvr2-vax/src/head/a.out.h) have dates of late ’82, early ’83.
> - The source for exec() has a comment that refers to the 4xx magic formats as “pre 5.0 stuff”.
> - The COFF format headers are #ifdef’ed for the 3B series.
> 
> Interestingly, the lowest magic numbers in the 5xx series are not for the 3B, but for the “Basic-16” and for the “x86”. That led me to this paper:
> 
> https://www.bell-labs.com/usr/dmr/www/otherports/newp.pdf
> 
> It seems that the roots of COFF go back to the initial portability effort for V7 and in particular the 8086 port (which was done in 1978 according to the paper).


More information about the TUHS mailing list