Start a new group Find groups

LOGIN

×

Sistema Operativo a 5 Stelle -dubbi e perplessità-

Il Significato tecnico della parola sistema operativo 

Insieme di programmi che gestiscono in modo automatico l'hardware di un computer. Il s.o. assegna le risorse di calcolo e memoria della macchina in modo che essa provveda, durante l'esecuzione dei programmi applicativi, a prelevare i dati dalle unità periferiche di entrata e a trasferirli a quelle di uscita. Ogni s.o. ha una sua caratteristica interfaccia utente (costituita da un insieme di comandi, testuali nei primi s.o., di tipo grafico in quelli attuali), che consente all'operatore di accedere ai vari programmi applicativi e controllare le funzioni fondamentali della macchina. Tra i più noti e diffusi: Windows di Microsoft, Mac OS di Apple e Linux/unix.

Alcune parti fondamentali del s.0. sono il kernel ,file system, il terminale a linea di comando,il boot per l'avvio,ed altre parti  che servono senza ombra di dubbio a far funzionare il s.o. e quindi il personal computer che possediamo.

 Differenze tra i vari S.O.

Linux Sistema operativo creato nel 1991 dal programmatore L. Torvalds; più propriamente, il termine si riferisce al kernel (nucleo base) del sistema operativo e può essere installato su differenti dispositivi quali computer, mainframe, macchine per videogiochi, telefoni cellulari, apparecchiature a microprocessore e altro. Deve gran parte del successo alla bassa frequenza di errori di sistema, che conferisce stabilità al sistema stesso, e al continuo miglioramento apportato dagli utenti nel suo codice sorgente, liberamente disponibile e modificabile.A questo punto è di sicuro interesse fare un passetto indietro e andare al periodo della creazione del sistema UNIX in quanto vedremo che senza unix non ci sarebbe stato ,con molta probabilità Linux.

 UNIX is simple and coherent, but it takes a genius 
to understand and appreciate its simplicity.(UNIX è semplice e coerente, ma ci vuole un genio
capire ed apprezzare la sua semplicità.)

Nel 1965, i Bell Telephone Laboratories unirono i loro sforzi a quelli della General Electric Company nel progetto MAC del MIT (Masssachusetts Institute of Technology) per sviluppare un nuovo Sistema Operativo. Il nome di quest'ultimo era Multics, acronimo di Multiplexed Information and Computing Service, dove ``multiplexed'' si riferisce alla combinazione di più segnali elettronici in un unico segnale. Si voleva far accedere simultaneamente un'ampia comunità di utenti al computer, fornire una grande potenza di calcolo e permettere agli utenti di condividere facilmente i loro dati, se necessario. Nel 1969, su un computer GE 645 girava una versione primitiva di Multics, che però non forniva il servizio computazionale che ci si era proposti inizialmente; inoltre non era chiaro quando sarebbe terminato il progetto, anche perchè le tre entità coinvolte avevano obiettivi diversi. Quindi i Laboratori Bell abbandonarono il progetto, rimanendo però senza un Sistema Operativo adatto al lavoro da svolgere.

Per migliorare l'ambiente di programmazione disponibile, Ken Thompson, Dennis Ritchie e altri abbozzarono il progetto di un file system, la cui successiva evoluzione condusse a una prima versione del file system di UNIX. Thompson scrisse dei simulatori del comportamento del file system proposto e dei programmi in un ambiente demand-paging, oltre a un semplice kernel per il computer GE 645. Allo stesso tempo, scrisse un programma in FORTRAN di nome ``Space Travel'', per un sistema GECOS (Honeywell 635), ma il programma era insoddisfacente perché era difficile controllare la ``navicella spaziale'' e il costo dell'esecuzione era eccessivo. Successivamente Thompson trovò un computer DEC (Digital Equipment Corporation) PDP-7 scarsamente usato, che offriva un buon display grafico ed era economico in termini di potenza richiesta per l'esecuzione. Il porting di Space Travel sul PDP-7 permise a Thompson di familiarizzare con quel computer, il cui ambiente di sviluppo software però richiedeva l'utilizzo del cross-assembly sulla macchina GECOS e il trasporto del nastro magnetico, che serviva da input per il PDP-7. Per ottenere un ambiente di programmazione migliore, Thompson e Ritchie implementarono il loro progetto sul PDP-7, includendo una prima versione del file system di UNIX, il sottosistema dei processi e un piccolo insieme di utility. Il nuovo sistema cosí ottenuto era autoconsistente, non richiedendo il GECOS come ambiente di sviluppo, e fu chiamato Unics, come gioco di parole sul nome di Multics, coniato dal un altro membro del Computing Science Research Center, Brian Kernighan. Tale nome evidenziava il fatto che il sistema in questione era più piccolo e meno ambizioso di Multics e, almeno inizialmente, era monoutente; inoltre, ogni parte del sistema era progettata per svolgere al meglio un unico compito. Unics stava per ``UNiplexed Information and Computing System''; tale nome fu presto cambiato in Unix.

Anche se questa versione iniziale manteneva molte promesse, non era possibile comprenderne appieno la potenza senza utilizzarla in un progetto concreto. Perció, mentre forniva il systema di elaborazione dei testi per l'ufficio brevetti dei Laboratori Bell, UNIX fu portato sul PDP-11 nel 1971. Il sistema era caratterizzato da dimensioni molto piccole: 16 Kbytes per il sistema operativo, 8 Kbytes per i programmi di utente, un disco di 512 Kbytes e un limite di 64 Kbytes per ogni file. Dopo il primo successo, Thompson cominciò a implementare un compilatore FORTRAN per il nuovo sistema, ma successivamente pensò al linguaggio B. Quest'ultimo era interpretato, quindi presentava i problemi di efficienza di tutti i linguaggi di questo tipo; perciò Ritchie ne sviluppò un'evoluzione, che chiamò linguaggio C, che permetteva di produrre codice in linguaggio macchina, la dichiarazione dei tipi e la definizione di strutture dati1.1. Nel 1973, il Sistema Operativo UNIX fu riscritto in C; si trattava di un passo completamente nuovo, che avrebbe avuto un consenso enorme tra gli utenti. Il numero di installazioni nei Laboratori Bell crebbe fino a circa 25 e fu formato un gruppo di sistemisti per fornire supporto interno.

