ELF Released for Linux
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”.
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.
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.
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.
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.
Fast/Flexible Linux OS Recovery
On Demand Now
In this live one-hour webinar, learn how to enhance your existing backup strategies for complete disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible full-system recovery solution for UNIX and Linux systems.
Join Linux Journal's Shawn Powers and David Huffman, President/CEO, Storix, Inc.
Free to Linux Journal readers.Register Now!
- The Death of RoboVM
- Server Hardening
- EnterpriseDB's EDB Postgres Advanced Server and EDB Postgres Enterprise Manager
- The Humble Hacker?
- April 2016 Issue of Linux Journal
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- The US Government and Open-Source Software
- ACI Worldwide's UP Retail Payments
- Open-Source Project Secretly Funded by CIA
- Varnish Software's Hitch
In modern computer systems, privacy and security are mandatory. However, connections from the outside over public networks automatically imply risks. One easily available solution to avoid eavesdroppers’ attempts is SSH. But, its wide adoption during the past 21 years has made it a target for attackers, so hardening your system properly is a must.
Additionally, in highly regulated markets, you must comply with specific operational requirements, proving that you conform to standards and even that you have included new mandatory authentication methods, such as two-factor authentication. In this ebook, I discuss SSH and how to configure and manage it to guarantee that your network is safe, your data is secure and that you comply with relevant regulations.Get the Guide