FatELF, binari universali anche per Linux

FatELF logo

Invidiosi degli Universal binary di OS X e stanchi di litigare con le librerie a 32 bit sui vostri sistemi a 64? Ryan Gordon, il famoso sviluppatore anima di icculus.org, ha annunciato un progetto che potrebbe risolvere questi problemi e far compiere a Linux un balzo in avanti nel campo della portabilità dei pacchetti.

Come gli utenti più tecnici ben sanno, il formato nativo degli eseguibili di Linux porta il nome di ELF e il nuovo formato FatELF (elfo grasso) non è nient’altro che un eseguibile che include il codice di più architetture, anche totalmente differenti tra loro.

Con FatELF è possibile far convivere x86 con x86_64 o addirittura architetture più esotiche come PowerPC o MIPS, anche più di due alla volta; ovviamente per supportare questa possibilità è necessario applicare alcune patch al kernel, alle bintutils e a gdb.

Sul sito del progetto, Gordon ha reso disponibile un’immagine Ubuntu 9.04 con supporto a FatELF, le patch da applicare ad un sistema ELF “normale” e le motivazioni alla base del progetto. Nei prossimi mesi Ryan intende aggiungere a FatELF anche il supporto ai binari di Solaris e FreeBSD.

sponsor

Commenti

  1. [1]

    Però così i pacchetti saranno grassissimi… non saprei se è un passo avanti(comodità) o indietro(eseguibili grandi il doppio o il triplo).

  2. [2]

    comodità per gli utenti che non devono porsi il problema del tipo di architettura (semplificazione), comodità per gli sviluppatori perché creano un pacchetto unico per tutte le architetture, comodità per lo spazio occupato sui server perché la somma dei pacchetti amd64+i386 solitamente è maggiore di un singolo pacchetto multiarchitettura.
    Problemi invece per la banda e la distribuzione su supporto fisico perché anche un piccolo applicativo si porta dentro la parte relativa alle altre architetture.
    Certo se finalmente si integrasse il delta anche su deb (come adesso in prova su rpm) i problemi di banda verrebbero a diminuire sensibilmente (durante gli aggiornamenti scarica solo le parti modificate).

    Comunque FatELF è pensato principalmente per i distributori (videogames in primis!)

  3. [3]

    scusate, ma eseguibili più grossi non comporta calo di performace o maggior consumo di ram?

  4. [4]

    E’ pensato per i distributori di blob binari non di certo per i software open source e per gli utenti. Dando per scontato che sia facile fare il build di un FatELF (ci vorrebbe una toolchain per ogni architettura)…

    …700 pacchetti(io ne ho installati 688 su un sistema quasi fresco) che si bevono 3Mb di spazio in più ciascuno… fanno 2Gb… che possono anche essere pochi ma non sono da buttare via.

    Es. In /usr/lib ho 1.1 Gb di librerie i686. Considerando che in media le x86_64 pesano il 130% delle i686 mi ritroverei con ~1.4Gb di libs che non userei mai…

    Ha un senso questa cosa? Per me no

  5. [5]

    Sarà il mercato a decidere se saranno utili oppure no…

  6. [6]

    beh generalmente i binari occupano solo una parte di un pacchetto di una distribuzione…. infatti questi includono anche immagini, files di configurazione, documentazione, etc..; inoltre non tutti i programmi sono scritti in un linguaggio compilato, ce ne sono molti in python o in altri linguaggi interpretati.
    Può essere utile per alcune cose, per esempio, fare come l’autore del tool, ovvero farsi un cd live di debian da portarsi appresso e che funzioni con qualsiasi architettura..

  7. [7]

    1. Ho contato solo i binari

    2. Si può benissimo fare un DVD live che carica 2 distro diverse usando grub.

  8. [8]

    penso che FatELF sia una possibilità… non un obbligo! quindi non ci vedo niente di male nel dare agli sviluppatori questa possibilità

  9. [9]

    A mio modesto parere, più che l’architettura, il problema è una mancante standardizzazione dei pacchetti software, che possono essere molto differenti da distribuzione a distribuzione (anche solo per la locazione dei file di configurazione).
    Che un eseguibile possa essere eseguito, ad esempio, su ubuntu x86 e su ubuntu x64, non toglie il fatto che se lo porto su una fedora o centos, non funzionerà.

  10. [10]

    #8 generalmente invece portare pacchetti da ubuntu a fedora o viceversa funziona. Generalmente ci sono pochi passi da fare per fissare librerie con link simbolici differenti.

  11. [11]

    Infatti passiamo tutti a FreeBSD

  12. [12]

    Da medio utente comincio a pensare che linux sia finalmente usufruibile da tutti… davvero non capisco chi lo critica così. Secondo me funziona bene per l’uso comune degli utenti.

  13. [13]

    Questo è un problema per molti OS compreso il dinosauro Windows 32 rispetto al 64, ma non mi pare un sistema per risolvere le cose.

    Ciao

Inserisci il tuo commento

Aumenta l'altezza della textarea Riduci l'altezza della textarea