F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

23
F. Bartoloni SW: di base, applicativo, linguaggi, SW: di base, applicativo, linguaggi, licenze d'uso licenze d'uso Fulvio Bartoloni

Transcript of F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

Page 1: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

SW: di base, applicativo, linguaggi, licenze SW: di base, applicativo, linguaggi, licenze d'usod'uso

Fulvio Bartoloni

Page 2: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

SW: di base, applicativo, linguaggi, licenze d'usoSW: di base, applicativo, linguaggi, licenze d'uso

1 Il sistema operativo: descrizione, componenti, tipologie

2 Sistemi operativi Microsoft: storia, versioni, evoluzione

3 Sistema operativo Unix: storia, versioni, evoluzione

4 Sistemi operativi OpenSource Unix like: BSD, FreeBSD, OpenBSD, NetBSD

5 Sistemi operativi OpenSource Unix like: Linux

6 SW applicativo: tipologie e prodotti

7 Office Automation MS e OpenSource

8 SW di sviluppo: compilatori, interpreti, linguaggi di programmazione

9 Linguaggi di script: shell, Perl

10 Linguaggi a oggetti: C++, Java

11 Linguaggi orientati ai DB: SQL, MySQL…

12 Linguaggi orientati al WEB: HTML, XML, JAVA, Javascript, PHP, ASP

13 Licenze d'uso OpenSource: storia, versioni, differenze

14 Analisi del SW di base, applicativo e di sviluppo in dotazione (ai PC di Aula)

Page 3: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Il sistema operativo: descrizione, componenti, tipologieIl sistema operativo: descrizione, componenti, tipologie

• Si intende per Sistema Operativo (o software di sistema) un gruppo di programmi che gestisce il funzionamento di base del computer. Il sistema operativo rimane sempre attivo dal momento in cui viene caricato (all’accensione della macchina) fino allo spegnimento.

• Sono gestite dal sistema operativo tutte le funzioni generali della macchina, come l’aspetto grafico delle visualizzazioni su monitor, la scrittura e la lettura dai dischi, la messa in esecuzione e la chiusura dei vari programmi, la ricezione e trasmissione di dati attraverso tutti i dispositivi di I/O. Non fanno invece parte del sistema operativo i vari programmi applicativi (software applicativo) come ad esempio i programmi di scrittura, di ritocco fotografico, gli antivirus, ecc. che vengono acquistati a parte e installati sulla macchina dopo che questa contiene già il sistema operativo. In definitiva si può dire che il Software di sistema serve alla macchina per funzionare, mentre il Software applicativo serve all'utente per lavorare.

Page 4: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Il sistema operativo: descrizione, componenti, tipologieIl sistema operativo: descrizione, componenti, tipologie

• Il sistema operativo risiede sull’hard disk come tutti gli altri programmi e viene caricato nella memoria RAM all’accensione della macchina. Un computer appena uscito dalla fabbrica non è neppure in grado di funzionare ma può solo eseguire il boot e arrestarsi con un messaggio d'errore quando rileva l'assenza del sistema operativo. In questo caso occorre eseguire l'installazione del sistema prima di qualunque altra operazione.

• Esistono molti sistemi operativi: i più diffusi oggi sono i vari Windows della Microsoft (98, Me, NT, 2000), MacOS della Apple per i computer Macintosh, Linux e Unix in ambito universitario e della ricerca, o in generale per la gestione di reti di computer, e altri ancora. Molto diffuso fino ad alcuni anni fa era anche l’MS-DOS, oggi soppiantato da Windows.

Page 5: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Sistemi operativi Microsoft: storia, versioni, evoluzioneSistemi operativi Microsoft: storia, versioni, evoluzione

• In Italia il sistema operativo più diffuso sui PC è Windows della Microsoft: - per i computer di uso personale, dopo il DOS, si sono succeduti Windows 1, 2, 3, 95, 98,  Me (Millennium edition) e dall'autunno 2001 è in commercio Windows XP (experience); - per i computer usati all'interno di reti condivise da più utenti, dove esiste un problema di sicurezza dei dati, sono stati prodotti Windows NT e Windows 2000; - per i nuovi computer palmari, in commercio dalla fine del 1999, esiste la versione "leggera" Windows CE

Fulvio Bartoloni
1977 Bill Gates e Paul Allen fondano la Microsoft. Il nome è stato registrato il 26 novembre 1976.1985 La Microsoft sviluppa Windows 1.0, introducendo aspetti tipici del Macintosh nei computer DOS compatibili.1990 Microsoft distribuisce Windows 3.0. In maggio s'intensifica la disputa legale con la Apple circa il software che ricorda troppo il sistema operativo del Macintosh.1995 Con una straordinaria operazione di marketing, viene finalmente annunciata la nuova versione di sistema operativo della Microsoft: Windows 95.
Page 6: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Sistema operativo Unix: storia, versioni, evoluzioneSistema operativo Unix: storia, versioni, evoluzione

• Unix, utilizzato principalmente in ambito universitario e della ricerca, o in generale per la gestione di reti di computer (Internet). Presente anche nei sistemi informativi delle aziende private e pubbliche. Linux e Unix sono sistemi operativi cosiddetti a linea di comando

• La prima versione girerà su una macchina della Digital Equipment Co. (DEC) Il programma è scritto in assembler. Verrà poi riscritto usando il linguaggio "C“.

• Prodotte tante versioni per quante sono le macchine su cui gira (hardware).

Fulvio Bartoloni
1969 Disillusi dal progetto Multics e dei continui problemi con il sistema GE 600, i laboratori della Bell Telephone abbandonano il progetto MAC. Ritchie e Thompson iniziano allora a lavorare su una loro idea di sistema operativo, che anzichè essere orientato alla multiutenza si dirigerà ad un unico utente. Per questo (e scherzando sul nome Multics) lo chiameranno UNIX. La prima versione girerà su un PDP-7 della Digital Equipment Co. (DEC) e sarà completata entro lo stesso anno. Il programma è scritto in assembler PDP-7. UNIX diventerà una potenza nel mondo dei sistemi operativi.1973UNIX viene riscritto usando il linguaggio "C" ed è destinato a diventare rapidamente il sistema operativo per eccellenza soprattutto nell'area del networks. A dispetto del nome, verranno prodotte tante versioni quante saranno le macchine su cui dovrà girare.
Page 7: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Sistemi operativi OpenSource Unix like: BSD, FreeBSD, OpenBSD, Sistemi operativi OpenSource Unix like: BSD, FreeBSD, OpenBSD, NetBSDNetBSD

