Usi e pregi di Linux, per desktop ed aziende
Ing. Marco Pratesi - Intervento al Linux Day 2001

Download delle diapositive usate come traccia dell'intervento:
PDF -- Sorgenti LaTeX
Questo testo e le diapositive in download vengono rilasciati sotto la
GNU FDL (Free Documentation License).
Tutte le loro sezioni sono da considerare non modificabili.

Linux: Sistema Operativo multipiattaforma

Linux è multipiattaforma: è utilizzabile su molte altre piattaforme oltre che su Intel e compatibili (i cosiddetti "PC").

Il kernel Linux supporta vari tipi di processori; in merito si può consultare la pagina http://www.kernel.org/ .

La distribuzione Debian GNU/Linux è disponibile per le piattaforme basate su processori Alpha, arm, i386, Motorola 68000, PowerPC, Sparc e permette di usare lo stesso Sistema Operativo e gli stessi applicativi della distribuzione e di far riferimento alle stesse modalità operative su tutta la suddetta ampia gamma di piattaforme.

Esistono inoltre distribuzioni per altre piattaforme, come l'S390, sarebbe lungo citarle tutte.

Scegli il Linux più adatto alle tue necessità: le distribuzioni

Linux è libero, a partire dal suo codice sorgente, quindi chiunque può assemblare i vari ingredienti nel modo più consono alle proprie esigenze e, in particolare, vari gruppi hanno realizzato diverse distribuzioni di Linux con impronte diverse: Debian, Mandrake, Red Hat, Slackware, SuSE... che cosa c'è di meglio del poter scegliere?

I prodotti commerciali di terze parti

Domanda frequente:

Ma per Linux esiste solo software "gratuito"? Per Linux non ci sono applicativi commerciali?
Risposta:
Certo che ci sono (anche se non sono obbligatori :)

Linux ha guadagnato importanza e credibilità fino a convincere grandi aziende software a produrre software per Linux. Un nome tra tutti: Oracle; quello che molti considerano "il sistema di database per eccellenza" è disponibile per Linux. E come il gigante Oracle, molti altri hanno deciso di puntare su Linux, come IBM, Borland, ecc. ecc. E anche nell'ambito dei videogiochi, cito un nome: Loki Games vi dice nulla? :)

Linux e l'interoperabilità

Linux supporta tutti i protocolli di comunicazione e i formati standard più comuni; inoltre offre supporto per protocolli proprietari come ad esempio quelli utilizzati da Microsoft e Machintosh. Questo gli permette ad esempio di sostituire Windows NT (senza necessità di modifiche sui client) per servizi come la condivizione di file e la stampa remota, guadagnando in stabilità e affidabilità e permettendo di non spendere per esose e restrittive licenze d'uso anche solo per realizzare un file server.

Inoltre su Linux sono disponibili molti programmi applicativi multipiattaforma, cioè utilizzabili su altri Sistemi Operativi, come Star Office, disponibile anche per Solaris e Windows e presto anche per altre piattaforme.

Questo rende Linux uno strumento molto pregiato dal punto di vista dell'interoperabilità: nessuno si trova costretto a una migrazione completa se vuole cominciare a utilizzarlo per qualche compito.

Lo stesso vale per i computer su cui è attualmente usato Windows: Linux e Windows possono coesistere sullo stesso computer, basta partizionare il disco rigido (o utilizzare più di un disco rigido), alla partenza del computer si decide che cosa avviare. La presenza di entrambi sullo stesso computer e quindi l'utilizzo di entrambi a parità di risorse hardware permette di notare le differenze di efficienza, prestazioni e razionalità dell'uso delle stesse risorse.

Inoltre, se lo si vuole provare senza toccare il disco rigido... Demo Linux: una distribuzione che può essere eseguita interamente su CD, senza bisogno di scrivere nulla sul disco rigido :)

Linux: per riutilizzare computer obsoleti...

Quindi Linux può essere impiegato con successo per riutilizzare macchine che diversamente sarebbero da dismettere, ad esempio perché ormai non abbastanza potenti per eseguire l'ultima versione del programma XYZ usato nell'azienda per la produzione: Linux può essere installato su tali macchine, sia che siano dei "PC", sia che siano piattaforme SUN, Apple, e così via, e può rendere tali macchine utilizzabili come file server, server di stampa, server di posta e così via.

