Sunday, October 25, 2009

Ryan Gordon Brings Universal Binaries To Linux

One of the interesting features of Mac OS X is its "universal binaries" feature that allows a single binary file to run natively on both PowerPC and Intel x86 platforms.

While this comes at a cost of a larger binary file, it's convenient on the end-user and on software vendors for distributing their applications.

While Linux has lacked such support for fat binaries, Ryan Gordon has decided this should be changed. This professional game porter has created the FatELF project, which basically brings the universal binaries feature to Linux.

The FatELF file format allows multiple binaries for different architectures to be embedded into a single file. Ryan may take this even further by introducing the ability for Solaris and FreeBSD binaries to be embedded into a FatELF as well.

Ryan has launched the FatELF project page where he talks about how with this file format it would be possible to make a universal Linux installation DVD that could automatically handle both x86 and x86_64 systems (or even PowerPC, MIPS, and others too), support for shipping a single shared library, support for kernel drivers targeting different architectures in a single file, and there's a whole range of other possibilities using FatELF.

What Ryan has achieved so far with FatELF is the file format specification along with documentation and then patches to the Linux kernel, file, binutils, and gdb. The patches still to be written are for module-init-tools, glibc, and elfutils. Support for non-Linux platforms right now is just one of the goals.

Ryan has also constructed a proof-of-concept virtual machine that demonstrates FatELF.

No comments:

Post a Comment