• BSD (Berkley Software Distribution) è un sistema operativo disponibile su molte piattaforme. Estensione dello UNIX della AT&T. Codice sorgente noto come 4.4BSD-Lite. Comprende numerosi pacchetti tra i quali il progetto GNU.

• FreeBSD è completamente gratuito (freeware) ed in costante evoluzione. Circa 10 milioni di’installazioni. Include XFree86 che è un ambiente grafico. E’ una delle varianti di UNIX più diffusa. In Russia è il n. 1. Si è affermato come s.o. per server Intranet e Internet. Molte le applicazioni disponibili: Apache, Squid, Sendmail, Qpopper, Samba, Majordomo, MySQL, BIND, ecc.. Contiene librerie per la compatibilità con Linux e UNIX. IBM, Microsoft, Apple, ecc. hanno prelevato codice da FreeBSD per sviluppare i loro s.o. più recenti. Si scarica gratuitamente da Internet.

Page 8: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Sistemi operativi OpenSource Unix like: BSD, FreeBSD, OpenBSD, Sistemi operativi OpenSource Unix like: BSD, FreeBSD, OpenBSD, NetBSDNetBSD

• OpenBSD è completamente gratuito. Il team di sviluppo Canadese si finanzia con donazioni, vendita di CD e magliette. Offre più integrazione con il software criptografico: OpenSSH, versione freeware di un tool per la crittografia di tutto il traffico, metodi di autenticazione, ecc..

• NetBSD è un s.o. Unix like altamente portabile, libero, multipiattaforma (dal server Alpha a 64 bit fino ai palmari). Usato in ambienti produttivi e di ricerca. Cose complesse realizzate nella maniera più semplice.

Page 9: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Sistemi operativi OpenSource Unix like: LinuxSistemi operativi OpenSource Unix like: Linux

• Ideato dal Linus Torvalds all’età di 22 anni (Università di Helsinki) con l’aiuto di migliaia di persone sparse per il mondo. In realtà Linux è soltanto il kernel e non il sistema operativo. E’ un completamento del sistema GNU.

• Il punto di forza dello sviluppo e della diffusione è stata l’indipendenza da tutto e da tutti. E’ gratis!

• Negli ultimi anni Linux si è imposto sul mercato dei server Web Internet: si stima che Il 30% dei server si basa su questo sistema operativo

• La prima versione girerà su una macchina della Digital Equipment Co. (DEC) Il programma è scritto in assembler. Verrà poi riscritto usando il linguaggio "C“.

• Prodotte tante versioni per quante sono le macchine su cui gira (hardware). Dal rilascio della versione 4.0, Red Hat Linux funziona su tre principali piattaforme: PC Intel compatibili, Digital Alpha e Sun SPARC.

Fulvio Bartoloni
Nell'agosto del 1991, uno studente finlandese inviò una mail al newsgroup comp.os.minix con queste parole: Buongiorno a tutti coloro che usano Minix - Sto creando un sistema operativo (libero) (si tratta di un hobby e non sarà grande e professionale come gnu) per 386(486) AT . Lo studente era Linus Torvalds, e l'"hobby" di cui parlava è diventato ciò che noi oggi conosciamo come Linux. Linux è un sistema operativo conforme alle specifiche POSIX sviluppato non solo da Linus, ma da centinaia di programmatori in tutto il mondo. L'aspetto interessante è che questo enorme lavoro di sviluppo a livello mondiale è solo parzialmente coordinato. Sicuramente, Linus ha giocato un ruolo fondamentale nello sviluppo del kernel, ma ormai Linux è molto più che solo il kernel. Dietro Linux, non ci sono strutture manageriali; uno studente in Russia riceve una nuova scheda madre e scrive così un driver per supportare una nuova caratteristica della scheda. Oppure, un amministratore di sistemi nel Maryland ha bisogno di un programma per gestire i backup, lo scrive e lo invia in rete a chiunque serva. La cosa giusta sembra capitare proprio nel momento giusto. Un altro aspetto interessante è che Linux può essere ottenuto senza dover pagare assolutamente nulla. Fantastico: la maggior parte del software è disponibile (senza alcuna spesa) per chiunque con un po' di tempo e la volontà di scaricarlo dalla rete. Ma non tutti hanno del tempo a disposizione...… Cos'è Red Hat Linux?Fa parte di un gruppo di programmazione con base nel North Carolina. Il loro obbiettivo era quello di rendere facile l'uso di Linux. Come molti altri gruppi simili, il loro scopo era quello di riunire tutti i "bit" necessari in una distribuzione completa e di semplificare gli aspetti più complessi che si possono incontrare nell'avvio di un nuovo sistema operativo. Ad ogni modo, diversamente da altre distribuzioni, questa era fondamentalmente diversa. La differenza? Invece di essere una fotocopia di un hard disk con una installazione funzionante di Linux o un set di floppy dai quali si potessero comporre le varie parti di un sistema operativo, questa distribuzione era basata sin dall'inizio su dei pacchetti. Lo sviluppo del software nel mondo Linux è in continua evoluzione, perciò le nuove versioni del software vengono rilasciate continuamente. Con altre distribuzioni, l'aggiornamento del software risultava spesso laborioso o addirittura impossibile - un aggiornamento completo comportava la maggior parte delle volte la formattazione di tutto l'hard disk. Ogni pacchetto fornisce una diversa parte del software, completamente testato, configurato e pronto per l'esecuzione. Volete provare un nuovo text editor? scaricate il pacchetto ed installatelo. In qualche secondo potrete provarlo. Non vi piace? inserite un solo comando ed il pacchetto sarà rimosso dal vostro sistema. Se fosse tutto qui, questa distribuzione sarebbe stata veramente carina... Ma il fatto che questo sistema operativo si fondasse su un insieme di pacchetti, comportava un altro vantaggio: questa distribuzione di Linux poteva essere facilmente aggiornata. Fino ad ora avrete forse capito che quel gruppo di programmatori nel North Carolina è la Red Hat e che quella distribuzione basata sui pacchetti è Red Hat Linux. Dall'introduzione di Red Hat Linux nell'estate del 1994, Linux e Red Hat hanno fatto passi da giganti. Molto è cambiato da allora: il supporto per qualunque tipo di piattaforme hardware, maggiore affidabilità del sistema e l'uso sempre più crescente di Linux da parte di diverse aziende in tutto il mondo. Ma molte cose sono rimaste uguali. Linux resta un sistema operativo sviluppato da molte persone in tutto il mondo; Linus continua a far parte di questo progetto. Red Hat continua ad avere la sua base operativa in North Carolina dove continua nel suo tentativo di rendere Linux facile da usare. E soprattutto Red Hat Linux è ancora basato sui pacchetti com'è sempre stato e sampre sarà. Dal rilascio della versione 4.0, Red Hat Linux funziona su tre principali piattaforme: PC Intel compatibili, Digital Alpha e Sun SPARC. I nostri codici sorgente unificati ed i vantaggi apportati dalla tecnologia RPM (RPM Package Management) ci da la possibilità rendere disponibile Red Hat Linux per ogni tipo di sistema con uno sforzo minimo. Questo in pratica consente ai nostri utenti di gestire e trasferire il software fra queste piattaforme nella maniera più semplice possibile. Rendiamo disponibile Red Hat Linux attraverso i nostri siti FTP e molti altri siti mirror su Internet. Red Hat Linux è anche disponibile su CD-ROM. Per informazioni aggiornate sulle nostre offerte e per avere altre risorse Linux visitate il nostro sito Red Hat all'indirizzo http://www.redhat.com/. Nella maggior parte dei sistemi Red Hat Linux è facile da installare; il programma di installazione vi accompagna lungo il processo in appena 15 minuti. Lo stesso sistema è veramente flessibile. Con RPM, potrete installare e disinstallare i singoli pacchetti di software con uno sforzo veramente minimo. Grazie a RPM, Red Hat Linux è facile anche da gestire -- l'installazione dei pacchetti può essere controllata ed eventualmente corretta, ed i pacchetti possono essere installati e disinstallati semplicemente ed in modo sicuro. In oltre, Red Hat Linux è facile da amministrare. Viene fornito un ricco set di strumenti per l'amministrazione del sistema che riduce l'onere dei compiti di gestione di tutti i giorni. È incluso il codice sorgente per tutti i componenti free del sistema. pieno le caratteristiche di UNIX .
Page 10: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