In seguito a un accordo stipulato nel 1956 con il Governo Federale, AT&T non poteva commercializzare prodotti informatici, quindi offrì UNIX a basso prezzo per scopi didattici alle Università che lo richiesero, senza però commercializzarlo né pubblicizzarlo e senza fornire supporto, come imposto dal corrispondente decreto. Nonostante questa limitazione, la popolarità di UNIX crebbe costantemente. Nel 1974, Thompson e Ritchie pubblicarono un articolo che descriveva il Sistema Operativo, fornendo un ulteriore stimolo. Nel 1977 UNIX era arrivato a circa 500 installazioni, 125 delle quali nelle Università. UNIX diventò famoso nelle compagnie telefoniche, poiché offriva un buon abiente di sviluppo software, transazioni tramite servizi di rete e servizi in tempo reale. Le licenze furono rese disponibili sia per le Università che per istituzioni commerciali. Nel 1977, Interactive System Corporation cominciò a produrre applicativi commerciali di supporto di tipo ``office automation'' per UNIX. Sempre nel 1977, per la prima volta UNIX fu portato su un computer che non fosse un PDP, l'Interdata 8/32, con poca fatica grazie al fatto che dal 1973 era scritto in C.

Vista la crescente diffusione dei microprocessori, altre aziende portarono su altre macchine UNIX, la cui semplicità e chiarezza spinsero molti sviluppatori a estendere il Sistema Operativo secondo le proprie convinzioni, dando così luogo a molte varianti del sistema di base. Tra il 1977 e il 1982, i Laboratori Bell fusero molte varianti in un unico sistema, commercialmente noto come UNIX System III. Successivamente i Laboratori Bell estesero notevolmente il sistema e chiamarono UNIX System V il nuovo prodotto (System IV corrisponde a una versione interna che si è evoluta fino a System V). Nel Gennaio 1983 AT&T annunció ufficialmente il supporto per System V. Tuttavia, nell'Università di Berkeley (California) era stata sviluppata una variante di UNIX, detta BSD (Berkeley Software Distribution), per macchine VAX. Durante un anno sabbatico in tale Università, Thompson sviluppò la prima versione di Berkeley UNIX insieme a due studenti laureati, Bill Joy e Chuck Haley. Berkeley UNIX supportava la memoria virtuale e aveva dato vita a prodotti come l'editor VI e la C Shell (leggi ``Sea Shell'' = conchiglia di mare), una shell particolarmente tagliata per i programmatori C, Sendmail e il supporto per il protocollo TCP/IP. Anche l'AT&T ha riconosciuto il valore dei cosiddetti ``miglioramenti di Berkeley'': il System V ne contiene in più diffusi. A partire dallo UNIX dell'AT&T e dal BSD, il numero di Sistemi Operativi di tipo UNIX è progressivamente cresciuto, anche se per la maggior parte si tratta di implementazioni aderenti soprattutto a BSD o a System V.

All'inizio del 1984 si potevano già contare circa 100 000 installazioni di UNIX, su macchine di qualunque potenza, dai microprocessori ai mainframe, e di qualunque costruttore: per nessun altro sistema operativo è possibile affermare lo stesso. Si possono individuare diverse ragioni per il successo di UNIX; se ne elencano solo alcune, altre emergeranno nel seguito.

  • Il sistema è scritto in un linguaggio ad alto livello, il che ne facilita la lettura, la comprensione, la modifica e il porting su altre macchine. Secondo le stime di Ritchie, la riscrittura in C del primo sistema comportò un aumento compreso tra il 20 e il 40% della dimensione e dei tempi di esecuzione rispetto alla stesura in assembler, ma tale svantaggio è di importanza molto minore rispetto alla portabilità conseguita, che ha reso possibile la diffusione di UNIX, e alla nascita del C, che attualmente è alla base di qualunque prodotto software di una certa importanza.
  • L'intelligenza, la coerenza e la consistenza della sua stesura lo rendono l'ambiente di sviluppo ideale per un programmatore.
  • È multiutente e multi-processo; ciascun utente può far eseguire più processi simultaneamente.

Riguardo al linguaggio utilizzato per lo sviluppo, si può aggiungere che oggi UNIX e, in particolare, LINUX, sono interamente scritti in C, compreso l'X Window System; lo stesso vale per gran parte degli applicativi. Per la maggior parte, gli altri applicativi sono scritti in C++, l'estensione a oggetti del C. Anche i sistemi operativi più importanti oggi sono scritti in C - C++; fanno eccezione ambienti software per i quali si fa ricorso anche all'assembler per recuperare un po' sull'inefficienza, rinunciando alla portabilità.

Who doesn't know UNIX is condamned to reinvent it, poorly.

