FatELF - формат для упаковки в исполняемый файл поддержки разных платформ

Ryan C. Gordon представил в списке разработчиков Linux ядра проект FatELF, в рамках которого подготовлен универсальный формат компоновки исполняемых файлов, позволяющий выполнять один и тот же бинарный файл на разных платформах и архитектурах. Например, можно оформить программу, которая сможет выполняться на 32- и 64-разрядных и системах, в Linux и FreeBSD. Кроме того, Ryan опубликовал дополнительные патчи, позволяющие упаковывать поддержку разных архитектур не только для обычных исполняемых файлов и разделяемых библиотек, но и для модулей ядра.

Ценой универсальности служит заметное увеличения размера исполняемого файла, который пропорционален числу поддерживаемых данным файлом систем. В настоящее время FatELF поддерживает архитектуры x86-64, x86, PowerPC, SPARC и MIPS. Из операционных систем FatELF работает пока только в Linux, но уже запланирована реализация для FreeBSD, NetBSD, OpenBSD и OpenSolaris. Для демонстрации концепции работы системы подготовлен демонстрационный образ для виртуальной машины vmWare, основанный на Ubuntu 9.04 с модифицированный Linux ядром, glibc и утилитами.

С практической точки зрения, FatELF может быть использован для упрощения распространения многоплатформенных приложений в виде одного исполняемого файла, для оформления многоархитектурных плагинов к браузеру, для создания универсальных драйверов устройств, работающих на разных системах и архитектурах.

©  OpenNet