Laboratorio di Informatica Elisa Mori

Slides:



Advertisements
Presentazioni simili
Training On Line - CONP. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Pluriennali > Nuova Richiesta Si accede alla pagina di Richiesta.
Advertisements

1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
1 Introduzione ai calcolatori Parte II Software di base.
Il Software.
Linguaggi di programmazione
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Interazione Uomo - Macchina
Sistema Operativo A. Ferrari.
STRUTTURA DEL PERSONAL COMPUTER
LA PIATTAFORMA FAD FORTECHANCE
Sistemi Operativi Menù: 1) Introduzione al sistema operativo
Da Unix a Linux Alessio Coraci V Dp.
Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette all'utente.
Dr. Francesco Fabozzi Corso di Informatica
Frontespizio Economia Monetaria Anno Accademico
Strutture dei Sistemi Operativi
INTRODUZIONE AI SISTEMI OPERATIVI
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Le prestazioni (velocità) di un singolo disco sono limitate dalla tecnologia usata, -per aumentare le prestazioni si può pensare di far operare in parallelo.
Sistemi Operativi: avvio
Struttura dei sistemi operativi (panoramica)
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Linguaggi di programmazione
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
Laboratorio di Informatica
Informatica Generale Susanna Pelagatti
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Windows Sistema operativo con interfaccia grafica per PC IBM compatibili (varie versioni dal 95) La gestione dei file viene fatta secondo le modalità.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
STILI DI APPRENDIMENTO ED EVOLUZIONE INTERFACCE
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
I SISTEMI OPERATIVI.
Informatica per medici
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Modulo 1 - Hardware u.d. 3 (syllabus – 1.3.5)
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
STRUTTURA GENERALE DI UN ELABORATORE
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Concetti di base sul Software dei PC Unitre Anno
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Il Sistema Operativo (1)
1 Il Sistema Operativo: Esempio n Le operazioni effettuate sembrano abbastanza semplici ma … n Provocano una serie di eventi in cui vengono coinvolte sia.
I sistemi operativi1 CONCETTI FONDAMENTALI l HARDWARE: il componente “materiale” di un sistema informatico l SOFTWARE: il componente “immateriale” di un.
Autori:  Gazzola Alex  Cassol Simone  Kawkab Wassim Data: 14/04/2014 Classe: 3° INF.
A.P. cat. B - 1 Per chi vuole: Libro di testo D.P. Curtis, K. Foley, K. Sen, C. Morin Informatica di base 2° edizione Mc Graw-Hill Companies.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Introduzione Cos’è un sistema operativo ?. Hardware Sistema Operativo Applicazioni È il livello di SW con cui interagisce l’utente e comprende programmi.
1 Sommario degli argomenti  Sistemi operativi: DOS, Unix/Linux,Windows  Word processors: Word  Fogli elettronici: Excel  Reti: TCP/IP, Internet, ftp,
Il software Componente del computer costituita dai: –programmi di base per la gestione del sistema –programmi applicativi per l’uso del sistema Queste.
Sistema operativo Il sistema operativo è un insieme di programmi che gestiscono tutte le componenti hardware e software di un calcolatore. Spesso si può.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l’ambiente e il territorio Il software di base Stefano Cagnoni e Monica Mordonini.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Informatica Lezione 6 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
I Sistemi Operativi. Che cosa sono? Il sistema operativo è un software di base che fa funzionare il computer. I Sistemi operativi più importanti sono:
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
COMPONENTI DI UN SISTEMA INFORMATICO HardwareSoftware Parte fisicaComponenti logiche Componenti fisiche (elettroniche e meccaniche) di un computer Istruzioni.
Un sistema operativo è un componente del software di base di un computer la cui funzione è quella di gestire le sue risorse hardware e software,fornendo.
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

Laboratorio di Informatica Elisa Mori morie@unisi.it Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Sistemi Operativi: avvio All’avvio del computer, terminate le verifiche del BIOS, il controllo passa al sistema operativo. Il Sistema Operativo opera come intermediario tra l’hardware del sistema e uno o più utenti. Laboratorio di Informatica – Reti di calcolatori

