Scarica le slides di Daniele Mazzocchi dell`Istituto Superiore Mario

Transcript

Scarica le slides di Daniele Mazzocchi dell`Istituto Superiore Mario
Software libero e Open
Source: alcuni aspetti
significativi
Daniele Mazzocchi - ISMB
[email protected]
Questioni preliminari
• Perché il punto interrogativo nella
domanda che introduce il convegno?
• Un approccio neutro rispetto al tema
03/12/2012
2
Definizioni
• Open source oppure software libero?
Sono sinonimi o parliamo di cose diverse?
• Stiamo parlando di cose diverse anche se
molte volte sono messe assieme come ad
esempio nella sigla FLOSS
(Free/Libre/Open Source Software)
03/12/2012
3
La storia: in principio era il
software libero
• Stiamo parlando di qualcosa di recente?
– Come altre volte nell'informatica fenomeni
apparentemente nuovi hanno radici antiche
– Agli albori dell'informatica (anni '50 e '60) il
software era distribuito in modo libero
– Negli anni '70 inizia a diffondersi il software
proprietario
• Poi circa 30 anni fa…
03/12/2012
4
L'annuncio
• Il 27 Settembre 1983 Stallman pubblica un
annuncio che inizia così: "Starting this
Thanksgiving I am going to write a
complete Unix-compatible software
system called GNU (for Gnu's Not Unix),
and give it away free to everyone who can
use it. Contributions of time, money,
programs and equipment are greatly
needed."
03/12/2012
5
La grande ambiguità in origine
• Questa volta la lingua inglese è un
problema
• Si parla di free software intendendo
software libero non software gratuito
– "Free as in speech, not as in beer"
– Purtroppo in inglese free significa sia libero
sia gratuito
03/12/2012
6
Quattro libertà fondamentali
– Libertà 0, o Libertà fondamentale:
La libertà di eseguire il programma per qualunque
scopo, senza vincoli sul suo utilizzo.
– Libertà 1:
La libertà di studiare il funzionamento del
programma, e di adattarlo alle proprie esigenze.
– Libertà 2:
La libertà di redistribuire copie del programma.
– Libertà 3:
La libertà di migliorare il programma, e di
distribuirne i miglioramenti.
03/12/2012
7
La storia continua (1/2)
• Nel 1984 inizia l'effettivo sviluppo di GNU
• Nel 1985 nasce la Free Software Foundation
– Licenza GPL
– Copyleft: è una forma di tutela della proprietà
intellettuale estremamente forte
• Nel 1991 Linus Torvald rende disponibile la
prima versione del kernel di Linux. Nel 1992
viene distribuito come GPL
• Nel 1995 nasce il progetto Apache
• Nel 1997 Eric Raymond, The cathedral and
the bazaar
03/12/2012
8
Goodbye, "free software"; hello, "open
source"
• Altro annuncio l'8 Febbraio 1998 (sono già passati quindici
anni dall'annuncio di Stallman) di Eric Raymond:
After the Netscape announcement broke in January I did a lot of
thinking about the next phase -- the serious push to get "free
software" accepted in the mainstream corporate world. And I
realized we have a serious problem with "free software" itself.
Specifically, we have a problem with the term "free software", itself,
not the concept. I've become convinced that the term has to go.
The problem with it is twofold. First, it's confusing; the term "free" is
very ambiguous (something the Free Software Foundation's
propaganda has to wrestle with constantly). Does "free" mean "no
money charged?" or does it mean "free to be modified by anyone",
or something else?
• Nasce OSI (Open Source Initiative)
03/12/2012
9
Definizione OSI (1/2)
•
•
•
•
•
1. Free Redistribution The license shall not restrict any party from selling
or giving away the software as a component of an aggregate software
distribution containing programs from several different sources. The license
shall not require a royalty or other fee for such sale.
2. Source Code The program must include source code, and must allow
distribution in source code as well as compiled form. Where some form of a
product is not distributed with source code, there must be a well-publicized
means of obtaining the source code for no more than a reasonable
reproduction cost preferably, downloading via the Internet without charge.
The source code must be the preferred form in which a programmer would
modify the program. Deliberately obfuscated source code is not allowed.
Intermediate forms such as the output of a preprocessor or translator are
not allowed.
3. Derived Works The license must allow modifications and derived works,
and must allow them to be distributed under the same terms as the license
of the original software.
4. Integrity of The Author's Source Code The license may restrict sourcecode from being distributed in modified form only if the license allows the
distribution of "patch files" with the source code for the purpose of modifying
the program at build time. The license must explicitly permit distribution of
software built from modified source code. The license may require derived
works to carry a different name or version number from the original
software.
5. No Discrimination Against Persons or Groups The license must not
discriminate against any person or group of persons.
10
03/12/2012
Definizione OSI (2/2)
•
•
•
•
•
6. No Discrimination Against Fields of Endeavor The license must not
restrict anyone from making use of the program in a specific field of
endeavor. For example, it may not restrict the program from being used in a
business, or from being used for genetic research.
7. Distribution of License The rights attached to the program must apply
to all to whom the program is redistributed without the need for execution of
an additional license by those parties.
8. License Must Not Be Specific to a Product The rights attached to the
program must not depend on the program's being part of a particular
software distribution. If the program is extracted from that distribution and
used or distributed within the terms of the program's license, all parties to
whom the program is redistributed should have the same rights as those
that are granted in conjunction with the original software distribution.
9. License Must Not Restrict Other Software The license must not place
restrictions on other software that is distributed along with the licensed
software. For example, the license must not insist that all other programs
distributed on the same medium must be open-source software.
10. License Must Be Technology-Neutral No provision of the license may
be predicated on any individual technology or style of interface.
03/12/2012
11
La storia continua (2/2)
• Nel 1998 Linux a ricevere sostegno dalle
grandi aziende
• Nel 1999 RedHat viene quotata in borsa.
Oggi ha 5000 dipendenti e fattura più di un
miliardo di dollari (con un utile superiore ai
140 milioni)
• 2004 Canonical fa uscire Ubuntu
• Nel 2007 Android viene presentato
pubblicamente
03/12/2012
12
Una parziale conclusione
• Parliamo di cose diverse ma le differenze in pratica tra
open source e software libero non sono così marcate:
"The term “open source” software is used by some people to
mean more or less the same category as free software. It is
not exactly the same class of software: they accept some
licenses that we consider too restrictive, and there are free
software licenses they have not accepted. However, the
differences in extension of the category are small: nearly all
free software is open source, and nearly all open source
software is free. We prefer the term “free software” because it
refers to freedom—something that the term “open source“
does not do." (dal sito GNU)
03/12/2012
13
La proliferazione delle licenze
• OSI ne censisce circa una settantina. Nel seguito alcune delle più
significative:
• GPL (General Public Licence)
– Diritto di copiare, distribuire e modificare il software
– La più restrittiva per quanto riguarda altri progetti che beneficiano di
componenti GPL: i progetti derivati devono essere distribuiti come GPL
• LGPL (Lesser GPL)
– Meno restrittiva, permette anche a software proprietario di includere
codice sviluppato sotto questa licenza
• BSD
– Più permissiva, meno obblighi della LGPL
• MIT
– Forse la più permissiva: sostanzialmente si può fare quello che si vuole
ancorché si indichi il testo della licenza in quello che si distribuisce
• Apache
– Licenza sempre di tipo permissivo
• Per ogni dubbio e/o richieste di approfondimento in Piemonte esiste
SeLiLi (Servizio Licenze Libere), http://selili.polito.it/ promosso dal
centro Nexa dell'Università di Torino e da Regione Piemonte
03/12/2012
14
Perché un'azienda dovrebbe scegliere
FLOSS
• Perché ogni volta dovremmo reinventare la ruota?
Dato il successo che ha avuto in questi anni
probabilmente cercando in rete posso trovare almeno
un semilavorato da cui partire in molti casi.
– Ma ci sarà così tanto software OS in giro? (una risposta
parziale nella slide successiva)
• Per beneficiare della presenza di una community che
porta avanti lo sviluppo in modo continuativo:
identificazione e correzioni di bug, possibilità di
formarsi ed imparare seguendo mailing list, siti, etc.
• Potrei non avere tutte le risorse per sviluppare in casa
tutte le funzionalità di cui ho bisogno da un software:
partecipo ad uno sforzo collettivo
03/12/2012
15
Ma dove lo trovo il software OS?
• Github
– 2,624,338 di utenti per 4,420,899 di repository
– Raccolti nel 2012 finanziamenti da Venture
Capital per 100 milioni di dollari
• Google Code
– Più di 250000 progetti
• Sourceforge
– Più di 350000 progetti per più di due milioni di
utenti registrati
• Ohloh
– Ambisce a diventare il punto di riferimento per la
ricerca del software sui vari repository dando
anche un'idea di quanto i progetti sono attivi
03/12/2012
16
Linux
• Come già detto nasce nel 1991
• Sono passati venti anni
• Dall'idea di un singolo al più importante esempio
di sviluppo collaborativo presente oggi
– Dal 2005 circa 8000 contributori allo sviluppo del
kernel con il coinvolgimento di circa 800 aziende
• Per la versione 3.2 1316 contributori per 226 aziende
identificate e tra i primi venti contributori c'è per la prima volta
Microsoft
– Una nuova release circa ogni 2-3 mesi
– Nel 1991 10000 linee di codice, oggi 15 milioni
• Dal 2007 esiste la Linux Foundation
03/12/2012
17
Linux Foundation
• Obiettivo: supportare la diffusione e la crescita di Linux
sostenendo il lavoro di Torvald e della community di
sviluppatori
• Si tratta di una realtà molto importante sostenuta da
un gran numero di aziende. Tre diversi livelli di
associazione
– Platinum (500000$/anno) : Fujitsu, HP, IBM, Intel, NEC,
Oracle, Qualcomm Innovation Center, Samsung
– Gold (100000$/anno): AMD, China Mobile, Citrix, Cisco,
ETRI, Google, Hitachi, Huawei, Motorola, Netapp, Nokia,
NYSE Technologies, Panasonic, Sony, Suse, Toyota
– Silver (da 5000$ a 20000$): più di 125 nomi
• Con qualche semplice calcolo si può vedere che
parliamo di una realtà che può contare su un sostegno
finanziario superiore ai 7 milioni di dollari all'anno
03/12/2012
18
I maggiori contributori
• None: l'azienda sponsor non
identificata
• Unknown: probabilmente indipendenti
03/12/2012
19
Apache
• Creato nel 1995 per proseguire lo sviluppo di
NCSA Mosaic
• Ora una realtà molto più variegata: oltre al server
web altri 150 progetti ospitati
• Un'organizzazione apposito l'Apache Foundation
per la governance
• Molti sponsor importanti
– Platinum: Citrix, Microsoft, Yahoo, Facebook, Google
– Gold: AMD, HortonWorks, HP, IBM, Matt Mullenweg
(creatore di Wordpress)
– Almeno 700000 dollari assicurati dagli sponsor
03/12/2012
20
Apache Foundation
• Non profit
• Principalmente affidata a volontari
– Non vengono pagati né gli sviluppatori né i
membri del governing board
– La maggior parte degli sviluppatori in realtà è
sostenuta dalle aziende stesse: si tratta in molti
casi di dipendenti
• Processo partecipativo e collaborativo
– Il tutto deve avvenire sulle mailing list
– Processo di votazione per l'accettazione
03/12/2012
21
Un po' di progetti Apache
•
•
•
•
•
•
•
•
HTTPD
Hadoop
Cassandra
CouchDB
OpenOffice
Tomcat
Subversion
Spamassassin
03/12/2012
22
Grado di diffusione di Apache
HTTPD
03/12/2012
23
Browser più diffusi in Europa
03/12/2012
24
Diffusione dei browser nei vari paesi
03/12/2012
25
OK, quindi non c'è nessun
problema
• Ci sarà sicuramente un pezzo di software OS che
fa al caso mio
– Con i numeri visti prima nei repository…
• Ma non è tutto così semplice. Da un'analisi
presentata quest'anno ad OSCON:
– 324,000 progetti
– 268,554 progetti con un solo sviluppatore (83%)
– Solo 21 progetti con più di 100 sviluppatori
03/12/2012
26
Come scelgo un progetto open
source
•
•
•
•
•
•
•
•
Sono incluse tutte le funzionalità di cui ho bisogno?
Qual è la licenza?
Funziona?
Quando è stato l'ultimo commit?
Quanti contributori ci sono?
C'è una community?
Da quanto è attivo il progetto?
Ne so abbastanza per contribuire oppure per continuare in
autonomia se necessario?
• Ci sono aziende che offrono supporto?
• C'è documentazione? E' coerente ed aggiornata rispetto al
codice?
• Quando è stata l'ultima release?
03/12/2012
27
Altri elementi da valutare con
attenzione
• Pacchetti e supporto da parte delle distribuzioni
• Roadmap del progetto
– Quali sono i punti aperti?
• Lifecycle di una release (e lunghezza del relativo
supporto)
• Update di sicurezza
• Dimensioni del progetto
• C'è per caso una sola azienda dietro?
• Qual è il perimetro della parte effettivamente OS?
In alcuni casi c'è solo il core, per il resto diventa
un discorso più commerciale
03/12/2012
28
Alcuni modelli di business proposti
• Vendita di servizi (consulenza, personalizzazione,
formazione, assistenza)
• Meccanismo del dual/twin licensing
– Una versione con licenza GPL.
– Una versione con licenza commerciale. Chi la adotta
non deve redistribuire gli ulteriori sviluppi come GPL
• Software con doppia versione: libera e
commerciale. La versione libera ha funzionalità più
limitate, la versione commerciale aggiunge altri
elementi sotto forma di plug-in od altre integrazioni
– La versione libera deve comunque essere
sufficientemente appealing
03/12/2012
29
Alcune considerazioni economiche
03/12/2012
Da "The economic case for the Open Source Foundations"
di Dirk Riehle
30
Alcuni settori di grande
successo, altri meno
• Alternative a Microsoft Office (dominante sul mercato)
– Apache OpenOffice, LibreOffice, etc.
– Più minacciose potenzialmente le alternative SaaS
(Google Docs, Zoho)
• ERP
– Esistono alcune soluzioni OS ma per ora percentuali di
mercato molto basse
– Anche qui forse le alternative SaaS (vedi Netsuite) stanno
prendendo piede
• Sistemi operativi desktop
– Le varie versioni di Windows sono sempre il 90% del
mercato, poi Mac OS X tra il 5 ed il 7%
– Ne futuro le piattaforme desktop saranno così importanti?
03/12/2012
31
Contesto legislativo: adozione
nella PA
• Diversi provvedimenti, leggi regionali presenti
in
–
–
–
–
Toscana
Umbria
Veneto
Piemonte, n. 9 del 26 marzo 2009 Norme in
materia di pluralismo informatico, sull'adozione e
la diffusione del software libero e sulla portabilità
dei documenti informatici nella pubblica
amministrazion
– Puglia
03/12/2012
32
Art. 6 (Adempimenti per la Regione)
• 1. La Regione utilizza, nella propria attività, programmi per
elaboratore elettronico dei quali detiene il codice sorgente. La
disponibilità del codice sorgente consente alla Regione di modificare
i programmi per elaboratore in modo da poterli adattare alle proprie
esigenze.
• 2. Fatte salve le soluzioni in uso alla data di entrata in vigore della
presente legge ed entro i limiti di cui all'articolo 11, la Regione nella
scelta dei programmi per elaboratore elettronico, privilegia i
programmi appartenenti alla categoria del software libero e i
programmi il cui codice è ispezionabile dal titolare della licenza.
• 3. La Regione, in sede di acquisizione dei programmi informatici,
effettua, in relazione alle proprie esigenze, una valutazione
comparativa di tipo tecnico-economico tra le diverse soluzioni
disponibili sul mercato. La Regione tiene altresì in considerazione
oltre al costo totale di possesso di ciascuna soluzione e al costo di
uscita, anche il potenziale interesse di altre amministrazioni al riuso
dei programmi informatici e la più agevole interoperatività.
• 4. La Regione quando utilizza un software proprietario motiva la
ragione della scelta.
• 5. La Regione rende disponibili come software libero i
programmi informatici sviluppati in base a proprie specifiche
ed interamente finanziati con fondi pubblici.
03/12/2012
33
Ultima novità del 2012
•
•
Decreto-legge 22 giugno 2012, n. 83 , Decreto Sviluppo (in supplemento
ordinario n. 129/L alla Gazzetta Ufficiale - serie generale - n. 147 del 26
giugno 2012), coordinato con la legge di conversione 7 agosto 2012, n. 134
recante: «Misure urgenti per la crescita del Paese.». (GU n. 187 del 11-8-2012
- Suppl. Ordinario n.171) ha modificato in maniera sostanziale l'art. 60 del
CAD, Codice dell'Amministrazione Digitale (Decreto Legislativo 7 marzo 2005,
n. 82 e sue successive modifiche ed integrazioni).
Nello specifico l'art. 60 del CAD è stato così modificato:
Le pubbliche amministrazioni acquisiscono programmi informatici o parti
di essi a seguito di una valutazione comparativa di tipo tecnico ed
economico tra le seguenti soluzioni disponibili sul mercato:
a) software sviluppato per conto della pubblica amministrazione;
b) riutilizzo di software o parti di esso sviluppati per conto della pubblica
amministrazione;
c) software libero o a codice sorgente aperto;
d) software combinazione delle precedenti soluzioni.
Solo quando la valutazione comparativa di tipo tecnico ed economico
dimostri l’impossibilita’ di accedere a soluzioni open source o gia’
sviluppate all’interno della pubblica amministrazione ad un prezzo
inferiore, e’ consentita l’acquisizione di programmi informatici di tipo
proprietario mediante ricorso a licenza d’uso. La valutazione di cui al
presente comma e’ effettuata secondo le modalita’ e i criteri definiti
dall’Agenzia per l’Italia Digitale, che, a richiesta di soggetti interessati,
esprime altresi’ parere circa il loro rispetto.
34
03/12/2012
Prospettive: open source e
cloud
• Il successo del cloud sarà un driver per
l'ulteriore sviluppo dell'Open Source oppure
sarà il contrario?
• Molti dei servizi cloud più utilizzati (modello
SaaS non sono open anche se usano
pesantemente l'OS
• Esiste una versione della GPL pensata
apposta per gestire applicazioni server side:
Affero GPLv3
• Open Stack e Cloud Stack: la guerra delle
cloud OS
03/12/2012
35
Prospettive: Open Source e
Mobile
• I dati mostrano l'enorme successo di
Android che è diventato uno dei leader di
mercato
– Ma Android è veramente OS? Se scarico
Android USB riesco a farlo funzionare su un
terminale commerciale?
• I marketplace e le app: la GPL è
incompatibile con i termini di utilizzo
dell'App Store
03/12/2012
36
Open Hardware
• Il concetto dell'open source applicato
all'hardware
• Fenomeno più recente che sta
conoscendo una notevole popolarità con il
concetto di IoT
• Un esempio italiano (e piemontese) di
successo: Arduino
03/12/2012
37
Un nostro (piccolo) esperimento
• Sviluppate due librerie per aggiungere
funzionalità NFC (Near Field Communication)
OPEN-SNEP ed OPEN-NPP
–
–
–
–
Distribuite su Google Code sotto LGPL
Numero di visite superiore a 11500
Pagine visitate oltre 36500
Scaricate oltre 1000 volte (OPEN-NPP da
Settembre 2011) e oltre 500 volte (OPEN-SNEP
da Maggio 2012)
• Miglioramento nel numero e nella qualità
delle relazioni con importanti attori del settore
03/12/2012
38
Conclusioni
• Il software OS è una realtà: i numeri lo
dimostrano ampiamente
• Ci vuole un approccio flessibile: si tratta in
ogni caso di prodotti software che vanno
valutati con attenzione (magari con parametri
diversi rispetto ai software commerciali)
• Per chi crede nell'approccio FLOSS è
importante contribuire attivamente: il
sostegno delle community è la base per
permetterne l'ulteriore sviluppo e la possibilità
che il tutto si mantenga in piedi
03/12/2012
39