Sei sulla pagina 1di 47

Master Software Libero 2016/17

prof. Antonio Servetti Politecnico di Torino

Sistemi e Servizi ICT


Introduzione ai sistemi open source
1 / 47
Sommario
Accesso al codice sorgente (sw open source)
Vantaggi e svantaggi del FOSS
Un po' di storia dell'open source
Abbracciare l'open source
L'Italia del software libero

2 / 47
Da dove incominciamo?
Software Libero (FSF, febbraio 1986)
Gli utenti hanno la libert di eseguire, copiare,
distribuire, studiare, modificare e migliorare il software
Quattro libert:
[0] Eseguire il programma per qualsiasi scopo.
[1] Studiare il programma e modificarlo.
[2] Ridistribuire copie del programma
in modo da aiutare il prossimo. COPYLEFT

[3] Migliorare il programma e di distribuirne


pubblicamente i miglioramenti in modo tale che
tutta la comunit ne tragga beneficio.
https://it.wikipedia.org/wiki/Software_libero#Le_.22quattro_libert.C3.A0.22 3 / 47
Accesso al codice sorgente
L'accesso al codice sorgente (ricetta) un pre-requisito
del software libero che ne permette il diritto di studiarlo,
modificarlo e migliorarlo.
Open Source Definition
OPEN SOURCE
https://opensource.org/osd-annotated
Gli autori rendono (1) pubblico il codice sorgente,
favorendone il (2) libero studio e permettendo a
programmatori indipendenti di (3) apportarvi modifiche
ed estensioni.
Non la stessa cosa del software libero, ma spesso
contempla libera distribuzione, accesso al codice,
lavori derivati, no discriminazione, ecc.
https://opensource.org/osd-annotated 4 / 47
Accesso al codice sorgente
Anche quando il prodotto sw integrato (ridistribuito) in
prodotti terzi (es. NAS, router WiFi, stampante) e non
distribuito come sorgente, la licenza OS impone di
segnalare chiaramente come ottenere il sorgente
(scaricarlo)
Controllare i manuali :-)

- 5 / 47
Codice sorgente == ricetta
Accesso al codice. Senza la ricetta (preconfezionata)
non sono in grado di cucinare la zuppa.
Eseguire il codice. Posso usare la ricetta per preparare
la zuppa a casa mia o da una amico.
Modifiche al codice. La ricetta dice di mettere il
prezzemolo. Ma a me non piace il prezzemolo e uso il
basilico. E la zuppa effettivamente pi buona. Cos
copio la ricetta e la modifico: cancello prezzemolo e
scrivo basilico.
Ridistribuzione del codice. Quando un amico mi chiede
la ricetta della zuppa, passo la mia versione modificata
con il basilco.
http://fsfe.org/freesoftware/basics/4freedoms.en.html 6 / 47
Free and Open Source SW
Caveat: utilizzer i termini software libero e open source
come sinonimi anche se non lo sono (FOSS)

https://en.wikipedia.org/wiki/Free_and_open-source_software 7 / 47
Vediamo un esempio Il vostro
rapporto con il
sw libero
Wordpress.org (open source)
Piattaforma di blogging personalizzabile
Esempio
Imporre
l'inserimento
di un thumbnail
quando si pubblica
un post
functions.php
O anche
debugging di un bug
per software
proprietario o open source