Sistema Operativo: funzioni Due sono le funzioni principali svolte da un sistema operativo: gestione delle risorse hardware interfaccia verso l’utente Come tali funzioni vengano svolte, e se sia interamente il sistema operativo ad occuparsene, dipende dal dispositivo in questione. Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Dispositivi Esistono diversi dispositivi elettronici la cui complessità ha reso necessario dotarli di un sistema operativo. Tra questi, agende elettroniche e telefoni cellulari sono esempi comuni. Palm m505 Sendo z100 Nokia 7650 Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Dispositivi La gestione dell’hardware è un aspetto di secondaria importanza per gli utenti di questi dispositivi. L’interfaccia ha un’importanza maggiore, ed è sia fisica che virtuale (software). Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Sistemi operativi: un po’ di storia Laboratorio di Informatica – Reti di calcolatori

Sistemi operativi: storia I primi sistemi operativi sono stati progettati negli anni ’50 per i calcolatori allora disponibili. Consistevano in poche centinaia di istruzioni per il caricamento del programma in memoria centrale e per la produzione, su un dispositivo di output, dei risultati dell’elaborazione. L’interfaccia era quella comune allora – interruttori e spie luminose. I comandi venivano impartiti in codice binario. Laboratorio di Informatica – Reti di calcolatori

Sistemi operativi: storia (UNIX) Nella seconda metà degli anni ’60, la AT&T abbandona il progetto MULTICS – un sistema a time-sharing – rivelatosi deludente. Ken Thompson, allora ai Bell Labs della AT&T, scrive un sistema operativo in assembler e lo battezza, UNICS (Uniplexed Information and Computing Services). Nasceva così UNIX, capostipite di una numerosa e varia famiglia di sistemi operativi. Era il 1969. AT&T: American Telephone & Telegraph Corporation. Prima di sviluppare UNICS, Thompson dovette anche scriversi l’assembler.. Meno male che lui e Dennis Ritchie avevano trovato un PDP-7 inutilizzato (?). Laboratorio di Informatica – Reti di calcolatori

Sistemi operativi: storia (UNIX) Nel frattempo Dennis Ritchie, che collaborava con Thompson, sviluppa il linguaggio di programmazione “C”. Nel 1972 UNIX viene riscritto in C, aprendo la strada all’utilizzo su altre piattaforme hardware. Dal 1975 in poi, UNIX inizia a diffondersi nelle università – negli Stati Uniti, in Giappone, Australia, Europa… Il C era pensato come linguaggio indipendente dall’hardware, al contrario dei vari assembler. UNIX era stato creato inizialmente su un PDP-7; dal 1970 venne sviluppato su un PDP-11 che Thompson e Ritchie erano riusciti a far acquistare. Laboratorio di Informatica – Reti di calcolatori

Sistemi operativi: storia (UNIX) La ramificazione delle versioni di UNIX diventerà poi inarrestabile. Il grafico qui riportato è aggiornato a fine 2001, e non è che la punta di un iceberg: molte varianti sono poco diffuse, e non vengono riportate. fonte: http://perso.wanadoo.fr/levenez/unix/ Laboratorio di Informatica – Reti di calcolatori

Sistemi operativi: storia (DOS) Negli anni ’70, iniziano a diffondersi i primi personal computer. Gary Kildall sviluppa, nel 1972, il CP/M (Control Program for Microprocessors), un sistema operativo funzionante su uno dei primi processori Intel (il 4004). Il primo BIOS fu scritto da Kildall come modulo per il proprio CP/M, in modo da rendere il sistema meno dipendente dall’hardware. Laboratorio di Informatica – Reti di calcolatori

Sistemi operativi: storia (DOS) Nel 1980 Tim Patterson, della Seattle Computer Products, sviluppò un proprio sistema operativo basato sul CP/M. Impiegò due mesi, e lo battezzò QDOS (Quick and Dirty Operating System). Dopo quattro mesi, un’altra ditta di Seattle, la Microsoft di Bill Gates, acquista dalla SCP i diritti per rivendere il DOS ad un cliente non menzionato. Il cliente è l’IBM, che nel 1981 lancerà il primo PC, dando il via alla rivoluzione dei personal computer. Laboratorio di Informatica – Reti di calcolatori

