Prev: More quirks importing from bsd
Next: stdin problem.
From: karthikbalaguru on 28 Feb 2010 15:23 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 28 Feb 2010 16:44 >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 28 Feb 2010 17:14 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 2 Mar 2010 19:35 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 6 Mar 2010 14:01
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. |