software: di sistema, applicativo, linguaggi, licenze d'uso carlo ottaviani, ism-cnr

74
Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Upload: franca-ferrara

Post on 01-May-2015

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Software: di sistema, applicativo, linguaggi, licenze d'usoCarlo Ottaviani, ISM-CNR

Page 2: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistema operativo vs. software applicativo (2)

• Il sistema operativo è quindi indispensabile alla macchina per funzionare. Il software applicativo serve invece per tutti gli usi che l'utente vuole fare del computer, da quelli di utilità (manutenzione dischi, antivirus) a quelli di produttività personale (Office automation, grafica etc.). Non è indispensabile alla macchina per funzionare. L'unica eccezione di programma applicativo integrato nel sistema operativo è... (domanda da 5$)?

Page 3: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi Operativi – avvio (1)Quando si avvia il computer, quindi, il BIOS

controlla l'hardware, cerca un disco di avvio (sul quale il s.o. dovrà essere presente) e passa il controllo al bootloader, un piccolo programma presente su un settore detto MBR del disco.

Page 4: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi Operativi – avvio (2)Il bootloader provvede a caricare in RAM il sistema

operativo, del quale conosce la posizione (settore di boot di una partizione), o un successivo bootloader che la conosce e compie l'operazione al posto suo.

Page 5: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi Operativi – componenti (1)

La componente fondamentale di un sistema operativo è denominata KERNEL (nucleo). Esso si occupa della gestione dell'hardware di base tramite un layer di astrazione, in questo affiancato da un'altra componente, i driver, e gestire tutti i processi, tramite uno scheduler. Il command interpreter, invece, riceve un comando, ne controlla la sintassi, e lo esegue generando eventuali codici di errore.

Page 6: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi Operativi – componenti (2)

Nel MS-DOS esisteva solo il command.com che comprendeva anche l'unica interfaccia utente (che appariva col famoso prompt, es.: C:\>). Nei vari Unix, le interfacce, o shell, sono diverse (es.: csh, bash), mentre per i sistemi “punta e clicca” a volte non esiste interfaccia testuale, ma solo quella grafica (es.: il Finder del MacOS), che traduce i movimenti del mouse in comandi.

I driver sono spesso moduli caricabili dinamicamente dal kernel.

Page 7: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi Operativi – componenti (3)

In alcuni casi, nei sistemi operativi sono integrati un certo numero di programmi “bonus”. È il caso di Windows con Internet Explorer, che ne costituisce in pratica l'interfaccia grafica, il file manager ed il programma di navigazione web. Il che, come sapete, ha procurato le note grane legali, non ancora risolte, alla Microsoft. Nel caso di Unix, invece, l'interfaccia grafica stessa (XFree86) è un programma a parte, opzionale.

Page 8: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi Operativi – Microsoft (1)L'evoluzione dei sistemi operativi Microsoft

segue quella dell'hardware dei PC in maniera così inscindibile che è stato coniato il termine “Wintel” per definire i PC compatibili Intel, sui quali gira, nella quasi totalità dei casi, Windows. Il primo s.o. targato MS fu il MS-DOS (Disk Operating System), pensato per i primi PC-IBM (1981) con processori 8088 (8bit) e 8086 (16 bit); il DOS è arrivato fino alla versione 6.22.

Page 9: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi Operativi – Microsoft (2)Nel frattempo, dopo il boom del Macintosh,

gli fu creata un'interfaccia grafica chiamata Windows. Fino all'accoppiata DOS 4.0/Windows 3.1, la seconda girava sul primo (un po' come XFree su Unix), ma già con Windows 95 la presenza del DOS era abilmente dissimulata sotto l'interfaccia grafica e solo alcune funzioni erano passate di mano. Come Windows 98 e ME, le successive evoluzioni, sono fondamentalmente dei sistemi operativi client e monoutente.

Page 10: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi Operativi – Microsoft (3)Le operazioni di rete hanno acquisito, nel

tempo, un'importanza sempre maggiore, e la Microsoft, sempre seguendo MacOS sul fronte client, ha integrato caratteristiche di rete come condivisione di files e stampanti, navigazione web, e-mail. Ben presto ci si rese però conto che in un vero ambiente di lavoro con rete di computer, occorre un'architettura client/server e multiutente, per la quale Windows era inadeguato, rispetto ad es.: a Unix, VMS, etc.

Page 11: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi Operativi – Microsoft (4)Nacquero perciò Windows NT (sviluppato

dal team di sviluppo del VMS, portato via a suon di dollari dalla Digital) ed i suoi successori Windows 2000 e Windows XP, nel quale si completa il merge tra i due rami di sviluppo di Windows. La serie NT comprende una suite di programmi di servizi per Internet (la tecnologia IIS – Internet Information Service), facile da usare ma fonte di infiniti guai per gli amministratori per le sue vulnerabilità.

Page 12: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Microsoft Windows – pregi e difetti (1)

PREGI:Facilità d'uso per applicazioni standardSi trova generalmente preinstallatoFacile trovare assistenza (a pagamento o da

qualche amico smanettone)Gran quantità di software disponibile,

