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 может быть использован для
упрощения распространения многоплатформенных приложений в виде одного
исполняемого файла, для оформления многоархитектурных плагинов к
браузеру, для создания универсальных драйверов устройств, работающих на
разных системах и архитектурах. Источник
|