From: karthikbalaguru on
Hi,
I have been analyzing the file formats and
i wonder why was a.out replaced by ELF
file format ? Were there any flaws in
a.out file format so that it led to the
raise of ELF file format ?

Further, the earlier core dump files
were also based on a.out format, but
now core dumps are also based on
ELF file format . But, what are the
major advantages provided by ELF
file format so that the core dump
file format was also replaced ?

I searched the inernet and got below
link that seems to give a high level
picture -
http://en.wikipedia.org/wiki/A.out -
"Linux's transition to ELF was more or
less forced due to the complex nature
of building a.out shared libraries on that
platform, which included the need to
register the virtual address space at
which the library was located with a
central authority, as the a.out ld.so in
Linux was unable to relocate shared
libraries.The various BSD flavours were
able to continue using a.out binaries
long after Linux was forced to switch
to ELF, due to the somewhat more flexible
nature of the BSD a.out format compared
to that of Linux"

Any link that elaborates the problems
that are conveyed in the above link ?
How is BSD able to follow it ?
Any ideas ?

Thx in advans,
Karthik Balaguru
From: John Levine on
>I have been analyzing the file formats and i wonder why was a.out
>replaced by ELF file format ? Were there any flaws in a.out file
>format so that it led to the raise of ELF file format ?

ELF supports dynamic linked shared libraries, and is better suited to
page mapping executables into the program's address space. There have
been a variety of hacks to work around this with a.out, e.g., the
static linked shared libraries with BSDI a.out files, but ELF handles
both of them a lot better.

>Any link that elaborates the problems that are conveyed in the above
>link ?

You might like my book "Linkers and Loaders", available at better
techinical bookstores and libraries everywhere.

R's,
John
From: Bob Eager on
On Sun, 28 Feb 2010 21:44:02 +0000, John Levine wrote:

>>I have been analyzing the file formats and i wonder why was a.out
>>replaced by ELF file format ? Were there any flaws in a.out file format
>>so that it led to the raise of ELF file format ?
>
> ELF supports dynamic linked shared libraries, and is better suited to
> page mapping executables into the program's address space. There have
> been a variety of hacks to work around this with a.out, e.g., the static
> linked shared libraries with BSDI a.out files, but ELF handles both of
> them a lot better.

I knew that....

>>Any link that elaborates the problems that are conveyed in the above
>>link ?
>
> You might like my book "Linkers and Loaders", available at better
> techinical bookstores and libraries everywhere.

But only because I have your book! The second book I have with that
title....!

--
Use the BIG mirror service in the UK:
http://www.mirrorservice.org

From: Karthik Balaguru on
On Mar 1, 2:44 am, John Levine <jo...(a)iecc.com> wrote:
> >I have been analyzing the file formats and i wonder why was a.out
> >replaced by ELF file format ? Were there any flaws in a.out file
> >format so that it led to the raise of ELF file format ?
>
> ELF supports dynamic linked shared libraries, and is better suited to
> page mapping executables into the program's address space.  

Yeah, it seems that a.out forces the shared libraries to
occupy fixed place in memory, whereas in case of ELF,
the shared libraries can be loaded anywhere in memory.

> There have
> been a variety of hacks to work around this with a.out, e.g., the
> static linked shared libraries with BSDI a.out files,

Eager to know the various work arounds with a.out
in BSD. Any ideas ?

> but ELF handles
> both of them a lot better.
>
> >Any link that elaborates the problems that are conveyed in the above
> >link ?
>
> You might like my book "Linkers and Loaders", available at better
> techinical bookstores and libraries everywhere.
>

I think this will definitely be of great help . Thx a lot :-)

Thx,
Karthik Balaguru
From: Richard Tobin on
In article <cc279310-6212-4934-96d0-b6f9c506b648(a)g8g2000pri.googlegroups.com>,
Karthik Balaguru <karthikbalaguru79(a)gmail.com> wrote:

>> ELF supports dynamic linked shared libraries, and is better suited to
>> page mapping executables into the program's address space. �

>Yeah, it seems that a.out forces the shared libraries to
>occupy fixed place in memory, whereas in case of ELF,
>the shared libraries can be loaded anywhere in memory.

This is not true. Typical implementations of shared libraries with
a.out did not use fixed addresses.

-- Richard
--
Please remember to mention me / in tapes you leave behind.