From owner-freebsd-hackers Tue Jan 12 14:29:25 1999 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id OAA20442 for freebsd-hackers-outgoing; Tue, 12 Jan 1999 14:29:25 -0800 (PST) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from smtp04.primenet.com (smtp04.primenet.com [206.165.6.134]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id OAA20434 for ; Tue, 12 Jan 1999 14:29:23 -0800 (PST) (envelope-from tlambert@usr09.primenet.com) Received: (from daemon@localhost) by smtp04.primenet.com (8.8.8/8.8.8) id PAA12016; Tue, 12 Jan 1999 15:28:39 -0700 (MST) Received: from usr09.primenet.com(206.165.6.209) via SMTP by smtp04.primenet.com, id smtpd011978; Tue Jan 12 15:28:37 1999 Received: (from tlambert@localhost) by usr09.primenet.com (8.8.5/8.8.5) id PAA06757; Tue, 12 Jan 1999 15:28:35 -0700 (MST) From: Terry Lambert Message-Id: <199901122228.PAA06757@usr09.primenet.com> Subject: Re: What are the advantages of ELF kernels? To: dcs@newsguy.com (Daniel C. Sobral) Date: Tue, 12 Jan 1999 22:28:35 +0000 (GMT) Cc: dervish@bantu.cl.msu.edu, dillon@apollo.backplane.com, hackers@FreeBSD.ORG In-Reply-To: <369B125D.F487B9@newsguy.com> from "Daniel C. Sobral" at Jan 12, 99 06:14:05 pm X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > I might be misleading here, but I'd think the Number One reason for > changing to Elf is the lack of availability of binutils for a.out. > Support for a.out has been abandoned in binutils (gcc tools). So, it > seriously impacted on FreeBSD's ability to upgrade the compiler > toolchain. > > As for the specifics on how elf is so much better than a.out, I > usually heard most arguments coming from Terry. :-) It's better because it enables future work which would otherwise be impossible. I don't buy the shared library arguments, since mmap is mmap, and the semantics of an executable page aren't determined by the file name the thing is mapped from. The one good thing about the shared library semantic changes is that it should be possible to use a Motif distribution for Solaris or Linux on FreeBSD, assuming that you fix FreeBSD to conform to the Solaris libc or Linux libc calling conventions, such that a Motif depending on one or the other can actually link against a FreeBSD libc (the Solaris one fails because they changed function names instead of introducing binary incompatabilities to support 64bit off_t, etc.). It's also a pity that ELF objects generated on a 3.0 system won't be usable on a 3.1 (or later, if things go as slow as they have been, lately) system, since binutils 2.9.1 made a gratuitous change in the object file layout. Too bad FreeBSD didn't go to 2.9.1 and skip over the bad format entirely, but whatever. For the most part, ELF buys you multiple sections. Multiple sections buy you the ability to apply semantics to sections based on their names, or on associate attribute bits. One of many examples is that you could put all of the device probe code into a specific section name, and once you probed the devices at boot time, discard and reclaim that memory which is currently lost. Another example is that you could attribute the code in the paging path as "non-pageable", and allow the entire rest of the kernel to be paged in and out. This would let you do what "eBSD" (BSDI's "embedded BSD") does: run in 2M or less of real memory. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message