Sistemi operativi: storia (Win & Mac) La Apple Computer, negli stessi anni, sta portando avanti diversi progetti, e sperimenta diversi sistemi operativi. Nel 1984, con il lancio (e il successo) dell’Apple Macintosh, si focalizzerà sul suo sistema operativo, il System – allora alla versione 1.0. Al contrario del DOS, nelle sue varie incarnazioni, il System ha un’interfaccia grafica. L’anno successivo, il 1985, la Microsoft lancia la prima versione di Windows. Nota: già dal 1985 la Microsoft aveva un modo particolare di inserirsi nel mercato: le interfacce grafiche (Xerox, Apple, X-Window) erano di tipo WIMP (Windows, Icons, Menus, Pointing Device). Di conseguenza la Microsoft pensò bene di battezzare il proprio sistema operativo con un nome che la legasse per sempre a un’interfaccia che non aveva inventato. Laboratorio di Informatica – Reti di calcolatori

Sistemi operativi: storia (Win & Mac) Dal 1984-85 ad oggi, sia la Apple che la Microsoft hanno aggiornato più volte i propri sistemi operativi. L’interfaccia Apple è rimasta simile (perché molto funzionale), mentre la Microsoft ha via via abbandonato il DOS, e nel 1995 ha introdotto, con Windows 95, un’interfaccia grafica più curata ed efficiente. Spendere due parole riguardo all’evoluzione dei sistemi Microsoft, dal DOS alle varie incarnazioni di Windows, fino all’uso di Internet per aggiornare costantemente il SO. Laboratorio di Informatica – Reti di calcolatori

Sistemi operativi: storia (Linux) Nel 1991 uno studente finlandese, Linus Torvalds, sviluppò il kernel per un sistema operativo basato su una variante di UNIX. Lo distribuì in rete secondo la GNU General Public License, una licenza che ne consentiva l’uso, la redistribuzione e la modifica (a certe condizioni). Iniziò a ricevere da subito contributi da altri sviluppatori. Laboratorio di Informatica – Reti di calcolatori

Sistemi operativi: storia (Linux) Nasceva così Linux, una delle varianti UNIX oggi più diffuse. Il kernel di Linux è continuamente aggiornato, e disponibile anche gratuitamente. Uno dei punti di forza di questo sistema è la comunità che lo supporta, e la filosofia su cui si basa, quella del software libero. Su Linux, aggiungere altre informazioni: che è stabile, che è uno dei sistemi più usati sui web server in combinazione con Apache, e così ia. Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Sistemi operativi: struttura interna Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Livelli La struttura di un sistema operativo, tipicamente, è quella a cipolla: Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Livelli L’hardware è dunque “ricoperto” da una serie di strati di software. Ciascun livello: – usa le funzionalità di quello sottostante – fornisce servizi al livello che segue nella gerarchia – gestisce delle risorse mediante politiche invisibili ai livelli superiori Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Macchine virtuali Si crea, in questo modo, una gerarchia di “macchine virtuali”. • l’esperto che scrive un sistema operativo vede il sistema come un insieme di risorse fisiche da comandare direttamente; • colui che progetta un ambiente di programmazione vede la macchina come l’insieme delle funzioni messe a disposizione dal sistema operativo; Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Macchine virtuali • l’utente che usa un linguaggio di alto livello per progettare un programma applicativo vede l’elaboratore come l’insieme delle funzionalità messe a disposizione dall’ambiente di programmazione; • per l’utilizzatore di un programma applicativo, infine, il sistema appare virtualmente come l’insieme dei comandi che può fornire alla macchina per soddisfare le sue esigenze. Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Macchine virtuali Riassumendo: l’utente finale del sistema interagisce solo con il livello più esterno della gerarchia. Idealmente, l’utente finale è ignaro di tutti i dettagli delle operazioni svolte dai livelli inferiori. Potrebbe (sempre idealmente) essere a conoscenza solo delle operazioni che è interessato ad effettuare. Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Gestione CPU Il livello più basso è quello del kernel (nucleo). Questa parte del sistema operativo si occupa di gestire l’esecuzione dei programmi. Un programma in esecuzione è detto processo. Per analogia, si può considerare un programma come una ricetta e il processore come cuoco. L’esecuzione della ricetta, che comprende la lettura, la selezione degli ingredienti, la disposizione degli stessi a portata di mano in attesa di usarli, e così via, è il processo. Per risorse di calcolo, si intende il tempo che la CPU dedica ad un particolare processo. Il kernel distribuisce le risorse di calcolo tra i vari processi attivi. Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Gestione CPU Una prima distinzione è dunque tra quei sistemi che eseguono un processo per volta e quelli in grado di gestirne diversi “contemporaneamente”. Questi ultimi sono detti multitasking. Analogia del barista come processore, che può essere adattata sia per i sistemi a task singolo che per quelli multitasking. Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Gestione memoria La memoria è una risorsa essenziale e limitata. Essenziale, perché ogni programma in esecuzione (processo) deve essere “caricato” in memoria, e così i dati su cui opera. Limitata, perché nei sistemi moderni possono essere attivi più processi nello stesso tempo. In effetti non è necessario caricare per intero un programma in memoria, ma solo quelle sue parti che si stanno effettivamente utilizzando. Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Gestione memoria Dal momento che la memoria di sistema (RAM) è una risorsa finita, nell’allocarla ai vari processi il sistema operativo deve risolvere vari problemi: trovare spazio per i vari processi; “rilocare” il codice caricato in memoria; ridurre la frammentazione. Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Gestione memoria A A B B C C In memoria sono caricati i processi A e B. Anche C viene caricato in memoria. Il processo B termina, e libera la memoria. A D C Il processo D non trova spazio in cui inserirsi, anche se la memoria libera complessiva sarebbe sufficiente. Laboratorio di Informatica – Reti di calcolatori

