The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Warner Losh <imp@bsdimp.com>
To: Paul Winalski <paul.winalski@gmail.com>
Cc: Grant Taylor <gtaylor@tnetconsulting.net>,
	The Eunuchs Hysterical Society <tuhs@tuhs.org>
Subject: [TUHS] Re: Historical application software
Date: Sat, 28 May 2022 18:57:54 -0600	[thread overview]
Message-ID: <CANCZdfqm3W-5VRxjDiCCBdLZHz-gUYZ7YXijgU5J+kD-K4MXVg@mail.gmail.com> (raw)
In-Reply-To: <CABH=_VT2K+Zny_bkb23j6h7gS3SRGzewQhYSMnnEi2kjgx3vcg@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2625 bytes --]

On Sat, May 28, 2022 at 9:30 AM Paul Winalski <paul.winalski@gmail.com>
wrote:

> On 5/27/22, Warner Losh <imp@bsdimp.com> wrote:
> >
> > People working on emulators run into these issues all the time as well.
> > There was a greater diversity of object formats when Unix was younger
> > as well, most have been displaced by ELF (PECOFF being the only exception
> > that's still around outside of Windows).
>
> The object formats that I'm aware of on Unix are:
>
> a.out - comes in three flavors:
> OMAGIC - executable instructions (text) and static data in the same section
> NMAGIC - text separate from data; shared text
> ZMAGIC - text separate from data; demand paged


bsd 2.11 has 6 different magic numbers. The three extra are one flavor of
overlays that does the itself, and two flavor that do it automatically
(I've not plumbed the depths of the code to know what that means) with
separate I&D and one without.


> MACH-O - Object and executable format for the MACH microkernel.  This
> is still the object format used by the Mac OS X operating system,
> which IIRC was built by placing FreeBSD Unix on top of the MACH
> microkernel.  It allows more than the three sections (.text, .data,
> .bss) in a.out.
>
> COFF - Common Object File Format.  Allows up to 64 object fsections.
>

HP-UX had a weird form of COFF in the early days. IBM AIX had its own thing
that wasn't quite COFF, nor was it quite a.out. Apollo also had a variation
on COFF that wasn't quite standard. I wrote a symbol mangler for all of
these in the early 90s and each one was its own special snowflake.


> ELF - Executable and Linkable Format.  Much more uniform (everything
> is a section) than its predecessors, and allows essentially an
> arbitrary number of sections.  In addition to its use on Unix, this is
> the object file and executable format used by Linux and OpenVMS (on
> Itanium and x86).
>
> Are there others?
>
> PECOFF, Portable Executable and Common Object File Format, is the
> object file and executable format used by Microsoft Windows.  It is a
> derivative of COFF, but, in typical Microsoft embrace-and-extend
> fashion, there are significant differences.  When Windows NT was
> ported to the DEC Alpha processor, I had to add PECOFF support to
> DEC's GEM compiler back end.  I started by adding conditional code to
> the existing COFF support, but I found that PECOFF differed enough
> from vanilla COFF that it was easier and more maintainable to fork off
> a separate module for it.
>

pecoff is also used for UEFI binaries... Though the subset that's used tends
to be smaller than what windows itself uses.

Warner

[-- Attachment #2: Type: text/html, Size: 3551 bytes --]

  reply	other threads:[~2022-05-29  0:58 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-27 11:57 [TUHS] " Paul Ruizendaal
2022-05-27 17:00 ` [TUHS] " Grant Taylor via TUHS
2022-05-27 17:29   ` Warner Losh
2022-05-28 15:30     ` Paul Winalski
2022-05-29  0:57       ` Warner Losh [this message]
2022-05-29  9:43         ` Ralph Corderoy
2022-06-03  2:00         ` Chris Hanson
2022-06-03  2:09           ` Warner Losh
2022-06-03  2:02       ` Chris Hanson
2022-05-28 22:06 ` [TUHS] Anyone have an interest in really old analog multimeters and a vacuum tube tested circa 1960s or 1950s? Kenneth Goodwin
2022-05-28 22:09   ` [TUHS] " Kenneth Goodwin
2022-05-28 23:31     ` Ed Cashin
2022-05-28 23:45       ` Clem Cole
2022-05-29  2:11         ` Kenneth Goodwin
2022-05-29  2:18           ` Kenneth Goodwin
     [not found]             ` <99E8871E-035C-4A58-8091-189EDE4689BA@common-sense.com>
     [not found]               ` <CAMQbRb2uPTaqCrZCnVQuBtHhnFZWPpyZ_fHxs-4h8WGoOCrGJQ@mail.gmail.com>
2022-05-29 13:05                 ` Kenneth Goodwin
2022-05-29  2:08       ` Kenneth Goodwin
2022-05-29  2:10       ` Kenneth Goodwin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CANCZdfqm3W-5VRxjDiCCBdLZHz-gUYZ7YXijgU5J+kD-K4MXVg@mail.gmail.com \
    --to=imp@bsdimp.com \
    --cc=gtaylor@tnetconsulting.net \
    --cc=paul.winalski@gmail.com \
    --cc=tuhs@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).