Laddove le macchine da dismettere sono più di una, Linux offre vari tipi di soluzioni di clustering per mettere insieme le risorse di più computer, anche per sistemi eterogenei.

Inoltre Linux permette come tutti gli Unix di realizzare agevolmente dei sistemi distribuiti; anche la sua interfaccia grafica è trasparente alla rete, cosicché un computer molto vecchio può immediatamente essere usato come terminale grafico per usufruire dei programmi appplicativi eseguibili da macchine più potenti.

Linux, la sicurezza, i virus...

Linux è estremamente interessante per tutti quegli enti che nell'evoluzione della propria attività pianificano di affacciarsi su Internet, specialmente per quelli che intendono offrire funzionalità server come ad esempio quelle necessarie per avere un sito web sulle proprie strutture. Infatti, in tale ambito, Windows NT, pur riguardando una minoranza dei siti attualmente esistenti nel mondo (sulla base di statistiche indipendenti, meno della metà di quelli che usano Apache e meno di quelli che usano Linux), vanta un interessante primato riguardo al numero di defacements (cioè di sfondamenti, violazioni del sistema)... e qualunque esperto di sicurezza ha ben chiaro che Windows NT e la sicurezza Internet senz'altro non vanno molto d'accordo (anche e soprattutto il server web IIS di Microsoft).

Linux, anche grazie all'esperienza ultratrentennale maturata sui sistemi Unix e alla disponibilità pubblica dei sorgenti (su cui tutti possono sorvegliare), offre una sicurezza estremamente maggiore e una rapida e tempestiva correzione dei problemi di sicurezza, rapidità che Microsoft non sembra proprio in grado di eguagliare né di avvicinare... spesso bachi noti di Windows NT restano irrisolti per lungo tempo, fino a quando Microsoft non decide che ha convenienza economica a risolverli...

Riguardo all'argomento virus, credo che sia esperienza comune di chiunque accede a Internet usando Windows... personalmente, ho chiuso l'argomento "virus" anni fa, smettendo di usare Windows per connettermi alla grande rete. Linux, come tutti gli Unix, ha una architettura ben meno vulnerabile ai virus e come Sistema Operativo in sè, se usato correttamente, è semplicemente invulnerabile all'idea stessa di virus, che può riguardare solo il singolo utente; quand'anche i virus coder dovessero concentrarsi su Linux quanto su Windows, avrebbero comunque vita ben più difficile con un osso duro come il Sistema Operativo Unix :)

Software disponibili per Linux

La seguente lista non pretende di essere esaustiva, dato che si basa esclusivamente sui prodotti di cui sono a conoscenza personalmente.

Servizi Internet e web

Server web: il mitico Apache, che supporta anche le estensioni Front Page :)

Linguaggi di scripting per il web: Perl, PHP, Python, ASP...

Data base: MySQL, PostgreSQL, Interbase, Oracle, Adabas...

Server di posta: Sendmail, Qmail, Postfix, Exim...

Altri servizi di rete: non mi dilungo, ma supporta senza problemi protocolli come FTP, DNS, POP, IMAP, NFS, tunneling SSL, e così via

Samba: per offrire i servizi di rete tipici di Windows, come la condivisione di directory ("cartelle") e stampanti

Inoltre, sono disponibili tantissimi prodotti liberi e non, basati sui linguaggi e sui prodotti menzionati sopra, che permettono di offrire servizi come web mail, newsletter, forum, portali, utili funzioni CGI, ecc. Il kernel Linux offre inoltre funzioni estremamente versatili e avanzate di firewalling, di cui parlerà Emiliano Bruni nell'intervento successivo.

I browser

Mozilla, da cui derivano Netscape 6.x e Galeon; Netscape 4, utilissimo ancora oggi per la sua impareggiabile velocità, Konqueror, Opera...

Sviluppo pagine web

Quanta+, Gnotepad, Star Office e Open Office (nominati più avanti), il Composer di Netscape e Mozilla, IBM WebSphere Studio Homepage Builder, Emacs, Xemacs, VIM...

I desktop