Gestione memoria: paginazione E’ anche possibile suddividere la memoria in blocchi (pagine fisiche). I programmi da caricare dovranno essere divisi in pagine logiche. Memoria (RAM) Processi 1 1 E 2 2 3 3 4 4 5 5 F 6 6 7 7 8 G 8 9 9 Laboratorio di Informatica – Reti di calcolatori

Gestione memoria: swapping Il sistema operativo può riservare un’area di un disco per lo swapping. C A A B B D D C C D viene caricato in memoria. In memoria sono presenti A, B, e C. D non trova spazio. C viene copiato su un disco dal gestore della memoria. Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Memoria virtuale Le tecniche appena esposte possono coesistere tranquillamente. Il risultato della loro interazione è che il sistema può disporre, in apparenza, di una quantità di memoria maggiore di quella fisica installata. L’utilizzo di una memoria secondaria (su disco) per estendere la memoria di sistema consente di parlare di memoria virtuale. Laboratorio di Informatica – Reti di calcolatori

Gestione Input/Output L’accesso alle periferiche di I/O viene gestito dal sistema operativo insieme ai driver di periferica. Questi sono programmi specifici per ciascun dispositivo che si colleghi all’elaboratore (stampanti, scanner dischi…). Laboratorio di Informatica – Reti di calcolatori

Gestione Input/Output L’interazione tra un programma e una periferica è standardizzata. Un programma di elaborazione testi, ad esempio, può inviare un comando di stampa senza curarsi del tipo di stampante collegata al computer. Spetta al sistema operativo smistare la richiesta al driver della stampante. L’interazione è standardizzata in questo senso: un programma di scrittura, ad esempio, può inviare un comando di stampa senza curarsi del tipo di stampante collegata al computer. Spetta al SO, insieme al driver della stampante, provvedere all’esecuzione dell’operazione. Laboratorio di Informatica – Reti di calcolatori

Gestione Input/Output A questo livello è implementato anche un sistema di gestione degli errori di I/O (ad es. dischetto mancante o danneggiato, carta esaurita, ecc.). Anche il controllo dell’ordine di accesso ai dispositivi è cruciale. Il sistema operativo deve prevenire, o risolvere, eventuali conflitti. Il SO deve inoltre curarsi della gestione degli errori di I/O (dischetto mancante o danneggiato, carta esaurita) così come della corretta gestione della coda di accesso ai dispositivi stessi (se il programma P1, che sta usando la risorsa R1, vuole accedere anche alla risorsa R1, e il programma P2 sta usando la risorsa R2, allora P1 viene messo in attesa. Ma se P2 richiede la risorsa R1 per usarla contemporaneamente a R2, allora ci si può trovare potenzialmente in una fase di stallo – è il SO a doverla risolvere, o a doverla prevenire). Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Gestione file Il file system è il modo in cui il sistema operativo organizza i file (documenti) sulle unità di memorizzazione. Un file è un’astrazione che rappresenta un insieme di byte logicamente collegati. Con “protezione” intendo la caratteristica per cui nei SO multiutente possono essere impostati dei permessi di accesso ai file basati su utenti e gruppi. I file e le directory sono in tal modo protetti da accessi non autorizzati. Laboratorio di Informatica – Reti di calcolatori

