On Fri, Feb 24, 2023 at 9:07 PM Dave Horsfall <dave(a)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. 🍺
ᐧ