***************** Appunti di Venerdì 2 Marzo 2007 ******************** 1.0.1
Di cosa stiamo parlando
Linux? Cos'è Linux?. Linux è un sistema operativo Multi­utente, Multi­processo, Multi­piattaforma, che gira su diversi modelli di computers tra cui quelli basati sulle CPU della famiglia Intel 386 e successive. Linux, o meglio GNU/Linux è Software Libero. Introduzione a GNU/Linux
Cosa è il Software Libero
La filosofia fondamentale su cui si basa il Software Libero è quella da sempre in uso presso la comunità scientifica e tenuta in alta considerazione per l'elevata prolificità
­ Lo scambio libero delle informazioni
­ La condivisione di idee e risultati
­ L'utilizzo libero del patrimonio comune delle conoscenze
Tale filosofia resa esplicita da quattro libertà fondamentali
Libertà di
­ eseguire il programma per qualsiasi scopo
­ studiare come funziona il programma e adattarlo alle proprie necessità
­ ridistribuire copie del programma ­ migliorare il programma e distribuirne i miglioramenti in modo tale che tutta la comunità ne possa trarre beneficio
E' Software Libero quel software che rispetta queste quattro libertà.
Perché sia possibile studiare il funzionamento del programma e migliorarlo, aggiungendo nuove funzionalità, adattandolo alle proprie esigenze e correggendo eventuali malfunzionamenti è necessario avere accesso al codice sorgente.
Il codice sorgente è il codice scritto da un programmatore ­ solitamente in un linguaggio di programmazione di alto livello quindi vicino al nostro comune modo di comunicare ­ prima che venga convertito in file binario eseguibile (quello che il computer è in grado di capire) attraverso la fase di compilazione.
Codice Sorgente ­­­> Compilazione ­­­> Programma Eseguibile (binario)
Questo perché trattandosi fondamentalmente di una sequenza di numeri è assai arduo effettuare modifiche e riadattare il codice di un programma direttamente in formato binario.
Stallman e la Free Software Foundation
Richard M. Stallman, o RMS come desidera farsi chiamare, nel 1971 era un ricercatore presso il laboratorio di Intelligenza Artificiale del Massachusset Institute of Technology.
'Quando cominciai a lavorare nel laboratorio di Intelligenza Artificiale del Massachusset Institute of Technology nel 1971, entrai a far parte di una comunità in cui ci si scambiavano i programmi, che esisteva già da molti anni.
La condivisione del software non si limitava alla nostra comunità; è un cosa vecchia quanto i computer, proprio come condividere le ricette è antico come il cucinare. Ma noi lo facevamo più di quasi chiunque altro.'
Ad un certo punto le cose cambiarono, un episodio 'simbolo' che racconta lui stesso ha a che fare con una stampante. La stampante era veloce ed aveva una buona qualità ma la carta si inceppava spesso...
Stallman si mette al lavoro per limitare l'inconveniente ma non trova i sorgenti del driver: il produttore non li ha forniti !
Dopo aver inutilmente cercato di ottenerli dal produttore si rivolge ad uno dei programmatori che aveva lavorato sui drivers.
'Mi disse di aver promesso che non me ne avrebbe fornito una copia.
Era la prima volta che mi imbattevo in una clausola di non divulgazione, e mi resi immediatamente conto come questi accordi producano delle vittime. In questo caso la vittima ero io. Io e il mio laboratorio.
La nuova generazione di elaboratori come il VAX o il 68020, avevano il proprio sistema operativo, ma nessuno di questi era libero: si doveva firmare un accordo di non­diffusione persino per ottenerne una copia eseguibile.
Questo significava che il primo passo per usare un computer era promettere di negare aiuto al proprio vicino. Una comunità cooperante era vietata. La regola creata dai proprietari di software proprietario era: se condividi il software col tuo vicino sei un pirata. Se vuoi modifiche, pregaci di farle!
C'erano un programma o dei programmi che io potessi scrivere, per rendere nuovamente possibile l'esistenza di una comunità?'
La risposta era semplice: innanzitutto serviva un sistema operativo.
Stallman decise di lasciare il posto di lavoro al M.I.T. per iniziare la realizzazione di un Sistema Operativo costituito interamente da software che tutti potessero utilizzare liberamente.
Nasce il Progetto GNU
'Nel gennaio 1984 lasciai il mio posto al MIT e cominciai a scrivere software GNU. Dovetti lasciare il MIT, per evitare che potesse interferire con la distribuzione di GNU come software libero. Se fossi rimasto, il MIT avrebbe potuto rivendicare la proprietà del lavoro, ed avrebbe potuto imporre i propri termini di distribuzione, o anche farne un pacchetto proprietario
Scelsi di rendere il sistema compatibile con Unix, in modo che fosse portabile, e che gli utenti Unix potessero passare facilmente a esso.'
Il nome GNU fu scelto secondo una tradizione hacker, come acronimo ricorsivo che significa GNU's Not Unix
GPL ­ General Public Licence
In che modo viene garantita la libertà del Software Libero?
La maggior parte del software esistente viene distribuito sotto una licenza d'uso: per il Software Libero si è realizzata appositamente la General Public Licence.
Diversamente dalla maggior parte delle altre licenze che reprimono la libertà dell'utente del software impedendogli tutta una serie di operazioni, la GPL è realizzata per permettere esplicitamente all'utente le libertà a cui si è accennato sopra e per garantire che queste libertà possano mantenersi nel tempo.
Definizione di Open Source
Spesso si usano indistintamente i termini Open Source e Software Libero come se identificassero la stessa cosa.
In realtà non è così. La definizione Open Source fu coniata da alcuni esponenti della comunità del Software Libero (in inglese Free Software) nel timore dei possibili impatti negativi dei termini 'Free Software' rispetto al mondo degli affari.
Cosa possibile sia per l'ambiguità di significato di Free (libero o gratuito), sia per la carica ideologica associata ai principi di libertà. Con la definizione di Open Source si sono voluti mettere in luce i numerosi vantaggi pratici (facilità di adattamento, affidabilità, sicurezza, conformità agli standard, indipendenza dai singoli fornitori) evitando riferimenti ed implicazioni filosofiche e politiche.
Dunque si tratta di differenze sul piano filosofico, non su quello pratico ­ 'Open Source' mette l'accento sugli aspetti di convenienza pratica tende a tralasciare gli aspetti filosofici legati alla libertà.
­ 'Software Libero' mette l'accento sull'aspetto filosofico, la libertà, che tende a salvaguardare al di là degli aspetti di convenienza immediata.
Cosa è GNU/Linux
All'inizio degli anni '90 il progetto GNU aveva prodotto una notevole quantità di software. La metodologia usata era quella dello scrivere un programma che svolga uno stesso compito di uno già esistente, magari anche con la stessa interfaccia ma partendo da zero. Il software prodotto dal Progetto GNU era molto apprezzato, talmente apprezzato che spesso finiva per sostituire completamente i corrispondenti programmi proprietari.
Però gli utenti potevano utilizzarli su un sistema operativo proprietario perché, per avere un sistema operativo completamente libero mancava ancora una parte che il Progetto GNU non era ancora stato in grado di portare a compimento: il Kernel.
Kernel Che cos'è?
Per kernel si intende il cuore di un sistema operativo, il codice che gestisce le risorse presenti sul nostro sistema e le rende disponibili alle applicazioni.
Il kernel si occupa principalmente di gestire:
­ le comunicazioni con l'hardware del sistema,
­ i file system, la memoria,
­ l'accesso a queste risorse da parte dei processi (le applicazioni che girano sul sistema)...
Kernel monolitico/Microkernel
Esistono diversi tipi di kernel:
­ Monolitico E' un singolo file binario eseguibile in modalità "kernel" che contiene il gestore del processo, della memoria, del sistema e tutto il resto. Esempi di tali sistemi sono UNIX, Linux, MS­
DOS.
­ Microkernel E' un piccolo nucleo ridotto ai minimi termini che ha il compito di gestire le comunicazioni fra i gestori di sistema, processi separati eseguiti al di fuori dal kernel. Esempi di tali sistemi sono BE OS, GNU HURD, MINIX.
­ Modulare Per kernel Modulare si intende un'estensione del kernel monolitico, con la capacità di caricare/scaricare parti di codice (moduli) secondo necessità e richieste. Può esserlo Linux se lo si definisce in fase di configurazione pre­compilazione.
Il kernel monolitico è più veloce, poiché tutto il codice è già stato caricato al bootstrap dell'OS, ma di contro occupa maggiori risorse del sistema.
Un altro punto a favore è la maggiore stabilità: non richiede moduli evitando così pericolose dipendenze.
Il kernel modulare è quello utilizzato da tutte le distribuzioni in fase di installazione di LINUX su una macchina.
GNU/Linux
Il Progetto GNU aveva in cantiere un kernel, nome di progetto Hurd. Era stata scelta una architettura di tipo Microkernel ma questo aveva creato una serie di problemi nella fase di debug che avevano notevolmente allungato i tempi di sviluppo. Lo stesso Hurd tuttora è funzionante ma non ancora abbastanza stabile per essere usato in produzione. All'inizio del 1991 uno studente finlandese, Linus Benedict Torvalds, inizia a lavorare ad un programma per poter leggere la sua posta dall'Università di Helsinki. L'implementazione è a basso livello, funziona senza nessun sistema operativo sottostante ed è in grado di eseguire piu' di un processo per volta, poi viene aggiunta la possibilità di salvare i dati e quindi implementata la gestione di un file system: il terminale di Linus si stava trasformando in un kernel e lui inizia a rendersene conto.
Linus Torvalds fece un annuncio su usenet (libera traduzione)
'Un saluto a tutti gli utilizzatori di minix. Sto realizzando un sistema operativo (solo un hobby, non vuole essere grande e professionale come gnu) per cloni AT 386(486). E' in lavorazione da Aprile, ed inizia ad essere pronto. Vorrei dei pareri dalle persone che apprezzano o non apprezzano minix perché il mio OS in qualche modo, per ragioni di praticità, gli assomiglia.
Ho fatto un porting di bash(1.08) e gcc(1.40) e la cosa sembra funzionare.'
Questo annuncio suscita notevole interesse e molti iniziano a collaborare al progetto, chiedendo funzionalità e proponendo del codice da integrare. Nel Dicembre 1991 viene rilasciato Linux 0.11: è la prima versione ad essere self­hosted, Linux 0.11 può essere compilato sotto Linux 0.11
Nel Marzo 1992 la versione 0.95 è la prima in grado di eseguire l'X Window System (l'interfaccia grafica a finestre)
Il 14 Marzo 1994 vede la luce Linux 1.0.0 Nel Maggio 1996 Tux il pinguino viene proposto come mascotte di Linux.
Il 18 December 1999 vengono rilasciate le IBM mainframe patches per il kernel 2.2.13 che permettono a Linux di essere usato su macchine di classe enterprise
Il 4 Gennaio 2001 viene rilasciato Linux 2.4.0 17 Dicembre 2003 è la volta di Linux 2.6.0 La dimensione del kernel è passata da 10,239 (Linux 0.01) a 5,929,913 (Linux 2.6.0) linee di codice sorgente.
Con la disponibilità del kernel Linux è finalmente disponibile un sistema operativo interamente Libero che possiamo correttamente chiamare GNU/Linux.
Chi usa Linux
Oggi collaborano allo sviluppo di GNU/Linux e di tutti i progetti correlati migliaia di programmatori sparsi per il mondo che lavorano e restano di contatto attraverso internet costutuendo il più grande progetto collaborativo del mondo.
La stessa infrastruttura di internet è in larga parte basata su server GNU/Linux.
Data la sua natura, chiunque può scaricarlo da internet ed iniziare ad utilizzarlo senza bisogno di alcun tipo di codici, registrazioni od altro, di conseguenza è impossibile sapere esattamente quanti sono gli utilizzatori di GNU/Linux.
Una stima piuttosto approssimativa è che sia utilizzato da circa 70 milioni di persone ma l'utilizzo non è limitato a personal computers e workstations.
Linux, per la sua natura di Software Libero ma anche per la stabilità e l'efficienza raggiunte, viene utilizzato in moltissimi ambiti, dai grossi server di produzione ai tablet PC, ai navigatori satellitari (tom­tom), ai router, ai ricevitori satellitari, in robotica, etc
Distribuzioni, perché?
Anche se è possibile per chiunque costruirsi il proprio sistema raccogliendo da internet tutti i componenti ed assemblandoli sul proprio PC può essere un processo dispendioso in termini di tempo e certamente non alla portata di tutti. Per ovviare a questo qualcuno ha pensato di riunire ed organizzare tutti i componenti necessari aggiungendo delle utilità per facilitare installazione e configurazione, creando così quella che viene definita una distribuzione di GNU/Linux. Una Distribuzione (distro) è quindi un confezionamento (packaging) di Linux, con procedure che rendono comoda e semplice l'installazione.
Come si diceva in precedenza il "Linux di Linus" non è veramente un OS ma il semplice kernel. A questo ogni distribuzione aggiunge tutto il software necessario per avere un sistema operativo completo di software applicativo e di servizio. NOTA: questo è il motivo per cui Stallman insiste nella correttezza del chiamarlo GNU/Linux, poiché tutte le utility di base, dal gcc (compilatore) alle utility di gestione file sono state sviluppate dal progetto GNU.
Da notare che, come si diceva in apertura, essendo queste utility (bash, vi, emacs, awk, gcc ecc.) scritte in tempi successivi rispetto agli equivalenti Unix, sono generalmente più evolute e migliori per l'inevitabile progresso della scienza informatica.
Le distribuzioni differiscono per:
­ Numero e versioni dei programmi installabili;
­ Versione del kernel utilizzata e modalità di pre­installazione (il kernel solitamente non viene compilato durante una normale installazione);
­ Procedura di installazione (interfaccia utente e possibilità di definire opzioni e scegliere quale software installare);
­ Organizzazione del sistema, di files di configurazione, programmi, file system;
­ Configurazioni predefinite del software installato.
Panoramica delle principali distribuzioni
Le distribuzioni note sono circa 300. quella che segue è una selezione (arbitraria :­) di quelle più note:
Slackware
Distribuzione GNU/Linux tra le più longeve, fu creata da Patrick Volkerding, allora studente, sulla base della distribuzione SLS, e pubblicata per la prima volta il 16 luglio 1993
Slackware tende a essere essenziale ed elegante, escludendo alcuni programmi ed adottando utilità semplificate in nome di snellezza e stabilità del sistema. Priva di strumenti di configurazione a interfaccia grafica e di un sistema di pacchettizzazione avanzato è considerata per puristi.
E' anche considerata un ottimo modo per imparare il funzionamento di Linux, tanto che i suoi estimatori usano dire: "Quando conosci Slackware, conosci Linux... quando conosci Red Hat, conosci solo Red Hat."
Red Hat
Una tra le distribuzioni Linux più usate di sempre, adattabile ad usi diversi desktop dei nuovi utenti o server di produzione. Pioniera nell'includere un meccanismo di update User Friendly e l'aggiornamento automatico tramite il RedHat Network. Ha introdotto il sistema di gestione di pacchetti rpm che facilita installazione e aggiornamento del software.
Recentemente il marchio Red Hat identifica una serie di 'prodotti' (Sistema Operativo, contratti di assistenza, aggiornamenti, ...) venduti ad aziende corporations (quella che viene definita una distribuzione commerciale) Red Hat ha quindi dato vita al progetto Fedora che rappresenta la continuazione della distribuzione originaria con in più una maggiore apertura alla partecipazione della comunità nello sviluppo della distribuzione stessa rispetto al passato. Fedora rappresenta il laboratorio di innovazione e sperimentazione dal quale RedHat preleva i pacchetti da introdurre nella sua distribuzione commerciale.
Da notare che tutti i sorgenti del Software Libero/Open Source contenuto nelle versioni enterprise di Red Hat sono accessibili a chiunque per gli ovvi motivi di licenza. Mandriva
Mandriva Linux, prima conosciuta come Mandrake Linux, è una distribuzione GNU/Linux nata nel 1998 come derivazione di Red Hat, cui aggiungeva l'allora nuovo desktop grafico KDE
Orientata principalmente al desktop, alla facilità di gestione ed installazione, particolarmente consigliata agli utenti meno esperti La facilità della distribuzione è dovuta ai molti assistenti ed alle procedure guidate che si trovano negli strumenti di configurazione che permettono anche ad un utente con modeste conoscenze informatiche di amministrare il sistema abbastanza agevolmente
Degno di nota il sistema di gestione dei pacchetti, urpmi, che si occupa di scaricare, installare e provvedere alle dipendenze di un programma in automatico, ed il Centro di Controllo da dove si possono controllare con procedure guidate i vari aspetti del sistema
SUSE (openSUSE)
Distribuzione molto diffusa in Europa, solida e ben accessoriata. Fondata alla fine del 1992 come gruppo di consultazione Unix iniziò distribuendo pacchetti software che contenevano Slackware e SLS; pubblicò la prima vera distribuzione S.u.S.E. Linux 4.2 del 1996.
E' caratterizzata da YAST (YAST2), un programma di installazione ed amministrazione che gestisce partizionamento dell'hard disk, setup del sistema, aggiornamenti online, configurazione della rete, del firewall, amministrazione degli utenti e molto altro con una amichevole interfaccia utente.
Nel 2004 la società è stata acquisita da Novell decisa ad incentrare su Linux lo sviluppo della propria attività.
Quindi avvenne una apertura nel processo di sviluppo della serie SUSE Professional in grado di coinvolgere un maggior numero di utenti e sviluppatori tramite la community openSUSE.
Dal server del YaST Online Update è possibile scaricare sia le distribuzioni SUSE OSS, completamente Open Source, che quelle di Novell (SLED – SLES)
Debian Diversamente dalla maggior parte delle distribuzioni più note non è rappresentata o sponsorizzata da una società ma è interamente supportata dalla comunità.
Debian è conosciuta per la sua aderenza alle filosofie di GNU e del Software Libero, le rigide
politiche riguardo alla qualità dei pacchetti e le release, il modo aperto di sviluppare e testare il software e la libertà di scelta concessa all'utente.
Il Debian Project ha formalizzato con i suoi utenti questi impegni attraverso il "Contratto Sociale Debian" e le "Linee Guida Debian per il Software Libero".
Il sistema di gestione dei pacchetti di Debian è tra i più avanzati esistenti e integra un sistema di risoluzione delle dipendenze, la possibilità di effettuare molto facilmente un upgrade (di alcuni pacchetti o dell'intero sistema operativo) e la possibilità di passare da una release ad un'altra.
Viene tradizionalmente considerata per puristi ed esperti risulta generalmente meno user­friendly delle altre per ciò che concerne configurazione e manutenzione. Ubuntu
Ubuntu è nata nel 2004, basata su Debian, ed è un progetto finanziato dalla società Canonical Ltd (Isola di Man), pur rimanendo in tutto e per tutto un software libero. Ideatore dell'iniziativa e titolare di Canonical è Mark Shuttleworth, un giovane imprenditore sudafricano diventato fiero sostenitore dell'open source, al cui servizio ha posto le sue risorse.
Si concentra sulla facilità di installazione e d'uso e sul rilascio regolare (semestrale) delle nuove versioni. Rispetto a Debian, Ubuntu ha un orientamento più spiccato verso l'utilizzo desktop e un'attenzione maggiore al supporto dell'hardware dei portatili.
Il nome deriva da una antica parola Zulu diffusa in varie parti dell'Africa e che corrisponde indicativamente al concetto di "umanità verso gli altri", a volte tradotto anche "io sono ciò che sono per merito di ciò che siamo tutti". Tradizionalmente GNU/Linux veniva distribuito su uno o una serie di supporti, prima Floppy poi CD e la prima operazione da farsi per essere in grado di utilizzare (od anche solo provare il sistema operativo era fare spazio sull'hard disk ed eseguire una installazione. Da alcuni anni sono state sviluppate delle distribuzioni che sono confezionate come Live CD, ovvero distribuzioni che sono in grado di mandare in esecuzione il sistema operativo direttamente dal supporto stesso (CD o DVD) sul quale viene distribuito.
Knoppix
Knoppix è famosa per il fatto di essere una delle piu complete tra le distribuzioni Live CD.
Creata da Klaus Knopper, comprende un sistema avanzato di riconoscimento hardware, che le permette di essere lanciata su quasi tutti i sistemi con architettura x86.
Questa sua peculiarità ne fa uno strumento indispensabile per il recupero di sistemi danneggiati e/o compromessi.
Attualmente lo sviluppo è arrivato alla versione 5.1.1, disponibile sia in formato CD­ROM che DVD.
Essendo derivata da Debian (è una Custom Debian, 100% compliant), può venir usata per avere una installazione veloce e completa della Debian stessa. Una volta installata su disco fisso infatti, tramite il tool messo a disposizione all'interno del CD, si può utilizzare apt­get per terminare l'installazione degli eventuali pacchetti mancanti.
Dalle ultime versioni è inoltre possibile "installare" pacchetti anche su Live­CD.
LiveCD
Quando accendiamo un computer vengono eseguite una serie di operazioni che culminano nella ricerca di un sistema operativo da eseguire. La stessa cosa vale per la maggior parte dei dispositivi elettronici evoluti con la differenza che in molti casi il sistema operativo è in qualche modo integrato nel dispositivo stesso (su chip).
Il compito di eseguire le operazioni preliminari è assegnato al BIOS del PC il quale al termine dei suoi compiti provvede a fare la scansione dei dispositivi presenti alla ricerca, appunto, di sistema operativo da 'lanciare'. La scansione avviene secondo un ordine stabilito nella configurazione dei BIOS ed è modificabile dall'utente.
Tra i dispositivi che possono contenere un sistema operativo in un computer moderno sono compresi: Floppy­Disk, Hard­Disk, CD/DVD­ROM, USB­Disk.
Una distribuzione di Linux su LiveCD è un sistema operativo completo contenuto su un CD­ROM in grado di essere da quello mandato in esecuzione ed utilizzato. Perché ciò accada è necessario che il BIOS sia impostato per fare la scansione del lettore CD prima che dell'hard­disk (che solitamente contiene un sistema operativo installato).
Il Sistema Operativo contenuto su LiveCD provvederà ad utilizzare una parte della ram di sistema per memorizzare quelle parti di se stesso che devono essere di norma essere scrivibili (sul CD non si può scrivere!) Vantaggi:
la possibilità di essere usato su un computer senza intaccare il contenuto del H.D od addirittura privo di hard disk
Svantaggi:
una maggiore lentezza
maggiore fabbisogno di RAM
Quale scegliere?
La scelta di una distribuzione piuttosto che di un'altra dipende da moltissimo fattori. Come si è detto prima ciascuna distribuzione è caratterizzata da un target, da una maggiore o minore facilità d'uso, da una predisposizione d un certo tipo di hardware, etc. Ciascuno tenderà a scegliere quella con cui trova maggiori affinità.
Tipicamente chi si avvicina a linux inizia con il provare una distribuzione su LiveCD, poi installa una distribuzione orientata al desktop e dopo qualche anno migra verso distribuzioni che offrono meno utilità ma un maggiore controllo del sistema. E' possibile installare linux su un computer con windows
GNU/Linux può convivere sullo stesso computer con altri sistemi operativi. All'accensione del computer un programma permette di scegliere quale dei sistemi operativi presenti deve essere avviato. GNU/linux puo' essere installato su un hard disk diverso sullo stesso computer o suddividento l'hard disk già presente.
Le moderne distribuzioni orientate al desktop (difficilmente un server conterrà più di un sistema operativo se non per motivi di test!) sono in grado suddividere il disco, rilevare il sistema operativo già presente e configurare il boot loader in modo da permettere la scelta al boot in modo totalmente o quasi totalmente automatico.
Wine
E' anche possibile eseguire all'interno di GNU/Linux programmi compilati per funzionare con windows questo avviene usando wine.
Wine (Wine Is Not an Emulator, un acronimo ricorsivo, Wine non è un emulatore) è un software nato originariamente per Linux, poi esteso ad altri sistemi operativi, con lo scopo di permettere il funzionamento dei programmi sviluppati per il sistema operativo Microsoft Windows.
Il progetto è stato difficile e dispersivo per gli sviluppatori in parte per l'incompleta o incorretta documentazione delle Win32 API. La maggior parte delle funzioni di Win32 sono documentate, ma alcuni ambiti, come i formati dei file e i protocolli, non hanno una descrizione ufficiale da parte di Microsoft. Lo stesso vale per funzioni di basso livello e per oscuri bug che dovrebbero essere duplicati precisamente affinché le applicazioni si comportino come previsto. Gli sviluppatori di Wine hanno quindi dovuto ricorrere spesso al reverse engineering.
Il progetto Wine non intende realizzare un emulatore. La sua funzione primaria è quella di realizzare un layer di compatibilità per il maggior numero di applicazioni Windows fornendo le API necessarie per il loro funzionamento. In questo senso, Wine non emula nessuna architettura o sistema operativo, bensì fornisce una estensione al supporto run­time dei programmi che richiedono specifiche funzioni di Windows. Per fare ciò Wine si appoggia al sistema X11, in quanto gran parte delle applicazioni native per Win32 necessitano di primitive grafiche per la gestione di finestre (le applicazioni a riga di comando sono comunque utilizzabili tramite il programma wineconsole).
Dove reperire documentazione.
GNU/Linux è sviluppato attraverso internet. La prima fonte di documentazione è proprio internet.
Tra le altre cose è stato creato un Linux Documentation Project che offre un a grande quantità di testi (in varie forme) di cui si possono reperire traduzioni italiane attraverso l'Italian Linux Documentation Project. Il modo piu' pratico per ottenere informazioni è affidarsi a Google in grado di offrire links diretti a documenti che possono interessare la nostra ricerca.
La documentazione puo' presentarsi in varie forme tra cui: How­to (come fare qualcosa) , FAQ (le domande piu' prequenti e relative risposte) pagine man (pagine del manuale in linea di linux), news, siti web contenenti articoli, manuali in formato elettronico. Alcuni esempi in italiano Appunti di Informatica Libera di Daniele Giacomini
http://a2.swlibero.org/
Linux Facile di Daniele Medri
Linux da Zero di Marcello Missiroli
Linux Domande e Risposte di Gaetano Paolone
Vantaggi dell'adozione del Software Libero
Costo: è d'obbligo il punto interrogativo, vediamo perché.
In generale Software Libero non significa gratuito. Purché ne vengano preservate le caratteristiche (le quattro libertà) il Software Libero puo' anche essere venduto. Questo accade ad esempio quando si acquista una scatola con GNU/Linux, naturalmente perché qualcuno possa desiderare di pagare qualcosa che altrimenti puo' trovare in modo gratuito su internet è necessario che la scatola 'contenga' anche un valore aggiunto, solitamente sotto forma di manuale cartaceo o servizio di supporto ad installazione/configurazione.
Comunque sia utilizzare GNU/Linux comporta sempre un vantaggio anche in termini economici se si pensa che una distribuzione contiene una grande quantità di programmi Liberi installati e pronti all'uso, i cui equivalenti commerciali comporterebbero una spesa dalle svariate centinaia alle migliaia di euro.
Libertà di studio: è possibile studiare non solo il comportamento del programma usantolo ma il funzionamento avendo accesso al codice sorgente.
Indipendenza dal fornitore: non si è vincolati ad un singolo produttore. Se anche una azienda fa un contratto con un distributore commerciale di GNU/Linux quando non sia soddisfatto del servizio di assistenza puo' passare ad un fornitore alternativo quasi certamente senza grossi traumi ed addirittura pensare creare Verificabilità del comportamento del codice: avendo il codice sorgente è possibile controllare cosa fa il programma, se anche non si fosse in grado di farlo io posso sempre pagare qualcuno che lo faccia per me. Riutilizzo del codice: avendo i sorgenti è possibile riusare perte del codice (sempre nel rispetto delle licenze) per nuovi progetti.
Sicurezza: GNU/Linux deriva concettualmente da UNIX, un Sistema Operativo nato per lavorare in rete, è stato sviluppato nell'ottica della rete sacrificando talvolta la facilità d'uso per favorire la sicurezza. E' in grado nativamente di garantire sicurezza e prestazioni maggiori rispetto ad altri sistemi.
Dei circa 73.000 virus esistenti oggi, la quasi totalità ha come obiettivo i PC equipaggiati con sistemi operativi Microsoft.
Pochissimi (attualmente si contano sulle dita di una mano) mirano invece ai sistemi operativi Unix like come GNU/Linux.
I sistemi operativi di casa Redmond vengono maggiormente colpiti perché, data la loro grande diffusione e l'elevata vulnerabilità, costituiscono un vero e proprio obiettivo per i potenziali creatori di virus.
GNU/Linux rappresenta, per sua natura, un terreno poco fertile per i virus informatici, data soprattutto la bassa standardizzazione della piattaforma, basta semplicemente considerare le differenze che intercorrono tra le diverse distribuzioni Linux (Debian, Slackware, SuSe e così via). In ambiente Linux, perché un virus raggiunga il suo obiettivo, bisogna servirsi di una parte del sistema operativo e i controlli di accesso basati sui proprietari ed i gruppi restringono fortemente il campo di lettura, scrittura ed esecuzione dei file di accesso. Per cui è difficile scrivere un virus che possa diffondersi indisturbato in un ambiente Linux se non all'interno di un singolo account utente.
Problema dei formati
Un file documento (ad esempio una relazione o una poesia) che non sia in puro formato testo (.txt) ma che sia invece stato realizzato con un word processor (.doc) contiene molte informazioni oltre al contenuto oggettivo (la poesia). Nel caso di un word processor verranno, ad esempio aggiunte informazioni sulla formattazione del testo, il tipo e le dimensioni dei caratteri e via dicendo.
La disposizione di queste informazioni all'interno del file dipende da programma che lo ha generato (ed in ultima analisi dal programmatore che ha pensato quel formato di documento). Se io voglio leggere correttamente quel documento ho bisogno di un programma che conosca la disposizione di quelle informazioni. Il problema nasce se il produttore del programma non ha fornito documentazione su come quelle informazioni sono memorizzate all'interno del file. Per leggere quel file potrei essere costretto ad acquistare il programma che lo ha generato.
Nonostante i produttori di software commerciale, quasi mai documentino i formati utilizzati da propri programmi e talvolta utilizzino modifiche a quei formati per indurre una migrazione di massa (a pagamento) a nuove versioni dei propri programmi, i programmi Open Source in generale possiedono buone capacità di interazione con i files generati da software proprietario.
Le slides [#90] e [#91] accennano ai formati accessibili rispettivamente da OpenOffice.org (pacchetto office) e Gimp (disegno bitmap).
La [#90] fa riferimento ai modelli di File System gestibili in modo nativo da Linux (tabella di help del programma fdisk)