A partire dagli anni '70, sono stati sviluppati molti altri Sistemi Operativi Unix, oltre all'AT&T e al BSD. I S.O. appartenenti a tale famiglia hanno in comune la multiutenza, il multitasking e la maggior parte delle caratteristiche di System V e BSD. Inoltre, praticamente nessuno si chiama esattamente ``UNIX'', anche se quasi tutti hanno un nome che contiene almeno la ``U'' e la ``X''; Linux non fa eccezione... Come stabilire se un S.O. appartiene a tale famiglia? Be', deve utilizzare correttamente codice scritto per UNIX e avere il giusto ``feeling''. Infatti Unix è molto più di una famiglia di Sistemi Operativi: vuol dire anche reti di elaboratori, posta elettronica, Internet (come si sa, la Rete è figlia di UNIX), numerosi applicativi e una cultura basata su questi strumenti e condivisa da una comunità di utenti. Alcuni vanno oltre e considerano UNIX come un'idea astratta, un modo di lavorare che determina un particolare approccio alla risoluzione dei problemi. Infatti utilizzando UNIX si può imparare ad affrontare e risolvere i problemi combinando semplici programmi, come singoli blocchi di una costruzione complessa o di una struttura elegante.

Per ciò che riguarda LINUX, le sue distribuzioni possono somigliare di più a System V oppure di più a BSD, ma mantengono comunque una loro identità e una loro autonomia, sempre in piena conformità alla filosofia di UNIX, fatta eccezione per la negazione della natura commerciale.

Un rovescio della medaglia: proprio a causa del fatto che molti produttori hanno sviluppato versioni diverse di UNIX, dando vita a un mondo affascinante e vario, manca una vera e propria versione standard e questo a volte crea dei problemi concreti, soprattutto agli sviluppatori di software. Per risolvere questo problema, AT&T ha formalizzato il System V pubblicando il System V Interface Definition (SVID), che specifica quali caratteristiche di UNIX verranno mantenute invariate nelle release successive. Inoltre ha sviluppato la System V Verification Suite (SVVS), un insieme di programmi che verificano la compatibilità di un sistema operativo con il SVID. Implicitamente, in questo modo AT&T afferma che considera System V uno standard...
Anche la IEEE ha lavorato in merito e ha definito i cosiddetti POSIX (Portable Operating System Standard for Computer Environments), che individuano dei ``livelli di compatibilità'' di un generico Sistema Operativo con le caratteristiche che si ritiene debba avere uno UNIX standard. Lo standard IEEE 1003.1, comunemente noto come POSIX.1, si concentra sul kernel. Lo standard IEEE 1003.2, o POSIX.2, riguarda l'interfaccia verso l'utente, fondamentalmente la shell, e i tools di UNIX. IEEE 1003.3, o POSIX.3, riguarda lo sviluppo di test di validazione per controllare l'aderenza agli standard. Dopo POSIX.3 viene POSIX.4, e così via. Per ciò che riguarda ``il nostro pinguino'': Linux viene sviluppando facendo riferimento soprattutto a POSIX.1 e POSIX.2.

Figure 3.1: Architettura del Sistema Operativo UNIX
\resizebox*{\textwidth}{!}{\includegraphics{unix_arch}}

Il Sistema Operativo, fondamentalmente corrispondente al kernel, interagisce direttamente con l'hardware per fornire servizi ai programmi. Quindi questi ultimi possono essere sviluppati in maniera indipendente dall'hardware utilizzato: basta programmare a un livello di astrazione più alto, individuando i servizi elementari da richiedere al kernel; inoltre, una volta scritti con questo criterio, i programmi risultano portabili su un hardware diverso, a patto che il kernel sia in grado di gestirlo correttamente.

Ovviamente, esistono ambienti software che non rispettano del tutto questa struttura; ad esempio, in certi casi anche ben noti, l'equivalente del kernel non è abbastanza potente per fornire tutti i servizi di cui hanno bisogno i programmi applicativi. Quindi questi ultimi devono supplire alle carenze del sistema interagendo direttamente con l'hardware. La prima conseguenza consiste nella non portabilità dei programmi su altre piattaforme; la seconda, a volte più evidente, sta nel fatto che l'affidabilità complessiva del sistema può essere peggiorata da quella di applicativi difettosi.

Ma torniamo a UNIX. Programmi come la shell e gli editor (come il VI) si trovano più esternamente rispetto al kernel, con cui interagiscono tramite un ben definito insieme di chiamate di sistema. Ovviamente, a questo livello si possono trovare anche programmi prodotti dall'utente, indicati simbolicamente come a.out, ad esempio prodotti tramite compilazione di un sorgente C. Ancora più esternamente si possono trovare altri programmi, che si appoggiano a quelli di livello più basso. Ad esempio, il compilatore C, indicato con cc (nel caso di Linux, il gcc), utilizza un preprocessore, un compilatore a due passate, un assemblatore e un loader, che sono programmi distinti di livello inferiore. La figura  illustra due soli livelli di programmi applicativi, ma, ovviamente, si possono avere ulteriori livelli. Più precisamente, la filosofia UNIX incoraggia la combinazione intelligente di programmi esistenti e affidabili piuttosto che la scrittura di un nuovo programma ``ad hoc'' (che andrebbe successivamente testato) per ogni specifico problema da risolvere.

Spesso, quando si parla di Sistema Operativo, si intende qualcosa di più ampio del solo kernel, includendo implicitamente almeno tutti i comandi del sistema e spesso anche applicativi di un certo livello. Spesso l'utente ingenuo è addirittura portato a identificare un sistema operativo con gli applicativi ad alto livello che usa e a non rendersi conto che in questo modo esclude ciò che più a pieno titolo è il sistema operativo vero e proprio. In buona sostanza, è un problema di individuazione di confini a volte sfumati e l'importante è capirsi, ma del Sistema Operativo fa senz'altro parte ciò che permette di utilizzare l'hardware, cioè il kernel. Considerare parte del Sistema Operativo anche i comandi è probabilmente opportuno e, magari, considerare anche il compilatore parte di UNIX può essere corretto. Però va precisato che, mentre su tutte le distribuzioni più diffuse di Linux c'è un prodotto free come il compilatore GNU, per gli UNIX commerciali (sui quali si può comunque usare il gcc), il compilatore va comprato a parte e il rivenditore non lo considera parte del Sistema Operativo che vi vende...