Linux offre moltissime interfacce grafiche, ce n'è per tutti i gusti e per soddisfare sia computer recenti che computer con poche risorse. Attualmente i desktop più gettonati sono KDE e Gnome, molto potenti e comodi, che permettono all'utente Windows di non sentirsi troppo "fuori casa" e offrono molte funzionalità avanzate che il desktop Windows non ha... tant'è che la Microsoft ha cominciato a imitarle (e a dire che le sue imitazioni sarebbero delle novità... :) Oltre a KDE e Gnome, tante alternative, come Window Maker, Afterstep, Enlightenment, Xfce, Blackbox, Fvwm, Openwin, Icewm, Twm, ecc. ecc.

Gli Office

Star Office, Open Office, Applixware, Word Perfect, KOffice, AbiWord, Gnumeric... Tutti questi prodotti mirano all'interoperabilità con Microsoft Office, mediante opportuni filtri di importazione ed esportazione. Inoltre, Star Office e Open Office sono disponibili anche per Solaris e Windows (Open Office lo è anche per altre piattaforme) e recentemente KDE è diventato utilizzabile anche su Windows, cosicché, probabilmente, presto anche KOffice sarà disponibile per Windows.

Typesetting, produzione di testi scientifici

Mai sentito parlare del mitico LaTeX? Veloce, affidabile, ordinato, ottimo per i testi scientifici e per la matematica, permette di produrre documenti PostScript, PDF, HTML, e non solo...

Linguaggi di programmazione e sviluppo software

Su Linux, il punto di riferimento più importante si chiama GCC = GNU C Compiler. Ovviamente, su Unix/Linux un linguaggio di importanza chiave, anche per ragioni storiche, è il C e con esso il C++ (il C è nato per portare Unix dall'assembler a un linguaggio ad alto livello e portabile che offrisse anche le potenzialità dell'assembler). Esistono anche ambienti RAD (Rapid Application Development) come Glade (C, librerie Gtk+ e Gnome), Kdevelop (C++, librerie Qt e KDE), Qt-designer (C++, librerie Qt). Il GCC supporta anche il Pascal tramite il pacchetto P2C (Pascal to C) e il Fortran 77 tramite F2C (Fortran to C) e G77.

Esistono per Linux vari interpreti BASIC.

Per lo sviluppo Java si può far riferimento al JDK (Java Development Kit) della SUN Microsystems.

Poi, i tradizionali linguaggi di scripting, come le shell Bash e Tcsh, Perl (Practical Extraction and Report Language), PHP, molto usato per il web, Python, Ruby, e tanti altri.

Menziono infine Kylix della Borland, che credo sia simile a Delphi.

Applicazioni scientifiche

Il sito http://sal.kachinatech.com/ (SAL - Scientific Applications on Linux) raccoglie informazioni e link sulle applicazioni scientifiche per Linux; sarebbe davvero arduo menzionarle tutte, ne nomino solo alcune: Octave, un clone Matlab; Scilab, che permette anche l'analisi simbolica; Gnuplot, per la produzione di grafici 2D e 3D e non solo (usato anche da Octave).

Inoltre su Linux sono disponibili i più blasonati applicativi proprietari di questo ambito, come Matlab e Mathematica.

Editor

Emacs, Xemacs, VIM, Nedit, editor per l'esadecimale... ce ne sono per tutti i gusti e tutte le esigenze...

Elaborazione grafica

Un nome su tutti: The GIMP = The GNU Image Manipulation Program, paragonabile ad Adobe Photoshop come potenzialità. Inoltre, Photopaint e altri prodotti non liberi sono disponibili per Linux.

Software CAD

Ce ne sono, ma non li conosco, quindi mi limito a un'elenco di quelli che ho sentito nominare: QCad, Arcad, Microstation, VariCAD, Blender...

VMware per Linux

Volete far girare Windows dentro Linux? VMware è un emulatore di "PC", dentro al quale si può installare un sistema operativo. Windows può essere installato al suo interno e comunicare in vari modi (anche tramite una rete virtuale) con il Sistema Operativo ospitante, cioè con il computer reale che sta usando Linux. Questo permette di usare entrambi contemporaneamente sullo stesso computer. Ad esempio, a uno sviluppatore web permette di sottoporre a test le sue pagine anche con i browser per Windows senza dover avere un altro computer per svolgere tale funzione client.

