L Open Source
Software e codicesorgente Programmatore produce codice sorgente (linguaggio) Codice sorgente viene tradotto in codice macchina(0,1) da un compilatore Codice macchina è il software, eseguito dal processore(cpu) Commerciale, shareware, freeware (es. pdf), open source
Software e codice sorgente In base al tipo di lavoro che svolge èpossibile suddividere il software in diverse categorie: software di base software applicativo software di ambiente
Software di base 1. Sistemi operativi (DOS, OS2, MAC OS, Unix, Linux, Windows) 2. Linguaggi di programmazione (Basic, Pascal, Cobol, C ++, Visual Basic, Java ecc )
Software applicativo L insieme dei programmi che non sono compresi nel sistema operativo, ma che vengono invece installati dall'utente per svolgere compiti specifici. Per esempio sotto Windows il programma di videoscrittura Microsoft Word è forse l'applicativo piùdiffuso. Word non fa parte di Windows ma deve essere acquistato a parte e installato sulla macchina dopo che questa contiene giàil sistema operativo.
Software di ambiente Pacchetti di software generici usati per la creazione di software applicativi: gestione degli archivi (database) fogli elettronici trattamento testi grafica
Software e diritto d autore Il software èun codice per il cui utilizzo, commercializzazione e distribuzione si fa riferimento alle leggi sul diritto d autore, in maniera simile a quanto avviene per le opere letterarie.
Software e licenza Tradizionalmente, il contratto che regola l uso del software èla licenzaed èsempre importante conoscere i termini di questo accordo per il software con cui si intende avere a che fare. Quando un software ètutelato da copyright, il software ha un proprietario, che ètale in quanto detiene i diritti d autore
Caratterizzazioni del software Il software si può caratterizzare principalmente in: 1. software libero 2. software non libero 3. software commerciale
Software libero èunaquestionedi libertà, non di prezzo. free as in free speech, not as in free beer I consider that the golden rule requires that if I like a program I must share it with other people who like it. I cannot in good conscience sign a non disclosure agreement or a software license agreement. hacker: unapersona chesidilettaad esplorare i dettagli di un sistema programmabilee come spingereailimitile sue capacità, figura opposta a quella del più degli utenti, che preferiscono imparare solo il minimo necessario.
Un po' distoria In origine non c era protezione per il software. 1985: Richard Stallman fonda la FSF 1989: La filosofiadistallman sitraduce in GPL (General Public License) Il tuttoparte dallanascitadiunix, sistema operativo multi-utente e multi-processo Nel 1991 uno studente finlandese(linus Torvald) crea un sistema simil-unix(linux)
ProgettoGNU GNU = GNU'sNot Unix «L'obiettivo principale di GNU era essere software libero. Anche se GNU non avesse avutoalcunvantaggiotecnicosuunix, avrebbeavutosiaun vantaggiosociale, permettendo agli utenti di cooperare, sia un vantaggio etico, rispettando la loro libertà.»
Similitudini Free/OSS Distribuzioneapertadel codice sorgente Libertà di modifica LicenzeGPL o OSS, Cpl Team di sviluppatori distribuiti in rete Competizione libera Ricerca scientifica Diffusionepubblicadei risultati Libertà di ricerca Peer Review Attribuzione della paternità dei risultati Cooperazione Internazionale Competizione libera
Stallman e la FSF Secondo la FSF di Stallman il software deve essere libero non in quanto gratuito, ma per una questione etica e di principio. Esistono una serie di diritti dell'utente del software che devono essere tutelati Il software deve essere "libero" per questi motivi prima ancora che per motivi di carattere economico e di mercato.
Free vs. non-free Il software non èun semplicestrumento E' un artefatto cognitivo che incorpora lavoro e conoscenza, induce schemimentalie modelli cognitivi. Influenza gli stili di relazione fra le persone Perciòchesialiberoo non liberofala vera differenza
Software liberovsproprietario Libertà Migliore formazione informatica Sicurezza--> contributo dei programmatori Assenza di libertà Impossibilità di adattare il sw Minoresicurezza--> minore contributo dei programmatori Minorecontrollo--> non so cosa effettivamente fa
Free Software 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:Lalibertàdi migliorare il programma, e di distribuirne i miglioramenti.
Sfatiamo alcuni miti softwarelibero=gratuito: falso. Libertànon èil prezzo. Infatti ci sono programmatori che vivono di vendita e manutenzione dei programmi liberi da loro creati. softwaregratuito=libero: falso. Molti programmi proprietari vengono distribuiti gratuitamente. softwarelibero=nocopyright: falso. Benchési possa rinunciare al copyright su un proprio programma e renderlo cosìdi pubblico dominio, la gran parte del software libero èdistribuito con una licenza. l autore diun programma libero lo deve pubblicare su Internet: falsa argomentazione. Sia gli autori che gli acquirenti di un programma libero hanno il diritto di distribuirlo a titolo oneroso o gratuito, ma non hanno alcun obbligo in tal senso.
Linux Linux creato (91) per far girare OS Unix sul proprio PC 386. Scrivere un programma OS garantisce lavoro di altri programmatori. Nel 1984 Stallman decise di mettere in piedi il progetto GNU perla creazione di un sistema operativo che fosse libero e migliore. Enunciò i principi del Free Software. Il kernel del sistema operativo GNU ancora oggi non esiste, ma sono stati creati tutti quei programmi che hanno rivestito il Linux di Torvald e che si trovano in ogni distribuzione del sistema operativo.
PerchéSL? Le motivazionipolitiche: èun benepubblico, favoriscela concorrenza, non trasferisce denaro pubblico a imprese lontanein pagamentodi licenze, eliminala dipendenzadaun solo fornitore. Le motivazioni economiche: non richiede licenze, permette installazioni multiple, contrasta pirateria Le motivazioni educative: si può studiare e modificare, si creano persone competenti e non UTONTI, disponibilità dei sorgenti permette accesso diretto al funzionamento dei programmi
LicenzaGPL Il software è opera d'intelletto protetta L'autore può cedere diritti di uso(licenza) DalprogettoGNU nascela licenzagpl «Le licenze per la maggioranza dei programmi hanno lo scopo di togliere all'utente la libertà di condividerlo e di modificarlo. Al contrario, la GPL è tesa a garantire la libertà di condividere e modificare il free software, al fine di assicurare che i programmi siano "liberi" per tutti i loro utenti.»
Copyleft Autore permette copia, distribuzione e fruizione legandoa questaeticai lavoriderivati. È regola che impedisce di aggiungere restrizioni che neghino ad altri le libertà principali Condividere il software con altri utenti per i sostenitori del software proprietario èun attodipirateria, per i sostenitori del SL è una necessità sociale
Non sono la stessa cosa Free software Ha licenzachepermettea chiunquediutilizzarlo, studiarlo, modificarloe redistribuirlo. Si contrappone al software proprietario ed è differente dalla concezione open source, incentrandosi sullalibertàdell'utentee non solo sull'apertura del codice sorgente, che rimane un prerequisito del software libero Open Source Èsoftware i cui autori permettono il libero studio e l'apportodi modifichedaparte di altriprogrammatori. Questo è realizzato mediante l'applicazione di apposite licenze d'uso.
Il movimento open source Nel 1998 Bruce Perens, Eric Raymonde altri si convinsero che i principi di libertàdel SL fossero malvisti nel mondo business. Evitarono ogni riferimento politico o di principio e lanciarono una campagna per i numerosi vantaggi pratici: facilitàdi adattamento, affidabilità, sicurezza, conformitàa standard, indipendenza dai singoli fornitori. Scrissero Open Source Definition. Esempio di successo è l'atteggiamento dell'ibm, che ha fatto grandi investimenti nel software libero, e parla di open source, no di SL. La voluta neutralità del movimento open source verso gli aspetti etici e politici del software libero è la caratteristica sostanziale che lo distingue dalla filosofia del SL, che al contrario pone l'accento sulle motivazioni ideali
Open source èsoftware rilasciato con licenza di uso del sorgente. I due aspetti chiave dell'open source: licenza e codice sorgente. Ciò permette di modificare ed adattare all uso il programma. L'open source non èscappatoia per evitare l'acquisto di software proprietario, ma èuna scelta in favore della libertàdi circolazione e dello scambio di idee. Esempio: macchina con motore avvolto da schermo inviolabile.
ComunitàOpenSource La comunitàdel software OS condivide in larga misura le posizioni del mondo del software libero, ma deenfatizza gli aspetti etici, fondando le proprie scelte e motivazioni su considerazioni di carattere tecnicoeconomico. [...] deve includere il codice sorgente e deve consentirne la distribuzione tanto in codice sorgente che in forma compilata. [...] Il codice sorgente è un preliminare necessario alla riparazione o alla modifica di un programma. L'intento qui è che il codice sorgente sia distribuito con l'opera iniziale e con tutte le opere derivate.
Shareware Disponibilità dell eseguibile ma non del codice La licenza d uso prevede un piccolo importo, una scadenza o limitazioni d uso L utente può ridistribuire il programma e chi lo riceve è soggetto agli stessi obblighi Freeware Eseguibile gratuito ma niente codice Nessuna licenza d uso, nélimitazioni alla distribuzione Spesso legato a strategie di marketing o standards
CosaNON èl OS Freeware Shareware Public Domain For non-commercial use only Community Codes
Cos èopen Source? software that is collectively developed by a community of technologists with an interest in a particular application or tool and then distributed at no cost to the broader community of individuals who can find a use for it
Open Source: definizione Il codice creato dall autore non deve essere alterato e poi distribuito come fosse l originale. Non sono ammesse discriminazioni contro persone o gruppi o ambiti di utilizzo Non sono ammesse forme di licenze aggiuntive.
Open Source èun modellodi sviluppo Project lead sviluppatore sviluppatore sviluppatore sviluppatore
Caratteristiche di un OSP Peer review del codice Se dai a tutti il codice sorgente, ognuno di essi diventa un tuo ingegnere" [John Gage] Se ci sono abbastanza occhi [che cercano errori], gli errori diventano di poco conto [Raymond] Segnalazione e correzione errori Se tratti i tuoi beta-tester come se fossero la tua risorsa piu importante, essi risponderanno diventando la tua risorsa piu importante. [Raymond]. Trattare gli utenti come co-sviluppatori è la strada migliore Sviluppo distribuito La disponibilita dei codici sorgenti permette a chiunque sia interessato e ne abbia le capacità di partecipare allo sviluppo di un programma. Conflitti all interno del gruppo Mancanza di incentivi 33
Cattedrale Principi di sviluppo Confronto Cattedrale vs Bazaar Mastodontiche release di versioni definitive Debugging tra versioni Aspettative di perfezione smentite dai rilasci Bazaar I bug sono intrinseci e marginali Rapidita di diffusione per ottenere le correzioni Alberto Ornaghi 2002 34
Cos èopen Source veramente? Free/Libero da usare Free/Libero da modificare Free/Libero da distribuire Un alternativa al software commerciale
Conclusioni Confronto con modelli Closed Source Modello Risorse Planning Utenti Obiettivo Motivazione Stato di progresso Collaborazione Assic. di Qualita Proprietario Cattedrale Definite Intero progetto Utente pagante Risp. del contratto Forte (stipendio) Segreto Faccia a faccia Management OpenSource Bazaar Sconosciute Step by step Co-developers Risolvere un prob. Debole (voglia) Pubblico Internet Peer review Alberto Ornaghi 2002 36
Cattedralee Bazaar Saggiodel 1998 scrittodae. Raimond Propone due modelli di sviluppo del software «cattedrale» usato per sviluppare la maggior parte del software proprietario, dove tuttoe' «settorializzato» e organizzato e ogni sviluppatore ha compiti specifici. «bazaar», invece, in cui sie' formatolinux, gli utentisonoanchesviluppatoricheaiutanoa migliorare il codice
Alternative Open Source a Microsoft Office Open Office: Suite office. Multilingua. Multiformato. Gratuito e Free. Neo Office. La più popolare applicazione office per Mac OS X: Word Processing, Tabelle, Presentazioni, Disegno, Database