Cenni storici su LINUX

Nel 1985 Richard Stallman fondò la Free Software Foundation (FSF), il cui obiettivo era riassunto nell'acronimo ricorsivo GNU = Gnu's Not Unix. In realtà l'obiettivo era la scrittura di un intero Sistema Operativo, analogo a UNIX, con delle caratteristiche innovative e varie applicazioni di corredo, che fosse interamente free, negando così la natura commerciale di UNIX.

Negli anni il progetto GNU ha partorito molti prodotti software importanti e di qualità, come il famoso compilatore (gccg++, ecc.), LATEX, Emacs, vari applicativi, ecc. Tuttavia lo sviluppo del Sistema Operativo vero e proprio, basato su un'architettura a microkernel, è stato piuttosto lento.

Nel 1991 un certo Linus Benedict Torvalds, studente del corso di Sistemi Operativi all'Università di Helsinky (Finlandia), aprì la strada allo sviluppo di LINUX, che ad oggi è forse il segno più tangibile della realizzazione del progetto GNU. Linus doveva studiare il nuovo processore Intel 80386, che aveva caratteristiche molto innovative rispetto ai suoi predecessori, come ad esempio la natura multitasking. Sulla macchina utilizzata da Linus girava il Sistema Operativo Minix, un piccolo UNIX commerciale a microkernel, che veniva offerto con notevoli agevolazioni per scopi didattici. Linus si pose il problema di migliorare Minix; non riuscendo nell'intento, iniziò lo sviluppo di un kernel che permettesse di scrivere una versione free di UNIX. Alla fine dell'Agosto 1991, Linus arrivò a qualcosa di compiuto, a cui impose il numero di versione 0.01, che tuttavia rendeva ancora necessario l'utilizzo di una macchina con Minix. Da quel momento, secondo le sue stesse parole, Linus fu irrimediabilmente catturato da ciò che stava facendo, a tal punto da dover a tutti i costi realizzare qualcosa che gli permettesse di ``cacciare'' Minix dal suo computer. Il 5 Ottobre 1991 Linus annunciò la prima versione ``ufficiale'' di Linux, cioè la 0.02. Si può immaginare che le parole con cui Linus annunciò il rilascio di tale versione indispettirono non poco Andy Tanenbaum, famoso professore della stessa Università, guida dello sviluppo di Minix. Il tutto diede origine a una famosa ``flame'', un lungo scambio di e-mail a cui non parteciparono solo Linus e Tanenbaum e i cui toni diventarono presto molto accesi. Tale flame è raccolta nel file linux_is_obsolete.txt, disponibile su Internet, vi invito a cercarla e a spulciarla un po'. Tanenbaum affermava che Linux nasceva obsoleto, in quanto era una riscrittura di qualcosa che esisteva già da vent'anni. UNIX, come tanti altri sistemi operativi, è monolitico: il suo kernel corrisponde a un unico file eseguito in ``kernel mode'', che gestisce i processi, la memoria, il file system e così via. A chi voleva qualcosa di moderno e innovativo, Tanenbaum consigliava di far riferimento a sistemi a microkernel, nei quali la maggior parte del sistema operativo viene eseguita in termini di processi separati, la comunicazione tra i quali viene gestita da un kernel di dimensioni ridotte. Tanenbaum portava come esempi, tra gli altri, il suo Minix, il progetto GNU, e una versione non ancora rilasciata di ms windows nt. Se sto scrivendo su questo argomento per parlare di Linux, è evidente che cosa penso a riguardo... perciò mi limito a dire che mi sembra discutibile definire obsoleta una riscrittura di UNIX, dato che in trent'anni il mondo dell'informatica non è riuscito a partorire un Sistema Operativo migliore. Minix aveva limitazioni serie; ad esempio, non permetteva di allocare memoria dinamicamente (malloc()). Per i sistemi a microkernel, la pratica contraddice la teoria, dimostrando che sono inevitabilmente lenti rispetto a quelli ``classici'' a macrokernel; comunque Linux introduce notevoli novità in merito ed esiste anche una sua versione a microkernel. Riguardo a ms windows nt, per esso non esiste il concetto di processo; inoltre non rispetta molto rigorosamente una struttura a microkernel.

In ogni caso, credo che sia già da tempo il caso di consegnare alla storia tale ``flame''... concentriamoci su un altro aspetto. Linus, nel rilasciare Linux 0.02, chiese pubblicamente aiuto per portare avanti il suo progetto. Infatti è facile intuire che lo sviluppo del kernel di un Sistema Operativo UNIX è un problema di dimensione eccessiva per una persona sola. Molti offrirono aiuto a Linus... oggi solo una piccola parte del kernel è scritta direttamente da lui, che nel tempo, senza mai imporsi, è stato riconosciuto come la guida indiscussa dello sviluppo di Linux. C'è stata perfino una battaglia legale in suo favore, conclusasi il 20 Agosto 1997 con il riconoscimento a Linus Torvalds del Trade Mark (marchio registrato) LINUX, che nel Settembre 1995 era stato assegnato a William R. Della Croce, sollevando un mare di proteste. Attualmente Linus ha un ruolo fondamentale, dato che l'ultima parola nelle varie scelte riguardanti il kernel è ovviamente sua.

