ELF Released for Linux

What does that mean to the average Linux user? What is ELF, anyway?

The ELF tools for Linux have just been publicly released, after months of testing. What does that mean to the average Linux user? What is ELF, anyway?

ELF is a advanced new binary file format for executables, libraries, and object files (which are used to create libraries and executables). It is the native binary file format of Unix System V Release 4, and is far more powerful and flexible than the original binary file format used on Linux, which is often called “a.out”.

Why do I care?

The people who really care about this are the programmers who make it possible for you to run a Linux system. They care because ELF makes several things much easier for them to do, and even makes some things that were previously practically impossible easy. This will allow them to develop better and more interesting software—which every Linux user gets to use.

Also, the ELF shared libraries are much more flexible than the old a.out DLL shared libraries which have been the Linux standard for a few years now. Backwards compatibility will be much easier to maintain with the ELF libraries, which will give all Linux users a more stable platform. “Wizardry” should no longer be required to upgrade libraries or compilers, once you are using ELF.

Do I want to upgrade?

Probably not yet. If you use Linux because it is an adventure, or to learn, then you probably do want to upgrade. However, if you just want to get work done, then you probably do not want to upgrade quite yet.

There are two ways to upgrade. One is to simply install the ELF libraries, and if you compile your own kernels, make sure that your kernel has been compiled with ELF binary support. This will allow ELF binaries to run on your system with no further work on your part. The first problem with this is that using both the older a.out shared libraries and the ELF shared libraries at the same time will use more memory than using all binaries of one type or the other, and therefore will almost certainly slow your system down. Therefore, this is only recommended it you want to be able to run occasional ELF binaries. The second problem with this is that you are required to rearrange some files in order to install the ELF libraries.

The other way is to wait until your favorite distribution of Linux is available in an all-ELF form, and re-install your system. As drastic as this sounds, it will lead to higher performance, especially if you want to run ELF binaries regularily. Hopefully, most distributions will make this easier than it sounds, perhaps by having an option to only install binaries. Distributions with package maintenance options should give you the option to uninstall your old packages and install new ELF-based ones without a fully reinstalling your system.

You will probably want to wait to reinstall your system until your favorite distribution has provided a (relatively) easy way to upgrade. If you want to use a new program available only in ELF (i.e., play with a new toy), your time will probably be better spent simply installing the new libraries. Unfortunately for normal users, it is not as easy as making a directory and dropping a few files in it. It requires installing a new ld.so and moving libraries. There has been some talk of a script to automate the process, and it will probably have been written by the time you read this, but I can't tell you where to get it because as I write this it doesn't yet exist.

This isn't wizardry?

The unfortunate fact is that to get to the state where it is so much easier to upgrade will require harder work initially. If you are patient, someone else may do the work for you; either someone who writes a generic upgrade script (this is only really possible thanks to the Linux File System Standard, which was explained in the July issue of LJ) or the maintainer of your favorite distribution. But there is no free lunch; either you have to do the work, or someone else does. The difference with ELF is that once that difficult work has been done once, the next time you need to upgrade your shared libraries, it will be easier than it ever has been—for whoever does the work.

Update on Linux/Alpha

For those following the Linux/Alpha port, Jim Paradis of DEC recently announced that the networking code in the Alpha port is starting to work, a few weeks after work on networking commenced. This rapid progress, which has been characteristic of the Alpha port, suggests that DEC is likely to meet their projected fall release of the full system.

______________________

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState