Corso di Informatica Open Source Linux Storia, filosofia e concetti di base

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Corso di Informatica Open Source Linux Storia, filosofia e concetti di base"

Transcript

1 Corso di Informatica Open Source Linux Storia, filosofia e concetti di base Pag.1 di 65

2 Testo Guida per il corso Linux che si è tenuto tra Marzo e Aprile 2008 presso: Istituto Prof.le di Stato per l'industria e l'artigianato Giancarlo Vallauri Via B. Peruzzi 10 Carpi (MO) in collaborazione con Centro Formazione Professionale CDR EDSEG Città dei Ragazzi Relatore del corso Guandalini Mirko Il presente manuale è stato scritto da LABORATORI AIDAN Via. C.Colombo, 5 Sozzigalli di Soliera (MO) Tel Fax Web: Pag.2 di 65

3 Indice Sezione 0: Vedere un computer Dimostrazione pratica in sede Visione dell'interno di un Computer. Dimostrazione di Linux e Windows in funzione. Dimostrazione della presenza di Linux su oggetti di uso comune. Sezione 1: Basi Codice sorgente, codice binario, compilatori. Cos'è il BIOS. Cos'è un Sistema Operativo. Sezione 2: Sistemi Closed Source Cosa vuol dire Closed Source Come avviene lo sviluppo Closed Source. Come è nata Microsoft e come mai ha il monopolio del mercato. Vantaggi/svantaggi tecnici, economici e sociali del modello Closed Source. Sezione 3: Introduzione all'open Source L'importanza di avere libertà di scelta. Cos'è uno standard. Standard veri e standard falsi. Cos'è l'open Source, come è nato e come funziona la licenza GPL. Cos'è Linux, come è nato e come viene sviluppato. Vantaggi/svantaggi tecnici, economici e sociali del modello Open Source. Campi applicativi di Linux. Altri sistemi Open Source. Perché Linux e l'open Source sono un pericolo per Microsoft. Sezione 4: Come funziona Windows. Come funziona Linux. Cos'è e come funziona un Kernel. Cos'è un Driver. Driver su Windows, vantaggi e svantaggi. Driver su Linux, vantaggi e svantaggi. Integrazione: come funzionano e cosa sono le librerie. In cosa Linux è migliore di Windows. In cosa Windows è migliore di Linux. Com'è possibile sopperire alla mancanza di certi software costruiti esclusivamente per Windows. Hacker e Craker Cosa sono i Malware, cosa fanno e perché. Come si difende Windows dai Malware. Perché Linux non è soggetto a Malware. A quali attacchi è soggetto Linux? Curiosità su Linux. Sezione 5: Licenze a riconoscimenti. Licenza del corso e riconoscimenti vari. Pag.3 di 65

4 Basi Codice Sorgente, codice binario, compilatori: I microprocessori (chiamati anche CPU), sono il cervello di un computer. Le CPU sono in grando di comprendere ed elaborare solo codice binario, ossia sequenze di Bit. Un bit può avere valore 0 o 1 ed i numeri sono rappresentati secondo la logica booleana (Algebra di Boole: prende il nome da George Boole, matematico inglese ). Una sequenza di 8 bit viene chiamata Byte. Ovviamente, per un essere umano, programmare un computer immettendo dentro di esso sequenze binarie è un'impresa a dir poco ardua, sebbene non impossibile (almeno per programmi minuscoli). I primi computer, nati negli anni 70, venivano programmati manualmente impostando 1 Byte tramite una sequenza di 8 interruttori, confermandolo e caricandolo poi in memorira tramite la pressione di un pulsate. Nell'immagine qui sotto si vede il frontalino di un'altair 8800 del 1973 Tuttavia la crescente complessità degli elaboratori e le esigenze dell'industria richiedevano programmazioni sempre più complesse e ben presto vi fu la necessità di creare veri e propri linguaggi di programmazione che fossero facilmente comprensibili dagli esseri umani e che quindi accelerassero il processo di scrittura dei programmi. Ovviamente gli elaboratori continuavano (e continuano tutt'ora) a comprendere solo sequenze binarie. Vennero creati i Compilatori. Un compilatore è uno speciale programma per computer capace di accettare in ingresso un programma scritto in un linguaggio umano e tradurlo nella forma binaria. Come avviene allora la costruzione di un programma? 1. L'essere umano scrive il programma utilizzando un linguaggio di alto livello, il programma presentato in questa forma viene definito sorgente 2. L'essere umano fa elaborare il sorgente dal compilatore 3. Il compilatore genera un file binario che non è altro che la traduzione del sorgente in sequenze di bit comprensibili direttamente dalla CPU. Otteniamo così il programma in forma binaria (eseguibile), però non è detto che questo programma sia perfetto! Potremmo aver sbagliato qualcosa in fase di programmazione, oppure dopo un po' potremmo renderci conto che ci sono cose migliorabili o che si potrebbero aggiungere. Per effettuare questi miglioramenti sarà necessario intervenire sul sorgente per poi compilarlo nuovamente in quanto, per assunto, il binario risulta incomprensibile. E' ovvio che se smarriamo il sorgente ci sarà impossibile modificare il programma, dovremo riscriverlo da zero. Allo stesso modo ci è impossibile modificare un programma altrui senza possederne il sorgente. Pag.4 di 65

5 Cos'è il BIOS: Il BIOS è un piccolo frammento software contenuto all'interno di una memoria non volatile (ROM, EPROM, Etc) direttamente inserita nell'hardware del computer. Il compito del BIOS è quello di inizializzare le componenti hardware al momento dell'accensione e successivamente avviare il Sistema Operativo (in gergo fare il bootstrap) da una unità a disco (floppy, cdrom, harddisk). Senza un BIOS il computer non si accenderebbe nemmeno, sarebbe solo un ammasso di circuiti che consuma corrente elettrica senza fare nulla. Cos'è un Sistema Operativo: In informatica il sistema operativo (abbreviato spesso nel suo acronimo SO, o all'inglese OS, operating system) è il programma responsabile del controllo e della gestione dei componenti hardware che costituiscono un computer e dei programmi che su di esso girano. Il sistema operativo mette anche a disposizione dei programmi una interfaccia software per accedere alle risorse hardware (dischi, memoria, I/O in generale) del sistema, ed un vasto insieme di librerie e funzioni alle quali le stesse applicazioni possono accedere. Il compito principale del sistema operativo è quello di permettere all'uomo di interagire direttamente con la macchina. Il sistema operativo quindi è la base su cui girano tutti i programmi e la qualità del sistema operativo è direttamente responsabile delle prestazioni del computer e delle applicazioni che girano su di esso. Cenno storico: Prima dell'avvento del PC, sulla maggior parte dei computer a 8 bit, non vi erano né BIOS né SO, ma solo una ROM da cui avviava direttamente un piccolissimo ambiente operativo che a malapena si può definire sistema operativo. Un esempio: il Commodore 64 All'epoca solo su enormi, costosissimi e potentissimi (per allora) computer, destinati a enti, governi, militari, etc, girava un noto sistema operativo estremamente potente. Questo sistema operativo si chiamava UNIX Nell'immagine sotto un sistema VAX, consumava diversi Kilowatt, sistema a 32bit che solo nei modelli più recenti arrivava ad avere alcuni Mb di memoria ram. Occupava lo spazio di una stanza e per quanto possa sembrare buffo veniva definito super mini-computer per le sue ridotte dimensioni. Pag.5 di 65

6 Sistemi Closed Source Cosa vuol dire Closed Source: Si definisce Closed Source un programma a sorgente chiuso, ossia un programma di cui si posseggono i binari ma NON i sorgenti, che restano chiusi, di proprietà esclusiva del programmatore che ha creato il programma o dell'azienda per cui lavora. Come avviene lo sviluppo Closed Source: Semplicemente avviene in privato : il programma viene scritto da uno o più sviluppatori, solo un circolo chiuso di persone hanno accesso al codice sorgente. Come è nata Microsoft e come mai ha il monopolio del mercato: Microsoft nasce negli anni '70 come minuscola ed insignificante software house composta da sole 3 persone tra cui Bill Gates. Uno dei primi lavori di Microsoft fu la scrittura di un compilatore che permise la programmazione dell'altair 8800 usando il linguaggio Fortran. Ma la vera fortuna di Microsoft non fu farina del proprio sacco, nei primi anni '80, IBM (un gigante dalla potenza commerciale enorme, ieri come oggi) cercava qualcuno che scrivesse un Sistema Operativo per un nuovo modello di computer: l'ibm XT che portava una tra le prime cpu a 16bit ad essere commercializzate, l'8086, il capostipite dei moderni PC (che conservano con esso compatibilità). Nella foto sotto un IBM XT, CPU ,7Mhz, poteva utilizzare al massimo 1Mb di memoria RAM, anche se spesso si vedevano XT con 512Kb o meno di ram, in quanto i costi dei chip di ram erano proibitivi e comunque i programmi di allora difficilmente ne avrebbero tratto beneficio. Microsoft si presentò alla IBM dichiarando di possedere un sistema operativo adatto a questo primordiale PC, il DOS... In realtà Microsoft non aveva nulla in mano, solo la notizia avuta per passaparola che un piccolo programmatore squattrinato (Tim Paterson) ne aveva scritto uno. Stipulato l'accordo commerciale con IBM, Bill Gates ed i suoi amici si recarono a casa di Tim Paterson offrendo a lui $ per acquistare il suo 86-DOS (adattamento per 8086 dell'analogo sistema CP/M creato da Gary Kildall per computer a 8bit). L'IBM XT fu un successo (e tutti i suoi successori). Questo fece la fortuna di Microsoft. Mentre nessuno ricorda il povero Tim Peterson, ormai morto, pugnalato da un motociclista a cui stava antipatica la maglietta che indossava. Proseguendo con la storia di Microsoft: nel 1985 venne commercializzata la prima versione di Windows, sistema grafico a finestre, che altro non era che la copia del sistema installato su di un prototipo Apple Machitosh che Bill Gates riuscì ad avere in visione dallo stesso Steve Jobs, ingannandolo. C'è da dire che il sistema Macintosh era la copia di un sistema sviluppato da Xerox ma comprato dalla Apple. Quindi Windows era la copia di una copia. Pag.6 di 65

7 Vediamo sotto una schermata del desktop Xerox mai commercializzato Qui una schermata di MacOS 1 Pag.7 di 65

8 Qui invece una schermata di Windows 1.01 A parte la presenza dei colori in Windows 1.0 (all'epoca ben pochi PC possedevano schede grafiche o monitor in grado di visualizzare i colori) appare evidente all'occhio che il desktop Xerox era il più evoluto, per poi passare a quello Apple fino a quello Windows che era decisamente rudimentale. Pag.8 di 65

9 Nonostante tutto, l'alleanza con IBM, e la grande diffusione dei PC, sospinta soprattutto dal loro basso costo, affermò Microsoft come azienda leader del mercato dei sistemi operativi. Purtroppo la sua posizione dominante ha indotto la stessa a trascurare parecchio la qualità dei propri prodotti... Rispondete a queta domanda: Voi vi sforzereste di migliorare un vostro prodotto, quando riuscite a venderlo comunque, al prezzo che vi pare, perché questo prodotto è l'unica scelta presente sul mercato, o perché avete la forza di imporlo? Ovviamente no, o almeno no se siete privi di scrupoli e di etica. E il denaro è un solvente eccezionale per l'etica e lo scrupolo di una persona e/o di una società. Oltre a questo, un'altra pratica commerciale comune in Microsoft è quella di spazzare via la concorrenza, non con la qualità dei suoi prodotti ma con la forza del denaro... (Premessa: in america una ditta non può superare una certa mole di affari senza entrare in borsa, e in molti altri paesi è così). Fai qualcosa meglio di me? Ok, ti compro a ti cancello dalla faccia della terra, non ti fai vendere? Aspettiamo che tu cresca, quando entri in borsa compro il 51% delle tue azioni e dopo sei costretto a fare come dico io: smetti di vendere il tuo programma che mi fa concorrenza, non smetti? Vendo tutte le tue azioni e ti riduco in mutande quindi chiudi i battenti per banca rotta. Oppure visto che il mercato dei SO è mio, faccio un programma analogo al tuo e lo metto integrato dentro allo stesso Windows così la gente non sentirà più il bisogno di comprare il tuo, avendo il mio gratis. Alcuni esempi WordStar: era uno dei programmi di video scrittura più in voga negli anni 80, decisamente superiore e concorrenziale nei confronti di MS Word. La ditta che lo commercializzava fu soffocata e acquisita da Microsoft, che continuò in seguito a vendere MS Word, facendo sparire ogni traccia di WordStar. Netscape, uno dei primissimi browser web: Nei primi anni '90 internet fu definita dallo stesso Bill Gates una moda passeggera. In seguito il fenomeno internet diventò sempre più grande e l'immagine di Netscape sempre più importante. Netscape ovviamente andava eliminato (comperato) e la Netscape viveva di questi introiti. Microsoft allora decise di investire alcuni milioni di dollari per sviluppare Internet Explorer al solo scopo di regalarlo assieme a Windows, eclissando di conseguenza Netscape, che fallì alcuni anni dopo per banca rotta in quanto nessuno comprava più il loro software quando Internet Explorer (per quanto qualitativamente peggiore) era gratis e già installato assieme a Windows. Le primissime versioni di Windows 95 (Win 95a) NON avevano Internet Explorer, mentre la seconda versione di Windows 95 (Win95 osr2) era equipaggiata di Internet Explorer di serie e così fu per tutte le successive versioni di Windows. Però netscape fece un brutto dispetto a Microsoft: poco prima di andare a fondo rilasciò pubblicamente i codici sorgenti del suo Browser così che la comunità Open Source (allora giovanissima) potesse prenderne le redini e continuarne lo sviluppo. Da queste ceneri nacque Mozzilla e succesivamente Firefox, Browser Open Source che sta dando filo da torcere a Microsoft e che ha già mangiato oltre il 25% dell'utenza mondiale di Internet Explorer. Pag.9 di 65

10 Vantaggi/svantaggi tecnici, economici e sociali del modello Closed Source: Vantaggi: Tecnicamente parlando: non ci sono particolari vantaggi, tu crei un programma, fai in modo che faccia il suo lavoro e che non ci siano vistosi bug e basta. Commercialmente parlando: devi investire tanto tempo nello sviluppo, se sei un'azienda devi stipendiare tutti i programmatori per ottenere qualcosa di abbastanza buono da essere venduto ad un prezzo che possa coprire le spese e permetterti di guadagnare. Oltre a questo devi rispettare dei tempi di consegna per i tuoi prodotti. Socialmente parlando: non c'è niente di che, tu vendi il tuo prodotto e basta. Svantaggi: Tecnicamente parlando: una cerchia ristretta di cervelli che lavorano su di un progetto potrebbe avere una visione limitata dello stesso, dei suoi difetti e lacune funzionali/architetturali. Soprattutto se associamo questa situazione con una limitata comunicazioni con il pubblico acquirente. Il fatto di dover rispettare determinati tempi per finire un progetto crea pressione sugli sviluppatori (scrivere software è molto difficile, e ancora più difficile è preventivare/rispettare determinati tempi). Questa situazione spinge gli sviluppatori ad adottare compromessi tecnici che se da una parte accelerano il completamento del prodotto dall'altra ne peggiorano la qualità. Gli sviluppatori vengono spinti a curare di più l'aspetto esteriore e funzionale di un'applicazione piuttosto che concentrarsi sulla sua struttura operativa interna, perché l'aspetto esteriore è quello che l'utente (acquirente) medio percepisce più facilmente. Questo modo di programmare, alla lunga, provoca un decadimento generale della qualità di un programma, rendendo anche più difficile il suo mantenimento; cioè aggiornare e modificare un programma scritto male o con un'architettura pessima è notevolmente più difficile che farlo su un programma ben scritto. Oltre a questo, chi scrive software closed è obbligato a reinventare ogni volta la ruota, non importa se altre 1000 persone hanno fatto software simili al tuo, non avendo il codice sorgente dovrai fare tutto partendo da 0. Un esempio? Acrobat Reader ufficiale (visualizzatore di file PDF), scritto dalla Adobe, (Closed Source) installato è un malloppone di quasi un centinaio di megabytes di binari. KPDF, visualizzatore di file PDF Open Source installa poco più di 1 megabytes di binari e per certi aspetti offre funzionalità più appetibili del reader ufficiale. Commercialmente parlando: devi pregare che il tasso di pirateria, ossia persone che fanno copie abusive del tuo programma, non sia troppo alto. Devi investire tempo e denaro in sistemi di protezione da copia e nella difesa del tuo diritto d'autore e di repressione delle copie pirata. Socialmente parlando: questo modo di sviluppare software soffoca molto la comunicazione con gli utenti. Tu fai una bella scatola colorata venduta nei supermercati, la gente arriva nei supermercati e compra. Fine della storia. Inoltre se tu un giorno fallissi o decidessi di abbandonare lo sviluppo di un determinato programma lasceresti un sacco di persone, che lo usavano, alla deriva. Immaginate quale danno fu arrecato alle tantissime aziende, enti, e pubbliche amministrazioni quando la ditta produttrice di WordStar chiuse i battenti. Quanti documenti divennero illeggibili dopo pochi anni perché non esisteva più un programma capace di aprirli. Pag.10 di 65

11 Introduzione all'open Source L'importanza di avere libertà di scelta: La libertà di scelta è qualcosa di molto importante. Voi oggi siete abituati ad andare al supermercato dove avete la libertà di scegliere tra centinaia di marche diverse di cereali, di conserve, pasta, di saponi e prodotti per la casa. Avete la possibilità di scegliere tra centinaia di marche e modelli di auto, moto, scooter, biciclette, telefoni cellulari, TV, HiFi, etc. In base ai vostri gusti personali e al vostro potere di acquisto. Questo perché su tutti questi prodotti c'è un mercato ricco di alternative, di aziende in libera concorrenza tra di loro. Allora perché ci viene negata la libertà di scelta sul sistema operativo o sulle suite office da utilizzare sul nostro computer? Andate in un mercatone qualsiasi e cercate di comprare un notebook o computer che NON abbia preinstallato Microsoft Windows. Ancora peggio: provate a rifiutare il pagamento del costo dello stesso Windows sul totale del costo del computer, perché non lo volete. Magari a casa avete una confezione retail di Windows che vorreste usare, oppure desiderate installare Linux, perché pagare? Vi scontrerete contro un muro di gomma, non ci sarà verso, se volete il notebook vi toccherà pagare anche Windows (e non è vero che è regalato col computer come qualcuno dice o crede). Eppure quando comprate un'auto pagate solo l'auto, nessuno vi impone di fare benzina dall'agip piuttosto che alla Q8. Quando comprate un'impianto HiFi avete la libertà di sintonizzarlo sulla stazione radio che vi pare. Soprattutto in un mercato libero, un'azienda che commercializza prodotti scadenti sarebbe costretta a migliorare oppure fallirebbe, perché la gente comprerebbe i prodotti migliori della concorrenza. Questo non capita a Microsoft. perché essa è riuscita a stabilire una posizione di monopolio attuando per anni politiche atte a spezzare le gambe di chiunque si mettesse in mezzo al suo cammino, aiutata dalla potenza del denaro guadagnato da quelli che sono stati i suoi iniziali successi commerciali. Il protrarsi di questa situazione ha portato Microsoft ad acquisire sempre maggiore ricchezza e potere. Da diversi anni ha il potere di imporre a chiunque voglia acquistare un computer di comprare assieme ad esso una copia di Windows, questo indifferentemente se l'acquirente lo vuole o no. Vi sembra giusto che un'azienda si arricchisca attraverso i soldi di utenti che NON desiderano usare i suoi prodotti? Ma quello che è peggio è che ormai la mancanza di alternative poste sotto gli occhi delle persone ha instaurato una situazione culturale tale per cui la maggioranza delle stesse considera il PC e Windows come 2 cose inseparabili. Tanti non sanno che esistono altri Sistemi Operativi alternativi magari anche migliori di Windows. Ad esempio ogni tanto capita in negozio qualche cliente che viene a fare domande e quando gli si chiede: Ma lei che computer ha? Ci si aspetterebbe una risposta tipo Acer modello..., HP modello... invece a volte si ottiene la triste risposta: Un computer Windows XP o Windows 98 o Windows quello che è.... Questo non fa altro che rafforzare la capacità di Microsoft di mantenere il monopolio sul mercato. Pag.11 di 65

12 Cos'è uno standard: Uno standard, in ambito informatico, ma anche nelle telecomunicazioni, nei sistemi di misura, nell'ingegneria in genere, rappresenta una base di riferimento, un paradigma codificato per la produzione di tecnologie fra loro compatibili, che siano computer, reti di computer o componenti elettronici. Diversi enti a livello internazionale come l'iso (International Organization for Standardization) e l'ieee (Institute of Electrical and Electronics Engineers) propongono, concordano e ratificano gli standard nei diversi ambiti. Prima di essere considerato tale dalla comunità internazionale, ed essere preso a buon diritto come modello di riferimento, uno standard passa attraverso una serie di fasi di analisi e accreditamento: L'analisi delle esigenze dell'utenza da parte delle università e dei settori che si occupano di ricerca e sviluppo per le varie aziende produttrici, dà luogo alla ricerca di soluzioni per i problemi e le necessità eventualmente riscontrate. Quando possibile, delle specifiche tecniche vengono emesse sotto forma di descrizioni documentate estremamente dettagliate. Il testing e l'utilizzo di tali specifiche da parte della comunità internazionale dei produttori e dei laboratori di ricerca evidenzia le soluzioni migliori. A questo gli enti internazionali possono cominciare a scegliere cosa scartare e cosa mantenere dei vari contributi, producendo l'insieme delle specifiche finali. Le specifiche finali vengono accreditate come standard internazionale da un ente scientifico. Il risultato è un documento che descrive il modello cui le ditte di settore dovranno attenersi, pena l'incompatibilità dei loro prodotti tecnologici. Standard veri e standard falsi: Nel mondo, ogni giorno nascono molteplici formati di file. I software di elaborazione dati spesso utilizzano un proprio formato per gestire i file. Se questi software riceveranno una larga diffusione, allora potranno vantare anche un'elevata "compatibilità". Molte persone saranno in grado di leggere, modificare e scambiare dati fra loro usando uno specifico software. Un formato, tipico di un determinato software, se usato da una stragrande maggioranza delle persone, viene considerato erroneamente uno standard. In uno scenario come quello descritto sopra, voi non potrete scambiare informazioni con le minoranze che non usano il vostro stesso software. Un file, o più specificatamente un formato è compatibile con ogni sistema informatico, quando i dettagli di funzionamento sono pubblici, ma soprattutto accettati, ad esempio, da un consorzio di standardizzazione come la ISO. Basta un pò di tempo e di impegno per realizzare un nuovo formato ed implementarlo in un software, ma creare uno standard è ben altra cosa. Ogni giorno però gli standard, ma soprattutto coloro che ci lavorano, si trovano a combattere contro una larga schiera di persone ignoranti che continuano ad usare quei formati proprietari che si trovano di default nei loro sistemi informatici casalinghi. Anche da parte di alcuni colossi del settore, come la Microsoft, è possibile aspettarsi un mancanza di coerenza rispetto determinati standard. Spesso a causa di superficialità e/o di profondi interessi economici i formati proprietari vengono preferiti agli standard. Uno degli aspetti più pericolosi rappresentato dalla società statunitense Microsoft è la forte attrazione a raggiungere e conservare una posizione dominante di mercato, imponendo monopoli spesso difficili da percepire. Pag.12 di 65

13 Facciamo un esempio: recentemente mi è capitato di dover scaricare il dettaglio delle chiamate effettuate con il mio telefono mobile Wind. I dati erano stati memorizzati in un un foglio di calcolo in formato xls e per poterlo visualizzare e modificare avevo bisogno di un software proprietario. Anche questa volta non era stato usato uno standard ed io mi sentivo discriminato. Ho contattato quindi l'assistenza della Wind ed ho atteso. Il giorno dopo mi ha chiamato un'operatrice. Le ho chiesto come pensava che io dovessi aprire quel documento e lei si è stupita del fatto che non usavo il software proprietario Excel, prodotto da Microsoft ed integrato nella suite MS Office, che tra l'altro, mi ha precisato, essere presente spesso in tutti i computer venduti nei mega store italiani. Tralasciando questo notevole punto che conferma l'aspetto monopolistico della Microsoft in ambito informatico, le ho detto di non aver acquistato una licenza d'uso per il suddetto software e di voler accedere ai miei dati usando una modalità standard, o per meglio dire, un formato standard, cioè compatibile con ogni software e hardware che io preferisco, e non che mi sia imposto da loro, favorendo in questo modo la distribuzione di qualche particolare software proprietario. Tutta questa mia spaventosa richiesta, in realtà si riassume con il formato ods (OpenDocument Speadsheet). In generale il formato OpenDocument nasce per fornire una alternativa "aperta" ai formati proprietari, tra cui i DOC, XLS e PPT usati da Microsoft Office. Utilizzando formati standard si permette agli utenti di accedere a determinati dati/documenti da qualsiasi sistema operativo e con qualsiasi software predisposto alla lettura di quel determinato tipo di dati. Se non esistesse un software specifico per una determinata piattaforma si avrebbe in mano tutta la documentazione necessaria ad implementarne uno. Anche a distanza di anni, ipotizzando che un determinato programma sia caduto in disuso, si avrebbe ancora la documentazione necessaria per leggere i vecchi dati. Se il formato dei documenti di WordStar fosse stato standard i governi e le grosse compagnie avrebbero avuto modo di implementare qualcosa in grado di permettergli di continuare a leggere i vecchi documenti, che non sarebbero andati persi per sempre, creando un danno economico molto più ampio di quello necessario a pagare un gruppetto di programmatori che implementassero questo lettore. OpenOffice è una suite office gratuita e Open Source che produce file in formato OpenDocument. OpenOffice è disponibile per tutti i sistemi operativi (Windows, Linux, Mac, etc). E non solo per Windows! Pag.13 di 65

14 Cos'è l'open Source, come è nato e come funziona la licenza GPL: La condivisione del codice fino agli anni Settanta: A partire dagli anni Cinquanta, e soprattutto negli anni Sessanta, è stato possibile riusare lo stesso codice e distribuirlo anche se in modo oggi ritenuto piuttosto artigianale, ovvero con nastri e schede perforate. Questo fenomeno diventò evidente soprattutto quando si affermò il vantaggio di riusare una stessa porzione di codice, il che presupponeva di avere macchine uguali e problemi simili. Fino a tutti gli anni Settanta, anche se in misura decrescente, la componente principale e costosa di un computer era l'hardware, il quale era comunque inutile in assenza di software. Da ciò la scelta dei produttori di hardware di vendere il loro prodotto accompagnato da più software possibile e di facilitarne la diffusione, fenomeno che rendeva più utili le loro macchine e dunque più concorrenziali. Il software, tra l'altro, non poteva avvantaggiare la concorrenza in quanto funzionava solo su un preciso tipo di computer e non su altri, neanche dello stesso produttore. L'introduzione dei sistemi operativi rese i programmi sempre più portabili, in quanto lo stesso sistema operativo veniva offerto dal produttore per diversi modelli di hardware. La presenza di sistemi operativi funzionanti per macchine di differenti produttori hardware ampliava ulteriormente le possibilità di usare lo stesso codice in modo relativamente indipendente dall'hardware usato. Uno di questi sistemi operativi era UNIX, nato nel 1969 come progetto all'interno di un'impresa delle telecomunicazioni, la AT&T. Una famosa causa antitrust contro la AT&T le vietò di entrare nel settore dell'informatica. Questo fece sì che UNIX venisse distribuito ad un prezzo simbolico a buona parte delle istituzioni universitarie, le quali si ritrovarono ad avere una piattaforma comune, ma senza alcun supporto da parte del produttore. Si creò spontaneamente una rete di collaborazioni attorno al codice di questo sistema operativo, coordinata dall'università di Berkeley, da dove sarebbe poi uscita la versione BSD di UNIX, che diventa da un lato un centro di sviluppo ed innovazione, dall'altro è la base di partenza per numerosi fork. La nascita del software proprietario: Considerato che la condivisione del codice è nata insieme all'informatica, piuttosto che di origini dell'open Source potrebbe essere più appropriato parlare invece di origine del software proprietario, ed esaminare il contesto storico in cui questa origine ha avuto luogo. L'utilità principale delle licenze restrittive consiste nella possibilità di rivendere un programma più volte, se necessario con alcune modifiche purché non rilevanti. Questo presuppone che esistano clienti diversi con esigenze simili, oltre che l'esistenza di più computer sul quale poter far eseguire il programma. Queste condizioni cominciano a determinarsi negli anni sessanta, grazie al fatto che esistevano un maggior numero di utilizzatori con esigenze standardizzabili come lo erano quelle delle organizzazioni economiche nell'area della contabilità, la logistica o delle statistiche. L'introduzione dei sistemi operativi rese inoltre possibile l'utilizzo dello stesso programma anche su hardware differente aumentando così le possibilità di riutilizzo dello stesso codice e dunque l'utilità nell'impedire la duplicazione non autorizzata dei programmi. La suddivisione della AT&T in 26 società, permise alla AT&T di usare logiche prettamente commerciali nella distribuzione del suo sistema operativo UNIX, innalzando notevolmente i costi delle licenze e impedendo che potesse essere modificato. Pag.14 di 65

15 Il 1982 fu anche l'anno della divisione delle diverse versioni commerciali di UNIX, portate avanti dai singoli produttori di hardware. Questi ultimi, effettuando delle piccole modifiche alla propria versione del sistema operativo, impedirono ai propri utenti l'utilizzo di altri sistemi, facendo in modo che i programmi scritti per la propria versione di UNIX non funzionassero su versioni concorrenti. Anche Microsoft creò un suo sistema UNIX, che in pochi ricorderanno, morto poco tempo dopo a favore di Windows: Microsoft XENIX Gli anni Ottanta: Stallman, la Free Software Foundation e l'innovazione dei PC: Al MIT la sostituzione dei computer fece sì che i programmatori (fra i quali Richard Stallman che sarebbe diventato il portabandiera del free software) non potessero accedere al sorgente del nuovo driver di una stampante Xerox per implementarvi una funzionalità gradita in passato: la segnalazione automatica che vi erano problemi con la carta inceppata. Contemporaneamente, società private cominciarono ad assumere diversi programmatori del MIT e si diffuse la pratica di non rendere disponibili i sorgenti dei programmi firmando accordi di non divulgazione (in inglese: NDA, ovvero Non Disclosure Agreement). In questo contesto Stallman si rifiutò di lavorare per una società privata e fondò nel 1985 la Free Software Foundation (FSF), un'organizzazione senza fini di lucro per lo sviluppo e la distribuzione di software libero. In particolare lo sviluppo di un sistema operativo completo, compatibile con UNIX, ma distribuito con una licenza permissiva, con tutti gli strumenti necessari altrettanto liberi. Si tratta del progetto GNU. GNU è un acronimo ricorsivo che significa GNU Non è Unix. L'obiettivo principale di GNU era essere software libero. Anche se GNU non avesse avuto alcun vantaggio tecnico su UNIX, sarebbe comunque stato un vantaggio sociale, permettendo agli utenti di cooperare, e un vantaggio etico rispettando la loro libertà. Tale progetto, finanziato dalla FSF, venne pertanto prodotto da programmatori appositamente stipendiati. I principali contributi vennero da Stallman stesso: il compilatore gcc e l'editor di testo Emacs. Furono sviluppate anche altre componenti di sistema UNIX. Questi programmi furono distribuiti per circa 150$ che oltre a coprire i costi di riproduzione garantivano un servizio di supporto al cliente. L'unica condizione era che tutte le modifiche eventualmente effettuate su tali programmi venissero notificate agli sviluppatori. Nacque così la GNU General Public License (GPL), il preambolo del cui manifesto comincia con: Le licenze per la maggioranza dei programmi hanno lo scopo di togliere all'utente la libertà di condividerlo e di modificarlo. Al contrario, la GPL è intesa a garantire la libertà di condividere e modificare il free software, al fine di assicurare che i programmi siano "liberi" per tutti i loro utenti. Pag.15 di 65

16 Gli anni Novanta: Internet, Linux e la Open Source Definition: Benché Internet avesse visto la luce già negli anni '70 è soltanto agli inizi degli anni '90, con la diffusione del protocollo HTTP e la nascita dei primi browser, che Internet cominciò ad essere diffusa, prima in ambito accademico e poi in modo sempre più capillare anche tra semplici privati. All'inizio degli anni Novanta, il progetto GNU non aveva ancora raggiunto il suo obiettivo principale, mancando di completare il kernel del suo sistema operativo (HURD): vi erano tutti i programmi necessari a far funzionare un sistema operativo ma non la parte più importante, ossia il kernel, il sistema operativo vero e proprio! Per sopperire a tale mancanza William e Lynne Jolitz riuscirono ad effettuare il porting di UNIX BSD su piattaforma Intel 386 nel Purtoppo negli anni successivi tale porting si trovò ad affrontare problemi di natura legale che ne ritardarono temporaneamente lo sviluppo. Nello stesso anno (1991), l'insoddisfazione riguardante alcuni applicativi di Minix (sistema operativo unix-like destinato alla didattica, scritto da Andrew Tanenbaum, professore ordinario di Sistemi di Rete all'università di Amsterdam), il desiderio di approfondire le proprie conoscenze sul processore Intel 386 a 32bit (a quell'epoca molto economico e popolare) e l'entusiasmo per le caratteristiche tecniche di UNIX stimolarono Linus Torvalds, studente al secondo anno di informatica presso l'università di Helsinki, a sviluppare un proprio sistema operativo, imitando le funzionalità di UNIX, su un PC appunto con processore Intel Nacque così il primo kernel linux. Nella foto Linus Torvalds creatore di Linux. Pag.16 di 65

17 Torvalds distribuì il proprio lavoro tramite Internet e ricevette immediatamente un ampio riscontro positivo da parte di altri programmatori, i quali apportarono nuove funzionalità e contribuirono a correggere gli errori riscontrati. Nacque così il kernel Linux, il quale fu distribuito fin da subito con la licenza GPL creata anni prima da Stallman. L'unione tra il kernel Linux e il software GNU sviluppato dalla FSF permise finalmente la nascita di un sistema operativo completo ed indipendente. Per questo motivo le persone più puntigliose amano definirlo GNU/Linux e non solo Linux. Linux all'inizio era un semplice emulatore di terminale scritto in C e assembly, senza doversi appoggiare ad un sistema operativo. L'emulatore di terminale avviava e gestiva due thread, uno per mandare segnali alla porta seriale e uno per riceverli; quando poi Linus ebbe bisogno di leggere e scrivere file su disco, questo emulatore fu esteso in modo che potesse gestire un filesystem. Lentamente questo programma si trasformò in un intero kernel in grado di gestire un sistema operativo e Linus iniziò a documentarsi sulle specifiche POSIX, chiedendo assistenza sul newsgroup comp.os.minix. La prima versione del kernel Linux, la 0.01, fu pubblicata su Internet il 17 Settembre 1991 e la seconda nell'ottobre dello stesso anno. Internet dal canto suo, rese possibile la comunicazione tra persone molto distanti in tempi rapidi e a basso costo. Inoltre rese possibile la distribuzione di software direttamente dalla rete, riducendo ulteriormente i costi di duplicazione e le difficoltà a reperire il software stesso. La diffusione dei CD-Rom come supporto privilegiato di raccolte di software, rese possibile il fenomeno delle cosiddette distribuzioni. Linux può essere considerato come il primo vero progetto "Open Source" che faceva affidamento essenzialmente sulla collaborazione via internet per progredire; fino ad allora, anche i progetti di software GNU come Emacs erano stati sviluppati in maniera centralizzata seguendo una linea guida prestabilita da un ristretto numero di persone, in base ai principi standard di ingegneria del software. Agli inizi degli anni Novanta, l'idea delle licenze liberali era rappresentata soprattutto da Richard Stallman e dala sua FSF, ovvero le licenze liberali per eccellenza erano la GPL e la LGPL che però venivano ritenute "contagiose", in quanto a partire da un codice licenziato con la GPL qualsiasi ulteriore modifica doveva avere la stessa licenza. Le idee stesse di Stallman venivano viste con sospetto dall'ambiente commerciale statunitense, il che non facilitava la diffusione del software libero. Per favorire dunque l'idea delle licenze liberali nel mondo degli affari, Bruce Perens, Eric S. Raymond, Ockman e altri cominciarono nel 1997 a pensare di creare una sorta di lobby a favore di una ridefinizione ideologica del software libero, evidenziando cioè i vantaggi pratici per le aziende e coniarono il termine "Open Source". Ciò anche al fine di evitare l'equivoco dovuto al doppio significato di free nella lingua inglese, visto che spesso veniva interpretato come "gratuito" invece che come "libero". La scelta a favore dell'open Source da parte di alcune importanti imprese del settore come la Netscape, l'ibm, la Sun Microsystems, l'hp e tante altre negli anni successivi, facilitarono inoltre l'accettazione del movimento Open Source presso l'industria del software, facendo uscire l'idea della "condivisione del codice" dalla cerchia ristretta nella quale era rimasta relegata fino ad allora. Venne cioè accettata l'idea che l'open Source fosse una metodologia di produzione software efficace. Pag.17 di 65

18 Riassumendo Il software Open Source viene distribuito assieme al proprio codice sorgente e chiunque desideri farlo può studiarlo, modificarlo e migliorarlo a proprio piacimento. La licenza GPL con cui viene distribuito impone che qualunque modifica venga apportata al codice sorgente sia resa pubblica così che tutti possano goderne. Sebbene la maggior parte dei software Open Source oggi in circolazioni siano gratuiti la licenza GPL non impone a nessuno di lavorare gratis. Uno sviluppatore può chiedere un compenso per lavorare su parti di codice Open Source, ma non può nascondere i sorgenti agli occhi di chiunque voglia visionare/modificare il lavoro che ha svolto. Vantaggi/svantaggi tecnici, economici e sociali del modello Open Source: Vantaggi: Tecnicamente parlando: Potendo attingere da un vastissimo bacino di codice sorgente scritto da altri non c'è bisogno di reinventare 1000 volte la ruota, quando qualcosa è già stato fatto si può riusarlo, eventualmente aggiungendo solo le cose che mancano. In questo modo uno sviluppatore può concentrarsi sulla pura innovazione, creando solo cose nuove. Rendendo pubblici i sorgenti si ha la possibilità di ottenere suggerimenti, aiuti, contributi sotto forma di codice e correzione di errori da chiunque si interessi alla visione e all'uso di questo codice sorgente. Il mezzo utilizzato per la comunicazione tra gli sviluppatori che si interessano ad un certo progetto software è pubblico, quindi anche persone incapaci di programmare possono dare un contributo utile segnalando difetti (bug), esponendo la loro idea su come vorrebbero modificare qualcosa o richiedendo nuove funzioni, testando un certo programma in determinate condizioni e riferendo gli esiti. Ma anche scrivendo semplicemente traduzioni linguistiche dell'interfaccia del programma o della sua documentazione o disegnando (se capaci) parti grafiche come loghi, icone, etc. In questo modo si va a creare attorno a un progetto una forza lavoro notevole o meglio, se il progetto cattura l'attenzione della comunità si potrebbero avere decine, centinaia o migliaia di menti che scrivono codice, effettuano test e bugfix volontariamente. Commercialmente parlando: Partiamo dal presupposto che oggi il mercato dell'informatica è predominato da giganti dal passato il cui potere economico è di una vastità impressionante. Nessuna azienda o programmatore, per quanto brillante, oggi riuscirebbe mai ad emergere o a farsi notare in un mercato del genere dove i soliti nomi noti appaiono sui giornali e sulla TV tutti i giorni. Se mai una piccola ditta cominciasse a produrre qualcosa di innovativo, singolare e competitivo, immediatamente catturerebbe l'attenzione di questi giganti, che con ogni probabilità avranno tutto l'interesse ad acquisire questa piccola ditta per possedere la sua innovazione prima di altri. O a schiacciarla direttamente perché scomoda. Quindi oggi è sostanzialmente impossibile riuscire ad avviare un'attività che vive solo sugli introiti prodotti dalla vendita di software Closed. Considerando che tolti i giganti restano solo le formiche: Si può vivere e guadagnare benissimo con l'open Source, basando i propri introiti non sulla vendita di una scatola con dentro un CD ma sul valore aggiunto del proprio lavoro. Un'azienda che nasce e sposa l'open Source vivrà vendendo la propria mano d'opera e la propria esperienza e competenza nel settore informatico, fornendo ai propri clienti soluzioni software confezionate su misura e mano d'opera specializzata per effettuare l'installazione e l'assistenza software, comprendendo anche eventuali personalizzazioni su programmi. E' così che sono nate e vivono diverse aziende che producono soluzioni basate su Linux, le così dette distribuzioni che non sono altro che sistemi operativi basati su Linux (totalmente standard e compatibili con altri Linux) aggiunti di piccole personalizzazioni grafiche, tools di amministrazione e configurazione Pag.18 di 65

19 che spesso sono unici e specifici per ogni diversa distribuzione. Tra queste ditte ce ne sono anche di molto grandi e ricche (a dimostrazione che l'open Source può essere un business valido) tra cui menziono: RedHat (produttrice di RedHat Enterprise Linux) Novell (produttrice di opensuse, SuSE Linux Enterprise Desktop e Server) Mandriva (produttrice di Mandriva Linux) Canonical (produttrice di Ubuntu Linux) Tante altre... Ma non solo grosse società che producono distribuzioni Linux possono vivere bene. Anche piccole ditte, artigiani e liberi professionisti possono trarre vantaggio da questo mondo. Tutte le distribuzioni Linux sono liberamente scaricabili da internet, ovviamente chi le scarica gratuitamente (al contrario di chi fa un contratto di assistenza pagando) non ottiene nessun supporto tecnico da parte del produttore e deve quindi arrangiarsi, ma se è in grado di arrangiarsi, viene da se che, avrà in mano uno strumento potentissimo e soprattutto libero e gratuito. Anche chi sviluppa software può godere della comunità che sta dietro a Linux: immaginiamo voi abbiate una piccola ditta che sviluppa un software gestionale Open Source, il vostro guadagno non verrà dalla vendita del software (nemmeno se fosse closed) ma bensì dalla vendita dell'assistenza presso i vostri clienti, e la vendita della vostra mano d'opera per modificare o adattare lo stesso programma alle specifiche esigenze del cliente. Non avrete nessun danno se qualcuno a 100 chilometri o dall'altra parte del mondo ha preso il vostro programma e sta facendo con esso il vostro stesso lavoro, tanto il vostro campo d'azione non arriva così lontano. Al contrario, trarrete un vantaggio da ciò, perché se le altre persone che hanno adottato il vostro software apporteranno modifiche e miglioramenti interessanti al codice sorgente voi ne verrete in possesso gratuitamente per la natura stessa della licenza GPL. Ma ingrandiamo lo scenario, facciamo finta che voi siate una ditta molto più grande, con una copertura internazionale come RedHat o Novell, in ogni modo il fatto che i vostri concorrenti possano mettere mano al vostro codice sorgente non vi disturberà in quanto prima di tutto loro vedono il vostro codice come voi potete vedere il loro, in secondo luogo i clienti sono fidelizzati a voi, ai vostri servizi e alla vostra capacità tecnica. Al cliente non importa niente se il software che gli vendete è liberamente scaricabile da internet, il cliente da solo non è in grado e non ha le risorse umane o tecniche per fare a meno di voi. Un'industria automobilistica vuole pensare a produrre auto e non a gestire la propria rete e i propri server, per questo assume delle aziende specializzate. Inoltre non è nemmeno una cosa semplicissima migrare un'intera rete da una distribuzione ad un'altra. Una ditta ha bisogno di stabilità e quando le cose vanno è insensato e costoso cambiarle. Socialmente parlando: Molti dei vantaggi sociali dell'open Source li ho già elencati come vantaggi tecnici e commerciali, si può aggiungere che l'open Source è una grande cosa perché è la pura condivisione del sapere. Chiunque lo desideri può studiare ed imparare il funzionamento di qualsiasi software, contribuendo al suo progresso. L'Open Source è immortale: ad oggi si stima che siano oltre 30 milioni le persone che contribuiscono alla sua crescita (nemmeno Microsoft con il suo immenso patrimonio potrebbe mai stipendiare così tante persone), singoli individui, piccoli gruppi e gruppi più grandi finanziati o indipendenti, università, aziende piccole, medie e grandi, ricercatori, etc contribuiscono ogni giorno al suo progresso. Nessuno, nemmeno Microsoft può mettere fine a questo movimento perché è troppo grande e non è centralizzato, non c'è nessuno da assorbire o fare fallire, se anche Microsoft fermasse una singola azienda o un gruppo di sviluppatori che produce un software molto apprezzato dagli utenti Pag.19 di 65

20 (quindi scomodo), tutto il codice prodotto rimarrebbe a disposizione della comunità e ci sarebbe subito qualcuno in un'altra parte del pianeta che ne prenderebbe le redini proseguendo il lavoro abbandonato da altri. Inoltre sono anni che giganti come IBM, Novell, SUN, e tanti altri, si interessano al fenomeno, finanziando ricerca e sviluppo di altissimo livello su Linux, in quanto è molto più conveniente che svilupparsi da soli il proprio sistema operativo. Tenete conto che TUTTI i più grandi super-computer attualmente in funzione usano Linux, super-computer al servizio della scienza medica, della ricerca tecnologica, astronomica, chimica, fisica. Ma anche i super-computer utilizzati per creare i film di animazione che vanno tanto al cinema di questi tempi. Campi applicativi di Linux: Aderendo perfettamente agli standard POSIX (standard che definiscono come deve essere strutturato un sistema UNIX) ed essendo liberamente modificabile da chiunque, il sistema Linux ha maturato una enorme versatilità. Praticamente può essere modificato ed adattato per funzionare su qualsiasi dispositivo che abbia una qualsiasi specie di CPU a 32bit all'interno. Si può trovare Linux non solo su normali PC da casa e da ufficio, ma anche su Server, o super-computer. Su telefoni cellulari, console da gioco (GP2x, Playstation 2 e 3), piccoli apparati di rete come router, riproduttori multimediali da salotto, lettori DVD/Divx, decoder satellitari. E' stato usato sullo shuttle, in satelliti artificiali per telecomunicazioni e anche in sonde spedite nelle profondità dello spazio. E' stato usato su speciali equipaggiamenti medici robotizzati capaci di effettuare operazioni chirurgiche delicatissime. E' anche usato nell'automazione dell'industria pesante. Altri sistemi Open Source: Open/Net/Free/BSD: Sono implementazioni di UNIX esattamente come Linux, con esso condividono la quasi totalità delle librerie e dei software GNU, ma hanno un kernel totalmente differente, BSD appunto. La comunità che c'è dietro è molto più piccola di quella Linux in quanto la licenza con la quale viene distribuito questo kernel è considerata da molti assurda ed inaccettabile. La licenza si chiama come il sistema BSD. La licenza BSD è troppo liberale, più liberale della GPL, consente a chiunque di prendere il codice sorgente, modificarlo in privato, di cambiare nome al programma e di venderlo come prodotto Closed Source, senza rendere nulla alla comunità, senza obbligo nemmeno di riconoscere la paternità del prodotto ai veri sviluppatori. Cioè io potrei essere la Apple e potrei prendere BSD, farne il porting per il mio hardware, approfittare della mano d'opera gratuita della comunità che sviluppa e migliora il codice. Quando il grosso del lavoro è stato fatto dalla comunità e quello che ne sta uscendo mi soddisfa potrei chiudere completamente il codice continuando a sviluppare in privato, chiamarlo Mac OSX e venderlo come mio nuovo rivoluzionario sistema operativo, Closed Source. Senza rendere una sola riga di codice alla comunità e senza dire ai miei clienti che il sistema non è frutto del mio sacco se non per la parte grafica, ma che è frutto del lavoro di una comunità Open Source. Questo è vero, Mac OSX ha alla base BSD, ma Apple loda se stessa per aver creato qualcosa che non è suo. Con la licenza GPL un abuso simile non sarebbe possibile, per questo molti sostenitori dell'open Source non approvano la licenza BSD. Pag.20 di 65

21 Perché Linux e l'open Source sono un pericolo per Microsoft: Microsoft ha sempre basato il suo business sulla vendita di licenze software, facendosi pagare profumatamente per ogni copia del suo Windows, di Office e di tutti gli altri suoi prodotti. Non ha mai erogato servizi. Gli utenti comprano la scatola, pagano, e si arrangiano. Chi volesse assistenza deve pagare a Microsoft contratti aggiuntivi, inoltre l'assistenza non prevede assolutamente che qualche particolare dei software venga modificato su specifiche necessità dell'utente. Attorno a questo business sono nate tantissime aziende che offrono supporto su prodotti Microsoft; immaginiamo semplicemente i tecnici che si fanno pagare per riformattare e reinstallare il vostro PC quando Windows si riempe di virus e non va più. Solo che questi non sono soldi che vanno a Microsoft, ma alle ditte private che fanno assistenza. Per Microsoft sarebbe impossibile passare al modello open. Inoltre gli è impossibile sopprimere Linux, come si è detto in precedenza, non c'è nessuno in particolare da far fallire, da comprare o da corrompere. L'Open Source è l'unica cosa che riesca ad intaccare il suo monopolio. Per queste ragioni Microsoft teme molto questo nemico impalpabile, e cerca di attaccarlo, di minacciare i suoi utenti e la comunità ogni volta che ne ha occasione. In passato Steve Ballmer (braccio destro di Bill Gates) arrivò a dichiarare che Linux era un cancro che infettava qualsiasi cosa toccasse, riferendosi alla natura della licenza GPL come Virale. Dicendo anche che preferiva BSD (ovviamente perché BSD permette di copiare codice a sbaffo, per esempio lo stack tcp/ip fino a Windows 2000 era pessimo, poi su XP venne copiato quello di BSD con un netto miglioramento). Il problema di questi continui attacchi verbali contro Linux è che si ritorcevano contro Microsoft stessa, quegli utenti (grandi aziende, enti e governi) che erano indecisi se passare a Linux o restare con Windows, di fronte a tanta arroganza decidevano il più delle volte per Linux. Allora Microsoft cominciò ad effettuare attacchi trasversali, senza esporsi direttamente. Uno dei più eclatanti fu quello del caso SCO: SCO era una società che in un passato remoto commercializzava un sistema UNIX (SCO UNIX) e da anni distribuiva una sua distribuzione Linux (SCO openlinux). SCO un bel giorno se ne uscì dicendo al mondo intero che gli sviluppatori Linux avevano copiato spudoratamente buona parte del codice di SCO UNIX, codice che era di sua proprietà e di cui deteneva il copyright. Minacciando l'intera comunità di ritorsioni legali e avviando una causa legale contro IBM che riteneva una delle maggiori responsabili del riversamento in Linux della sua proprietà. Anche IBM in passato possedeva una sua versione di UNIX (AIX). Anni prima di questa vicenda IBM aprì alla comunità Linux diverse tecnologie contenute in AIX. Lo scopo di IBM era quello di abbandonare lo sviluppo interno di AIX per passare a Linux, per farlo però bisognava prima che su Linux fossero presenti determinate tecnologie necessarie per far funzionare i suoi mainframe. SCO disse che il codice di AIX regalato alla comunità era copiato da SCO UNIX. La causa legale durò 4 anni e portò SCO a spendere il suo intero capitale in avvocati. Si scoprì che dietro tutto questo c'era un'anonimo finanziatore che erogava soldi per permettere a SCO di non andare a fondo, continuando ad alzare polveroni ovunque, minacciando chiunque, accusando Linux e la sua comunità di cose completamente infondate. SCO poi si rifiutava continuamente di fornire prove a sostegno delle sue accuse contribuendo a mantenere un'aria di incertezza tra gli utenti che in una certa percentuale evitavano Linux per paura di ritorsioni future. Si scoprì che con buona probabilità i finanziamenti provenissero da Microsoft. Pag.21 di 65

22 Questo modo di fare viene chiamato FUD: Fear, Uncertainty and Doubt "paura, incertezza e dubbio" si intende una strategia di marketing basata sul diffondere informazioni negative, vaghe o inaccurate sul prodotto di un concorrente, tali da creare un clima che scoraggi l'acquirente/consumatore. Inutile dire che le accuse di SCO erano totalmente infondate, portando SCO a coprirsi di ridicolo perché dopo anni che gli si chiedeva di mostrare quali fossero queste parti di codice copiato dal suo SCO UNIX arrivò a mostrare poche centinaia di righe che erano formate solo da commenti o insignificanti parti di codice storico, che erano riportate su tantissimi libri universitari come esempi di programmazione POSIX a partire dagli anni 70. Quindi di dominio pubblico. SCO attualmente è sotto regime di bancarotta pilotata. Pag.22 di 65

23 Come funziona Windows Come funziona Linux Cos'è e come funziona un Kernel: Introduzione L'accesso diretto all'hardware può essere anche molto complesso, quindi i kernel usualmente implementano uno o più tipi di astrazione dell'hardware. Queste astrazioni servono a "nascondere" la complessità e a fornire un'interfaccia pulita ed uniforme all'hardware sottostante, in modo da semplificare il lavoro degli sviluppatori. I kernel si possono classificare, in base al grado di astrazione dell'hardware, in quattro categorie: Kernel monolitici, che implementano direttamente una completa astrazione dell'hardware sottostante. Microkernel, che forniscono un insieme ristretto e semplice di astrazione dell'hardware e usano software (chiamati device driver o server) per fornire maggiori funzionalità. Kernel ibridi (o microkernel modificati), che si differenziano dai microkernel puri per l'implementazione di alcune funzioni aggiuntive al fine di incrementare le prestazioni. Kernel Monolitici L'approccio monolitico definisce un'interfaccia virtuale di alto livello sull'hardware, con un set di primitive o chiamate di sistema per implementare servizi di sistema operativo come gestione dei processi, multitasking e gestione della memoria, in diversi moduli che girano in modalità supervisore. Anche se ogni modulo che serve queste operazioni è separato dal resto, l'integrazione del codice è molto stretta, siccome tutti i moduli operano nello stesso spazio, un bug in uno di essi può bloccare l'intero sistema. Tuttavia, quando l'implementazione è completa e sicura, la stretta integrazione interna dei componenti rende un buon kernel monolitico estremamente efficiente. Il più grosso svantaggio dei kernel monolitici è l'possibilità di aggiungere un nuovo dispositivo hardware senza aggiungere il relativo modulo al kernel, operazione che richiede la ricompilazione del kernel. In alternativa è possibile compilare un kernel con tutti i moduli di supporto all'hardware, ingigantendo però le sue dimensioni. Tuttavia i kernel monolitici più moderni come il Kernel Linux e FreeBSD possono caricare dei moduli in fase di esecuzione, a patto che questi fossero previsti in fase di compilazione, permettendo così l'estensione del kernel quando richiesto, mantenendo al contempo le dimensioni del codice nello spazio del kernel al minimo indispensabile. Esempi di kernel monolitici: I tradizionali kernel UNIX, quali ad esempio i kernel BSD. Il kernel Linux Kernel di ricerca come Agnix Pag.23 di 65

24 L'approccio microkernel consiste nel definire delle macchine virtuali molto semplici sopra l'hardware, con un set di primitive o chiamate di sistema per implementare servizi minimali del sistema operativo quali gestione dei thread, spazi di indirizzamento o comunicazione interprocesso. Microkernel L'obiettivo principale è la separazione delle implementazioni dei servizi di base dalle strutture operative del sistema. Per esempio, il processo di blocco (locking) dell'input/output può essere implementato come modulo server a livello utente. Questi moduli a livello utente, usati per fornire servizi di alto livello al sistema, sono modulari e semplificano la struttura e la progettazione del kernel. Un servizio server che smette di funzionare non provoca il blocco dell'intero sistema, e può essere riavviato indipendentemente dal resto. Esempi di microkernel e Sistemi operativi basati su microkernel: AIX Amoeba BeOS Chorus microkernel EROS K42 LSE/OS (a nanokernel) KeyKOS (a nanokernel) The L4 microkernel family Mach, utilizzato in Hurd e NON in Mac OS X, che contrariamente a quando si crede usa XNU, che è un kernel ibrido modulare nato dall'unione di Mach e del kernel FreeBSD MERT Minix MorphOS QNX RadiOS Spring operating system VSTa Pag.24 di 65

25 Kernel ibridi (microkernel modificati) I kernel ibridi sono essenzialmente dei microkernel che hanno del codice "non essenziale" al livello di spazio del kernel in modo che questo codice possa girare più rapidamente che se fosse implementato ad alto livello. Questo fu un compromesso adottato da molti sviluppatori di sistemi operativi per sopperire in parte alle minori prestazioni dei microkernel rispetto ai kernel monolitici. Molti sistemi operativi moderni rientrano in questa categoria: Microsoft Windows è l'esempio più noto. Anche XNU, il kernel di Mac OSX, è di fatto un microkernel modificato, per via dell'inclusione di codice BSD in un kernel basato su Mach. DragonFly BSD è stato il primo sistema BSD non basato su Mach ad adottare l'architettura a kernel ibrido. Alcune persone confondono il termine "kernel ibrido" con i kernel monolitici che possono caricare dei moduli dopo il boot. Questo non è corretto, poiché "ibrido" implica che il kernel in questione condivida concetti architetturali e meccanismi tipici sia dei kernel monolitici che dei microkernel, specialmente il passaggio di messaggi e la migrazione di porzioni di codice "non essenziale" a più alto livello, mantenendo a livello kernel solo il codice necessario per ragioni di prestazioni. Esempi di kernel ibridi: Microsoft Windows NT/2000/XP/Vista ma NON 95/98/ME che si basavano su MSDOS. XNU kernel del Mac OS X DragonFly BSD Quark, il kernel di MorphOS Pag.25 di 65

26 Riassumendo: I kernel monolitici (non più usati da tempo) si portano dietro tutti i driver esistenti, per questo hanno il difetto di occupare molto spazio in memoria e non è possibile aggiungere un driver senza ricompilare il kernel. Sono estremamente performanti. I kernel monolitici/modulari (come quello Linux) sono kernel monolitici cui i driver sono composti da moduli esterni che possono essere caricati solo al bisogno risolvendo il problema della dimensione occupata in memoria. Però i moduli devono essere compilati espressamente per il kernel in uso. Teoricamente il blocco di un modulo di un kernel monolitico porta al blocco dell'intero sistema. Anche questi kernel sono estremamente performanti. I microkernel sono kernel con funzioni ridotte ai minimi termini, tutte le funzioni avanzate vi girano sopra come fossero normali processi. I moduli che girano sopra i microkernel possono tranquillamente essere scritti da terzi e non necessariamente devono essere scritti per una versione specifica. Teoricamente un'altro loro vantaggio risiede nel fatto che il blocco di uno di questi processi non porta necessariamente al blocco del sistema. Sono quindi più versatili, potendo caricare driver e servizi scritti da chiunque. Hanno il problema di essere piuttosto lenti rispetto i kernel monolitici. I kernel ibridi sono microkernel che inglobano al loro interno porzioni di codice e di servizi di alto livello, come i kernel monolitici. Sono un compromesso tra la versatilità dei microkernel e le prestazioni dei kernel monolitici. Non raggiungono comunque le prestazioni dei monolitici. C'è da aggiungere una cosa: Torvalds dice che il codice di un kernel monolitico, pensato e controllato tutto insieme dallo stesso gruppo di persone è molto più ottimizzato e soprattutto coerente e può vantare un grande vantaggio di stabilità rispetto all'approccio opposto, obbligatorio nei microkernel, dove vengono caricati parti di codice proveniente da più parti. Alla fine la teoria dei microkernel e dei kernel ibridi è che il blocco di un modulo non porta al blocco del kernel, ma se il blocco di un modulo mi impedisce di accedere al disco fisso, o alla scheda video non ha importanza se il kernel funziona ancora in quanto il computer resta bloccato comunque, obbligandomi al reset. Pag.26 di 65

27 Cos'è un driver: Un driver è un pezzo di codice binario che viene caricato ed usato dal kernel per accedere ad una periferica hardware. Come una scheda sonora, una scheda video, una porta di comunicazione, un modem, etc. All'interno del driver si trovano tutte le istruzioni necessarie al sistema per dialogare con questo pezzo hardware e per poter permettere alle applicazioni di accedervi. In assenza di un driver è impossibile utilizzare una determinata periferica. Driver su Windows, vantaggi e svantaggi: Come abbiamo visto sopra Windows adotta un microkernel ibrido. Il kernel Windows nativamente non supporta nessun tipo di periferica, i driver sono file esterni caricati all'occorrenza, diversi driver per periferiche standard come tastiere, porte parallele e seriali, mouse, controller floppy/cdrom/harddisk sono già inclusi dentro a Windows e solitamente sono sufficienti a permettere la prima installazione del sistema. Chi ha un minimo di conoscenza dei sistemi Windows saprà sicuramente che quando si compra un nuovo hardware (una stampante, una video camera, etc) si trova nella confezione il CD con il driver per farlo funzionare. Questo driver ovviamente è Closed Source e viene fornito da chi produce l'hardware. Questo modo di fare e distribuire i driver ha vantaggi e svantaggi. Vantaggi: Si ha buona garanzia della compatibilità della periferica con il proprio sistema, almeno al momento odierno, con la versione di Windows attuale. Svantaggi: Tutti gli stessi svantaggi del modello di sviluppo closed. Quindi se un driver è scritto male porterà il sistema ad una diminuzione di prestazioni o ad una potenziale instabilità. Capita a volte che i driver forniti nel CD siano pieni di problemi, dovuti al fatto che la casa produttrice aveva fretta di immettere l'oggetto sul mercato e l'utente dovrà poi aspettare il rilascio degli aggiornamenti da scaricare via internet. In certi casi (sporadici) ci sono periferiche addirittura che NON vanno, sebbene sulla confezione sia riportata come specifica la compatibilità con una certa versione di Windows. Microsoft nel tentativo di far credere di voler risolvere il problema di qualità dei driver prodotti da terze parti ha introdotto in Windows un sistema di certificati. Sostanzialmente Windows al momento dell'installazione di un driver verifica che all'interno di esso sia presente una firma digitale crittografica, se c'è prosegue normalmente all'installazione, se non c'è fa apparire una finestra di Allert dicendo pericolo questo driver non è firmato, se continui potresti destabilizzare il sistema. Per evitare che Windows mostri questo spaventoso messaggio il produttore hardware deve comprare da Microsoft la chiave con cui firmare il driver. Si capisce benissimo che questa garanzia non garantisce nulla! è solo un modo studiato da Microsoft per arricchirsi ulteriormente e far credere agli utenti comuni che si sia data da fare. In realtà il produttore una volta comprata la chiave può usarla per firmare anche un driver scritto da uno scimpazè. L'uso di driver closed ha anche un'altro effetto negativo: Quando una periferica è considerata commercialmente vecchia non vi è garanzia che il produttore continui a fornire nuovi driver per le nuove versioni di Windows, costringendo gli utenti che cambiano sistema operativo a buttare via le vecchie periferiche, anche se perfettamente funzionanti. Pag.27 di 65

28 Driver su Linux, vantaggi e svantaggi: Come abbiamo visto sopra Linux adotta un kernel monolitico modulare, quindi tutti i driver supportati sono già presenti e disponibili da subito. Le case produttrici di hardware solitamente NON forniscono driver per Linux, anche perché, come capiremo proseguendo la lettura, non potrebbero mai funzionare. I driver sotto Linux sono sviluppati come Open Source dalla stessa comunità di Linux partendo dalle specifiche funzionali dei diversi hardware. Specifiche fornite a volte dai produttori stessi a volte ottenute dai gruppi di sviluppo tramite ingegneria inversa. Vantaggi: I driver vengono sviluppati con il metodo Open Source e godono di tutti i suoi vantaggi, tra cui ribadisco la migliore ottimizzazione del codice e un testing molto più accurato. Tutti i driver esistenti solitamente sono inseriti di default durante l'installazione del sistema, questo significa che non ci sarà mai bisogno di installare driver di nessun genere. Al momento della connessione di una nuova periferica, qualsiasi essa sia, Linux riconoscerà immediatamente il driver più adatto ad essa, caricandolo e rendendo la periferica operativa immediatamente o dopo una piccola procedura di configurazione, senza caricare nulla da internet o da CD/Floppy. Un driver, una volta scritto non viene abbandonato, questo vuol dire che con il passare degli anni Linux continuerà a supportare anche le vecchie periferiche, questo non comporta lavoro extra per gli sviluppatori, infatti avendo i sorgenti a disposizione il più delle volte basta ricompilare il driver per la nuova versioni del sistema. Svantaggi: Se non è ancora stato sviluppato un driver per una certa periferica è impossibile usarla, la periferica non funziona, punto e basta. Talvolta capita che certi produttori hardware (una piccola parte) siano riluttanti a fornire specifiche o altre informazioni necessarie alla scrittura di un driver perché temono di svelare così alcuni segreti sul funzionamento delle loro schede o dei loro chip. Per i produttori è quasi impossibile fornire driver closed per Linux perché per la natura del suo kernel (monolitico modulare) il driver dovrebbe essere fornito espressamente compilato per ogni sua singola variante in circolazione. Le distribuzioni Linux sono tantissime e il kernel si evolve versione in versione molto rapidamente, quindi un ipotetico modulo driver per il kernel versione di opensuse 10.3, fornito dal produttore, funzionerebbe solo espressamente su QUELLA versione del kernel di opensuse. Non funzionerebbe su altre distribuzioni e dopo 2 mesi nemmeno sulla stessa opensuse perché nel frattempo potrebbero essere usciti aggiornamenti del kernel. Quest'ultimo punto però non deve spaventare troppo gli utenti, Linux supporta la maggior parte degli hardware oggi in circolazione, solo una piccola percentuale di periferiche risulta essere problematica (cito ad esempio i modem integrati a 56k, o i modem sulla porta USB). Esistono siti che forniscono informazioni riguardanti la compatibilità di certi hardware con Linux. Molto spesso è possibile sostituire hardware non supportati con altri compatibili, di analoghe prestazioni e con spese minime. Nota aggiuntiva: Certi produttori hardware, come nvidia, sono riusciti a trovare un modo efficace di distribuire driver closed universali per Linux. Questo metodo consiste nel fornire un driver binario closed accompagnato da un modulo colla Open Source. Il modulo colla è quello che si interfaccia con il kernel e che può essere compilato e ricompilato e piacimento anche dagli stessi utenti in modo da renderlo compatibile con la loro versione del kernel. Questo modulo colla poi non farà altro che caricare a sua volta il driver binario closed creando un'interfaccia di comunicazione. Purtroppo questo metodo non è molto comodo per gli utenti, ad accezione di quelli che usano distribuzioni più pratiche che forniscono il driver già pronto. Questo modo di far andare un driver sotto Linux però è considerato sporco da molte persone della comunità che non accettano il compromesso e che spingono per avere driver completamente liberi. Pag.28 di 65

29 Integrazione, come funzionano e cosa sono le librerie: In Informatica, una libreria software è un insieme di funzioni di uso comune, predisposta per essere usata dai programmi. Lo scopo delle librerie software è quello di fornire una vasta collezione di funzioni di base pronte per l'uso, evitando al programmatore di dover scrivere ogni volta le stesse funzioni. Facciamo alcuni esempi sull'uso delle librerie: tutti i programmi, anche diversi fra loro, hanno funzioni in comune. Pensiamo ad esempio ad un editor di testo e ad un programma per elaborazione grafica: entrambi hanno menù, la possibilità di eseguire azioni come aprire o salvare un file. Analizzando l'estetica noteremo che il modo in cui sono disegnati i bottoni per accedere alle funzioni, le barrettine di scorrimento, il bordo della finestra, etc, sono uguali. Questo perché dentro i programmi non vi è scritto ogni volta come disegnare i menù, come disegnare i bottoni, come leggere o salvare un file, etc. I programmi semplicemente accedono ad una libreria comune in cui sono contenute le funzioni necessarie a disegnare l'interfaccia grafica del programma stesso a video, od ad accedere ai file. Ovviamente di librerie ne esistono tantissime per una vastità di compiti diversi. Le librerie sotto Windows hanno un solo formato e sono file sempre con estensione:.dll Mentre Linux adotta una tipizzazione delle librerie con lo scopo di suddividerle in base alle diverse architetture (ottimizzate per scopi differenti) e possono avere estensione:.o.so.a.la Talvolta poi dopo l'estensione è possibile vedere appeso un numero di versione, questo ha lo scopo di rendere possibile la coesistenza di più versioni della stessa libreria sul sistema. Ad esempio: libaudio.so.2.4 Su Windows le dll non hanno nulla del genere, il numero di versione esatto è memorizzato all'interno del file stesso. Così viene chiamata mfc42.dll qualsiasi libreria di quel ceppo. Si chiama mfc42.dll la versione e qualsiasi altra genericamente 4.2xxx. Come vedremo proseguendo la lettura, questo aspetto crea non pochi problemi al buon funzionamento di Windows. Pag.29 di 65

30 In cosa Linux è migliore di Windows: La gestione del software: Su Windows non esiste uno standard su come installare disinstallare un programma, non esistono librerie comuni per farlo. Su Windows ogni programma ha un suo installer proprietario, un programma che viene avviato e che si preoccupa di copiare i file nei punti giusti del disco di sistema nel caso dell'installazione, o di rimuoverli nel caso della disinstallazione. Il problema risiede nel fatto che ogni software-house può creare un'installer per conto suo e se questo non fosse perfetto potrebbe sporcare il sistema in qualche modo. La cosa più comune che capita su Windows avviene alla disinstallazione: spesso vengono lasciati residui in giro, file e directory che non vengono rimossi, rimanendo ad occupare spazio disco e talvolta continuando ad essere caricati in memoria dal sistema, sprecando risorse inutilmente e diminuendo le prestazioni del computer. Ad esempio il famoso (ed esoso di risorse) Norton Antivirus dopo la disinstallazione lascia comunemente alcune directory dentro a: c:\programmi\ c:\programmi\file comuni\ Piene di eseguibili e librerie che continuano ad essere caricati inutilmente da Windows anche dopo la procedura di disinstallazione e così via per molti dei programmi Windows. Potenzialmente gli sviluppatori potrebbero anche fare le cose fatte bene, ma Windows non li aiuta e spesso il particolare della disinstallazione viene trascurato; a loro interessa vendere il programma e che questo si installi correttamente, in modo che gli utenti lo comprino generando guadagni per l'azienda... se lo disinstallano: chi se ne frega Sotto a Linux invece si è adottato un metodo completamente differente; vengono usati software chiamati Package Manager. Un Package Manager è un programma integrato all'interno del sistema, dedicato ad eseguire l'installazione e la disinstallazione di programmi e librerie. Su Linux quindi non si hanno programmi di installazione differenti per ogni applicazione. I programmi vengono distribuiti come pacchetti; file con estensione.rpm oppure.deb All'interno di un pacchetto rpm vi sono archiviati tutti i file del programma e molte altre informazioni riguardo le posizioni dove andranno copiati questi file, commenti e descrizioni del programma stesso utili all'utente per capire cosa vi sia dentro e quali librerie servono per usare il determinato programma. Quest'ultima funzione prende il nome di dipendenza, ossia il programma X necessita della libreria Y, nel caso la libreria Y non fosse presente nel sistema il package manager proporrebbe la sua installazione in maniera automatica. Le informazioni contenute all'interno di un pacchetto rpm vengono generate durante la creazione dell'rpm stesso, e non vi è modo di mettere dentro al pacchetto rpm un file senza che venga catalogato. Al momento dell'installazione il package manager memorizza tutte le informazioni di tutti i pacchetti installati all'interno di un database. Al momento della disinstallazione tramite lo stesso database sarà possibile conoscere TUTTI i file che un certo pacchetto ha fornito, permettendo una disinstallazione senza residui, al contrario di Windows. Rispetto a Windows poi si ha anche un controllo capillare di eventuali conflitti tra pacchetti. Su Windows è possibile che 2 programmi diversi installino la stessa libreria dll. Windows non fa controlli sulle versioni delle librerie che vengono installate ne tanto meno esiste una netta differenziazione tra una versione e l'altra (come abbiamo visto sopra). Pag.30 di 65

31 Quindi il programma A potrebbe installarmi mfc42.dll versione e il programma B (installato successivamente) sovrascrivere la prima con mfc42.dll versione causando, potenzialmente, un malfunzionamento del programma A. E' questo il motivo per cui spesso su Windows capita che installando e disinstallando spesso programmi, anche solo per prova, si finisce per causare errori, rallentamenti e malfunzionamenti del sistema che portano inevitabilmente alla necessità di cancellarlo e reinstallarlo ex novo, in quanto districare tutti i rimescolamenti effettuati dai programmi avvenuti nei mesi sarebbe impossibile. Su Linux questo non accade, avviene una netta divisione tra pacchetti che forniscono librerie e pacchetti che forniscono programmi, in ogni modo il Package Manager, tramite il suo database interno, riesce a capire che un pacchetto A sovrascriverebbe un file che appartiene al pacchetto B. Questa situazione si chiama conflitto, viene quindi segnalata l'incompatibilità tra 2 o più pacchetti, delle informazioni sul tipo di conflitto sono visualizzate e talvolta sono proposte anche eventuali soluzioni. Ma in ogni caso deve essere l'utente a decidere sul da farsi, forse intellettualmente obbliga l'utente a pensare ma evita in maniera estremamente efficace i disastri che capitano soventemente su Windows. Inoltre la nomenclatura dei file delle librerie adottata su Linux permette la coesistenza di versioni diverse della stessa libreria, se 2 programmi avessero bisogno per l'appunto di 2 versioni diverse di una stessa libreria. Su Linux non sarebbe impossibile osservare situazioni simili a questa: libaudio.so.2.4 libaudio.so Esattamente la versione 2.4 e la versione di libaudio.so Nota finale: oltre al formato rpm usato dalla maggioranza delle distribuzioni esiste anche il formato deb usato sopratutto da debian e ubuntu. I formati rpm e deb hanno un funzionamento concettuale di base che è il medesimo. Organizzazione della struttura delle directory che contengono programmi e librerie: Su Windows si osservano poche directory nella radice del disco C:, le 2 principali sono Programmi e Windows. All'interno di queste 2 sostanzialmente regna l'anarchia totale, sotto-directory sono create a discrezione dei programmi che vengono installati. File, librerie ed eseguibili sono installati ovunque senza nessuna logica apparente se non la personale logica del programmatore che ha creato il programma A che sarà diversa dalla logica utilizzata dal programmatore del programma B. Sostanzialmente è un caos totale. A parte la struttura generata dai programmi di terzi, anche quella di base dello stesso sistema operativo appare disorganizzata e ricca di elementi equivoci, facciamo alcuni esempi: Program Files Program Files\Common Files Programmi\File Comuni Programmi\Common Files Documents and Settings\nome\Impostazioni locali\dati applicazioni Documents and Settings\nome\Dati applicazioni Documents and Settings\nome\Impostazioni locali\dati applicazioni\identities Documents and Settings\nome\Dati applicazioni\identities Pag.31 di 65

32 Su Linux, nella radice del disco di sistema, sono presenti molte più directory, ognuna delle quali però è espressamente adibita a contenere file di una ben precisa natura. Tra una distribuzione e l'altra possono esistere alcune differenze, ma la cosa importante è che su ogni sistema esistono delle definizioni dell'ambiente che permettono in maniera discretamente automatizzata di definire, quando si compila un programma generando eventualmente un pacchetto rpm di binari, di mettere tutti i file al posto giusto. La struttura base delle directory è dettata dagli stessi standard POSIX a cui Linux come tutti i sistemi UNIX aderiscono. Altre strutture di directory aggiuntevi negli anni per necessità pratiche sono definite dallo standard LSB (Linux Standard Base). Tutte le distribuzioni Linux aderiscono a POSIX e la maggior parte di esse aderisce allo standard LSB. Andando ad analizzare la struttura directory di Linux potremo osservare: / è la directory radice (root, equivalente a c:) Directory riguardanti l'avvio del sistema /bin contiene i programmi usati per il boot del sistema /sbin contiene i programmi usati per il boot del sistema, ma che può eseguire solo l'utente (root) /etc file di configurazione di sistema /dev contiene i devices, cioè collegamenti ai vari dispositivi: tastiera, modem, dischi,ecc. Directory riguardanti il kernel di linux /boot Kernel e i file di configurazione del boot manager. /initrd l'initial ram disk, usata nella procedura di boot (non tutte le distribuzioni mostrano questa directory però) /proc processi del kernel (filesistem virtuale) /lib librerie di sistema (modalità singolo utente) /lib/modules moduli del kernel Directory di sistema /mnt o /media directory dove di solito sono montati i dispositivi di archiviazione (si può scegliere anche un'altra directory ma lo standard prevede questa (cdrom, dvd, HD, penne USB) /usr comandi, librerie, pagine di manuale, giochi e altri files per utilizzo normale (modalità multiutente) replica la struttura di: "/" /usr/bin tutti i programmi si trovano quà /usr/sbin programmi eseguibili solo da root /usr/include file "header" usati durante la compilazione /usr/lib librerie utili ai programmi /usr/local installazioni locali /usr/man,info,doc pagine di manuale /usr/games giochi /usr/src sorgenti per la compilazione /usr/share risorse condivise /usr/x11r6 file del server X /opt applicazioni aggiuntive (opzionali, su molte distribuzioni vi si trova installato KDE e/o buona parte di Gnome, nonché molti programmi statici ossia che non usano solitamente altre parti del sistema per funzionare, come OpenOffice) Directory utente (qui potete inserire i vostri file, alcune distribuzioni prevedono directory specifiche per i vari tipi di file) /root la "home" dell'utente root (amministratore) /home directory degli utenti (es. /home/vostronome) /tmp i file temporanei usati dalle applicazioni Pag.32 di 65

33 Registro di sistema contro file di configurazione: Windows dalla versione 3.0 in avanti adotta un registro di sistema per archiviare le configurazioni di qualsiasi cosa, dai driver alle impostazioni dei programmi (in Windows 3.0 era un file di testo semplice, da Windows 3.1 in avanti fu creato un registro binario). Questo significa che Windows e qualsiasi altro driver/programma installato andrà a salvare le informazioni in questo monoblocco, dove le informazioni sono disperse all'interno di migliaia di chiavi spesso incomprensibili per un essere umano. Potete accedere al registro di sistema di Windows eseguendo regedit (mostrare agli alunni il registro di sistema e la sua poca comprensibilità) Il grande problema legato all'uso del registro di sistema, come per la gestione del software, è che le applicazioni nel tempo tendono a sporcarlo sempre di più. Cambiando valori del registro si sistema si può cambiare anche il comportamento di alcune componenti di Windows, il registro di sistema quindi è terreno fertile anche per malware e virus che possono inserirvi facilmente valori e chiavi per ottenere diversi scopi tra cui anche forzare Windows al download di un virus qualora questo sia stato rimosso. Capita a volte che alcune chiavi di registro si danneggino, magari a causa di un crash o di errori di varia natura. Un programma potrebbe smettere di funzionare perché le sue chiavi sono corrotte e la sua disinstallazione e successiva reinstallazione potrebbero non sovrascrivere le chiavi di registro relative. In questi casi diventa necessario intervenire sul registro per cercare di eliminare a mano tutte le chiavi usate da quel programma... ma se vi trovaste di fronte a qualche migliaio di chiavi come questa: {asdf2sd8v5sdv1s8d7vs076sd8b947y32sv748sdf7v} certamente dovreste rinunciare. Capita poi, in casi più gravi o dopo infezioni virali, che vengano danneggiate chiavi di sistema che causano pesanti malfunzionamenti, anche dopo la disinfezione. Tutti questi casi obbligano alla riformattazione in quanto correggere qualcosa di così intricato è impossibile. Linux adotta un sistema molto più furbo ed intelligente. Dei semplici file di testo contenenti le configurazioni dei programmi, creando ovviamente un file separato per ogni programma. Ogni file riporta il nome del programma che lo ha generato o nel caso dei file contenenti configurazioni di sistema il nome del servizio o dello scopo del file stesso, rendendo la ricerca e la modifica manuale molto semplice. I file di configurazione di sistema in Linux si trovano dentro a /etc Mentre i file di configurazione dei programmi usati dagli utenti vengono creati all'interno dell'home directory dell'utente stesso. Questi file sono quindi personali, ogni utente avrà i suoi, rendendo possibile una netta divisione tra settaggi di più utenti che usano lo stesso computer. Su Windows invece è possibile che i taroccamenti di un'utente vadano a influire negativamente anche sugli altri. I file di configurazione personali sono nascosti, sotto Linux si considera nascosto un file o una directory cui il nome inizia con un punto. Normalmente i file-manager grafici di Linux non rendono visibili questi file, almeno che non si attivi la loro visualizzazione. Nel caso avvenga il danneggiamento di un file di configurazione e un'applicazione smetta di funzionare diventa semplicissimo attivare la visualizzazione dei file nascosti e cancellare il file o la directory nascosta che riporta lo stesso nome del programma che non va più. Quando riaprirete il programma esso non troverà più nessun settaggio e creerà un nuovo file. Pag.33 di 65

34 Dovrete poi riconfigurare tutto il programma come se fosse la prima volta che lo usate, di certo meno drastico che reinstallare l'intero sistema operativo. Nota: I file di configurazione si usano da sempre è Microsoft che negli anni '80 ha voluto inventare il registro di sistema, condannando tutti i suoi utenti ai problemi che ne derivano. Filesystem: In informatica, un filesystem è un meccanismo con il quale i file sono immagazzinati e organizzati su un dispositivo di archiviazione, come un hard disk o un CD-ROM. Più formalmente un filesystem è l'insieme dei tipi di dati astratti necessari per la memorizzazione, l'organizzazione gerarchica, la manipolazione, la navigazione, l'accesso e la lettura dei dati. Esistono tanti tipi di filesystem, tutti con i loro pregi e i loro difetti. Sotto Windows ne esistono solo 2: FAT NTFS La FAT o meglio FAT32 (esiste anche la FAT16, ma non è più molto utilizzata in quanto la dimensione massima di una partizione formattabile con FAT16 è di soli 2Gb) è un file-system direttamente derivato da MSDOS. La FAT ha una struttura estremamente semplice. La troppa semplicità rende FAT un filesystem estremamente fragile e passibile di errori, nonché anche limitato nelle sue caratteristiche. FAT non può memorizzare attributi estesi e permessi sui file, non può memorizzare file più grandi di 2Gb. Non vi è modo di sapere se ci sono errori nel filesystem senza analizzarlo integralmente (scandisk) ed è pesantemente afflitto dal problema della frammentazione. Per frammentazione si intende che i file vengono memorizzati in maniera discontinua, rallentando l'accesso agli stessi in quanto il disco, meccanicamente, deve saltare avanti e indietro per leggere tutti i vari pezzettini, sparsi in giro, rendendo necessario di tanto in tanto eseguire programmi di deframmentazione (defrag), per rimettere ordine e recuperare le prestazioni perse. I sistemi Windows 9x possono usare solo questo filesystem. NTFS è il filesystem nato con Windows NT, copiato quasi integralmente nella struttura e nel concetto da HPFS, il filesystem di OS/2 (un vecchio sistema operativo di IBM ormai caduto in disuso). NTFS rispetto a FAT ha la tabella di allocazione dei file (sostanzialmente l'indice) posta al centro del disco mentre su FAT è all'inizio. Questo velocizza un po', ma non troppo, l'accesso alla stessa tabella. NTFS ha anche la possibilità di salvare permessi sui file. Come FAT per scoprire la presenza di errori è necessario analizzare tutto il filesystem. NTFS frammenta anche se un pò meno di FAT. Linux invece ha a sua disposizione parecchi filesystem differenti, alcuni nativi altri ereditati dai sistemi UNIX commerciali abbandonati dalle case madri a favore di Linux. Ext2 (nativo ma obsoleto) Ext3 (nativo) Ext4 (nativo ancora sperimentale) ReiserFS (nativo) JFS (ereditato da IBM AIX) XFS (ereditato da SGI IRIX) Altri poco usati o usati in ambiti particolari come filesystem che risiedono su ROM in sistemi embedded come CramFS. Linux può leggere e scrivere anche su NTFS e FAT di Windows Linux può leggere e talvolta anche scrivere sui filesystem di computer apple: HFS e HFS+ Pag.34 di 65

35 Tutti i filesystem nativi di Linux, e quelli ereditati, posseggono una struttura molto complessa, capace di gestire efficacemente dischi e file enormi (fino ed oltre di gigabites). Posseggono una tecnologia chiamata Journallig che non rende necessario analizzare tutto il disco in cerca di errori dopo un crash o dopo uno spegnimento improvviso. In un filesystem Journalled vi è un'area dedicata, chiamata Journal, nella quale si scrivono tutte le modifiche che si vanno ad affettuare sul filesystem prima che queste avvengano. Se apro un file e comincio a scriverci dentro, poi salta la corrente su FAT e su NTFS il file rimarrà aperto con i dati parzialmente scritti. Questo è un errore, sarà necessario eseguire scandisk per correggerlo. Perdendo ovviamente tempo per l'analisi e perdendo i dati che erano contenuti nel file. Su di un filesystem Journalled l'azione di aprire il file prima viene scritta nel Journal poi nel filesystem. Se salta la corrente all'avvio successivo la prima cosa presa in esame dal sistema sarà il Journal, dentro il quale troverà informazioni riguardo l'ultima azione non terminata. Se era stato aperto un file e la scrittura dei dati non era stata completata si saprà quale file era, e dove si trova l'errore correggendolo immediatamente in pochi istanti, senza necessità di perdere tempo ad analizzare tutto e in certi casi sarà anche possibile completare la scrittura del file senza perdere dati. Se lo spegnimento fosse avvenuto prima della scrittura vera, quando ancora il sistema stava accedendo al Journal vi sarà la sicurezza che non vi sono errori. Il journal verrà azzerato e il sistema ripartirà senza problemi. I filesystem Linux inoltre hanno tabelle di allocazione multiple per velocizzare l'accesso ai dati e per fare in modo che il danneggiamento di una a più tabelle non renda inaccessibili i dati (ridondanza). Hanno tassi di frammentazione molto bassi o quasi assenti, non serve defrag. Non esistono utility atte a deframmentare i filesystem di Linux. Tra i vari filesystem elencati ovviamente esistono differenze tecniche che possono far preferire uno all'altro in base alle varie situazioni. Degni di nota particolare sono Ext3: un filesystem estremamente ridondante, è possibile recuperare dati abbastanza facilmente anche da dischi parzialmente riformattati o sovrascritti, è leggero da utilizzare da parte della CPU. Non vanta una grande velocità (ma rimane più veloce di NTFS) e non è adatto se usato su grandi partizioni con tantissimi file e directory. Ha un tasso di frammentazione pressoché nullo. XFS: è il filesystem di SGI IRIX (Silicon Graphics), uno dei filesystem in assoluto più performanti mai concepiti. Permette un bilanciamento di banda tra tutti i vari processi paralleli che vi accedono. Ha un'elevatissima velocità sia in lettura che in scrittura anche su filesystem enormi e con un numero molto elevato di file a directory. Ha un uso di CPU molto basso. Non possiede la stessa ridondanza di ext3 e ha un tasso di frammentazione un pochino maggiore ma comunque insignificante. Le caratteristiche di questo filesystem derivano dall'uso cui era destinato IRIX, ossia elaborazione video di livello cinematografico. Pag.35 di 65

36 Gestione della memoria e dei task: su questo argomento ci sarebbe da parlare per mesi e mesi. L'argomento è troppo complicato per essere presentato in questo corso. Sappiate comunque che la gestione della memoria e dei task di Linux è molto ma molto migliore di quella di Windows. Una piccola parentesi può essere aperta sulla gestione della memoria virtuale: La memoria virtuale, o swap to disk, è una tecnica che permette ad un sistema operativo di usare il disco fisso come estensione della memoria RAM, ossia se si eseguono programmi molto pesanti e la RAM divenisse insufficiente il sistema riuscirà ad utilizzare una porzione di disco come estensione della stessa. Un disco fisso però è migliaia di volte più lento della RAM e l'uso massivo dello swap rallenta molto il computer. Per questo motivo è saggio cercare di utilizzare una tecnica di swap quanto più veloce possibile. Linux utilizza una partizione dedicata allo swap, questa partizione non ha nessuna formattazione particolare, vi accede sopra in maniera diretta, grezza. Tecnicamente questo tipo di accesso si definisce RAW. L'accesso RAW ad una partizione è il metodo più veloce in assoluto di leggere e scrive dati su un disco. Windows invece utilizza un grosso file all'interno del disco C: su Windows XP lo potete osservare nella radice principale del disco con il nome pagefile.sys Accedere ad un file obbliga prima ad accedere ad una struttura complessa che è quella del filesystem. Inoltre in determinate condizioni è possibile che il pagefile.sys si frammenti sul disco rendendo ancora più lento l'accesso su di esso. Ancora: Windows e' capace di spostare in swap solo i dati delle applicazioni ma non le applicazioni stesse, anche se inattive. Mentre Linux e' capace di migrare sullo swap un'intero processo. Ad esempio se stiamo lavorando con molte applicazioni aperte e arriviamo ad appesantire in maniera critica il sistema Windows riuscirà a spostare sullo swap solo i dati di queste applicazioni, se non fosse sufficiente segnalerà errore di memoria insufficiente e si sarà costretti a chiudere qualcosa. Invece Linux sposterà sullo swap anche interi processi inattivi pur di liberare memoria da sfruttare nell'immediato per poi risvegliarli solo quando sarà necessario. Pag.36 di 65

37 Ottimizzazione generale di librerie e programmi: Abbiamo già visto nel capitolo Come avviene lo sviluppo Closed Source tanti svantaggi dovuti al modello di sviluppo. Oltre a questo su Windows vi è anche un'architettura piuttosto scadente. Come voi tutti sapete su una versione di Windows nuova è sempre stato possibile utilizzare programmi binari pensati per versioni precedenti dello stesso sistema. La scelta di mantenere la compatibilità (binaria) con il passato è la causa principale dell'inefficienza complessiva del sistema. Nulla è perfetto, anche i programmi e le librerie scritte dalla stessa Microsoft. Quindi se oggi esce una certa versione di Windows, sarà quella! Con i suoi pregi e difetti. Le varie software house mondiali scriveranno programmi per Windows tenendo in considerazione la struttura di questo sistema, compresi i suoi difetti... Può capitare, che un programmatore scriva un programma, che questo programma utilizzi una libreria del sistema che però presenta un difetto o BUG che causa, magari solo in determinate condizioni, un comportamento anomalo della stessa libreria. Il programmatore deve quindi considerare nel suo programma l'anomalia della libreria, cercando di raggirarla in qualche modo, in gergo fare un workaround. Con la versione successiva di Windows questa libreria, anche se considerata obsoleta, non può essere rimossa perché causerebbe incompatibilità con i vecchi programmi che la usavano. Contemporaneamente i BUG delle librerie non possono essere corretti il più delle volte, perché si perderebbe compatibilità con tutti quei programmi che le usano effettuando workaround. BUG che venendo a mancare causerebbero errori nell'applicazione che cerca di fare workaround su di un BUG non più presente. Per questo motivo Windows è un sistema che non si aggiorna a tutti gli effetti ma con le successive versioni non fa altro che aggiungere roba in più rispetto la versione precedente, riuscendo a fatica e solo dopo molti anni ad eliminare le parti più obsolescenti. E' cultura diffusa tra gli sviluppatori software continuare a usare le vecchie librerie perché si fa prima che a studiarsi il funzionamento delle nuove, molti fanno il ragionamento: tanto mica le tolgono! Purtroppo questa manifestazione di pigrizia di chi sviluppa software allunga di molto il tempo di vita delle parti obsolete. Un sistema così sviluppato tende a diventare sempre più pesante e intricato ad ogni sua nuova versione. Su Windows XP si possono ancora osservare residui di Windows 3.1. La directory c:\windows\system su XP è appunto un retaggio di Windows 3.1, anche nel registro di sistema si possono osservare chiari riferimenti a questa vecchissima versione di Windows. Pag.37 di 65

38 Ecco una prova di quanto detto E questo screen-shot è solo la più evidente tra le tante. Su Linux invece avviene il contrario, quando si trova un BUG lo si corregge, quando una libreria è obsoleta la si elimina o per lo meno inizialmente non la si installa più di default. Essendo tutto Open Source non è troppo difficile ovviare poi ai problemi derivati da questi continui cambiamenti. Se un programmatore riscontra un difetto su una libreria, anche non sua, la correggerà rendendo pubblica la modifica che sarà poi adottata da tutti, o quanto meno segnalerà il problema a chi ha scritto la libreria perché porga rimedio. Oppure se una libreria viene modificata e un programma smette di funzionare, sempre grazie alla disponibilità del codice sorgente sarà relativamente facile adattare il programma alla nuova libreria. Non c'è da confondere questo processo di miglioramento continuo di Linux con le patch distribuite da Microsoft come aggiornamenti. Tramite WindowsUpdate è possibile aggiornare Windows in modo da correggerne i difetti di funzionamento. Il problema è che gli aggiornamenti di Windows solo in certi casi cambiano qualcosa di difettoso con qualcosa di effettivamente corretto, in tanti altri casi sono inserite delle exception. Pag.38 di 65

39 Come si è detto sopra spesso non si può correggere un BUG senza causare una perdita di compatibilità con quei programmi che effettuano workaround, se il BUG di una libreria diventa fastidioso o pericoloso, magari perché causa crash del sistema o permette la propagazione di Virus si aggiungerà dentro a Windows un piccolo programmino che sorveglia la libreria bacata, lasciando che le applicazioni facciamo quello che vogliono ed intervenendo solo qualora si vadano a creare determinate condizioni pericolose. Esempio stupido: è come se avessimo una banca, dentro a questa banca vi è una cassaforte con un buco su di una parete che permette di infilare un braccio e di prendere i soldi al suo interno. Per diverso tempo nessuno ai piani alti si accorge di questa cosa, nel frattempo diversi dipendenti della banca prendono l'abitudine di tirare fuori i soldi usando questo buco, perché si fa prima che non ad aprire tutto il complesso meccanismo della porta. Poi succede che anche persone malintenzionate scoprano questo buco e lo sfruttino per rubare soldi. A questo punto la banca Windows, visto che è difficilissimo cambiare le abitudini dei suoi dipendenti e visto che non può licenziarli, dovrà adottare una guardia giurata che stia a sorvegliare il buco, lasciando che i dipendenti infilino il braccio prendendo soldi ma fermando chiunque abbia comportamenti sospetti, come mettersi li con un sacco e prendere tutti i soldi. Ci sono dipendenti buoni e dipendenti cattivi: Sotto Linux sicuramente i dipendenti buoni avrebbero informato i piani alti del buco (sicuri del fatto di essere ascoltati) o addirittura gli stessi dipendenti buoni e più capaci, con desiderio di migliorare e spirito di collaborazione, si sarebbero occupati di chiudere il buco. Una volta che il buco è chiuso poi tutti i dipendenti che per qualche ragione erano abituati ad infilare il braccio si adattano per forza di cose. I dipendenti cattivi probabilmente avrebbero voluto arrecare danno, ma il modo collaborativo adottato da Linux fa si che una falla, una volta scoperta venga chiusa in tempi piuttosto brevi, spesso tanto brevi da non dare modo ai cattivi di agire. Anche sotto Windows ci sono dipendenti buoni e dipendenti cattivi, peccato che purtroppo spessissimo i piani alti non ascoltano chi appartiene ai ceti inferiori, inoltre non vi è modo per le persone di riparare un difetto in maniera indipendente (mancano i sorgenti). Finché un BUG non diventa causa di gravi problemi o danni viene ignorato. Anzi talvolta Microsoft ha denunciato persone che si sono azzardate a rendere pubblici BUG di Windows, accusandoli di ledere l'immagine di Windows e di mettere a rischio tutti gli utenti che lo usano. Security by obscurity: Se nessuno sa di un difetto è come se questo non vi fosse. Secondo loro... Peccato che non si può essere sicuri che nessuno conosca un certo difetto finché la mole di vandalismi e il danno arrecato da qualche individuo non lo rende evidente. Nel 2004 un BUG di MS-SQL permise la propagazione di un worm (una particolare tipologia di virus) che in meno di 24 ore mise KO tutta la rete informatica delle poste italiane mandando in crisi tutto il settore per 1 settimana. Microsoft intervenne tempestivamente con una patch e fu anche lodata per la sua celerità. Purtroppo però era a conoscenza di quel BUG già da tempo ma non lo considerava una priorità; fino ad allora nessun cattivo se ne era mai accorto sfruttandolo in qualche modo. Il danno subito dalle poste italiane si poteva evitare! Pag.39 di 65

40 La portabilità: Linux vanta una portabilità eccezionale, è stato adattato senza particolari problemi per girare su hardware di ogni genere e natura. Microsoft ha solo la piattaforma Windows CE usata su molti palmari e GPS. CE non vanta certo di essere leggero o stabilissimo. Inoltre dal punto di vista di chi sviluppa le applicazioni è molto più difficile e macchinoso programmare per Windows CE piuttosto che per Linux embedded. Basti pensare che l'ambiente Linux e Linux embedded sono praticamente uguali, mentre per programmare su CE è necessario usare emulatori hardware/software poi le librerie e l'architettura del sistema sono molto diverse da quella di Windows per PC. In cosa Windows è migliore di Linux:... Supporto di certi hardware particolari. Ci sono programmi per Windows che non vengono portati anche su Linux oppure non esistono corrispettivi Open Source: in particolar modo software dedicati o personalizzati, come gestionali. Software di controllo di certe apparecchiature o macchinari. Video Games. Ma per scelta/colpa dei produttori di hardware o software. Linux di per sé non avrebbe nessun problema a farli funzionare. Pag.40 di 65

41 Com'è possibile, da Linux, sopperire alla mancanza di certi software esclusivamente creati per Windows: in vari modi Mantenere Windows su di una partizione per avviarlo quando necessario. 2. Usare un wrapper. 3. Se si possiede un PC abbastanza potente si possono usare virtualizzatori. La prima soluzione è quella più classica, si ritaglia uno spazio per Windows sul disco fisso del computer e per mezzo di un bootloader sarà possibile scegliere, all'accensione del PC, quale sistema avviare (Windows o Linux). Non si potrà godere dei programmi Windows quando si è dentro a Linux e viceversa, rendendo necessario il riavvio del PC per cambiare SO. Questo ha il vantaggio di mantenere Windows nativamente sulla macchina, necessario ad esempio se si deve usare hardware particolare o fruttare le potenzialità di una scheda grafica per far girare videogames. Uso di wrapper: I wrapper sono programmi molto particolari studiati appositamente per creare un'interfaccia di traduzione tra librerie e programmi alieni. Sistemi operativi complessi come Windows e Linux praticamente hanno librerie per fare tutto. Entrambi i sistemi implementano funzioni equivalenti: è solo il modo che è diverso. Un wrapper molto famoso sotto Linux è Wine. Wine cerca di imitare tutte le funzioni di base di un sistema Windows, costruendo così uno strato di compatibilità verso i suoi file eseguibili. Quando un programma Windows viene avviato tramite Wine crede di essere all'interno del suo ambiente nativo, interfacciandosi con Wine come se fosse Windows. Wine poi non farà altro che tradurre le chiamate a funzione dei file EXE nelle equivalenti chiamate native del sistema Linux. Il risultato è quello di poter eseguire programmi Windows su Linux, in maniera diretta. Il vantaggio di un wrapper è di far girare il minimo indispensabile al funzionamento dell'applicazione, consumando il minimo indispensabile delle risorse del computer. L'applicazione aliena può comunicare direttamente con il sistema che la ospita, riuscendo ad esempio a stampare, ad accedere a file e directory presenti sul disco Linux. Lo svantaggio di un wrapper, o meglio di Wine in particolare, è che Microsoft purtroppo non documenta tutte le funzioni presenti in Windows, o le documenta male. Molti ambienti di sviluppo sotto Windows permettono di programmare in modo visuale e i programmi generati a volte finisco per usare funzioni non documentate la cui esistenza è conosciuta solo da chi ha fatto l'ambiente di programmazione stesso. Perciò succede che a volte certi programmi Windows chiamino funzioni fantasma mandando Wine in errore. Gran parte dello sviluppo di Wine si è svolto per ingegneria inversa, ossia si andava a studiare il funzionamento delle dll di Windows per poi cercare di imitarlo. Esiste una versione commerciale di Wine: Cedega. Cedega riesce a far girare molti videogames per Windows su Linux e la cosa impressionante è che a volte, a parità di hardware, questi giochi hanno prestazioni migliori su Linux (dentro questa sorta di emulazione) che non sul loro ambiente nativo. Il codice di cedega e quello di Linux è talmente ottimizzato da offrire prestazioni migliori dell'ambiente Windows nativo dove non vi è nessuno strato frapposto tra programma e sistema. Questo dovrebbe far riflettere. Pag.41 di 65

42 Virtualizzatori: I virtualizzatori sono programmi molto complessi nella loro struttura, che permettono di creare un computer virtuale sul quale far girare integralmente una copia di un'intero sistema operativo con tutte le sue applicazioni sopra. Inizialmente sono nati per sopperire alle problematiche dei wrapper, non riuscendo mai a simulare perfettamente l'ambiente nativo qualcuno ha pensato di far girare integralmente il sistema operativo desiderato con dentro le sue applicazioni. Ovviamente questo processo risulta più esoso di risorse e può essere realizzato solo se si possiede un computer sufficientemente potente. I virtualizzatori con il passare degli anni si sono molto raffinati diventando efficientissimi e molto importanti in parecchi ambienti professionali. Capita in aziende medio/grandi di avere a che fare, simultaneamente, con diversi software gestionali o programmi dedicati, provenienti da diverse case software e con diversi requisiti per poter essere eseguiti. Magari ci si trova di fronte a un vecchio gestionale contabile che gira ancora su Windows NT, un software di gestione delle tempistiche di lavorazione che vuole Windows 2003 con MS SQL e un software per la gestione degli ordini via web che gira su Linux. Qualche anno fa si sarebbero costruiti 3 server, ognuno con il suo SO e il suo programma. Tutti e 3 sfruttati però al 25% della loro potenza. Con un grande spreco di soldi per acquistare l'hardware, di tempo dedicato alla manutenzione, spazio occupato fisicamente da queste macchine e di energia elettrica per tenerle in funzione. Oggi possiamo costruire un'unico server dedicato, con Linux, sul quale far girare simultaneamente tutti e 3 gli altri sistemi operativi con le loro relative applicazioni. Sfruttando meglio anche le risorse della macchina a nostra disposizione. Un'altro vantaggio della virtualizzazione consiste nel fatto che una macchina virtuale sta all'interno di uno e più grossi file, contenenti l'immagine del suo hard disk con tutto il SO, le applicazioni e i dati. E' quindi facile salvare l'intera installazione. Il virtualizzatore, poi, non mostra alla macchina virtuale il vero hardware del computer, ma un hardware virtuale standard. Se noi avessimo un server con Windows 2003 e questo server si rompesse innanzitutto dovremo sostituirlo, poi reinstallare su di esso appunto Windows 2003, i driver della macchina e tutte le applicazioni che andranno riconfigurate da zero per poi importare i dati che si sono salvati dal vecchio server rotto. Questa procedura può essere onerosa di tempo e costringere ad un fermo prolungato di chi deve lavorare. Nel caso di un server virtualizzato se l'hardware fisico si rompesse anche qui, ovviamente, dovremo sostituirlo. Dovremo reinstallare un sistema Linux, solitamente ridotto ai minimi termini, che sorregge solo il software di virtualizzazione dopo di che ricopiare semplicemente i backup delle macchine virtuali. Saranno immediatamente operative! Infatti come detto l'hardware simulato dal virtualizzatore è sempre uguale, quindi questi server virtualizzati non si accorgeranno di nulla, anche se l'hardware del nuovo server fosse completamente diverso da quello precedente. Solo per chiarezza: se per ipotesi noi avessimo un server con Windows e questo si rompesse qualcuno potrebbe obbiettare che si può sempre prendere l'harddisk del vecchio e montarlo sul nuovo, oppure clonare l'installazione del vecchio server sul nuovo. Purtroppo questa procedura il 99% delle volte fallisce, soprattutto se l'hardware di destinazione non è identico a quello di partenza. Windows si avvierà e cercando di caricare sul nuovo server i driver del vecchio causerà un'immediato blocco del sistema, non c'è nessuna via d'uscita se non reinstallando interamente Windows sul nuovo hardware. Pag.42 di 65

43 Continuando con le peculiarità positive dei virtualizzatori: essi possono trovate utilità anche in altre situazioni. Potremo aver bisogno di utilizzare sistemi o software molto vecchi che non funzionano più su PC moderni... Un cliente dei Laboratori AIDAN, una grossa ditta di lavorazione della lamiera, ebbe il problema seguente: Si era rotto il computer che controllava un'enorme macchina per il taglio al plasma. Questo computer funzionava ancora con il DOS e Windows 3.1 e necessitava di collegarsi in rete con altri PC. I PC moderni ormai non garantiscono più buona compatibilità verso sistemi così vecchi. Di base non era forse impossibile recuperare un vecchio PC, era decisamente più difficile reinstallare il vecchio software e soprattuto far andare la rete su DOS, dovendo trovare un adattatore ethernet che fornisse driver per farlo. Insomma un vero problema. Si risolse usando una virtualizzazione, creando una macchina virtuale partendo dal clone del disco del vecchio PC. Un virtualizzatore può dare modo ad una persona di testare e provare tanti diversi sistemi e programmi senza riformattare in continuazione il proprio PC. Esistono anche virtualizzatori capaci di simulare hardware non PC che permettono di far girare ad esempio vecchi sistemi Apple, di simulare un Amiga o un Commodore 64 anche se spesso sono usati più che altro dagli appassionati dei vecchi videogame e non per scopi lavorativi. Nota finale: i virtualizzatori simulano tutto l'hardware, quindi non rendono possibile per esempio far girare videogame. Il gioco non vedrebbe la vera scheda grafica 3D del PC ma una generica VGA PCI. Pag.43 di 65

44 Hacker e Cracker: 2 termini il cui vero significato è spesso ignorato dalla stragrande maggioranza delle persone. Un hacker è una persona che si impegna nell'affrontare sfide intellettuali per aggirare o superare creativamente le limitazioni che gli vengono imposte, non limitatamente ai suoi ambiti d'interesse (che di solito comprendono l'informatica o l'ingegneria elettronica), ma in tutti gli aspetti della sua vita. I primi ad auto-qualificarsi "computer hacker" nel campus del MIT negli anni '60 traevano origine da un gruppo di studenti appassionati di modellismo ferroviario, che negli ultimi anni '50 si erano riuniti nel Tech Model Railroad Club. Una ristretta enclave all'interno di quest'ultimo era il comitato Signals and Power (segnali ed elettricità) - gli addetti alla gestione del sistema del circuito elettrico dei trenini del club. Un sistema costituito da un sofisticato assortimento di relè e interruttori analogo a quello che regolava il sistema telefonico del campus. Per gestirlo era sufficiente che un membro del gruppo inviasse semplicemente i vari comandi tramite un telefono collegato al sistema, osservando poi il comportamento dei trenini. Dal punto di vista del comitato Signals and Power, usare un relè in meno in un determinato tratto di binari significava poterlo utilizzare per qualche progetto futuro. Il termine hacking era sinonimo di un gioco in grado di migliorare le prestazioni o l'efficienza complessiva del sistema ferroviario del club. I membri di quel comitato cominciarono a indicare con orgoglio l'attività di ricostruzione e miglioramento del circuito per il funzionamento delle rotaie con il termine "hacking", mentre "hacker" erano coloro che si dedicavano a tali attività. Considerata la loro affinità per i sistemi elettronici sofisticati non ci volle molto prima che gli hacker mettessero le mani su una macchina appena arrivata al campus. Noto come TX-0, si trattava di uno dei primi modelli di computer lanciati sul mercato. Sul finire degli anni '50, l'intero comitato Signals and Power era emigrato in massa nella sala di controllo del TX-0, portandosi dietro lo stesso spirito di gioco creativo. Il vasto reame della programmazione informatica avrebbe portato a un'ulteriore mutamento etimologico. "To hack" non indicava più l'attività di saldare circuiti dalle strane sembianze, bensì quella di comporre programmi, con poco rispetto per quei metodi o procedure usati nella scrittura del software "ufficiale". Significava inoltre migliorare l'efficienza e la velocità del software già esistente che tendeva a ingolfare le risorse della macchina. Ed è qui che successivamente si colloca una diversa radice del termine hacker, la forma sostantiva del verbo inglese "to hack" che significa "tagliare", "sfrondare", "sminuzzare", "ridurre", "aprirsi un varco", appunto fra le righe di codice che istruiscono i programmi software. Un hacker era quindi uno che riduceva la complessità e la lunghezza del codice sorgente, con un "hack", appunto, una procedura grossolana ma efficace, che potrebbe essere tradotta in italiano come "zappata" o "accettata" (tagliata con l'accetta) o altrimenti con una "furbata". Rimanendo fedele alla sua radice, il termine indicava anche la realizzazione di programmi aventi l'unico scopo di divertire o di intrattenere l'utente. I computer hacker operavano all'interno di una disciplina scientifica basata sulla collaborazione e sull'aperto riconoscimento dell'innovazione. Non sempre hacker e ricercatori "ufficiali" andavano a braccetto, ma nella rapida evoluzione di quell'ambito le due specie di programmatori finirono per impostare un rapporto basato sulla collaborazione. Pag.44 di 65

45 Cracker: In ambito informatico il termine inglese cracker indica colui che si ingegna per eludere blocchi imposti da qualsiasi software in genere. Il (cracking) può essere usato per diversi scopi secondari, una volta guadagnato l'accesso di amministratore nel sistema desiderato o dopo aver rimosso le limitazioni di un qualsiasi programma. I cracker possono essere spinti da varie motivazioni, dal guadagno economico (tipicamente coinvolti in operazioni di spionaggio industriale o in frodi). I media hanno l'abitudine di definire hacker i cracker, anche se sebbene alcune tecniche siano simili, i primi hanno scopi sostanzialmente creativi/esplorativi mentre i secondi possono rivelarsi addirittura distruttivi. I Crack sono piccoli programmi, spesso messi in circolazione da cracker, che hanno il solo scopo di rimuovere le protezioni di certi programmi. Ad esempio rimuovere il controllo di autenticità da Windows XP. Pag.45 di 65

46 Cosa sono i malware, cosa fanno e perché: Per malware si intende genericamente cosa malvagia. Molte persone usano genericamente il termine Virus ma questo è scorretto, in quanto il Virus è solo una delle tante categorie di malware. Le categorie di malware sono: Virus Trojan Adware Spyware Worm NetBot SpamBot Backdoor Dialer hijacker RootKit Downloader Phishing Tutti questi tipi di malware si differenziano per il modo di funzionare, di propagarsi e di infettare i PC, mentre spesso le loro finalità ultime sono sempre le medesime. Iniziamo subito col dire che quella di prendere malware è una prerogativa di Windows mentre Linux resta sostanzialmente immune a questa problematica. Iniziamo con lo sfatare una credenza comune: Molte persone credono che i malware abbiano lo scopo di rompere il PC, e di causare malfunzionamenti di Windows. In realtà non è così. Prima analizziamo però il perché esistono i malware; chi li scrive? perché? Ma non hanno niente di meglio da fare? Chi scrive e diffonde malware solitamente non sono ragazzini brufolosi e arrabbiati col mondo, che si divertono a vandalizzare i computer delle povere persone, ma gruppi organizzati di malavitosi veri e propri. Lo scopo? Fare soldi ovviamente! Uno dei canali con cui fare soldi è lo spam. Per spam si intendono quelle fastidiose che a volte cominciano ad arrivare nelle caselle di posta delle persone, pubblicizzando siti porno (nei quali per entrare ovviamente bisogna pagare), casinò online e gioco d'azzardo in genere, oggetti per finalità sessuali, vendite online di ogni genere come rolex fasulli, medicine miracolose tra cui il Viagra, pacchetti software contraffatti, etc... Ovviamente molte persone cestinano direttamente queste considerandole una seccatura notevole. Come fare soldi con lo spam allora? La legge dei grandi numeri dice che più spam mandiamo più cresce la probabilità di raggiungere qualche pollo disposto a comprare o a cascarci. Ci sono spammer che generano fino (o anche oltre) 2 miliardi di al giorno che si diffondono nel mondo raggiungendo le caselle di centinaia e centinaia di milioni di utenti. Se anche la percentuale di persone che cade nella trappola dello spammer fosse bassa, ipotizziamo un 2%, l'introito derivante dalla vendita sarebbe notevole. Si stima che ci siano individui (spammer) che guadagnano fino a $ al mese. Quasi 4 volte lo stipendio annuo di un operaio comune. Quindi si! E' difficile trovare di meglio da fare... Pag.46 di 65

47 Perché non arrestano questi individui? E poi cosa centra lo spam con i malware? Non li arrestano semplicemente perché vivono in paesi senza estradizione, le forze di polizia internazionale conoscono l'identità di molti di loro, sanno come si chiamano e dove abitano ma non li arrestano perché il paese dove vivono non considera illegale la loro attività. Mentre lo spam con i malware centra tantissimo. Sarebbe impossibile spedire 2 miliardi di al giorno con 1 solo computer o con un piccolo gruppo di computer, forse con un'enorme server. In questo caso sarebbe necessaria anche una linea di connessione internet velocissima. Se anche lo spammer avesse a disposizione questi mezzi però sarebbe ancora troppo facile filtrare le sue . Arrivando tutte da uno specifico indirizzo IP mittente noto è molto facile applicare filtri in modo che nessuna di esse arrivi a destinazione. Gli spammer quindi diffondono malware in modo da infettare quanti più computer possibili, sparsi per tutto il pianeta. Ogni computer infetto viene chiamato zombie, un gruppo di zombie infettati da uno stesso malware viene definito BotNet (da non confondere con i malware NetBot). Tutti i computer facenti parte di una BotNet sono pronti a prendere ordini da chi ha scritto il malware o da chi ha comprato in affitto la stessa BotNet per fare il suo comodo. Quando si ha a disposizione una BotNet molto grande si ordina a tutti i suoi zombie: Mandate Spam... A questo punto diventa facile mandare i famosi 2 miliardi di al giorno, e diventa molto difficile filtrare questo spam in quanto ogni non è perfettamente uguale all'altra e perché la provenienza non è mai la stessa. Mandare spam però non è l'unico modo per fare soldi usando battaglioni di zombie. Esistono anche altri tipi di speculazioni tra cui potrei citare l'andamento in borsa di aziende poste sotto attacco. Facciamo un'esempio: Tutti conoscono Yahoo. Yahoo è un titolo quotato in borsa ovviamente. Anni fa venne messo in circolazione un malware che aveva lo scopo di diffondersi e infettare quanti più computer possibili, restando silente fino ad un preciso giorno. Il giorno che questo malware si svegliò tutti i computer infettati cominciarono a fare richieste di connessione (apertura dell'home page) verso i server di Yahoo, in breve tempo questi vennero collassati da una mole di richieste migliaia di volte superiore alla norma. Dopo circa 12 ore dall'inizio dell'attacco divenne impossibile, per chiunque, accedere ai servizi di Yahoo in quanto semplicemente le pagine non si caricavano più. Questo tipo di attacco viene chiamato DDoS (Distribuited Denial of Service). A quel punto il valore delle azioni in borsa di Yahoo crollarono e chi sapeva ne approfittò per comprarne quante più poteva. Dopo una settimana il malware era programmato per disattivarsi automaticamente ristabilendo una situazione di normale fruibilità dei servizi di Yahoo, le azione in un mese circa riacquistarono il loro valore originario e chi sapeva aveva decuplicato il suo patrimonio azionario. BotNet vengono usate anche per effettuare attacchi politici versi siti di propaganda avversaria; Il regime comunista Cinese usò questo tipo di attacco verso siti esteri che effettuavano propaganda democratica contro lo stesso regime. Ancora; PC infetti possono essere usati, durante azioni di Craking, per mascherare la vera identità dell'attaccante. Chi viene attaccato vede come attaccante la macchina zombie, e le forze di polizia che indagassero sul caso arrivati allo zombie, non potrebbero sapere chi lo controllava in quanto lo zombie non tiene log, al contrario di provider e server. Pag.47 di 65

48 Ora vediamo brevemente il funzionamento dei vari tipi di malware: Virus: I virus sono programmi estremamente piccoli che funzionano sfruttando solitamente BUG del sistema o del software che attaccano per replicarsi e diffondersi, possono infettare i file eseguibili di altri programmi, supporti come floppy e il bootsector dei dischi fissi. I Virus erano una categoria di malware diffusa ai tempi di MS-DOS, solitamente non avevano fini se non quello di replicarsi e di danneggiare il computer che infettavano. Uno dei primi virus venne scritto e diffuso da Peter Norton a metà degli anni 80, facendo impazzire aziende e gruppi bancari. Alcuni mesi dopo lo stesso Peter Norton commercializzò la prima versione di Norton Antivirus. Oggi la categoria dei Virus è quasi estinta. Trojan: I trojan sono veri e propri programmi creati per ogni tipo di attività maligna si possa effettuare all'interno di un computer, prendono il nome dal loro modo di infettare il computer. Come nella storia mitologica del cavallo di troia i trojan infettano un computer perché è lo stesso utente a scaricarli e ad avviarli, inconsapevole della vera natura del file. Un esempio classico di trojan può essere il falso sito porno da cui si scarica un file exe cliccando sul link clicca qui per accedere. Oppure la falsa finestra di lettore multimediale che chiede l'installazione di un particolare codec per vedere il filmato della tal ragazza sexy, o il programmino che ti fa scaricare gratis la suoneria del cellulare con l'ultima canzone di un cantante famoso. Ci sono anche casi di trojan che vengono distribuiti sotto forma di veri e propri programmi antivirus/antispyware/etc gratuiti, e che apparentemente sembrano anche funzionare. Moltissimi trojan si trovano mascherati anche da Crack, parecchi siti di sottobosco distribuiscono crack (si trovano anche su reti di condivisione come emule) atti a piratare altri programmi commerciali, costosi, bramati da molte persone. L'utente è indotto a credere che il file eseguibile del trojan sia di natura benigna quindi lo apre infettando il proprio PC. I trojan poi per non destare sospetto a volte fanno anche la funzione che l'utente si aspetta. Altre volte all'esecuzione lanciano una falsa finestra di errore che viene poi chiusa dall'utente che si convince che il programma non funziona. Adware: Dalla parola: Cose aggiunte. Gli adware sono programmi dalla dubbia utilità che vengono installati come aggiunte assieme ad altri programmi, spesso Freeware (gratis). Alla categoria degli adware fanno parte tutte quelle toolbar che si aggiungono nel desktop o sul browser Internet Explorer. Programmini per cercare file o cose sul web, magari pieni di pubblicità. E in genere tutte quelle che cose extra che vengono installate assieme ad altri programmi e che con loro non hanno direttamente a che fare. Si possono distinguere adware buoni (o meglio non cattivi) e adware cattivi. Sono adware buoni quando il programma di setup principale da modo all'utente di scegliere se installare anche gli ads oppure no. Come Winamp che installa un collegamento ad un sito da cui acquistare Musica in mp3, oppure CCleaner che chiede se si vuole installare la toolbar di Yahoo per internet explorer. Sono cattivi invece quando si installano di nascosto e bisogna disinstallarli a mano o peggio quando non si riesce più ad eliminarli con le vie convenzionali, rivelandosi piuttosto invasivi. Ad esempio l'adware 180solution si vede nella lista dei programmi installati nel PC ma se si prova a disinstallarlo causa volontariamente un crash di Windows. Cancellando a mano la directory dove è installato in realtà non si elimina completamente il programma in quanto alcune parti restano attive e funzionanti, che hanno una funzione spyware, sono messe altrove. Pag.48 di 65

49 Spyware: Sono programmi che una volta installati nel computer spiano le attività dell'utente. I meno cattivi violano la privacy raccogliendo dati sulle abitudini di navigazione dell'utente (su che siti va), o su che programmi usa. I dati poi vengono solitamente raccolti con il fine di creare pubblicità più mirata che possa attrarre il maggior numero di persone. Quelli più cattivi potrebbero rubare l'intera rubrica di posta elettronica, trasmettendo gli indirizzi ad uno spammer che li inserirà in un database da cui attingere tutti i destinatari a cui verrà mandato lo spam. Altri spiware più mirati, chiamati anche keylogger, potrebbero cercare di intercettare la password che digitiamo quando accediamo a servizi come l'home bancking. Worm: I worm come i trojan possono avere finalità di ogni tipo ma differiscono dai trojan nel modo di propagarsi e infettare. Worm significa verme. I Worm si diffondono all'interno della rete da computer a computer, fruttando vulnerabilità del sistema operativo o dei software su di esso installati. Una macchina infettata da un Worm comincierà segretamente a sondare la rete (che sia locale o internet non ha importanza) alla ricerca di altri computer con la stessa vulnerabilità in cui intrufolarsi a sua volta. Ad esempio vi fu un BUG del firewall di Norton Internet Security 2006 che permetteva la propagazione di un worm che, una volta infettata la macchina, cambiava delle chiavi di registro e corrompeva alcuni file DLL per far si che lo stesso antivirus apparisse perfettamente funzionante, in realtà nessun malware veniva più intercettato. Il worm poi, oltre che a propagarsi ulteriormente, si preoccupava anche di scaricare da internet e installare sul computer una marea di altri malware assortiti (Downloader). NetBot: Sono una categoria di malware dedicata alla creazione di BotNet. La macchina infetta diventa uno zombie che accede ad un canale di chat IRC preimpostato, creando per l'appunto un bot. L'amministratore del canale (ovviamente chi ha fatto il malware o chi ha comprato la rete di bot), poi potrà impartire comandi di massa a tutti i bot presenti nel canale di chat semplicemente scrivendoli nel canale. I NetBot possono essere diffusi con la tecnica dei trojan e dei worm. Spambot: uno Spambot è un malware spara spam. La macchina infetta spedisce di spam in continuazione all'insaputa dell'utente che usa il computer. Gli Spambot possono diffondersi a braccetto con gli stessi spyware che rubano le rubriche di posta. Ci sono spambot invece che si spediscono solo alla rubrica di posta che trovano sul computer locale che hanno infettato e altri spambot che sono anche NetBot che attendono ordini per mandare spammatorie ogni volta diverse in base agli stessi ordini e parametri che ricevono. Anche gli Spambot si diffondono solitamente con la tecnica dei trojan o dei worm. Backdoor: Porta sul di dietro. Le backdoor sono malware con lo scopo di aprire porte di accesso nascoste sul computer che hanno infettato. Il computer zombie in questo caso resta in attesa che qualcuno entri per fare qualcosa. Solitamente i PC infetti da backdoor vengono usati singolarmente, non in massa, per effettuare attacchi di Cracking o per lo scambio di materiale scottante lasciando anonimi e non rintracciabili i veri artefici. A volte anche normali programmi possono trasformarsi, loro malgrado, in Backdoor improprie. Ad esempio un BUG di RealVNC (un piccolo programma usato per gestire teleassistenze) fino alla versione rendeva possibile, ad un'attaccante remoto, l'impossessarsi della macchina. Facendo leva su di un BUG era infatti possibile effettuare un login senza password, dopo di chè si poteva fare sul computer qualsiasi cosa si volesse. VNC infatti esporta video, mouse e tastiera del computer su cui è installato, ovviamente non era volontà degli sviluppatori di VNC permettere ciò. Pag.49 di 65

50 Dialer: I dialer sono programmi che una volta infettato il computer abbattono la connessione internet in corso e riconnettono lo stesso attraverso numeri internazionali a pagamento (144, 166, 005, etc...). Arricchendo il proprietario della linea e causando bollette telefoniche salatissime per l'utente. I dialer spesso si trovano su siti porno, o su siti che distribuiscono loghi e suonerie per cellulari o di casinò online cui è impossibile accedere se non si è connessi tramite la connessione creata dallo stesso dialer. In questo modo l'utente, dopo l'infezione, vedendo che il sito va ed è accessibile, continuerà ad accedervi, spesso ignaro dei costi a cui andrà incontro. Come per gli adware si può differenziare tra dialer buoni e cattivi, quelli buoni avvertono su cosa stanno per fare e su quelli che sono i costi di accesso che si andranno a sopportare accedendo a quel sito tramite lo stesso dialer, inoltre non precluderanno l'utente dall'uso di altre connessione internet differenti. Quelli cattivi invece faranno tutto di nascosto e spesso cancelleranno le altre connessioni ad internet già impostate sul sistema, oppure peggio si maschereranno dietro alle connessioni già esistenti così che l'utente crederà di accedere ad internet con il solito provider. Se cancellate e reimpostate le connessioni su di un computer infetto da dialer cattivo probabilmente non otterrete nulla, il computer continuerà a collegarsi attraverso il numero a pagamento. Il computer infetto da dialer cattivo tenterà di collegarsi in continuazione anche se non richiesto espressamente dall'utente. I dialer solitamente si diffondono solo con la tecnica dei trojan. I dialer funzionano solo se la connessione ad internet viene effettuata attraverso modem analogici o ISDN. La connessione ADSL non avviene componendo un numero di telefono, quindi non c'è il rischio di incappare in costi telefonici inaspettati. In ogni caso anche chi si connette attraverso ADSL può risentire della presenza del dialer, spesso si hanno difficoltà di connessione o navigando si viene sempre reindirizzati sulla pagina che vuole il dialer. Hijacker: Un hijacker è un particolare malware, che come i vecchi Virus, infetta file eseguibili di altri programmi o di sistema, rendendo molto difficile individuarli e/o rimuoverli. Lo scopo ultimo di un hijacker può essere qualunque. Solitamente si diffondono con la tecnica dei Trojan. RootKit: Per RootKit si intende una particolare tecnica di occultamento che può essere usata per nascondere un qualsiasi tipo di malware. Le tecniche usate dai RootKit fruttano lacune architetturali e BUG del sistema operativo per nascondere la presenza del processo maligno e anche gli stessi file del malware agli occhi dell'utente o alle scansioni di programmi antivirus. I RootKit si diffondono con la tecnica dei Trojan solitamente, anche se vi sono casi di diffusione come Worm. Downloader: I downloader sono un ceppo di Trojan il cui unico scopo è quello di cercare di disattivare le protezioni antivirus presenti sul computer e poi scaricare malware assortiti. I Downloader a volte possono essere anche NetBot e scaricare e installare sul computer altri malware a discrezione del padrone della BotNet. Phishing, permettetemi di usare un termine non proprio italianamente corretto ma che rende l'idea: Andare a Pesci. Sono confezionate apposta per cercare di indurre il pesce ad abboccare. Usando tecniche di ingegneria sociale cercano di far credere all'utente di provenire da mittenti fidati. Spedendosi da un computer infetto verso gli indirizzi trovati nella sua stessa rubrica, sono uno dei vicoli di diffusione dei Trojan, in quanto chi riceve l' la vede arrivare da un mittente conosciuto, di cui si fida e quindi più facilmente abboccherà alla trappola, aprendo eventuali allegati e infettandosi a sua volta. Pag.50 di 65

51 Inoltre le phishing spesso cercano di far credere all'utente di provenire da mittenti importanti come gruppi bancari che chiedono di effettuare un login sul conto corrente online, per andare a visualizzare un pagamento ricevuto da qualcuno, una vincita in denaro o semplicemente per cambiare le password perché qualcuno ha tentato troppe volte di forzare l'accesso. Queste spesso sembrano arrivare realmente dalla banca di cui riproducono anche la grafica e i loghi al loro interno. Se il ricevente ha effettivamente un conto su quella banca, ed è abbastanza boccalone può cadere nella trappola. Aprendo i link contenuti in queste si verrà indirizzati verso una pagina che riproduce la grafica del sito della banca, ma inserendo ID e Password in essi si regalerà l'accesso del proprio conto corrente ad uno sconosciuto. E' importante sottolineare che in questo caso nulla va a infettare il PC, non si sfrutta una vulnerabilità di Windows o di qualche altro sistema o programma, ma si frutta la vulnerabilità della stessa mente di una persona. Le di phishing spesso vengono spedite da zombie affetti da spambot. Vediamo un piccolo esempio di phishing: In questo caso l' e' stata marchiata come [SPAM] dai filtri dello stesso server di posta. Si notano evidenti errori linguistici, segno che lo spammer non conosce bene la nostra lingua Se pensate che sia qualcosa male. Soffermandosi poi sul link è possibile vedere che l'url a cui punta è: Pag.51 di 65

52 Aprendo il link nel browser si osserva questa pagina Pag.52 di 65

Software proprietario

Software proprietario Open Source Software proprietario NO Fino a tutti glianni sessanta, anche se in misura decrescente, la componente principale e costosa di un computer era l hardware. Da ciò la scelta dei produttori di

Dettagli

Secondo la Free Software Foundation, un software si può definire libero solo se garantisce quattro "libertà fondamentali":

Secondo la Free Software Foundation, un software si può definire libero solo se garantisce quattro libertà fondamentali: OPEN SOFTWARE Tecnicamente, Open Source significa a codice sorgente aperto. La maggior parte dei programmi sono infatti scritti in linguaggi (più o meno) leggibili dagli umani, quali il C, C++, C#, ecc.;

Dettagli

Storia dell Open Source

Storia dell Open Source S.I.C.S.I. VIII CICLO Storia dell Open Source Storia dell Informatica e del Calcolo Automatico Giuseppe Caldo Elenco Contenuti Definizioni preliminari Prima del software Nascita del software Evoluzione

Dettagli

Corso base GNU/Linux 2014. Latina Linux Group. Sito web: www.llg.it. Mailing list:http://lists.linux.it/listinfo/latina

Corso base GNU/Linux 2014. Latina Linux Group. Sito web: www.llg.it. Mailing list:http://lists.linux.it/listinfo/latina Corso base GNU/Linux 2014 Latina Linux Group Sito web: www.llg.it Mailing list:http://lists.linux.it/listinfo/latina 1 / 34 Obiettivi di questo incontro Fornire delle informazioni di base sul funzionamento

Dettagli

**************************************************************************/

**************************************************************************/ /************************************************************************** * * Guida introduttiva al mondo GNU/Linux. * * Autore: Salvatore "sneo" Giugliano * Email: sneo@tiscali.it * ICQ: 116699222 *

Dettagli

Introduzione all'open Source La filosofia Open Source

Introduzione all'open Source La filosofia Open Source Introduzione all'open Source La filosofia Open Source Introduzione all'open Source Indice del corso Cosa significa il termine Open Source Come nasce l'open Source La nascita del software proprietario La

Dettagli

Introduzione al Software Libero e a GNU/Linux

Introduzione al Software Libero e a GNU/Linux Introduzione al Software Libero e a GNU/Linux Enrico Albertini 1 Di cosa stiamo parlando? L'hardware è la parte del computer che possiamo toccare, ciò che è composto da atomi. Il software, invece, è una

Dettagli

IZ0MJE Stefano sinager@tarapippo.net. per

IZ0MJE Stefano sinager@tarapippo.net. per IZ0MJE Stefano sinager@tarapippo.net per Perché? Se mi piace smanettare ho più libertà e strumenti per farlo Non devo formattare e reinstallare una volta ogni anno o due Il software che gira sul mio pc

Dettagli

La Filosofia ''Open Source'' ed il Sistema Operativo ''Linux''. Gabriele Turco e Tudor Trani.

La Filosofia ''Open Source'' ed il Sistema Operativo ''Linux''. Gabriele Turco e Tudor Trani. La Filosofia ''Open Source'' ed il Sistema Operativo ''Linux''. Gabriele Turco e Tudor Trani. Trieste, 2 Maggio 2016 1) OPEN SOURCE COSA SIGNIFICA OPEN SOURCE? E' un aggettivo che si una per intendere

Dettagli

Altre due categorie non rientrano né nel software di sistema, né in quello applicativo pur contenendo elementi tipici di entrambi sono:

Altre due categorie non rientrano né nel software di sistema, né in quello applicativo pur contenendo elementi tipici di entrambi sono: 3. Il Software TIPI DI SOFTWARE La macchina come insieme di componenti hardware di per sé non è in grado di funzionare. Sono necessari dei programmi progettati dall uomo che indicano la sequenza di istruzioni

Dettagli

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Lezione 6 a.a. 2010/2011 Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono: diversi

Dettagli

Introduzione a GNU/Linux e alle licenze libere

Introduzione a GNU/Linux e alle licenze libere Introduzione a GNU/Linux e alle licenze libere Luca Syslac Mezzalira Montebelluna Linux User Group 20/09/2007 Montebelluna Syslac (MontelLUG) Intro Linux/GPL 20/09/2007 Montebelluna 1 / 27 Licenza d utilizzo

Dettagli

Guida all'uso di StarOffice 5.2

Guida all'uso di StarOffice 5.2 Eraldo Bonavitacola Guida all'uso di StarOffice 5.2 Introduzione Dicembre 2001 Copyright 2001 Eraldo Bonavitacola-CODINF CODINF COordinamento Docenti INFormati(ci) Introduzione Pag. 1 INTRODUZIONE COS'È

Dettagli

Linux?!? A cura di: Carmine Stolfi Roberto Lacava

Linux?!? A cura di: Carmine Stolfi Roberto Lacava Linux?!? A cura di: Carmine Stolfi Roberto Lacava Panoramica su Linux Cosè Linux Perchè Linux è libero Cosè Linux? Linux è un Sistema Operativo Agisce da interfaccia tra l' uomo e la macchina fornendo

Dettagli

Presentazioni. Chi siamo?

Presentazioni. Chi siamo? Presentazioni Chi siamo? Programma Giorno 25 - dalle ore 14.00 alle ore 17.00 Introduzione al free software: - Cos'è il free software e come nasce - GNU/Linux, panoramica sulle distribuzioni - File system

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono:

Dettagli

LE PORTE DELL ACCESSO. iniziativa realizzata nell ambito delle attività di promozione del CSV Napoli

LE PORTE DELL ACCESSO. iniziativa realizzata nell ambito delle attività di promozione del CSV Napoli LE PORTE DELL ACCESSO iniziativa realizzata nell ambito delle attività di promozione del CSV Napoli Le porte dell accesso incontri seminariali per costruire strumenti di inclusione informatica e di contrasto

Dettagli

Università di Padova - Corso di Laurea in Governo delle Amministrazioni - Informatica per ufficio

Università di Padova - Corso di Laurea in Governo delle Amministrazioni - Informatica per ufficio Il lavoro d ufficio La posta elettronica Intranet e Internet Browser OpenSource Mail server Utente 1 Utente 2 Apparato Rete Mail Server Server di posta POP3: (Post Office Protocol) protocollo per gestire

Dettagli

Sistemi Operativi. Modulo 2. C. Marrocco. Università degli Studi di Cassino

Sistemi Operativi. Modulo 2. C. Marrocco. Università degli Studi di Cassino Sistemi Operativi Modulo 2 Schema di un Sistema di Calcolo Programmi Dati di Input Calcolatore Dati di output Modello di von Neumann Bus di sistema CPU Memoria Centrale Memoria di Massa Interfaccia Periferica

Dettagli

Linux e Open Source: Libero! Non "gratis"...

Linux e Open Source: Libero! Non gratis... Linux e Open Source: Libero! Non "gratis"... Di Colucci Martino. 1 Cos'è Linux Linux è un sistema operativo alternativo al più blasonato Windows OS (o al cugino Macintosh) È parente stretto della famiglia

Dettagli

Linux Sia: Linux Fu!

Linux Sia: Linux Fu! Linux Sia: Linux Fu! Pasquale Merella p.merella@blueberrypie.it Associazione Studentesca Blueberrypie Università Commericiale "L.Bocconi" http://www.blueberrypie.it 22 Gennaio, 2002 Abstract Cosa è Linux?

Dettagli

Software Libero e GNU/Linux

Software Libero e GNU/Linux Corso introduttivo a GNU/Linux Padova Software Libero e GNU/Linux Gianluca Moro Faber Libertatis Associazione di Promozione Sociale Faber Libertatis - http://faberlibertatis.org/ Linux che cos'è? Linux

Dettagli

Internet: Software Open Source e Sistemi operativi. conoscerlo al meglio per usarlo meglio. 2011 Gabriele Riva - Arci Barzanò

Internet: Software Open Source e Sistemi operativi. conoscerlo al meglio per usarlo meglio. 2011 Gabriele Riva - Arci Barzanò Internet: conoscerlo al meglio per usarlo meglio Software Open Source e Sistemi operativi Indice Cos'è un Software Open Source Perchè utilizzare Software Open Source Sistemi operativi Licenze software

Dettagli

LINUX E OPEN INNOVATION

LINUX E OPEN INNOVATION BENVENUTI LINUX E OPEN INNOVATION Storia, filosofia e concept a cura di Fabio Lovato (INFO@SCULDASCIALAB.ORG) COSA SAREBBE UN PC SENZA PROGRAMMI? Un computer per funzionare necessita di un sistema operativo.

Dettagli

Il computer. Software libero. Hardware + Software Hardware La «ferraglia», elettronica. Software. Il Sistema Operativo, i Programmi

Il computer. Software libero. Hardware + Software Hardware La «ferraglia», elettronica. Software. Il Sistema Operativo, i Programmi Il computer Hardware + Software Hardware La «ferraglia», elettronica Software Il Sistema Operativo, i Programmi 1 Il computer 2 Cosa compriamo? Quando compriamo un computer, compriamo sia l hardware che

Dettagli

Linux Day 2013. Perche' siamo qui???

Linux Day 2013. Perche' siamo qui??? Perche' siamo qui??? tredicesima giornata nazionale per GNU/Linux ed il software libero Quindi noi siamo qui per sostenere e diffondere il GNU/Linux e il Software Libero!!! Quindi noi siamo qui per sostenere

Dettagli

IL SOFTWARE LIBERO. e la sua filosofia

IL SOFTWARE LIBERO. e la sua filosofia IL SOFTWARE LIBERO e la sua filosofia A cura di: Francesco Murer 26 Giugno 2004 Autore: Francesco Murer Ultima modifica: 24/06/2004 La copia letterale ed integrale e la distribuzione sono permesse con

Dettagli

Unix, Linux, Software Libero e Open Source: cenni storici e definizioni

Unix, Linux, Software Libero e Open Source: cenni storici e definizioni Corsi di Formazione "Open Source & Scuola" Provincia di Pescara gennaio 2005 aprile 2005 Unix, Linux, Software Libero e Open Source: cenni storici e definizioni Spremere denaro dagli utenti di un programma

Dettagli

LugSaronno. Linux day a Saronno. 22 ottobre 2011. I.C.S. Aldo Moro - Saronno

LugSaronno. Linux day a Saronno. 22 ottobre 2011. I.C.S. Aldo Moro - Saronno LugSaronno Linux day a Saronno 22 ottobre 2011 I.C.S. Aldo Moro - Saronno Cosa è il software libero Libertà di eseguire il programma per qualsiasi scopo ( libertà 0 ) Libertà di studiare il programma e

Dettagli

Calcolo numerico e programmazione. Sistemi operativi

Calcolo numerico e programmazione. Sistemi operativi Calcolo numerico e programmazione Sistemi operativi Tullio Facchinetti 25 maggio 2012 13:47 http://robot.unipv.it/toolleeo Sistemi operativi insieme di programmi che rendono

Dettagli

SISTEMI OPERATIVI alla base di tutto. Informatica Applicata Prof.Emanuela Zilio

SISTEMI OPERATIVI alla base di tutto. Informatica Applicata Prof.Emanuela Zilio SISTEMI OPERATIVI alla base di tutto 1 Sistemi Operativi: avvio All avvio del computer, terminate le verifiche del BIOS, il controllo passa al sistema operativo. Il Sistema Operativo opera come intermediario

Dettagli

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi Parte V & Reti Sistema operativo: insieme di programmi che gestiscono l hardware Hardware: CPU Memoria RAM Memoria di massa (Hard Disk) Dispositivi di I/O Il sistema operativo rende disponibile anche il

Dettagli

Come fare a leggere questi dati generati da un programma windows?

Come fare a leggere questi dati generati da un programma windows? Come fare a leggere questi dati generati da un programma windows? A questo punto siamo in possesso di tutti gli elementi per sfruttare appieno le potenzialità di Linux: sappiamo destreggiarci (mai abbastanza)

Dettagli

I Server. Andrea Sommaruga: I server e le OSC (12:15-13:00) I Sistemi Operativi alternativi: Distribuzioni Linux,

I Server. Andrea Sommaruga: I server e le OSC (12:15-13:00) I Sistemi Operativi alternativi: Distribuzioni Linux, I Server Andrea Sommaruga: I server e le OSC (12:15-13:00) I Sistemi Operativi alternativi: Distribuzioni Linux, FreeBSD, ecc. Apache / Tomcat / Jakarta / Samba e l'accesso a Windows Antivirus, firewall,

Dettagli

Strutture dei Sistemi Operativi

Strutture dei Sistemi Operativi Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate di sistema Programmi di sistema Struttura del sistema Macchine virtuali Progetto e implementazione di sistemi

Dettagli

Il Software Libero. Lo Gnu, il simbolo universalmente riconosciuto del Software libero, ma anche acronimo di Gnu is not Unix

Il Software Libero. Lo Gnu, il simbolo universalmente riconosciuto del Software libero, ma anche acronimo di Gnu is not Unix Il Software Libero Un software libero è un software rilasciato con una licenza che permette a chiunque di utilizzarlo, studiarlo, modificarlo e redistribuirlo. Il fenomeno nato negli anni 80 come reazione

Dettagli

Software libero & Community Ing. Andrea Scrimieri

Software libero & Community Ing. Andrea Scrimieri & Community Ing. Andrea Scrimieri andrea.scrimieri@linux.it Origini del software libero 1984......ma prima un passo indietro... "Penso che nel mondo ci sia mercato forse per 4 o 5 computer" "Il microchip:

Dettagli

Open. Source. Il software AUTORE: ELENA COCCO UNIVERSITÁ DEGLI STUDI DI CAGLIARI FACOLTÁ DI GIURISPRUDENZA DIRITTO PRIVATO DELL INFORMATICA

Open. Source. Il software AUTORE: ELENA COCCO UNIVERSITÁ DEGLI STUDI DI CAGLIARI FACOLTÁ DI GIURISPRUDENZA DIRITTO PRIVATO DELL INFORMATICA Il software Open Source UNIVERSITÁ DEGLI STUDI DI CAGLIARI FACOLTÁ DI GIURISPRUDENZA DIRITTO PRIVATO DELL INFORMATICA A.A. 2006/2007 DOCENTI:PROF.BRUNO TROISI DOTT.MASSIMO FARINA La società dell informazione

Dettagli

INDICE PROGRAMMA CORSO

INDICE PROGRAMMA CORSO INDICE PROGRAMMA CORSO PRIMA LEZIONE: Componenti di un computer: Hardware, Software e caratteristiche delle periferiche. SECONDA LEZIONE: Elementi principali dello schermo di Windows: Desktop, Icone, Mouse,

Dettagli

1.2.1.1 DEFINIZIONE DI SOFTWARE

1.2.1.1 DEFINIZIONE DI SOFTWARE Software 1.2 1.2.1.1 DEFINIZIONE DI SOFTWARE Il computer non è in grado di svolgere alcun compito autonomamente Esso può eseguire svariati compiti soltanto se viene opportunamente istruito Ciò avviene

Dettagli

Introduzione al Software Libero

Introduzione al Software Libero Introduzione al Software Libero Linux Day 6 23 novembre 2002 Il software Programma (codice) scritto in un particolare linguaggio di programmazione esistono molti linguaggi di programmazione (Di solito)

Dettagli

GNU/Linux e il software libero a scuola (e non solo) A cura del Prof. Fulvio Ferroni

GNU/Linux e il software libero a scuola (e non solo) A cura del Prof. Fulvio Ferroni GNU/Linux e il software libero a scuola (e non solo) A cura del Prof. Fulvio Ferroni Hardware e software HARDWARE (HW) = Parte fisica del sistema di elaborazione. SOFTWARE (SW) = L'insieme dei programmi.

Dettagli

OPEN SOURCE CLOSED SOURCE

OPEN SOURCE CLOSED SOURCE OPEN SOURCE CLOSED SOURCE VS Con questi due termini si intendono due strategie di distribuzione software. Questi due modelli si differenziano per le modalità di: REALIZZAZIONE DISTRIBUZIONE MANUTENZIONE

Dettagli

Software. Definizione, tipologie, progettazione

Software. Definizione, tipologie, progettazione Software Definizione, tipologie, progettazione Definizione di software Dopo l hardware analizziamo l altra componente fondamentale di un sistema di elaborazione. La macchina come insieme di componenti

Dettagli

Lezione 3. Il software libero. Linux avanzato. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata

Lezione 3. Il software libero. Linux avanzato. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata Lezione 3 Linux avanzato 15 marzo 2013 System Programming Research Group Università degli Studi di Roma Tor Vergata LA 13 3.1 Di cosa parliamo in questa lezione? Il movimento del software libero 1 Nascita

Dettagli

I SISTEMI OPERATIVI CONCETTI INTRODUTTIVI

I SISTEMI OPERATIVI CONCETTI INTRODUTTIVI I SISTEMI OPERATIVI CONCETTI INTRODUTTIVI Il Software Software di Base Sistema Operativo (Software di base essenziale) Software di base non essenziale Utility Driver Software applicativi (Applicazioni)

Dettagli

Il sistema di elaborazione

Il sistema di elaborazione Il sistema di elaborazione Hardware e software Hardware e software Un sistema di elaborazione è formato da: parti hardware: componenti fisiche parti software: componenti logiche i dati da trattare le correlazioni

Dettagli

Corso per i docenti neo assunti due incontri di formazione sulle tecnologie

Corso per i docenti neo assunti due incontri di formazione sulle tecnologie Corso per i docenti neo assunti due incontri di formazione sulle tecnologie BREVI CENNI DI STORIA - 35 anni sono come 100.000 di evoluzione L HARDWARE: componenti input, output e di elaborazione IL SOFTWARE:

Dettagli

LINUX: la forza di un pinguino (e di uno GNU)

LINUX: la forza di un pinguino (e di uno GNU) LINUX: la forza di un pinguino (e di uno GNU) Prima è nato lo GNU Nel 1984 Richard Stallman avvia lo GNU project basato sul principio del free software (reazione a S.O. proprietari) Nel 1985 nasce la Free

Dettagli

Parte VI SISTEMI OPERATIVI

Parte VI SISTEMI OPERATIVI Parte VI SISTEMI OPERATIVI Sistema Operativo Ogni computer ha un sistema operativo necessario per eseguire gli altri programmi Il sistema operativo, fra l altro, è responsabile di riconoscere i comandi

Dettagli

Xerox EX8002 Print Server, Powered by Fiery. Guida introduttiva

Xerox EX8002 Print Server, Powered by Fiery. Guida introduttiva Xerox EX8002 Print Server, Powered by Fiery Guida introduttiva 2009 Electronics for Imaging, Inc. Per questo prodotto, il trattamento delle informazioni contenute nella presente pubblicazione è regolato

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it I moderni Sistemi Operativi!2 Unix È stato creato da Ken Thompson e Dennis Ritchie nel 1969

Dettagli

Corso Software Open Source 2009 I.P.S.I.A A.M. Barlacchi Crotone

Corso Software Open Source 2009 I.P.S.I.A A.M. Barlacchi Crotone Corso Software Open Source 2009 I.P.S.I.A A.M. Barlacchi Crotone Linux is a free Unix-type operating system originally created by Linus Torvalds with the assistance of developers around the world. 1 Free

Dettagli

PARTE IV: I sistemi operativi

PARTE IV: I sistemi operativi PARTE IV: I sistemi operativi 1 Definizione (da Wikipedia) Il sistema operativo, abbreviato in SO (in inglese OS, "operating system") è un insieme di componenti software, che garantisce l'operatività di

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Si intende per Sistema Operativo (o software di sistema) un gruppo di programmi che gestisce il funzionamento di base del computer. Il sistema operativo rimane sempre attivo dal momento

Dettagli

Introduzione al Software libero

Introduzione al Software libero Prato Officina Giovani - 27 ottobre Introduzione al Software libero Alessandro De Maria adblues@prato.linux.it Ugo Mattia umattia@prato.linux.it www.grafica-web.it 1 Linux Day 2007 Prato Officina Giovani

Dettagli

Guida introduttiva. Fiery Network Controller per DocuColor 240/250

Guida introduttiva. Fiery Network Controller per DocuColor 240/250 Fiery Network Controller per DocuColor 240/250 Guida introduttiva In questo documento, ogni riferimento a DocuColor 242/252/260 rimanda a DocuColor 240/250. 2007 Electronics for Imaging, Inc. Per questo

Dettagli

MDRSystem di Rosario Medaglia Modulo 1

MDRSystem di Rosario Medaglia Modulo 1 IL COMPUTER Esistono principalmente due tipi di computer di uso comune: IL PC, PERSONAL COMPUTER è un computer che viene posato su un tavolo e che per la sua considerevole mole ed accessori a seguito,

Dettagli

Sistemi Operativi e Linguaggi

Sistemi Operativi e Linguaggi Sistemi Operativi e Linguaggi 1969: nasce UNIX Ken Thompson (sinistra) Dennis Ritchie (destra) 2 Unix Unix racchiudeva in sé i concetti migliori fin ad allora elaborati, come la multiutenza e il time sharing,

Dettagli

Definizione di Open Source

Definizione di Open Source L Open Source Definizione di Open Source In informatica, open source (termine inglese che significa sorgente aperta) indica un software i cui autori (più precisamente i detentori dei diritti) ne permettono,

Dettagli

Configurare una rete con PC Window s 98

Configurare una rete con PC Window s 98 Configurare una rete con PC Window s 98 In estrema sintesi, creare una rete di computer significa: realizzare un sistema di connessione tra i PC condividere qualcosa con gli altri utenti della rete. Anche

Dettagli

Virtual meeting istruzioni per l uso v 1.0 del 10 aprile 2012 - by LucioTS

Virtual meeting istruzioni per l uso v 1.0 del 10 aprile 2012 - by LucioTS Qui di seguito le istruzioni per partecipare ai virtual meeting 3rotaie. Il software (ad uso gratuito per scopi non commerciali) scelto è TeamViewer (scaricabile da http://www.teamviewer.com) che la momento

Dettagli

Sistemi Operativi: avvio

Sistemi Operativi: avvio Sistemi Operativi: avvio All avvio del computer, terminate le verifiche del BIOS, il controllo passa al sistema operativo. Il Sistema Operativo opera come intermediario tra l hardware del sistema e uno

Dettagli

Il software libero nella didattica. Le tre classi di programmi. Caratteristiche del software. Il progetto GNU

Il software libero nella didattica. Le tre classi di programmi. Caratteristiche del software. Il progetto GNU Il software libero nella didattica Marino Miculan -- Linux Day 2002 -- Gorizia, 23 novembre 2002 Le libertà del Software Libero nella didattica Perché adottare S.L. nella scuola

Dettagli

Perché Gnu/Linux. Breve excursus su quali sono i vantaggi dell'uso di un sistema operativo free e opensource come una distribuzione GNU/Linux

Perché Gnu/Linux. Breve excursus su quali sono i vantaggi dell'uso di un sistema operativo free e opensource come una distribuzione GNU/Linux Perché Gnu/Linux Breve excursus su quali sono i vantaggi dell'uso di un sistema operativo free e opensource come una distribuzione GNU/Linux Vantaggi dell'uso dei formati aperti e liberi per salvare i

Dettagli

GNU/Linux e Software Libero

GNU/Linux e Software Libero GNU/Linux e Software Libero Alessandro Natilla www.alessandronatilla.it Linux Day Bari 26/10/2013 Il software libero Il software è libero quando il realizzatore lo rilascia secondo le libertà fondamentali,

Dettagli

Software Libero. Nicola Asuni

Software Libero. Nicola Asuni Software Libero Nicola Asuni Software "programmi e procedure utilizzati per far eseguire determinati compiti agli elaboratori elettronici (computer) o qualsiasi altro apparato con capacità di elaborazione

Dettagli

Classificazione del software

Classificazione del software Classificazione del software Classificazione dei software Sulla base del loro utilizzo, i programmi si distinguono in: SOFTWARE Sistema operativo Software applicativo Sistema operativo: una definizione

Dettagli

Software Libero. Terra Futura - Firenze

Software Libero. Terra Futura - Firenze Cosa è il Software Libero Terra Futura - Firenze Simone Piccardi: piccardi@softwarelibero.it April 10, 2005 1 L Associazione Software Libero L Associazione Software Libero, è una associazione culturale

Dettagli

Abilità Informatiche A.A. 2010/2011 Lezione 4: SoftWare. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 4: SoftWare. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 4: SoftWare Facoltà di Lingue e Letterature Straniere Software È un insieme di programmi che permettono di trasformare un insieme di circuiti elettronici (=

Dettagli

SISTEMI OPERATIVI E SOFTWARE SOFTWARE. Software: Programmi Applicativi. Software: device driver

SISTEMI OPERATIVI E SOFTWARE SOFTWARE. Software: Programmi Applicativi. Software: device driver SOFTWARE L hardware è la parte che si può prendere a calci; il software quella contro cui si può solo imprecare. SOFTWARE E l insieme dei dati e dei programmi che rendono possibile l inserimento dei dati

Dettagli

LICENZE D'USO E TIPOLOGIE DI SOFTWARE

LICENZE D'USO E TIPOLOGIE DI SOFTWARE LICENZE D'USO E TIPOLOGIE DI SOFTWARE Il software è tutelato dalle leggi sul diritto d'autore, in maniera simile a quanto avviene per le opere letterarie. Il contratto che regola l'uso del software è la

Dettagli

1. Arduino va di moda.

1. Arduino va di moda. 1. Arduino va di moda. Arduino è una piattaforma hardware open source programmabile, interamente realizzata in Italia, che permette la prototipazione rapida e l'apprendimento veloce dei principi fondamentali

Dettagli

Istituto Tecnico Statale Argentia. Linux Day 2010. Scuola Pubblica e Software Libero. Sabato 23 ottobre 2010. Prima Edizione

Istituto Tecnico Statale Argentia. Linux Day 2010. Scuola Pubblica e Software Libero. Sabato 23 ottobre 2010. Prima Edizione Linux Day 2010 Scuola Pubblica e Software Libero Sabato 23 ottobre 2010 Prima Edizione 1 Software libero: programmi applicativi e didattica A cura della Prof.ssa Lina Marino Licenze d'uso e tipologie di

Dettagli

NetSpot Console Manuale dell'utente

NetSpot Console Manuale dell'utente NetSpot Console Manuale dell'utente NetSpot Console Prefazione Questo manuale contiene le descrizioni di tutte le funzioni e delle istruzioni operative per NetSpot Console. Si consiglia di leggerlo con

Dettagli

Corso di Sistemi Operativi DEE - Politecnico di Bari. Windows vs LINUX. G. Piscitelli - M. Ruta. 1 di 20 Windows vs LINUX

Corso di Sistemi Operativi DEE - Politecnico di Bari. Windows vs LINUX. G. Piscitelli - M. Ruta. 1 di 20 Windows vs LINUX Windows vs LINUX 1 di 20 Windows vs LINUX In che termini ha senso un confronto? Un O.S. è condizionato dall architettura su cui gira Un O.S. è condizionato dalle applicazioni Difficile effettuare un rapporto

Dettagli

Introduzione a OpenOffice.org Mauro Barattin e Massimo Masson, 24 marzo 2011 Www.OpenOffice.org

Introduzione a OpenOffice.org Mauro Barattin e Massimo Masson, 24 marzo 2011 Www.OpenOffice.org Introduzione a OpenOffice.org Mauro Barattin e Massimo Masson, 24 marzo 2011 Www.OpenOffice.org Introduzione a OpenOffice.org Mauro Barattin e Massimo Masson, 24 marzo 2011 Cos'è OpenOffice.org Insieme

Dettagli

Non mi resta che augurarvi buona lettura, sperando di aiutarvi a diventare tanti Papà Ricchi! 1. IL RICCO NON LAVORA PER DENARO

Non mi resta che augurarvi buona lettura, sperando di aiutarvi a diventare tanti Papà Ricchi! 1. IL RICCO NON LAVORA PER DENARO Credo che nella vita sia capitato a tutti di pensare a come gestire al meglio i propri guadagni cercando di pianificare entrate ed uscite per capire se, tolti i soldi per vivere, ne rimanessero abbastanza

Dettagli

Guadagnare con l'open source

Guadagnare con l'open source Guadagnare con l'open source Il concetto filosofico di open source è sempre esistito. L'avvento del personal computer modificò i nostri modi di ragionare ma per fortuna non per tutti... {loadposition user5}

Dettagli

- 1 reference coded [3,14% Coverage]

<Documents\bo_min_11_M_16_ita_stu> - 1 reference coded [3,14% Coverage] - 1 reference coded [3,14% Coverage] Reference 1-3,14% Coverage quindi ti informi sulle cose che ti interessano? sì, sui blog dei miei amici ah, i tuoi amici hanno dei

Dettagli

Il computer: primi elementi

Il computer: primi elementi Il computer: primi elementi Tommaso Motta T. Motta Il computer: primi elementi 1 Informazioni Computer = mezzo per memorizzare, elaborare, comunicare e trasmettere le informazioni Tutte le informazioni

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Manuale d uso per l utente

Manuale d uso per l utente Manuale d uso per l utente Promuovere il biogas nelle Regioni Europee www.biogasaccepted.eu Studienzentrum für internationale Analysen 4553 Schlierbach/ Österreich Manual - Page 1/14 Contenuti 1. Requisiti

Dettagli

L'associazione Solira

L'associazione Solira L'associazione Solira SoLiRa = Software Libero Ragusa opera sul territorio dal 2003 attività: seminari, conferenze (Linux Day, Giornata del Software Libero) sito internet: http://www.solira.org Riscaldiamo

Dettagli

Il software del PC. Il BIOS

Il software del PC. Il BIOS Il software del PC La parola software è un neologismo che è stato coniato in contrapposizione all hardware (ferraglia). L hardware si può prendere a calci, contro il software si può solo imprecare. Il

Dettagli

Azienda: Mission e Vision

Azienda: Mission e Vision Azienda: Mission e Vision Apple è l azienda che negli anni Settanta ha rivoluzionato il mercato informatico e che ha reinventato il personal computer con il suo Macintosh, introducendo l interfaccia grafica

Dettagli

Parte 3. Sistemi Operativi. Sistema operativo. Il sistema operativo (Operating System - OS): offre le operazioni base necessarie per:

Parte 3. Sistemi Operativi. Sistema operativo. Il sistema operativo (Operating System - OS): offre le operazioni base necessarie per: Parte 3 Sistemi Operativi Sistema operativo Il sistema operativo (Operating System - OS): offre le operazioni base necessarie per: l uso efficace del computer mediante funzionalità che non sono fornite

Dettagli

Hardware, software e dati

Hardware, software e dati Hardware, software e dati. Hardware il corpo del computer. Software i programmi del computer. Dati la memoria del computer ICT per la terza età Le video lezioni della Fondazione Mondo Digitale Diapositiva

Dettagli

MODULO UNO : La tua STORIA con i SOLDI!!

MODULO UNO : La tua STORIA con i SOLDI!! MODULO UNO : La tua STORIA con i SOLDI Ciao e Benvenuta in questo straordinario percorso che ti permetterà di compiere un primo passo per IMPARARE a vedere finalmente il denaro in modo DIFFERENTE Innanzitutto

Dettagli

Open Source Cosa è, chi lo usa, perchè.

Open Source Cosa è, chi lo usa, perchè. GNU/Linux User Group Perugia http://www.perugiagnulug.org Perugia, 7 dicembre 2007 Paolo Giardini AIP Privacy Officer Eucip Certified Informatics Professional Consulente per la sicurezza delle informazioni

Dettagli

SOFTWARE far funzionare l hardware. Informatica Applicata Prof.Emanuela Zilio

SOFTWARE far funzionare l hardware. Informatica Applicata Prof.Emanuela Zilio SOFTWARE far funzionare l hardware 1 SOFTWARE cos è E l insieme dei dati e dei programmi che rendono possibile l inserimento dei dati e dei comandi da parte dell utente, volti all elaborazione da lui desiderata

Dettagli

Palladium: la fine della libertà digitale!(e non solo)

Palladium: la fine della libertà digitale!(e non solo) Palladium: la fine della libertà digitale!(e non solo) Anche se non siete esperti di informatica o se sapete a malapena cos è un computer vi invito a leggere questo mio articolo che ho creato perché possa

Dettagli

Materiale informativo per i soci

Materiale informativo per i soci Materiale informativo per i soci dell'associazione Culturale ACROS Premessa sul Software Libero e Open Source Il concetto di software libero si può ritenere strettamente legato a quello di libero scambio

Dettagli

Software e Sistemi Operativi Prof. Maurizio Naldi A.A. 2015/16

Software e Sistemi Operativi Prof. Maurizio Naldi A.A. 2015/16 Software e Sistemi Operativi Prof. Maurizio Naldi A.A. 2015/16 Cosa vedremo Il software applicativo Categorie di SW Il sistema operativo Gestione programmi in esecuzione (processi) Gestione memoria Gestione

Dettagli

Software libero: opportunità per tutti?

Software libero: opportunità per tutti? Software libero: opportunità per tutti? Andrea Scrimieri Redattore e amministratore di sistema LUG Parma http://www.parma.linux.it Cosa è il software libero? Il software libero: E' gratuito E' Linux E'

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

LPIC-1 Junior Level Linux Certification

LPIC-1 Junior Level Linux Certification Corso 2012/2013 Introduzione a GNU/Linux Obiettivi Il percorso formativo ha l obiettivo di fornire ai partecipanti le competenze basilari necessarie per installare, configurare e gestire un server/workstation

Dettagli

Utilizzo di MioNet. 2008 Western Digital Technologies Inc. Manuale utente MioNet Versione 1.08

Utilizzo di MioNet. 2008 Western Digital Technologies Inc. Manuale utente MioNet Versione 1.08 Utilizzo di MioNet 1 Avviso di Copyright Non è consentito riprodurre, trasmettere, trascrivere, archiviare in un sistema di recupero, o tradurre in qualunque linguaggio, umano o informatico, in qualunque

Dettagli

Uomo Libero software Libero

Uomo Libero software Libero Uomo Libero software Libero Marco Menardi marco.menardi@gmail.com marco.menardi@gmail.com (fellow Free Software Foundation Europe) presentazione realizzata con OpenOffice.org / LibreOffice Impress 23/10/2010,

Dettagli

EyeOS - intranet desktop mini howto

EyeOS - intranet desktop mini howto EyeOS - intranet desktop mini howto Augusto Scatolini (webmaster@comunecampagnano.it) Ver. 1.0 Agosto 2008 PREAMBOLO EyeOS è un Web Operating System (Sistema Operativo Web) e ambiente collaborativo disegnato

Dettagli