Gestione file: funzioni Il file system deve mettere a disposizione diverse funzioni per la manipolazione dei file: creazione/eliminazione lettura/scrittura/esecuzione coordinamento accessi contemporanei controllo degli accessi (nei sistemi multiutente) Chiaramente la combinazione delle operazioni sopra elencate consente di compierne altre: leggere un file, crearne uno vuoto, scrivere in questo il contenuto letto in quello precedente equivale a copiare il file… Laboratorio di Informatica – Reti di calcolatori

Inteprete dei comandi (shell) L’interprete dei comandi è quella parte del sistema operativo che riceve ed elabora le istruzioni impartite da un utente. E’ possibile utilizzare lo stesso sistema operativo con shell differenti. Questo può rendere molto diverso il modo di impartire comandi. Laboratorio di Informatica – Reti di calcolatori

Inteprete dei comandi (shell) La shell è dunque lo strato più esterno di un sistema operativo. Di fatto, rappresenta l’interfaccia tra utente e sistema. MacOS X Windows XP Linux – KDE 3.0 Laboratorio di Informatica – Reti di calcolatori

Sistemi operativi: implicazioni La scelta di un sistema operativo ha un’importanza sia teorica che culturale. Un sistema operativo non è solo una realizzazione ingegneristica, ma rispecchia in qualche misura la filosofia che scegliamo di adottare nel nostro rapporto con il computer. Bisogna dunque guardarsi dal considerare il sistema operativo come una sorta di “dato” tecnologico: si tratta, piuttosto, del risultato di un processo che ha anche fondamentali aspetti culturali e comunicativi. Tale scelta non è sempre possibile. Vedi fallimento della Be, Inc. e questioni sulle licenze Microsoft per i rivenditori. Laboratorio di Informatica – Reti di calcolatori

Inteprete dei comandi (shell) L’interprete dei comandi è quella parte del sistema operativo che riceve ed elabora le istruzioni impartite da un utente. Nota: sul modo di impartire comandi, cominciano a vedersi i primi timidi tentativi di implementare comandi basati su “gesti”, gesti fatti con il mouse: un gioco uscito nel 2001, Black & White, funzionava in questo modo (ed il cursore era in effetti una mano) e una libreria di Litestep fa la stessa cosa. Laboratorio di Informatica – Reti di calcolatori

Inteprete dei comandi (shell) e interfaccia Che differenza c’è tra “interprete dei comandi”, “shell”, e “interfaccia utente”? I primi due termini sono sinonimi. “Shell” vuol dire “guscio”, in riferimento al fatto che si tratta dello strato più esterno di un sistema operativo. Shell vuol dire “guscio”. Il nome deriva dall’interprete dei comandi utilizzata nel sistema Multics. Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Interfaccia L’interfaccia è il mezzo attraverso il quale l’utente invia comandi alla shell. Esistono diverse interfacce possibili per l’interazione uomo-macchina. Il loro successo dipende, oltre che da un’accurata progettazione, dal tipo di utente cui sono rivolte. In effetti, gli utenti sono in generale di bocca buona. Se effettivamente l’usabilità dell’interfaccia ne potesse decretare il successo, Windows non reggerebbe il confronto con altri sistemi più funzionali. La curva di apprendimento per interfacce poco intuitive può essere alta, ma la produttività, una volta “addestrati”, ne risente solo in minima parte – anche perché l’utente impara ad aggirare i lati negativi dell’interfaccia. Le interfacce a riga di comando, ad esempio, vanno benissimo per il tipo di comunità al cui interno sono state sviluppate: programmatori, o comunque persone dotate delle competenze, dell’interesse e del tempo necessari ad apprendere una sintassi e dei comandi, e il modo di combinarli. Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Interfacce Due sono i tipi di interfaccia più diffusi per interagire con un computer: Interfacce a caratteri, anche dette a riga di comando (CLI, command line interfaces) Interfacce grafiche (GUI, graphical user interfaces), in particolare di tipo WIMP (Windows, Icons, Menus, Pointing device) Altri tipi di interfacce grafiche: Microsoft BOB, per restare nell’ambito dei sistemi operativi, o quelle fornite dai giochi per computer, spesso innovative (due esempi: Black & White [2001] e Monkey Island III [1997]). Laboratorio di Informatica – Reti di calcolatori