E poi...

... e poi mi arrendo: non potrei farcela mai ad elencare tutto; c'è tantissimo altro a disposizione, non ho neanche nominato tutti i prodotti di cui faccio uso...

Linux in campo embedded

Per spiegare che cos'è un sistema "embedded", cito una e-mail di Silvio Romagnoli sulla Mailing List tecnica del LUG Roma.

Un sistema embedded è "un computer che non sembra un computer", un computer concepito per svolgere un compito ben preciso, e inserito all'interno di un altro dispositivo per automatizzarne il funzionamento.

Esempi: il computer che si trova dentro un telefonino, il controller dell'ABS di un'automobile, la schedina della lavatrice, il giocattolo del nipotino, ecc.

Chiaramente il contatto con il mondo esterno, nonché l'immagazinamento dei dati, spesso non avviene con i soliti mezzi ai quali siamo abituati (tastiera, mouse, monitor, hard disk, CD-ROM, ecc.) ma in modi completamente diversi, dipendenti dal contesto nel quale il sistema viene usato (sensori, trasduttori e attuatori, ROM, ecc).

Linux risulta estremamente interessante ed è molto utilizzato in campo embedded, grazie alla scalabilità e alla disponibilità del codice sorgente del kernel e non solo del kernel.

Nel municipio della città di Largo in Florida...

Lettura rapida e guidata del documento preso dalla rete: http://www.sandlab.org/commenti.php3?news_id=1463

Perché Linux funziona così bene? La GPL...

Esatto, "la" GPL, non "il" GPL... non si tratta del gas usato per il riscaldamento :)

Premessa: nel seguito, volutamente semplificherò un pochino per permettere una comprensione più immediata; eventualmente si può pensare a degli approfondimenti successivi.

La GPL è la licenza del kernel Linux e di tantissimo altro software utilizzato per realizzare le distribuzioni GNU/Linux. Essa è una licenza la cui lettura è molto interessante, che rivolge l'attenzione all'impedire limitazioni nella libertà d'uso, ridistribuzione e condivisione del software, al contrario delle comuni licenze proprietarie, che mirano soprattutto a stabilire proprio dei limiti all'uso del software da parte di chi ne acquista una licenza d'uso. La GNU GPL è la licenza scelta e raccomandata dalla Free Software Foundation per lo sviluppo di software libero, in Inglese "Free Software". E qui la prima precisazione... in Inglese, "Free" significa sia "gratis" che "libero"; la GPL chiarisce subito che, laddove parla di "Free", ci si riferisce alla libertà del software, non al suo prezzo. Di un software libero, come risulterà ancora più chiaro dal prossimo intervento di Emiliano Bruni, ho a disposizione tutto il codice sorgente. Posso modificarlo per adattarlo alle mie esigenze; se ho la competenza necessaria, laddove riscontro un difetto, posso individuarne la causa a livello di codice sorgente, correggere il problema, proporre la correzione all'autore originale. Se un progetto viene abbandonato per qualche motivo dagli sviluppatori, non muore per sempre: se viene considerato interessante e valido, chiunque può riprendere e riavviare lo sviluppo a partire dal codice sorgente sviluppato fino a quel momento. Anche per i progetti attivi, chiunque può individuare possibili miglioramenti e aggiunte e innestarli sullo stesso software per utilizzarli per i propri scopi e, se lo desidera, sottoporre gli stessi agli autori perché vengano incorporati nella versione ufficiale. Disponibilità del codice sorgente = tanti occhi vigilano meglio di pochi. Gli sviluppatori hanno a disposizione una comunità virtualmente illimitata di utenti interessati al prodotto, al suo corretto funzionamento, alla sua completezza e funzionalità e ad esempio possono in buona parte far riferimento a tale comunità per tutto ciò che riguarda il test, che, nei progetti closed-source pesa usualmente circa la metà del tempo necessario alla realizzazione del prodotto, cioè all'incirca quanto il tempo necessario allo sviluppo del codice: un'ora per scrivere codice implica un'ora per sottoporlo a test...

