Il sistema operativo è il software di base senza il quale l'hardware (per esempio il pc) sarebbe solo un inutile ammasso di ferraglia.
Nonostante la maggior parte delle persone identifichi il sistema operativo come il Windows o il Mac Os, esistono vari sistemi operativi liberi che, installati sul proprio pc o sul server aziendale, permettono di lavorare con una affidabilità nella maggior parte dei casi superiore ai sistemi operativi commerciali e closedsource citati sopra.
Ma come è possibile che esistano sistemi operativi liberi e gratuiti migliori di quelli commerciali?
Dove sta il trucco?
Non c'è trucco e non c'è inganno: ciò che permette tutto questo si chiama PASSIONE!
La passione è ciò che muove migliaia di studenti universitari, professionisti, semplici appassionati
a contribuire allo sviluppo in modo gratuito e con la semplice soddisfazione di poter dire: ho
contribuito anch'io!
Linux è in realtà un kernel unix-like nato quasi per gioco ad opera di uno studente dell'università di Helsinki nel 1991: Linux Torvalds. Allora non vi erano molte alternative libere e linux ha subito preso piede nelle comunità di universitari ed è stato rapidamente contornato da vari applicativi di software libero, in particolare quelli facenti parte del progetto Gnu. Per questo motivo, quando si parla dell'intero sistema operativo, sarebbe più corretto riferirsi ad esso come GNU/Linux, in quanto linux rappresenta unicamente il kernel, senza alcuna altra utility.
E' divenuto famoso l'annuncio apparso su comp.os.minix nell'ottobre del 1991 con cui Linus Torvalds annunciava la disponibilità della versione 0.02 di linux: un piccolo kernel unix ispirato ad un'altra piccola versione di unix, Minix.
Linus, studente universitario ad Helsinki, era flustrato dal fatto di non poter modificare a suo piacimento il kernel Minix, per adattarlo alla piattaforma i386, a causa della licenza restrittiva. Decise così di intraprendere la scrittura da zero di un kernel unix compatibile con lo standard IEEE POSIX.1, System V e BSD.
Linus rilasciò i sorgenti del kernel a chi ne facesse richiesta, e questa fu probabilmente la vera mossa vincente: in poco tempo, ad opera soprattutto di studenti universitari ma non solo, si creò una comunità di sviluppatori che si dedicarono a contornare il kernel di altri programmi, tra cui tutto il software offerto dal progetto GNU.
Il resto è ormai storia dei giorni nostri: nacquero le prime distribuzioni e la crescita esponenziale di internet ne favorì enormemente la diffusione.
Oggi GNU/Linux è il sistema operativo unix-like più diffuso e continua a rosicchiare terreno agli altri unix commerciali.
Le distribuzioni sono raccolte di software libero che gira con il kernel linux pacchettizzate in modo da fornire un sistema operativo completo ed organico in grado di essere rapidamente installato e configurato.
Nate per diffondere il sistema GNU/Linux sono diventate in alcuni casi anche fonte di guadagno: non c'è da stupirsi visto che la licenza GPL non dice che il sw deve essere necessariamente gratuito.
Ciò che differenzia le varie distribuzioni, oltre all'aspetto più o meno commerciale, è la quantità di pacchetti che mettono a disposizione, il sistema di pacchettizzazione, il software a corredo (spesso sviluppano piccoli tool o utility per aiutare nella configurazione e personalizzazione del sistema, nonchè i manuali cartacei forniti con le versioni commerciali a pagamento. Altro importante elemento di distinzione è il target delle medesime: si va dalle mini-distribuzioni che stanno su un singolo floppy (utili soprattutto per scopi dimostrativi, funzioni di rescue oppure per configurare vecchi pc 386 come router, server dhcp, firewalls, ecc) alle grandi distribuzioni composte anche da una decina di cd (prodotti completi in grado di soddisfare le esigenze di ambienti server e desktop), passando per quelle "live" (distribuzioni che solitamente stanno su un unico cd, sono avviabili da esso e permettono di avere un completo ambiente linux anche grafico senza dover installare nulla sull'hd (lo scopo è in genere dimostrativo ma possono rivelarsi molto utili, per non dire indispensabili, per scopi di rescue. Chi vi parla ha avuto modo di utilizzare una distribuzione live per trasferire i contenuti di una partizione NTFS di un sistema WinNT, in rete sul disco condiviso di un'altra macchina prima di formattare questo sistema che non voleva più saperne di riavviarsi.
Esula dallo scopo di questa breve presentazione analizzare in dettaglio le varie distribuzioni disponibili, nonchè arrivare a consigliarne una a scapito delle altre. Praticamente tutte hanno delle caratteristiche che le fanno eccellere per alcuni aspetti e lasciano un po' a desiderare per altri, alcune sono più adatte per i principianti, altre sono migliori per installazioni di tipo server.
Nella mia relativamente lunga esperienza con sistemi linux ho avuto modo di provare le distribuzioni
Red Hat, Mandrake, Debian, Suse, Conectiva e Slackware.
Non sto a spiegarvi i motivi della mia scelta, vi basti sapere che ora lavoro con grande soddisfazione
su una distribuzione Slackware che, nell'ambito linux, non cambierei per nessun altra.
Per un principiante completamente a digiuno di sistemi unix consiglio Mandrake, una distribuzione molto
ricca graficamente e a livello di software installato (programmi di grafica, giochi, ecc).
Per un utente che vuole crescere mi sento di consigliare Fedora (ex RedHat) oppure direttamente Slackware.
Un'altra distribuzione che secondo me è da provare è la Gentoo Linux: una distribuzione interamente
imperniata su un sistema di ports molto simile a quello di FreeBSD e che permette in pratica di installare
il sistema ricompilandolo completamente (kernel, tools di sistema, tutti i programmi) ottimizzato per la
propria piattaforma. Quest'ultima distribuzione però mi sento di consigliarla solo a chi ha già una certa
esperienza con linux, un pc/server con molta ram, un ottimo processore e un ampio spazio su disco, una
veloce connessione ad internet (almeno adsl, tutti i pacchetti verranno scaricati e mantenuti aggiornati
direttamente via internet).
E' importante sottolineare, per chi non conoscesse linux e avesse il dubbio, che ormai tutte le principali distribuzioni offrono un ambiente grafico (basato su X-window) dotato dei più aggiornati ambienti desktop (kde e gnome) che di fatto nulla hanno da invidiare agli ambienti di casa Microsoft.
La nascita del sistema Unix e del linguaggio C coincisero con la presa di coscienza da parte degli sviluppatori che l'hardware era relativamente meno costoso e sufficientemente potente da poter far girare un sistema operativo scritto in linguaggio di alto livello. Questo fu un enorme passo avanti che favorì molto la trasportabilità del sistema su macchine diverse (bastava avere un compilatore C compatibile con i vari hw) e verso le reti fino alla nascita di Usenet (l'antesignano degli attuali newsgroups). Purtroppo l'AT&T ad un certo punto si accorse di cosa aveva per le mani e decise di rendere Unix disponibile solo a pagamento: un bello schiaffo ai grandi contributi allo sviluppo del sistema dati fino a poco prima dalle università. Una di queste, l'università di Berkeley, aveva nel frattempo creato una versione alternativa nonchè libera di Unix chiamata Unix BSD che cominciò così a diffondersi rapidamente. Nel 1992 l'AT&T fece causa all'università di Berkeley sostenendo che il loro Unix conteneva alcune parti dello Unix originale che erano sotto copyrights. Il gruppo di sviluppo BSD non si scompose e riscrisse le parti in questione continuando ad offrire un sistema unix libero. Nel frattempo i sistemi i386 erano divenuti sufficientemente potenti per far girare unix e ne venne così fatto il port.
Il progetto poi rallentò fino ad arenarsi, furono gli utenti a riprendere in mano il lavoro dell'università di Berkeley e dare origine ai sistemi operativi descritti di seguito.
Una importante differenza di questi sistemi operativi rispetto a linux è il fatto che sono sviluppati in modo centralizzato (un unico team di lavoro) ed esiste una unica distribuzione comprendente non soltanto il kernel (come nel caso di linux) ma un ricco e completo insieme di tools, utility e programmi.
Contrariamente a linux che è stato scritto partendo da zero, i sistemi *BSD possono a ragione considerarsi diretti discendenti dell'originale sistema unix, essi hanno quindi alle spalle ormai alcune decine di anni di sviluppo che si vedono nella elevata stabilità, robustezza ed ottimizzazione del codice prodotto. Generalmente un sistema *BSD impegna meno risorse e, anche per questo, sono utilizzati per i server e per vecchi pc 386 che con linux ci starebbero "un po' stretti".
I sistemi *BSD sono meno conosciuti e diffusi rispetto a linux anche a causa del loro tipo di sviluppo: essi sono curati da una equipe ristretta di persone, esiste una unica distribuzione (certo in più versioni), chi sviluppa non è molto bravo a fare pubblicità e linux è divenuto famoso soprattutto grazie all'interessamento di alcuni grandi colossi come IBM che vi hanno investito ingenti capitali e alle distribuzioni commerciali come RedHat e Suse.
I sistemi *BSD hanno saputo evolversi molto bene e sviluppare una importante caratteristica che li pone all'avanguardia nella gestione delle installazioni e degli aggiornamenti dei programmi: il sistema dei ports.
Premetto solamente che come avviene con linux, anche con *BSD è possibile installare pacchetti binari precompilati dei programmi, ed in effetti è ciò che avviene con l'installazione iniziale del sistema.
I ports sono in pratica un insieme di patch e scripts creati per poter compilare, configurare ed installare da sorgenti e senza problemi una grande quantità di programmi normalmente disponibili per gli ambienti unix/linux.
il sistema dei ports provvede automaticamente a scaricare i sorgenti del programma da installare, applicargli le patch del caso, compilarlo e installarlo nel sistema riducendo al minimo l'intervento dell'utente.
Esso provvede inoltre a gestire automaticamente le dipendenze dei pacchetti scaricando e compilando librerie e programmi necessari per la compilazione e/o il funzionamento del programma che si vuole installare.
Il vantaggio dell'uso dei ports al posto dei pacchetti binari è la maggiore ottimizzazione che si può ottenere compilando i medesimi per la propria piattaforma nonchè la possibilità di evitare conflitti sui requisiti di librerie installate (i pacchetti binari in genere si portano dietro anche le dipendenze per una certa versione di librerie che non è necessariamente quella installata sul sistema: problema ben noto a chi usa sistemi linux con pacchettizzazione deb o rpm).
I sistemi *BSD non sono chiusi in sè, anzi, spesso le migliori caratteristiche sviluppate da ognuno vengono portate anche sugli altri.
Si tratta di un sistema molto robusto e stabile maggiormente orientato alla piattaforma x86 e a poche altre architetture.
Il supporto per l'hardware dei pc è molto buono e, pur non riconoscendo alcune periferiche poco comuni o proprietarie, soddisfa pienamente le esigenze di un utente medio o di un server aziendale (il sottoscritto ad esempio non ha avuto alcuna difficoltà (con FreeBSD 5.2) a far riconoscere la propria scheda SCSI della Tekram DC315/U (chipset TRM-S1040), con linux invece al kernel vanilla devo applicare sempre una patch).
FreeBSD si è fortemente rinnovato dalla versione 5.0 in poi e attualmente supporta senza difficoltà le configurazioni dei portatili (schede pcmcia), le periferiche usb, firewire, bluetooth e una grande varietà di periferiche. Non dovrebbero quindi incontrare difficolta, ad esempio, coloro che hanno il mouse o la tastiera usb, oppure coloro che vogliono provare ad installarlo sul laptop.
Il kernel FreeBSD supporta i sistemi multiprocessore e, pur non essendo dotato di un filesystem journaled (come vanno di moda adesso sotto linux) ha saputo far evolvere il suo filesystem UDF dotandolo di carattesistiche come si soft-updates e le acl che lo rendono all'avanguardia nei sistemi unix.
Attualmente i ports disponibili superano le 10.000 unità, catalogati in modo organico, e si può quindi dire che un sistema FreeBSD ha facile accesso ad una quantità di software anche superiore a quella disponibile per linux.
Vantaggi: E' un sistema molto pulito e ottimizzato per le applicazioni di rete, ha una ricca dotazione di pacchetti base (con l'installazione si può installare il sistema base ma anche molti pacchetti binari aggiuntivi come l'abiente grafico X-window, kde, gnome, ecc), ha un layer di compatibilità per far girare senza ricompilazione i binari linux, dispone di un sistema di ports molto ampio e pratico sia per l'installazione di nuovi programmi che per l'aggiornamento/ottimizzazione di quelli già installati. La ricchezza dei device driver disponibili è molto elevata e permette di utilizzare moltissime periferiche, anche le più recenti. E' ottimo come server di rete e con samba in una lan permette di sfruttare le acl del filesystem per offrire le stesse caratteristiche di un sistema windows con filesystem NTFS.
Svantaggi: ci vuole spesso più tempo rispetto a linux per vedere riconosciute nuove periferiche, è leggermente menu user-friendly di un sistema linux (anche se ormai specialmente sotto X e con kde le differenze si riducono veramente al minimo).
Alcuni link:
E' un sistema orientato prevalentemente alla portabilità sulla maggior parte delle piattaforme possibili. Esistono i binari per circa 40 piattaforme (dai server Alpha fino ai piccoli palmari) e complessivamente è in grado di funzionare su oltre 50 architetture differenti.
La prima conseguenza di questa netta vocazione alla portabilità è l'estrema pulizia e coerenza del sistema nonchè l'elevata aderenza agli standard. Un codice di buona qualità facilita i port.
La distribuzione in sè è abbastanza ridotta: comprende un sistema di base stabile (con peraltro anche l'ambiente grafico X), con le utility indispensabili per il funzionamento del sistema. In seguito spetta all'utente installarsi tutti quei programmi di contorno che gli servono tramite i ports e personalizzandolo per il/i compito/i specifico/i che dovrà svolgere. Il sistema è molto leggero e gira tranquillamente su hw obsoleto (un veccio mac oppure un vecchio 386). Sono disponibili svariate migliaia di applicazioni unix già pacchettizzate ed è possibile anche eseguire programmi linux in emulazione nativa.
Vantaggi: è molto leggero, gira anche su vecchi hardware, supporta una miriade di piattaforme diverse, molto utile per sistemi embedded (telefonini, auto, elettrodomestici, altro. Viene usato anche dalla Nasa per alcune apparecchiature).
Svantaggi: per il momento NetBSD non è in grado di sfruttare le architetture multiprocessore.
Alcuni link:
Si tratta di un sistema nettamente orientato alla sicurezza ed alla crittografia.
I software del sistema di base (ports a parte) sono il minimo inispensabile per avere un completo sistema funzionante.
Esiste una apposita equipe con il compito di auditare il codice dell'intero sistema allo scopo di scovare possibili falle di sicurezza.
E' probabilmente il sistema più sicuro e leggero per implementare un firewall o un router minimale.
Vantaggi: si tratta di un sistema molto stabile e sicuro, probabilmente la migliore soluzione per proteggere gli accessi da reti pubbliche come internet
Svantaggi: sistema minimale, più adatto come server di rete che non come desktop. Può comunque essere arricchito con pacchetti aggiuntivi tramite i ports.
Alcuni link: