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
Dott. Andrea Vituzzi – Centro di Ricerca sui Sistemi Informativi
Il sistema operativo: descrizione,
componenti, tipologie

Agisce da interfaccia tra utilizzatore ed hardware

Insieme di programmi che gestisce tutte le funzioni
basilari di un computer (gestione periferiche, lettura
supporti di memoria etc.)

Installato nell’hard disk viene caricato
all’accensione e rimane attivo fino allo spegnimento
del computer

Il sistema operativo fa parte del software di sistema.
Il sistema operativo: descrizione,
componenti, tipologie

Le componenti principali di un S.O. sono:
• Programmi di gestione dei dispositivi (driver )
• Interprete dei comandi
• Gestore della memoria primaria
• Gestore dei processori
• Gestore dell’I/O
• Gestore dei file (File System)
I sistemi operativi di ultima generazione più
diffusi sono:
WINDOWS
UNIX
LINUX

Sistemi operativi Microsoft:
storia, versioni, evoluzione
Le versioni di Windows che si sono succedute nel
tempo sono:

Windows 1.01 (1985) - 2.0 2.1 (1987) - 3.0 3.1 (19901992) – 95 - NT – 98 – 98se - Me -2000 - XP;
Windows NT e Windows 2000 per computer utilizzati
in rete
Windows CE e Pocket PC 2002 per dispositivi
palmari
Sistema operativo Unix: storia,
versioni, evoluzione

Unix è utilizzato principalmente in ambito aziendale
ed in particolare su computer inseriti in rete

sviluppato dal Computing Science Research Group
dei Bell Laboratories AT&T

nato nel 1969, si è diffuso rapidamente grazie al
fatto che i sorgenti venivano inviati gratuitamente

scritto in assembler nel 1973 verrà poi riscritto
usando il linguaggio "C“.
Sistemi operativi OpenSource Unix
like: BSD, FreeBSD, OpenBSD,
NetBSD

BSD è un sistema operativo FREE. Uno Unix vero
condividendo la stessa origine, UNIX® AT&T e
Università di Berkeley,

sono nate varie versioni con obiettivi differenti:
- NetBSD: portabilità (93 sistemi supportati)
- OpenBSD: sicurezza (una sola vulnerabilità
remota nell'installazione di default in più di 7 anni)
- FreeBSD: performance (usato da Yahoo)
Sistemi operativi OpenSource
Unix like: Linux




Settembre 1991 viene alla luce la versione 0.01,
resa liberamente disponibile sul server
dell'università di Helsinki da Linus Torvalds
Il motivo di tanto successo, era la possibilità di
reperire liberamente, il codice sorgente di Linux
16 Gennaio 1992 viene rilasciato la 0.12 che porta
novità a livello legale riguardanti la licenza. In
precedenza era esplicitamente vietato ottenere un
qualsiasi ritorno economico dalla sua diffusione. Da
questa versione viene adottata la GNU General
Pubblic License.
14 Marzo 1994 si arriva finalmente alla versione 1.0
SW applicativo: tipologie e
prodotti



Le operazioni che possono essere svolte con
l’aiuto del computer sono dette applicazioni
I programmi che permettono lo svolgimento di
tali operazioni sono detti software applicativi
Le principali categorie di software applicativi
sono:
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.
SW applicativo: tipologie e
prodotti
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.
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.
SW applicativo: tipologie e
prodotti
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.
Office Automation MS e
OpenSource
Il software di Office Automation più diffuso:
Microsoft Office
- Word
- Excel
- Access
- Power Point

Software Open Source
StarOffice
Open Office

SW di sviluppo: compilatori, interpreti,
linguaggi di programmazione
Linguaggi di programmazione


Di basso livello : linguaggio piu' comprensibile (vicino)
alla macchina piuttosto che al programmatore.
Di alto livello : linguaggio piu' intuitivo e comprensibile
per il programmatore
Il Compilatore

il compilatore e' un programma che traduce
automaticamente il codice scritto in un linguaggio in un
altro.
SW di sviluppo: compilatori, interpreti,
linguaggi di programmazione

Generalmente un compilatore si utilizza per tradurre
un linguaggio ad alto livello, (es.: il C) in linguaggio
assembly (di basso livello)

Un compilatore e' composto generalmente dalle
seguenti componenti: analizzatore lessicale, parser,
ottimizzatore, generatore di codice
Interprete

È il programma che interpreta il codice (codice
sorgente) in tempo reale, questo lo differenzia da
un compilatore.
SW di sviluppo: compilatori, interpreti,
linguaggi di programmazione

Le tipologie di linguaggio più in uso attualmente
sono:
Linguaggi di script (es. Perl, CGI, PHP, ASP,
Python, ecc.).
Linguaggi ad oggetti (es. Java, C++, Delphi, MS
Visual Basic)
Linguaggi di script: shell, Perl

Tali linguaggi permettono la creazione di programmi che sono
costituiti da semplici file di testo, che a loro volta contengono
una sequenza di istruzioni (uno script appunto), con la
possibilità di utilizzare condizioni (if e then), cicli (for) e altri
costrutti tipici di un linguaggio di programmazione
Shell Script


La shell e' un programma di sistema che agisce da interfaccia
tra utente e il sistema operativo stesso, eseguendo le istruzioni
di comando per la creazione e l'avvio di processi, per la
gestione di I/O, della memoria di massa e della memoria
principale.
Uno Shell Script è un breve elenco di comandi shell salvati
insieme in un file ed eseguiti dalla shell. Molto simile ai file
Batch del DOS
Linguaggi di script: shell, Perl
Perl

Linguaggio di programmazione libero e gratuito da
lungo utilizzato in ambiente Unix

Il perl, è un linguaggio complesso, ma molto
efficace, utilizzato per la creazione di cgi (common
gateway interface) a livello professionale

Poco diffuso fra gli utenti medi, a causa della
difficoltà di apprendimento e di gestione della sua
sintassi;
Linguaggi a oggetti: C++, Java

Oggetto: insieme di dati e metodi per la loro
manipolazione

Facilitano la manutenzione ed il riuso del codice, sono
considerati i linguaggi del futuro
C e C++
C è uno dei piu' diffusi linguaggi di programmazione che
combina istruzioni di alto livello con controllo di
macchina a basso livello. Sviluppato da Dennis
M.Ritchie nel 1972 come modifica del linguaggio B di
Ken Thompson.


C++ è un estensione del linguaggio C che permette la
programmazione ad oggetti. Questo linguaggio e' stato
realizzato da Bjarne Stroustrup.
Linguaggi a oggetti: C++, Java
Java



linguaggio ad oggetti, sviluppato nel 1991 dalla Sun
Microsystem
Quello che distingue Java dagli altri linguaggi di
programmazione e' la sua portabilita' nelle diverse
piattaforme (computer) e nei diversi sistemi
operativi
Viene principalmente utilizzato per costruire le
Applet, piccoli programmi caricati nel browser come
parti integrate di un sito Web
Linguaggi orientati ai DB:
SQL, MySQL…
SQL

Structured Query Language, linguaggio di
interrogazione strutturato. Questo linguaggio, uno
standard per la definizione di database relazionali,
e' stato sviluppato nel 1973 dalla IBM ed
inizialmene si chiamava SEQUEL (Structured
English QUEry Language).

L'SQL, oltre a creare tabelle bidimensionali
permette la formulazione di query (interrogazioni)
sulle relazioni (tabelle).
Linguaggi orientati ai DB:
SQL, MySQL…
MySQL

MySql è un DBMS (Data Base Management System)
utilizza l’architettura client/server (un server contiene
dati e gestisce gli accessi, e i client si connettono e
accedono ai dati) e il linguaggio standard SQL MySql.

MySql è diverso da Microsoft Access infatti è un
server che contiene numerosi database; per inoltrare le
proprie richieste, gli utenti si collegano al server, il quale
interroga i database e risponde alle richieste.
Linguaggi orientati al WEB: HTML,
XML, JAVA, Javascript, PHP, ASP
HTML
l’HTML
(HyperText Markup Language) è il linguaggio con
cui vengono scritte gran parte delle pagine Web
HTML è un linguaggio di formattazione che serve a
descrivere le caratteristiche di tutti gli elementi presenti
all’interno di una pagina

L'organizzazione
che si occupa di standardizzare la
sintassi del linguaggio HTML (il W3C: Word Wide Web
Consortium)
In
HTML tutte le informazioni sono racchiuse da Tags o
marcatori: <NOME TAG> informazioni </NOME TAG>
Linguaggi orientati al WEB: HTML,
XML, JAVA, Javascript, PHP, ASP
HTML (struttura)

Un documento HTML inizia sempre con il tag <HTML> e
termina sempre con il tag </HTML>
La struttura base di una pagina HTML è la seguente:
<HTML>
<HEAD>informazioni</HEAD>
<BODY>
documento
</BODY>
</HTML>

Linguaggi orientati al WEB: HTML,
XML, JAVA, Javascript, PHP, ASP
XML



Xml è un metalinguaggio che consente di
caratterizzare le informazioni contenute in un
documento rendendone possibile la visualizzazione
via Web e l'elaborazione da parte di applicativi
una "estensibilità" della definizione dei dati e della
struttura del documento attraverso la possibilità di
creare nuovi tag
offre la possibilità di definire i tag dei documenti
nell'ambito dei Dtd o degli schemi e permette di
definire, attraverso Xsl i "fogli di stile"
Linguaggi orientati al WEB: HTML,
XML, JAVA, Javascript, PHP, ASP
Javascript

Nasce nel 1995 creato da Netscape per dotare il
proprio browser di un linguaggio di scripting che
permettesse ai web designer di interagire con gli Applet
Java e gli altri elementi delle pagine web.

Brendan Eich creò quindi LiveScript che venne
incorporato nella versione beta di Netscape Navigator
2.0

In omaggio a Java decise di chiamare il nuovo
linguaggio JavaScript.
Linguaggi orientati al WEB: HTML,
XML, JAVA, Javascript, PHP, ASP
PHP

PHP è un linguaggio di programmazione che convive
normalmente dentro l’HTML ed è un mezzo pratico per
realizzare velocemente pagine HTML dinamiche

il più versatile e completo linguaggio di programmazione
server-side attualmente disponibile

PHP viene eseguito dal server durante l’erogazione della
pagina

L’uscita di PHP è codice HTML per il browser, tutto ciò che
è compatibile con HTML sul client è compatibile con PHP
Linguaggi orientati al WEB: HTML,
XML, JAVA, Javascript, PHP, ASP
PHP
PHP è un linguaggio Lato
Server (Server Side) come
detto, le pagine richieste se
contengono codice PHP
vengono interpretate ed il
risultato viene restituito
sotto forma di semplice
codice HTML al Web
Client/Browser
Linguaggi orientati al WEB: HTML,
XML, JAVA, Javascript, PHP, ASP
ASP

ASP (Active Server Pages) si distingue sicuramente
per la rapidità e flessibilità

Le pagine asp sono completamente integrate con i file
html, anche ASP è un linguaggio Server Side.

Sono facili da creare e non necessitano di
compilazione.

Confinato ai server Microsoft, non funziona con molti
altri server che popolano il web
Licenze d'uso OpenSource:
storia, versioni, differenze

Le tipiche licenze d'uso utilizzate per il software libero
sono le seguenti:

General Public License
- Lo spirito di questa licenza è quello di concedere la
massima libertà nell'utilizzo, copia e distribuzione del
software, garantendo anche la disponibilità dei sorgenti
e la possibilità di modificarli.
Library General Public License
-Una libreria rilasciata con una licenza LGPL può
essere utilizzata anche da un prodotto software
commerciale, mentre una rilasciata con una licenza
GPL no.

Licenze d'uso OpenSource:
storia, versioni, differenze

BSD e BSD-style
- La licenza BSD è quella utilizzata per il software
BSD: Berkeley Software Distribution, ma spesso
viene utilizzata una licenza molto simile a questa
anche da altri autori.
- Lo spirito di questa licenza è lo stesso della GPL,
cioè quello di concedere la massima libertà
nell'utilizzo, copia e distribuzione del software,
garantendo anche la disponibilità dei sorgenti e la
possibilità di modificarli.