ELF is on the Way

Michael K. Johnson

Issue #19, November 1995

Debian has had ELF support for its standard distribution available to developers and all other interested parties for several months, and some of the debian developers are working on ELF issues.

Nearly all the major Linux distributions have announced some support for ELF, and some have beta versions available on the Internet. Red Hat, Slackware, and Yggdrasil have each announced that alpha or beta level ELF-based distributions are available from their standard FTP sites. By the time you read this, all three expect to be shipping production-quality ELF-based distributions.

Debian has had ELF support for its standard distribution available to developers and all other interested parties for several months, and some of the debian developers are working on ELF issues. The current release is a.out-based, but users will be able to upgrade to ELF without re-installing the distribution. This in-place upgradability has been included in Debian for a long time, and has been well tested. Debian can be retrieved via FTP from ftp.debian.com and mirrors including tsx-11.mit.edu and its mirrors worldwide.

Red Hat's beta is available via FTP from ftp.pht.com, ftp.caldera.com, and other mirrors, and is being tested as of late August and early September. Red Hat has committed to a production-quality release in September to support the second preview release of the Caldera Network Desktop, which is built on top of Red Hat's distribution.

For several months, Slackware has provided Slackware 2.3 in a.out format and a beta-quality ELF distribution as well. Slackware's ELF distribution is unusual in retaining an a.out boot disk for installation. Slackware, including the ELF beta, is always available from ftp.cdrom.com.

Yggdrasil avoided releasing a new release of their Plug and Play Linux this spring, and instead put their resources into developing an all-ELF distribution. That beta-quality distribution was made available for FTP from ftp.yggdrasil.com in August.

Linux Journal is not officially recommending any one particular distribution. We will (finally!) be publishing a very comprehensive overview of the most common distributions early next year, which should allow readers to make their own more informed decisions, based partly on the information LJ provides.

In other news...

DEC has announced that they have ported the XFree86 XF86_SVGA server to Linux/Alpha. This alpha-quality release is not guaranteed to work on all S3 boards, but X support for Linux/Alpha does now exist.

Jim Freeman announced that he has written a pre-alpha Linux Frame Relay driver is available for the Sangoma S502 Frame Relay card (a Z80 co-processed ISA card) from ftp://ftp.sovereign.org/pub/wan/fr/s502fr.tgz and ftp://www.caldera.com/pub/wan/fr/s502fr.tgz (new versions may be available by the time you read this). See http://www.sovereign.org/ for current information.

Vipul Gupta and Ben Lancki introduced alpha support for Mobile-IP for Linux. Patches are available at the ftp site anchor.cs.binghamton.edu in /pub/Linux-MobileIP/Linux-MobileIP.tar.gz

What is ELF?

ELF, which stands for Executable and Linking Format, is the new binary file format which has been implemented for Linux. Previously, Linux has used a version of the old “a.out” format, but that format has many limitations that ELF corrects. ELF was originally designed for UNIX System V Release 4, and for various reasons (technical and political) is becoming the most popular binary file format for UNIX and related operating systems such as Linux.

The Linux ELF implementation has been approximately two years in the making, and is of very high quality. Most of the ELF support in the GNU utilties was done by Linux developers to support this implementation.

Linux distributors are working to make the change to ELF as painless as possible for Linux users.

For more information on ELF, see Linux Journal issue 16 (August 1995) Stop The Presses for a light explanation, and issues 12 and 13 (April and May 1995) for a technical overview of the ELF file format.

ELF-based or “Supports ELF”?

What“s the difference? ELF-ased means that all (or perhaps almost all) of the binaries and libraries in the system use the ELF file format. ”Supports ELF" merely means that ELF libraries are included, so Linux binaries created for ELF systems will run. An ELF-based Linux distribution may also support a.out binaries by including the a.out libraries.

You only need a distribution that supports ELF in order to run ELF binaries. However, if you are running both a.out and ELF binaries at the same time, it requires a bit more memory than if you are only running one or the other, so if you need to run some ELF binaries, you are probably better off switching to a completely ELF<\#45>based distribution if you have the time to do so.

Some distributions (particularily Debian) give you the option to upgrade from a.out to ELF with ease. Red Hat has promised a floppy disk that you can use to record the most important parts of your current configuration (such as your carefully<\#45>tuned X Windows setup and networking configuration), which will be used to automatically recreate your configuration when installing Red Hat. This should work for upgrading from any distribution.