On Fri, Feb 24, 2023 at 9:07 PM Dave Horsfall <dave@horsfall.org> wrote:
On Thu, 23 Feb 2023, Paul Winalski wrote:

> a.out was, as object file formats go, a throwback to the stone age from
> the get-go.  Even the most primitive of IBM's link editors for
> System/360 supported arbitrary naming of object file sections and the
> ability for the programmer to arrange them in whatever order they
> wished.  a.out's restriction to three sections (.text, .data, .bss) did
> manage to get the job done, and even (with ZMAGIC) could support
> demand-paged virtual memory, but only just.


That may be so, but those guys didn't exactly have the resources of
IBM behind them...
A reasonable point, but it was more Ken, Dennis, and the team did what >>they needed<< and it was good enough for a long time.  The IBM link editors needed all that back in the day.  As more and more "modern" languages came into being, it was not until about 6th editions that difficulties of not having an expandable object format and better linker began to show, and as Paul says, until the support for demand paging that a.out was really stressed.

Please correct me if I'm misinformed, but Paul, of course, had to support the DEC language tools on Unix, which had come from systems that had a more flexible format (the solution for Ultrix IICR was to move a flavor of the VMS linker to UNIX for object file and just a.out for execution).   So he lived the difficulties/shortcomings.  A valid argument is Tanndenbaum's compiler toolkit survived with a.out, and he supported many of the same language targets that DEC did.  Andy and crew did their own assemblers, does anyone remember if they supplied a new linker and object format? That would make Paul's point more powerful -> the languages people wanted something more.

My point, the UNIX developers built what they needed and built that well.  Their format worked with their development primary language/tool (a.k.a. C) and they even made it work with an f77 implementation. So it is a little hard to knock them too much -- it was not part of the original design spec.

But as Matt has discussed in his digging through things, it does look like as the AT&T languages team started to run into some of the same barriers, they started to move to a new format.


And I wonder how many people here know the significance of the "407" magic
number?

Today, few and fewer I fear.  For those do not, please see page 4-33 of the 1975/76 DEC PDP-11 Processor Handbook and think about boot blocks.  🍺