26
Introduzione al free software e all’Open Source Lezione 1/1 29 Novembre 16:30 Aula B.2.4 Relatore: Tarrasqu3

Introduzione al Free Software e all’Open Source

Embed Size (px)

DESCRIPTION

Introduzione a Linux, a GNU, al free software, all'open source.

Citation preview

Page 1: Introduzione al Free Software e all’Open Source

Introduzione al free software e all’Open Source

Lezione 1/1 – 29 Novembre 16:30

Aula B.2.4

Relatore: Tarrasqu3

Page 2: Introduzione al Free Software e all’Open Source

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à.

Page 3: Introduzione al Free Software e all’Open Source

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.

Page 4: Introduzione al Free Software e all’Open Source

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.

Page 5: Introduzione al Free Software e all’Open Source

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.

Page 6: Introduzione al Free Software e all’Open Source

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.

Page 7: Introduzione al Free Software e all’Open Source

IMPORTANTE SAPERE:

Se un software soddisfa i requisiti per essere Free software, allora quasi

sicuramente soddisferà i requisiti per essere Open source e viceversa.

Page 8: Introduzione al Free Software e all’Open Source

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.

Page 9: Introduzione al Free Software e all’Open Source

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

Page 10: Introduzione al Free Software e all’Open Source

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

Page 11: Introduzione al Free Software e all’Open Source

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

Page 12: Introduzione al Free Software e all’Open Source

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)

Page 13: Introduzione al Free Software e all’Open Source

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

Page 14: Introduzione al Free Software e all’Open Source

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

Page 15: Introduzione al Free Software e all’Open Source

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

Page 16: Introduzione al Free Software e all’Open Source

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

Page 17: Introduzione al Free Software e all’Open Source

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à

Page 18: Introduzione al Free Software e all’Open Source

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à)

Page 19: Introduzione al Free Software e all’Open Source

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à

Page 20: Introduzione al Free Software e all’Open Source

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

Page 21: Introduzione al Free Software e all’Open Source

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

Page 22: Introduzione al Free Software e all’Open Source
Page 23: Introduzione al Free Software e all’Open Source

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)

Page 24: Introduzione al Free Software e all’Open Source

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)

Page 25: Introduzione al Free Software e all’Open Source

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

Page 26: Introduzione al Free Software e all’Open Source

Grazie,

per non essere scappati e

per non avermi tirato i pomodori.