INFORMATICA DI BASE Capitolo 1_L’informatica oggi: una panoramica Cos’è l’informatica? L’informatica è l’insieme dei processi e delle tecnologie che rendono possibile la creazione, la raccolta, l’elaborazione, l’immagazzinamento e la trasmissione dell’informazione con metodologie e strumenti automatizzati e tecnologicamente avanzati. Le tecnologie informatiche hanno 3 funzioni principali: Elaborare dati per ottenere informazioni significative; la fase di elaborazione è però solo una parte del ciclo di elaborazione dell’informazione, il quale comprende 5 fasi: ingresso dei dati (input), elaborazione; uscita dei dati (output); memorizzazione; distribuzione e comunicazione; Memorizzare le informazioni elaborate per utilizzarle in combinazione con altre, come dati di un nuovo processo di elaborazione; Organizzare e gestire le informazioni in una nuova forma in modo da renderle più comprensibili, più accattivanti o più utili. › › Le tecnologie informatiche sono caratterizzate da due livelli che si integrano e si completano: L’hardware: è la struttura fisica del dispositivo, costituita da componenti elettronici che svolgono specifiche funzioni nel trattamento e nella trasmissione dell’informazione. Per hardware si intende il computer, i suoi componenti e tutti gli elementi che collegano tra loro i sistemi informativi; Il software: è il livello logico del dispositivo, cioè l’insieme sequenziale delle istruzioni precise e dettagliate che consentono all’hardware di svolgere i propri compiti. Il mondo del software si divide in due grandi categorie: I software di sistema: essi comprendono i linguaggi di programmazione, che servono per creare tutti gli altri programmi, e i sistemi operativi, che sono i programmi che fanno funzionare i vari componenti del computer, che vanno eseguiti prima di qualsiasi altro programma permettono all’elaboratore di interagire con l’utente, grazie all’interfaccia, che permettono di gestire le risorse hardware del computer e di installare ed eseguire i programmi applicativi che consentono all’elaboratore di svolgere le proprie funzioni; (Es: Windows, Ios, Linux etc..) I programmi applicativi: essi consentono di svolgere una molteplicità di operazioni. Obiettivo dell’hardware e del software è quello di elaborare e presentare dati, i quali sono la materia prima del trattamento dell’informazione. I software applicativi, possono essere di due tipologie: Con licenza commerciale quindi a pagamento, ma è limitato in quanto tutti gli usi non consentiti sono vietati. (Es. Microsoft Office). E i sistemi open source nessun costo per la licenza, più modificabili, e gestibili. I criteri di classificazione del software applicativo possono essere diversi, ad esempio a seconda del tipo di licenza concessa dall'autore verso il fruitore, oppure a seconda dell'uso a cui è destinato. Nel primo caso si tratta di software libero o software proprietario, con tutte le sfumature intermedie. Desktop. Anche definito software di produttività personale o di office automation. Rientrano in questa categoria: elaborazione di testi, fogli di calcolo, presentazioni, grafica tecnica, grafica artistica, fotoritocco, musica, agenda, PIM, ecc. Games. Giochi, nel senso più ampio del termine. Education. Applicazioni utili alle scuole di tutti i gradi, ad esempio per l'autoapprendimento Science. Applicazioni utili nei vari campi della scienza applicata, quali, ad esempio Intelligenza Artificiale, Astronomia, Biologia, Chimica, ecc. È corretto notare che oggi qualsiasi disciplina scientifica dispone di applicazioni dedicate. Software development. Sviluppo di applicazioni (ma anche di software di base), ad es. IDE. Business o Enterprise. Grandi categorie che comprendono le cosiddette applicazioni "aziendali", suddivise in subcategorie del tipo: Financial, CRM, ERP, OLAP,Project management, E-Commerce, ecc. Sotto la categoria ERP possiamo trovare le classiche: contabilità, bilancio, controllo di gestione, magazzino, fornitori, clienti, produzione, vendite, marketing, personale, ecc. ossia tutti gli ambiti di gestione di una struttura operativa. Rientrano in questa categoria le cosiddetteApplicazioni Web. Il foglio elettronico: È un programma che permette di effettuare calcoli, elaborare dati e tracciare efficaci rappresentazioni grafiche. Il principio su cui si basa il foglio di calcolo è semplice: fornire una tabella, detta anche foglio di lavoro, formata da celle in cui si possono inserire dati, numeri o formule. Le celle, come detto in precedenza, sono la base fondamentale del foglio di calcolo. Esse, per essere riconoscibili, sono costituite da una lettera e un numero. Le colonne sono indicate dalle lettere, le righe dai numeri. Un file system, in informatica, indica un meccanismo con il quale i file sono posizionati e organizzati o su un dispositivo di archiviazione o su una memoria di massa, come un disco rigido o un CD-ROM e, in casi eccezionali, anche sulla RAM. Il software di gestione del file system è responsabile dell'organizzazione di questi settori in file e di tenere traccia di quali settori appartengono a quali file e quali settori invece non sono utilizzati. L'utente ha normalmente la totale libertà di creare nuovi file, cancellare file esistenti (liberando così i blocchi che questi occupavano), e modificare file esistenti (cambiando così anche la loro dimensione e quindi il numero di blocchi occupati). In informatica il modello relazionale dei dati è un modello logico di rappresentazione o strutturazione dei dati di un database implementato su sistemi di gestione di basi di dati (DBMS), detti perciò sistemi di gestione di basi di dati relazionali (RDBMS). Si basa sulla teoria degli insiemi e sulla logica del primo ordine ed è strutturato intorno al concetto matematico di relazione (detta anche tabella). Per il suo trattamento ci si avvale di strumenti quali il calcolo relazionale e l'algebra relazionale. Le interrogazioni della base dei dati in SQL: ricostruiscono le informazioni, selezionando dati coerenti, con i criteri di ricerca, stabiliti dall’utente. Cos’è il computer? Il computer è un elaboratore elettronico digitale che funge da centro nevralgico dei sistemi informativi moderni. Il computer può essere ELABORATORE: macchina in grado di eseguire elaborazioni su dati ELETTRONICO: basato su circuiti elettronici DIGITALE: con rappresentazione binaria di dati PROGRAMMABILE: in grado di eseguire elaborazioni differenti cambiando la sequenza di istruzioni Capitolo 2_L’architettura del computer e la CPU L’architettura è l’insieme delle componenti e delle scelte di integrazione e progettazione di un sistema Il componente è ogni sottosistema in grado di svolgere una funzione autonoma, integrato da interfaccia e protocollo. La prima è un modello fisico (hardware) o logico (software); il secondo è una logica si accesso ad una interfaccia fisica o logica. Quali sono i tipi di elaboratori? I supercomputer, che sono gli elaboratori più potenti, architetture dedicate, potenti ma costosi. Ora sono in declino, sostituiti da cluster di pc di fascia alta. mainframe (o server), in genere utilizzati nelle grandi aziende per svolgere funzioni centralizzate. minicomputer (o server), meno potenti dei mainframe, anch’essi utilizzati dalle grandi aziende e dai centri di calcolo delle piccole organizzazioni pubbliche e private o da divisioni di grandi organizzazioni; personal computer (PC), che ha un impiego individuale. terminali network computer, terminali mobili Che cos’è l’elaborazione digitale? L’elaborazione digitale consiste nel rappresentare numeri, musica, documenti e qualsiasi tipo di informazioni in cifre binarie, in modo che possano essere elaborati e utilizzati dalle moderne tecnologie informatiche. I segnali possono essere di due tipi: Analogici: trasmettono un ampio stretto di informazioni, sono paragonabili a un’onda e consentono di percepire anche i punti intermedi; Digitali: possono assumere solo due stati, acceso e spento e quindi hanno meno interferenze e una maggiore risoluzione rispetto quelli analogici. I computer e gli altri strumenti digitali rappresentano tutti i numeri con il sistema binario, costituito da due sole cifre, 0 e 1, che possono essere rappresentate, memorizzate e visualizzate in diversi modi, tuttavia, perché abbiano un senso, è necessario stabilire un codice preciso. I computer quindi necessitano di due elementi: Un dispositivo che invii e riceva segnali: questa funzione è rivestita dai transistor, componenti di silicio che possono avere solo due stati, acceso e spento; Un codice che dia loro significato, cioè il linguaggio digitale: i computer eseguono un numero di procedure molto limitato, che comprende le operazioni di adizione, sottrazione, classificazione e raffronto tra valori numerici diversi; per eseguire tali procedure l’elaboratore converte le informazioni che gli vengono fornite dal nostro linguaggio al linguaggio digitale, mediante il quale memorizza, comunica ed elabora i dati, che vengono poi riconvertiti nel linguaggio umano. L’unità minima del linguaggio digitale è il bit, che può assumere solo due stati: acceso (corrispondente a 1) e spento (corrispondente a 0); l’unità fondamentale del linguaggio dei computer è però il byte, costituito da 8 bit, e capace di rappresentare fino a 256 possibili combinazioni. I multipli del byte sono: il kilobyte (pari a 1024 byte), il megabyte (pari a 1048576 byte), il gigabyte (circa 1 miliardo di byte) e il terabyte (circa 1000 miliardi di byte). Il numero binario assegnato ad un determinato carattere varia in base al codice utilizzato; i sistemi di codifica più utilizzati in informatica sono: - L’ASCII, il codice più diffuso tra i personal computer; - L’EBCDIC, il codice più usato nei mainframe e nei server più potenti; - L’UNICODE, dotato di oltre 96000 caratteri e in grado di rappresentare le principali lingue scritte del mondo; risolve il problema per cui l’ASCII e l’EBCDIC funzionano perfettamente per l’inglese ma non per le altre lingue. Cos’è la CPU? L’unità centrale di elaborazione, cioè la CPU (Central Processing Unit), è il centro nevralgico del computer ed è costituita da un microprocessore, ricavato da sottili lamine di silicio (chip), contenenti milioni di piccolissimi interruttori acceso/spento, i transistor, collegati tra loro da tracce estremamente sottili di alluminio. Il compito della CPU è quello di eseguire le istruzioni di un programma presente in memoria centrale o primaria (RAM) dopo averlo prelevato dalla memoria secondaria o di massa, dalla ROM, o da altri dispositivi. Durante l'esecuzione del programma la CPU legge o scrive dati in memoria centrale. Il risultato dell'esecuzione dipende dal dato su cui si opera e dallo stato interno in cui la CPU stessa si trova, e può mantenere la traccia delle istruzioni eseguite e dei dati letti. CISC è l'acronimo di Complex Instruction Set Computer: tipicamente un processore di questo tipo implementa un numero relativamente scarso (una decina) di registri di uso generale, ed ha una unità di controllo microprogrammata. L'acronimo RISC, dall'inglese Reduced Instruction Set Computing, indica una filosofia di progettazione di architetture per microprocessori che predilige lo sviluppo di un'architettura semplice e lineare. Questa semplicità di progettazione permette di realizzare microprocessori in grado di eseguire il set di istruzioni in tempi minori rispetto a una classica architettura CISC. Tipicamente la CPU è l'Interprete del linguaggio macchina. Come tutti gli interpreti, si basa sul seguente ciclo: Acquisizione dell'istruzione (Instruction Fetch): il processore preleva l'istruzione dalla memoria, presente nell'indirizzo (tipicamente logico) specificato da un registro "specifico" ("specifico" opposto di "generico"), il PC Decodifica (Operand Assembly): una volta che la word è stata prelevata, viene determinata quale operazione debba essere eseguita e come ottenere gli operandi, in base ad una funzione il cui dominio è costituito dai codici operativi (tipicamente i bit alti delle word) ed il codominio consiste nei brani di microprogramma da eseguire Esecuzione (Execute): viene eseguita la computazione desiderata. Nell'ultimo passo dell'esecuzione viene incrementato ilPC: tipicamente di uno se l'istruzione non era un salto condizionale, altrimenti l'incremento dipende dall'istruzione e dall'esito di questa Come si migliorano le prestazioni di un sistema? Per migliorare le prestazioni di un sistema esistono essenzialmente 3 modi: - espandere la sua capacità dati; - aumentare la sua velocità, misurata in MHz (o milioni di cicli al secondo); migliorare la sua efficienza. › › La memoria (RAM e ROM): Per svolgere le sue funzioni un elaboratore deve avere una memoria dove archiviare i programmi e i dati necessari. Si distinguono: La ROM (Read Only Memory, memoria di sola lettura): essa è statica e inalterabile, ed è chiamata anche memoria non volatile. Il suo contenuto viene predisposto dalla casa produttrice al momento della fabbricazione e non può essere modificato dall’utente, pertanto lo spegnimento dell’elaboratore non altera i dati in essa contenuti, che vengono richiamati automaticamente quando il computer viene riacceso. Questi dati sono costituiti di norma dai programmi e dalle istruzioni necessarie all’avvio (boot) della macchina (detti firmware); La RAM (Random Access Memory, memoria ad accesso casuale): essa è detta anche memoria centrale o memoria dell’utente e serve a memorizzare un vasto numero di programmi e dati di ogni tipo. La RAM è una memoria volatile, infatti quando il computer viene spento, i dati e i programmi in essa presenti vengono cancellati; il termine random (casuale) indica la modalità di reperimento e accesso ai dati in memoria. Esistono due principali tipologie di RAM: La DRAM (Dynamic RAM): essa è la tipologia di memoria centrale più diffusa; è una memoria dinamica perché le celle di memoria mantengono i dati solo per breve tempo e devono essere aggiornate centinaia di volte al secondo; La SRAM (Static RAM): essa è molto più grande, veloce e costosa della DRAM; è una memoria statica e non ha quindi bisogno di essere costantemente aggiornata. Data la sua velocità viene soprattutto utilizzata in una speciale area della memoria detta cache. In quasi tutti i sistemi per aggiungere memoria si installano moduli di memoria, ossia circuiti stampati che contengono chip di memoria e che a loro volta sono inseriti in appositi slot della scheda madre. Esistono due tipi di moduli: Il SIMM (Single In-line Memory Module); Il DIMM (Dual In-line Memory Module), che hanno ormai completamente soppiantato i SIMM perché possono essere usati singolarmente invece che in coppia. Oltre alla RAM esistono ulteriori tipi di memoria: La memoria virtuale: i programmi e i file molto estesi possono eccedere la memoria disponibile, perciò, per evitare tale inconveniente, i moderni sistemi operativi memorizzano parte dei dati e dei programmi al momento non utilizzati al di fuori della RAM. Soltanto le parti del programma o del file al momento necessarie vengono memorizzate nella memoria del computer, il resto è invece immagazzinato su un drive del disco fisso; La cache: è una speciale area di memoria ad alta velocità, localizzata tra la CPU e la memoria centrale, che utilizza speciale chip di memoria (solitamente si tratta di chip SRAM). Si distinguono due livelli di memoria cache: › La cache di livello 1: fa fisicamente parte del chip del microprocessore e di norma nei sistemi desktop è in grado di contenere fino a 256 kilobyte; › La cache di livello 2: è costituita da chip di memoria installati in speciali alloggiamenti della scheda madre e può contenere fino a 2 MB o più. Cos’è il bus? Il bus è l’insieme dei collegamenti (in rame) presenti all’interno dell’elaboratore (sulla scheda madre) che consentono la trasmissione delle informazioni tra i vari componenti del sistema; è una linea di comunicazione attraverso la quale passano tutte le informazioni, siano esse interne o esterne. Si distingue: Il bus di sistema: è semplicemente un gruppo di collegamenti che uniscono la CPU agli altri dispositivi del computer. Il bus di sistema comprende le linee di indirizzi, che trasmettono l’indirizzo dei dati in memoria, e linee di dati, che invece trasmettono i bit dei dati stessi; I bus locali: permettono di collegare le periferiche assieme alla CPU e alla memoria non al bus di sistema ma a una linea di trasmissione dati più ampia. In questo modo i dati possono essere trasmessi molto più velocemente dalla memoria al microprocessore e da questo allo schermo o ad altri dispositivi. Cos’è il plug and play? Il Plug and Play è una tecnologia di alcuni sistemi operativi che permette di riconoscere e di configurare automaticamente i nuovi dispositivi hardware caricando o scaricando i driver delle periferiche che l’utente vuole collegare o scollegare. La tecnologia Plug and Play richiede tre componenti: un sistema operativo; un BIOS, cioè una porzione della ROM che ha il compito di controllare lo stato di tutto l’hardware presente; dei dispositivi da installare. Quando un PC è un sistema multimediale? Un PC si definisce un sistema multimediale se possiede almeno una scheda audio, un’unità per leggere ed eventualmente scrivere CD-ROM e DVD, ed un acceleratore grafico. Le porte: Sul retro dell’elaboratore sono localizzate le porte, degli alloggiamenti in cui vengono inseriti i cavi delle periferiche. Esse possono essere: Seriali: servono a collegare i modem e alcuni vecchi mouse e sono in grado di inviare soltanto un bit per volta. Le più recenti tecnologie di trasmissione seriale sono: l’USB, che permette di collegare in una stessa porta fino a 127 dispositivi in serie; le porte Firewire, più veloci dell’USB, che operano fino a 800 Mbps. Parallele: esse invece vengono usate per il collegamento delle stampanti e di alcuni dispositivi esterni di memorizzazione; trasmettono 8 bit per volta su altrettante linee parallele e quindi rispetto alle porte seriali consentono comunicazioni più veloci tra l’elaboratore e dispositivi di input e output. Capitolo 3_Le periferiche di input/output Quali sono i dispositivi di input e output? I dispositivi di input sono la tastiera, gli strumenti di puntamento, lo scanner, gli strumenti di riconoscimento vocale; quelli di output sono lo schermo, la stampante, i sintetizzatori o i diffusori audio. Poi ci sono i modem e i fax che sono in grado di svolgere sia funzioni di input sia di output. Tutti i dispositivi devono essere connessi fisicamente al bus di sistema, per poter trasmettere dati al processore, rendendoli utilizzabili. Per la tastiera ogni tasto genera un codice, che viene trasmesso al sistema. I pixel e la risoluzione: Per creare un’immagine lo schermo viene suddiviso in una griglia di quadratini detti pixel. Tramite un sistema detto bit mapping, ad ogni pixel viene assegnato un indirizzo in modo che il computer sia in grado di individuarlo per modificarne il colore o l’intensità. La risoluzione indica la qualità di un’immagine visualizzata o stampata e si misura in numero di punti per pollice (dpi, dots per inc). La risoluzione di un dispositivo è determinata dal numero di pixel che utilizza per formare le immagini e i caratteri; quella di uno schermo si misura in base al numero di pixel che formano la base e l’altezza. Capitolo 4_Le memorie secondarie Le memorie secondarie: Le memorie secondarie (di massa, ausiliari o esterne) consentono di immagazzinare permanentemente i dati e i programmi al momento non utilizzati e di ricaricarli nella memoria centrale in qualsiasi istante. Le memorie secondarie comprendono il dispositivo e il supporto di memorizzazione. Si distinguono: La memoria magnetica: mentre il disco gira o il nastro scorre, la testina di lettura/scrittura emette impulsi elettrici che invertono la polarità delle piccole particelle magnetiche presenti sulla superficie del supporto; gli allineamenti delle particelle rappresentano i dati in forma binaria. Quando un file viene aperto per la lettura, avviene il processo inverso. Le particelle magnetizzate inducono nella testina di lettura/scrittura una corrente elettrica, che viene trasmessa al computer come una successione di 0 e 1. La memoria ottica: la registrazione ottica avviene per mezzo di un raggio laser che crea sottili scanalature sulla superficie di un disco. Si crea così un’alternanza di zone chiare (intersolchi) e zone scure (scanalature) che vengono lette come una successione di 0 e 1. Infatti mentre il disco gira nell’unità, un sottile raggio laser colpisce la sua superficie, che riflette una quantità di luce maggiore o minore a seconda che la zona colpita dal raggio sia una scanalatura o uni intersolco. A questo punto un rivelatore fotoelettrico misura i diversi gradi di rifrazione della luce, poi convertiti dai circuiti in forma binaria. La memoria magneto-ottica: per registrare i dati, il laser dell’unità riscalda la superficie del disco ottico fino al punto in cui la polarizzazione delle particelle può essere modificata dalla testina magnetica di lettura/scrittura. Una volta che la superficie si è raffreddata, è pressoché impossibile che l’influsso di altre magnetiche possa provocare la cancellazione dei dati; La memoria allo stato solido: si parla della memoria flash, spesso usata nel PDA. Quali sono i supporti di memorizzazione: I supporti di memorizzazione più comuni sono: Le USB key: sono dei dispositivi di memoria a stato solido, dotati di una interfaccia USB grazie alla quale possono essere connessi con qualsiasi computer senza alcun bisogno di drive o slot particolari, senza necessità di alimentazione esterna e senza richiedere l’installazione di alcun software di controllo; I dischi ottici: essi registrano e leggono i dati per mezzo del laser [CD-ROM (fino a 800 megabyte), DVD-ROM (fino a 4,7 gigabyte)]; I dischi fissi: detti anche dischi rigidi o hard disk, sono le memorie di massa più usate attualmente. Cos’è la compressione? La compressione è una tecnica che permette di ridurre le dimensioni del file. Esistono due metodi di compressione: La compressione del disco, che comprime il disco intero: i nuovi file verranno memorizzati sul disco direttamente in formato compresso e saranno decompressi automaticamente al momento dell’apertura; La compressione dei file, che serve a comprimere soltanto file specifici: con un apposito programma di utilità si può creare un archivio in cui i file vengono memorizzati automaticamente in formato compresso. Il formato di archivi più comune è ZIP. [Per risolvere invece il problema della grandissima quantità di dati che un elaboratore deve immagazzinare, si ricorre ad un programma di gestione gerarchica della memoria (HSM), che provvede a trasferire automaticamente i file che sono rimasti inutilizzati per 30 giorni dai dischi rigidi a un sistema di memorizzazione ottica.] Cos’è il backup dei dati? Il backup dei dati consiste nella copia di tutti i dati in memoria o almeno dei file di maggior valore. Invece l’archiviazione offsite consiste nel riporre la copia di sicurezza in un luogo distante dall’originale per evitare che entrambe siano danneggiate dallo stesso incidente. I supporti di backup possono essere: Ad accesso casuale (dischetti, USB keys, dischi rigidi rimovibili, dischi magneto-ottici, CD e DVD); Ad accesso sequenziale (i nastri): essi sono più convenienti economicamente. Cos’è il Cloud Computing? Il Cloud Computing è una metodologia di elaborazione, scambio e archiviazione dei dati attraverso Internet su supporti di memorizzazione avanzati. Grazie a questa tecnologia non ci si deve più preoccupare di ampliare o rinnovare il proprio PC o server aziendale, né di adeguare i sistemi operativi o le versioni del software applicativo: i dati infatti possono essere memorizzati nel cloud, i programmi non sono installati direttamente sul PC ma vengono utilizzati tramite i cosiddetti sistemi di SAAS. Inoltre è possibile accedere ai propri dati da qualsiasi parte del mondo, come se si fosse seduti alla propria scrivania. Capitolo 5_Introduzione al software Cos’è il BIOS? Il BIOS è un piccolo programma registrato permanentemente su un chip di memoria ROM; è una piccola porzione di software che può essere considerata una via di mezzo tra software e hardware e viene spesso chiamata firmware. Obiettivo del BIOS è collegare il software e i componenti hardware dell’elaborazione. La distribuzione dei software: Le applicazioni distribuite in rete si dividono in due categorie: Shareware: il programma può essere scaricato dalla rete ma il suo autore chiede all’utente il pagamento di una somma o il versamento della quota di registrazione, offrendo in cambio la documentazione relativa al programma e la possibilità di aggiornamento dello stesso; Freeware: il programma è completamente gratuito. Un principio del tutto diverso regola invece il mondo del software di pubblico dominio (Open Source): in questo caso gli autori o i produttori di un programma non si limitano a distribuire gratuitamente il proprio software, ma rinunciano anche ai loro diritti sul codice sorgente, anch’esso distribuito. Così altri programmatori possono migliorarlo e adattarlo, a patto di rendere a loro volta di pubblico dominio le nuove versioni. I sistemi multitasking, multithreading, multiutenti, multiprocessori: I sistemi multitasking consentono di utilizzare diversi programmi per svolgere più compiti contemporaneamente. Poiché i sistemi in genere hanno un solo microprocessore, per eseguire più programmi nello stesso momento cedono rapidamente il controllo della CPU a uno o all’altro, a seconda delle esigenze; in realtà, quindi, è operativo soltanto un programma alla volta. I sistemi multithreading consentono ai programmi applicativi di svolgere più operazioni contemporaneamente. I sistemi multiutenti permettono il collegamento simultaneo di più utenti ad una stessa macchina. I sistemi multiprocessori sono in grado di gestire tantissimi processori per migliorare la capacità di elaborazione. Capitolo 6_L’Open Source Cos’è un Free Software? Un software si può definire libero se è rilasciato sotto una licenza che conferisce all’utente quattro libertà: - Libertà 0: libertà di eseguire il programma per qualsiasi scopo; - Libertà 1: libertà di studiare il programma e modificarlo; - Libertà 2: libertà di ridistribuire copie del programma in modo da aiutare il prossimo; - Libertà 3: libertà di migliorare il programma e di distribuirne i miglioramenti, in modo che tutta la comunità ne tragga beneficio. Capitolo 7_Gli applicativi e i documenti Cos’è la multimedialità? La multimedialità si riferisce a due fenomeni correlati ma distinti: la possibilità di utilizzare più media per veicolare un determinato contenuto; la possibilità di integrare più linguaggi espressivi contemporaneamente durante la produzione di un messaggio comunicativo. Cos’è un ipertesto? Un ipertesto si basa su una struttura dell’informazione di tipo reticolare: è costituito da un insieme di blocchi o unità testuali, i nodi della rete (detti lessie), e da un insieme di collegamenti (detti link) che permettono di passare da un blocco a uno o più blocchi. Se le informazioni che sono collegate nella rete non sono solo documenti testuali, ma in generale unità informative veicolate da linguaggi differenti, l’ipertesto diventa multimediale e viene definito ipermedia. Cos’è un foglio elettronico? Un foglio elettronico è la griglia di righe e colonne che appare sullo schermo quando si carica un programma; è un potente strumento di analisi ma presenta numerose limitazioni per quanto riguarda il trattamento di grandi quantità di informazioni. Per questo motivo sono stati sviluppati i programmi per la gestione di basi di dati (database): esse sono semplicemente delle tabelle di dati organizzate e memorizzate in forma altamente strutturata. Capitolo 8_Internet e il World Wide Web Cos’è Internet? Internet è la più grande rete al mondo che collega computer. Ogni computer connesso a Internet è in grado di comunicare con qualsiasi altro computer collegato. Internet non è gestita da alcuna istituzione politica culturale o economica ma soltanto da un gruppo di volontari conosciuto come ISOC. Cos’è il World Wide Web? Il World Wide Web è il servizio informativo presente su internet di gran lunga più conosciuto. Il web è costituito da documenti localizzati su computer diversi, collegati fra loro e consultabili per mezzo di programmi detti browser. L’insieme dei documenti o pagine Web gestiti da un’organizzazione o da un singolo autore, memorizzati su uno o più computer, viene chiamato sito web. Una pagina Web è un documento elettronico che può contenere una serie di testi, immagini, contenuti audiovideo, menu, pulsanti. Il web è nato nel 1989 da un’idea di Tim Berners-Lee. Egli elaborò tre standard tecnici che rendono possibile l’esistenza del Web: L’HTTP (Hypertext Transfer Protocol): è il protocollo usato dai computer per comunicare sul Web; grazie ad esso i programmi con cui l’utente accede alle pagine Web possono interagire con i programmi che ne gestiscono l’archiviazione e lo smistamento; L’HTML (Hypertext Markup Language): indica lo speciale formato che deve avere un documento per essere inserito sul Web; L’URL (Uniform Resource Locator): soddisfa l’esigenza di assegnare ad ogni documento un indirizzo univoco in modo da rintracciarlo facilmente sul Web. Nel settore della messaggistica oltre alla classica email, abbiamo il Newsgroup che consiste in un sistema di messaggistica di gruppo. FTP (File transfer protocol) trasferimento file non sicuro Capitolo 9_Le comunicazioni: la rete elettronica Cos’è la banda larga? In generale il termine banda indica la quantità che può essere inviata tramite un collegamento in un’unità di tempo (tipicamente quanti bit possono essere trasmessi in un secondo). L’espressione Banda Larga (broadband) indica un sistema tecnologico/informatico che consente di fornire agli utenti collegamenti in Internet a velocità notevolmente superiori rispetto a quella di una normale rete telefonica (narrowband). I collegamenti a Banda Larga permettono una migliore gestione dei servizi Internet, una più elevata performance nello scambio di dati e file, un più ampio spettro di utilizzo dei canali di comunicazione. Cos’è il Digital Divide? Il Digital Divide è una terminologia utilizzata per indicare la disomogenea fruizione dei servizi telematici all’interno di una popolazione: ci si riferisce perciò alle disuguaglianze esistenti tra i cittadini di una nazione nell’accesso e nell’utilizzo delle tecnologie e dei servizi della società dell’informazione. La comunicazione tra singoli individui: La comunicazione tra singoli individui generalmente avviene attraverso la posta elettronica. Quando viene spedita un’email si usa un programma che, tramite il protocollo SMTP (Simple Mail Transfer Protocol), invia un messaggio ad un server in ascolto, tipicamente un ISP (Internet Service Provider), il cui funzionamento si basa su uno scambio di messaggi il cui numero e significato dipende dai possibili diversi esiti della comunicazione. Alternativamente il protocollo utilizzato può essere l’IMAP, che presenta una maggiore flessibilità rispetto all’SMTP poiché si basa sul concetto dell’elaborazione di tutte le email di un determinato cliente su un server remoto e centralizzato: in tal modo l’utente può avere accesso all’intero insieme dei propri messaggi di posta connettendosi al server, via Web, da un qualsiasi punto della Rete e indipendentemente dal computer sul quale sta operando. L’utilizzo del protocollo IMAP nell’utilizzo del servizio di posta elettronica porta al concetto di “ubiquitous e-mail”, ovvero la propria e-mail accessibile sempre e dovunque. Cos’è il FTP? Il FTP (File Transfer Protocol) è il sistema utilizzato per trasferire file in Internet: quando si vuole scaricare un file dal Web bisogna semplicemente attivare il link che dà avvio al processo di trasferimento e il sistema FTP provvederà a scaricare il file sul computer. Le reti locali: Molti computer sono connessi direttamente tra loro, spesso all’interno di un’azienda o di un’università. Queste reti locali distribuite su un’area relativamente circoscritta sono dette LAN (Local Area Network). Gli elementi fondamentali che compongono una rete locale sono: Un nodo: è un qualsiasi dispositivo hardware del sistema in grado di comunicare con gli altri dispositivi che fanno parte della rete. In ogni caso il nodo deve essere dotato di una scheda di rete; I pannelli di connessione: chiamati anche concentratori (o hub), collegano i nodi e hanno la funzione di semplificare la connessione fisica tra i vari nodi e di instradare i segnali che vengono inviati da un nodo all’altro; Una dorsale: è un cavo ad alta capacità al quale possono essere connessi più nodi o concentratori che ha la funzione di trasportare grandi quantità di dati. In una LAN un server è l’elaboratore che può essere condiviso dagli altri computer collegati in rete; è il computer più potente del sistema poiché tutti gli altri elaboratori, detti client, dipendono da lui sia per i programmi e i dati, sia per le connessioni agli altri computer e dispositivi. I tipi di server più comuni includono: Il server gestione di dati (file server), sul quale si trovano i file e alcuni programmi applicativi; Il server di stampa, che memorizza sul disco fisso i documenti da stampare finché la stampante non è pronta per riceverli; Il server di comunicazione (un router, un fax o un modem) attraverso il quale i dati vengono trasmessi tra un nodo e l’altro o all’esterno della rete. Gli elaboratori e gli altri dispositivi hardware che formano una LAN possono essere collegati tra loro in vari modi che determinano l’architettura della rete, cioè la modalità di trasmissione dei dati all’interno della rete. Esistono tre architetture possibili di rete: L’ architettura ad anello: i nodi della rete sono organizzati secondo una configurazione a cerchio; i computer non sono collegati direttamente tra loro ma le comunicazioni passano attraverso un pannello di connessione, all’interno del quale risiede l’anello; L’architettura a stella: i nodi sono collegati ad un computer centrale detto host; quando un computer della rete invia un segnale, l’host lo instrada verso il nodo a cui è indirizzato. Le comunicazioni tra i nodi della rete quindi non sono dirette ma passano tutte attraverso l’elaboratore centrale. Il centro dei collegamenti di una rete LAN con architettura a stella può essere costituito da un hub o da uno switch: ambedue sono dispositivi nei quali convergono i dati provenienti dai computer, collegati in rete, e dai quali i dati vengono inviati verso uno o più destinatari. L’hub è un dispositivo che inoltra i dati in arrivo da una qualsiasi delle sue porte su tutte le altre, quindi rinvia il segnale in arrivo a tutti i computer con i quali è collegato. Lo switch è invece un commutatore, un dispositivo di rete che inoltra selettivamente i pacchetti ricevuti verso una porta di uscita; L’architettura lineare, o a bus: tutti i nodi sono collegati a una linea di trasmissione principale, secondo un’organizzazione che ricorda quella dei componenti di un elaboratore. I nodi sono collegati tramite dei fili alla dorsale della rete, che è costituita da un cavo di lunghezza standard con dei terminatori all’estremità che impediscono la riflessione del segnale, assorbendo e annullando il segnale, rendendo disponibile la linea dorsale per l’invio di altri dati. Questa tipologia è detta passiva, ossia i computer ascoltano i dati trasmessi sulla Rete, ma non intervengono nello spostamento di dati da un computer a quello successivo. Cosa sono le reti paritetiche? Una rete paritetica (peer-to-peer) è una rete il cui controllo non è affidato al centro di calcolo aziendale di norma competente ma è demandato agli utenti: tutti i computer operano allo sesso livello, per cui i dati non devono passare attraverso un elaboratore centrale. Cosa sono le LAN senza fili? Le LAN senza fili sono delle reti nelle quali i computer comunicano tramite segnali radio trasmessi da e verso una stazione centrale collegata alla rete; consentono di spostare un computer portatile all’interno di un edificio, ed elimina il problema di installare i cavi di collegamento nei vecchi edifici. Il sistema delle reti locali: Per creare una rete sono necessari dei cavi per la trasmissione dei dati e dei dispositivi per il collegamento dei vari nodi: per collegare un sistema a una rete locale si inserisce in uno slot dell’elaboratore una scheda di interfaccia di rete, chiamata anche adattatore LAN. La scheda di interfaccia di rete instaura la connessione fisica tra l’elaboratore e la rete, converte i dati paralleli trasmessi lungo il bus di sistema in dati seriali per la rete, aumenta o amplifica la potenza del segnale per renderne possibile la trasmissione attraverso i cavi. I segnali inviati attraverso una rete passano lungo una serie di fili e cavi che costituiscono il sistema di comunicazione della rete stessa. Si possono utilizzare: I cavi a doppino intrecciato: sono economici, ma le trasmissioni sono lente e tendono ad assorbire interferenze con conseguenti alte percentuali di errore; I cavi coassiali: sono costituiti da un filo centrale avvolto in uno strato di materiale isolante; sono più affidabili di quelli a doppino intrecciato e dispongono di un’ampia banda che consente una trasmissione dei dati molto più veloce; I cavi in fibra ottica: sono costituiti da fibre in plastica o vetro che trasmettono i segnali digitali emessi da un computer sotto forma di impulsi luminosi; sono difficili da installare ma sono veloci e affidabili e hanno una banda molto ampia che consente la trasmissione simultanea di un elevato numero di segnali. I cavi di una rete possono trasportare soltanto segnali provenienti da un unico nodo per volta, in caso contrario si creerebbero interferenze; una LAN necessita quindi di uno schema MAC (Media Access Control) che impedisca la sovrapposizione dei segnali. Ethernet: (è una rete fisica) il primo sistema di accesso alle reti è stato Ethernet, che impiega una modalità in base alla quale tutti i nodi esaminano lo stato della rete e se questa è libera provano a spedire i loro dati. Se due nodi trasmettono contemporaneamente, viene rilevata la collisione e, prima che venga ritentata la trasmissione dei dati, tutti i nodi rimangono in stato di attesa per un breve intervallo di tempo casuale. Essendo i periodi di attesa casuali, il nodo che effettuerà la trasmissione per primo acquisirà il controllo della rete. La principale alternativa ad Ethernet è il metodo Token ring (anello con gettone): i nodi non si contendono l’uso della rete ma devono ottenere il permesso di trasmissione, assegnato sotto forma di un segnale elettronico (il gettone) che circola nella rete; le reti Token ring impiegano una topologia ad anello, mentre i cavi di trasmissione sono a doppino intrecciato e possono essere schermati o non schermati. Il metodo Token ring offre una serie di vantaggi: il nodo che invia i dati ottiene sempre la conferma che sono stati ricevuti e quando una trasmissione viene portata a termine il nodo successivo ha sempre l’accesso garantito. Un tipo di connessione ormai in disuso è il Token bus: viene definito un anello logico a cui tutti i computer sono collegati; in tale anello logico circola un gettone (token), cioè un pacchetto di dati che contiene il numero del computer di destinazione. Le reti geografiche: Una rete allargata si definisce metropolitana (MAN), se è circoscritta all’area di una città, geografica (WAN), se è distribuita su aree molto vaste. Cosa sono le reti pubbliche? Le reti pubbliche sono quelle reti aperte a chiunque paghi la tariffa prevista per la connessione. Cos’è un’intranet? L’ intranet è una rete limitata alle dimensioni dell’azienda e accessibile soltanto ai dipendenti ed altri utenti autorizzati. Una intranet non serve solo per far circolare i documenti all’interno della compagnia, ma anche per permettere agli utenti di condividere programmi, basi di dati e dispositivi hardware. Cos’è un’extranet? L’ extranet è una rete di computer assimilabile a una rete estese costituita da più LAN. Una extranet è utile per la comunicazione tra aziende che condividono processi di business ma che non vogliono necessariamente rendere disponibili ai partner tutte le risorse, in termini di sistemi informativi e dati. Cos’è il firewall? Il firewall è un sistema che impedisce agli utenti di Internet non autorizzati di accedere ai file e ai programmi di una LAN. Quando un computer collegato a Internet è collegato anche a una intranet, viene dotato di un sistema firewall che rende la rete locale inaccessibile dall’esterno. I fruitori della LAN hanno libero accesso alle risorse di internet ma non possono fornire né servizi di Internet né di intranet agli utenti esterni al firewall. Cos’è il router? Il router è un apparato, o in alcuni casi un software attivo in un PC, che costituisce un nodo della Rete al quale accedono i dati in transito, e come nodo di transito, determina il successivo nodo della Rete a cui inoltrare il pacchetto di dati ricevuto. Cos’è il gateway? Il gateway è un sistema che utilizza specifici software e hardware per veicolare i pacchetti di dati all’esterno di una LAN o da Internet verso la stessa. I protocolli: La comunicazione in Internet si basa sue due insiemi di regole fondamentali: L’Internet Protocol (IP): il primo passo per trasmettere un messaggio in rete consiste nell’assegnare ai dati un indirizzo che possa essere riconosciuto da tutti i computer e che identifichi in modo univoco la destinazione. Quando un messaggio deve essere trasmesso da un utente all’altro, viene inserito in una busta IP e indirizzato al ricevente; i router poi provvedono a trasmettere il messaggio attraverso la rete fino al computer cui è destinato; Il Transmission Control Protocol (TCP): per velocizzare il trasferimento di file grandi viene impiegato questo protocollo che divide il file in segmenti, ognuno contenente una porzione dei byte. Questi segmenti vengono numerati, inseriti in pacchetti IP e spediti. Questi meccanismi di trasmissione si basano sul fatto che la trasmissione dei dati segue una metodologia semplice ed efficiente, che consiste nel distinguere diversi livelli della comunicazione in modo che il successivo possa fare uso del precedenti. Questi livelli sono 7: fisico, logico, di rete, di trasporto, di sessione, di presentazione, applicativo. Essi si rappresentano in un diagramma dal basso in alto chiamato pila ISO/OSI. Per la navigazione in rete locale i primi due livelli sono gestiti dal protocollo Ethernet, poi TCP/IP si occupa in parte del livello 2,3,4, mentre il protocollo HTTP si occupa degli ultimi due livelli. ISO/OSI è uno standard in cui vengono definite tecnologie e metodologie di comunicazione e scambio di dati; TCP/IP definisce invece uno standard di protocolli di comunicazione basati sul protocollo di rete IP. Il modem analogico: permette di utilizzare una linea telefonica analogica per collegare i calcolatori. Il server in una rete locale è un nodo che fornisce servizi ad altri nodi, in una rete possono esserci più server specializzati: File server, server di stampa, server di comunicazione che può essere un router Le connessioni possono essere fisiche, quando i nodi sono connessi; la connessione logica è quando i nodi gestiscono le comunicazioni. Capitolo 14_Dentro la scatola Turing e von Neumann: La macchina di Turing è il modello concettuale di base del computer: essa, specificando in modo opportuno le regole, può eseguire calcoli di qualsiasi natura e complessità. Un’evoluzione in termina di efficacia tecnica della macchina di Turing è rappresentata dalla macchina di von Neumann, costituita dalla CPU, formata da un’unità logico-aritmetica (ALU), da un accumulatore, da un’unità di controllo e da un contatore delle istruzioni. Anche la macchina di von Neumann, posto che abbia a disposizione sufficienti risorse di tempo e memoria, è un grado di eseguire qualsiasi processo algoritmico. L’anatomia del computer: All’interno del computer troviamo le porte, il bus, i dispositivi di memorizzazione, gli slot di espansione, la scheda madre e la CPU. La scheda madre contiene quasi tutti i circuiti a cui sono collegati il microprocessore, la memoria, l’alimentatore e altri dispositivi, invece la CPU è costituita da due componenti: L’unità di controllo: essa esegue le istruzioni dei programmi, coordina le attività del microprocessore e controlla il flusso di istruzioni tra questo e la memoria; L’unità logico-aritmetica: essa effettua le operazioni aritmetiche e le operazioni logiche di raffronto tra due valori. Queste due unità collaborano con la memoria in un processo, detto ciclo della macchina, formato da quattro fasi: caricamento, decodifica, esecuzione e memorizzazione. Il tempo necessario per completare le prime due fasi è detto tempo di istruzione, quello impiegato per le ultime due fasi è detto invece tempo di esecuzione. Capitolo 18_Organizzare le informazioni: liste, query, markup Liste e query: La struttura di dati più semplice da utilizzare è la lista: se la lista è di un numero di elementi abbastanza contenuto abbiamo una lista semplice, se invece gli elementi sono molti si parla di army o vettore di elementi. Ciò che ha reso obsolete le liste è la scarsa capacità di elaborare le informazioni secondo ordinamenti diversi, vale a dire l’impossibilità di trattare adeguatamente molte meta-informazioni necessari; inoltre le strutture lineari come liste e code permettono di scorrere le informazioni sollo avanti e indietro alla ricerca che interessa. Per reperire informazioni in una base dati a struttura tabellare si utilizzano delle interrogazioni dette query, grazie alle quali si possono creare delle tabelle contenenti solo i campi e i record che ci interessano. Si distinguono due principali modalità di creazione delle query: Il paradigma basato su esempi QBE (Query-By-Example): si selezionano i campi che si vogliono includere e poi si specificano quali record interessano; dopo ciò il programma crea una nuova tabella contente soltanto i record che soddisfano i criteri indicati; I linguaggi di interrogazione [il più diffuso è SQL (Structure Query Language)]: la descrizione di una query tramite il linguaggio di interrogazione è molto dettagliata, di norma però i dettagli rimangono nascosti all’utente. Capitolo 19_Il sistema operativo I file: Il sistema operativo ha la funzione di gestire i file contenuti nel disco fisso. I requisiti essenziali per reperire i file sono tre: - il nome del file, costituito dal nome, scelto dall’utente, e dall’estensione, separata dal nome con un punto; - la cartella, un archivio che semplifica la ricerca del documento; l’unità di memoria. (OLE): Oggi i documenti oltre al testo possono includere grafica, fogli di lavoro, basi dati, suoni, video e animazioni. Questo nuovo tipo di documento, detto documento composto, viene elaborato con una tecnologia detta collegamento e incorporamento di oggetti (OLE) o con un altro sistema chiamato OpenDoc. I driver: sono programmi che traducono le istruzioni generiche inviate da un programma o dal sistema operativo alla periferica in istruzioni per un componente hardware. Capitolo 21_Usare Internet e il Word Wide Web L’accesso: Per utilizzare il Word Wide Web o la posta elettronica è necessario disporre di un accesso a internet e di un programma di navigazione chiamato browser. Le grandi organizzazioni generalmente richiedono un collegamento permanente ad alta velocità alla rete Internet: le reti locali di tali enti vengono collegate direttamente a Internet tramite un fornitore di collegamento diretto (presence provider), detto host. Per gli utenti privati o per le piccole organizzazione generalmente è sufficiente un accesso a Internet remoto, cioè un collegamento tramite le normali linee telefoniche: il più diffuso avviene tramite un dispositivo chiamato modem che collega il computer alla linea telefonica. Per collegarsi a Internet tramite una linea telefonica è necessario un collegamento telefonico basato sul protocollo Point-to-Point-Protocol (PPP). Tipi di accesso: L’accesso remoto alla Rete Internet avviene mediante i provider di connessione (ISP, Internet Service Provider): la connessione avviene mediante la linea telefonica verso il point of presence (POP), che è il punto di accesso alla rete Internet costituito da un elaboratore, collegato ad un insieme di modem telefonici, gestito dalll’ISP. Negli ultimi anni si sono rese disponibili tecnologie a banda larga: la più diffusa è l’ADSL, che si basa sulla normale linea telefonica ma è a tutti gli effetti una connessione di tipo digitale; la connessione avviene tramite un modem specifico per lo standard ADSL, in genere fornito dallo stesso provider. La sicurezza: Gli obiettivi della sicurezza sono: - Data confidentiality: come mantenere la sicurezza dei dati; - Data integrity: come evitare che i dati vengano alterati; - System availability: come garantire che il sistema continui ad operare. Le violazioni alla sicurezza sono: - Disclosure (furto di informazione, attacco alla confidentiality); - Alteration (modifica dei dati, attacco all’integrity); - Denial of service (system availability). Si parla di sicurezza passiva, riferendosi alle tecniche e agli strumenti di tipo difensivo, mediante i quali si cerca di impedire che utenti non autorizzati possano accedere a dati di natura riservata; si parla di sicurezza attiva riferendosi alle tecniche e agli strumenti mediante i quali le informazioni ed i dati di natura riservata sono resi intrinsecamente sicuri, proteggendo gli stessi dalla possibilità che un utente non autorizzato possa accedervi e da quella che un utente non autorizzato possa modificarli. Le tecniche di attacco sono: Exploit: è un metodo che sfruttando un bug o una vulnerabilità porta all’acquisizione di privilegi o al denial of service di un computer; Buffer overflow: si fornisce ad un programma un insieme di dati di dimensioni superiori a quello previsto; Shellcode: è un programma in linguaggio assembly che sfruttando un exploit consente di accedere alla riga di comando con privilegi elevati di un computer; Cracking: è la modifica di un software per rimuovere la protezione della copia, oppure per ottenere accesso ad un’area altrimenti riservata; Backdoor: il creatore di un software lascia deliberatamente porte di servizio per entrare aggirando i sistemi di protezione; Port scanning: è una tecnica informatica utilizzata per raccogliere informazione su un computer connesso ad una rete; Sniffing: è un’attività di intercettazione passiva dei dati che transitano in una rete telematica; Spoofing: l’hacker invia pacchetti modificando l’IP sorgente facendo credere all’host di destinazione e ai vari hop che provengano da un’altra sorgente; Virus informatico: è un programma che può trasmettere altri programmi non maligni modificandoli (opera su qualunque supporto); Worm: è un programma che diffonde copie di se stesso in una rete (opera solo sulle reti); Man in the middle: l'attaccante è in grado di leggere, inserire o modificare messaggi tra due parti, ignare che il collegamento sia stato compromesso; DOS: si porta il funzionamento di un sistema informatico al limite delle prestazioni, fino a renderlo non più in grado di erogare il servizio; Social engineering: è un attacco basato sul raggiro degli utenti o dell’amministratore della rete presa come bersaglio. Un esempio è il phishing, una tecnica di ingegneria sociale utilizzata per ottenere informazioni personali e riservate per rubare l’identità mediante l’utilizzo di messaggi di posta elettronica fasulli; Bombe logiche: il creatore di un software, utilizzato internamente in una compagnia, inserisce un software che può attivarsi sotto particolari condizioni. Trojan horse: catturano informazioni e le inviano al creatore del programma; compromettono informazioni importanti per il funzionamento dei sistemi. La crittografia: la crittografia è l’arte di progettare algoritmi per crittografare un messaggio rendendolo incomprensibile a tutti tranne al suo destinatario che, con un algoritmo simile, deve essere in grado di codificarlo attraverso un parametro segreto detto chiave, usato in precedenza anche dal mittente per la cifratura. La sicurezza di un sistema di crittografia risiede solo nella segretezza della chiave e non dell’algoritmo. La crittografia a chiave pubblica-chiavi asimmetriche è basata sull’uso di due chiavi generate in modo che sia impossibile ricavarne una dall’altra. La firma digitale è il risultato di una procedura informatica, detta validazione, che attraverso un procedimento crittografico a chiavi asimmetriche, permette di identificare il reale mittente di un documento informatico verificandone l’autenticità. Round Robin: è un algoritmo di scheduling preemptive che segue i processi nell’ordine d’arrivo, ma esegue la prelazione del processo in esecuzione, ponendolo alla fine della coda dei processi in attesa, qualora l’esecuzione duri più del quanto di tempo stabilito, e facendo proseguire l’esecuzione al successivo processo in attesa. Lock in: è un fenomeno che si verifica quando si è catturati da una scelta tecnologica potenzialmente inferiore rispetto ad altre disponibili. DBMS: Il Database Management System è un sistema software progettato per consentire la creazione e la manipolazione (da parte di un amministratore) e l'interrogazione efficiente (da parte di uno o più utenti) di database (ovvero di collezioni di dati strutturati), per questo detto anche "gestore o motore del database", e ospitato su architettura hardware dedicata oppure su semplice computer. VPN: Una Virtual Private Network è una rete di telecomunicazioni privata, instaurata tra soggetti che utilizzano, come infrastruttura di trasporto, un sistema di trasmissione pubblico e condiviso, come ad esempio la Rete Internet. Scopo delle reti VPN è offrire alle aziende, a un costo inferiore, le stesse possibilità delle linee private in affitto sfruttando reti condivise pubbliche. Si può vedere dunque una VPN come l'estensione, a scala geografica, di una rete locale privata aziendale che colleghi tra loro siti interni all'azienda stessa variamente dislocati su un ampio territorio sfruttando l'instradamento tramite IP per il trasporto su scala geografica e realizzando di fatto una rete LAN, detta appunto virtuale e privata, logicamente del tutto equivalente ad un'infrastruttura fisica di rete appositamente dedicata. Il modello onion skin: il modello onion skin rappresenta il sistema come una successione di strati costruiti sopra la macchina hardware, ciascuna dei quali rappresenta un livello di macchina virtuale. Ogni livello all’interno del modello, viene visto come un oggetto unico, che non corrisponde alla macchina fisica ma che è in grado di svolgere le funzioni richieste indipendentemente dagli altri livelli; ciascuno strato costituisce un modulo, cioè una collezione di routine che attiva i meccanismi fisici necessari per risolvere problemi logici di uno stesso tipo. Sistemi informativi aziendali Il sistema informativo aziendale (SIA) è l'insieme dei mezzi tecnici, delle procedure organizzative, delle risorse umane finalizzati alla gestione delle informazioni prodotte, utilizzate e condivise da un'azienda durante l'esecuzione dei processi aziendali. L'esperto in sistemi informativi è la figura professionale che si occupa della progettazione e dello sviluppo di un sistema informativo per l'immagazzinamento, la gestione e la trasmissione di dati e informazioni digitali. Nell'azienda il sistema informativo è uno dei sistemi operativi ed ha il compito di: raccogliere i dati; conservare i dati raccolti, archiviandoli; elaborare i dati, trasformandoli in informazioni; distribuire l'informazione agli organi aziendali utilizzatori. Per fare questo il sistema informativo si può avvalere di tecnologie informatiche: la parte del sistema informativo aziendale che se ne avvale prende in nome di sistema informatico. Oggi, con il diffondersi delle tecnologie informatiche, il sistema informatico finisce per rappresentare la quasi totalità del sistema informativo, ma, almeno a livello concettuale, il sistema informativo non implica di per sé l'uso dell'informatica; del resto prima che fossero introdotte le tecnologie informatiche già esistevano sistemi informativi.I procedimenti sopra elencati sono finalizzati a soddisfare con efficacia ed efficienza le esigenze conoscitive interne ed esterne d'azienda. Soddisfare con: A) Efficienza: fa riferimento al rapporto input-output, in quanto essa può essere definita come la capacità di raggiungere il miglior risultato con le risorse a disposizione o, più in particolare: Miglior risultato ottenibile a parità di risorse; Minor utilizzo quantitativo di risorse, a parità di risultati; B) Efficacia: rapporto tra risultato ottenuto ed obiettivo prefissato; si tratta di un giudizio qualitativo sul risultato ottenuto; quindi, è necessario effettuare un confronto. Linguaggio di programmazione Viene detto «linguaggio di programmazione» un linguaggio destinato a descrivere l'insieme delle azioni consecutive che un computer deve eseguire. Un linguaggio di programmazione è anche un modo pratico per noi (umani) di dare delle istruzioni a un computer. il linguaggio usato dal processore è detto codice macchina. Si tratta di dati come quelli che arrivano al processore, costituiti da una serie di 0 e di 1 (dati binari). Il linguaggio macchina non è quindi comprensibile all'uomo, ed è per questo che dei linguaggi intermedi, comprensibili all'uomo, sono stati messi a punto. Il codice scritto in questo tipo di linguaggio è trasformato in linguaggio macchina per essere utilizzabile dal processore. L'Assembly è il primo linguaggio informatico che è stato utilizzato. Questo è molto simile al linguaggio macchina ma resta comprensibile agli sviluppatori. Linguaggio interpretato: Un linguaggio informatico è per definizione diverso dal linguaggio macchina. Bisogna quindi tradurlo per renderlo leggibile dal punto di vista del processore. Un programma scritto in un linguaggio interpretato ha bisogno di un programma ausiliario (l'interprete) per tradurre man mano le istruzioni de programma. Linguaggio compilato Un programma scritto in un linguaggio detto «compilato» sarà tradotto una volta per tutte da un programma specifico, detto compilatore, per creare un nuovo file che sarà autonomo, cioè che non avrà bisogno di un altro programma per essere eseguito ; si dice allora che il file è eseguibile. Un programma scritto in un linguaggio compilato ha come vantaggio di non aver più bisogno, una volta compilato, del programma specifico per essere eseguito. Inoltre, essendo la traduzione fatta una volta per tutte, sarà di più rapida esecuzione. I linguaggi di programmazione di tipo procedurale sono quei linguaggi per computer dove le istruzioni vengono indicate in sequenze e vengono svolte passo passo. In informatica, nell'ambito della programmazione, per pseudocodice, pseudocodifica, pseudolinguaggio o linguaggio di progettazione si intende un linguaggio il cui scopo è la rappresentazione di algoritmi in alternativa al classico diagramma di flusso. -Il processo di codifica di un programma in un linguaggio di programmazione a partire dalla sua descrizione è solo un passo del processo di realizzazione. (Wirth) I programmi sono caratterizzati da algoritmi + strutture dati L’algoritmo è la descrizione formale del processo di soluzione di un problema. Strutture dati: descrizione formale di una organizzazione logica Tecniche di programmazione Programmazione strutturata: nasce come proposta per regolamentare e standardizzare le metodologie di programmazione. Per rendere più facile la lettura dei programmi. Programmazione modulare: Tecnica di suddividere un progetto software in parti il più possibile indipendenti, le cui modalità di interazione siano ben definite. Un modulo raggruppa al suo interno più informazioni. Programmazione orientata agli oggetti: un paradigma di programmazione che permette di definire oggetti software in grado di interagire gli uni con gli altri attraverso lo scambio di messaggi. È particolarmente adatta nei contesti in cui si possono definire delle relazioni di interdipendenza tra i concetti da modellare. L’ingegneria del software è l’insieme delle tecniche che ne permettono la progettazione, la realizzazione e manutenzione. Il ciclo di sviluppo del software si divide in: • Analisi dei requisiti (specifiche) • Progettazione • Codifica • Verifica • Documentazione Minacce alla sicurezza Discolsure (rivelazione) Accesso non autorizzato ad una informazione Deception (raggiro, frode) Accettazione di dati Disruption (rottura) Interruzione o Prevenzione di un'operazione corretta Usurpation (usurpazione) Controllo non autorizzato di Parti del Sistema Chiave Simmetrica: stessa chiave per codifica e decodifica Chiave Asimmetrica: chiavi diverse per codifica e decodifica La differenza tra cifratura simmetrica e asimmetrica riguarda due metodi diversi applicati nella codifica e decodifica dei messaggi, in particolare quelli veicolati attraverso il web, in difesa della sicurezza informatica. Perchè sia valida a norma di legge La Firma deve essere immagazzinata su dispositivi appropriati (smartcard) difficili da crackare. La codifica e la decodifica devono essere fatta direttamente sulla smartcard (che ha un processore, una memoria etc.) tramite appositi lettori. La firma digitale, in informatica, rappresenta l'insieme dei dati in forma elettronica, allegati oppure connessi tramite associazione logica ad altri dati elettronici, utilizzati come metodo di identificazione informatica. Può essere basata su varie tecnologie, tra cui la crittografia a chiave pubblica. firma elettronica – l’insieme dei dati in forma elettronica, allegati oppure connessi tramite associazione logica ad altri dati elettronici, utilizzati come metodo di autenticazione informatica La legge italiana definisce la firma elettronica come un insieme dei dati in forma elettronica, allegati oppure connessi tramite associazione logica ad altri dati elettronici, utilizzati come metodo di identificazione informatica. firma elettronica qualificata - la firma elettronica ottenuta attraverso una procedura informatica che garantisce la connessione univoca al firmatario e la sua univoca autenticazione informatica, creata con mezzi sui quali il firmatario può conservare un controllo esclusivo e collegata ai dati ai quali si riferisce in modo da consentire di rilevare se i dati stessi siano stati successivamente modificati, che sia basata su un certificato qualificato e realizzata mediante un dispositivo sicuro per la creazione della firma, quale l'apparato strumentale usato per la creazione della firma elettronica La licenza del software La licenza o contratto d'uso, in informatica è il contratto con il quale il titolare dei diritti di sfruttamento economico sul software (programma informatico) definisce il regime giuridico di circolazione e le limitazioni nell'utilizzo e nella cessione dell'opera. Il Software non si vende! Si permette l'utilizzo delle sue funzionalità (Licenza d'uso) Il Software è sempre di proprietà di chi l'ha prodotto A meno che questi non ne ceda i diritti di distribuzione e copia A meno che questi non ne ceda (in alcuni paesi) la proprietà intellettuale. Licenze libere: (GPL) Buona parte del software libero viene distribuito con la licenza GNU GPL (GNU General Public License), scritta da Richard Stallman e Eben Moglen per garantire legalmente a tutti gli utenti le quattro libertà fondamentali. Dal punto di vista dello sviluppo software, la licenza GPL viene considerata una delle più restrittive, poiché impone che necessariamente ogni prodotto software derivato - ovvero, che modifica o usa codice sotto GPL venga a sua volta distribuito con la stessa licenza. Dato che il software è protetto da copyright, l'utente non ha altro diritto di modifica o ridistribuzione al di fuori dalle condizioni di copyleft. (LGPL): Una licenza simile, ma meno restrittiva, è la GNU LGPL (GNU Lesser General Public License), che permette di utilizzare il codice anche in software proprietari e sotto altre licenze open source, purché le parti coperte da LGPL - anche se modificate - vengano comunque distribuite sotto la medesima licenza. In genere è utilizzata per librerie software. Licenza (BSD): Il testo della licenza è considerato di pubblico dominio e può quindi essere modificato senza restrizioni. Le licenze BSD garantiscono le quattro libertà del software e sono quindi qualificate come licenze per il software libero. Tuttavia risultando più aperte e libere di altre, ad esempio della licenza GNU General Public License (GNU GPL), non hanno fra i propri obiettivi quello di proteggere la libertà del software cui sono applicate ma semplicemente di rendere per tutti il software completamente libero, accessibile e modificabile. Chi infatti modifichi un programma protetto da licenze BSD, può ridistribuirlo usando la stessa o altra qualunque licenza e senza avere l'obbligo di redistribuire le modifiche apportate al codice sorgente. Chiunque può fare ciò che meglio crede del programma rilasciato ed acquisito con l'unico dovere di citare l'autore. Licenze creative commons: è la denominazione di alcune licenze di diritto d'autore rilasciate a partire dal 16 dicembre 2002 dalla Creative Commons, una società nonprofit statunitense fondata nel 2001. Le licenze Creative Commons (attualmente alla versione 3.0) si ottengono combinando tra loro le seguenti quattro condizioni: Attribuzione Permette che altri copino, distribuiscano, mostrino ed eseguano copie dell'opera e dei lavori derivati da questa a patto che vengano mantenute le indicazioni di chi è l'autore dell'opera. Non Commerciale Permette che altri copino, distribuiscano, mostrino ed eseguano copie dell'opera e dei lavori derivati da questa solo per scopi di natura non commerciale. Non Opere Derivate Permette che altri copino, distribuiscano, mostrino ed eseguano soltanto copie identiche dell'opera; non sono ammessi lavori che derivano dall'opera o basati su di essa. Condividi allo stesso modo Permette che altri distribuiscano lavori derivati dall'opera solo con una licenza identica a quella concessa con l'opera originale. Licenza EULA: EULA o End-User License Agreement (accordo di licenza con l'utente finale) è il contratto tra il fornitore di un programma software e l'utente finale. Tale contratto assegna la licenza d'uso del programma all'utente nei termini stabiliti dal contratto stesso.