Linux Standard Base
di Nicholas Petreley
traduzione di Pietro Leone
I BENEFICII DELLA LINUX STANDARD BASE
Molto si è speculato riguardo alla possibilità che Linux si possa
dividere in tante versioni incompatibili fra loro.
Alcune di queste speculazioni
sono abbastanza fondate, ma altre no, la meno credibile è quella che sostiene questo succederà perché è ciò che è già avvenuto per UNIX.
Questa affermazione tralascia completamente le
dinamiche di mercato che hanno portato UNIX alla
frammentazione in varie versioni, e, conseguentemente, il fatto
che queste stesse dinamiche non siano applicabili a Linux. UNIX
aveva come scopo la vendita di soluzioni hardware proprietarie,
l'obbiettivo di Linux è completamente differente: una soluzione
open source, libera (così come è la libertà di parola),
stabile e scalabile, in quest'ottica, Linux ha in sè stesso la
sua finalità.
Mentre molto può essere detto sulla possibilità che Linux si
frammenti, si potrebbe anche osservare che vi sono sempre state
poche direttive riguardanti la compatibilità fra le suediverse
incarnazioni. Per ciò si può ringraziare la sua natura open
source. Oggi, comunque, vi sono alcune incompatibilità
che non rendono conveniente il supporto di più distribuzioni;
sicuramente l'intero mercato di Linux trarrebbe beneficio nel
vedere risolte queste incompatibilità senza pretendere troppo
dalle risorse dei varii produttori di software per differenziare
i loro prodotti.
Supporta la Linux Standard Base (LSB), il suo obbiettivo è di
sviluppare e di promuovere degli standard che migliorino la
compatibilità fra le varie offerte Linux e di permettere alle
applicazioni di funzionare su qualsiasi systema Linux aderente a
tali standard. In aggiunta LSB cercherà di coordinare gli sforzi
per spingere i produttori di software a portare le loro
applicazioni su linux ed a produrne altre ad esso dedicate.
Attualmente la LSB annovera fra i suoi membri: Caldera Inc.,
Corel Corporation, The Debian Project, Enhanced Software
Technologies Inc., IBM, LinuxCare, Linux for PowerPC,
MandrakeSoft, Metro Link Inc, The Open Group, TurboLinux Inc.,
RedHat Inc., SGI, Software in the Public Interest Inc., SuSE
GmbH, VA Linux e WGS Inc..
Questo documento tratta dei beneficii che emergeranno dalla LSB
per:
- gli utenti
- i produttori ed i distributori indipendenti di software
- i distributori
I primi devono essere in grado di comprare una distribuzione di
Linux che soddisfi le loro esigenze senza il timore che le loro
applicazioni abbiano problemi di compatibilità con quella data
distribuzione. La LSB garantisce al cliente che i programmi da
lui scelti siano stati testati perché rispettino gli standard
LSB e che funzionino su ogni distribuzione basata sulle
raccomandazioni della LSB.
Gli sviluppatori ed i venditori indipendenti avranno bisogno
della LSB perché è nel loro stesso interesse che le loro
applicazioni funzionino sul maggior numero possibile di
piattaforme Linux. Inoltre raggiungerebbero una base di utenza
molto vasta senza dover instaurare particolari legami con le
diverse distribuzioni.
Gli autori di programmi liberi vedranno il loro lavoro
semplificato, i loro programmi funzioneranno sulle diverse
distribuzioni senza dover fare modifiche al codice sorgente. Ciò
aumenterà anche la quantità di software libero disponibile per
Linux.
I distributori di Linux avranno bisogno della LSB perché così
aumenteranno il valore aggiunto dello proprie distribuzioni senza
dover modificare le applicazioni.
STANDARD BASATI SULLE SOLUZIONI
La Linux Standard Base comprende delle specifiche scritte, un insieme di test per
provare l'aderenza allo standard ed una distribuzione OpenSource di Linux
come base da cui partire. Questa sarebbe anche utile come strumento di
sviluppo e di prova per gli sviluppatori e per i produttori indipendenti.
Lo scopo degli standard proposti dalla LSB comprendono il controllo e la
"standardizzazione":
- delle più utilizzate librerie condivise
- dei comandi di sistema
- della gerarchia del filesystem
- del processo e degli script di inizializzazione del sistema
- del rispetto dello standard POSIX.1 e delle estensioni della libreria glibc
- dei socket
- di X11
- di un software di base per l'installazione
- di un formato per i file oggetto
Lo scopo della LSB è di garantire compatibilità fra le distribuzioni e
verso il basso delle applicazioni Linux senza, però, intralciare lo
sviluppo di Linux. Le librerie condivise sono fondamentali per la
compatibilità di molte applicazioni, specialmente quando queste librerie
non sono soggette ad un rigido controllo di versione o quando lo
sviluppatore del programma non sa quale utilizzare.
Molti sistemi operativi si basano sulle librerie condivise per fornire alle
applicazioni un insieme di funzioni e di utilità standard senza sprecare
inutilmente spazio su disco ed in memoria. Linux, per esempio, normalmente
include librerie essenziali e molto utilizzate, come la glibc, phtreads,
libm, Xt, ncurses insieme a molte altre. Applicazioni che sono state
compilate con una determinata libreria si aspettano di
trovare, al momento del lancio, la stessa medesima versione.
Mentre è possibile per queste applicazioni utilizzare incarnazioni più
recenti la compatibilità verso quelle meno aggiornate non può essere
garantita. Per esempio, vi sono problemi nell'utilizzo di librerie simili,
come la glibc2.0, la 2.1 e la 2.2. Se un'applicazione è
stata compilata per utilizzare la glibc2.1 non è assolutamente detto che
possa funzionare con versioni più vecchie e non è garantito che funzioni
correttamente con quelle più recenti.
Un sistema per aggirare questo problema è quello di includere più
versioni della stessa libreria all'interno delle distribuzioni Linux e permettere alle
applicazioni di scegliere quella per cui sono state compilate. Questa
procedura a volte funziona, ma non è sempre praticabile a causa dello
spazio utilizzato che può diventare eccessivo, limitando, inoltre,
l'utilità di avere delle librerie condivisibili.
Come risultato è possibile vedere sistemi che sembrano dotati di più
versioni della
stessa libreria, ma in realtà queste sono dei link che puntano ad un
unico file. Questo è un sistema comunemente utilizzato per ovviare alla
richiesta di versioni diverse della stessa libreria da parte delle
applicazioni, ma sarebbe inapplicabile alla strategia della LSB volta a
risolvere i problemi di compatibilità. Innanzitutto non è
abbastanza sicura per essere considerata una soluzione accettabile,
secondariamente non previene la sovrascrittura da parte dei
programmi di installazione delle librerie con versioni recenti che potrebbero
rompere la compatibilità verso il basso.
La LSB definisce un minimo insieme di librerie come parte della
distribuzione di base e dà a queste un nome univoco che le identifichi come
aderenti alle specifiche LSB. Per esempio, la versione conforme di
libcrypt dovrebbe essere libcrypt.lsb.1. Questa convenzione permette di creare un
insieme di librerie su cui sia gli sviluppatori di applicazioni sia i
produttori delle distribuzioni possono basarsi.
Questa convenzione previene la sovrascrittura delle librerie conformi LSB
da parte dei programmi di installazione con nuove versioni delle medesime.
Se, per esempio, una distribuzione includesse una libcrypt
contenente nuove caratteristiche rispetto alla libcrypt.lsb.1, la prima
potrebbe utilizzare una denominazione non conforme LSB come
libcrypt.so.1.2. Questo file potrebbe sostituire libcrypt.so.1.1, ma non la
libcrypt.lsb.1 poiché questa è conforme ai suggerimenti della LSB ed è
stata quindi rinominata. Questo sistema rende disponibili le nuove
caratteristiche senza compromettre le applicazioni che necessitano della
libreria LSB. La Linux Standard Base permette la coesistenza fra queste
nuove librerie e quelle LSB per garantire la compatibilità senza impedire
sviluppi futuri.
Questo tipo di approccio garantisce a Linux la compatibilità
verso il basso che spesso non è presente nei sistemi operativi
propretarii sotto il controllo di un'entità commerciale.
Intenzionalmente o meno, i produttori di sistemi operativi
possono mettere in difficoltà i loro concorrenti sostituendo le
librerie principali con nuove versioni. Purtroppo gli utenti non
possono evitare il comportamento imprevisto che può derivare
dall'inclusione delle modifiche nei soli aggiornamenti ufficiali
o "service pack". Questi sistemi operativi proprietarii sono
spesso automaticamente aggiornati o modificati con versioni meno recenti degli
elementi quando l'utente installa delle
applicazioni commerciali.
Fortunatamente la natura OpenSource di Linux rende quasi
impossibile per un singolo distributore forzare in questo modo
come standard una sua scelta, questo perché le librerie
principali sono liberamente accessibili ed utilizzabili
indipendentemente dalla distribuzione di Linux utilizzata. La
Linux Standard Base aggiunge un ulteriore livello di sicurezza,
infatti, indipendentemente da come sia aggiornata una
distribuzione, l'aggiornamento non modificherà le applicazioni
che seguono le regole della LSB perché le librerie LSB non
saranno toccate.
UNO STANDARD OMNICOMPRENSIVO
Le regole della Linux Standard Base
sono limitate alla gestione delle librerie, ma interessano anche
alcuni comandi (quali cat, sleep, more, man, sed, nice, tail,
ecc.) considerati come fondamentali in una distribuzione base di Linux. Gli standard
proposti dalla LSB sono simili, anche se non identici, a quelli
suggeriti nella seconda versione della Single UNIX Specification
(conosciuta anche come UNIX98) del The Open Group. Le
applicazioni di Linux si basano pesantemente sugli script della
shell per compiere varie azioni quali l'installazione, la
rimozione, l'inizializzazione e lo "shut down" dei programmi.
Alcuni comandi, quindi, devono essere presenti perché questi
script possano funzionare senza errori e gli sviluppatori possano
continuare a scriverli senza tema che manchino i programmi
basilari da loro scelti.
Per un sistema che si basi sugli standard della LSB, però, è
importante non solo che sia presente un set minimo di programmi,
ma anche che sia nota e certa la loro posizione. La LSB ha
adottato il Filesystem Hierarchy Standard (FHS) per raggiungere
questo ed altri obiettivi. FHS suggerisce come debbano essere
posizionati file, librerie e comandi all'interno di un sistema
che segua le specifiche LSB. Visitate l'indirizzo
http://www.pathname.com/fhs per una descrizione completa di
questo standard e delle aree da questo coperte.
LSB considera anche che nei sistemi aderenti alle sue specifiche
alcune applicazioni possano e debbano essere lanciate al "boot" .
Per questa ragione sono state definite delle regole anche per la
posizione ed il contenuto degli script ed i file di
inizializzazione. Lo standard permette ad un produttore di un
database, per esempio, di installare gli opportuni file e script
con l'assicurazione che gli altri processi necessarii per la
partenza del proprio software siano già stati lanciati. Lo
standard evita anche l'esistenza di dipendenze ricorsive che
avrebbe come effetto l'inizio di un ciclo da cui il sistema non
potrebbe più uscire.
I sistemi aderenti alla LSB supportano lo standard POSIX.1-1990 e
le estensioni della glibc. Questo fornisce agli sviluppatori un
set di istruzioni conosciuto e la documentazione su cui fare
affidamento nello sviluppo delle applicazioni.
La LSB ha anche determinato le specifiche per l'interfaccia
socket per l'accesso ad internet. Sempre più applicazioni
utilizzano la rete e quindi la LSB incoraggia l'uso degli
standard già esistenti e tutt'ora utilizzati.
Anche se non tutte le applicazioni utilizzano un'interfaccia
grafica lo fa una tale percentuale che quest'area non può essere
ignorata, quindi la LSB definisce lo strato inferiore a X11, ciò
aiuterà a ridurre le dimensioni delle applicazioni poiché non
sarà più necessario compilare staticamente queste librerie.
Questo, però, permette grande libertà nella scelta degli strati
superiori più conosciuti oppure di visualizzare le applicazioni
X11 su un altro computer (compreso uno che non segua le direttive
LSB o sul quale ci sia un sistema operativo diverso da Linux).
L'Executable and Linking Format (ELF) è il formato standard
de-facto dei file eseguibili ed oggetto utilizzato in Linux. La
LSB sostiene l'uso di questo formato e dei test per esso. Le
specifiche per il formato ELF sono disponibili sotto forma di un
file pdf all'indirizzo
http://www.linuxbase.org/spec/refspecs/elf.pdf.
Ciò che non è coperto dal lavoro della LSB è importante tanto
quanto quello che lo è. Gli utilizzatori di Linux, i produttori
di software, delle distribuzioni e gli sviluppatori trarranno
beneficio non solo dalla sollecitazione della LSB all'utilizzo di
formati e strutture standard, ma verranno ancora maggiori
vantaggi dalla libertà che deriva dalle aree non coperte dal
suo lavoro.
É importante comprendere come il lavoro della LSB si incentri
solo sugli elementi del sistema operativo Linux che influenzano
la compatibilità delle applicazioni. Considerate ciò come uno
strato intermedio fra il kernel di Linux e le caratteristiche di
una distribuzione non richieste dal software, come i programmi di
installazione o le applicazioni di terze parti.
Il kernel di Linux, che risiede al di sotto dello strato della
LSB deve potersi evolvere senza restrizioni. Sopra di esso lo
strato fornito dalle specifiche fornisce un livello al di sotto
del quale nulla deve essere modificato perché venga garantita la
compatibilità per le applicazioni, come conseguenza di ciò
praticamente tutto va "posizionato" al di sopra di questo
livello. Garantendo un ambiente che subisca solo cambiamenti
ponderati ed ordinati, i produttori delle distribuzioni di Linux
ed gli sviluppatori indipendenti potrebbero differenziare i
proprii prodotti senza avere problemi di compatibilità.
Sempre che le distribuzioni di Linux rispettino le linee guida
proposte dalla LSB sarebbe anche possibile aggiungere software
senza che l'utenta perda i beneficii dati dalla formula
OpenSource. Per esempio, una volta terminata l'installazione il
programma proprietario preposto a tale scopo praticamente
scompare, senza più influenzare la compatibilità della
distribuzione con i programmi aderenti alle direttive della LSB.
Di contro un produttore potrebbe volere che tutto il proprio codice sia
OpenSource per rivolgersi ai clienti che pretendono di avere i sorgenti di
ogni programma, persino quelli che aderiscano solo parzialmente ai
suggerimenti della LSB.
La Linux Standard Base volutamente evita di imporre il funzionamento
dell'amministrazione del sistema Linux. Per esempio, la LSB non richiede
uno rigido insieme di regole sulla sicurezza per il file system e per i
gruppi e gli utenti. L'aderenza alle norme richiede che le applicazioni
continuino a funzionare anche se l'amministratore di sistema modifica le
impostazioni di siscurezza predefinte(entro un ragionevole limite,
ovviamente. Un pessimo amministratore potrebbe danneggiare qualsiasi
sistema, la LSB non vuole, e non potrebbe, prevenire simili eventualità.)
Infine, l'intento della Linux Standard Base di indirizzarsi alla grande
distribuzione, ma non necessariamente agli adattamenti di Linux, come
quelli del mercato "embedded". Mentre è sicuramente possibile , ed in
certi casi desiderabile, per le soluzioni personalizzate, come quella per
il progetto di un router Linux, essere parzxialmente aderenti alla LSB, vi
sono aspetti di questa che sono irrilevanti per questo progetto o similari.
Comunque, la LSB, continuamente rivaluta la necessità di standard
importanti per questi mercati e lavora con le parti interessate perché
Linux continui a crescere.
IL CLIENTE VINCE
Vi sono molti potenziali beneficii nell'adottare gli standard della LSB.
Regole ben definite forniscono agli sviluppatori commerciali e non delle
linee guida ben definite per produrre buoni sorgenti. Una profonda aderenza
alla LSB significa che le applicazioni funzioneranno su qualsiasi macchina
Linux invece di dover essere modificate per un minore segmento di mercato.
La Linux Standard Base favorisce un mercato più ampio per ogni produttore
di Linux perché incoraggia un maggior numero di rivenditori, sviluppatori
e fornitori indipendenti a supportare Linux. Persiste, però, un forte
incentivo per chiunque ad innovare al di fuori dei confini così stabiliti,
senza minacciare, quindi, l'inestimabile valore che è la natura OpenSource
di Linux stesso.
|