Nel tempo, Linux ha acquistato credibilità a tal punto che il progetto GNU si è fuso con esso. Gli sforzi fatti prima della nascita di Linux si sono poi in gran parte concentrati nell'utilizzo dell'esistente per la realizzazione di un Sistema Operativo completo, ormai alternativo al progetto originale, chiamato HURD. Attualmente, Linux è in fase di sviluppo molto più avanzata rispetto a HURD e sta rapidamente affermandosi e attirando l'attenzione del mondo commerciale.

Perché, oltre ad avere un ampio supporto di applicativi, come vedremo più avanti, è un vero Sistema Operativo, è preemptive, offre un pieno multitasking, è robusto, affidabile, efficiente, flessibile, versatile.

Perché LINUX?

Perché è uno UNIX a tutti gli effetti, migliore di altri su certe cose, più giovane su altre, è la via più logica per imparare e usare UNIX sul computer di casa.

Perché è gratuito, perché è Open Source (vedremo che cosa significa).

Perché, come ogni Sistema Operativo UNIX, è scarsamente vulnerabile al concetto di virus, quindi è piuttosto difficile che qualcuno spenda tempo a scrivere un ``Cernobyl'' per Linux, sapendo che tanto non servirà a molto.

Perché Linux cambia radicalmente (in positivo) il modo di vedere il computer e l'informatica, vi impedisce di annoiarvi, vi fa crescere culturalmente, può darvi molte soddisfazioni e insegnarvi concetti utili nel mondo del lavoro.

Perché Linux è stato portato su un numero notevole di piattaforme, comprese le workstation più blasonate, come le Digital Alpha e le SUN Sparc e, quindi, spendere tempo per ``giocarci'' può servire ad imparare qualcosa che potrete utilizzare anche ``da grandi''. Linux is fun... enjoy Linux!

(Bill Gates)

Il rovescio della medaglia: pur nella sua semplicità, UNIX è complesso e sconfinato come il mondo dell'informatica... potreste aver bisogno di molto meno. Posso configurare e personalizzare tutto quello che voglio... ma... devo?

Potrebbe essere preferibile uno strumento più semplice e limitato, anche se, specialmente in casi ben noti, la semplicità è inquinata da una pessima qualità.

Inoltre il supporto commerciale di Linux non è ancora completo, anche per ciò che riguarda l'hardware, e probabilmente Linux non è una buona scelta per chi vuole fare un uso ludico del computer.

Comunque LINUX può convivere sullo stesso computer con ambienti software come windows e macintosh e occupa molto meno spazio sul disco rigido.

Il software è come il sesso: è più bello quando è libero.
(Linus Benedict Torvalds)

Che cosa significano gli acronimi FSF, GNU, GPL, LGPL?

  • FSF = Free Software Foundation.
  • GNU = Gnu's Not Unix $\rightarrow$ UNIX + negazione della sua natura divenuta commerciale nel tempo. Faccio notare che ``GNU'', opportunamente pronunciato, ha un suono simile a ``NEW''.
  • GPL = General Public License.
  • LGPL = Libraries GPL = GPL riguardante le librerie.

GNU è il nome del progetto della FSF, fondata nel 1985 da Richard Stallman, la cui filosofia sostiene che il software di qualità dovrebbe essere disponibile gratuitamente, senza le usuali limitazioni commerciali. Ovviamente, GNU, GPL e LGPL sono in stretta relazione con la FSF, anche se chiunque può rilasciare software coperto dalla GPL anche senza far parte della Free Software Foundation.

Le licenze commerciali tendono a limitare la libertà d'uso e di distribuzione del software, per l'uso del quale si richiede denaro, senza offrire la proprietà della copia oltre all'uso.

La GPL e la LGPL sono concepite per impedire che chiunque possa limitare la libertà d'uso e di distribuzione del software che fa riferimento a esse. Sono riportate in appendice, vi invito a leggerle. Comunque, sappiate che chiunque può utilizzare software GNU e proporre modifiche, purché continui a riconoscere esplicitamente il contributo di chi ha scritto il codice originale. Open Source significa soprattutto questo. Inoltre, avere il codice sorgente a disposizione significa poterlo adattare alle proprie esigenze e poter imparare da esso.

Esistono altre licenze più restrittive di quelle GNU; per esempio, si può avere a disposizione il codice sorgente e avere il diritto di usare il software, ma non di modificarlo. Il kernel di Linux è coperto dalla GNU GPL.

Perché "Software Libero" è meglio di "Open Source"

Nel 1998, alcuni sviluppatori di software libero hanno iniziato ad usare l'espressione "software open source" invece di "software libero" per descrivere quello che fanno. Il termine "open source" è stato rapidamente associato ad un approccio diverso, una filosofia diversa, valori diversi e perfino un criterio diverso in base al quale le licenze diventano accettabili. Il movimento del Software Libero e il movimento dell'Open Source sono oggi due movimenti diversi con diversi punti di vista e obiettivi, anche se possiamo lavorare, e in effetti lavoriamo insieme ad alcuni progetti concreti.

La differenza fondamentale tra i due movimenti sta nei loro valori, nel loro modo di guardare il mondo. Per il movimento Open Source, il fatto che il software debba essere Open Source o meno è un problema pratico, non un problema etico. Come si è espresso qualcuno, "l'Open Source è una metodologia di sviluppo; il Software Libero è un movimento di carattere sociale". Per il movimento Open Source, il software non libero è una soluzione non ottimale. Per il movimento del Software Libero, il software non libero è un problema sociale e il software libero è la soluzione.

Relazione tra il movimento del Software Libero e il movimento Open Source

