Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Apr 1996 12:29:24 -0400 (EDT)
From:      Chuck Robey <chuckr@Glue.umd.edu>
To:        FreeBSD-current@FreeBSD.org
Subject:   ELF executeables
Message-ID:  <Pine.OSF.3.91.960428121918.30493A-100000@professor.eng.umd.edu>

next in thread | raw e-mail | index | archive | help
I'm trying to understand how ELF executeables work, and having a little 
trouble.  I found information (from an SVR4 manual) on the structure of 
ELF executables, and I've read it.  Now I'm trying to understand how an 
executable gets started.  I thought I had it that crt0 loaded an ld.so 
image, which determined if (or if not) it was a shared image, and started 
off loading any shared stuff via mmap calls.  Because of this, I went 
looking at the crt0 and ld.so code, but found no provision for 
recognizing ELF execuables.

I have found in /usr/src/sys/kern the files imgact_aout and imgact_elf, I 
can see that they must be doing the magic, but I don't understand at what 
point in starting execution of a program that they get involved.  Could 
someone explain some of the strategy, or point me at something else to read?

Thanks.  I think that the ELF stuff is really neat, I'm just exercising 
my curiosity.  This is all raising some interesting questions in my mind, 
as to the ultimate (12-18 months) goal of FreeBSD.  Is a.out possibly on 
it's way out?  Does the size of current bloat out, during a possible 
conversion to ELF (dual libs?)?

Sorry for all the questions, I'd really be interested in some comments.  
I'd move this to FreeBSD-chat if folks want.

==========================================================================
Chuck Robey chuckr@eng.umd.edu, I run FreeBSD-current on n3lxx + Journey2
 
Three Accounts for the Super-users in the sky,
  Seven for the Operators in their halls of fame,
Nine for Ordinary Users doomed to crie,
  One for the Illegal Cracker with his evil game
In the Domains of Internet where the data lie.
  One Account to rule them all, One Account to watch them,
  One Account to make them all and in the network bind them.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.OSF.3.91.960428121918.30493A-100000>