FatELF, binari universali anche per Linux
di - Venerdì 30 Ottobre 2009 alle 09:29
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.

Però così i pacchetti saranno grassissimi… non saprei se è un passo avanti(comodità) o indietro(eseguibili grandi il doppio o il triplo).
di Fabio - 30 Ottobre 2009 - 11:05
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!)
di pinzia - 30 Ottobre 2009 - 12:43
scusate, ma eseguibili più grossi non comporta calo di performace o maggior consumo di ram?
di emilio - 30 Ottobre 2009 - 13:51
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
di admiral0 - 31 Ottobre 2009 - 00:25
Sarà il mercato a decidere se saranno utili oppure no…
di Giacomo - 31 Ottobre 2009 - 16:43
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..
di gioby - 01 Novembre 2009 - 13:53
1. Ho contato solo i binari
2. Si può benissimo fare un DVD live che carica 2 distro diverse usando grub.
di admiral0 - 01 Novembre 2009 - 14:04
penso che FatELF sia una possibilità… non un obbligo! quindi non ci vedo niente di male nel dare agli sviluppatori questa possibilità
di druido77 - 02 Novembre 2009 - 09:57
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à.
di mimmozzo - 02 Novembre 2009 - 10:07
#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.
di bpm - 02 Novembre 2009 - 10:18
Infatti passiamo tutti a FreeBSD
di admiral0 - 02 Novembre 2009 - 18:36
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.
di Giacomo - 02 Novembre 2009 - 18:48
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
di ziomaul - 08 Novembre 2009 - 23:48