Il movimento del Software Libero e quello Open Source sono come due partiti politici all'interno della comunità del Software Libero.

Negli anni '60 i gruppi radicali si sono fatti la reputazione di essere faziosi: le organizzazioni si dividevano per disaccordi sui dettagli della strategia da utilizzare e poi si odiavano reciprocamente. O per lo meno questa è l'immagine che si ha di essi, vera o falsa che sia.

La relazione tra il movimento del Software Libero e quello Open Source è semplicemente l'opposto di questa situazione. Siamo in disaccordo sui principi di base, ma siamo più o meno d'accordo sugli aspetti pratici. Perciò possiamo lavorare ed in effetti lavoriamo assieme su molti progetti specifici. Non vediamo il movimento Open Source come un nemico. Il nemico è il software proprietario.

Noi non siamo contro il movimento Open Source, ma non vogliamo essere confusi con loro. Riconosciamo che hanno contribuito alla nostra comunità, ma noi abbiamo creato questa comunità e vogliamo che si sappia. Vogliamo che quello che abbiamo realizzato sia associato con i nostri valori e la nostra filosofia, non con i loro. Vogliamo che ci sentano, non vogliamo sparire dietro ad un gruppo con punti di vista diversi. Per evitare che si pensi che facciamo parte del movimento Open Source, ci preoccupiamo di evitare di utilizzare il termine "open" per descrivere il software libero, o il suo contrario, "closed", per parlare di software non libero.

Quindi per favore menzionate il movimento del Software Libero quando parlate del lavoro che abbiamo fatto e del software che abbiamo sviluppato, come il sistema operativo GNU/Linux.

I due termini a confronto

Il resto di questo articolo confronta i due termini "software libero" e "open source". Spiega perché il termine "open source" non risolve i problemi, anzi di fatto ne crea alcuni.

Ambiguità

L'espressione "software libero" ha un problema di ambiguità [NdT: questo accade per la lingua inglese, dove il termine "free" può assumere due significati tra loro molto differenti. Nella lingua italiana questo non succede]: un significato non previsto, "software che si può avere senza spendere niente" corrisponde all'espressione altrettanto bene del significato previsto, cioè software che dà all'utente certe libertà. Abbiamo risolto questo problema pubblicando una definizione più precisa di software libero, ma questa non è la soluzione perfetta. Non può eliminare completamente il problema. Sarebbe meglio un termine corretto e non ambiguo, presupponendo che non ci siano altri problemi.

Sfortunatamente, tutte le alternative in inglese presentano problemi. Abbiamo considerato molte alternative che ci sono state suggerite, ma nessuna è così completamente "corretta" che sia una buona idea sceglierla. Tutte le soluzioni proposte per "software libero" hanno un qualche tipo simile di problema semantico, se non peggio, incluso "software open source".

La definizione ufficiale di "software open source," come pubblicata dalla Open Source Initiative, si avvicina molto alla nostra definizione di software libero; tuttavia, per certi aspetti è un po' più ampia, ed essi hanno accettato alcune licenze che noi consideriamo inaccettabilmente restrittive per gli utenti. Tuttavia, il significato ovvio di "software open source" è "puoi guardare il codice sorgente". Questa è una espressione meno vigorosa di "software libero"; include il software libero, ma include anche software proprietario, come Xv e come Qt nella sua licenza originale (prima della QPL).

Questo significato ovvio di "open source" non è quello inteso dai suoi sostenitori. Il risultato è che la maggior parte delle persone fraintende quello che quei sostenitori sostengono. Ecco come lo scrittore Neal Stephenson ha definito "open source":

Linux è software "open source" e questo significa, semplicemente, che chiunque può ottenere le copie del suo codice sorgente.

Non penso che abbia cercato deliberatamente di rifiutare o contrastare la definizione "ufficiale". Penso che abbia semplicemente applicato le convenzioni della lingua inglese per arrivare al significato. Lo stato del Kansas ha pubblicato una definizione simile:

Utilizzare software open source (SOS). SOS è software il cui codice sorgente è disponibile liberamente e pubblicamente, anche se gli specifici accordi di licenza variano relativamente a quanto sia permesso fare con quel codice.

Ovviamente, chi si occupa di open source ha cercato di affrontare questo problema pubblicando una definizione precisa del termine, proprio come abbiamo fatto noi per "software libero".

Ma la spiegazione di "software libero" è semplice: chi ha capito il concetto di "libertà di parola, non birra gratis" non sbaglierà più. [NdT: in inglese, "free speech, not free beer" mette sinteticamente in contrasto i due significati della parola "free"] Non c'è un modo più breve per spiegare il significato di "open source" e indicare chiaramente perché la definizione ovvia è quella sbagliata.

Paura della Libertà

Il principale argomento a favore dell'espressione "software open source" è che "software libero" può far sentire a disagio. Ed è vero: parlare di libertà, di problemi etici, di responsabilità così come di convenienza è chiedere di pensare a cose che potrebbero essere ignorate. Questo può causare imbarazzo ed alcune persone possono rifiutare l'idea di farlo. Questo non vuol dire che la società starebbe meglio se smettessimo di parlare di questi argomenti.

Anni fa, gli sviluppatori di software libero si accorsero di queste reazioni di disagio ed iniziarono a cercare una soluzione a questo problema. Pensarono che mettendo in secondo piano l'etica e la libertà e parlando piuttosto dei benefici pratici immediati di qualche software libero, sarebbero stati in grado di "vendere" il software più efficacemente ad una determinata utenza, in particolar modo alle aziende. Il termine "open source" viene offerto come un modo per venderne di più, un modo per essere "più accettabili alle aziende". Il punto di vista ed i valori del movimento Open Source derivano da questa decisione.