Interfacce a caratteri Storicamente, per motivi legati all’hardware, le interfacce a caratteri vengono prima delle altre. Il CP/M, il DOS, alcuni sistemi operativi in uso sui mainframe negli anni ’60, UNIX.. Hanno tutti un’interfaccia a caratteri. Laboratorio di Informatica – Reti di calcolatori

Interfacce a caratteri DOS shell Due parole sulla finestra, su cosa compare, sul comando appena eseguito (dir), e così via. Laboratorio di Informatica – Reti di calcolatori

Interfacce a caratteri Unix shell (linux console) Laboratorio di Informatica – Reti di calcolatori

Interfacce a caratteri Esistono molti tipi di shell con interfaccia a caratteri, così come con interfaccia grafica. La differenza tra le interfacce a caratteri è nella sintassi e nella maggiore o minore flessibilità. Per quanto riguarda la sintassi, gli esempi sono facili (i comandi DIR e LS, magari); riguardo alla flessibilità, alludo alla possibilità di creare script o file batch più o meno potenti, o all’autocompletamento dei comandi, o alla “history” degli stessi. Al limite anche la colorazione dei file in base al tipo, in alcune shell Unix. Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Interfacce grafiche Cosa rende diverse le interfacce grafiche le une dalle altre? Evidenziamo due aspetti: il tipo di metafora usata; gli elementi costitutivi che l’utente può manipolare. Un’interfaccia grafica si basa sulle capacità grafiche dell’hardware per disegnare ciò che l’utente vedrà sul monitor. Cosa viene disegnato, e come, è ciò che permette di distinguere tra diverse interfacce. Altri tipi di interfacce grafiche: quelle fornite dai giochi per computer, spesso innovative (due esempi: Black & White [2001] e Monkey Island III [1997]). Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Metafore La metafora più utilizzata nei personal computer, oggi, è quella della “scrivania” (in inglese, desktop). Dalla sua introduzione ad oggi sono state introdotte interfacce alternative, allo scopo di superarne le limitazioni, ma ancora senza successo. Da più parti si sente affermare che la metafora della scrivania, per quanto funzionante, è obsoleta. C’è del vero: è una metafora pensata per permettere di usare il computer ad utenti che avevano familiarità con un certo tipo di lavoro da ufficio, e il computer rappresentava un elemento nuovo in quel contesto. Tuttavia oggi il computer è uno strumento presente in molti contesti, lavorativi e non; il vantaggio che si aveva utilizzando una metafora basata su un contesto che gli utenti già padroneggiavano non c’è più; il computer non è, inoltre, un elemento sconosciuto. Molte attività sono state ormai ristrutturate profondamente attraverso l’uso del computer (le comunicazioni e il flusso dei documenti, ad esempio), e rimanere legati ad una metafora antiquata limita i potenziali sviluppi dell’interfaccia. Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Xerox Star Da più parti si sente affermare che la metafora della scrivania, per quanto funzionante, è obsoleta. C’è del vero: è una metafora pensata per permettere di usare il computer ad utenti che avevano familiarità con un certo tipo di lavoro da ufficio, e il computer rappresentava un elemento nuovo in quel contesto. Tuttavia oggi il computer è uno strumento presente in molti contesti, lavorativi e non; il vantaggio che si aveva utilizzando una metafora basata su un contesto che gli utenti già padroneggiavano non c’è più; il computer non è, inoltre, un elemento sconosciuto. Molte attività sono state ormai ristrutturate profondamente attraverso l’uso del computer (le comunicazioni e il flusso dei documenti, ad esempio), e rimanere legati ad una metafora antiquata limita i potenziali sviluppi dell’interfaccia. Laboratorio di Informatica – Reti di calcolatori

