gabriel rosenkoetter on Sat, 2 Jun 2001 22:24:36 -0400


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] ELF Init section


On Sat, Jun 02, 2001 at 07:56:58PM -0400, Bill Jonas wrote:
> bj@morpheus:~$ file /bin/ls
> /bin/ls: OpenBSD/i386 demand paged executable
> 
> I'm not exactly sure what the file type means, but I'm pretty sure it's
> not ELF. ;)  Although all three BSDs (to my knowledge) can run Linux
> binaries as a sort of emulation mode.

Ewww. OpenBSD is still using a.out (that's what that is, btw) on their 
i386 port? What's the uname -a for that machine? Yech, well, they're
still using in in 2.8 (see below), and the 2.9 (which just came out)
release notes say nothing of a move to ELF format. Oh well, just one
more justification for all the folks who say that Theo is just a
megalomaniac blowhard (as if more reasons were needed after the
recent IPF fracas).

NetBSD's i386 port moved to ELF binaries with 1.4, and nearly
every other port is using ELF these days (including both macppc and
mac68k too, finally with 1.5.1, which should be out within a couple
of months at the most). Standouts are the really weird stuff like,
if memory serves, the sh3 port (the chip used in the mmeye digital
camera/webserver and also the chip in the dreamcast).

>  From my Linux box, if that sheds any light on the matter:
> bj@epoch:~$ scp morpheus:/bin/ls .
> ls                   100% |*****************************|   164 KB 00:01
> bj@epoch:~$ file ls
> ls: NetBSD/i386 demand paged executable

This is, of course, because OpenBSD is basically Theo de Raadt's toy
based on NetBSD's source tree. I doubt even NetBSD's magic file
could tell the difference between the two, as I expect the file
format is the same. Though, I can check...

spatula:~% uname -a
OpenBSD spatula 2.8 conf#3 i386
spatula:~% file `which ls`
/bin/ls: OpenBSD/i386 demand paged executable

grappa:~% uname -a
NetBSD grappa 1.5V NetBSD 1.5V (GRAPPA) #0: Sun May  6 14:22:19 EDT 2001     gr@grappa:/usr/src/sys/arch/i386/compile/GRAPPA i386
grappa:~% file `which ls`
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped

uriel:~% uname -a
NetBSD uriel.eclipsed.net 1.5 NetBSD 1.5 (URIEL) #0: Thu Jan 25 15:27:28 EST 2001     gr@uriel.eclipsed.net:/usr/src/sys/arch/macppc/compile/URIEL macppc
uriel:~% file `which ls`
/bin/ls: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1, statically linked, stripped

[Just proof that NetBSD/i386 and /macppc really is using ELF these
days, if you care.]

grappa:~% scp spatula:/bin/ls ./openbsd-ls
ls                   100% |*****************************|   164 KB    00:02    
grappa:~% file openbsd-ls
openbsd-ls: NetBSD/i386 demand paged executable

Yeah, that's what I figured. (Running this just dumps core on my
NetBSD/i386 machine, of course, because I don't have a.out emulation
set up, but if I did have have it set up, I expect it would work fine.)

> BTW, I think this is a rather interesting discussion we're having here.
> Totally on-topic.  ;-)  I mean, the executable file format is pretty
> basic to the functioning of any system...  While it's probably true you
> can get better answers to some of these questions elsewhere, don't feel
> as though it's off-topic here.

I definitely agree. LUGs, despite the Linux in their title, strike
me as precisely the place to learn about open source (and free
software, no, I'm not going to argue about whether or not they're
the same thing) operating systems' innards.

I could expound at great length about the executable format (and the
odd additions to it) on the powerpc, as I've been trying to make
some modifications to gcc work there so that loadable kernel modules
are actually useable on the NetBSD/macppc port, but the details
are about as interesting as watching water evaporate even for me,
so...

       ~ g r @ eclipsed.net


______________________________________________________________________
Philadelphia Linux Users Group       -      http://www.phillylinux.org
Announcements-http://lists.phillylinux.org/mail/listinfo/plug-announce
General Discussion  -  http://lists.phillylinux.org/mail/listinfo/plug