Questo approccio al problema ha dimostrato di funzionare, alle sue condizioni. Oggi molte persone passano al software libero per ragioni puramente pratiche. Questa è una buona cosa, di per sé, ma non è tutto quello che dobbiamo fare! Non basta attirare gli utenti verso il software libero: questo è solo il primo passo.

Prima o poi questi utenti saranno invitati ad utilizzare nuovamente software proprietario per alcuni vantaggi pratici. Un enorme numero di aziende cerca di offrire questa tentazione, e perché gli utenti dovrebbero rifiutare? Solo se hanno imparato a valorizzare la libertà che viene offerta loro dal software libero di per sé. Tocca a noi diffondere quest'idea e per farlo, dobbiamo parlare di libertà. Una parte dell'approccio "teniamole tranquille" nei confronti delle aziende può essere utile per la comunità, ma dobbiamo comunque parlare molto di libertà.

Attualmente, è molto diffuso l'approccio "teniamole tranquille", ma non si parla abbastanza della libertà. La maggior parte delle persone coinvolte nel software libero parla molto poco della libertà, di solito perché cerca di essere "più accettabile per le aziende". I distributori di software sono quelli che più seguono questa regola. Alcune distribuzioni del sistema operativo GNU/Linux aggiungono pacchetti di software proprietario al sistema libero di base e invitano gli utenti a considerarlo un vantaggio, invece che un passo indietro rispetto alla libertà.

Non riusciamo a rimanere alla pari rispetto all'afflusso di utenti di software libero, non riusciamo ad insegnare alle persone cosa siano queste libertà e cosa sia la nostra comunità man mano che vi entrano. Questo è il motivo per cui software non libero (come lo era Qt all'inizio) e le distribuzioni di sistemi operativi parzialmente non liberi, trovano un terreno così fertile. Smettere di utilizzare la parola "libero" adesso sarebbe un errore. Abbiamo bisogno che si parli di più, e non di meno, di libertà.

Che coloro che usano il termine "open source" portino più utenti alla nostra comunità è senz'altro un contributo, ma significa che dobbiamo impegnarci ancora di più per portare il problema della libertà all'attenzione di quegli utenti. Dobbiamo dire "è software libero e ti dà libertà!" sempre di più e più forte che mai.

Un marchio registrato può aiutare?

I sostenitori del "software open source" hanno tentato di rendere questo un marchio registrato, pensando di poter così prevenire utilizzi scorretti. Il tentativo è stato in seguito lasciato cadere, perché il termine era troppo descrittivo per poterlo registrare;quindi lo status legale di "open source" è lo stesso di quello del "software libero": non esiste nessuna restrizione legale per il suo utilizzo. Ho sentito, talvolta di persona, molte aziende chiamare "open source" i loro pacchetti software anche se questi non rientravano, per le loro caratteristiche, nella definizione ufficiale.

Ma avrebbe davvero fatto questa grande differenza usare un termine che fosse un marchio registrato? Non necessariamente.

Le aziende inoltre hanno fatto annunci che danno l'impressione che un programma sia "software open source" senza dirlo esplicitamente. Ad esempio, un annuncio di IBM riguardo ad un programma che non rientrava nella definizione ufficiale diceva questo:

Come è comune fare nella comunità open source, gli utenti della tecnologia "..." saranno inoltre in grado di collaborare con IBM...

Questa frase non dice che il programma è "open source", ma molti lettori non hanno notato quel dettaglio. (Devo comunque far notare che IBM era sinceramente interessata a rendere questo programma software libero e ha successivamente adottato una nuova licenza che lo rendeva tale e "open source". Ma quando questo annuncio è stato fatto, il programma non si qualificava come nessuno dei due.)

Ed ecco come Cygnus Solutions, che fu creata come azienda di software libero e successivamente estese la sua attività (per così dire) al software proprietario, pubblicizzava alcuni prodotti software proprietari:

Cygnus Solution è una azienda leader nel mercato open source e ha appena lanciato due prodotti sul mercato [GNU/]Linux.

Diversamente da IBM, Cygnus non stava tentando di rendere questi pacchetti software libero e questi pacchetti non si avvicinavano minimamente a poter essere definiti tali. Ma Cygnus non ha in realtà detto che questo è "software open source", ha soltanto utilizzato questo termine per dare quest'impressione ad un lettore poco attento.

Queste osservazioni suggeriscono che un marchio registrato non avrebbe risolto sul serio i problemi legati al termine "open source".

Errate(?) interpretazioni di "open source"

La definizione di open source è abbastanza chiara ed è abbastanza chiaro che il tipico programma non libero non rientra in questa definizione. Quindi penserete che una "azienda Open Source" produca software libero (o qualcosa del genere), giusto? Non sempre è vero, molte aziende stanno anche cercando di dargli un differente significato.

All'incontro "Open Source Developers Day" svoltosi nell'agosto 1998, molti degli sviluppatori commerciali invitati dissero che erano intenzionati a creare come software libero (o "open source") solo una parte del loro lavoro. Il fulcro del loro business è lo sviluppo di aggiunte proprietarie (software o documentazione) da vendere agli utenti di questo software libero. Ci chiedono di considerarlo come legittimo, come parte della nostra comunità, poiché parte del denaro viene donato per lo sviluppo di software libero.