Interfacce grafiche: Magic Cap Magic Cap, della General Magic Laboratorio di Informatica – Reti di calcolatori

Interfacce grafiche: BOB Microsoft BOB (1995). Laboratorio di Informatica – Reti di calcolatori

Interfacce grafiche: Macintosh L’interfaccia grafica dell’Apple Macintosh: il Finder (ver. 0.97) Laboratorio di Informatica – Reti di calcolatori

Interfacce grafiche: Windows 1.0 Un’interfaccia per il DOS: Windows 1.0 Laboratorio di Informatica – Reti di calcolatori

Interfacce grafiche: Windows 3.1 Un’interfaccia per il DOS: Windows 3.1 Laboratorio di Informatica – Reti di calcolatori

Interfacce grafiche: Windows 95 Confronto tra il primo sistema operativo Microsoft *realmente* dotato di interfaccia grafica e il Finder del Mac. Barra dei menu in alto nel Mac, Barra delle applicazioni in basso in Windows. Icone in alto a destra nel Mac, in alto a sinistra nel PC. Cestino sotto le icone principali nel PC, cestino in basso a destra, isolato, nel Mac. L’interfaccia del Mac è costruita secondo dei criteri precisi; la priorità data dalla disposizione delle icone è voluta, così come la barra dei menu (centralizzata per tutte le applicazioni, in modo da risparmiare spazio) in alto. E via dicendo… (per riferimenti: http://www.mackido.com) Laboratorio di Informatica – Reti di calcolatori

Interfacce grafiche: metafore L’uso – e l’implementazione - di una metafora pone di fronte, tipicamente, a tre problemi: nel dominio “virtuale” sono possibili azioni impraticabili in quello reale; nel dominio reale sono possibili azioni impraticabili in quello virtuale; alcune azioni sono presenti in entrambi i domini, ma funzionano in maniera diversa. Consideriamo di paragonare un programma di elaborazione testi ad una macchina da scrivere. Primo caso: l’utente non penserà mai che esiste un comando “sostituisci”.. Laboratorio di Informatica – Reti di calcolatori

Interfacce grafiche: il desktop Si tratta di un’interfaccia a manipolazione diretta: esistono degli oggetti discreti sui quali l’utente può compiere delle azioni (spostarli, trascinarli, gettarli nel cestino..). La metafora associa questi oggetti ai loro corrispettivi nel mondo reale; l’utente ha già un’idea di quali azioni è possibile compiere. Discutere dei problemi legati alle interfacce ispirate al mondo reale, e all’uso di metafore in genere. Laboratorio di Informatica – Reti di calcolatori

Interfacce grafiche: manipolazione Il problema delle interfacce a manipolazione diretta è che l’utente deve manipolare direttamente ogni oggetto… per compiti ripetitivi, è frustrante; per compiti complessi, a volte non tutti i passaggi sono noti. Esempio di compito ripetitivo: rinominare tutti i file in una directory. Compito complesso: è il problema delle metafore, di quanto l’utente si aspetta e delle funzionalità aggiuntive, inattese, che pure sono presenti. Alcuni passaggi necessari potrebbero non essere derivabili dalla metafora. Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Elementi grafici Le interfacce attuali, basate sulla metafora della scrivania, sono di tipo WIMP. Gli elementi che le compongono vengono detti widget. Una “widget” è un elemento che fornisce informazioni all’utente o gli permette di interagire con il sistema operativo o con un’applicazione. Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Interfacce grafiche Esempi di widget sono le icone, i menu, i pulsanti, le finestre, le barre di scorrimento, le caselle di testo… Solitamente è il sistema operativo a mettere a disposizione un insieme di widget. Laboratorio di Informatica – Reti di calcolatori

Laboratorio di Informatica – Reti di calcolatori Interfacce grafiche Macintosh Windows Citare la possibilità, in ambiente Unix, di avere Desktop multipli – e dunque la necessità di poter rendere visibile una finestra in ciascuno di essi, e non solo in quello in cui è stata creata. In Windows XP le widget sono diverse, ma la disposizione è la stessa. Linux (KDE) Laboratorio di Informatica – Reti di calcolatori