purtroppo spesso piratato (!)È uno standard, o almeno aspira ad esserlo

Page 13: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Microsoft Windows – pregi e difetti (2) DIFETTI:Configurazione difficoltosa ed a volte poco

flessibile per applicazioni non standardCostoso e con licenza discutibileSoggetto a problemi di sicurezza (bugs, virus,

vulnerabilità varie – vedi Nimda, Code Red SQL worm e l'ultimo arrivato Blaster)

Gli aggiornamenti vengono rilasciati solo quando decide Microsoft e non sempre risolvono tutti i problemi di sicurezza riscontrati

Page 14: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi Operativi – Unix (1)

•Unix fu inventato nel 1970 nei laboratori della AT&T – Bell, Inizialmente scritto in assembler per il PDP, in seguito fu riscritto in C per essere leggero, potente e portabile. Scritto “dai programmatori per i programmatori” è pieno di comandi criptici a causa di abbreviazioni non sempre chiare (es.: cp=copy, ps=process status). Oltre a questo è un sistema multiutente, multitasking e orientato alla rete.

Page 15: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi Operativi – Unix (2)•Per motivi legali (antitrust), molto simili a quelli che attualmente coinvolgono Microsoft, AT&T fu costretta a cederne alle università il codice sorgente. Questo favorì lo sviluppo di Unix, ma creò di fatto un fork dello sviluppo stesso: la AT&T poté alla fine commercializzare il suo Unix (del quale poi cedette la licenza), denominato SystemV, ma era nato un altro standard “universitario”, detto BSD (Berkeley Distribution System) ed i due avrebbero da quel momento dovuto convivere.

Page 16: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi Operativi – Unix (3)Esistono tra i due tipi differenze

architetturali, semantiche (comandi - es.: ps - leggermente diversi) ma anche concettuali, specialmente per la struttura di init (che vedremo più avanti). Esistono anche due diverse filosofie, causa di infinite guerre di religione tra i loro sostenitori, sulla struttura del kernel: microkernel contro kernel monolitico. La più nota vede contrapposti Tanenbaum (inventore di Minix) e Torvalds (inventore di Linux)

Page 17: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi Operativi – Unix (4)

La distinzione è trasversale (MkLinux, un SystemV, è basato su Mach, un microkernel sviluppato da Apple, così come MacOSX, che invece è un BSD). In generale un microkernel è considerato un po' meno veloce, ma più stabile ed adatto ad applicazioni real-time (es.: QNX, uno Unix real-time per applicazioni critiche come il controllo di un velivolo). Linux non è real-time se non in piccola parte.

Page 18: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi Operativi – Unix (5)È importante notare che, nonostante le

differenze citate, Unix è nato per essere uno standard, e di fatto lo è, in quanto tutti i programmatori di tutti i suoi dialetti (commerciali o open source, SystemV o BSD) si sforzano di seguire ed implementare gli standards IEEE – POSIX (Portable Operating System Interface for Computer Environments). Tra gli Unix commerciali citiamo Sun Solaris, IBM AIX, MacOS X, tra gli open source i vari *BSD e Linux.

Page 19: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

*BSD Unix (1)A partire dalle versioni 4.3 e 4.4 del kernel

BSD, sviluppato alla Berkeley University, sono nate tre implementazioni libere denominate FreeBSD, OpenBSD e NetBSD. Si tratta di progetti di sviluppo indipendenti, con finalità leggermente diverse, che però spesso condividono parti di progetto (es.: i ports), e soprattutto la licenza BSD (il software è a sorgente aperta, gratuito e riutilizzabile anche per scopi commerciali, cioè la licenza BSD non è completamente ereditaria).

Page 20: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

*BSD Unix (2)

FreeBSD – Tra i tre è quello più “completo”, offre moltissimi programmi aggiuntivi ed aggiornati, drivers per periferiche, ed è orientato anche ai sistemi desktop, anche se il suo target sono i server di rete. Il sistema di aggiornamento dei programmi detto dei ports è molto potente, anche se usarlo per aggiornare il sistema operativo stesso presenta non pochi ostacoli. L'ultima versione stabile è la 4.8, la più recente la 5.1.

Page 21: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

*BSD Unix (3)

OpenBSD – Orientato alla sicurezza, offre relativamente pochi ma testatissimi programmi (magari non l'ultima versione rilasciata), ed i suoi programmatori hanno sviluppato software di crittografia come OpenSSH e OpenSSL (infatti la sua sede è in Canada, per aggirare le restrizioni USA sul software crittografico) ed il miglior sistema di filtro pacchetti. È storicamente il meno vulnerabile, ed il più adatto per un server. Ultima versione stabile la 3.3.

Page 22: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

*BSD Unix (4)

NetBSD – Tra i tre è quello più “criptico” e difficile da installare, ma offre il supporto per un numero esagerato di piattaforme hardware, laddove FreeBSD gira solo su PC Intel e Alpha, e OpenBSD su PC, Alpha, Macintosh* e poche altre. Come dotazione software si colloca a metà tra i suoi colleghi, anche se eredita il sistema dei ports da FreeBSD. Ultima versione stabile la 1.6.1.

Page 23: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

*BSD Unix (5)And the winner is... FreeBSD se volete unire relativa facilità

d'uso, completezza e software aggiornatissimo

OpenBSD se volete un sistema a prova di intrusione. L'unico in grado di fungere da bridge-firewall

NetBSD se avete un vecchio sistema non PC da recuperare alla grande, anche se richiede un po' di hacking

Page 24: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Linux (1)Linux nasce dall'idea di Linus Torvalds di

sviluppare uno Unix SystemV per PC libero e gratuito. L'idea fu talmente buona che diede origine ad una massa impressionante di programmatori al lavoro su di esso, alla nascita della GNU Free Software Foundation (donde la definizione di GNU-Linux) e della sua licenza GPL (GNU General Public License). Essa prevede che il software sia a sorgente aperta, gratuito e riutilizzabile a patto che i derivati siano anch'essi a licenza GPL.

Page 25: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Linux (2)

Ricordate i motti “Linux is not Unix” e GNU is Not Unix”. Infatti il marchio Unix è ancora di fatto registrato, e ci si può fregiare di tale nome solo pagando royalties, che è l'antitesi del progetto di software libero propugnato da Torvalds e Stallman. Di questi giorni è il tentativo di SCO (che detiene i diritti di Unix) di dimostrare che in realtà Linux e la IBM hanno violato il copyright

Page 26: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Linux (2)Linus Torvalds segue ancora lo sviluppo del

solo kernel, ed è lui a decidere quali modifiche tra quelle proposte vengono integrate nel kernel ufficiale e quando rilasciare una nuova versione (ultima stabile la 2.4.21). A differenza dei *BSD, dove ogni progetto gestisce l'intero sistema operativo e decide quali programmi integrare, esistono una miriade di distribuzioni di Linux, che condividono kernel e licenza, ma assolutamente diverse per software incluso, organizzazione files e tools di configurazione

Page 27: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Linux (3)Le distribuzioni più famose sono:RedHat – giunta alla versione 9a, è

completa (3 cd di software di ogni tipo!) e piena di tools grafici di configurazione, anche se per vari motivi comincia a discostarsi dalla filosofia originale (ad es.: per alcune modifiche autonome al kernel ed il copyright sul marchio). Per questo un po' avversata dai puristi, è molto adatta ad un server facile da mantenere, ed offre la possibilità di acquistare l'assistenza a prezzi convenienti).

Page 28: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Linux (4)

Mandrake – giunta alla versione 9.1, è la più facile da usare. Per questo si adatta ai principianti ed ai sistemi desktop; a causa della continua ricerca del software più recente (anche qui 3 cd di programmi disponibili) presenta però qualche problema di sicurezza e stabilità che la rende meno adatta all'uso su un server. Anche qui si può acquistare il supporto a prezzi contenuti. L'ideale se volete abbandonare Windows senza traumi...

Page 29: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Linux (5)Slackware – giunta alla versione 9.1, era

detta “the Linux for the subgenius” a causa della sua complessità di configurazione (niente o quasi tools grafici) ed aggiornamento, e del suo init in stile BSD (anche se è possibile usare una struttura tipo SystemV). Amata dai puristi e con pochi problemi di sicurezza, è adattissima ai server anche se lo sviluppatore non fornisce assistenza. Adatta ad un utente già “svezzato”, la dotazione software (1-2 cd) è completa.

Page 30: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Linux (6)Debian – La più amata dai puristi, perché

la più aderente al progetto GNU, è piuttosto ostica nella configurazione iniziale, ma ha il sistema di aggiornamento automatico forse più evoluto. Non brilla per fornire sempre il software più recente, ma ha pochi problemi di sicurezza. Adatta ad un server ed all'utente smaliziato, non prevede la fornitura di supporto tecnico a pagamento. Ultima versione la 3.0, si possono avere fino a 7 cd di software...

Page 31: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Linux (7)

SuSE – Distribuzione tedesca, è disponibile solo a pagamento (prezzo comunque contenuto) a differenza delle altre che si possono scaricare liberamente da internet, allegare alle riviste di informatica, ed opzionalmente acquistare. Molto evoluta, ha il miglior programma di installazione iniziale. Adatta sia a sistemi server che desktop, è alla versione 8.2, venduta su 7 cd e un DVD.

Page 32: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Linux (8)

YellowDog – Distribuzione derivata da RedHat, ma concepita per i sistemi PowerPC, per i quali è la migliore in assoluto (battendo Mandrake, SuSE e Debian). Integra i sistemi di aggiornamento di RedHat e Debian, ed è adatta sia ai server che ai desktop (anche se con qualche piccolo baco nella parte multimediale). Offre servizi a pagamento ed è da poco uscita la versione 3.0, con 3 cd di software.

Page 33: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Linux (9)

And the winner is... RedHat se volete unire facilità d'uso,

completezza e possibilità di acquistare supporto tecnico

Slackware se volete avere la possibilità / non avete paura di sporcarvi le mani per ottenere tutto quello che volete dalla configurazione

Yellowdog se avete un PowerPC

Page 34: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi proprietari o sistemi liberi? L'eterno dilemma! (1)Esistono due partiti ben delineati,

sull'argomento “software commerciale o software libero”. I sostenitori del primo affermano che il software commerciale, per il fatto che si paga acquistandolo da una compagnia seria e rinomata, offre maggiori garanzie di solidità e sicurezza. I sostenitori di Windows, poi, sostengono che la sua facilità d'uso e la possibilità di trovare molti esperti grazie alla sua diffusione, dia vantaggi di economicità anche se lo si paga inizialmente di più.

Page 35: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi proprietari o sistemi liberi? L'eterno dilemma! (2)I sostenitori dell'open source, invece, dicono

che il fatto che il software sia sviluppato da migliaia di programmatori, con accesso al codice sorgente, garantisca che eventuali problemi di sicurezza e stabilità siano trovati, resi pubblici e risolti in tempi rapidi, senza dover seguire logiche commerciali. Inoltre si trovano ormai molti esperti Linux disponibili, ed è un dato di fatto che Linux è più stabile (circa 12 volte meno soggetto a crash di sistema, secondo test affidabili).

Page 36: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi proprietari o sistemi liberi? L'eterno dilemma! (3)La mia personalissima opinione è che

l'argomento “ditta seria = solidità” valga solo per alcuni Unix commerciali (Solaris in testa), ma non ancora per Windows, a causa delle esasperate politiche commerciali (vedi obsolescenza programmata) che causano un numero elevato di problemi di sicurezza. Tali problemi poi, vengono a volte negati fino al loro esplodere, oppure fino al rilascio tardivo di una patch, talvolta inadeguata. Questa secondo me non è propriamente serietà.

Page 37: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi proprietari o sistemi liberi? L'eterno dilemma! (4)

Il problema di rilascio delle patch non coinvolge l'Open Source. Nel caso di una vulnerabilità grave il rimedio si trova disponibile al massimo in una settimana, spesso poche ore dopo la sua scoperta. Se poi si usa un sistema di aggiornamenti automatici (RedHat, FreeBSD, Debian, YellowDog) il sistemista non deve nemmeno preoccuparsi di andarli a cercare ed installare.

Page 38: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi proprietari o sistemi liberi? L'eterno dilemma! (5)

Infine, due parole sugli aspetti legali delle licenze. Con Windows, in realtà non avete nessuna garanzia sul buon funzionamento del software, e nelle ultime versioni dovete accettare che Microsoft decida se e quando installarvi gli aggiornamenti. E ricordate che usare Windows senza licenza, come molti fanno (magari avendo fatto un upgrade irregolare da una versione precedente di cui si aveva la licenza) è un REATO.

Page 39: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sistemi proprietari o sistemi liberi? L'eterno dilemma! (6)

Con l'Open Source, invece, avete la facoltà di fare quello che volete, anche ricompilarvi il kernel con le sole caratteristiche che vi servono, rendendolo più leggero e veloce. Certo, costa fatica. Inoltre nessuno vi vieta di acquistarlo da una ditta che vi offre supporto tecnico per installazione ed eventuali problemi: semplicemente potete scegliere. Infine, potete riutilizzare PC un po' datati, come detto prima.

Page 40: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Con tutto questo, non vi dirò mai: “Windows è @¥¿#%, cancellatelo subito dal vostro PC e usate Linux”, perché sarebbe concettualmente sbagliato, ma: “Cercate di scegliere responsabilmente, dopo aver valutato pregi, difetti e possibili conseguenze della vostra scelta”. Se volete un sistema proprietario, comunque, vi consiglio Solaris (un'ottima scelta se potete permettervi una workstation Sun, un po' meno sul PC).

Sistemi proprietari o sistemi liberi? L'eterno dilemma! (7)

Page 41: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Per software applicativo si intendono, come detto, tutti i programmi eseguibili, destinati a qualsiasi scopo (scrivere un testo, ascoltare un CD audio, tenere la contabilità, scrivere voi stessi un altro applicativo usando un ambiente di programmazione, etc.:). Fare una lista esaustiva non è possibile in questa sede. Mi limiterò pertanto a fare delle classificazioni in base al tipo di s.o. ed alle licenze d'uso.

Software applicativo (1)

Page 42: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

La stragrande maggioranza dei programmi sono scritti per Windows, a causa della sua diffusione. Questo è tanto più vero quando si parla di giochi, mentre la differenza si assottiglia terribilmente quando cominciamo a parlare di linguaggi di programmazione e relativi compilatori e software per offrire servizi di rete. Nell'ultimo caso, anzi, se parliamo solo di software di qualità il rapporto si inverte a favore di Unix. Il Macintosh rimarrebbe come fanalino di coda, ma con MacOS X eredita la massa del software Unix.

Software applicativo (2)

Page 43: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Si trovano sostanzialmente tre tipologie di licenze software: due già viste (sw proprietario e sw open source) mentre per gli applicativi ha preso molto piede (soprattutto su Windows e MacOS) una terza tipologia detta shareware: il sw è distribuito gratuitamente, con tutte le sue funzioni o quasi, ma dopo un periodo di prova ragionevole l'utente è chiamato a pagarlo (di solito poco) e riceve un codice per sbloccare le funzioni mancanti o l'intero programma (dopo la scadenza spesso smette di funzionare).

Software applicativo (3)

Page 44: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Per un server, la scelta deve ricadere necessariamente sulle prime due tipologie: lo shareware di solito non ha un modello di sviluppo tale da garantire la costanza degli aggiornamenti ed il supporto, e spesso (ma esistono eccezioni clamorose) la qualità risulta inferiore. Personalmente, anche nel caso del sw applicativo ritengo preferibile, ma con molte eccezioni relative soprattutto all'ambiente client, l'approccio open source.

Software applicativo (4)

Page 45: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Il re incontrastato dei programmi per office automation (ovvero quelle suite di programmi comprendenti un editor di testi, un foglio di calcolo, un editor di presentazioni, e talvolta un programma di disegno, che chiunque abbia mai acceso un PC ha maneggiato almeno una volta) è senza dubbio Microsoft Office. Le ragioni sono varie, ma di fatto al giorno d'oggi nessuna suite che non sia in grado di importare ed esportare files nel suo formato ha chances di mercato.

Office automation (1)

Page 46: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Microsoft Office comprende Word (l'editor di testi), Excel (il foglio di calcolo) e PowerPoint (l'editor di presentazioni). Curiosamente, i primi due si sono diffusi all'inizio sulla piattaforma Macintosh, dove il sistema operativo permetteva funzioni avanzate (es.: wysiwyg, what you see is what you get) all'epoca vietate su DOS ed i primissimi Windows. È strapieno di funzioni avanzate, anche multimediali e per il Web, e ne esce una nuova release ogni anno circa (v. obsolescenza programmata). Esiste per Windows e MacOS*.

Office automation (2)

Page 47: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Nelle versioni più complete MS Office include anche un semplice database chiamato Access, ma nessun programma di disegno (a parte quello rudimentale di PowerPoint). Altre possibili scelte per Win e Mac erano, sul fronte testi, WordPerfect della Corel e Nisus, ma sono spariti per dissesti commerciali, mentre come suite commerciale alternativa esiste ancora StarOffice della Sun, la cui storia è alquanto curiosa (vedi il seguito).

Office automation (3)

Page 48: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Da StarOffice a OpenOffice (1)

La Sun acquistò alcuni anni fa StarOffice da una piccola software house tedesca. Lo scopo iniziale era di proporlo come suite per la piattaforma Sparc/Solaris, da lanciare come alternativa Workstation ai PC. Per poterlo in qualche modo imporre in un mondo dove MS Office era il dominatore incontrastato, si decise di portarlo anche su Windows e di distribuire la versione 5 gratis... sì, proprio gratis ed a chiunque!

Office automation (4)

Page 49: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Da StarOffice a OpenOffice (2)

Con l'avvento di Linux, StarOffice fu portato anche su questo s.o. con le stesse modalità. All'epoca la suite era migliore (ma più “pesante”) di quella MS, sia per il programma di disegno che per il database, oltre che per il suo ambiente integrato. Ma... poteva bastare a farlo esplodere su Linux, un ambiente dove l'open source è la filosofia di base? No, e la Sun prese una decisione spiazzante per molti: rendere pubblici i sorgenti di StarOffice.

Office automation (5)

Page 50: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Da StarOffice a OpenOffice (3)

Con questa mossa si ottennero vari risultati:La creazione di un team di sviluppo enorme

chiamato OpenOfficeIl supporto di tale team per arrivare alla

versione 6 di StarOffice in minor tempoIl porting su altre piattaforme (es.: MacOS X

ed i *BSD)Una diffusione capillare ed un'ottima

pubblicità

Office automation (6)

Page 51: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Da StarOffice a OpenOffice (4)

Attenzione: la versione 6 di StarOffice si paga (molto meno di MS Office, ed è gratis per le scuole), ma nel frattempo OpenOffice, gratuito ed open source, è arrivato alla versione 1.1 (quella usata per creare questa presentazione) e costituisce un'alternativa validissima al programma di Microsoft, con i cui files si ha una compatibilità vicina al 95%. Buone alternative libere per Linux sono GNUmeric (calcolo) e ABIword (word proc.)

Office automation (7)

Page 52: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

OpenOffice comprende Write, Calc, Impress e Draw, mentre il database non è più presente per motivi di licenza (almeno su Linux, dove ce ne sono tonnellate gratis, questo non è un problema). L'ambiente integrato di StarOffice è stato abbandonato, ma l'integrazione tra le varie parti è ottima. Costituisce perciò un'alternativa validissima per tutti quei casi dove si ha bisogno di un programma di punta ma non si può spendere troppo e non si vuole usare software pirata . Lo trovate su www.openoffice.org.

Office automation (8)

Page 53: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Software di sviluppo (1)Fino a non molto tempo fa si parlava di linguaggi di programmazione: al giorno d'oggi tale definizione è limitativa, in quanto esistono ambienti di sviluppo (RAD, Rapid Application Development) nei quali non occorre digitare una sola riga di codice (es.: NI LabView, Borland Kylix e per certi versi lo stesso Microsoft Visual Basic). In ogni caso, i linguaggi tradizionali rimangono la maggioranza, anche se con alcune novità rispetto al passato, che analizzeremo.

Page 54: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Software di sviluppo (2)Per linguaggio di programmazione, a scanso di equivoci, intendiamo dunque un set più o meno completo di istruzioni, funzioni e variabili, con nomi definiti e comprensibili dal programmatore “umano”, che le può organizzare secondo una sintassi definita scrivendo un file di testo, che verrà poi in qualche modo convertito in un set di istruzioni in linguaggio macchina, comprensibili al processore, per consentirne l'esecuzione.

Page 55: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Software di sviluppo (3)Tra i linguaggi veri e propri, come i famosi Basic, Fortran, C e Java, la prima distinzione da fare è tra linguaggi interpretati e compilati. Nei primi, il codice viene letto da un software detto interprete e trasformato “al volo” in istruzioni macchina durante l'esecuzione, con ovvia maggiore lentezza, ma con la possibilità di testare il programma strada facendo e minore occupazione di spazio su disco da parte del programma stesso.

Page 56: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Software di sviluppo (4)Nei linguaggi compilati, invece, il codice dev'essere trasformato una volta per tutte (da un software detto compilatore) in codice macchina. Si genera perciò un applicativo che è eseguibile anche in assenza dell'ambiente di sviluppo che lo ha generato, e più veloce perché salta la fase di traduzione, ma occupa più spazio sul disco. Talvolta (es.: QuickBasic) erano presenti le due opzioni (il programma, una volta fatto e testato con l'interprete, si poteva compilare).

Page 57: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Software di sviluppo (5)Un'altra distinzione fondamentale è quella tra i linguaggi di programmazione strutturati ed i linguaggi di programmazione ad oggetti (esistono altri paradigmi di programmazione, ma per brevità li ignoreremo). Linguaggi come C, Basic, Fortran appartengono alla prima categoria, mentre C++, Java, SmallTalk alla seconda (il primo in realtà è un ibrido per mantenere la compatibilità con il C, al quale aggiunge le funzioni OOP).

Page 58: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Software di sviluppo (6)

I linguaggi di programmazione strutturati sono quelli dove il programma è diviso in unità funzionali (dette subroutine) che hanno un solo punto d'ingresso ed uno o più punti d'uscita ben definiti. Il flusso di esecuzione avviene passando da una subroutine all'altra (successiva o tramite salti condizionati), ed all'interno di esse passando da un'istruzione alla successiva, a parte il caso anche qui dei salti condizionati.

Page 59: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Software di sviluppo (7)

L'idea dei linguaggi di programmazione ad oggetti è quella di dividere il sistema in una serie di oggetti, appartenenti a determinate classi. Tutti gli oggetti della stessa classe hanno le stesse variabili e le stesse funzioni, dette metodi. Il programma viene dunque scritto definendo le classi e le loro interazioni, o relazioni di parentela, attraverso i metodi.

Page 60: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Scripting (1)I linguaggi di scripting sono quelli che consentono al programmatore di interagire con il command interpreter del proprio sistema organizzando i comandi in una sequenza opportuna, invece di digitarli interattivamente uno dopo l'altro. Gli esempi classici sono i files di batch del DOS, le shell di Unix (sh, csh, bash, tcsh, ksh, etc.), e veri e propri linguaggi avanzati come il PERL (Practical Extraction and Report Language) e Python.

Page 61: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Scripting (2)Shell:

la prima ad essere scritta fu la Bourne shell (sh), seguita, ai tempi di Berkeley, dalla C shell o csh, che integrava alcuni comandi C. La Bourne-again shell o bash fu la prima implementazione Open Source, con il meglio di sh e csh più altre funzioni come il completamento automatico dei comandi. In seguito David Korn creò la sua ksh, che implementava anche delle funzioni. La zsh è una ksh con controllo ortografico.

Page 62: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Scripting (3)PERL:

Fu creato come una sorta di shell, particolarmente adatta al trattamento di files di testo per estrarne e modificarne il contenuto etc. Questo fatto, insieme alla sua modularità e potenza, ne ha determinato l'esplosione. Attualmente esistono moduli (>2500) per ogni tipo di funzione (anche per sviluppo web, gestione e-mail etc.) raccolte in una collezione chiamata CPAN (Comprehensive Perl Archive Network) http://www.cpan.org/

Page 63: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

DatabaseI linguaggi orientati al database sono quelli che consentono di intervenire appunto su basi di dati per inserire, modificare, estrarre i dati secondo schemi predefiniti etc. Il più famoso linguaggio di questo tipo, creato negli anni '70 da IBM, all'inizio solo per l'interrogazione, è SQL (Structured Query Language). È ormai uno standard, e tutti i moderni database sono in grado di interagire con i comandi SQL, a partire da Microsoft SQL ai DB Open Source (MySQL, PostgreSQL) fino ai “mostri” DB2 ed Oracle.

Page 64: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sviluppo web (1)I linguaggi di sviluppo web permettono di generare ipertesti, cioè files di testo con incorporati i comandi che, interpretati dal client o browser, permetteranno di formattare la pagina nel modo voluto presentandola sullo schermo dell'utente. Esistono linguaggi per la generazione di pagine statiche (HTML) e dinamiche (PHP, ASP, Java) nelle quali il contenuto delle pagine dipende anche da alcune variabili e dall'input dell'utente.

Page 65: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sviluppo web (2)Il primo linguaggio per le pagine web fu l'HTML (HyperText Markup Language), nato come standard presso il W3 consortium. Un comando HTML o tag ha la forma

<b>testo in grassetto</b> -> testo in grassetto

Pur ricco di caratteristiche ed espanso nel tempo con comandi per la formattazione delle pagine ed i fogli di stile (CSS), si rivelò presto insufficiente per alcune applicazioni moderne. Ogni produttore di browser creò i propri tag supplementari, annullando la standardizzazione del linguaggio.

Page 66: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sviluppo web (3)Partì quindi lo sviluppo di XML (eXtensible Markup Language), erede di SGML (Standard Generalized Markup Language), uno standard per la documentazione elettronica con il quale lo stesso HTML era stato creato. Quindi HTML è usato solo per formattare i dati, mentre XML è complementare ad esso e serve a creare linguaggi di markup definendo i relativi tag, e delegando la formattazione ai files di stile XSL. Esempi di linguaggi sono MML (matematica), CML (chimica).

Page 67: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sviluppo web (4) La possibilità di far eseguire programmi al client per ottenere effetti di vario tipo (es.: un bottone che cambia colore quando il mouse lo attraversa) fu implementata con Java e Javascript. Java è un linguaggio di programmazione potente, orientato agli oggetti, ed indipendente dalla piattaforma (lo stesso programma gira senza modifiche su qualsiasi computer) inventato dalla Sun e presto assurto a standard. Per ottenere questo risultato è stato creato come ibrido interprete/compilatore.

Page 68: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sviluppo web (5)Il programma viene preprocessato e trasformato in un file binario (applet) non nel linguaggio macchina del processore, ma in quello (bytecode) della Java Virtual Machine (JVM), una macchina virtuale della quale esiste un'implementazione per ogni piattaforma. La JVM interpreta il bytecode e lo esegue. Il browser riceve in ogni caso un codice binario, la cui sintassi non può essere visualizzata guardando la sorgente della pagina web.

Page 69: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sviluppo web (6)I Javascript, sviluppati da Netscape, sono invece degli script inseriti nelle pagine web, così come avviene per i tag HTML, che vengono interpretati ed eseguiti da un modulo apposito del browser, e costituiscono un “parente povero” del linguaggio Java. Quindi è possibile vedere i programmi Javascript nella sorgente della pagina. I Javascript creano noti problemi di sicurezza perché “girano” a livello di s.o., laddove gli applet Java sono invece confinati all'interno della virtual machine.

Page 70: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sviluppo web (7)L'approccio opposto è invece costituito dalla possibilità di eseguire codice sul server, per generare delle pagine dinamiche, che si adattano cioè all'input fornito dall'utente (es.: per la consultazione di un database, per l'autenticazione per accedere a pagine riservate, etc.). I primi esempi sono stati i CGI (Common Gateway Interface, molti scritti in Perl) mentre oggi ci sono altri linguaggi di scripting orientati al web come ASP (Microsoft) e PHP (Open Source).

Page 71: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sviluppo web (8)In pratica, con ASP e PHP, si inseriscono nelle pagine dei tag particolari (es.: <? comando ?> per php, <% comando %> per ASP). Il server web, nel momento in cui la pagina viene richiesta, interpreta ed esegue i comandi, e spedisce al client l'output html risultante (non potete vedere il codice php nel sorgente della pagina scaricata...) Si tratta di due linguaggi potenti, con funzionalità avanzate e moduli per interfacciarsi con database compatibili SQL.

Page 72: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sviluppo web (9)Database supportati da php3

• Adabas D• InterBase• Solid• Dbase• MSQL• SyBase• Empress• SQL Server

• MySQL• Velocis• FilePro• Oracle• Unix dbm• Informix• PostgreSQL• MS Access

Page 73: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR

Sviluppo web (10)

Queste caratteristiche, oltre alla possibilità di gestire i più noti protocolli di rete, li rendono adatti ad applicazioni Web come i negozi on-line con i loro carrelli virtuali, ma anche le biblioteche on-line etc. Esistono ormai veri e propri ambienti di sviluppo come ad es.: PhpNuke, per la creazione di portali web che utilizzino questo linguaggio.

Page 74: Software: di sistema, applicativo, linguaggi, licenze d'uso Carlo Ottaviani, ISM-CNR