In effetti, queste aziende tentano di guadagnare una favorevole immagine "open source" per i loro prodotti software proprietari, anche se questi non sono software "open source", poiché hanno una qualche relazione con il software libero o perché la stessa azienda mantiene anche un qualche software libero. (Il fondatore di una azienda ha esplicitamente detto che avrebbero messo, nei pacchetti di software libero da loro supportati, un po' del loro lavoro per poter far parte della comunità.)

Negli anni, molte aziende hanno contribuito allo sviluppo del software libero. Alcune di queste aziende sviluppavano principalmente software non libero, ma le due attività erano separate. Per questo potevamo ignorare i loro prodotti non liberi e lavorare con loro sui progetti di software libero. Quindi potevamo poi onestamente ringraziarli per i loro contributi al software libero, senza parlare degli altri prodotti che portavano avanti.

Non possiamo fare altrettanto con queste nuove aziende, poiché loro non lo accetterebbero. Queste aziende cercano attivamente di portare il pubblico a considerare senza distinzione tutte le loro attività. Vogliono che noi consideriamo il loro software non libero come se fosse un vero contributo, anche se non lo è. Si presentano come "aziende open source" sperando che la cosa ci interessi, che le renda attraenti ai nostri occhi e che ci porti ad accettarle.

Questa pratica di manipolazione non sarebbe meno pericolosa se fatta utilizzando il termine "software libero". Ma le aziende non sembrano utilizzare il termine "software libero" in questo modo. Probabilmente la sua associazione con l'idealismo lo rende non adatto allo scopo. Il termine "open source" ha così aperto tutte le porte.

In una fiera alla fine del 1998, dedicata al sistema operativo spesso chiamato "Linux", il relatore di turno era un alto dirigente di una importante azienda di software. Era stato probabilmente invitato poiché la sua azienda aveva deciso di "supportare" questo sistema. Sfortunatamente, la forma di "supporto" consisteva nel rilasciare software non libero che funziona con il sistema -- in altre parole, utilizzava la nostra comunità come un mercato ma non vi contribuiva affatto.

Disse: "Non renderemo mai il nostro prodotto open source, ma forse lo renderemo tale internamente. Se permetteremo al nostro staff di supporto ai clienti di avere accesso al codice sorgente, potrà risolvere gli errori per i clienti e potremo quindi fornire un prodotto e un servizio migliori." (Questa non è la trascrizione esatta del discorso, poiché non me lo ero trascritto, ma rende comunque l'idea.)

Alcune persone tra il pubblico mi dissero successivamente "Non ha capito il senso del nostro lavoro". Era vero? Quale senso non aveva colto?

In realtà aveva colto il significato del movimento Open source. Questo movimento non dice che gli utenti dovrebbero avere libertà, dice solo che permettendo a più persone di guardare il codice sorgente e di aiutare a migliorarlo, consentirà uno sviluppo più veloce e migliore. Il dirigente ha colto perfettamente quel significato: non ha voluto utilizzare questo approccio nella sua interezza, utenti inclusi, pensando di utilizzarlo parzialmente all'interno della sua azienda.

Il significato che non ha colto è quello che l'"open source" ha progettato di tacere: cioè che l'utente merita la libertà.

Diffondere l'idea della libertà è un lavoro difficile: ha bisogno del vostro aiuto. Per questo il progetto GNU rimarrà legato al significato di "software libero", per aiutare a diffondere l'idea di libertà. Se sentite che libertà e comunità sono importanti in quanto tali, non soltanto per la convenienza implicita in esse, unitevi a noi nell'utilizzare il termine "software libero".

COSA E' ROUSSEAU?

Il motivo per cui ho scritto questo articolo è fare chiarezza su due punti fondamentali,il nome sistema operativo RUSSEAU riferito ai CINQUE STELLE dedicato al filosofo Francese padre della democrazia diretta ,mi risulta inesatto nella sua descrizione ,considerato quello scritto  sopra ,infatti  a mio avviso quello che  viene definito sistema operativo dei 5 s altro non è ,che una piattaforma privata legata al blog di GRILLO,quindi  un sito dove gli iscritti possono partecipare a tutte le attività politiche contemplate.Questa piattaforma che ha sicuramente un codice di scrittura in php e in c++ è una piattaforma,come lo è quella dei MEETUP americano,ma sicuramente non è un sistema operativo.E' chiare che se si trascende dal significato strettamente tecnico, e si considera che la piattaforma RUSSEAU è uno strumento operativo indispensabile per le attività del movimento ed come tale acquisisce un valore operativo sistemico altissimo allora si questo è accettabile ma in una descrizione sicuramente figurativa  .

Those who preach good can not evil roam

Il secondo punto ma non meno importante è che la piattaforma o il sito di cui si parla è scritto con un codice chiuso e quindi non è disponibile ,il suo codice è un codice privato cioè proprietario non open-source ne free-software.In molte regioni e in molti comuni gli attivisti del MOVIMENTO si battono affinchè le amministrazioni pubbliche adottino software-libero e open source perchè questo comporterebbe più posti di lavoro meno costi e più sicurezza .L'ultima vittoria in proposito è avvenuta a Torino dove l'amministrazione ha deliberato l'inserimento del S.L. E' chiaro e pacifico che lo stesso discorso vale per i meetup che a scanso di equivoci sono a pagamento.

Added by antonio iacone on 16 Jan 2017 at 01:19 PM | Comments (0)
|
Previous comments...
Europe
America
Asia
Africa
Oceania
  • Europe
  • France
  • Hungary
  • Italy
  • Deutschland
  • România
  • España
  • Portugal
  • Greece
  • United Kingdom
  • Ireland
  • Serbia (Cyrillic)
  • Serbia (Latin)
  • Serbo-Croatian
  • Bosnian
  • Montenegrin (Latin)
  • Russia
  • USA
  • Brasil
  • Ecuador
  • Chile
  • Argentina
  • Indonesia
  • 中国
  • South Africa
  • Australia
  • New Zealand
×
Cookies Text Learn More