Obiezione molto frequente: ma tutto ciò significa che rinuncio al copyright sul codice prodotto, chiunque potrebbe prendere lo stesso codice per realizzare un prodotto analogo e rivenderlo come suo, magari senza fornire a me le modifiche e i miglioramenti che ha introdotto... Assolutamente no: la GPL vuol dire libertà, e libertà non vuol dire né anarchia nè legge della giungla; nessuno degli sviluppatori di software libero pensa minimamente di voler rinunciare al copyright su ciò che scrive. La GPL è scritta proprio in modo tale da garantire sia il riconoscimento di tutti i contributi che la libertà d'uso dell'utente finale; riguardo a quest'ultima, la GPL serve a fare in modo che un software libero resti libero... come dire: "se ami qualcuno, lascialo libero" non basta: "se ami qualcuno, lascialo libero... e assicurati che nessuno possa ridurre la sua libertà, che lo ami oppure no". Come sopra, chiunque può realizzare miglioramenti di un software rilasciato sotto licenza GPL, ma, se vuole ridistribuire il prodotto derivato così ottenuto, deve rilasciarlo con la stessa licenza GPL e riconoscendo tutti i contributi originali (cioè senza rimuovere nessuno dei "credits" dal codice che sta utilizzando). In questo modo l'autore originale rilascia software libero e si assicura che nessuno possa restringere la libertà dello stesso software.

E a questo punto una domanda che sento fare spesso:

"Ma dov'è il business? Sbaglio o questo modello di sviluppo pieno di ideali molto belli esclude il business? Che cosa ci guadagnate a sviluppare software che poi resta libero?".

Beh, se questo modello escluda il business si potrebbe chiederlo a colossi che basano proprio su Linux una parte consistente del loro business, come IBM e Oracle (tanto per fare due nomi), ad aziende che sono nate e vivono proprio per produrre distribuzioni Linux, fare formazione, offrire supporto in merito, come Red Hat, Mandrakesoft, SuSE, si potrebbe chiederlo allo stesso Linus Benedict Torvalds, che guadagna molto bene, a tanti altri nomi del software libero, come Alan Cox, Bruce Perens, e così via... Come già detto, quando si parla di software "free", ci si riferisce alla libertà, non al prezzo. Semplicemente si applica anche al software lo stesso modello che fa da motore della ricerca scientifica, lo stesso modello che viene applicato alla conoscenza e all'insegnamento (lo stesso Linus Torvalds ha detto cose analoghe in una recente intervista).

Non pretendo di dare risposte in così poco tempo a tutte le domande e a tutti i dubbi che possono emergere in merito per gli ascoltatori... mi limito a fare alcune domande che possono indurre a riflettere e ad iniziare a capire meglio questo modello di sviluppo e il modello di business che induce...

Se vado a lezione da un professore, conseguo un'utilità?

In seguito all'utilità che ne conseguo, lo pago oppure no?

E quindi, quel professore svolge gratis la sua attività?

Ma... sono libero di raccontare ad altri quello che mi ha insegnato? Oppure nell'insegnarmi mi spiega inequivocabilmente che quei concetti sono di sua proprietà, non sono patrimonio del genere umano, che mi trasferisce solo il diritto di farne uso con determinate limitazioni ma mi vincola a non condividere/ridistribuire tale conoscenza?

Se le conoscenze acquisite nella storia fossero rimaste patrimonio dei pochi che le hanno ottenute e fossero sottostate a limitazioni alla loro condivisione e circolazione, quali quelle appena menzionate, questo avrebbe avvantaggiato o penalizzato lo sviluppo dell'umanità?

Il fatto che la conoscenza che acquisisco sia liberamente circolante impedisce forse che si possa instaurare un sano regime di concorrenza in cui ad emergere siano i migliori?

Buona riflessione... :)

Un'ultima precisazione: il fatto che Linux sia sotto licenza GPL non impedisce a chi vuole di sviluppare software proprietario, a pagamento, per piattaforma Linux: alcuni dei software che ho menzionato sono appunto a pagamento e con licenze d'uso proprietarie.

Il supporto tecnico

Ho sentito dire