SW applicativo: tipologie e prodottiSW applicativo: tipologie e prodotti

Classificazione degli applicativi in 5 categorie:

• Utilità di Sistema - si tratta di programmi che servono per migliorare la gestione e la sicurezza della macchina, come ad esempio gli stessi antivirus, oppure programmi per l'ottimizzazione delle risorse, per il controllo dello stato del sistema, la ripulitura dell'hard disk, ecc.

• Office Automation - programmi di ausilio nei normali lavori d'ufficio, quindi creazione e elaborazione di testi (word processor), gestione di basi di dati (database), fogli di calcolo, posta elettronica, navigazione in Internet, ecc.

Fulvio Bartoloni
Fulvio Bartoloni12/04/2003Viene detto Software applicativo (o semplicemente "applicativi") 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. Sono ugualmente degli applicativi i programmi antivirus (Norton, McAffee, Panda, ...), i programmi per la compressione dei file (Winzip, ZipCentral, ...), la posta elettronica (Eudora, Outlook Express, ...), il ritocco fotografico (Photoshop, PaintShop Pro, ...), la composizione multimediale (Dreamweaver, FrontPage, Flash, Director, ...), i lettori audio/video (Quick Time Player, Real Player, ...), ecc. A rigore fanno parte degli applicativi anche alcune utilità che si installano assieme a Windows stesso, come il Blocco note, la Calcolatrice, Paint, WordPad; si tratta infatti di semplici programmi che non sono essenziali per il funzionamento della macchina (potrebbero anche essere rimossi senza comprometterne in alcun modo il funzionamento), ma vengono installati assieme al sistema operativo soltanto per offrire all'utente alcune semplici applicazioni di base. Infatti, se per assurdo su un computer si trovasse esclusivamente il sistema operativo senza nessun'altra applicazione, la macchina funzionerebbe perfettamente, ma l'utente non sarebbe messo nelle condizioni di poterla usare.
Page 11: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

SW applicativo: tipologie e prodottiSW applicativo: tipologie e prodotti

Classificazione degli applicativi in 5 categorie:

• Applicazioni aziendali - progammi creati per le necessità specifiche delle aziende, come ad esempio i programmi per la fatturazione o per la gestione del personale, dei magazzini, dei macchinari industriali. Spesso si tratta di programmi creati ad hoc da aziende di produzione software.

• Strumenti di sviluppo - programmi per la creazione di oggetti multimediali (pagine Web, animazioni e CD interattivi), elaborazione audio/video/immagini, programmi che servono per la creazione di nuovi applicativi (authoring tools).

• Giochi e svago - giochi, emulatori, lettori audio e video.

Queste distinzioni vanno prese come categorie concettuali e non come rigide classificazioni.

Fulvio Bartoloni
Fulvio Bartoloni12/04/2003Viene detto Software applicativo (o semplicemente "applicativi") 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. Sono ugualmente degli applicativi i programmi antivirus (Norton, McAffee, Panda, ...), i programmi per la compressione dei file (Winzip, ZipCentral, ...), la posta elettronica (Eudora, Outlook Express, ...), il ritocco fotografico (Photoshop, PaintShop Pro, ...), la composizione multimediale (Dreamweaver, FrontPage, Flash, Director, ...), i lettori audio/video (Quick Time Player, Real Player, ...), ecc. A rigore fanno parte degli applicativi anche alcune utilità che si installano assieme a Windows stesso, come il Blocco note, la Calcolatrice, Paint, WordPad; si tratta infatti di semplici programmi che non sono essenziali per il funzionamento della macchina (potrebbero anche essere rimossi senza comprometterne in alcun modo il funzionamento), ma vengono installati assieme al sistema operativo soltanto per offrire all'utente alcune semplici applicazioni di base. Infatti, se per assurdo su un computer si trovasse esclusivamente il sistema operativo senza nessun'altra applicazione, la macchina funzionerebbe perfettamente, ma l'utente non sarebbe messo nelle condizioni di poterla usare.
Page 12: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Office Automation MS e OpenSourceOffice Automation MS e OpenSource

