Upload
luca-galliani
View
520
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Introduzione a Linux, a GNU, al free software, all'open source.
Citation preview
Introduzione al free software e all’Open Source
Lezione 1/1 – 29 Novembre 16:30
Aula B.2.4
Relatore: Tarrasqu3
Definizioni fondamentali
Free Software:
•Nasce agli inizi degli anni 80.
•E' software la cui licenza soddisfa i quattro gradi di
libertà dell'usabilità di un software.
•E' principalmente improntato su concetti etici, sulla
funzionalità e l'usabilità.
Definizioni fondamentali
Open Souce:
•Nasce alla fine degli anni 90.
•Si ridefinisce alla Open Source Definition (OSD) che
stabilisce gli obiettivi legali che deve soddisfare una licenza
per essere effettivamente libera.
•E' principalmente improntata sulla comunità mondiale
attraverso la condivisione dei progetti e del know-how.
I quattro gradi di libertà del software
Libertà 0: Libertà di eseguire il programma per qualsiasi scopo.
Libertà 1: Libertà di studiare il programma e modificarlo.
Libertà 2: Libertà di ridistribuire copie del programma in modo da aiutare il
prossimo.
Libertà 3: Libertà di migliorare il programma e di distribuirne pubblicamente i
miglioramenti, in modo tale che tutta la comunità ne tragga beneficio.
Open Source Definition (OSD) 1. Libera redistribuzione
La licenza non può limitare alcuno dal vendere o donare il software che ne è oggetto, come
componente di una distribuzione aggregata, contenente programmi di varia origine. La licenza non
può richiedere diritti o altri pagamenti a fronte di tali vendite.
2. Codice sorgente Il programma deve includere il codice sorgente e ne deve essere permessa la distribuzione sia come
codice sorgente che in forma compilata. Laddove alcune forme di un prodotto non siano distribuite
con il relativo codice sorgente, deve essere chiaramente indicato il modo per ottenerlo, ad un costo
non superiore ad una ragionevole spesa di distribuzione, preferibilmente scaricandolo gratuitamente
da Internet. Per codice sorgente si intende la forma in cui un programmatore preferirebbe modificare il
programma. Codice sorgente deliberatamente reso illeggibile non risponde ai requisiti. Forme
intermedie come l'output di un preprocessore o compilatore non rispondono ai requisiti.
3. Prodotti derivati La licenza deve permettere modifiche e prodotti derivati, e deve permetterne la distribuzione sotto le
stesse condizioni della licenza del software originale.
4. Integrità del codice sorgente originale La licenza può impedire la distribuzione del codice sorgente in forma modificata, a patto che venga
consentita la distribuzione dell'originale accompagnato da "patch", ovvero file che permettono di
applicare modifiche automatiche al codice sorgente in fase di compilazione. La licenza deve
esplicitamente permettere la distribuzione del software prodotto con un codice sorgente modificato. La
licenza può richiedere che i prodotti derivati portino un nome o una versione diversa dal software
originale.
5. Discriminazione contro persone o gruppi La licenza non deve discriminare alcuna persona o gruppo di persone.
Open Source Definition (OSD)
6. Discriminazione per campo d'applicazione
La licenza non deve impedire di far uso del programma in un ambito specifico. Ad
esempio non si può impedire l'uso del programma in ambito commerciale o nell'ambito
della ricerca genetica.
7. Distribuzione della licenza
I diritti allegati a un programma devono essere applicabili a tutti coloro a cui il programma
è redistribuito, senza che sia necessaria l'emissione di ulteriori licenze.
8. Specificità ad un prodotto
I diritti allegati al programma non devono dipendere dall'essere il programma parte di una
particolare distribuzione di software. Se il programma è estratto da quella distribuzione e
usato o redistribuito secondo i termini della licenza del programma, tutti coloro che
ricevano il programma dovranno avere gli stessi diritti che sono garantiti nel caso della
distribuzione originale.
9. Vincoli su altro software
La licenza non deve porre restrizioni su altro software distribuito insieme al software
licenziato. Per esempio, la licenza non deve richiedere che tutti gli altri programmi
distribuiti sugli stessi supporti siano software open source.
10. Neutralità rispetto alle tecnologie
La licenza non deve contenere clausole che dipendano o si basino su particolari
tecnologie o tipi di interfacce.
IMPORTANTE SAPERE:
Se un software soddisfa i requisiti per essere Free software, allora quasi
sicuramente soddisferà i requisiti per essere Open source e viceversa.
POSIZIONI DIFFERENTI PER UN UNICO CONCETTO
STORICO
Il Free software nasce come gruppo di libera distribuzione del sapere dando
a tutti quanti grande libertà di agire e grande distribuzione di conoscenza, Il
termine stesso “Free” in inglese può essere ambiguamente interpretato sia
come “Libero” che come “Gratuito” che suona come assenza di profitto.
L'Open source invece persegue due obiettivi principali, il primo di natura
commerciale togliendo ambiguità al nome e rafforzando la possibilità di attrarre
investimenti da parte delle grandi società esterne, il secondo di carattere
divulgativo, se il sorgente è disponibile per essere studiato o migliorato o
corretto, automaticamente verrà anche conosciuto da tutti e potenzialmente
utilizzato da privati e aziende anche con ritorni economici per chi lo ha studiato o
divulgato.
IDEOLOGICO
Il Free software, perseguendo fini superiori, si propone di migliorare il
mondo attraverso la condivisione del software e quindi dell'ingegno
umano e concedendo la più grande forma di libertà possibile sia a chi
produce il codice e sia a chi lo usa a fini ricreativi e commerciali.
L'Open source invece per rendere interessante la formula di
presentazione, vuole dare maggior tutela ai proprietari dei progetti
rendendo più articolata la proprietà intellettuale delle opere create dando
in aggiunta la completa libertà di divulgare o mantenere chiuse le
innovazioni apportate.
Faremo chiarezza affrontando il tema delle licenze.
POSIZIONI DIFFERENTI PER UN UNICO CONCETTO
LICENZE
Ovviamente ce ne sono molte e alcune sono abbastanza recenti, ma le principali
sono: •GPL
Questa licenza mira a rispettare I principi esposti nei quattro gradi di libertà. (Copy left)
•LGPL •Questa licenza nasce per motivi commerciali e serve a non influire sulla licenza finale del software utilizzato. (non Copy left)
•MPL •Con questa licenza il software utilizzato non è tenuto a usare solo software libero e non si è più obbligati a distribuire I nuovi sorgenti.
•BSD (Berkeley Software Distribution) •Simile alla precedente va citata perché dal cuore dei sistemi BSD nasce l'OS Apple
POSIZIONI DIFFERENTI PER UN UNICO CONCETTO
Introduzione a Linux
Nasce nel 1969 da un gruppo di ricerca di AT&T corp. Nei Bell Labs.
Principali caratteristiche di UNIX:
- Multiutente.
- Multitasking.
- Gestione memoria virtuale.
- Portabile.
- Aperto.
UNIX
Introduzione a Linux
E' il nome che indica la famiglia degli standard definiti dall’IEEE denominati
formalmente IEEE 1003, E’ lo standard di comunicazione per la
compatibilità di comunicazione tra UNIX e altri sistemi compatibili.
POSIX specifica l'interfaccia comune del sistema operativo all'utente ed al
software in 15 documenti.
L'interfaccia utente standard è la shell Korn.
Altro software, servizi e programmi di utilità a livello di utente includono awk,
echo, e molti altri, nell'ordine delle centinaia.
I servizi di programmazione richiesti inoltre includono l'Input/Output di base.
POSIX (Portable Operating System Interface for uniX)
Introduzione a Linux
Non parleremo della persona perché ci
porterebbe via troppo tempo, tratteremo
semplicemente del suo contributo.
Nel 1983 decide di creare GNU, un progetto
che si prometteva di creare un intero sistema
operativo completamente libero.
Dopo l'introduzione del kernel Linux si iniziò a
parlare del progetto completo GNU/Linux.
Il kernel interno del progetto (HURD), non era
pronto per la produzione e quindi si preferì
utilizzare Linux da subito.
Richard Stallman Attivista
Introduzione a Linux
Gnu tra il 1983 e il 1998 si proponeva di essere un sistema operativo
completo e libero, ma con il nuovo kernel Linux il progetto si consolidò
così elegantemente e si affermò così saldamente che permise al
gruppo di iniziare a indirizzarsi su supporti legali e politici per
affermare la filosofia adottata e per migliorare la presa sul mercato e
la popolarità raggiunta, ovviamente altri progetti del gruppo GNU degni
di nota sono:
- GCC
- GDB
- Bash
- Gnome (GUI)
GNU
Introduzione a Linux
Che cos'è il kernel?
É il nucleo del sistema operativo, si tratta di un
software avente il compito di fornire ai processi
in esecuzione sull'elaboratore un accesso sicuro
e controllato all'hardware.
In pratica il progetto GNU era arrivato a un punto
di grande funzionalità ma privo del kernel
necessario per poter essere completo, il
progetto Linux invece era maturo per il suo ruolo
ma privo di quelle componenti software
necessarie per poter sfruttare tutte le sue
funzionalità.
Il kernel
Introduzione a Linux
Linux nasce da una idea di Linus Torvalds di
creare un kernel completo partendo dal progetto di
Minix (Micro kernel usato dalle università per scopi
didattici).
I due progetti GNU e Linux non si incontrarono per
tutta la durata del loro sviluppo e vennero in contatto
quando ormai erano pronti per essere utilizzati
singolarmente.
La grande compatibilità riscontrata quasi
casualmente in realtà era data dal sistema UNIX e
dalle specifiche standard che in fase di progettazione
ispirarono gli sviluppatori di GNU e di Linux.
Il Kernel
Introduzione a Linux
Linus Torvalds capisce subito che se vuole dare visibilità al suo
progetto lo deve rilasciare con i sorgenti e le specifiche.
Il progetto viene quindi rilasciato Open Source sia per avere da subito
sviluppatori in forza per migliorare il progetto, sia per dare maggiore
visibilità e quindi reputazione al suo progetto di lavoro
Inizialmente il progetto viene schernito dalle grandi software house,
tuttavia viene accolto con grande favore dalle comunità mondiali
che ben presto con il lavoro di condivisione resero grande il kernel.
La comunità col tempo, acquisendo esperienza ha risposto
accuratamente all'appello creando codice sempre più elegante e sicuro
per favorire la diffusione e lo sviluppo del progetto GNU/Linux.
Torvalds e la comunità
Linux oggi
Oggi parlare di software facili da usare (user friendly) crea non poco
imbarazzo rispetto ai tempi passati.
Tempo fa un noto brand di oggetti hi-tech fece del motto user
friendly il suo cavallo di battaglia per la divulgazione del suo sistema e
riuscì a imporsi sul mercato con notevole successo.
In quel periodo aveva senso parlare di difficoltà tecniche, a oggi la
troppa usabilità ha creato sistemi che con incredibile semplicità
compiono le tecniche più difficili in pochi click, guide e tutorial sono
ovunque e ogni funzione è spiegata nei minimi dettagli.
Oggi anche una installazione da zero è diventata semplice e possiamo
affermare che installare una Ubuntu è alla portata di tutti, anche dei meno
esperti.
User friendly (usabilità)
Linux oggi
Oggi GNU/Linux è possibile installarla praticamente ovunque, spesso
viene installata una versione particolarmente customizzata su hardware
dedicato, spesso viene alleggerita per esperimenti e test.
Non esiste un produttore di hardware che utilizzando gli standard
definiti dagli organi internazionali preposti non sia compatibile con le
attuali distribuzioni principali in circolazione.
Con sforzi e prove oggi è anche possibile installare GNU/Linux anche su
sistemi dedicati o proprietari (Esempio i MacBook ).
Il grande successo di portabilità raggiunto non è solo da attribuirsi al
gruppo di sviluppo ma si può attribuire in larga parte all’uso massiccio
e rigoroso che è stato fatto da parte degli organi di standardizzazione
(Esempio IEEE, ISO, ANSI).
Portabilità
Linux oggi
Menzionando la portabilità di Linux è impossibile non menzionare uno dei
casi di maggior successo e divulgazione:
I sistemi operativi Android
Proprio perché dietro a Android Abbiamo Linux che compie il suo eccellente
lavoro dietro le quinte di questo sistema ormai quasi leader nel mercato
degli smartphone.
Portabilità smartphone
Linux oggi
Oggi Linux lo troviamo ovunque:
- Dispositivi embedded (incorporati, non modificabili).
- Internet, visto che la rete è progettata attraverso gli standard, possiamo
affermare che Linux è a proprio agio nel compito di web server o server di
rete.
- Nella telefonia ovviamente si sta facendo strada in tutti i campi.
- Oggi web server aziendali, reti office e fonere sono Linux.
Frequenza
Linux
Venendo trattate in modo esaustivo in altre sedi mi limito a presentare le
principali distro, sono davvero troppe e vi invito a guardare il sito che se ne
occupa:
http://distrowatch.com/
Per le distribuzioni:
- Red Hat - RHEL – Fedora
- Gentoo
- Debian – Ubuntu – Mint
- Archlinux
Le distribuzioni (Distro)
Linux
Venendo trattate in modo esaustivo in altre sedi mi limito a presentare le
principali distro e le principali Interfacce grafiche.
Le principali GUI:
- XFCE
- Gnome e KDE (GTK+ e Qt)
- Unity
- Molto, ma molto altro….
Le interfacce grafiche (GUI)
Principali certificazioni Linux
Inutile dire che un prodotto così versatile e completo preveda delle
certificazioni professionali che quasi sempre costituiscono carattere
preferenziale nell’inserimento nel mondo del lavoro come professionista.
Le principali certificazioni, ma non le sole sono le qui presenti:
Obiettivo di LPI è sviluppare uno standard globale per la certificazione
Linux.
Obiettivo di Red Hat invece è quello di preparare dei professionisti a
risolvere qualsiasi problematica nei loro ambienti dedicati.
Ovviamente quello che si impara in questi percorsi varrà generalmente per
tutti gli ambienti Linux.
http://www.redhat.com/training/certifications/
http://www.lpi-italia.org/certificazione/
Sbocchi professionali
Grazie,
per non essere scappati e
per non avermi tirato i pomodori.