"Sí, ma dietro a Linux non c'è nessuno che mi offra supporto, io non ho bisogno solo di software che non costi troppo, ho bisogno di tempi rapidi di intervento, di supporto tecnico, ecc. ecc.".

E chi l'ha detto, la Microsoft? :)

Prima di tutto, qualche domanda: siete soddisfatti del supporto tecnico fornito da chi vi ha venduto il software e del costo di tale supporto? Ne siete sicuri? Davvero non vi è mai stato risposto

"si, è un problema noto, non si può risolvere"

oppure

"tutto sommato le conviene formattare il disco e reinstallare tutto da capo"

???

Se davvero non vi è mai successo nulla di questo tipo, sono contento per voi, siete fortunati. Prima di tutto, Linux è un prodotto molto affidabile e quindi è poco probabile che vi ponga in condizioni di difficoltà come e quanto avviene con Windows. Inoltre il mondo Linux offre vari tipi di supporto tecnico, compreso quello commerciale e a pagamento. Voglio poter fare riferimento a un soggetto che sia responsabile del supporto tecnico? Bene, ad esempio posso comprare (a basso prezzo) un cofanetto commerciale di Red Hat, contenente una decina di CD con l'ultima release, ottenere così supporto telefonico e via e-mail e accesso prioritario in download sul server FTP, ricevere periodicamente su CD i pacchetti di aggiornamento e correzione, ricevere tempestivamente informazioni rilevanti sulla distribuzione tramite la Red Hat network, e via dicendo. Se necessito di un supporto più consistente, posso rivolgermi a Red Hat Italia. E se non mi piace il supporto che Red Hat Inc. mi offre? Semplice: scelgo un altro distributore, come SuSE, Mandrake, ecc., così in futuro Red Hat ci penserà due volte prima di trattar male un cliente... concorrenza e libertà di scelta = vantaggio per l'utente e crescita per i vari concorrenti... E se non voglio supporto tecnico commerciale, per esempio perché voglio contenere i costi e/o perché ritengo di poter fare da solo e di potermi prendere la responsabilità e i rischi? Semplice: non compro un cofanetto commerciale e non chiedo supporto tecnico a nessuno; scarico o mi faccio scaricare da Internet l'ultima versione di Red Hat, Debian, Mandrake, ecc. e faccio da solo; e posso far riferimento al supporto libero di un'ampia comunità di utenti e sviluppatori, che costituisce un punto di forza e un vanto per il mondo GNU/Linux: Mailing List, Newsgroup, Linux Users Group, gli stessi autori del software... per esperienza personale posso dire che la cortesia, la rapidità e l'efficacia delle risposte ottenute su tali canali hanno subito fugato i dubbi enunciati sopra, che anche io avevo, e mi hanno fatto capire in breve tempo una delle chiavi del successo e della qualità di Linux e di ciò che gli orbita intorno.

Insomma, con Linux non solo si ha supporto tecnico, ma si può farne a meno e in più si ha il supporto di una comunità viva che credo pochi produttori software possano vantare :)

Tratto da RedHat.com: "That's why they called it a revolution"

Rapida traduzione "guidata" del documento: http://www.redhat.com/annualreport/revolution.html

But you won't get control from proprietary software. No matter how strong you think your partnership with the company is. It won't happen. Forget the handshakes. Leave your smiles and business cards at home. Because in the end, they own the code - and you can't see it, touch it, change it. No. No. No.

True partnership: We give you solid, frequently updated code. You take advantage of our expertise. Don't like what Red Hat is doing for your company? Choose another Linux vendor. That's the deal.

Or choose proprietary software where the weaknesses of the code are hidden, the software is painful to integrate and updated only when the company feels like it - and best of all - pay three, even four times more.

Want to modify the software? You pay. Want to upgrade? You pay. Need more software that runs on their software? You pay.

Is it any surprise that a free operating system created in 1991 by a student now runs more than a quarter of all new servers?

That's why they called it a revolution

Download delle diapositive usate come traccia dell'intervento:
PDF -- Sorgenti LaTeX
Questo testo e le diapositive in download vengono rilasciati sotto la
GNU FDL (Free Documentation License).
Tutte le loro sezioni sono da considerare non modificabili.

Debian Apache Powered by PHP Layers Menu Valid XHTML 1.0! Valid CSS!