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

Download Report

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

SW: di base, applicativo, linguaggi, licenze
d'uso
Fulvio Bartoloni
F. Bartoloni
SW: 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)
F. Bartoloni
Il 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.
F. Bartoloni
Il 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.
F. Bartoloni
Sistemi operativi Microsoft: storia, versioni, evoluzione
•
F. Bartoloni
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
Sistema operativo Unix: storia, versioni, evoluzione
•
•
•
F. Bartoloni
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).
Sistemi operativi OpenSource Unix like: BSD, FreeBSD, OpenBSD,
NetBSD
•
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.
F. Bartoloni
Sistemi operativi OpenSource Unix like: BSD, FreeBSD, OpenBSD,
NetBSD
•
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.
F. Bartoloni
Sistemi operativi OpenSource Unix like: Linux
•
•
•
•
•
F. Bartoloni
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.
SW 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.
F. Bartoloni
SW 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.
F. Bartoloni
Office 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.
F. Bartoloni
SW 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,
F. Bartoloni
Linguaggi di script: shell, Perl
•
Shell Script
Breve 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.
•
Perl
Linguaggio 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.
F. Bartoloni
Linguaggi 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.
•
F. Bartoloni
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)
F. Bartoloni
Linguaggi orientati al WEB: HTML, XML, JAVA, Javascript,
PHP, 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.
F. Bartoloni
Linguaggi orientati al WEB: HTML, XML, JAVA, Javascript,
PHP, 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.
F. Bartoloni
Licenze 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
F. Bartoloni
Licenze 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.
F. Bartoloni
Licenze 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.
F. Bartoloni
Analisi del SW di base, applicativo e di sviluppo in dotazione (ai PC di
Aula)
• Esercitazioni
• Prompt dei comandi di XP
F. Bartoloni
Analisi del SW di base, applicativo e di sviluppo in dotazione (ai PC di
Aula)
• Esercitazioni
• La “shell” di XP
F. Bartoloni