• MS Office 2000: Word, Excel, Power Point e Access

• StarOffice v. 6: gratis solo per le scuole. Writer, Calc, Draw, Base

• OpenOffice: simile a StarOffice e a Windows. Affidabile.

• The Gimp: software gratuito per la grafica, tipo Photoshop

• Mozilla 1: browser gratuito ma anche editor html e client email, newsgroup, ecc.

Page 13: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

SW di sviluppo: compilatori, interpreti, linguaggi di programmazioneSW di sviluppo: compilatori, interpreti, linguaggi di programmazione

• In un ambiente di sviluppo generalmente esistono strumenti quali editor di testo, compilatori, linker, dubugger per l’analisi degli errori,librerie, wizard (autocomposizioni), monitor degli eventi e browser degli oggetti che permettono lo sviluppo e la manutenzione del software.

• Assembler o compilatore è il programma che traduce il linguaggio comprensibile al programmatore in linguaggio macchina e dunque eseguibile sul computer

• Interprete è l’interfaccia tra operatore e macchina. Simile ad un compilatore ma agisce sempre e non solo una volta prima dell’esecuzione del programma.

• I Linguaggi di programmazione:– Linguaggi di script (es. Perl, CGI, PHP, ASP, Python, ecc.). – Linguaggi ad oggetti (es. Java, C++, Delphi, MS Visual Basic,

Fulvio Bartoloni
I linguaggi di script costituiscono la spina dorsale di molte soluzioni basate su Internet anche se vengono spesso considerati linguaggi di programmazione “piu’ semplici”Si dividono in:linguaggi di scripting lato server comeASP, PHP, JSP; Javascript lato server, (perl)linguaggi di scripting lato client comeJavaScriptCGI = Common Gateway Interface È il canale di comunicazione tra il server HTTP (le pagine HTML) e le procedure software che girano sul sistema (procedure e script CGI).
Page 14: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Linguaggi di script: shell, PerlLinguaggi di script: shell, Perl

• Shell ScriptBreve elenco di comandi shell salvati insieme in un file ed eseguiti dalla shell. Gli script della shell sono paragonabili ai file Batch del DOS che venivano usati un tempo per configurare il DOS e i primi sistemi Windows. AUTOEXEC.BAT era quindi una sorta di script della shell DOS.

• PerlLinguaggio di programmazione libero e gratuito a lungo utilizzato in ambiente Unix, grosso modo assimilabile al BASIC ma più potente. Viene usato nella creazione di siti Web, nella amministrazione del sistema operativo e, più raramente, nella creazione di semplici applicazioni. Perl è largamente utilizzato in ambiente Linux.

Fulvio Bartoloni
ShellProgramma creato per ricevere ed eseguire comandi. Microsoft Windows è una shell grafica, così come lo sono GNOME e KDE in ambiente Linux. Ci sono anche shell a riga di comando (testuali), tra cui le più diffuse sono la Korn Shell, la Bourne Shell e Bash. Diversamente da Microsoft Windows, Linux consente l'installazione di più shell contemporaneamente, sebbene in genere si possa usarne solamente una alla volta. Il laboratorio Linux di Coriolis ha sei shell diverse installate, tra cui GNOME e KDE.
Page 15: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Linguaggi a oggetti: C++, JavaLinguaggi a oggetti: C++, Java

• I linguaggi orientati agli oggetti permettono all’utente di scegliere se utilizzare funzioni classiche o funzioni membro di oggetto, variabili o attributi di oggetto (OOP - Object Oriented Programming)

• C++: estensione (anni ’80) del linguaggio di alto livello, ideato nei primi anni ’70 da Dennis Ritchie nei Bell Laboratories. Usato in diversi s.o. Quasi tutto il lavoro nel mondo open source è stato fatto in C, tuttavia la situazione sta cambiando man mano che altri linguaggi vengono implementati per Linux. Persino il C++ non è così usato come il C. (La maggior parte dei programmatori che utilizzano compilatori C++ li usano per compilare semplice codice in C. Il C++ consente la programmazione ad oggetti.)

• Java , Linguaggio di programmazione sviluppato da Sun Microsystem nel 1995. Viene utilizzato per costruire le Applet, piccoli programmi caricati nel browser come parti integrate di un sito Web. Deriva dal linguaggio C++ e permette di eseguire qualsiasi applicazione software sul qualsiasi Web client.

Fulvio Bartoloni
1970Ken Thompson e Dennis Ritchie, reduci dalla sospensione del progetto Multics, dopo avere sviluppato il sistema operativo UNIX, scrivono il linguaggio di programmazione "B". Si dice che fu scelto quel nome perchè esisteva già un linguaggio con la sigla "A". Nel 1972 Dennis Ritchie riscriverà il "B" e battezzerà il nuovo linguaggio con la lettera "C". SUN Microsystem e JAVAJava : Linguaggio di programmazione sviluppato da Sun Microsystem nel 1995. Viene utilizzato per costruire le Applet, piccoli programmi caricati nel browser come parti integrate di un sito Web. Questo linguaggio funziona su qualunque piattaforma.
Page 16: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Linguaggi orientati ai DB: SQL, MySQL…Linguaggi orientati ai DB: SQL, MySQL…

• SQL (Structured Query Language) è un linguaggio di interrogazione nella manipolazione di query e nella manutenzione di database in generale (standard).

• MySQL è un RDBMS (Relational Database Management System – Sistema di gestione per database relazionali. Il più veloce e funzionale nel mondo open source (è gratis). E’ implementato in forma client/server. Supporta molti linguaggi (C, C++, Java, Perl, Python e TCL per mezzo di API (Application Programming Interface)

Page 17: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Linguaggi orientati al WEB: HTML, XML, JAVA, Javascript, Linguaggi orientati al WEB: HTML, XML, JAVA, Javascript, PHP, ASPPHP, ASP

• HTML HyperText Markup Language è il linguaggio dei browser http. Il concetto di ipertesto e` quello di un documento che contiene, oltre al testo, anche immagini, suoni, applicazioni, aree interattive e rimandi ad altri documenti (hyperlinks). È un semplice "linguaggio" di marcatura di testo (tag).

• XML è un metodo per inserire dati strutturati un un file di testo (non leggibile dagli umani). Consiste in una serie di regole, linee guida, convenzioni per designare dati testuali (fogli excel, mdb, dbf, doc, txt, ecc.). Anche qui si fa uso dei c.d. tag.. Panacea per le problematiche derivanti dall’interscambio dati tra sistemi, standard internazionali, ecc.

• JAVA è un linguaggio di programmazione per applicazioni multimediali e multiambiente, indipendente dalla piattaforma. Offre la possibilità di creare applicazioni (applet) in grado di essere richiamate ed eseguite da un Web client. Tutte le istruzioni sono contenute nelle classi (è qui che si differenzia dal C++. Multithread, ovvero un singolo programma può eseguire più compiti separati allo stesso tempo.

Fulvio Bartoloni
HTML HyperText Markup Language è il linguaggio dei browser http. Il concetto di ipertesto e` quello di un documento che contiene, oltre al testo, anche immagini, suoni, applicazioni, aree interattive e rimandi ad altri documenti (hyperlinks). È un semplice "linguaggio" di marcatura del testo (come per es. il LateX o il vecchio WordStar). Consiste in un insieme di tag che consentono di caratterizzare porzioni di testo; è compito del client (browser) l'interpretazione dei tag. Il concetto di markup e` da intendersi come un linguaggio impostato con dei "marcatori" (tags) di inizio e fine. Per esempio, il grassetto (bold) si ottiene cosi`: <B>Questa parte e` in grassetto</B>Vale a dire che il tag <B> identifica la marcatura di inizio del testo in grassetto, mentre il tag </B> ne identifica la fine. I programmi in linguaggio Java e Javascript vengono invece scaricati sul client ed eseguiti su di esso in tempo reale (il byte-code di Java viene compilato, Javascript interpretato!). Superare i limiti dell'html per creare dei siti sempre più rispondenti alle esigenze dei visitatori è stato una delle mete a cui i programmatori di linguaggi di scripting hanno puntato nel corso della storia del web. Superare la staticità delle pagine web, mantenendo al contempo una semplicità di programmazione che consenta a tutti di intervenire senza prima dovere leggere voluminosi manuali è possibile grazie ai linguaggi di scripting.
Page 18: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Linguaggi orientati al WEB: HTML, XML, JAVA, Javascript, Linguaggi orientati al WEB: HTML, XML, JAVA, Javascript, PHP, ASPPHP, ASP

• Javascript. Linguaggio di scripting orientato agli oggetti. E’ complementare a Java e si integra con esso; viene utilizzato per modificare le proprietà e i comportamenti del browser e delle applet Java. Il codice risiede all’interno della pagine HTML caricate dal browser. Sviluppato da Sun Microsystems e Netscape.

• ASP Active Server Pages, linguaggio di programmazione per la realizzazione di web dinamici. Si basa interamente su tecnologia Microsoft (Microsoft IIS - Internet Information Server - e Microsoft Windows NT).

• PHP Linguaggio di programmazione basato su Linux e server Apache con database Mysql o Sql. Tale linguaggio è molto diffuso sia perchè gratuito sia perchè molto flessibile nella programmazione.

Page 19: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Licenze d'uso OpenSource: storia, versioni, differenzeLicenze d'uso OpenSource: storia, versioni, differenze

• Open Source significa Sorgente Aperto, ovvero leggibile (free software)• Il concetto di "sorgente aperto" è legato alla storia di BSD e Unix, ma soltanto nel 1998 è ufficializzato dalla comunità Internet.

• Non significa semplicemente accesso al codice sorgente. La distribuzione in termini di programmi open-source deve soddisfare i seguenti criteri:

–- Ridistribuzione Libera e Gratuita (no royalties) –- Il programma deve includere il codice sorgente, e deve permetterne la distribuzione così come per la forma compilata. Il codice sorgente nascosto non è permesso.–- La licenza deve permettere modifiche e prodotti derivati, ecc.

• Licenze GPL, LGPL, BSD, SPL, Apache, APSL, SISSL

Fulvio Bartoloni
Le licenze Open Source Open Source significa Sorgente Aperto, ovvero leggibile. I programmi che girano sui nostri computer corrispondono a sequenze di numeri esadecimali, di solito talmente complessi da essere incomprensibili alla mente umana, che infatti non li ha scritti direttamente. I programmatori scrivono infatti in un linguaggio "umano" (codice sorgente) composto di parole e numeri, che poi viene convertito in modo automatico da un compilatore, per renderlo leggibile al computer (codice binario). Questa traduzione e' praticamente irreversibile, di conseguenza per chi riceve un programma senza il sorgente e' impossibile sapere come e fatto e soprattutto cosa fa al di la' di cio' che è il suo output finito. Inoltre, e, impossibile modificarlo, e se il programmatore morisse senza lasciare traccia del suo sorgente, gli algoritmi magari geniali che egli ha usato andrebbero persi per sempre. Sebbene il concetto di "sorgente aperto" affondi le sue radici nella storia di BSD e Unix, soltanto nel 1998 il termine e' stato ufficializzato dalla comunita Internet, affiancandosi al termine piu' comune di "Free Software" (software libero), ed e nata una associazione no-profit, in california, atta a ufficializzare le licenze che rendono in qualche modo il sorgente libero. L'evento che ha dato il via al diffondersi del termine Open Source e della relativa associazione e' stato il rilascio, nel febbraio 1998, del codice sorgente di Netscape. Definizione La sua definizione e' derivata dagli sviluppatori di Debian e recita (versione 1.9): IntroduzioneOpen source (sorgente aperta) non significa semplicemente accesso al codice sorgente. La distribuzione in termini di programmi open-source deve soddisfare i seguenti criteri: 1. Ridistribuzione Libera e Gratuita La licenze non potranno limitare alcuno dal vendere o donare i programmi come componenti di una distribuzione aggregata di software contenenti programmi di varia origine. La licenza non potrà richiedere royalties o altri pagamenti per tali vendite. 2. Codice SorgenteIl programma deve includere il codice sorgente, e deve permetterne la distribuzione così come per la forma compilata. Dove alcune forme di un prodotto non sono distribuite con codice sorgente, ci deve essere un modo ben pubblicizzato di ottenerne il codice sorgente per niente più di una ragionevole riproduzione; preferibilmente, per via dei costi, scaricandolo da Internet gratis. Il codice sorgente deve essere la forma preferita in cui un programmatore modificherebbe il programma. Codice sorgente deliberatamente obnubilato non è permesso. Forme intermedie come l’output di un preprocessore o traduttore non sono permesse. 3. Prodotti DerivatiLa licenza deve permettere modifiche e prodotti derivati, e deve permettere loro di essere distribuiti sotto le stesse condizioni della licenza del software originale. 4. Integrità del Codice Sorgente dell’AutoreLa licenza potrà impedire il codice sorgente dall’essere redistribuito in forma modificata solo se la licenza consentirà la distribuzione di pezze ("patch files") con il codice sorgente al fine di modificare il programma all’installazione. La licenza deve esplicitamente permettere la distribuzione del software costruito da un diverso codice sorgente. La licenza può richiedere che i lavori derivati abbiano un nome diverso o versione diversa dal software originale. 5. Nessuna Discriminazione contro Persone o GruppiLa licenza non deve discriminare alcuna persona o gruppo di persone. 6. Nessuna Discriminazione contro Campi d’ApplicazioneLa licenze non deve impedire ad alcuno da far uso del programma in un ambito specifico. Per esempio, non potrà impedire l’uso del programma nell’ambito di un’impresa, o nell’ambito della ricerca genetica. 7. Distribuzione della LicenzaI diritti allegati a un programma devono valere a tutti coloro cui il programma è redistribuito senza necessità dell’emissione di una addizionale licenza da parte dei licenziatari. 8. La Licenza non deve essere Specifica a un ProdottoI diritti allegati al programma non devono dipendere dall’essere il programmma parte di una particolare distribuzione di software. Se il programma è estratto da quella distribuzione e usato o distribuito all’interno dei termini delle licenze del programma, tutte le parti cui il programma è ridistribuito dovranno avere gli stessi diritti che sono garantiti nel caso della distribuzione di software originale. 9. La Licenza non deve Porre Vincoli su Altro SoftwareLa licenza non deve porre restrizioni su altro software che è distribuito insieme al software licenziato. Per esempio, la licenza non dovrà insistere che tutti gli altri programmi distribuiti sugli stessi supporti siano software open-source. Licenza GPL La General Public License ha lo scopo di mantenere i sorgenti liberi e distribuibili, impedendo a qualche approfittatore di apporre una sua licenza proprietaria. I punti prinipali sono: 1. E' possibile distribuire copie del programma sorgente in qualunque forma, purche' siano accompagnate dalla dicitura della licenza GPL. E'anche possibile farsi pagare il codice distribuito e anche eventuali garanzie personali su di esso, mantenendolo sempre sotto licenza GPL. 2. E' possibile modificare il codice e ridistribuirlo, mantenendo la licenza GPL e motivando i motivi e le date delle modifiche. 3. E' possibile distribuire il codice oggetto o eseguibile, purche' sia accompagnato dal riferimento alla licenza GPL 4. Non e' possibile copiare, distribuire e modificare il programma apponendogli una diversa licenza. 5. Nessuno e' tenuto ad accettare questa licenza, ma se il software viene copiato, modificato o distribuito senza rispettarla, si infrange la legge. Non e' inoltre possibile limitare i diritti garantiti dalla GPL. Licenza LGPL La licenza Lesser GPL e' una GPL con meno restrizioni in quanto a inclusione del codice in software non libero. E' stata pensata in pratica solo per le librerie, in alcuni casi particolari. Le librerie sotto questa licenza possono essere usate da software non libero, o che comunque non usi la licenza GPL. Questo puo' essere utile, paradossalmente, per promuovere il software libero. Per esempio, prmettendo l-uso della libreria anche a software closed-source si facilita la creazione di uno standard di fatto, che favorisce la diffusione e sviluppo della libreria open source. Un'altro caso e' quello di librerie che fanno lo stesso lavoro di librerie closed-source: in questo modo si favorisce l-uso di quella open source. Licenza BSD La distribuzione e l'uso dei sorgenti e del codice eseguibile, con o senza modifiche, sono permessi secondo le seguenti condizioni: 1. Il codice sorgente o l'eseguibile devono essere accompagnati dalla licenza BSD. 2. Il nome dell'autore/i non puo' essere usato senza permesso da terzi per promuovere software derivati dal programma originale. Dal 1999 questa clausola e' pero' stata abolita, e non e' piu' valida per le licenze BSD successive. Licenza MIT E' in pratica identica alla vecchia licenza BSD . Licenza SPL La SUN Public License permette di copiare, distribuire e modificare il software, ma non di rivenderlo. Licenza SISSL Sun Industry Standards Source License Apache Software License E' una specie di licenza BSD, con cui si pu, redistribuire il software e i sorgenti con o senza modifiche, ma occorre mantenere l'intestazione: "This product includes software developed by the Apache Software Foundation (http://www.apache.org/)." Software derivato dal codice di Apache non puo' inoltre fregiarsi del suo nome a meno di un permesso scritto concesso da Apache Software Foundation. Licenza APSL La Apple Public Source License e' nata per il nuovo core open source del MacOS X. Essa consente di modificare, copiare, ridistribuire il codice sorgente MA solo per uso personale e di ricerca interna.
Page 20: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Licenze d'uso OpenSource: storia, versioni, differenzeLicenze d'uso OpenSource: storia, versioni, differenze

• Licenza GPL: General Public License ha lo scopo di mantenere i sorgenti liberi e distribuibili, impedendo a qualche approfittatore di apporre una sua licenza proprietaria. • Licenza BSD La distribuzione e l'uso dei sorgenti e del codice eseguibile, con o senza modifiche, sono permessi secondo le seguenti condizioni:

– 1. Il codice sorgente o l'eseguibile devono essere accompagnati dalla licenza BSD. – 2. Il nome dell'autore/i non puo' essere usato senza permesso da terzi per

promuovere software derivati dal programma originale. Dal 1999 questa clausola e' pero' stata abolita, e non e' piu' valida per le licenze BSD successive.

• Licenza MIT E' in pratica identica alla vecchia licenza BSD.

Fulvio Bartoloni
Licenza GPL La General Public License ha lo scopo di mantenere i sorgenti liberi e distribuibili, impedendo a qualche approfittatore di apporre una sua licenza proprietaria. I punti prinipali sono: 1. E' possibile distribuire copie del programma sorgente in qualunque forma, purche' siano accompagnate dalla dicitura della licenza GPL. E'anche possibile farsi pagare il codice distribuito e anche eventuali garanzie personali su di esso, mantenendolo sempre sotto licenza GPL. 2. E' possibile modificare il codice e ridistribuirlo, mantenendo la licenza GPL e motivando i motivi e le date delle modifiche. 3. E' possibile distribuire il codice oggetto o eseguibile, purche' sia accompagnato dal riferimento alla licenza GPL 4. Non e' possibile copiare, distribuire e modificare il programma apponendogli una diversa licenza. 5. Nessuno e' tenuto ad accettare questa licenza, ma se il software viene copiato, modificato o distribuito senza rispettarla, si infrange la legge. Non e' inoltre possibile limitare i diritti garantiti dalla GPL. Licenza LGPL La licenza Lesser GPL e' una GPL con meno restrizioni in quanto a inclusione del codice in software non libero. E' stata pensata in pratica solo per le librerie, in alcuni casi particolari. Le librerie sotto questa licenza possono essere usate da software non libero, o che comunque non usi la licenza GPL. Questo puo' essere utile, paradossalmente, per promuovere il software libero. Per esempio, prmettendo l-uso della libreria anche a software closed-source si facilita la creazione di uno standard di fatto, che favorisce la diffusione e sviluppo della libreria open source. Un'altro caso e' quello di librerie che fanno lo stesso lavoro di librerie closed-source: in questo modo si favorisce l-uso di quella open source. Licenza BSD La distribuzione e l'uso dei sorgenti e del codice eseguibile, con o senza modifiche, sono permessi secondo le seguenti condizioni: 1. Il codice sorgente o l'eseguibile devono essere accompagnati dalla licenza BSD. 2. Il nome dell'autore/i non puo' essere usato senza permesso da terzi per promuovere software derivati dal programma originale. Dal 1999 questa clausola e' pero' stata abolita, e non e' piu' valida per le licenze BSD successive. Licenza MIT E' in pratica identica alla vecchia licenza BSD . Licenza SPL La SUN Public License permette di copiare, distribuire e modificare il software, ma non di rivenderlo. Licenza SISSL Sun Industry Standards Source License Apache Software License E' una specie di licenza BSD, con cui si pu, redistribuire il software e i sorgenti con o senza modifiche, ma occorre mantenere l'intestazione: "This product includes software developed by the Apache Software Foundation (http://www.apache.org/)." Software derivato dal codice di Apache non puo' inoltre fregiarsi del suo nome a meno di un permesso scritto concesso da Apache Software Foundation. Licenza APSL La Apple Public Source License e' nata per il nuovo core open source del MacOS X. Essa consente di modificare, copiare, ridistribuire il codice sorgente MA solo per uso personale e di ricerca interna.
Page 21: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Licenze d'uso OpenSource: storia, versioni, differenzeLicenze d'uso OpenSource: storia, versioni, differenze

• Licenza SPL La SUN Public License permette di copiare, distribuire e modificare il software, ma non di rivenderlo. • Licenza SISSL Sun Industry Standards Source License • Apache Software License E' una specie di licenza BSD, con cui si pu, redistribuire il software e i sorgenti con o senza modifiche, ma occorre mantenere l'intestazione: "This product includes software developed by the Apache Software Foundation (http://www.apache.org/)." • Software derivato dal codice di Apache non puo' inoltre fregiarsi del suo nome a meno di un permesso scritto concesso da Apache Software Foundation. • Licenza APSL La Apple Public Source License e' nata per il nuovo core open source del MacOS X. Essa consente di modificare, copiare, ridistribuire il codice sorgente MA solo per uso personale e di ricerca interna.

Fulvio Bartoloni
Le licenze Open Source Open Source significa Sorgente Aperto, ovvero leggibile. I programmi che girano sui nostri computer corrispondono a sequenze di numeri esadecimali, di solito talmente complessi da essere incomprensibili alla mente umana, che infatti non li ha scritti direttamente. I programmatori scrivono infatti in un linguaggio "umano" (codice sorgente) composto di parole e numeri, che poi viene convertito in modo automatico da un compilatore, per renderlo leggibile al computer (codice binario). Questa traduzione e' praticamente irreversibile, di conseguenza per chi riceve un programma senza il sorgente e' impossibile sapere come e fatto e soprattutto cosa fa al di la' di cio' che è il suo output finito. Inoltre, e, impossibile modificarlo, e se il programmatore morisse senza lasciare traccia del suo sorgente, gli algoritmi magari geniali che egli ha usato andrebbero persi per sempre. Sebbene il concetto di "sorgente aperto" affondi le sue radici nella storia di BSD e Unix, soltanto nel 1998 il termine e' stato ufficializzato dalla comunita Internet, affiancandosi al termine piu' comune di "Free Software" (software libero), ed e nata una associazione no-profit, in california, atta a ufficializzare le licenze che rendono in qualche modo il sorgente libero. L'evento che ha dato il via al diffondersi del termine Open Source e della relativa associazione e' stato il rilascio, nel febbraio 1998, del codice sorgente di Netscape. Definizione La sua definizione e' derivata dagli sviluppatori di Debian e recita (versione 1.9): IntroduzioneOpen source (sorgente aperta) non significa semplicemente accesso al codice sorgente. La distribuzione in termini di programmi open-source deve soddisfare i seguenti criteri: 1. Ridistribuzione Libera e Gratuita La licenze non potranno limitare alcuno dal vendere o donare i programmi come componenti di una distribuzione aggregata di software contenenti programmi di varia origine. La licenza non potrà richiedere royalties o altri pagamenti per tali vendite. 2. Codice SorgenteIl programma deve includere il codice sorgente, e deve permetterne la distribuzione così come per la forma compilata. Dove alcune forme di un prodotto non sono distribuite con codice sorgente, ci deve essere un modo ben pubblicizzato di ottenerne il codice sorgente per niente più di una ragionevole riproduzione; preferibilmente, per via dei costi, scaricandolo da Internet gratis. Il codice sorgente deve essere la forma preferita in cui un programmatore modificherebbe il programma. Codice sorgente deliberatamente obnubilato non è permesso. Forme intermedie come l’output di un preprocessore o traduttore non sono permesse. 3. Prodotti DerivatiLa licenza deve permettere modifiche e prodotti derivati, e deve permettere loro di essere distribuiti sotto le stesse condizioni della licenza del software originale. 4. Integrità del Codice Sorgente dell’AutoreLa licenza potrà impedire il codice sorgente dall’essere redistribuito in forma modificata solo se la licenza consentirà la distribuzione di pezze ("patch files") con il codice sorgente al fine di modificare il programma all’installazione. La licenza deve esplicitamente permettere la distribuzione del software costruito da un diverso codice sorgente. La licenza può richiedere che i lavori derivati abbiano un nome diverso o versione diversa dal software originale. 5. Nessuna Discriminazione contro Persone o GruppiLa licenza non deve discriminare alcuna persona o gruppo di persone. 6. Nessuna Discriminazione contro Campi d’ApplicazioneLa licenze non deve impedire ad alcuno da far uso del programma in un ambito specifico. Per esempio, non potrà impedire l’uso del programma nell’ambito di un’impresa, o nell’ambito della ricerca genetica. 7. Distribuzione della LicenzaI diritti allegati a un programma devono valere a tutti coloro cui il programma è redistribuito senza necessità dell’emissione di una addizionale licenza da parte dei licenziatari. 8. La Licenza non deve essere Specifica a un ProdottoI diritti allegati al programma non devono dipendere dall’essere il programmma parte di una particolare distribuzione di software. Se il programma è estratto da quella distribuzione e usato o distribuito all’interno dei termini delle licenze del programma, tutte le parti cui il programma è ridistribuito dovranno avere gli stessi diritti che sono garantiti nel caso della distribuzione di software originale. 9. La Licenza non deve Porre Vincoli su Altro SoftwareLa licenza non deve porre restrizioni su altro software che è distribuito insieme al software licenziato. Per esempio, la licenza non dovrà insistere che tutti gli altri programmi distribuiti sugli stessi supporti siano software open-source. Licenza GPL La General Public License ha lo scopo di mantenere i sorgenti liberi e distribuibili, impedendo a qualche approfittatore di apporre una sua licenza proprietaria. I punti prinipali sono: 1. E' possibile distribuire copie del programma sorgente in qualunque forma, purche' siano accompagnate dalla dicitura della licenza GPL. E'anche possibile farsi pagare il codice distribuito e anche eventuali garanzie personali su di esso, mantenendolo sempre sotto licenza GPL. 2. E' possibile modificare il codice e ridistribuirlo, mantenendo la licenza GPL e motivando i motivi e le date delle modifiche. 3. E' possibile distribuire il codice oggetto o eseguibile, purche' sia accompagnato dal riferimento alla licenza GPL 4. Non e' possibile copiare, distribuire e modificare il programma apponendogli una diversa licenza. 5. Nessuno e' tenuto ad accettare questa licenza, ma se il software viene copiato, modificato o distribuito senza rispettarla, si infrange la legge. Non e' inoltre possibile limitare i diritti garantiti dalla GPL. Licenza LGPL La licenza Lesser GPL e' una GPL con meno restrizioni in quanto a inclusione del codice in software non libero. E' stata pensata in pratica solo per le librerie, in alcuni casi particolari. Le librerie sotto questa licenza possono essere usate da software non libero, o che comunque non usi la licenza GPL. Questo puo' essere utile, paradossalmente, per promuovere il software libero. Per esempio, prmettendo l-uso della libreria anche a software closed-source si facilita la creazione di uno standard di fatto, che favorisce la diffusione e sviluppo della libreria open source. Un'altro caso e' quello di librerie che fanno lo stesso lavoro di librerie closed-source: in questo modo si favorisce l-uso di quella open source. Licenza BSD La distribuzione e l'uso dei sorgenti e del codice eseguibile, con o senza modifiche, sono permessi secondo le seguenti condizioni: 1. Il codice sorgente o l'eseguibile devono essere accompagnati dalla licenza BSD. 2. Il nome dell'autore/i non puo' essere usato senza permesso da terzi per promuovere software derivati dal programma originale. Dal 1999 questa clausola e' pero' stata abolita, e non e' piu' valida per le licenze BSD successive. Licenza MIT E' in pratica identica alla vecchia licenza BSD . Licenza SPL La SUN Public License permette di copiare, distribuire e modificare il software, ma non di rivenderlo. Licenza SISSL Sun Industry Standards Source License Apache Software License E' una specie di licenza BSD, con cui si pu, redistribuire il software e i sorgenti con o senza modifiche, ma occorre mantenere l'intestazione: "This product includes software developed by the Apache Software Foundation (http://www.apache.org/)." Software derivato dal codice di Apache non puo' inoltre fregiarsi del suo nome a meno di un permesso scritto concesso da Apache Software Foundation. Licenza APSL La Apple Public Source License e' nata per il nuovo core open source del MacOS X. Essa consente di modificare, copiare, ridistribuire il codice sorgente MA solo per uso personale e di ricerca interna.
Page 22: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Analisi del SW di base, applicativo e di sviluppo in dotazione (ai PC di Analisi del SW di base, applicativo e di sviluppo in dotazione (ai PC di Aula)Aula)

• Esercitazioni• Prompt dei comandi di XP

Page 23: F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni.

F. Bartoloni

Analisi del SW di base, applicativo e di sviluppo in dotazione (ai PC di Analisi del SW di base, applicativo e di sviluppo in dotazione (ai PC di Aula)Aula)

• Esercitazioni• La “shell” di XP