https://gist.github.com/davemac/11312831 8 / 47
Vantaggi del software libero
Premessa (by RMS, https://www.gnu.org/philosophy/practical.html)
Chiedersi quali siano i vantaggi pratici del software
libero come chiedersi quali siano i vantaggi di non
essere ammanettati.
In effetti dei vantaggi ci sono:
Si pu indossare una maglietta.
I metal detector non suonano quando si passa.

Si pu tenere una mano sul volante mentre si

cambia marcia.
Si potrebbero trovare altri vantaggi, ma ce n' proprio
bisogno per convincersi a rifiutare le manette?
Probabilmente no, perch una questione di libert.
9 / 47
Vantaggi del software libero
Da un punto di vista "tecnico"
Per lo sviluppatore
Accedere al contributo della comunit e contribuire a
propria volta: aggiunta di funzionalit, (banalmente)
traduzioni, ecc.
Acquisire e padroneggiare tecnologie (altrui)
Farsi una reputazione, dimostrare le proprie capacit
(git vs facebook)

AA.VV., "Introduction to Free Software", Free Technology Academy 10 / 47


Vantaggi del software libero
Da un punto di vista "tecnico"
Per fornitori di servizi e manutenzione
Crea opportunit di business: specializzarsi
nell'assistenza a prodotti open source
Mette (quasi) allo stesso piano del produttore,
specialmente se (si studia il codice e) si collabora allo
sviluppo
Non ci sono pi barriere insormontabili per
l'integrazione, spesso costosa, lunga, impegnativa
(talvolta impossibile per il sw proprietario)

AA.VV., "Introduction to Free Software", Free Technology Academy 11 / 47


Vantaggi del software libero
Da un punto di vista "tecnico"
Per l'utente finale
Tutti i precedenti: competitivit, no vendor lock-in
In pi si pu:
Controllare il codice (verificarne la sicurezza)
Correggere il codice (patchare i bug)
Estendere (far estenere, anche da terze parti, non
solo dal venditore) il codice secondo le proprie
necessit

AA.VV., "Introduction to Free Software", Free Technology Academy 12 / 47


S-vantaggi del sw libero
Costi nascosti (costi s minori, ma a lungo termine)
Eventuali compromessi per certe funzionalit non
all'altezza, non compatibili
Livello di supporto
Chi responsabile di far funzionare il programma?
Gestione
Occorre partecipare al processo di sviluppo OS
padre, altrimenti tutto vano
Occorre creare una comunit di utenti/sviluppatori
attorno al proprio software
Non si pu semplicemente pagare per ottenere un
-
risultato/funzionalit ( una comunit) 13 / 47
(Ancora) Un po' di storia

14 / 47
Prima del progetto GNU
1950s-1960s: il software (sistema operativo e
compilatori) rilasciato gratuitamente, con codice, insieme
all'hardware (universit, ricercatori) per mainframe (IBM)
1969: Internet basata su software libero ed RFC
1970s: nasce l'industria del software (+ corposo) e le
restrizioni (chiamate licenze!)
1970: AT&T rilascia UNIX gratuito,
ma non distribuibile e modificabile
1980: il copyright viene esteso al software
1980s: AT&T UNIX da gratuito ad "a pagamento"
1983: IBM smette di rilasciare il sorgente insieme al sw
https://en.wikipedia.org/wiki/History_of_free_and_open-source_software 15 / 47
GNU e Free Software Foundation
1983: Stallman fonda il progetto GNU "GNU is Not Unix"
sistema operativo libero (a differenza di Unix)
Sviluppato in linguaggio C e
compatibile con Unix
Kernel (HURD) + Tools
GNU Compiler Collection, GNU C library

GNU Debugger (GDB), coreutils, bintuils, shell


1985: Stallman fonda la Free Software Foundation
e pubblica il GNU Manifesto (http://www.gnu.org/gnu/manifesto.it.html)
1986: Definizione di "free software" Stallman
(as free speech, not free beer) Laser Printer

https://en.wikipedia.org/wiki/List_of_GNU_packages 16 / 47
Licenze libere
GNU General Public License (GNU GPL)
GNU Lesser General Public License (GNU LGPL)
Licenze BSD (licenza originale, licenza modificata e
licenza semplificata)
The GPL is a copyleft license, which
Mozilla Public License means that derivative work can only be
distributed under the same license terms.
Licenza MIT/Expat This is in distinction to permissive free
software licenses, of which the BSD
licenses and the MIT License are widely
Licenza Apache used examples.

Eclipse Public License (EPL)


European Union Public Licence (EUPL)

https://it.wikipedia.org/wiki/Software_libero 17 / 47
Linux e l'Open Source Initiative
1992: Linux kernel 0.12 (Linus Torvalds), licenza GNU
1993: Rilascio di Debian: Linux kernel + GNU tools
1997: Eric Raymond The Cathedral and the Bazaar
analisi cultura hacker e principi del free software
http://www.apogeonline.com/openpress/cathedral
1998: Rilascio codice sorgente di Netscape (NPL)
1998: Open Source Initiative
(Eric Raymond, Bruce Perence)
Open Source Definition
pi orientata al mondo delle aziende
(mette da parte il termine free)
The Cathedral and the Bazaar: http://www.apogeonline.com/openpress/cathedral 18 / 47
Oltre il sistema operativo
1978: TeX (tipografia digitale)
198x: Sendmail (mail delivery sistem) con BSD
1984: X Windows System (server + network) MIT
1990s: Desktop Environments Gnome (GTK) & KDE (Qt)
(GNU Lesser General Public License)
1995: Apache Web Server (Apache License)
precedentemente NCSA HTTPd
SERVER
1998: Netscape Communicator (NPL) vs
DESKTOP
1999: Sun rilascia StarOffice (GPL)

Freeing the Source: The Story of Mozilla - http://www.oreilly.com/openbook/opensources/book/netrev.html

19 / 47
L'Open Source ovunque
2002: MediaWiki (alla base della Wikipedia)
STATO
2005: Git (controllo di versione distribuito) DELL'ARTE
2008: Android (parte) (80% share) [Apache]
http://source.android.com PERMISSIVE

2010: LibreOffice (alternativa a Office)


2011: Bootstrap (framework web)
tra i progetti pi popolari su Github
2013: Docker e Kubernetes (container software)
2015: Swift (Apple programming language) [.NET 2007]
2015: Visual studio code (editor)
https://www.theinquirer.net/inquirer/feature/3013459/how-open-source-took-over-the-world
20 / 47
L'Open Source ovunque
Librerie per programmatori
Repository di librerie per la maggior parte dei
linguaggi: Perl (cpan), Javascript (npm), Python
(PyPI), .NET (nuget)
Tool per programmatori e utenti finali
Repository come Sourceforge, Github, Google Code
Programmi
VLC, Handbrake, Gimp, Audacity, Firefox, 7-zip

21 / 47
Abbracciare l'open source

22 / 47
Comunit Open Source
Github una delle pi grandi community per lo sviluppo
di software open source
5.8+ milioni utenti attivi, 19.4M+ repository attivi
Classifica delle organizzazioni con il maggior numero di
contributi a software open source
Microsoft (opensource.microsoft.com)
Facebook (code.facebook.com)
Google (opensource.google.com)
Netflix (netflix.github.io)

23 / 47
Perch open source?
Collaborare con altri
Per organizzazioni no-profit, ma non solo
Delegare il mantenimento alla comunit
E vendere servizi a valore aggiunto che si basano su
di esso (Bootstrap di Twitter)
A supporto della vendita di hardware
Per aumentarne ed estenderne le funzionalit
Re-licenziamento proprietario
Si rilascia OS una versione base (community) e si fa
pagare quella avanzata (wordpress, mysql)
http://producingoss.com/en/types-of-corporate-involvement.html 24 / 47
Perch open source?
Definire uno standard
Scelta strategica per diffondere, imporre, proteggere il
proprio (Javascript)
Indebolire un competitore
Che non pu (o vuole) aprire il proprio codice (Mozilla)
Creare un ecosistema
Far crescere il valore dell'azienda (Android)
Fare marketing
Associarsi ad un progetto open source una buona
pubblicit
Smart companies try to commoditize their products complements:
https://www.joelonsoftware.com/2002/06/12/strategy-letter-v/ 25 / 47
If you work at a government agency

Open Source e PA
and the material in this book so far
has made you shake your head and
think "Sure, but it'll never work here",
you have my sympathy. Karl Fogel

Valgono le stesse ragioni per le PA o la situazione


differente?
Non hanno (o non interessano) competenze di
sviluppo software interne
Il software commissionato ad altri
Sono avverse al rischio
pi facile rivalersi su una azienda che sulla
comunit OS. Lo sviluppo OS pubblico.
Sono meno dinamiche/flessibili
Per il reclutamento di personale, per la
partecipazione nella comunit OS, per le scadenze
http://producingoss.com/en/governments-and-open-source.html 26 / 47
Open Source e PA
Le ragioni del s Open Government

Sicurezza
Se non si ha accesso al codice non ci si pu fidare
Flessibilit
Eliminare (ridurre) il vendor lock-in
Estenderne le funzionalit

Assicurare l'interoperabilit

Risparmio (vedi anche oltre)


Invece di ri-vendere lo stesso software a pi
organizzazioni lavorare per aggiungere funzionalit
e migliorario
https://opensource.com/resources/ebook/opengov 27 / 47
I falsi miti
Il software open source non sicuro perch chiunque
pu vederne (modificarne) il codice
Non ci sono servizi di supporto per il codice open source
Ci sono aziende che si specializzano in servizi a
supporto dell'utilizzo di sw open source
Se si rilascia un progetto in open source si costretti a
fare altrettanto con tutto il resto
I vincoli delle licenze sono su chi riceve il codice,
non su chi lo produce

http://producingoss.com/en/open-source-and-the-organization.html#dispel-myths 28 / 47
I falsi miti
Gli sviluppatori si appassioneranno automaticamente
perch open source e tutti inizieranno ad usarlo
automaticamente
Tutti abbiamo molti impegni sia sviluppatori, sia utenti
e avvicinarsi ad un nuovo progetto costa sempre
tempo e fatica
Se software libero posso copiare/incollare codice
liberamente
Il codice sempre protetto da delle condizioni (es.
Attribuzione) necessario tenerne conto
(potenzialmente pi difficile che con il proprio codice)

http://producingoss.com/en/open-source-and-the-organization.html#dispel-myths 29 / 47
I falsi miti
Il codice open source meno caro
Non commettere l'errore di scegliere il software open
source con la scusa che meno caro; sii realista, la
situazione pi complessa
Come vero che il costo della licenza non il costo
pi importante del software propietario (lock-in), cos
vero che nel software open source ci sono altri costi
da sostenere (oltre alla licenza, che gratis)

http://producingoss.com/en/open-source-and-the-organization.html#dispel-myths 30 / 47
Abbracciare l'open source
Non solo una questione di software!
Il valore pi grande del FOSS non il codice sorgente
(l'aspetto tecnologico), ma la comunit in cui nasce e si
sviluppa (i processi)
Il software proprietario basato sulla segretezza, sul
denaro e su una gerarchia di gestione di etichetta
Il software libero basato sull'apertura, la
collaborazione ed una gerarchia definita dal consenso
Spesso un tutt'uno con l'open-data, open-government,
trasparenza, apertura, ecc.

- 31 / 47
Abbracciare l'open source
Occorre gestire in modo nuovo
l'organizzazione interna e i processi interni/esterni
Relazioni tra politiche/licenze aziendali e open source
Rapporti tra l'azienda e la comunit OS
Tracciare l'uso di software OS, brevetti, etc.
https://3rdpartycode.microsoft.com/
Riferimento: TODOgroup.org
open group of companies (Microsoft, Facebook, IBM,
Samsung, ...) who want to collaborate on practices, tools, and
other ways to run open source projects and programs
Code contributions, not title or position [or money],
are what determine influence and technical direction in an open source project.
Linux Foundation, How to build OS competency in your company

Microsoft Open Source Office: https://opensource.microsoft.com/resources/office 32 / 47


Abbracciare l'open source
Tutto il processo deve essere libero/aperto
Progetto
La licenza deve essere libera
Il copyright deve essere del committente

Lo sviluppo
Non deve dipendere da brevetti o altro codice
(eventualmente licenziati con il codice)
La messa in campo (deploy)
Non ci devono essere differenze tra il codice aperto
di sviluppo e quello messo in campo
La documentazione deve essere completa
33 / 47
Abbracciare l'open source
When a vendor whose normal mode is proprietary development
is hired to do open source, the result is usually a product
that is not truly open source and that no third party can actually deploy.
Karl Fogel, Producing Open Source Software
Independent verification and validation
Partner open source x scongiurare il vendor lock-in
riveda tutti gli output (documentazione e deploy compresi)
in modo da verificare che sia effettivamente utilizzabile da
terze parti (loro, e dal fornitore stesso)
relazioni direttamente al committente

Ideally, at the end of development for a new open source product,


you should have at least two independent commercial entities
able to deploy and support the software:
the primary development vendor, and the OS IV&V vendor.
34 / 47
L'Italia del software libero
Molti proclami, ma poche azioni

35 / 47
La realt italiana
Comune di Mappano (TO) 11.06.2017
Varie societ e associazioni https://www.linux.it/comune-from-scratch

ILS: Italian Linux Society


Promuove la Conferenza Italiana sul Software Libero

LAit: societ sistema informativo Regione Lazio


RIOS: rete italiana open source
PloneGov.it (vari enti pubblici)
Plone (CMS) e altro in Emilia Romagna
Libre Italia
Libre Difesa: LibreOffice al Ministero della Difesa
http://www.techeconomy.it/open4business/libredifesa/
Libre Umbria: LibreOffice in Umbria
Migrazioni al software libero
https://it.wikipedia.org/wiki/Adozioni_di_software_libero
Comuni di Bolzano, Trieste, Roma, Torino
Regioni Umbria, Emilia Romagna, Lazio
- 36 / 47
Amministrazione digitale
Codice amministrazione digitale (CAD)
Decreto Legislativo 7.3.2005 n.82 RIUSO DAL
BASSO
http://www.agid.gov.it/cad/codice-amministrazione-digitale
In particolare, gli articoli 68, 69 e 70 obbligano le pubbliche
amministrazioni ad adottare, sviluppare e rendere disponibile software
sotto licenza aperta, al fine di promuovere il riuso del software e
ottimizzare la spesa pubblica.

Piano Triennale per l'Informatica nella PA (2017-2019)


Principi per lo sviluppo di progetti digitali
http://pianotriennale-ict.readthedocs.io
/it/latest/doc/13_principi-per-lo-sviluppo-di-progetti-digitali.html RIUSO
DALL'ALTO
Rendere i dati aperti, condividere processi e strumenti
Preferire componenti liberi o open source

- 37 / 47
Codice amministrazione digitale
Capo VI - Sviluppo, acquisizione e riuso di sistemi
informatici nelle Pubbliche Amministrazioni
Art. 68: Analisi comparativa delle soluzioni
Linee guida per la valutazione comparativa
http://bit.ly/1OssjwU
Art. 69: Riuso delle soluzioni e standard aperti
Linee guida sul riuso
http://www.agid.gov.it/agenda-digitale/pubblica-amministrazione/riuso-software
Art. 70: Banca dati dei programmi informatici
riutilizzabili
Catalogo nazionale dei programmi riusabili
http://www.agid.gov.it/catalogo-nazionale-programmi-riusabili

http://www.agid.gov.it/cad/codice-amministrazione-digitale 38 / 47
Banca dati del riuso
Art. 70: Banca dati dei programmi informatici riutilizzabili
Catalogo nazionale dei programmi riusabili
http://www.agid.gov.it/catalogo-nazionale-programmi-riusabili

Non sono
documenti e
progetti vivi

Mi piacerebbe
sapere chi li ha
riutilizzati

- 39 / 47
Valutazione software in riuso
Le amministrazioni che vogliono acquisire in riuso un
programma del catalogo devono effettuarne una
valutazione di convenienza tecnica ed economica
attraverso:
la predisposizione della specifica dei requisiti
funzionali alle esigenze di automazione
dellamministrazione
la valutazione delladeguatezza tecnica del
programma individuato nel catalogo
la valutazione della convenienza economica al riuso
la predisposizione dello studio di fattibilit del progetto
di riuso
http://www.agid.gov.it/agenda-digitale/pubblica-amministrazione/riuso-software/richiesta-software-dal-catalogo 40 / 47
AgID + Team Digitale
Piano Triennale per l'Informatica nella PA (2017-2019)
Team per la trasformazione digitale (beta)
http://teamdigitale.governo.it

Costruire il sistema operativo del Paese: componenti


fondamentali per costruire servizi semplici ed efficaci
Diego Piacentini (ex Amazon) commissario
straordinario per l'attuazione dell'Agenda Digitale
Developers
https://developers.italia.it/

La comunit italiana degli sviluppatori di servizi


pubblici e una piattaforma dove ospitare tutti i
principali progetti tecnologici
- 41 / 47
developers.italia.it
Progetti: SPID, ANPR
in arrivo PagoPA, FatturaPA, CIE
Missione
Sfruttamento teconologie open source
Architetture service oriented
https://en.wikipedia.org/wiki/Service-oriented_architecture
Programmi in cloud
Utilizzo di servizi web

Interoperabilit con terze parti

Open data
Comunit trasparente e collaborativa
- 42 / 47
developers.italia.it
Piattaforma tecnologica
uno spazio su GitHub (https://github.com/italia) per
ospitare il codice sorgente e librerie open-source;
unarea basata su ReadTheDocs per riscrivere la
documentazione finalmente in formato moderno;
una newsletter e uno spazio per le news, per essere
avvertiti quando esce una nuova versione;
un forum aperto basato su Discourse, dove poter
liberamente discutere con colleghi in tutta Italia.

- 43 / 47
Dati aperti
Tutta un'altra musica
AgID Open Data
http://www.agid.gov.it/agenda-digitale/open-data
Il portale dati.gov.it e i portali regionali e comunali
2010: regione Piemonte dati.piemonte.it
Regioni: Lombardia, Lazio, Emilia Romagna, ecc.
Comuni: Firenze, Bologna, Lecce, ecc.
Una questione pi gestibile?

http://www.dati.gov.it/ 44 / 47
Bibliografia
K. Fogel, Producing Open Source Software, 2017
http://producingoss.com/
Agenzia per l'Italia Digitale
http://www.agid.gov.it/
AA.VV., "Introduction to Free Software", Free Technology
Academy
https://archive.org/details/ost-computer-science-fta-m1-
intro_to_fs-v1
Piano triennale per l'informatica nella pubblica
amministrazione (2017-2019)
https://pianotriennale-ict.italia.it/
Riferimenti a pi di pagina
- 45 / 47
[ Attivit ]
Analisi software libero esistente
Cosa pu essere di interesse?
Esistono altre amministrazioni in Italia che hanno
sviluppato/riusato software libero?
Valutazione secondo
i criteri AgID
Curiosare su
developers.italia.it

46 / 47
Ricerca soluzioni esistenti
Si vedano i progetti su cui punta developers.italia.it
https://developers.italia.it/it/progetti/

Si veda elenco dettagliato dei cataloghi in


Circolare 6 dicembre 2013 n.63
Linee guida per la valutazione comparativa ...
[http://bit.ly/1OssjwU]
Sezione 3.2.1

47 / 47

Potrebbero piacerti anche