joetex - percorsi didattici

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "joetex - percorsi didattici"

Transcript

1 joetex - percorsi didattici Il Sistema operativo Sommario Il sistema operativo La struttura gerarchica di un OS I moduli I sistemi monoprogrammati o multiprogrammati I tempi dell'elaboratore Sistema dedicato, batch o multiutente Sistemi per la gestione delle reti Transazionali, Real Time Processi e interrupt Modelli di OS che creano macchine virtuali Il nucleo Interazione tra i processi Misura delle prestazioni La gestione della memoria La gestione delle periferiche L'Interprete dei comandi I software di sistema Proteggere il computer Breve storia di Unix Caratteristiche primarie dell'os Organizzazione fisica dei file Organizzazione logica dei file Avvio del sistema Connettersi al sistema operativo Interfaccia grafica utente Amministratore di sistema Gestione delle periferiche Le code di stampa DOS FIle e Directory Organizzazione di DOS dei file su disco Struttura e Sintassi dei comandi I comandi comuni della shell Combinazioni di Comandi File speciali Crea un file.bat per spostare file da una directory ad un'altra Creare un file Bat di spegnimento macchina o di riavvio Aprire un file mediante un file BAT Script Comandi di DOS Open Source Preliminari di Installazione Partizionamento dei dischi rigidi Tattiche di partizionamento Ottenere informazioni mediante bash Struttura dei comandi Comandi di gestione file Il sistema operativo Il sistema operativo (Operating System, OS) è un insieme di programmi, di comandi e istruzioni di base del computer che servono per consentire l'uso delle parti meccaniche (periferiche) mediante l'elaborazione del processore. L'uso dell'utente avviene mediante processi di interpretazione dei comandi inviati alla macchina. L'ampliamento di altri demoni (servizi) del computer deve essere possibile mediante opportuna programmazione del sistema operativo che deve, all'uopo, disporre di un "device driver" (pilota del dispositivo). L'inserimento di altri programmi di sys (sistema) o applicativi, è attualmente gestito in "automatico" dall'os stesso che utilizza un tecnologia detta "plug & play" (inserisci e utilizza). Per consentire il dialogo tra OS, programma ggiuntivo plug & play è necessario che il l'hardware (si utilizzerà l'abbreviativo HW) coinvolto sia disponibile alla ricezione dell'elemento di collegamento. Per questo motivo le parti meccaniche, pur non essendo identiche, predispongono una base comune che consente la www joetex.eu Pag. 1 di 109

2 comunicazione coll'os e con i driver. Un Open System (sistema aperto) è un sistema operativo creato per recepire su una considerevole gamma di componenti hardware. I sistemi proprietari, pur avendo una ristretta possibilità di interagire con i componenti HW (hardware), si sono affermati sul mercato per le qualità di individuare e risolvere problemi, per l'efficenza e facilità d'uso. I sistemi operativi si evolvono di pari passo con le componenti meccaniche diventando soggetti a rapida obsolescenza. Le conseguenze sono diverse: 1. le aziende e gli utenti devono investire denaro per essere al passo con l'evoluzione tecnologica; 2. i nuovi programmi devono essere compatibili con macchine non nuove, così come i nuovi HW devono essere compatibili con i nuovi programmi; Il sistema aperto trasforma i programmi dei grandi sistemi centralizzati (legacy systems) verso sistemi basati su reti (sistemi distribuiti). Questa operazione di viraggio verso forme che consentono ai diversi sistemi di dialogare pur nella loro specificità di programmi proprietari, viene chiamata "downsizing", ossia abbassamento della taglia dei sistemi, un abbassamento che consente, appunto, il collegamento a mezzo di rete. La struttura gerarchica di un OS Un OS è composto da programmi di tipo diverso che svolgono funzioni diverse. Ogni tipo di programma esegue un compito in una gerarchia preimpostata di organizzazione. I moduli sono insiemi di programmi che contribuiscono, ciascuno a suo modo, a risolvere il medesimo problema con un frazionamento dei compiti. I moduli vengono utilizzati dall'os senza che l'user (utilizzatore del computer) sia a conoscenza di ciò che avviene. I moduli operano mediante procedimenti standard detti PRIMITIVI, ossia servizi che operano con procedure consolidate, efficienti e standardizzate. L'esecuzione dei comandi viene attuata mediante una politica gerarchica di azioni di programmi: Primitive del Modulo >>>>>>>>>>>>>>>>> Verso altri moduli MODULO >>>>>>>>>>>>>>>>>>>> oppure verso la macchina I moduli I moduli si adoperano per consentire ai dispositivi HW di recepire le istruzioni dei comandi; questo procedimento si definisce Virtualizzazione dei dispositivi, trasformando gli stessi in macchina "astratte" o "macchine virtuali" in grado di eseguire operazioni anche complesse come se fossero elementari, definite in modo logico piuttosto che fisico. Un'operazione logica è un comando che mediante istruzioni di vario livello consentono alle componenti hardware di eseguire il comando mediante operazioni fisiche. www joetex.eu Pag. 2 di 109

3 Ad esempio nel comando "stampa" i moduli di alto livello determinano cosa inviare alla stampa e quale periferica HW utilizzare. I moduli delle primitive alle quali appartengono questi dati iviano il comando ai moduli di livello inferiore e così via sino al livello che interagisce con l'hw. Il modulo è un elenco di routine che implementano meccanismi fisici utili a eseguire problemi logici di un determinato tipo. I moduli dialogano tra loro mediante primitive: se si comanda una primitiva X questa esegue un lavoro Y mediente una serie di istruzioni contenute al suo interno. Se un sistema operativo è composto da una collezione di moduli, si può applicare a diverse macchine sostituendo soltanto le primitive di basso livello che corrispondono al funzionamento delle parti meccaniche. Il grado di "Portabilità" di un sistema operativo è la sua capacità di essere applicato a macchine diverse. U alto grado di portabilità lo possiede Unix che si adatta a tutte le macchine in commercio. La portabilità può essere di tre livelli: 1. Usabilità a basso livello dei dati (file prodotti dall'user) su diverse macchine; 2. Usabilità del sistema operativo su macchine differenti dopo avere ricompilato il codice sorgente in modo da adeguare il sistema alla macchina; 3. Usabilità di applicativi su macchine diverse Il grado di portabilità è inversamente proporzionale al lavoro necessario al funzionamento su macchine diverse. I sistemi monoprogrammati o multiprogrammati Gli OS sono stati progettati in due modi diversi: 1. modo della monoprogrammazione; 2. modo della multiprogrammazione. Entrambi i sistemi si rivolgono a dialogare con le componenti meccaniche: Unità centrale di processo Central Processing Unit (CPU); Memoria Centrale (MC) di accesso casuale, RAM Random Access Memory; Unità di memorizzazione di massa (MM); Periferiche in Input e Output (I/O) Le aziende produttrici di hardware producono anche le primitive che consentono all'os di dialogare e fare quindi loro compiere lavoro per le quali sono destinate. CPU CPU Memoria Memoria Memoria >> di massa >> di massa centrale ^ ^ ^ v v v Periferica Periferica Periferica in-out >> in-out >> n-out L'OS viene caricato sulla RAM perché deve essere sempre presente per consentire il dialogo tra le varie www joetex.eu Pag. 3 di 109

4 componenti del computer. La RAM conserva, per tutto il tempo che la macchina resta accesa, le primitive in codice macchina e le rilascia quando la macchina riceve il comando di spegnimento. Un OS si definisce Monoprogrammato se contiene al suo interno una serie di informazioni in codice macchina che vengono caricate sulla RAM senza intervento di utenti remoti. L'OS monoprogrammato è composto da codice utente e viene elaborato dalla CPU che primariamente è comandata a prelevare le informazioni da una tabella che contiene la sequenza corretta dei processi da attivare. Questa tabella è il registro contatore del programma monolitico che provvede a indicare alla CPU quale è la sequenza di istruzioni da elaborare. L'OS multiprogrammato consente l'uso dei tempi inattivi per istruzioni di diversi user. Per consentire questo, ossia per consentire agli user remoti di accedere ad un processo nei tempi inattivi, il sistema operativo deve possedere una procedura di accesso di tipo gerarchico che decida a quale istruzione dare la priorità, che riconosca la provenienza dei dati di input per impedire che i processi si confondano in ragione dei vari utenti, che risolva i conflitti relativi alla richiesta multipla di accesso ad una medesia periferica (ad esempio una sttampante). I tempi dell'elaboratore Quando per avvio della macchina o per intervento dell'user si attiva un processo di lavoro della macchina, il processo può essere detto comando che mediante istruzioni viene eseguito dall'os. L'esecuzione di una istruzione si chiama system call, ossia la richiesta di intervento dell'appropriata routine di sistema. Al momento dell'elaborazione dell'istruzione il programma utente viene moentaneamente sospeso per dare accesso alla nuova chiamata; nel frattempo le operazioni in corso vengono momentaneamente sospese e riprese dopo l'esecuzione. Perché sia possibile accendere sempre la macchina, è necessario che i registri attivi vengano sempre chiusi correttamente ossia salvati sempre nell'area di memoria che sono loro necessarie. Se i registri dovessere occupare area di memoria diversa, probabilmente il processore non avrebbe modo di trovare le istruzion in sequenza corretta. I moduli del sistema operativo impediscono il caricamento in aree di memoria diverse da quelle predefinite. Quando il programma utente completa il caricamento (copia dei file in memoria RAM) allora il processore è disponibile per altre attività. I tempi delle attività sono i seguenti: 1. Esecuzione del programma utente; 2. esecuzione di istruzioni del sistema operativo; 3. inattività, in attesa di input. Il tempo inattivo, sia pur esso il tempo che intercorre tra una digitazione della tastiera ed un'altra, è di gran lunga maggiore rispetto al tempo di esecuzione dellìos e del programma Utente. Infatti il tempo che intercorre tra due battiture di tasti è vicino ai decimi di secondo, mentre l'esecuzione della CPU corrisponde ai miliardesimi di secondo. Durante il tempo inattivo la CPU potrebbe effettivamente eseguire altre istruzioni. Considerando che il tempo inattivo può essere utilizzato da altri user, il compito di gestirlo è affidato al sistema operativo che decide, utilizando una parte del tempo inattivo stesso, quali istruzioni mandare in elagorazione. Il carico di lavoro assegnto alla CPU che impiega tempo per elaborare i file di routine che decidono quali istruzioni processare e per processare le istruzioni stesse, si chiama "Overhead". Sommare i tre tempi significa ottenere il Tempo Totale di una macchina. Durante il Tempo Totale la www joetex.eu Pag. 4 di 109

5 macchina non è disponibile per altri utenti. Esistono file di programma che organizzano le interruzioni di elaborazione della CPU perché seguono una gerarchia di priorità; per questo motivo alcune istruzioni meno importanti vengono sospese e riattivate quando la CPU termina il processo primario. "Un programma utente è equivalente ad una routine di sistema, infatti entrmbi sono costituiti da istruzioni in codice macchina da eseguire in un certo ordine". Il time sharing è un tempo condiviso tra divesi utenti o programmi. Il time slice è una fetta di tempo massimo da assegnare agli utenti o programmi che richiedono l'uso del processore. Il time sharing viene applicato a singoli dispositivi per gestire la CPU. La CPU viene assegnata ad un determinato utente e allora succede quanto segue: 1. il programma utente termina e assegna il tempo ad altro programma 2. il programma utente chiede di utilizzare altre operazioni che coinvolgono altre periferiche, ed in questo modo non concede nulla ad altri. 3. scade il time slice Quando scade il time slice, ossia il tempo massimo assegnato all'utente predefinito che deve lasciare tempo anche ad altri utenti secondari, si assegna un secondo time slice (fetta di tempo, o tempo massimo di un user) ad altro utente.per assegnare un time slice ad altro user la CPU viene occupata da un'istruzione dell'os che occupa un tempo detto tempo di riassegnamento. Questa assegnazione dell'os di assegnare tempo del processore ai programmi (anche di diversi user) si chiama politica di gestione, che può avvenire anche con una sorta di rotazione detta round robin. Il programma di round robin assegna il time slice e, al termine del processo di ogni time slice, assegna il tempo inattivo ad un'altra richiesta. Va anche detto che i time slice possono essere di grandezze diverse in ragione delle priorità assegnate dal sistema operativo. Un sistema operativo di buon livello distribuisce i time slice di una grandezza tale per cui da un lato non si eccede nella grandezza di uno solo, con la conseguenza di lasciare inattivi altri programmi, dall'altro non si fraziona eccessivamente il tempo in time slice tali da dovere assegnare anche tempo al riassegnamento (sappiamo che tra un time slice ed un altro viene elaborato il processo di riassegnamento che, a sua volta, occupa tempo sottraendolo ai time slice stessi). ATTENZIONE fine Sistema dedicato, batch o multiutente www joetex.eu Pag. 5 di 109

6 Sistema dedicato Il sistema dedicato è quell'elaboratore che pè stato progettato per essere usato da un single user, ossia da un singolo utente. I PC MSWindows erano multiutente e le workstation. I primi Personal Computer di MSWindows con DOS (Disk Operating System) erano appunto monoutente sino all'avvento di MSWindows 2000P. Unix è stato il primo grande sistema operativo pienamente multiuser. Oltre che per diversi utenti, unix consentiva, grazie ai time slice di cui si è parlato, di utilizzare contemporaneamente diversi programmi, o task. L'OS è dunque multitasking. Dicesi multithread un OS che prevede meccanismi di protezione dei programmi che frammentano i processi, un lavoro, una transazione o un task in thread che vengono processati sincronizzandosi soltanto all'occorrenza. Un buon OS consente la sincronizzazione dei thread impedendo le interferenze. Gli ambienti multitasking spesso utilizzano interfacce grafiche che occupano uno spazio determinato dello schermo. In questo modo i vari task sono visibili simultaneamente. Per fare questo l'os si preoccupa di condividere procedure e funzioni di diverse applicazioni. Questa condivisione avviene mediante l'uso delle librerie a collegaemnto dinamico DLL (Dynamic Link Library). Una libreria a collegamento dinamico, ad esempio, riguarda la possibilità di archiviare file con il medesimo procedimento. Se scrivo un testo con Blocco Note e intendo salvarlo, non faccio altro che utilizzare la medesima libreria di un altro programma editore di testi (ad esempio OpenOffice Writer). all'uopo si apre una finestra di dialogo (dialog box) che presenta diverse opzioni, relative al luogo in cui salvare e al nome da assegnare. I moduli dedicati a librerie a collegamenti dinamici contentono primitive specifiche all'uso che con esse si deve fare. Mentre i thread sono attivi, il sistema operativo manda in esecuzione altri programmi in background, o sottofondo. Possono agire in background la stampa di un documento, l'ora del desktop, un aggiornamento antivirus, una richiesta di connessione ad un provider mediane scheda di rete o modem, una ricerca di file o altro ancora. Sistema batch Il sistema a quantità determinate di lavoro, lotti di lavoro o batch, consente all'utente di programmare il lavoro da svolgere mediante i programmi e poi lancia in esecuzione quanto richiesto. Con il sistema batch manca l'interattività con la macchina che svolge una quantità di lavoro per volta, impedendo la momentanea interruzione che abbiamo visto essere tipica del frazionamento in time slice. Il sistema batch può essere comodo per liberare dal lavoro presso la macchina l'utente che può essere utilizzato in altro compito. Il sistema batch impedisce i tempi morti dovuti all'input (ma anche dell'output) dell'operatore. Il dispositivo di output che prevede la fase di stampa si chiama elaboratore di canale. L'elaboratore di canale, comandato da un programma, può essere indirizzato anche verso un altro tipo di periferica. Per questo motivo l'elaboratore di canale fa utilizzo di un buffer, una specie di magazzino nel quale immagazzinare le informazioni da mantenere in memoria. Ovviamente il buffer deve essere dotato do sincronizzatore di dati in entratra (nel buffer) e di dati in uscita. Le fasi della programmazione del lavoro con sistema batch sono sostanzialmente tre: 1. Preparazione dei lavori o jobs da parte dell'operatore mediante sequenza ordinata, detta job stream, di operazioni che il computer deve svolgere; 2. lavoro autonomo del computer senza la presenza dell'utente; 3. ritiro dei risultati; Talvolta il lavoro standard da realizzare è memorizzato su file che contiene il job-stream. Per questo motivo un semplice comando può avviare un procedimento standard di lavoro senza dovere programmare orgni volta un joe-stream, ma basta avviare il file memorizzato, indicare il cliente o i clienti sui quali si www joetex.eu Pag. 6 di 109

7 vuole creare il lavoro, eventualmente indicare il tipo di processo finale (stampare documenti, inviare fax ad una determinata ora, uploadare documenti in una rete riservata o altro. Il sistema batch può essere di tipo monoprogrammato oppure multiprogrammato; nel secondo caso riesce ad implementare diversi joestream e la CPU viene gestita con partizioni di tempo. Le partizioni di tempo presentano, tra gli altri criteri, quello che un processo corto può avere la priorità su uno tmporalmente più lungo per essere terminato senza interruzioni. In questo modo i vari time slice si mettono tutti in coda uno dietro l'altro e aspettano il turno di elaborazione della CPU. Nei main-frame, ossia nei computer di grandi dimensioni, è possibile che siano presenti anche diverse CPU, tra loro collegate che possono compiere i job strems parallelamente. Il sistema operativo provvede anche a gestire gli spazi di assegnazione e quindi a proteggere i vari processi. In alternativa agli OS multiprogrammati si possono utilizzare quelli monoprogrammati che esegueno in sequenza predeterinata tutti i job-stream. Rispetto ai sistemi operativi dedicati o monoutenti, i sistemi batch devono possedere moduli di servizi che consentano: 1. la gestione delle code dei job in ingresso e delle code di stampa; 2. la protezione degli utenti e degli accessi alle elaborazioni; 3. l'assegnazione dei meccanismi delle risorse. il termine batch viene utilizzato anche per sequenze di comandi che chiedono l'esecuzione. Nel sistema operativo DOS si possono scrivere dei file di testo con Blocco Note e salvarli con estensione.bat; questi file sono eseguibili con un semplice doppio clic e producono un'istruzione che viene eseguita dal Sistema operativo. Sistema multiutente Il sistema multiutente è un sistema complesso, impostato sul time sharing dell'uso della CPU. Il time sharing consente l'utilizzo sequenziale delle risorse del processore spezzettando il tempo del suo uso e dedicandolo a diversi utenti. Ovviamente ogni user deve essere in possesso di una periferica videoterminale con la quale interagire con il sistema di base. Le risorse della CPU vengono assegnate a turno ai vari users in ragione di una graduatoria di priorità stabilita dal sistema operativo. Se il processore ha unelevata capacità di elaborazione e i time slice sono abbastanza veloci, ogni user ha la sensazione di lavorare come single user. www joetex.eu Pag. 7 di 109

8 Perché la CPU funzioni in modo adeguato è opportuno risparmiare i tempi di riassegnaento e lasciare i time slice di una certa grandezza. Nello stesso tempo il tile slice deve essere abbastanza piccolo per impedire lunghe attese da parte degli utenti. Per questo motivo è opportuno che gli utenti vengano serviti in un tempo ragionevole; se ad esempio vi sono 1000 processi richiesti alla CPU è opportuno che il time slice non superi 1/1000 di secondo. In ogni caso i TS (Time Slice) devono essere più lunghi del tempo di riassegnamento per impedire perdite di tempo inutili. Il tempo di riassegnamento è una routine di sistema. Un eccesso di routine di sisema determina il classico system overload, ossia un eccessivo tempo assegnato alle routine di sistema e non ai TS (System overload: situazione nella quale la CPU è troppo impegnata nelle istruzioni di routine spendendo poco tempo per le istruzioni di programmi). Ovviamente maggiore è il numero delle istruzioni che la CPU compie in un secondo, maggiore è il rendimento del sistema operativo. Il numero delle istruzioni al secondo è indicato da un parametro detto MIPS (Million Instructions Per Second). Direttamente proporzionale alla capacità del processore deve essere la memoria Centrale che deve essere sufficientemente grande per contenere tutti i processi attivi del sistema operativo più quelli derivanti dalle istruzioni richieste dai vari users. Sistemi per la gestione delle reti, Transazionali, Real Time I sistemi operativi per le reti I sistemi operativi per le reti, detti OS Server, sono particolarmente complessi e atti alla distribuzione di servizi alle macchine client. Perché il sistema funzioni sono necessarie le seguenti condizioni: 1. rispetto dei protocolli fissati da organismi internazionali e quindi identici su tutta la rete; 2. creazione di utenti di reti con svariati permessi di agire nei confronti dei vari documenti presenti in rete; 3. regolamentazione degli accessi degli users mediante password, protezione dei dati, attivazione dei servizi di sicurezza, prevenzione attacchi inforatici dall'esterno e dall'interno; 4. utilizzo di servizi (ad esempio stampante di rete) e delle risorse del server che li distribuisce mediante i permessi; 5. collegamento della rete LAN interna a quella esterna Internet o Extranet. Linux e Unix sono sistemi operativi per le reti costruiti su architetture Server/Client. Su entrambi i tipi di macchine sono presenti i servizi offerti, i permessi di accesso ai dati, la condivisione dei documenti. I sistemi Transazionali I sistemi transazionali sono quesi sistemi che consentono di registrare le transazioni di un'azienda. Ad esempio se in un supermercato un registratore di cassa verifica e contabilizza la vendita di un x prodotto, automaticamente il sistema operativo transazionale esegue le seguenti operazioni: aggiornamento del libro di magazzino (la merce ora non è più "dentro"); aggiornamento del libro profitte e perdite nelle voci di vendita merci; aggiornamento del registro del bancone di vendita; scrittura sul giornale di cassa che registra economicamente tutte le vendite; eventuale inoltro ai fornitori delle richieste di acquisto merce per riduzione della quantità in magazzino di merce oltre limite previsto. www joetex.eu Pag. 8 di 109

9 Se uno di questi aggiornamenti non dovesse risultare registrato, l'updating deve essere rieseguibile annullando il precedente e rieseguendo l'operazione. L'operazione di annullamento degli aggiornamenti riusciti si chiama rollback (gira indietro) Sistemi Real Time I sistemi Real Time (Tempo reale) sono quei sistemi operativi che forniscono risposte in intervalli di tempi determinati accettabili in ragione del contesto. Ad esempio l'attesa di pochi secondi per l'accettazione di un pagamento mediante carta di credito può essere considerato un intervallo di tempo accettabile sia per l'azienda che per il cliente. Se invece una centrale nucleare in pochi secondi produce una fissione atomica non adeguata al sistema, allora il computer di quella centrale deve possedere un Real Time decisamente diverso e un intervallo di tempi di millesimi di secondo. Un sistema operativo che non fornisce le operazioni in Real Time determina processi non accettabili, quindi di errore. I Processi e interrupt Il Processo è un insieme di azioni da eseguire in sequenza; l'esezuzione è affidata al Processore CPU; le azioni stesse contengono dati che devono essere elaborati. Quale è la differenza tra Processo e Programma: 1. il processo modifica nel tempo, partendo da una situazione iniziale ad una finale come traduzione di algoritmi; 2. Il processo è necessariamente sequenziale, segue in modo rigido una sua procedura di esecuzione, mentre il programma permette anche salti e cicli. La CPU, o Unità di elaborazione Centrale, esegue i processi, ossia opera calcoli e rispedisce in output l'operazione compiuta. Fotografiamo i processi attivi in un determinato momento Il sistema operativo ha dunque il compito di organizzare l'interazione tra le parti (Processore, memoria centrale, memoria di massa, diversi Syste call ecc.). www joetex.eu Pag. 9 di 109

10 Quando si attiva un programma, si rendono attivi i processi ad esso collegati che possono essere ridotti ad uno o restare diversi insieme (se un programma segue una logica modulare, ossia si appoggia ad altri programmi, per ogni piccolo programma sarà attivato un processo). L'OS inteviene pianificando gli accessi dei processi alla CPU e quindi assegna un nuovo processo quando si verificano uno dei seguenti motivi: 1. il processo termina, il processore ha completato le operazioni, risponde al sistema operativo che è pronto per un nuovo processo, il sistema invia un nuovo processo da elaborare; 2. il time slice termina, ossia preventivamente il sistema operativo aveva trasformato i processi in pezzetti da elaborare, detti time slice; ovviamente al termine del time slice l'os mediante un brevissimo tempo di riassegnazione provvede alla elaborazione di un nuovo time slice; 3. il processo richiede un intervento di Input e output dell'user, per cui sino a quando l'user non inserisce dati per il completamento del processo stesso, la macchina si mette in attesa, tempo che viene speso per altri processi. Vediamo, quindi, quali sono gli stati in cui può restare un processo. Stati di un processo: parcheggio: sostanzialmente in attesa di essere elaborato; pronto: quando attende che gli venga assegata la CPU per l'elaborazione; esecuzione: il processo è in corso di elaborazione; attesa: quando completata una prima parte del processo, si attende l'input dell'utente; terminazione: quando il processo è completato e viene spostato via dalla CPU e rispedito come output. Vediamo i passaggi di stato di un processo: da parcheggio a pronto: il processo viene spostato in memoria centrale in attesa della elaborazione da parte della CPU; da pronto ad esecuzione: liberata la CPU, questa si occupa del nuovo processo; da esecuzione a pronto: per termine del processo o della time slice; oppure da esecuzione ad attesa: la macchina attende input dell'utente; da attesa a pronto: completata l'operzione input/output il processo viene nuovamente messo in stato di pronto per ottenere l'elaborazione della CPU; da pronto a esecuzione: situazione simile alla precedente; da esecuzione a terminazione: il processo è elaborato in modo completo. Il Processo si dice Asincrono quando viene interrotto per determinare un input/output da parte dell'utente. Siccome il tempo dell'utente non è prevedibile, il sistema operativo lo pone in attesa. Un esempio di processo asincrono è quello di salvataggio di un file. Quando si avvia il processo di salvataggio, solitamente si avvia un processo che richiede l'intervento dell'user che interviene mediante una dialog box. L'utente inserisci dati (input) quali ad esempio la scelta della directory nella quale salvare i dati. Questo input genera un piccolo avanzamento del processo. L'inserimento del nome del file e il successivo "Salva" dell'utente determina un passaggio di stato da attesa ad esecuzione. Alla fine del processo di salvataggio l'operazione si può considerare terminata. A causa di priorità assegnate ai processi, è possibile che un processo in esecuzione venga temporaneamente sospeso per far posto ad un'altro prioritario richiesto dall'utente. In questo caso l'os si avvale di un meccanismo detto Interrupt (di interruzione). Gli interrupt non sono tutti uguali e segueno una gerarchia di priorità stabilita dall'utente e poi dalla macchina. Ovviamente i dati già elaborati del pricesso che riceve un interrupt non vanno persi, ma conservati in una parte del processore che salva i registri della CPU salvando anche il contatore del programma che contiene gli indirizzi dei processi e delle istruzioni da seguire. A seconda del tipo di interrupt che si attiva, il sistema operativo aziona routine che provvedono a concordare delle operazioni che consentono alla macchina di cintinuare a lavorare. Ad esempio se si verifica un errore del processo di www joetex.eu Pag. 10 di 109

11 stampa (mancanza della carta) il processo deve essere arrestato; la ruoutine di sistema lancia un messaggio che avviso l'utente: "manca la carta! Inserire la carta e Continuare" - oppure "Annulla processo di stampa". Un altro tipo di interruzione è quella relativa all'interruzione del time sharing: la sospensione o l'annullamento di un processo determina la riformulazione del time sharing, che deve cambiare ordine sequenziale di inserimento nella CPU. L'interrupt del time sharing è un interrupt sincrono, e assume grande importanza al livello del linguaggio di programmazione Assembler (di basso livello). Programmando in Assembler, ad esempio, l'os riceve la richiesta di lettura di un file, produce un interrupt, invia l'indirizzo del file al processore che provvede a caricare in memoria centrale copia del file. Altrimenti l'os può presentare un comportamento diverso, chiamato override, o ridefinizione dei processi. Questo procedimento consente la riscrittura del comportamento normale del sistema, consentendo l'elaborazione del processo dopo uno specifico interrupt. Gli interrupt possono essere: 1. asincroni, generati soltanto dai pezzi meccanici utili a informare la CPU che gli eventi non sono in sintonia con il suo orologio interno; 2. sincroni, generati da hardware o da software che informano la CPU di eventi interni ai processi stessi e quindi in sintonia con l'orologio di sistema. ========================================================== ========================================================== ========================================================== ========================================================== ========================================================== ========================================================== ps_visualizza_id_processo ps visualizza i processi in corso ps -l fornisce info maggiori joetex@pcjoetex:~$ ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S wait4 pts/0 00:00:00 bash 0 R pts/0 00:00:00 ps ps processi I processi sono identificati da un numero assoluto, non ripetibile: il PID Tranne init, tutti i processi sono genrati da altri, per cui si parla di PPID ossia Parent Process IDentificator Il progesso generatore si chiama parent e quello generato si chiama child. Un processo è caratterizzato dai seguenti aspetti: PID, il codice eseguibile www joetex.eu Pag. 11 di 109

12 la posizione di esecuzione i dati che gestisce i file aperti l'ambiente di esecuzione le credenziali. I processi possono essere condivisi da più utenti utilizzatori, ad esempio, dello stesso programma. I processi condivisi si definiscono shared Lo stato dei processi è di tre tipi: stato Running, attivo ed in uso, processo in esecuzione stato sleeping, inattivo ma pronto all'uso stato sombie, inattivo ma praticamente in via di conclusione, in attesa di definitiva chiusura da parte del parent. Siccome diversi processi sono in esecuzione contemporaneamente, ogni processo include un numero di priorità da -20 (massima priorità) a 19 (minima priorità), che indica alla CPU time quanto deve dedicare del suo lavoro al processo. Comandi utili ps -l (ed altre opzioni) pstree (visualizza ad albero i processi) top [opzioni] per visualizzaziione in corso dei processi Gestione dei processi: Per visualizzare il tipo di segnale da inviare al processo oppure il numero ad esso collegato si utilizza il comando Kill -l root@pcjoetex:/home/joetex# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 33) SIGRTMIN 34) SIGRTMIN+1 35) SIGRTMIN+2 36) SIGRTMIN+3 37) SIGRTMIN+4 38) SIGRTMIN+5 39) SIGRTMIN+6 40) SIGRTMIN+7 41) SIGRTMIN+8 42) SIGRTMIN+9 43) SIGRTMIN+10 44) SIGRTMIN+11 45) SIGRTMIN+12 46) SIGRTMIN+13 47) SIGRTMIN+14 48) SIGRTMIN+15 49) SIGRTMAX-15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX Sintassi di invio dei segnali al processo: kill -numero 31 oppure dicitura SIGSYS pid (process identificator) killall -opzione (numero o dicitura ad esempio -14 oppure -SIGALARM) Ctrl + z interrompe il processo che può essere: 1. riattivato in foreground fg pid 2. riattivato in background bg pid www joetex.eu Pag. 12 di 109

13 Modelli di OS che creano macchine virtuali Il sistema operativo per poter lavorare con il time sharing e ripartire più processi da eseguire parallelamente, è programmato per dividere la macchina in diverse macchine, che sono ovviamente soltanto virtuali e disposte per eseguire un determinato lavoro. Inoltre alle macchine virtuali vengono assegnate caratteristiche di priorità con un gerarchia predefinita. Una macchina virtuale è un oggetto, composto da una macchina più semplice ed in grado di eseguire un numero di operazioni. L'interpretazione logica delle operazioni della macchina virtuale è affidato al modulo. In questo modo l'os crea una gerarchia di macchine virtuali, ciascuna delle quali soddisfa i seguenti requisiti: 1. risolve il problema dell'utilizzo delle risorse (accesso alla memoria di massa, stampanti, utilizzo della CPU, video terminali ecc.) creando moduli di livello superiore, lasciando accesso anche al modulo inferiore e quindi alla macchina virtuale inferiore; 2. aumenta il numero dei dispositivi disponibili, anche accogliendo un numero di richieste superiore alla capacità del sistema e della macchina di soddisfarli, operando con una politica di scelte e priorità. Modello che esprime i livelli di interazione della macchina con l'utente: Questo modello viene chiamato Modello Onion Skin (buccia di cipolla) ed è stato elaborato da H.M. Deitel nel Questo modello concepisce l'os come composto da strati creati uno sull'altro sulle parti meccaniche. Ogni strato, che è un modulo o livello di macchina virtuale, viene attivato da uno strato sottostante mediante le primitive. Questo determina il fatto che ogni livello legge il modulo sottostante come oggetto e quindi non come componene fisica, ma come macchina virtuale. Il nucleo www joetex.eu Pag. 13 di 109

14 Il processore o CPU è una parrte meccanica che ha la capacità di eseguire operazioni in modo sequenziale. In ambiente multiprogrammato la sequenza delle operazioni è composta da sottosequenze generate dall'attivazone di processi diversi richiamati dall'utente e quindi dalle routine di interruzione. Il time sharing consente quindi l'accesso all'uso del processero da parte dei processi a turno con una logica di priorità determinata dall'os. I moduli del modello macchina non si preoccupa dell'uso del processore, perché mediane il time sharing vengono creati processori virtuali che a turno lavorano tutti per i vari moduli. Il nucleo è quella parte del sistema operativo di livello più basso che esista, più vicino al processore, ed è del tutto asservito al tipo di Hardware. Il nucleo, anche detto kernel, provvede alle seguenti funzioni: Avvia e termina i processi assegna i processi alla CPU sincronizza i processi sincronizza i processi e l'ambiente esterno Include al suo interno le routine di interruzione che attivano il processo di regolamentazione di accesso alla CPU. Le regole che sono alla base all'assegnazione delle priorità ai processi, vengono chiamate politiche di scheduling. La scheduling più semplice è quella detta round robin che prevede una serie di processi in attesa ed una serie di processi pronti. Un algoritmo assegna le priorità: bassa, media e alta. Il gestore dei processi è, a sua volta, un processo, detto scheduler, così come il gestore delle interruzioni che è un altro processo chiamato interrupt handler. In quale il modo il nucleo crea le priorità? Nel seguente modo: assegnando ai processi time slice più lunghi scegliendoli più spesso nelle code di attesa Quando un processo resta inattivo per troppo tempo, viene messo in coda a tutti i processi e impiega del tempo per rientrare tra quelli processati dalla CPU. Interazione tra i processi www joetex.eu Pag. 14 di 109

15 Se un OS opera con processi in linea sequenziale vuol dire che ordina i processi e li mette in file uno dopo l'altro per farli elaborare dalla CPU. Ma un computer non lavora con processi ordinati in modo sequanziale, ma con processi che parallelamente devono essere elaborati. Per gestire le situazioni di processi da elaborare in quasi parallelo l'os utilizza delle primitive appartenente al nucleo ed in particolare utilizzando routine di scheduler. Il processo 1 invia una primitiva send al processo 2 che receive adattandosi all'alternanza. I server che scambiano informazioni con i client presentano nuclei con routine dette socket che svolgono questo compito ad un livello più dettagliato. Ovviamente la qualità del processore deve essere adeguata alle richieste dei client. Il server è per definizione un sistema multiutente e quindi necessita di elaborazione parallela. Per implementazione di un utente, il sistema operativo può chiedere l'esecuzione di un secondo e un terzo processo arrestando momentaneamente il primo. I processi in esecuzione sono detti coroutine e segnalano il completamento mediante un altra primitiva detta Resume. L'immagine di sotto riporta lo schema dei resume tra tre processi, che sono stati abilitati parallelamente e obbediscono alle primitive resume: Coroutine A Resume Coroutine C Coroutine C inizia e si vede elaborato il processo sino al resume B Coroutine B inizia il processo e resume C Coroutine C termina il processo e resume A Coroutine A termina il processo e resume B B termina il processo In questo esempio non abbiamo delle routine in parallelo, ma delle coroutine. Invece un esempio di routine in parallelo si verifica se durante un processo A si cra una fork sul processo B che procede in parallelo sino al suo completamento che prevede il join al processo A. In questo caso si può anche parlare di processo padre e processo figlio. www joetex.eu Pag. 15 di 109

16 Una ulteriore forma di prgrammazione di processi in parallelo è quella che utilizza le priitive cobegin e coend: Si tratta di istruzioni lanciate in esecuzione in parallelo: Una situazione diversa si verifica quando i processi non vengono processati in modo collaborativo, ma concorrenziale ed il sistema operativo è costretto a gestire la sincronizzazione dei processi. Il sistema operativo controlla l agestione dei processi impedendo la perdita dei dati, proteggendo le aree di lavoro e il conflitto di accesso alla CPU. Si può verificare la situazione in cui un processo B non si attiva se non viene prima parzialmente o completamente processo uno B, come una forma di dipendenza. Il primo processo A viene detto Produttore, il secondo B, invece, è detto Consumatore. Fra di loro viene istituito un Buffer che immagazzina i dati del produttore e li conserva per il consumatore. www joetex.eu Pag. 16 di 109

17 Si può verificare che un processo può essere implementato solo ad esclusione di un altro detto antagonista. Trattasi di una relazione di mutua esclusione. Il meccanismo che gestisce la sincronizzazione dei procdessi concorrenti è detto semaforo. Il semaforo è una variabile all'interno della memoria del processo operativo; questa memoria può essere modificata dal processo stesso. Se un processo viene attivato e procede con il metodo del semaforo, lo modifica per avvertire gli altri processi che ad esso si devono attenere per l'elaborazione. I semafori sono per lo più utilizzanti quando i processi attivano sezioni critiche che possono generare conflitti. Le primitive utilizzte dai semafori sono wait e signal. Sequenza logica della procedura wait e signal: Avvio del processo inizio wait verifica del valore del semaforo se 0 o 1 se 0 attendi se 1 entra nella zona critica (hardware che non può essere utilizzato contemporaneamente) fine procedura wait inizio signal se semaforo 1 resta in wait se semaforo 0 fine zona critica fine Situazione deadloack Si verifica quando il processo A che già utilizza la risorsa Hardware 1 chiede l'accesso alla risorsa Hardware 2. Parallelamente il processo B che già utilizza la risorsa Hardware 2 chiede l'accesso alla risorsa Hardware 2, creando una situazione di stallo, detta appunto deadlock. www joetex.eu Pag. 17 di 109

18 Esistono delle condizioni specifiche che portano l'os ad uno stato di stallo: Le risorse hardware non sono condivisibili possesso di una risorsa e richiesta di una seconda attesa circolare, determinata dallo scambio reciproco di possesso e richiesta di risorse del primo e dell'ultimo processo prelazione (preemption) circolare, ossia una risorsa una volta assegnata al processo non può essere sottratta I deadlock vengono risolti dai sistemi operativi nel seguente modo: impedire la formzione di stallo evitando una delle situaziioni precedenti verificare costantemente il controllo dei processi per impedire le situazioni di blocco critico, anche ricorrendo alla terminazione forzata di un processo o mettendo in attesa un'altra controllare i processi prima di porli in implementazione; questo ovviamente rallenta la macchina e produce un sovraccarico di lavoro della CPU. Misura delle prestazioni Esistono diversi metodi di misurazione delle capacità di un OS che interagisce con la CPU. Chiamiamo tale rapporto sisteme di calcolo e analizziamo alcuni metodi di misurazione: CPU Activity (attività delle CPU) - Throughput (attraverso il mettere) - Turnaround time (tempo di giro completo) - Waiting time (tempo di attesa) - Response time (tempo di risposta). Vediamo singolarmente. Considerati modi diversi di misurazione, è opportuno valutare un sistema di calcolo in base a metodi uguali. CPU Activity (attività delle CPU) è una misurazione in percentuale calcolata tra il tempo in cui Opera la CPU e il tempo totale di restituzione dell'output. Può essere diviso in tre tipi di tempi: Tempo Utente, è il tempo di attività relativo ai programmi applicativi azionati dall'utente finale, comprese le routine di sistema utili ad ordinare il lavoro della CPU; Tempo Sistema, è quel tempo impiegato dal sistema operativo in modo automatico indipendentemente dalle richieste degli utenti, ad esempio il time sharing di sistema; www joetex.eu Pag. 18 di 109

19 Tempo Inattivo è il tempo in cui il sistema resta ad aspettare che si verifichino eventi, quali ad esempio il reperimento di informazioni di file da disco; Ls somma dei tre tempi determina il cosiddetto Tempo Totale, che comprende le varie attività e le varie attese degli utenti. La formula utile a determinare la CPU activity è dunque la seguente: CPU activity = (TempoUtente + TempoSistema) * 100 / TempoTotale Throughput (attraverso il mettere) Valuta la quantità di lavoro che si può compiere in un determinato tempo considerato costante. Per lavoro si può intendere la capacità elaborativa della CPU, oppure il numero di processi elaborati e portati a termine oppure quantità di dati input/output trattati. Throughput = Tempo Utente / Tempo Totale oppure Numero Istruzioni / Tempo (costante) Anche valutando i processi eseguiti Throughput = Processi eseguiti / Tempo (costante) Il metodo di misurazione Throughput ha possibilità di applicazioni svariate Turnaround time (tempo di giro completo) Il Turnaround time è il tempo che il sistema di calcolo impiega dall'inizio di un processo alla sua fine. Waiting time (tempo di attesa) è il tempo di attesa di un processo, considerati coostanti numero e qualità dei processi attivi. Response time (tempo di risposta) è il tempo in cui un processo resta nello stato di Pronto prima di essere inviato alla CPU. La gestione della memoria centrale Il secondo livello della macchina virtuale genera una memoria divisa in più parti, preoccupandosi però di simulare ai livelli superiori che la divisione non esista. Questo perché esistendo diversi processi che occupano la memoria centrale, il sistema operativo simula una macchina virtuale che lavora esclusivamente per ogni processo, assegnando loro una quota di memoria centrale non visibile ai livelli superiori. www joetex.eu Pag. 19 di 109

20 Metodo a partizioni fisse Un modo poco pratico del sistema operativo di gestire la memoria centrale consiste nell'assegnare uno spazio fisso a se stesso, ad esempio 152 MB, e il resto della memoria diviso in blocchi uguali. Se ad esempio la memoria centrale è 512 MB, togliamo 152 MB destinati all'os e poi dividiamo in 12 blocchi di 30 MB ciascuno. Questo tipo di utilizzo della memoria non è adeguato in quanto non è possibile attivare un numero di processi superiore a 12; inoltre un processo che occupi pochi MB, anche se per un tempo breve perché il processo è piccolo, di fatto occupa un blocco di 30 MB. Il sistema operativo ogni qual volta viene attivato un processo legge da una tabella di allocazione di processi in memoria e assegna un blocco libero. Quando il processo termina la tabella muta nuovamente rescrivendo come libero il blocco di memoria utilizzato. Metodo a partizioni variabili Il metodo a partizioni variabili utilizza due algoritmi defini First Fit e Best Fit. Di questi due algoritmi il primo valuta la grandezza del programma che è stato avviato e lo carica in una zona sufficientemente grande di memoria per contenerlo, il secondo lo colloca tra i blocchi più piccoli ma ugualmente utile. Questo sistema è pratico ma più lento, in quanto l'algoritmo Best fit deve cercare in base a parametri definiti dal First fit. Per ovviare a questo ritardo solitamente il Best fit non si utilizza e si viene a creare una situazione di programmi che occupano memoria in base alle dimensioni e poi la lasciano libera. Questo processo crea degli spazi vuoti di memoria che sono tra un programma ed un altro. Per evitare che la memoria centrale sia troppo frammentata, un algoritmo interviene per ricompattare i file in memoria unificando le parti libere. L'algoritmo di ricompatrttazione interviene quando sono presenti più di x blocchi liberi non compattati e di dimensioni inferiori ad y allocazioni. Va anche considerato che spesso i programmi sono progettati con una logica modulare: un programma di base abbastanza leggero occupa memoria centrale; questo programma è collegato ad altri che vengono implementati soltanto quando necessario. Inoltre i programmi non necessariamente vengono caricati del tutto per poter funzionare: questa tecnica di funzionamento si chiama overlay (sovrapposizione). COn l'overlay solo una parte di programma occupa memoria centrale, lasciando la restante parte nella memoria di massa. La swap area è quella parte di memoria di massa che sopperisce alle insufficienze della memoria centrale. Lo swap avviene sia utilizzando gli indirizzi della memoria di massa che occupando uno spazio fisico dedicato e creato durante l'installazione del sistema operativo. La swap area rallenta leggermente la macchina perché deve dare il tempo alla memoria centrale di caricare gli indirizzi delle parti che risiedono su memoria fissa. In ogni caso risolvere i problemi di memoria centrale si devono risolvere il più possibile evitando lo swap. La gestione della memoria centrale appartiene al secondo livello della onion skin della macchina virtuale. La divisione della memoria in blocchi avviene mediante due techiche: Paginazione e Segmentazione. La Paginazione Ogni programma viene considerato come diviso in blocchi di dati di uguali dimensioni, detti Pagine Logiche. La memoria centrale viene divisa in pagine fisiche di dimensioni identiche a quelle delle pagine logiche. Un file tabella provvede in modo transitorio a elencare tutte le pagine logiche e ad assegnarle a quelle fisiche. La tabella comprende le seguenti informazioni: se una pagina logica occupa una fisica; se la pagina logica è occupata; quale pqgina logica occupa la pagina fisica specifica; la posizione sul disco della pagina logica; altre informazioni, tra le queli il flag (costituito da un bit) che indica se la pagina è stata www joetex.eu Pag. 20 di 109

21 modificata. Oltre le pagine scaricate dalla memoria di massa e poste su quella centrale, vi sono quello lasciate sul luogo di origine. Il sistema operativo provvede alla scelta delle pagine logiche del programma e questo tipo di operazione è basato sulla politica del sistema stesso. Si aggiunge alla tabella un flag per ogni pagina, che viene azzerato dal sistema periodicamente (add esempio ogni secondo) e il flag diventa 1 quando la pagina viene richiesta. Per ogni pagina logica che appartiene al programma che deve esere caricato in memeoria centrale, si viene a creare nella tabella della paginazione la seguente situazione: un bit P che indica il flag di presenza, ossia P 1 se la pagina logica occupa una fisica, 0 se non la occupa; un gruppo di bit IF che contengono l'indirizzo FISICO sull memoria centrale della pagina occupata; se la pagina logica non occupa quella fisica, le informazioni IF non sono utili; un gruppo di bit ID che contengono l'indirizzo sul Disco della memoria di massa (settore, traccia e cluster); un bit M che indica il flag di MODIFICA: se 0 vuol dire che nessun elemento della pagina logica è modificata dal momento in cui è stat collocata nella memoria centrale; se il bit M è 1 vuol dire che la pagina è stata modificata rispetto al momento in cui è stata caricata in memoria. Se M = 0 in memoria centrale resta la pagina che era stata caricata, altrimenti la memoria ricarica quella nuova modificata. Il vantaggio della tecnica di divisione in blocchi Pagina per l'allocazione in memoria centrale consiste nella semplicità dovuta alla tabella e alla corrispondenza tra pagine logiche (del programma) e pagine fisiche (della memoria centrale). Il difetto risiede sulla politica di creazione delle pagine suddividendo il programma in pagine diverse che aumenta il numero delle chiamate e quindi diminuisce l'efficienza. Ricordiamo una cosa importante: le routine del sistema operativo risiedono anch'esse in memoria centrale le tabelle delle pagine occupano anch'esse parti di memoria. Alcune parti del sistema operativo non vengono scaricate anche se elencate in tabella di Paginazione perché vengono utilizzate raramente. Le informazioni contenenti il nucleo dell'os non vengono mai paginate, in quanto tutto vengono caricate tutte sulla memoria centrale. Il meccanismo che impedisce la paginazione del nucelo o kernel si chiama pinning (ossia puntamento con uno spillo). Segmentazione Al contrario della paginazione, la segmentazione è basata non sulla divisione in blocchi uguali di Pagine, ma in blocchi diversi di grandezza arbitraria, non superiore ad uno standard predefinito chiamato segmento. Un programma di dimensioni ridotte viene collocato in memoria con un solo segmento, mentre con il crescere della complessità del progrmma si utilizzano diversi segmenti, studiati per diminuire il più possibile le chiamate tra segmenti stessi. Le tabelle utili alla creazione di segmenti e che occupano memoria centrale sono ovviamente più complesse di quelle di Paginazione, in quanto devono contenere una quantità di informaziioni diverse dovute alle grandezze diverse dei segmenti. Per ogni segmento che la tabella contiene si devono conoscere le seguenti informazioni: se il segmento è presente in meoria centrale; quale è l'indirizzo di inizio del segmento; l'indirizzo del disco; le dimensioni del segmento. www joetex.eu Pag. 21 di 109

22 La tabella dispone di aree di memoria libere da aggiornare in base alle richieste di utilizzo dell'utente. La tabella contiene i seguenti dati: Un flag di presenza ( un solo bit = 0 oppure 1); l'indirizzo del luogo in cui è stato impiantato il segmento o indirizzo IDI; la dimensione del segmento DS che serve per allocare i dati in memoria e trovare lo spazio fisico sufficiente; l'indirizzo ID sul disco del segmento. Con il metodo della segmentazione la memoria centrale si frammenta facilmente in quanto per segmenti grandi spesso si lasciano liberi porzioni di memoria disponibile; anche in questo caso si può ottenere la ricompattazione mediante algoritmo di una routine che sposta i segmenti in modo che restino adiacenti. Non è poi sempre celere trovare aree libere che siano disposte ad essere occupate da segmenti di grandezza diversa. Esistono OS che utilizzano entrambi i metodi di gestione della memoria, sia di impaginazione che di segmentazione. Le operazioni dell'os di gestione della memoria centrale vengono gestite a livello di Hardware da una unità di gestione della memoria, detta Memory Management Unit (MMU). La MMU contiene un'area di memoria nella quale vengono create le tabelle di mapping, ossia di mappatura di file allocati in memoria centrale. Anche la grandezza massima delle tabelle è prevista dalla MMU. Le CPU che presentano una serie di circuiti utili alla funzione di MMU sono sicuramente più efficienti di altre che invece necessitano di un programma che impartisca le istruzioni di gestione della memoria. Ovviamente l'hardware con maggiori sofisticazioni presenta costi più elevati. La gestione delle periferiche Le periferiche che possono essere collegate alla CPU sono veramente svariate. Il terzo livello del sistema operativo, dopo il nucleo e la memoria centrale, è quello della gestione delle periferiche. L'OS utilizza le periferiche come appartenenti a macchine virtuali, quindi comunicando a vari livelli come dispositivi virtuali. Il sistema operativo mette a disposizione primitive di carattere generico del tipo "leggi", "scrivi", "apri il canale", "chiudi". Queste primitive sono di fatto più potenti delle periferiche stesse. Inoltre il sistema operativo gestisce anche eventuali errori o disattivazioni delle periferiche. Lo spooling è la possibilità delle periferiche di lavorare contemporaneamente per diversi processi; La parola deriva da SPOOL che è un acronimo di Simultaneous Peripheral Operation On Line. Ovviamente quando l'esecuzione fisica della periferica non può essere mandata in output in contemporanea, come quando si invia una stampam si creano delle code di SPOOL che rispettano criteri adottati dal sistema operativo, nel caso della stampa il criterio di priorità è determinato dal momento di invio, ossia First In First Out. www joetex.eu Pag. 22 di 109

23 Il File system Il quarto livello delle macchine virtuali è il file system. Esso provvede alla gestione delle memorie di massa e quindi alla virtualizzazione delle stesse. Sostanzialmente è come se esistesse una memoria per ogni programma avviato e per ogni macchina virtuale creata. Tutto ciò che viene trattato dal file system è sicuramente un file, ossia un archivio, un flusso di dati che vengono memorizzati su disco. Anche le routine (Procedure), comandi, istruzioni, testi, immagini, suoni e filmati sono file. I file di dati sono organizzati in tabelle di record (righe strutturate con una logica interna); le principali funzioni sono le seguenti: gestire al meglio lo spazio disponibile della memoria di massa in ragione delle richieste degli utenti; consentire agli utenti, in ragioni dei permessi degli stessi, di accedere il più rapidamente possibile ai dati archiviati; fornire protezione dei dati mediante permessi (per alcuni utenti alcuni file potrebbero non essere leggibili, nè modificabili né eseguibili); sempplificare le operazioni più comuni come duplicare, cancellare, modificare, spostare, rinominare file e directory (cartelle). Da un punto di vista fisico i metodi di archiviazione sono diversi: disco magnetico (hard-disk, floppy-disk), ù nastro magnetico, cd-rom a lettura e masterizzazione ottica, cd-rewritable a scrittura e lettura ottica, unità di lettura rimovibili USB (Universal Series Bus) I Dischi sono composti da settori, tracce, zone, cluster. I cluster sono unità minime di memorizzazione e possono essere composti da 1, 2, 4 o, raramente, 8 bit. Per accedere alle unità di memoria di massa vi sono i controller (controllori) che azionano apposite testine e motori. I motori si muovono alla ricerca dei file e li mandano al processore per poi spedirli in output. I motori sono mossi da file system che possiedono ID, ossia identificatori. Il file riassuntivo di tutti gli identificatori utilizzati o vuoti di una unità di lettura viene chiamato file system che utilizza le direttrici o tabelle dei descrittori. Per ogni file archivitato (memorizzato) su unità di memoria la direttrice o tabella dei descrittori contiene le seguenti informazioni: identificatore come nome file; informazioni su dove il file è collocato sulla unità di memoria; la data di creazione; il numero di record contenuti; le modilità di accesso al file stesso (i permessi, come abbiamo detto di sola lettura, modifica ed esecuzione). Per impedire che i file restino frammentati essi vengono divisi in blocchi logici e lo stesso fa il file system dell'unità di lettura. In qusto modo i blocchi logici corrispondono a blocchi fisici. Per salvare un file non è quindi necessario che vi sia spazio fisico di byte contigui, ma solo un numero di aree libere con quantità www joetex.eu Pag. 23 di 109

24 di blocchi uguale o superiore a quello del file. Ovviamente anche la direttrice deve contenere le informazioni relative alla divisione dei blocchi, con informazione di inizio del file e di grandezza. La direttrice viene creata sull'unità di memoria e copiata nella memoria centrale insieme al sistema operativo. Quella della memoria centrale viene aggiornata ogni volta che un file viene chiamato, modificato, cancellato o altro, anche memorizzando l'ultimo record scritto. Le modifiche restano permanenti nella direttrice della memoria di massa in modo da poter essere riutilizzata la volta successiva. Per evitare di occupare molta memoria centrale, la direttrice viene divisa in parti che restano in attesa e richiamate soltanto al bisogno. Le varie parti di direttrici sono tra loro correlate. Un file con lo stesso nome può essere presente in direttrici diverse perché l'identificatore è ovviamente diverse in quanto generato in base alla direttrice di appartenenza. Le varie direttrici partono tutte da una direttrice principale detta root. Si tratta di un file che orienta dati e informazioni in rami diversi. Tutto sommato la direttrice è un nodo che devia il libero percorso della direttrice originaria. Il tutto si configura come un albero. Ogni nodo corrisponde ad un file speciale detto direttrice. Root è la direttrice iniziale non contenuta in nessuna direttrice precedente. Le direttrici contengono nomi di file, identificatori come indirizzi dei file, numeri di record che essi contengono, data di creazione e modalità di accesso, come già detto prima. Le direttrici sono nodi non terminali, ossia che possono contenre innumerevoli file; i file sono invece dei nodi terminali, che non possono contenere altri file. La direttrice è chiamata anche directory nel mondo Unix, mentre nel mondo MSWindows solitamente si chiama cartella. Noi li consideriamo sinonimi. Quando si carica in memoria centrale una direttrice contenete altre correlate, queste non vengono copiate in memoria sino a quando non vengono chiamate a rispondere del loro contenuto, oppure quando vengono chimate per essere rinominate, copiate, spostate ecc. Un pathname è un indirizzo di un file lungo l'albero del file system a partire da root e terminare al file in questione. Le direttrici hanno indicazione simbolica che è / slash. Ad esempio il file "cuncettina" che si trova nella direttrice "cugine", che si trova nella direttrice "foto" che a sua volta si trova nella direttrice "documenti" contenuta a sua volta nella direttrice "utenti" dell'albero di root. Ecco come viene scrive il pathname del file "cuncettina": /utenti/documenti/foto/cugine/cuncettina. Un path relativo è invece il percorso del file sull'albero a partire da una directory di riferimento diversa da root, che quindi contiene informazioni relative a quella cartella. Esempio: path a partire dalla direttrice di www joetex.eu Pag. 24 di 109

25 riferimento "cugine_2005" contenute nella cartella "cugine" Si parte dalla cartella "cugine_2005" per andare a quella superiore: il simbolo è../ e siamo già arrivati perché il rile "cuncettina" è proprio "sopra" la direttrice "cugine_2005". La posizione sopra o sotto è relativa alla vicinanza (sopra) a root. Partendo dalla cartella "Documenti2003" il path relativo potrebbe essere il seguente:../ per accedere alla direttrice "utenti". Il simbolo slash indica il nodo interno ad utenti che è documenti e poi ancora slash per la directory "foto" e poi ancora quella "cugine" Per ripetere: in riferimento alla cartella "documenti2003" l'indirizzo relativo è il seguente:../documenti/foto/cugine/cuncettina Il percorso assoluto è invece nuovamente il seguente: /utenti/documenti/foto/cugine/cuncettina Quando un utente si connette all'elaboratore o accende la macchia, in Unix il sistema operativo genera tre file standard, dei quali uno di input, uno di output e uno di errore (stndard input, standar output, standard error). Quindi sia il monitor che la tastiera (input e output per eccellenza) sono assegnate in modo standard sino a quando non inerviene l'utente a chiamare altre periferiche. L'Interprete dei comandi L'interprete dei comandi è un programma che riceve i comandi dall'utente e li invia con un linguaggio predefinito in esecuzione ai levelli sottostanti. L'interprete dei comandi nel sistema operativo Linux è detto anche "Bash", ossia Bourne Angain Shell. SI può quindi anche chiamare solamente "shell" dei comandi. La shell di DOS di MSWindows si chiama Command.com e si esegue in MSWindows XP (che apre una shell virtuale, non effettivamente di sistema) con il comando cmd + invio digitato nella finestra Esegui: www joetex.eu Pag. 25 di 109

26 Attualmente la maggiore parte di compuer utilizzano una "interfaccia grafica" che consente di inviare comandi alla macchina cliccando su icone che sostituiscono la riga di comando della shell. Quando si accende il computer non compare più una scritta nera (il prompt) di una Console, ossia di una shell di comandi. Oggigiorno compare un ambiente grafico chiamato "desktop" che presenta una barra delle applicazioni, un pulsante "Start" e icone da cliccare per aprire programmi ed eseguire comandi. Con le interfacce grafiche si utilizzano finestre (la prima finestra è desktop), icone (piccole immagini che aprono programmi o azionano comandi) mediante puntatore, la freccia classica del computer che viene comandata dal mouse. Il prompt è una riga scritta che richiama il nome dell'utente, della macchina e il luogo in cui l'utente è collocato: joejoe/home/joetex $ In MSWindows XP il prompt è C:\Documents and settings\joetex>_ I comandi vengono inviati con parole "chiave" che azionano degli script (algoritmi strutturati) che impongono alla macchina un lavoro specifico. L'interprete grafico viene oggi considerato l'interprete padre che dà avvio al lavoro delle periferiche mediante un processo figlio. Se il processo figlio termina senza errori, ilprocesso padre può avviare un altro processo di lavoro. Nei sistemi operativi multitasking più processi padri vengono avviati contemporaneamente che a loro volta attivano processi figli come in una tipica struttura ad albero. Anche quando si accedne il computer, si attivano una serie di processi dei quali il successivo è sempre figlio del precedente. Quando si pigia il pulsante push di accensione si attivano una serie di processi in successione. La prima ad essere attivata è una memoria ROM (reed only memory) che permane nel computer e provvede ad attivare il processore e ad esaminare le periferiche. Dopo la verifica delle periferiche parte un IPL (Initial Programm Loader) che è un processo iniziale che serve per copiare i file di sistema operativo sulla RAM, la memoria ad accesso casuale. Il processo di avvio prende il nome di bootstrap perché richiama il mettersi gli stivali per procedere. Talvolta il caricamento dell'os non è completo, e provvede a gestire le www joetex.eu Pag. 26 di 109

27 parti più alte a pagine o a segmenti. Durante il bootstrap viene caricato il cuore del sistema operativo, il kernel. Quando viene caricato il sistema operativo bisogna loggarsi come utente per caricare anche la configurazione e i permessi di utente. Loggarsi significa digitare da tastiera un nome già creato come account presso il computer ed eventualmente inserire una password (che è sempre opportuna). Questa identificazione di un utente si chiama login. Per uscire bisona avviare un comando init 0 o shutdown -h0 per scollegarsi e spegnere la macchina. Uscire dal proprio account utente si definisce logout. I software di sistema Attenzione: In elaborazione Compilatori Per migliorare le prestazioni e per semplificare, i linguaggi evoluti utilizzano oggetti identificati con nomi. Ad esempio si possono assegnare nomi a variabili, procedure e funzioni per costruire programmi. Questo significa che per descrivere un algoritmo si utilizzano espressioni verbali molto vicine alla lingua. Ad esempio se vogliamo calcolare l'area di un quadrato, dovremo poter usare un programma che possa funzionare su diversi tipi di computer, indipendentemente che siano mainframe, cliente o stand-alone. L'algoritmo che viene utilizzato per calcolare deve essere valido su tutte le macchine. Per questo motivo il programma di compilazione traduce un linguaggio evoluto in linguaggio macchina. Se le macchine di destinazione (target) sono provviste di un compilatore per il linguaggio utlizzato, basta che ad esso venga fatto eseguire il codice sorgente che viene trasformato in codice oggetto che azione le macchine. In buona sostanza il programma di compilazione svolge la funzione di intermediario tra algoritmo del programmatore in linguaggio sorgente e istruzioni in linguaggio oggetto, o meglio codice oggetto. Vediamo in forma grafica l'aquisizione del linguaggio sorgente e la trasformazione in codice oggetto: www joetex.eu Pag. 27 di 109

28 Se si vuole istruire che assegna A = B + C il computer procede in questo modo: B viene caricato nel registro S il contenuto della parola di indirizzo 130 Somma ad S il contenuto della parola in indirizzo 150 Trasferisce il contenuto di S nella parola di indirizzo 100 Perché un codice sorgente memorizzato in memoria centrale venga tradotto, sono necessarie due attività: analisi della correttezza sintattica del programma, eventualmete segnalazione di errori di tipo lessicale (se si utilizzano parole o termini non validi) o sintattici (se le stringhe sono incorrette). In linguaggio C++ un errore di lessico è una parola scritta male, mentre omettere il punto e virgola alla fine di un'istruziione è un errore di sintassi; creazione della traduzione del codice sorgente. Il file di traduzione che viene creato e posto nella memoria centrale viene chiamato solitamente oggetto compilato. Processo di traduzione da codice sorgente a oggetto compilato Una istruzione in linguaggio macchina è composto da: codice operativo che espone il tipo di lavoro della periferica a cui si rivolge uno o due operandi, che indicano gli oggetti che sono necessari per svolgere l'attività. Gli oggetti possono essere costanti, indirizzi di memoria o anche registri della CPU. La somma, ad esempio, è un'istruzione sempre a due operandi mentre il salto ad un indirizzo prevede un operando solo. www joetex.eu Pag. 28 di 109

29 Gli operandi sono situati in indirizzi di memoria ai quali ci si può riferire con indirizzi a memoria centrale assoluti, rilocanti e autorilocanti. Indirizzo assoluto di una parola di memoria è la posizione che essa occupa in un dato istante nella memoria centrale. La chiusura di un programma, l'apertura di altri e la riapertura del detto programma, può far ripartire la memoria non da 800 (ad esempio), ma da 1600 (perché nel frattempo la memoria è stata occupata da altri operandi). L'indirizzo assoluto ne dispone la collocazione nel momento in cui viene utilizzato il programma. L'indirizzo rilocante è quello relativo ad una situazione di memoria = 0. Praticamente per ottenere un indirizzo assoluto si potrebbe sommare l'indirizzo di impianto (quello attulmente in uso nel computer) + indirizzo rilocante. L'indirizzo autorilocante di un operando è subordinato alla posizione dell'istruzione che lo contiene. Se un programma è scritto con operandi i cui indirizzi sono autorilocanti, viene definito position independent code (codice indipendente dalla posizione), in quanto gli indirizzi assoluti si possono calcolare indipendentemente dall'indirizzo di impianto, ossia dalla quantità di memoria variabile già utilizzata in quel momento dagli altri programmi. Caratteristiche dei moduli i moduli sono oggetti collegabili, ossia oggetti compilati. In buona sostanza si tratta di una traduzione del codice sorgente in codice oggetto che viene collocata in memoria centrale. Le caratteristiche sono: istruzioni scritte in linguaggio macchina gli indirizzi relativi ad operandi sono in formato rilocabile gli indirizzi degli operandi di altri moduli non sono definiti, in quanto non possono essere definiti sinoa quando tutti i moduli non vengono tradotti e unificati; contengono due tabelle, una degli ingressi per gli indirizzi rilocabili e l'altra per gli oggetti (moduli) esterni che sono unificabili. Per ogni oggetto collegabile è giusto specificare Il nome (della procedura o della variabile) a il numero e tipo dei parametri formali delle procedure o funzioni il loro indirizzo rilocabile (nel acaso di una procedura, l'indirizzo rilocabile della prima istruzione) Ogni procedura esterna nviene desvitta mediante: il nome il nome la lista degli infirizzi rilocabili dove compaiono istruzione che richiamano la procedura il numero ed il tipo dei parametri formali come appaiono nell'intestazione per potere effetuare il controllo sul matching (accordo) Le variabili globali devono essere dichiarate tute nella sezione dichiarativa del modulo che contiene il main body ecc... Linking detto anche linkage viene eseguito sui file che contengono il programma in formato oggetto collegabile e genera uno o più file di formato caricabile. Il programma che esegue l'operazione di collegare i file in formato oggetto si kiama linker (cvollegatore) e le caratteristiche sono simili a quelle del compilatore: www joetex.eu Pag. 29 di 109

30 verifica che non vi sia nessuna mismatch (disaccordo) unisce i moduli uno di seguito all'altro calcolando i nuovi indirizzi assegna i valori corrett agli indirizzi lasciati indefiniti Se l'unione dei moduli non è possibile perchè ne verrbee fuori un file troppo grande, si risolve il problema creandopiù file che conservano alchne indeterminazioni negli indirizzi. MSWindows presenta le DLL Dynamic Link Lybrary, utili agli ambienti che utilizzano le interfacce grafiche. Nell'ambiente grafico bottoni e pulsanti (attivo e distattivo ad esempio, col mouse on oppure out), le istruzioni sono già cimpilate e ci si limita ad utilizzare vedi mancano alcune pagine poco chiare Proteggere il computer I rischi del computer possono essere i seguenti: guasto della macchina errore irreversibile di sistema danneggiamento delle unità di memoria di massa mancanza di alimentazione elettrica iimpossibilità di accesso alle info per incendio e affumicazione, allagamento, crollo del locale furto della macchina contrazione di virus informatico inserimento fraudolento di danneggiatore umano di dati e programmi utilizzo improprio di dati personali riservati da parte di pirata informatico Per ognuno di questi pericoli deve essere pronto un piano di prevenzione e sicurezza. Per il guasto delle macchine e per errori irreversibili di sistema sono necessari i seguenti elementi: personale che utilizza le macchine capace e responsabile utilizzo di macchina efficienti e stabili, con sistemi operativi e programmi affidabili hardware di buona qualità per evitare il danneggiamento prevedibile nelle modalità sopra riportate, è bene attuare le seguenti accortezze: porre il computer in luogo sicuro in modo che possa impedire scossoni, fumo, acqua, vicinanza di fonti di emissione di onde elettrromagnetiche, mancanza improvvisa di energia elettrica; per evitare la mancanza di corrente elettrica un computer dovrebbe essere dotato di Gruppi di continuità che abbiano buona autonomia, in modo che se va via la corrente elettrica della rete entra automaticamente in azione il gruppo di continuità, ossia un alimentatore di energia autonomo. Valutare attentamente il locole in cui viene riposto il computer per evitare che chicchessia possa avvicinarsi e dannaeggiarlo, consentendo anche forme di accesso e gestione dei dati da remoto in modalità protetta. Per questo motivo bisogna mantenere il computer in un locale il cui accesso sia filtrato in orario lavorativo da personale addetto e fuori orario protetto da sistema di sicurezza - allarme, porta blindata, chiusura sicura di finestre e altre forme di accesso. Inoltre è opportuno mantenere il computer costantemente protetto da possibili intrusioni di trojans, worms, spyware e altri programmi pirati che possono danneggiare il sistema operativo, www joetex.eu Pag. 30 di 109

31 distruggere dati importanti, inviare informazioni non autorizzate all'esterno mediante rete. Un buon antivirus aggiornato in modalità automatica è quindi necessario, cercando di utilizzare firewall di ingresso e uscita dei dati in caso di connessione con rete. Per dati molto importanti è necessario che i programmi e i dati siano copiati (back up) ogni minuto su unità di lettura diverse da quelle in uso e possibilmente in locali lontani, protetti da incendi, allagamenti, crolli. In altri contesti può risultare opportuno realizzare backup ogni giorno oppure ogni settimana. Il Pc deve essere protetto da password che deve saltuariamente essere cambiata per evitare la forzatura del sistema. In ogni caso è oppurtuno che per utilizzi professionali che conservino dati sensibili personali, che il conputer sia composto da materiale hardware di buona qualità, onde evitare inefficienze in itinere e supporto di assistenza non celere. Breve storia di UNIX Unix è la madre di tutti i sistemi operativi attuali. Venne creato utilizzando il "linguaggio C" nel 1969 dai sistemisti Kenneth Thompson e Dennis Ritchie presso i laboratori Bell della AT&T. Modificato diverse volte, fu rilasciato in versione proprietaria nel 1977 dalla Interactive Systems Corporation. Contemporaneamente alla AT&T l'università di Berkeley compì degli studi che sfociarono nella pubblicazione di un software libero detto BSD ( Berkeley Software Distribution) che presentava una novità assoluta: l'uso di un programma visualizzabile su monitor mediante la quale attivare input sotto forma di comandi e istruzioni per consentire all'os di lavorare. Questo programma fu chiamto C-Shell, o Console. La versione del 1978 comprendeva una Shell di comandi modificata dal sistemista Steve Bourne da cui deriva l'attuale Bash, contrazione di Bourne against shell. Nel 1983 si arrivò ad una versione di Unix detta System V, attualmente proprietaria alla release AT&T7.a, mentre la versione attuale della BSD è la Berkeley 4.2BSD. Le versioni "pure" dei due sistemi operativi sono privi di interfaccia grafica, me ne esistono versioni con programmi che consentono l'utilizzo della interfaccia grafica e quindi del mouse. Il programma che si sovrappone alla versione "pura" di Unix si chiama XWINDOW ed stato prodotto dal Massachussets Instituto of Technology (MIT). Il sistema operativo si basa sulla possibilità di integrare i programmi esistenti con altri in forma modulare. Unix è quindi diventato il prototipo degli OS modificabili e ampliabili per sua origine e natura. Secondo alcuni il suo limite consisterebbe nella possibilità di produrre danni irreversibili alla macchina cancellando o modificando file di sistema avendo i permessi di amministratore del sistema. Si parte dall'idea base, infatti, che un operatore di sistema è un conoscitore dello stesso e non può provocare danni. Tutti gli altri utilizzatori del computer, non sono amministratori e non hanno i permessi per cancellare e modificare file di sistema. Va anche detto che il sistema operativo Unix è multiutente, ossia consente da remoto agli utenti di poter utilizzare la macchina, e anche multitasking, ossia consente l'attivazione di due o più software applicativi contemporaneamente. In MSWindows la visualizzazione di programmi attivi viene indicata con le icone della barra delle applicazioni: www joetex.eu Pag. 31 di 109

32 Caratteristiche primarie dell'os Gli elementi fondamentali dell'os Unix sono tre: 1. il nucleo, o kernel; 2. la shell; 3. il filesystem Il kernel viene copiato sulla memoria RAM al momento dell'avvio (bootstrap) della macchina. Il nucelo è quella parte di software più vicina all'hardware. Le sue risorse sono a disposizione dei livelli superiori che sono, ovviamente più lontani dall'hardware. Le funzioni del kernel sono: gestione dei processi, anche caricandoli sulla RAM creando un file con gli indirizzi di allocazione; scheduling, ossia assegnazione dei processi al lavoro della CPU; lo scheduling può essere, come abiamo già visto, Round Robin (senza priorità dei processi stessi), First Come - First Served (il primo che arriva viene servito, ossia mandato in elaborazione alla CPU); Shortest Job First (il più piccolo dei processi viene "lavorato" prima dalla CPU, definito shortest next-cpu-burst first ossia il processo che si pensa occupi meno tempo la CPU viene processato prima); gestione del passaggio dei dati da una unità ad un'altra del sistema; controllo dei comandi forniti dall'utente mediante il controllo della shell controllo delle esecuzioni dei comandi lanciati mediante shell La shell (detta anche Console) è quel programma che consente l'interazione tra macchina e utente. La shell interpreta i comandi dell'utente, che li scrive e poi attiva mediante tasto "invia". I comandi sono codificati e spesso sono acronimi o abbreviazioni di parole che hanno il significato del comando previsto. Ad esempio copia, in inglese copy, può essere trasformato nel comando "cp". ovviamente il comando "cp" non ha senso se non si aggiunge cosa copiare e dove. Va anche detto che errori di digitazione dei comandi vengono restituiti immediatamente come "comando non esistente". Di default il programma shell interpreta il comando e lo invia al livello sottostante (kernel) per farlo eseguire. Unix utilizza diverse Console: bash, vsiluppata da Steve Bourne per i laboratori Bell e acronimo di Bourne against shell; c-shell, scritta da Bill Joy nella California University che presenta la comodità di avere comandi simili a quelli del linguaggio di programmazione C; korn-shell realizzat a da David Korn per i Bell Laboratories di AT&T e diffusasi con le macchine IBM. La shell si presenta come un semplice programma di solo testo con un prompt che indica solitamente il nome della macchina, il luogo in cui ci si trova come utente, il nome dell'utente. Alcuni programmi presentano un simbolo finale indica se si è utenti normali ($) o amministratori (#), la C-shell utilizza % al posto di $, MSWindows solitamente utilizza il segno maggiore >. www joetex.eu Pag. 32 di 109

33 3. - Il filesystem di Unix è un file che contiene e gestisce i dati dell'organizzazione della memoria di massa. Tutti gli elementi del filesystem sono file. Il termine file è traducibile con "archivio". L'archivio nel filesystem può essere di due tipi: file (archivio) che resta aperto, e teoricamente può contenere "infiniti" altri file (documenti e cartelle); tale file viene chiamato directory (o anche direttrice o cartella); file (archivio) chiuso, ossia ha un inizio ed una fine; solitamente il file chiuso viene chiamato documento; un documento immagine, un documento di testo, un documento di suoni etc. L'organizzazione dei dati è ad albero: una directory principale si dirama in altre all'interno delle quali sono memorizzati i file. Organizzazione fisica dei file Filesystem in Unix è anche il file di riferimento ad ogni partizione del disco rigido. Ogni fylesystem è gestito da un super-block (insieme complessivo dei dati) e da i-node (nodi identificati con un indice). La lista degli i-node si chiama i-list (tabella degli indici). Il file superblock è posizionato a distanza fissa dal filesystem e, per evitare che il guasto del super-block determini l'impossibilità di leggere il disco, viene copiato in punti diversi del sistema in modo che questi possa ricopiralo opportunamente nel luogo originario per sostituire quello danneggiato. Il super-block contiene: dimensione del filesystem; dimensione dell'area riservata dell'i-list; numero massimo di blocchi di dati; numero massimo di file che può contenere; dimensione dei blocchi di dati; lista dei blocchi liberi; numero degli i-node. Il superblock viene creato insieme al filesystem all'atto dell'installazione del sistama operativo e non viene più modificato. Il comando da lanciare con la bash è mkfs (make filesystem). Inoltre bisogna specificare il luogo nel quale creare il filesystem; www joetex.eu Pag. 33 di 109

34 il numero dei blocchi fiisici assegnati al fylesystem; il numero degli i-node presenti nella i-list Per ogni partizione del disco rigido deve essere creato un filesystem; quello del sistema operativo che viene lanciato si preoccupa su richiesta dell'utente di montare gli altri filesystem. Il montaggio si attua con la bash ed il comando mount (monta). Questo comando attiva una serie di procedure memorizzate in memoria centrale che consentono al sistema di accedere agli altri sistemi. Si creano dei collegamenti tra alberi diversi: Il punto di montaggio col sistema operativo si chiama mount-point. Con lo stesso sistema Unix legge i filesystem dei floppy, delle unità di lettura CD e DVD. Linux attualmente presenta un programma che monta automaticamente i filesystem appena viene riconosciuta la periferica di lettura massa. MSWindows ugualmente esegue il montaggio e lo smontaggio dell'unità di memoria di massa in modo automatico. Per i floppy disk il sistema operativo monta e smonta automaticamente il filesystem ogni volta che viene chiamato l'uso da parte dell'utente. Una struttura ad albero è composta da file aperti o chiusi. Questi file sono detti i-node in cui "i" significa identificatore. Ogni i-node ha un suo i-number, un numero assoluto che identifica il file. Ad ogni inumber possono essere assegnati, però, anche file di collegamento con nomi diversi, di modo che file "link" di nomi diversi possono attivare il medesimo programma. Il comando attivabile con la bash è "ln" (link). Un i-node è composto da 64 byte e contiene le seguenti informazioni: 1. il tipo di file (normale, speciale o directory) 2. i permessi attribuiti al file r (read) w (write) x (execute) 3. il numero dei link ad esso assegnati 4. nome del proprietario; 5. nome del gruppo di appartenenza; 6. dimensione del file in byte; 7. data di ultimo accesso; 8. data di ultima modifica; 9. data di creazione; 10.puntatori ai blocchi o ad altri puntatori; Quando un file è di grandezza limitata ha soltanto un numero di puntatori diretti ai blocchi di dati; se invece il file è di grandezza notevole, vengono creati dei puntatori indiretti, con indirizzamenti che possono essere singoli, doppi e tripli. I puntatori indiretti (singolo, doppio, triplo) puntano a blocchi di puntatori i quali a loro volta puntano a blocchi di dati. www joetex.eu Pag. 34 di 109

35 Consideriamo un'ipotesi che spiega con cifre limmagine sopra riportata: Il file A contiene 13 puntatori 10 puntatori diretti x byte per ogni blocco = byte 3 indiretti dei quali puntatore indiretto 11 fa riferimento ad un blocco 128 puntatori (indirizzamento singolo) dei quali ognuno di 1024 byte ossia 128 x 1024 = byte puntatore indiretto 12 fa riferimento ad un blocco 128 puntatori a blocchi dei quali ognuno di essi contiene 128 puntatori per un totale di 128 x 128 x 1024 byte = byte puntatore indiretto 13 fa riferimento ad un blocco di 128 ognuno dei quali fa riferimento a 128 blocchi di puntatori, ognuno dei quali fa ancora riferimento a blocchi di 128 puntatori di 1024 byte, ossia 128 x 128 x 128 x x 1024 = byte Sommando i tre dati viene fuori la grandezza massima di un file: byte byte byte = byte ossia grandezza puntatore 10 x 1024 tipo di puntatore dieci puntatori diretti da 1024 byte ciascuno totale bye totale www joetex.eu Pag. 35 di 109

36 byte 128 x 1024 un puntatore indiretto che punta a 128 punatori ciascuno di 1024 byte totale byte 128 x un secondo puntatore indiretto che punta a 128 puntatori ognuno dei quali punta a 128 puntatori di 1024 byte totale byte 128 x 128 x un terzo puntatore indiretto che punta a 128 puntattori ognuno dei quali punta a 128 puntatori ciascuno dei quali, ancora, punta a 128 puntatori totale byte calcoli totale Byte totale Byte equivalenti a KB MB 2.064,13 76 GB 2,02 Il filesystem contiene la lista dei blocchi liberi, chimata free list. Questa lista contiene puntatori concatenati i quali contengono, a loro volta, puntatori a blocchi liberi ed il puntatore all blocco successivo. La concatenazione è visibile nella prossima immagine: Il filesystem è così composto: il superblocco l'area i-list la zona dati che contiene blocchi e dati i puntatori di indirizzamento indiretto a blocchi di dati la lista dei blocchi liberi Organizzazione logica dei file Tipi di file in Unix: www joetex.eu Pag. 36 di 109

37 file ordinari, insieme di byte che hanno inizio e fine; non possono contenere altri file, ma solo dati della natura del tipo creato; file directory, insieme di byte che ha inizio e non ha fine nel senso che può contenere altre directory e file ordinari; le direttrici sono utili al raggruppamento ordinato dei dati; file speciali sono file aperti e chiusi che rappresentano le periferiche quali l'hard disk, la stampante, la tastiera ecc.; sono file chiamati special device file. Le procedure di Unix sono quindi indipendenti dalla natura della periferica. Caratteristiche dell'organizzazione logica: 1. Uso di nomi di file, che in Unix possono contenere tutti i caratteri speciali quali 1. / ( ) ] [ * _ \! " $ % & 2. Risulta opportuno evitare - e + che sono simboli utilizzati per specificare elementi di comando 1. Ad esempio ls -l è un comando chiede la lista dei file contenuti nella directory corrente con descrizione lunga (ls è abbreviazione di list, l è abbreviazione di long, infine il simbolo - indica la specifica del comando). 2. Indicazioni di posizione: 1. il punto "." indica la directory corrente 2. due punti ".." indicano la directory superiore 3. i file che cominciano con il punto sono dot file ossia file nascosti (hidden file) 3. Differenza tra maiuscole e minuscole; questo significa che Unix è case sensitive. Questo significa che nella stessa directory possono esservi tre file con lo stesso nome ma maiuscole diverse: Data data - DATA 4. La directory principale è root (radice) che è simboleggita da slash "/" 5. struttura delle directory di Unix: / = radice (root) della struttura ad albero, il contenitore di tutte le sottodirectory /bin = al suo interno vi sono programmi binari del sistema e programmi di utilità quali comando concatena (cat), grep (cercare in modo carticolato), who (chi sono io ecc.); /dev = contiene i file speciali che rappresentano le periferiche, ossia trasformano in file i componenti hardware; vi sono anche i programmi bash, lp (line printer) per la stampante ecc. /etc = i programmi al suo interno sono file speciali e file di amministrazione di sistema; /lib = librerie, programmi di linguagi, standard I/O, libm per le routine matematiche ecc. sono interne a questa directory; /tmp = al suo interno si creano file temporanei tipo i buffer che si creano con gli editori di testo; /home = contiene le cartelle di tutti gli utenti www joetex.eu Pag. 37 di 109

38 /var = contiene gli importanti file di log e rgistrazione dei processi; /usr = solitamente contiene le installazioni dei programmi applicativi degli utenti. Posizione di ogni utente Ogni utente creato per l'uso del computer ottiene una sua cartella interna alla directory "home"; il nome generico di questa cartella è home directory, solitamente con un nome specifico dedicato all'utente; Posizione corrente Quando ci si sposta nell'albero delle directory, quella corrente indicata con un punto "." è quella nella quale si è in quel momento (current working directory); Path o indirizzo assoluto e relativo Il percorso da "/" root sino alla posizione corrente nella quale, ad esempio, si trova il file "a.jpg", comprende tute le directory necessarie per raggiungerlo. Immginiamo che nella cartella home sia presente un utente "joetex"; nella cartella "joetex" è stata creata un'altra cartella di nome "immagini"; il path costituisce il percorso intero (indirizzo assoluto) da "/" root sino al file a.jpg che si trova nella cartella immagini dell'utente "joetex". Ecco il path di a.jpg = /home/joetex/immagini/a.jpg Se invece ci troviamo nella directory /etc e vogliamo indicare il percorso a partire dalla cartella corrente, il path cambia perché non ha più origine in "/" root ma da current working directory; come è stato detto il simbolo delle cartella corrente è "." mentre di quella superiore è ".." doppio punto. Vediamo il path relativo di a.jpg =../home/joetex/immagini/a.jpg Il simbolo / indica sia la root che una cartella il cui nome è subito specificato affianco a destra: /joetex indica directory joetex; /etc indica la cartella etc ecc. Tipologie utenti In Unix sono presenti tre tipi di utenti generici ed uno speciale: utente generico proprietario (owner) o user, solitamente colui che crea documenti e quindi ne può disporre a piacimento; utente generico gruppo o group, come insieme di utenti; quandi si crea un utente è necessario assegnargli un gruppo, anche se un gruppo vero e proprio di utenti non esiste; il gruppo va creato per inserirvi l'utente anche se unico user del computer; utenti generici tutti gli altri o others, una specie di ospite non registrato; utente speciale amministratore o root, che non è un utente qualsiasi ma un "super user" che ha accesso a tutte le risorse del sistema. Permessi Ad ogni tipologia di utente è previsto un tipo speciale permessi di leggere, modificare ed eseguire file. Solitamente l'utente possiede pieni permessi sui file che ha creato, può leggere alcuni file di altri utenti ma non può modificarli nè eseguirli; il super user (root) ha i pieni poteri su tutti i file del computer, siano www joetex.eu Pag. 38 di 109

39 essi di sistema o documenti creati da generici users. I permessi "r" - "w" - "x" sono rispettivamente i simboli di read (lettura del file), write (riscrittura o modifica del file), execute (esecuzione del file); Per ogni utente generico owner - group - others sono previsti i tre permessi "r" - "w" - "x" per un totale, quindi, di 9 indicazioni per ogni file: owner group user rwx rwx rwx Proviamo a vedere i permessi dell'utente joetex creando una lista di file presenti nella home directory di joetex. La lista di file si ottiene col comando ls (ls elenca file o directory.) e -l indica la long description degli stessi: 1. aprire la bash 2. digitare ls -l 3. verificare i permessi e le altre opzioni dei file joetex@pcjoetex:~$ ls -l totale drwxr-xr-x 2 joetex joetex :06 000_b_files -rw-r--r-- 1 joetex joetex :06 000_b.html drwxr-xr-x 4 joetex joetex :37 1_linux_corso_princip -rw-r--r-- 1 joetex joetex :55 aaa -rw-r--r-- 1 joetex joetex :59 aaa.dvi -rw-r--r-- 1 joetex joetex :06 aaa.htm -rw-r--r-- 1 joetex joetex :59 aaa.txt Il prompt indica il nome dell'utente joetex, il nome della la posizione corrente ~$ (home directory) La prima riga dopo il prompt indica il numero totale dei file contenuti nella home directory di joetex totale 23352; la seconda riga presenta le seguenti indicazioni: d il tipo di file, ossia directory, il cui nome è indicato in blu 000_b_files; drwxr-xr-x 2 joetex joetex :06 000_b_files dopo l'indicazione del tipo di file sono visibili i permessi rwxr-xr-x owner group user rwx r-x r-x Il proprietario (owner joetex) può leggere, modificare ed eseguire il file firectory; il group può leggerlo e aprirlo (eseguirlo) ma non può modificarlo; così anche gli others. www joetex.eu Pag. 39 di 109

40 completa per la lettura di ls Avvio del sistema La primissima fase di accensione del computer consiste nel bootstrap, ossia nella copia dei file del nucleo o kernel dal disco rigido nella RAM, o memoria centrale. Il kernel è un software compilato e la sua posizione è solitamente interna a "/" (root). Completato il processo di copia nella memoria centrale, il kernel avvia il processo sched che è il gestore di tutti i processi. Ogni processo è identificato con un numero assoluto; tale numero prende il nome di PID Process Identifier. Comando ps il comando ps verifica i processi PID in corso, compreso quello della shell joetex@pcjoetex:~$ ps PID TTY TIME CMD 5819 pts/0 00:00:00 bash 9171 pts/0 00:00:00 ps joetex@pcjoetex:~$ vediamo il manuale joetex@pcjoetex:~$ man ps + invio PS(1) Linux Programmer's Manual PS(1) NOME ps - riporta lo stato dei processi SINTASSI ps [-] [lujsvmaxscewhrnu] [txx] [O[+ -]k1[[+ -]k2...]] [pids] ci sono anche tre opzioni lunghe: --sortx[+ -]key[,[+ -]key[,...]] --help --version Ulteriori opzioni lunghe stanno per essere introdotte... DESCRIZIONE ps mostra un'istantanea dei processi correnti. Se si vuole un'aggiornamento ripetitivo dello stato, si usi top. Questa pagina di manuale documenta la versione di ps basata su /proc, o almeno ci prova. OPZIONI Le opzioni sulla riga di comando possono essere precedute opzionalmente da un '-', ma non è necessario. Ci sono inoltre alcune "opzioni lunghe" in stile GNU; si veda più sotto per quelle. www joetex.eu Pag. 40 di 109

41 l formato lungo u formato utente: dà il nome dell'utente e l'ora d'inizio j formato jobs: pgid sid s formato signal v formato vm m mostra informazioni sulla memoria (assieme con il flag p dà il numero di pagine). f le righe di comando sono mostrate in un albero a mostra anche i processi degli altri utenti x mostra i processi senza terminale di controllo S aggiunge il tempo di cpu dei figli e i page fault c nome comando dalla task_struct e mostra l'ambiente dopo la riga di comando e `+' w output largo: non tronca le righe di comando per farle stare una per riga. Per essere precisi, ogni w aggiunto metterà a disposizione un'altra riga di output per ogni processo. Se lo spazio non è necessario non sarà usato. Si può arrivare fino a 100 w. h non mostra l'header r solo processi running n output numerico per USER e WCHAN. ps -a elenca i processi di tutti gli utenti loggati ps -x processi che non hanno un terminale collegato ps -u dà informazioni ulteriori utili terminale associato. 6.6 Infine, l'opzione u dà ulteriori informazioni sui processi, che spesso sono utili. Per vedere tutti i processi ps -aux joetex@pcjoetex:~$ ps -aux Warning: bad ps syntax, perhaps a bogus '-'? See USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root ? S 15:29 0:04 init [5] root ? S 15:29 0:07 [keventd] root ? SN 15:29 0:00 [ksoftirqd_cpu0] root ? S 15:29 0:00 [kswapd] root ? S 15:29 0:00 [bdflush] root ? S 15:29 0:00 [kupdated] root ? Ss 15:30 0:00 cardmgr root ? S 15:30 0:00 [khubd] root ? S 15:30 0:00 [knodemgrd_0] root ? Ss 15:30 0:00 pump -i eth0 root ? S 15:30 0:00 /usr/sbin/automount --pid-file=/var/run/autofs/ root ? Ss 15:30 0:00 /usr/sbin/cupsd nobody ? Ss 15:30 0:00 /usr/sbin/monopd root ? Ss 15:30 0:00 /usr/bin/kdm root tty1 Ss+ 15:30 0:00 /sbin/getty tty1 root tty2 Ss+ 15:30 0:00 /sbin/getty tty2 root tty3 Ss+ 15:30 0:00 /sbin/getty tty3 root tty4 Ss+ 15:30 0:00 /sbin/getty tty4 root tty5 Ss+ 15:30 0:00 /sbin/getty tty5 root tty6 Ss+ 15:30 0:00 /sbin/getty tty6 root ? R 15:30 2:00 /etc/x11/x -dpi 75 -nolisten tcp vt7 -auth /var root ? S 15:30 0:00 -:0 joetex ? S 15:31 0:00 /bin/sh /usr/bin/x-session-manager joetex ? Ss 15:31 0:00 /usr/bin/ssh-agent x-session-manager joetex ? Ss 15:31 0:00 kdeinit: Running... www joetex.eu Pag. 41 di 109

42 joetex ? S 15:31 0:00 kdeinit: dcopserver --nosid joetex ? S 15:31 0:00 kdeinit: klauncher joetex ? S 15:31 0:01 kdeinit: kded joetex ? S 15:31 0:00 kdeinit: kxkb joetex ? S 15:31 0:05 artsd -F 10 -S s 60 -m artsmessage -l 3 joetex ? S 15:31 0:00 kdeinit: knotify joetex ? S 15:31 0:00 kwrapper ksmserver joetex ? S 15:31 0:00 kdeinit: ksmserver joetex ? S 15:31 0:03 kdeinit: kwin -session 117f joetex ? S 15:31 0:02 kdeinit: kdesktop joetex ? S 15:31 0:08 kdeinit: kicker joetex ? S 15:31 0:00 kdeinit: khotkeys joetex ? S 15:37 0:03 /usr/bin/gimp-2.0 joetex ? S 15:37 0:00 /usr/lib/gimp/2.0/plug-ins/script-fu -gimp 6 5 joetex ? S 15:38 0:02 kdeinit: konqueror -mimetype inode/directory fi joetex ? S 15:39 0:14 /opt/openoffice-it/openoffice.org1.1.3/program/ joetex ? S 15:39 0:00 /opt/openoffice-it/openoffice.org1.1.3/program/ joetex ? S 15:39 0:00 /opt/openoffice-it/openoffice.org1.1.3/program/ joetex ? S 15:39 0:00 /opt/openoffice-it/openoffice.org1.1.3/program/ joetex ? S 15:39 0:00 /opt/openoffice-it/openoffice.org1.1.3/program/ joetex ? S 15:39 0:00 /opt/openoffice-it/openoffice.org1.1.3/program/ joetex ? S 15:43 0:14 kdeinit: kwrite /home/joetex/appunti_comandi_sh joetex ? S 15:43 0:00 kdeinit: kio_uiserver joetex ? S 15:47 1:35 kdeinit: konsole joetex ? S 16:21 0:00 kdeinit: kio_file file /tmp/ksocket-joetex/klau joetex pts/0 Ss 16:33 0:00 /bin/bash joetex pts/0 R+ 17:43 0:00 ps -aux joetex@pcjoetex:~$ Ogni processo può generare processi figli (child process) con una chiamata di sistema denominata fork; i processi assumono sempre PID in ordine crescente; il primo processo è init 5 in linux Eduknoppix: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root ? S 15:29 0:04 init [5] Dalla lista presente nella tabella sopra riportata, si può vedere come durante il lavoro di una macchina si possa arrivare ad un numero PID del tipo 5819 (relativo ad una implemetazione dell'interfaccia grafica KDE di Linux Eduknoppix); Il processo sched genera il processo init (5 è la versione di init che comprende XWINDOW, ossia l'interfaccia grafica del sistema operativo Linux Eduknoppix sovrastata dalla gestione grafica denominata KDE). Init genera per ogni terminale (periferica?) un processo detto getty. Il processo getty riceve le informazioni dal file contenuto nella cartella /etc denominato gettydefs: /etc/gettydefs; per conoscere le tipologie dei terminali (periferiche) settate da getty si può visualizzare il contenuto del file /etc/ttytype. Inittab = this file describes how the INIT process should set up the system in a certain run level Init dispone di processi diversi, che vanno da 0 a 6; tali processi diversi sono chiamati run level (corsa del livello 0, corsa del livello 1 ecc.). Init presenta un "run level s" o anche "run level 1"che attiva esclusivamente la modalità dell'amministratore di sistema, o single user mode. I run level sono sette: www joetex.eu Pag. 42 di 109

43 1. init 0 = spegni la macchina o shutdown; 2. init 1 = Single User Mode o solo amministratore root; 3. init 2 = Multiuser without NFS, con utilizzo da parte di diversi utenti e non si dispone di lavoro di rete; 4. init 3 = Full multiuser mode, con utilizzo da parte di diversi utenti e piena modalità; 5. init 4 = unused inutilizzato 6. init 5 = X11 ossia con utilizzo di XWINDOWS, l'interfaccia grafica che sostituisce il programma shell e consente di utilizzare il puntatore del mouse e le icone; 7. init 6 = rebbot, riavvio del sistema. Il processo init genera anche altri processi detti daemon (demoni) che corrispondono ai "servizi" di MSWindows. I demoni sono utili alla gestione della stampa e della posta elettronica, alla gestione degli account - utenti, alla verifica degli errori e alla schedulazione dei processi. I demoni sono dunque dei programmi che lavorano in background nel sistema operativo e sono sempre disponibili per eventuale utilizzo da parte dell'utente. Il processo getty genera anche un processo detto login di identificazione dell'utente che viene chiamato ad inserire login (nome utente) e password per utilizzare il computer. Il sistema operativo provvede ad attivare la shell (ricordiamo detta anche Console o bash), ossia l'interfaccia testuale da utilizzare per consentire al conputer di svolgere lavori (processi) su richiesta (comandi). Per visualizzare i processi con la shell: aprire la shell digitare inittab attendere la risposta comando inittab INITTAB(5) Linux System Administrator's Manual INITTAB(5) NOME inittab - formato del file inittab file usato dai processi init compatibili con il System V DESCRIZIONE Il file inittab descrive quali processi sono avviati all'avvio e durante le normali operazioni (p.es. /etc/rc, getty...). Init distingue tra diversi runlevel, ognuno dei quali può avere il suo insieme di processi da avviare. I runlevel validi sono 0-6 e A, B e C per le voci ondemand ("su richiesta"). Una voce nel file inittab ha il seguente formato: id:runlevel:azione:processo Inittab avvia anche un programma; basta indicare il nome del programma affiancato da spazio e inittab comando di esecuzione di un programma inittab scrivi ad esempio il programma emacs inittab + invio joetex@pcjoetex:~$ emacs inittab www joetex.eu Pag. 43 di 109

44 Utilizzare la shell per aprire un sito internet direttamente con un browser: Navigare in rete implementando due programmi Netscape e Mozilla Ecco i comandi joetex@pcjoetex:~$ netscape joetex@pcjoetex:~$ mozilla Utilizzare la shell per ottenere informazioni relative al processore della macchina Aprire la shell digitare cd.. + invio (cambia directory raggiungendo quella superiore) (attenzione: il simbolo + non fa parte del comando, viene utilizzato dal redattore della presente per indicare che bisogna aggiungere l'azione del pigiare il tasto invio) digitare cd.. + invio e raggiungere la root indicata con slash e poi il $ che indica utente (amministratore o root è simboleggiato da cancelletto #) joetex@pcjoetex:/$ ls bin cdaudio dev etc home lib mnt opt root sbin tmp var vmlinuz.old boot cdrom dvd floppy initrd lost+found none proc rr_moved sys usr vmlinuz Connettersi al sistema operativo Il processo login esegue le informazioni contenute nel file passwd presente nella cartella /etc. Il file comprende delle righe nelle quali vi sono le informazioni relative ai vari utenti: login, username nome assegnato all'atto di creazione dell'utente; password criptata, che può essere segreta anche per root (amministratore) e memorizzata dall'utente; UID numero identifier assoluto di user (User IDentifier) GID numero identifier assoluto di group (Group IDentifier) commento, o descrizione dell'utente home directory, nome della home directory shell, il tipo di shell utilizzata (C-shell, K-shell, Bash, xterm ecc., ricordando che le bash sono nella directory /bin per cui /bin/sh indica la shell di default, /bin/csh indica la c-shell, /bin/ksh indica la kornshell ecc.) Ogni informazione è separata dalla seguente da ": " (lo spazio prima delle virgolette indica la presenza dello spazio dopo i due punti) login: password: uid: gid: # commento: home directory: shell Quando l'user inserisce nome login e password ottiene accesso al computer ritrovandosi collocato direttamente nella cartella home directory che presenta il seguente path assoluto: www joetex.eu Pag. 44 di 109

45 /home/home_directory (solitamente la home directory ha nome uguale al nome login) Utente joetex: Per gestire le proprietà dei gruppi ai quali sono associati gli users, si può modificare il file /etc/group. Quando un user viene ammesso all'uso del computer, ossia ha inserito username e password che risultano corrette, avvengono le seguenti condizioni: collegamento con la propria home directory; definizione dei programmi che possono essere utilizzati, mediante un file di nome "profile" presente nella directory /etc; ricezione di messaggi agli utenti dell'amministratore (root); segnalazione della presenza di posta elettronica (You have mail); attivazione della shell assegnata all'utente; Per chiudere la bash digitare exit + invio oppure la scorciatoia di tastiera ctrl + d (control + d) Per chiudere la C-shell digitare exit + invio oppure la scorciatoia di tastiera ctrl + d (control + d) Per spegnere il computer mediante la shell: digitare su + invio per diventare super user (root/amministratore) ù inserire la password + invio digitare # shutdown -h now oppure # shutdown -h 0 Oppure # init 0 + invio (run level 0) Oppure se si vuole spegnere la macchina avvisando utenti remoti www joetex.eu Pag. 45 di 109

46 # shutdown -h +1 "Spegnimento della macchina tra un minuto " in cui +1 significa che il messaggio tra virgolette che viene visualizzato da ogni utente resta attivo per 1 minuto. man SHUTDOWN(8) Linux System Administrator's Manual SHUTDOWN(8) NOME shutdown - porta giù il sistema SINTASSI /sbin/shutdown [-t sec] [-rkhncf] time [warning-message] DESCRIZIONE Shutdown porta giù (down) il sistema in modo sicuro. È notificato a tutti gli utenti loggati che il sistema sta per andare giù, ed è bloccato login(1). È possibile portare giù il sistema immediatamente, o dopo un ritardo. È notificato a tutti i processi che il sistema sta andando giù prima con il signal SIGTERM. Ciò lascia il tempo ai programmi come vi(1) di salvare i file che si stanno editando, e ai programmi per la posta e le news di uscire in modo pulito, ecc. Shutdown fa il suo lavoro segnalandolo al processo init, chiedendogli di cambiare il runlevel. Il runlevel 0 è usato per fermare (halt) il sistema, il runlevel 6 è usato per il riavvio (reboot) del sistema e il runlevel 1 è usato per portare il sistema in uno stato nel quale sia possibile compiere ``lavori ammistrativi''; questo è il default se non è dato a shutdown né il flag -h né il flag -r. Per vedere quali azioni sono intraprese il fase di halt o reboot si vedano le voci per questi runlevel nel file /etc/inittab. OPZIONI -t sec Dice a init di aspettare sec secondi tra l'invio ai processi dell'avviso e del kill signal, prima di passare ad un altro runlevel. -k Non fa realmente lo shutdown; spedisce solo un messaggio d'avviso a tutti. -r Reboota dopo lo shutdown. -h Ferma (halt) dopo lo shutdown. -n [SCREDITATA] Non chiama init per fare lo shutdown ma lo fa da sé. L'uso di questa opzione è scoraggiato, e il suo risultato non è sempre quello che ci si aspettava. -f Fa un reboot `veloce' (fast). -c Cancella uno shutdown che sta già girando. Con questa opzione ovviamente non è possibile passare l'argomento time, ma si può mettere un messaggio di spiegazione nella riga di comando che sarà spedito a tutti gli utenti. time Quando fare lo shutdown. warning-message Messaggio da inviare a tutti gli utenti. L'argomento time può avere diversi formati. Per primo, può essere un tempo assoluto nel formato hh:mm, nel quale hh è l'ora (1 o 2 cifre) e mm è il minuto dell'ora (in due cifre). Per secondo, può essere nel formato +m, nel quale m è il numero di minuti da attendere. La parola now è un alias per +0. www joetex.eu Pag. 46 di 109

47 Il flag -f significa `reboot fast'. Ciò crea solo un file d'avviso /fastboot il quale può essere testato dal sistema quando ritorna su ancora. Il boot file rc può verificare se c'è questo file, e decidere di non lanciare fsck(1) in quanto il sistema è stato portato giù in modo corretto. Dopo di questo, il processo di boot dovrebbe rimuovere /fastboot. Il flag -n fa si che shutdown non chiami init, ma ``killi'' da solo tutti i processi in esecuzione. Dopo che tutti i processi sono stati killati, shutdown proverà ad eseguire velocemente lo script /etc/rc.d/rc.halt (o rc.reboot). Controlla inoltre la presenza dei file equivalenti rc.0 e rc.6. Se questo script ritorna o non può essere eseguito (perché per esempio non c'è) shutdown fermerà quota e accounting, disabiliterà lo swapping e smonterà tutti i filesystem. Controllo dell'accesso Shutdown può essere chiamato da init(8) quando sono premuti i ``magic key'' CTRL-ALT-DEL, creando una voce apposita in /etc/inittab. Ciò significa che chiunque abbia l'accesso fisico alla tastiera della console può fare lo shutdown del sistema. Per prevenire ciò, shutdown può verificare se un utente autorizzato è loggato in una delle console virtuali. Se shutdown è chiamato da init, guarda se è presente il file /etc/shutdown.allow. Poi confronta l'elenco dei nomi in quel file con la lista di utenti che sono loggati sulle console virtuali (da /var/run/utmp). Procederà solo se è loggato uno di questi utenti autorizzati o root. Altrimenti scriverà il messaggio shutdown: no authorized users logged in nella console (fisica) del sistema. Il formato di /etc/shutdown.allow è un nome di utente per riga. Sono consentite righe vuote o di commento (prefissate da #). Attualmente per questo file c'è un limite di 32 utenti. FILE /fastboot /etc/inittab /etc/rc.d/rc.halt /etc/rc.d/rc.reboot /etc/shutdown.allow BACHI Non è proprio un baco, ma molti utenti dimenticano di dare l'argomento time e poi si scervellano sul messaggio d'errore che shutdown produce. L'argomento time è obbligatorio; nel 90% dei casi sarà la parola now. AUTORE Miquel van Smoorenburg, miquels@cistron.nl Traduzione di Giovanni Bortolozzo <borto@dei.unipd.it> VEDERE ANCHE fsck(8), init(1), halt(8), reboot(8) 31 maggio 1996 SHUTDOWN(8) Per riavviare il computer mediante la shell: digitare su + invio per diventare super user (root/amministratore) ù inserire la password + invio www joetex.eu Pag. 47 di 109

48 digitare # shutdown -r now + invio oppure # shutdown -r 0 + invio Oppure # init 6 + invio (run level 6) Oppure se si vuole spegnere la macchina avvisando utenti remoti # shutdown -h +1 "Riavvio della macchina tra un minuto " in cui +1 significa che il messaggio tra virgolette che viene visualizzato da ogni utente resta attivo per 1 minuto. Interfaccia grafica utente Per gli ogni user si può aprire un'interfaccia grafica Desktop simile a quella di windows Per spegnere il computer senza utilizzare la shell e senza diventare su (super user o amministratore) clic su K (equivalente di start di MSWindows) + Termina sessione www joetex.eu Pag. 48 di 109

49 + Spegnere il computer Stessa procedura per riavviare il computer selezionando col puntatore il pulsante Riavviare il computer Il Desktop viene visualizzato in modalità grafica come visibile nell'immagine sopra riportata e la sua unità logica si trova nella home directory dell'utente. Per visualizzare il contenuto di Desktop: aprire la bash digitare ls -l /Desktop (attenzione alle maiuscole, Unix e Linux sono case sensitive!) verificare i file visibili sul desktop e quelli non visibili Per visualizzare i file contenuti nella propria home directory utilizzando la bash: aprire la bash digitare ls -al verificare i file visibili sul desktop e quelli non visibili www joetex.eu Pag. 49 di 109

50 oppure aprire Konqueror (conquistatore, il browser che naviga nel pc e in internet) verificare le differenze con la bash www joetex.eu Pag. 50 di 109

51 Amministratore di sistema Un utente speciale è l'amministratore di sistema. Al bootstrap della macchina inserire il login di amministratore (potrebbe essere root, admin o altro), inserire la password e si entra nel computer in modalità amministratore. Un altro modo è selezionare Single User Mode digitando nella bash init 1 e poi inserendo la password. Con questa modalità si accede alla modalità riga di comando che esclude puntatore e schermata grafica. Se si accede al sistema informatico mediante interfaccia grafica di default che è init 5, un ulteriore modo è aprire la bash e digitare su, inserire la password ed entrare come amministratore di sistema. Anche se l'amministratore non conosce le password degli utenti, in ogni caso ha potere su di loro in quanto stabilisce i loro permessi e la loro stessa esisenza (ossia eliminare un utente). Al momento dell'installazione Unix crea automaticamente alcuni utenti e l'amministratore (root) di default. L'amministratore dovrà inserire la password per proteggere il suo stesso accesso, creare le password per gli utenti predefiniti, eventualmente eliminarli, creare nuovi utenti, creare nuovi profili (/etc/profile) utente assegnando home directory e bash, organizzare gli utenti con profili di gruppo, verificando permessi e restrizioni. Gestione delle periferiche File speciali gestiscono le periferiche; essi sono chiamati special device file, nomi simbolici delle operazioni di input e output delle periferiche (devices). Come gli altri file, i file di gestione delle periferiche hanno un pathname assoluto (indirizzo che attesta la posizione rispetto a root) e un numero i-node presente nella i-list del filesystem. Per verificare la lista dei file che gestiscono le periferiche si può utilizzare il programma ls -l (che abbiamo già visto) che significa lista con lunga descrizione. Naturalmente dovremo operare una lista della directory che contiene questi file speciali, che è /dev. ls -l /dev La struttura di un i-node di un file speciale è leggermente diversa da quella di un file ordinario. Contiene i seguenti elementi: Tipo di file protezioni del file stesso proprietario gruppo di appartenenza data creazione data mdifica www joetex.eu Pag. 51 di 109

52 data di ultima esecuzione numero di link numero speciale detto major number che assegna identità alla periferica (se trattasi di stampante, terminale, disco, scanner o altro) minor number che assegna identità non di tipo generale (majoer number) ma a quella specifica macchina. Sono assenti i puntatori ai blocchi di dati e l'indicazione della dimensone del file. Il major number ed il minor number consentono di collocare nel kernel elementi di informazioni che consento li svolgimento delle operazioni che il nucleo realizza normalmente. Tali numeri sono detti solitamente driver. I File speciali possono essere di tipo "b" con i-node di tipo a blocchi, che utilizza un buffer di sistema per le operazioni di I/O (Input/Output) di tipo "c" con i-node a caratteri, che utilizza direttamente i buffer di I/O. Il comando di crazione dei file speciali è mknod (make node) Le unità di memoria di massa (i dischi rigidi) sono spesso organizzati in partizioni: Linux, ad esempio, riserva quasi sempre una partizione per il sistema operativo, una per lo swap ed una per l'archiviazione dei file. Le partizioni hanno nome inglese Volume, che indica sia l'intero disco che ogni partizione di esso. Ogni partizione ha un file speciale che gestisce l'accesso. VI sono due modi di rappresentare la partizione del disco: in modo logico o sequenziale. Partizione rappresentata in modo logico: come un file system deve essere montata "mount" e poi è in grado di fornire indirizzi di file e directory; Partizione rappresentata in modo fisico: si tratta di un unico file sequenziale, simile alle sequenze create dalle copie di backup, che in Unix hanno comando tar. Altri file speciali riguardano le altre unità di memoria di massa: floppy disk, cd-rom, dvd, unità removibili USB, unità a nastro (streamer o cartridge). Le code di stampa Lo spool della stampante, il file di gestione dei processi di stampa, è affidato ad un programma detto lp, mentre le code delle varie stampe sono gestite da un file di sisema avviato in fase di bootstrap dal processo init e poi attivo sempre sino allo spegnimento del sistema. Questo programma che gestisce le code di stampa si chiama lpsched. Le atività di lp sono: orgnizzazione di uno o più code di stampa sulla stessa stampante fisica; attivazione dello scheduler lp, lpsched; www joetex.eu Pag. 52 di 109

53 arresto dello scheduler; apertura di una coda di stampa; chiusura di una coda di stampa; richiesta della stama di un file e invio alla coda di spool; avvio alla stampa; arresto della stampa; cancellazione di un file in coda di stampa; visualizzazione dello stato di spool. DOS Il sistema DOS è un sistema operativo (Disk Operating System) monoutente che si arricchì di programmi complessi che consentivano l'uso di un'interfaccia grafica che permetteva all'utente di riconoscere icone e avviare comandi e processi mediante il semplice clic del puntatore sulle icone. Questa facilitazione del computer ha portato all'uso dei programmi capaci di confezionare documenti di vario tipo, ma ha nello stesso tempo ridotto la conoscenza dell'informatica. Attualmente DOS può essere applicato a macchine vecchie o di ridotte capacità di memoria centrale e di collegamento di periferiche. Esistono anche versioni di PC-DOS e IBM-DOS molto simili al programma che indica nell'acronimo anche proprietario dei copyright, MS-DOS (MicroSoft Disk Operating System). Quando si accende la macchina monoutente (single user) nella RAM vengono caricati soltanto alcuni moduli, mentre gli altri vengono copiati soltanto su richiesta ed eliminati dalla RAM non appena hanno compiuto il compito richiesto. Le routine (file di comandi) sempre presenti in RAM sono routine interne, mentre quelle chiamate all'occorrenza sono routine esterne. L'interfaccia di DOS è con riga di comando, come l'originale UNIX. Tutte le routine (comandi) vengono implementati mediante digitazione del comando ed invio (tasto invio della tastiera). Quando si digita il comando questi viene eseguito, o meglio dire interpretato dalla shell dei comandi che provvede a verificarne la correttezza sintattica e poi ad avviare l'esecuziione. Una serie di comandi possono anche essere messi tutti in fila e questo lavoro viene detto batch. Per questo motivo i file ordinati in sequenza vengono detti file batch. FIle e Directory In ambiente DOS i file vengono eseguiti mediante la parte terminale del nome che presenta elementi simbolici che ricollegano il file al contenuto. Questo significa che se il file è stato creato con un determinato A linguaggio e ha bisogno dello stesso programma A per visualizzarlo e modificarlo, il sistema DOS va a leggere la parte simbolica del nome che si chiama estensione. Ad esempio il programma Blocco Note serve per creare e modificare i file web, che si leggono con i browser Mozilla, Opera, Internet Explorer ecc. www joetex.eu Pag. 53 di 109

54 I simboli di DOS sono ".estensione", ossia punto seguito da tre caratteri. I tre caratteri, ad esempio ".txt" indicano al sistema operativo che il file è stato creato con Blocco Note e con esso può essere aperto. Un file di MS-Word ha estensione ".doc" e così via. Il sistema DOS dal nome del file ricava la parte simbolica (estensione) ed esegue il file. Originariamente DOS non accettava nomi oltre gli otto caratteri, mentre ora si possono utilizzare sino a 256 digitazioni. Attualmente i caratteri dell'estensione possono essere anche più di tre dopo il punto, come ad esempio il file d'immagine "Vesuvio.jpeg". Gli altri sistemi operativi come UNIX, Linux ecc. del file leggono la prima riga che è quella che dà indicazione del linguaggio. Quando si crea un file web, ad esempio, la prima riga deve essere quella relativa al codice contenuto nel file stesso ossia il seguente: <!DOCTYPE HTML PUBLIC "// W3C//DTD HTML 4.0 Transitional//EN"> A seconda del tipo di HTML utilizzato, varia il marcatore del file; per una pagina XML il marcatore del file è il seguente: <?xml version="1.0" encoding="iso "?> Aprendo un file della Acrobat con un programma inidoneo ci rendiamo subito conto che la prima riga ndica il linguaggio con il quale il file stesso è stato creato e deve essere mandato in output: %PDF-1.4 %äöüß 1 0 obj << /Length 2 0 R /Filter /FlateDecode >> stream xœí\ëêä ÞÌ;ô:?RÉ mw ÿ}` / œå d d».v5êîi2 00Ã Ý T ¾º Ýå ~» ü'žñ-\. ÿ ùñ ËÿË~ùè _?~ ~úø! áò'wùôóåûw ñpùôëå;ç úßç¾ü?úîáz ÏÜ ¼x Ã+^ \rýz\ ~ öaz/~ü ^Io=ÝãÆü É] {áíãg»¹» çú xþüàf¼ê;~âûq?þའ/ÞRÊOœòº"~ÜÛÈÞÝä ö ðƒ ˆ2æÛàx KyÛ KO í;ývuîšþál ]Ê <h =*Í'Ršïp /¾yÈ"¹ àbbç_û4;ò & ë[ûè] êlú ÃæªÛÈ wû Ží É =ÚœÍ ^éx[ä(h þšßó vé_ M þf,ôß ž ªífvÛm í+ª!ªå'µ ÁZÃQ!ÂÚ ²ïìY«P 1¾,kKËœVÝ)- ãð«f\ W»gY"hø(EâÍpid_Î /?d) 5ÛºŠŽÞ èëwüëx [8ê œfˆßýý q¾7ð nüð 6!@wþÌÊ~gzEØ>ÿ?ÞT Båµ LGY ºËb.ð«Á Vf ²õmŸ vp% ê L rdþ2 þ +^4&wWªÎ È8ƒ+J ó" A[ ñ²è Å1K Îÿ _xjðw Ñ {må>ü. (g0ìôàz çߪ kö ðz7å ðésžo 6 ¾] σLÒò ð^ ÝŠ¼OB( {ŸpSí} >É)ÚÜ ñk5~ sôt šå ;*S` Anche se vi è una parte non decodificata perché il programma di esecuzione non è idoneo, in ogni caso è stato riconosciuta la prima riga che indica la tipologia di file, che nel nostro caso è un Portable Document www joetex.eu Pag. 54 di 109

55 Format, che possiede un'estensione ".PDF". Ancora oggi WindowsXP (il sistema operativo della MicroSoft), al contrario di molti altri sistemi operativi, utilizza la parte simbolica del nome per mandare in output i file. Considerata la diffusione nel mondo di questo sistema operativo, che prende origine da MS-DOS, moltissimi programmi di altre aziende consentono di creare documenti (ad esempio programmi di testo, di immagini, di video ecc.) automaticamente con l'estensione. In DOS esistono le seguenti comuni estensioni:.exe per indicare i programmi eseguibili;.com per i file dell'os che eseguono comandi;.sys per i file di sistema.bat per i file batch, ossia un file che contiene una serie di comandi da eseguire;.bak per i file copia di sicurezza;.doc per i noti file dell'editor di testo MS-Word;.TXT per i file creati dall'editor di testo Blocco Note (Note Pad). Il file COMMAND.COM è il file interprete dei comandi di DOS e deve essere presente sul disco sul quale si sta lavorando. Se non esiste bisogna far precedere al comando il nome del disco nel quale il file richiesto è presente. I dischi sono indicati con le lettere alfabetiche A, B, C, D, E, F ecc. Alla lettera alfabetica seguono i due punti, in questo modo "C:". In DOS, come in UNIX, i caratteri jolly sono "*" e "?". Il primo indica una quantità non identificata di caratteri, per cui operare una ricerca con "ma*.doc" significa richiedere assolutamente tutti i file di word che iniziano con "ma". Il punto interrogativo, invece, indica un carattere solo non identificato, per cui "ma?.doc" significa richiedere solo i file a tre caratteri di word. ad esempio "mai.doc", "mah.doc" oppure "ma1.doc". I caratteri jolly possono essere inseriti anche nelle estensioni, per cui se non ricordiamo l'estensione possiamo sostituirla con un asterisco oppure con tre punti interrogativi: "ma*.*" cerca tutti i file con tutte le estensioni "ma*.???" cerca tutti i file con tutte le estensioni con tre caratteri DOS riconosce le periferiche con nomi riservati, che non possono essere usati dall'utente, di file speciali. I nomi indicano anche le porte della scheda madre alle quali si collegano le periferiche: "COM1:" è il nome della porta principale, "COM2:" è il nome della porta secondaria; "CON:" la porta della tastiera (input standard) e del video (output stardard); "PRN:" oppure "LPT1:" per indicare la porta di output per la stampante. Organizzazione di DOS dei file su disco DOS utilizza due strutture: la directory e il FAT. La Directory è un particolare file che contiene a sua volta altri file dei quali memorizza: la posizione di locazione su disco www joetex.eu Pag. 55 di 109

56 la data e ora di creazione e ultima modifica la quantità di memoria occupata il nome e l'estensione Il FAT (File Allocation Table) è la tabella di allocazione dei File. Essa contiene tutti gli indirizzi di tutti i file consservati e gli indirizzi degli spazi vuoti del disco, disponibili per memorizzare altri file. Quando il sistema operativo DOS formatta il disco rigido o un floppy, crea un file FAT con indirizzi vuoti ed una directory radice chiamata root. Essendo un computer monoutente la root è già quella predefinita la directory utente nella quale creare altre directory o cartelle. La struttura che si viene a creare è di tipo ad albero. L'indirizzo in forma logica è indicato da una contro-slash che indica la root, e altre contro-slash che indicano altre sotto-directory: C:\Giovanni\Document\immagini\nonno.jpg Anche in DOS l'indirizzo sopra riportato viene chiamato Pathname ma mentre nel sistema operativo Unix viene utilizzata la slash per compiere la distinzione logica tra le varie cartelle, con DOS si utilizza "contro-slash". Il percorso dopo l'indicazione dell'unità di memoria (disco rigido C:) è una prima controslash, che indica la root. Il Prompt dei comandi è una riga della shell che consente di sapere immediatamente dove ci si trova: C:\Documents and Settings\joetex>_ C: indica la periferica unità di memoria di massa; \ indica la root \Documents and Settings è una directory nella quale sono tutti gli utenti; \joetex è cartella in cui si trova l'operatore del computer, l'utente. >_ indicano il punto in cui l'user deve digitare i comandi; il trattino posto in basso (underscore) è lampeggiante. Il punto indica la directory corrente, per cui azionare il comando "cambia directory" (in dos il comando è cd) + il punto che segue uno spazio (cd.) significa restare nella directory in cui ci si trova. Microsoft Windows XP [Versione ] (C) Copyright Microsoft Corp. C:\Documents and Settings\joetex>cd. C:\Documents and Settings\joetex> Come possiamo vedere il comando è stato eseguito perché non vi è una risposta di errore. Ovviamente siamo ancora nella directory utente "joetex". Proviamo a inviare un comando errato: Microsoft Windows XP [Versione ] (C) Copyright Microsoft Corp. C:\Documents and Settings\joetex>mm "mm" non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch. C:\Documents and Settings\joetex> www joetex.eu Pag. 56 di 109

57 Per cambiare la directory, ossia per salire in quella chiamata "Documents and Settings" come in Unix si utilizza il comando "cd spazio punto punto" (cd..) Struttura e Sintassi dei comandi Paragrafo in costruzione I comandi comuni della shell I comandi più significativi sono: Change Directory con il comando "cd \nomedirectory" oppure "cd.." per salire nella directory superiore ripetendo l'perazione per salire ancora Microsoft Windows XP [Versione ] (C) Copyright Microsoft Corp. C:\Documents and Settings\joetex>cd.. C:\Documents and Settings> Per visualizzare file e directory di una directory "dir" (per la visualizzazione della cartella corrente) C:\Documents and Settings>dir Il volume nell'unità C non ha etichetta. www joetex.eu Pag. 57 di 109

58 Numero di serie del volume: 27E7-65F0 Directory di C:\Documents and Settings 19/10/ <DIR>. 19/10/ <DIR>.. 03/01/ <DIR> All Users 19/10/ <DIR> All Users.WINDOWS 23/10/ <DIR> Giovanni 21/10/ <DIR> joetex 0 File 0 byte 6 Directory byte disponibili C:\Documents and Settings> Oppure "dir A:" per visualizzare il contenuto dell'unità di memoria A: floppy disk. Come possiamo vedere nella cartella nella quale è stato lanciato il comando "dir" sono presenti 4 directory, una joetex, una Giovanni, una All Users e l'ultima All Users.WINDOWS. L'elenco include una "<DIR>." che indica la corrente cartella e una superiore "<DIR>.."Vi sono anche indicazioni di file (0 file) e dei byte disponibili. Proviamo a salire nella cartella root: C:\Documents and Settings>cd.. C:\>_ C:\>dir Il volume nell'unità C non ha etichetta. Numero di serie del volume: 27E7-65F0 Directory di C:\ 19/10/ <DIR> AddOn 25/05/ <DIR> ATI 28/08/ AUTOEXEC.BAT 15/10/ BcBtRmv.log 19/12/ <DIR> COMPAQ 09/11/ <DIR> Config.Msi 28/08/ CONFIG.SYS 19/12/ <DIR> cpqs 31/08/ devicetable.log 19/10/ <DIR> Documents and Settings 13/03/ EyeCandyLog.txt 22/07/ <DIR> giocoeimparo 28/10/ <DIR> harmonia-tomcat-server /12/ <DIR> hp 20/12/ <DIR> i386 15/07/ <DIR> InfoLab_VG09 01/08/ INSTALL.LOG 12/10/ <DIR> j2sdk1.4.2_05 www joetex.eu Pag. 58 di 109

59 11/05/ <DIR> My Drivers 15/10/ <DIR> Norton AntiVirus 27/08/ <DIR> ppcable 19/12/ <DIR> Program Files 12/11/ <DIR> Programmi 27/08/ <DIR> SWSETUP 19/02/ t1ks 19/02/ t1ks.1 19/02/ t1ks.2 27/08/ <DIR> temp 24/05/ UNWISE.EXE 12/11/ <DIR> WINDOWS 15/10/ winzip.log 19/04/ <DIR> WUTemp 11 File byte 21 Directory byte disponibili C:\> Per visualizzare file e cartelle sino a 24 righe per volta "dir /p" Per visualizzare file con estensione "dir /w" Per visualizzare file con nome che comincia con A "dir A*" Per visualizzare file con nome prova e tutte le estensioni con estensione "dir Prova.*" Per visualizzare file con estensione.doc "dir *.doc" Formattare un disco "Format" accompagnato da spazio e nome del disco da formattare "Format A:" formatta ad alta densità, 1,44 MB del disco floppy "Format A: /F:720" formatta a bassa densità, 1,44 MB del disco floppy Copia un disco "diskcopy A: C:\Documents and Settings\joetex\Documenti" copia il disco floppy A: nella cartella Documenti della cartella joetex contenuta nella cartella Documents and Settings di root. Crea una directory "md nomedirectory" (make directory) per creare una cartella nel luogo indicato dal prompt C:\Documents and Settings\joetex>md \a C:\Documents and Settings\joetex>_ www joetex.eu Pag. 59 di 109

60 Cancella cartella "rd nomedirectory" (remove directory) elimina la cartella ed il suo contenuto. Copia file o cartelle "copy A:pippo.doc C:\Documents and Settings\joetex\pluto.doc" per copiare pippo.doc dentro pluto.doc che sono in due dischi diversi, il primi in A: ed il secondo in C:. Visualizzare e modificare la data "date" C:\Documents and Settings\joetex>date Data corrente: 12/11/2005 Immettere nuova data: (gg/mm/aa) Control C (tenere pigiato il tasto ctrl e contemporaneamente pigiare c) per uscire dalla modifica data. Visualizzare e modificare l'ora "time" C:\Documents and Settings\joetex>date Data corrente: 12/11/2005 Immettere nuova data: (gg/mm/aa) C:\Documents and Settings\joetex>time Ora corrente: ,19 Immettere nuova ora: (operare il control + c) C:\Documents and Settings\joetex> Visualizza il contenuto di un file "type" C:\Documents and Settings\joetex>type dotnetfx.log [10/19/05,16:57:49] Starting Install.exe [10/19/05,16:57:49] Parsing switches from commandline: install /q [10/19/05,16:57:49] SourceDir: [10/19/05,16:57:49] Install started [10/19/05,16:57:49] Checking system requirements [10/19/05,16:57:49] OS: Win NT [10/19/05,16:57:49] Ver: [10/19/05,16:57:49] SP: Service Pack 2 [10/19/05,16:57:49] Checking Internet Explorer Version [10/19/05,16:57:49] Looking for [10/19/05,16:57:49] Found Internet Explorer Version: [10/19/05,16:57:49] Internet Explorer Version is OK... [10/19/05,16:57:49] System meets minimum requirements [10/19/05,16:57:49] Checking Windows Installer version... [10/19/05,16:57:49] Finished Checking Windows Installer version. www joetex.eu Pag. 60 di 109

61 [10/19/05,16:57:49] Trying to load msi.dll [10/19/05,16:57:49] Loading: C:\WINDOWS\system32\msi.dll [10/19/05,16:57:49] Looking for mscoree.dll from PDC [10/19/05,16:57:49] mscoree.dll from PDC is not installed local [10/19/05,16:57:49] Looking for mscoree.dll from Beta [10/19/05,16:57:49] mscoree.dll is not installed local [10/19/05,16:57:49] Trying to load msi.dll [10/19/05,16:57:49] Loading: C:\WINDOWS\system32\msi.dll [10/19/05,16:57:50] Installing: netfx.msi [10/19/05,16:57:50] Checking IIS... [10/19/05,16:57:50] IIS not found [10/19/05,16:57:50] Checking MDAC Version [10/19/05,16:57:50] Looking for [10/19/05,16:57:50] Found MDAC Version: [10/19/05,16:57:50] MDAC Version OK [10/19/05,16:57:50] StopDarwinService(): Darwin Service was already stopped [10/19/05,16:57:50] Trying to load msi.dll [10/19/05,16:57:50] Loading: C:\WINDOWS\system32\msi.dll [10/19/05,16:57:50] No UI [10/19/05,16:57:50] Calling MsiInstallProduct() with commandline: REBOOT=ReallyS uppress IIS_NOT_PRESENT=1 [10/19/05,16:59:23] MsiInstallProduct() returned 0 [10/19/05,16:59:23] [MsiInstallProduct] ReturnCode=0 [10/19/05,16:59:24] StopDarwinService(): Darwin service successfully stopped [10/19/05,16:59:24] Preparing Dialog [10/19/05,16:59:24] Message: Installazione di Microsoft.NET Framework completat a. [10/19/05,16:59:24] Install.exe returning 0 [10/19/05,16:59:24] [Install.exe] ReturnCode=0 C:\Documents and Settings\joetex> Cancella file e directory "del nomedelfile" (delete) C:\Documents and Settings\joetex>del pippo.txt Rinomina file "ren" (rename) C:\Documents and Settings\joetex>ren pippo.txt pluto.txt modifica il nome del file pippo in pluto www joetex.eu Pag. 61 di 109

62 Verifica versione del DOS utilizzato "ver" (version) C:\Documents and Settings\joetex>ver Microsoft Windows XP [Versione ] C:\Documents and Settings\joetex> La versione DOS di WindowsXP è un simulatore del DOS in quanto il vecchio sistema operativo è superato e non più alla base di XP. Cerca file o cartelle "find" accompagnato dal nome (anche con caratteri jolly) dal file da cercare Fraziona le righe dei file o gli elenchi delle directory "more" Per evitare lunghi elenchi non visibili nel monitor oppure le righe di un file molto lungo, si può utilizzare il comando "more" che fraziona in 24 righe per volta le liste delle cartelle e le righe delle cartelle. Combinazioni di Comandi Pipelining Il pipelining " " è un comando che consente di reidrezionare un flusso di dati in uscita da un altro comando; in questo modo il flusso diventa utile per essere indirizzato ad un altro comando. Pipeline significa "mettere in un tubo", ossia incanalare. Ad esempio utilizzando "dir find "22/08" more " si possono visualizzare tutti i file creati in data 22 agosto con una elencazione che non superi le 24 righe per volta (ammesso che in quella data siano stati creati più di 24 file). VEDI MEGLIO RIDIREZIONE IN OUT E IN IN File speciali www joetex.eu Pag. 62 di 109

63 Quando il bios cerca qualcosa da bootare (da avviare per il caricamento del cuore del sistema operativo), trova il kernel di DOS e due file vengono copiati in memoria centrale prelevando i dati da IO.SYS e MSDPS.SYS. La quantità di byte di questi file consente di copiarli su floppy, consentendo un disco di ripristino in caso di errore dei file della memoria di massa. Per creare dischi di ripristino il comando è il seguente: "SYS A:" Con una serie di caricamenti sulla RAM, il sistema operativo completa il suo percorso e prende i pieni comandi della macchina. Il file CONFIG.SYS Il file CONFIG.SYS è uno di quelli caricati in RAM che consentono all'user di dialogare col sistema. Un esempio di file config.sys è il seguente: COUNTRY= C:\DOS\COUNTRY.SYS (indica al sistema di utilizzare ora italiana, i caratteri standard italiani di prelevare i dati dal file country.sys) BREAK = ON (prevede la possibilità di interrompere l'esecuzione dei comandi mediante ctrl + c) FILES = 10 (indica quanti file aperti possono stare contemporaneamente) BUFFERS = 20 (si tratta di blocchi di 512 byte da destinare alle operazioni I/O) DEVICE = C:\DOS\ANSY.SYS (per le periferiche di input e di output è previsto lo standard internazionale ANSY conservato nel file ansy.sys presente nella cartella DOS di C:\, il e il pathname) SHELL=C:\COMMAND.COM /E:512 /P (indica la shell utilizzata e il pathname di riferimento) Per avviare la shell il cui nome file è COMMAND.SYS clic su Start + Esegui + digita cmd + invia Procedura di apertura del file Esegui www joetex.eu Pag. 63 di 109

64 Command è l'interprete di DOS ossia la shell di DOS. All'interno del file si possono inserire altri elementi mediante il comando "menu" e "menuitem": [MENU] menuitem=italia menuitem=statiuniti [Italia] COUNTRY= C:\DOS\COUNTRY.SYS [StatiUniti] COUNTRY= C:\DOS\COUNTRY.SYS Mediante questo inserimento all'eccensione si potrà scegliere digitando 1 o due per utilizzare la lingua Italiana o Statunitense che appaiono nel seguente modo: Menu di avvio di MS-DOS ==================== 1. Italia 2. StatiUniti File di comandi interni ed esterni La shell COMMAND.SYS al suo interno contiene istruzioni routine relative ai comandi COPY, DIR e REN. In questo modo l'esecuzione è rapida in quanto il file command.sys è già presente in memoria centrale. Altri comandi sono invece esterni e devono essere richiamati e copiati in memoria. I comandi esterni sono più complessi e meno frequenti. Una particolarità: differenza tra copy e xcopy; entrambi avviano una routine simile, soltanto che il primo copia i file uno alla volta mentre il secondo li copia tutti in memoria e poi li ricopia tutti insieme nel luogo in cui devono essere copiati. FIle AUTOEXE.BAT E' un programma che contiene dei comandi che provvedono a eseguire alcune operazioni all'accensione del computer. Vediamo alcuni di questi: Assegnazione dei valori alle variabili d'ambiente, come Path o Prompt; installazione di programmi da copiare in memoria centrale, quali il Keyb, il progrmma di tastiera; l'esecuzione di un programma "windows" con il quale si lavora solitamente. Le variabili d'ambiente sono indicazioni all'interprete che deve eseguire i comandi. Vengono lanciate col comando set e consentono di utilizzare facilmente le directory principali indicando al sistema quali sono le loro posizioni: SET BIN=C:\PROGRAM www joetex.eu Pag. 64 di 109

65 Questo comando assegna alla variabile BIN l'indirizzo della directory dei programmi. Lo stesso vale per le variabili che indicano le librerie, che sono insiemi strutturati di procedure utili ad un fine. Quando installiamo un programma solitamente è il file di installazione "setup.exe" che provvede ad aggiungere nel file AUTOEXE.BAT gli indirizzi del nuovo programma. Una variabile d'ambiente è il Prompt. Quando DOS lo esegue nella console tira fuori il luogo della cartella di lavoro dell'utente e il ">". I simboli della variabile sono $P$G che indicano appunto il path della cartella utente e ">" C:\Documents and settings\joetex>_ Volendo aggiungere l'ora al Prompt si può utilizzare il simbolo [$T] seguito dai due precedenti che produce la presenza tra parentesi quadre dell'ora; il comando per ottenere tale prompt è: SET PROMPT=[$T] $P$G Se nell'os è installato un file Ansi.sys è possibile visualizzare colori del prompt aggiungendo un carattere speciale detto "escape" indicato dal simbolo $E. Microsoft Windows XP [Versione ] (C) Copyright Microsoft Corp. C:\Documents and Settings\joetex>date Data corrente: 18/11/2005 C:\Documents and Settings\joetex>SET PROMPT=[$T] $P$G [ ,99] C:\Documents and Settings\joetex>SET PROMPT=[$T] $P$G$E [ ,55] C:\Documents and Settings\joetex> SET PROMPT=$P$G C:\Documents and Settings\joetex> Alcuni comandi utili per modificare il prompt (il simbolo $E produce una freccia " " che indica l'assenza del file Ainsi.sys). La variabile Path è molto importante per facilitare il sistema a utilizzare i programmi; per consentire l'uso dei programmi mediante console è sufficiente inserire una riga di istruzione di variabile Path nel file AUTOEXE.BAT che indichi dove si trova la directory con i programmi da lanciare direttamente, senza assegnare comando. Ad esempio vogliamo associare l'esecuzione dei programmi di utilità contenuti nella cartella UTILITY e quelli contenuti nella cartella PROGRAM direttamente da console, non facciamo www joetex.eu Pag. 65 di 109

66 altro che assegnare al DOS l'indirizzo: SET PATH:=C:\DOS;C:\UTILITY SET PATH:=C:\DOS;C:\PROGRAM Crea un file.bat per spostare file da una directory ad un'altra Infine con il file AUTOEXE.BAT si possono eseguire dei file speciali chiamati TSR che significa termina e stai residente, che sono programmi che funzionano come i driver o di altro tipo. I tipi di comandi eseguibili da DOS sono quelli con le estensioni COM (COMMAND), EXE (EXECUTABLE) e BAT (BATCH). Dei tre i primi due sono scritti in linguaggio macchina e possono essere eseguiti direttamente dopo essere stati copiati in memoria centrale. I file di tipo BAT, invece, sono scritti in codice superiore di tipo quello della shell, per cui ha bisogno di interprete. Il file BATCH (o script) sono un insieme di comandi posti in ordine per essere eseguiti uno dopo l'altro I file vengono eseguiti nello stesso ordine con il quale vengono scritti. Ad esempio per creare un file Batch che copi dalla unità di memoria USB tre file A,B e C nella cartella Documenti dell'utente joetex e poi cancelli i detti file dalla unità di memoria USB devo scrivere un file del genere: Situazione della pendrive (unità di lettura E:\) con i tre file da spostare Aprire Risorse del Computer Aprire C:\ Creare una cartella con nome JOETEX www joetex.eu Pag. 66 di 109

67 Verifica la creazione della cartella www joetex.eu Pag. 67 di 109

68 Aprire blocco note scrivere il seguente OFF CLS ECHO INTRODURRE LA PENDRIVE NELLA PORTA USB PAUSE COPY E:\A.DOC C:\JOETEX COPY E:\B.DOC C:\JOETEX COPY E:\C.DOC C:\JOETEX DEL E:\A.DOC DEL E:\B.DOC DEL E:\C.DOC assegna nome COPIAFILE.BAT www joetex.eu Pag. 68 di 109

69 Assegna estensione "Tutti i file" Salva il file in "Documenti" Apri la cartella Documenti manda in esecuzione il file COPIAFILE.BAT con un doppio clic (oppure tasto destro + Apri) (Finestra di cmd.sys che si apre mandando in esecuzione il file COPIAFILE.BAT con un doppio clic) pigiare un tasto Comando eseguito: i file della pendrive sono stati cancellati Situazione della pendrive (unità di lettura E:\) con i tre file copiati e cancellati www joetex.eu Pag. 69 di 109

70 Verifichiamo la situazione dei file in C:\JOETEX Torniamo al file Batch OFF disattiva l'output sullo schermo del comando, evita la chiamata in output sulla console del comando ECHO OFF stesso; CLS impedisce la creazione della console sul monitor; ECHO manda in output la console con la frase che è accanto: PAUSE manda in pausa il comando, consentendo eventualmente di inserire la pendrive; qualsiasi tasto va bene per continuare l'esecuzione del comando; Il comando COPY ovviamente copia, mentre il comando DEL cancella i file dal luogo d'origine (delete) Dopo avere pigiato un qualsiasi tasto di tastiera il file viene eseguito. Proviamo a rispostare i file A.DOC, B.DOC e C.DOC da C:\JOETEX a E:\ (pendrive, o unità di memoria USB) www joetex.eu Pag. 70 di 109

71 Apriamo Blocco note e digitiamo il seguente OFF CLS ECHO Verifica che la pendrive sia nella porta USB PAUSE COPY C:\JOETEX\A.DOC E:\ COPY C:\JOETEX\B.DOC E:\ COPY C:\JOETEX\C.DOC E:\ DEL C:\JOETEX\A.DOC DEL C:\JOETEX\B.DOC DEL C:\JOETEX\C.DOC Poi salviamo il file con nome RICOPIA.BAT ed estensione "Tutti i file". Mandiamo in esecuzione e ricompare la shell che mostra il messaggio di ECHO "Verifica che la pendrive sia nella porta USB" e una pausa che si supera pigiando un tasto qualsiasi: Verifichiamo apriamo le cartelle con il file Esegui: Start + Esegui + digita il Path + Ok (oppure invia con tastiera) Ecco la directory vuota www joetex.eu Pag. 71 di 109

72 Verifichiamo E:\ Per verificare mediante bash: Aggiungere al file batch appena creato (ricopia.bat) le indicazioni di lanciare la lista dei file di OFF CLS ECHO Verifica che la pendrive sia nella porta USB PAUSE COPY C:\JOETEX\A.DOC E:\ COPY C:\JOETEX\B.DOC E:\ www joetex.eu Pag. 72 di 109

73 COPY C:\JOETEX\C.DOC E:\ DEL C:\JOETEX\A.DOC DEL C:\JOETEX\B.DOC DEL C:\JOETEX\C.DOC DIR E:\ PAUSE In questo modo resta aperta la shell dei comandi con la lista dei file della directory E:\ richiesta: Nella elencazione della Directory E:\ è presente un file "verifica1ass_ doc" (circa 50 KB) e i notri tre file "A", "B" e "C" (ciascuno di circa 8 KB). Aprire un file mediante un file BAT Per aprire un file basta conoscerne il nome ed il path: Ridurre tutto ad icona Crea nuovo file sul Desktop di Blocco Note (si può utilizzare qualsiasi altro programma!) Scrivervi dentro una frase qualsiasi del tipo "File di prova per apertura mediante file BAT" Salva e chiudi il file con nome prova ed estensione Blocco Note, ossia ".txt" Crea un file BAT in documenti: Apri la cartella Documenti + tasto destro + Nuovo + Documento di Testo (apre Blocco note) + scrivi il path C:\"Documents and Settings"\"joetex"\"Desktop"\"prova.txt" www joetex.eu Pag. 73 di 109

74 + Salva con nome "apriprova.bat" ed estensione "Tutti i file" ; Manda in esecuzione il file con doppio clic e si apriranno le finestre bash e prova.txt: Le virgolette "" di apertura e chiusura della directory servono a caratterizzare la stessa come nome, perché il nome che compare sul monitor, ad esempio "Documents and settings", non corrisponde col suo nome presente nel Sistema Operativo. Le virgolette hanno appunto la funzione di trasformare in semplice nome una cartella d'indirizzo consentendo la traduzione dall'os. Creare un file Bat di spegnimento macchina o di riavvio Utilizziamo un file di collegamento ad un altro di sistema shutdown.exe oppure Creare una icona di spegnimento Per creare un file di spegnimento bisogna crearne uno che sia collegato con quello di sistema che si chiama "shutdown.exe". Questo file contiene anche i parametri di esecuzione dei comandi di riavvio. Il comando accompagnato dalla specifica -r spegne la macchina, mentre con la specifica -r riavvia (reboot). Una seconda specifica indica il tempo dopo il quale si deve spegnere: -t significa appunto specifica il tempo, che nel nosro caso è 0 secondi e 0 decimi di secondo (-t00) Per creare un file di collegamento si puà utilizzare il comando di scelta rapida "Collegamento". Creiamo un file di spegnimento della macchina sul desktop: Puntatore sul desktop + Tasto di scelta rapida +Nuovo + Collegamento + digita Shutdown s t 00 www joetex.eu Pag. 74 di 109

75 + Assegnare un nome al collegamento www joetex.eu Pag. 75 di 109

76 Puntatore sopra l icona + Tasto di scelta rapida + Proprietà + Cambia Icona + Scegli icona con selezione + OK + Applica + OK clic su Cambia icona + seleziona icona desiderata www joetex.eu Pag. 76 di 109

77 Pigiare Ok + Applica + OK Creare una icona di riavvio Puntatore sul desktop + Tasto di scelta rapida + Collegamento + Shutdown r t 00 + Assegnare un nome al collegamento Puntatore sopra l icona + Tasto di scelta rapida + Proprietà + Cambia Icona + Scegli icona con selezione + OK + Applica + OK www joetex.eu Pag. 77 di 109

78 Opzioni di scelta dell'icona del file di riavvio nella medesima maniera sopra citata. Script I file batch sono chiamati anche script. Con essi si possono mandare in esecuzione i file anche mediante bash. Nel caso in cui i file siano però realizzati con un programma di linguaggio non decodificabile dalla bash, questa interpreta nel suo specifico modo: Apriamo blocco note digitaiamo TYPE E:\A.DOC PAUSE TYPE E:\A.DOC Mandiamo in esecuzione il file che salviamo con "type_file_di_pendrive.bat", estensione.bat con opzione "Tutti i file": Se il file dovesse essere molto lungo basta aggiungere il comando confluisci (intuba) con 24 righe (prompt)>type E:\verifica1ass_ doc MORE > www joetex.eu Pag. 78 di 109

79 \ -- More -Il linguaggio proprietario di MS-Word non viene "sparato" in output e viene ricodificato con simboli sbeffeggianti. Con invia si aggiungono righe per visualizzare il testo per visualizzare "More" testo. Proviamo con un testo di Blocco Note simile a Istruzione: Creiamo "il file apri_istruzione.bat" sempre con Blocco Note + digita il path del file: TYPE C:\"Documents and Settings"\"Giovanni"\"Documenti"\"aa_joetex"\"libro_linux_091005"\"Istruzione.txt" PAUSE Se non mettiamo l'istruzione PAUSE il file viene eseguito, ossia lanciato in output con la console e poi subito richiuso. Pause permette di chiudere quando si vuole con una semplice digitazione di tastiera. Salva con nome "il file apri_istruzione.bat" e opzione Salva Come "Tutti i file"; mandiamo in esecuzione il file nuovo file bat: Blocco note consente di visualizzare il testo nella sua corretta digitazione, perché il codice sorgente non è proprietario e non ha interesse a nasconderlo. Se scrivo un file con nome scr.bat e al suo interno inserisco i seguenti dati manda in output un processo che non ha termine se non con il classico ctrl + c (control c) (prompt)>scr "Copia di indirizzo_posta_mozilla.txt" "indirizzo_posta_mozilla.txt" (prompt)>scr "Copia di indirizzo_posta_mozilla.txt" "indirizzo_posta_mozilla.txt"... (puntini sospensivi del redattore che indicano processo infinito) ^C Terminare il processo batch (S/N)? Digitare Type al posto di CSR (non riconosciuto dalla Bash di WindowsXP) all'interno del file scr.bat per vedere la seguente bash: www joetex.eu Pag. 79 di 109

80 Attenzione: la "è" accentata viene messa in output con simbolo non corretto, mentre la "é" con accento acuto diventa Non è prorio strano che un sistema operativo non riesca a decodificare i suoi stessi programmi? Creazione di file che Copia i file con estensione ".doc" da una directory "Documenti" di utente ad una pendrive che il sistema legge come unità E:\ La ridirezione " >NUL" impedisce alla bash di visualizzare i file che OFF CLS ECHO copia di tutti i file da C:\"DOcuments and settings"\"joetex"\"documenti" in E:\ ECHO ECHO PAUSE ECHO Sei sicuro che vuoi continuare? PAUSE ECHO Per uscire usa la scorciatoia di tastiera control + c PAUSE ECHO copia i file COPY C:\"DOcuments and settings"\"joetex"\"documenti"\*.doc E:\ >NUL ECHO Pigia un tasto per continuare chiudendo la bash PAUSE Nello stesso modo si possono copiare directory e file contenuti in una directory "Documenti" di utente ad una pendrive cambiando l'estensione "*.doc" in "*.*" tutti i file. Comandi di DOS Ecco i principali comandi di DOS. C:\Documents and Settings\joetex>help www joetex.eu Pag. 80 di 109

81 Per ulteriori informazioni su uno specifico comando, digitare HELP nome comando ASSOC Visualizza o modifica le applicazioni associate alle estensioni dei file. AT Pianifica l'esecuzione di comandi o programmi su un computer. ATTRIB Visualizza o cambia gli attributi di un file. BREAK Attiva o disattiva il controllo esteso di CTRL+C. CACLS Visualizza o modifica gli elenchi di controllo di accesso (ACL) dei file. CALL Richiama un programma batch da un altro. CD Visualizza il nome o cambia la directory corrente. CHCP Visualizza o imposta il numero di tabella codici attiva. CHDIR Visualizza il nome o cambia la directory corrente. CHKDSK Controlla un disco e visualizza il relativo rapporto sullo stato. CHKNTFS Visualizza o modifica la verifica di un disco durante l'avvio. CLS Cancella lo schermo. CMD Avvia una nuova istanza dell'interprete dei comandi di Windows. COLOR Imposta i colori predefiniti in primo piano e dello sfondo della console. COMP Confronta il contenuto di due file o di un gruppo di file. COMPACT Visualizza o modifica la compressione di file su partizioni NTFS. CONVERT Converte volumi FAT in NTFS. Non è possibile convertire l'unità in uso. COPY Copia uno o più file in un'altra posizione. DATE Visualizza o imposta la data. DEL Elimina uno o più file. DIR Visualizza un elenco di file e sottodirectory in una directory. DISKCOMP Confronta i contenuti di due dischi floppy. DISKCOPY Copia il contenuto di un disco floppy su un altro. DOSKEY Modifica righe di comando, richiama comandi di Windows, crea macro. ECHO Visualizza messaggi o attiva e disattiva l'eco dei comandi. ENDLOCAL Termina la localizzazione di modifiche di ambiente in un file batch. ERASE Elimina uno o più file. EXIT Termina il programma CMD.EXE (interprete dei comandi). FC Confronta due file o gruppi di file e visualizza le differenze tra di essi. FIND Ricerca una stringa di testo in un file o file. FINDSTR Ricerca stringhe in file. FOR Esegue un comando specificato per ogni file in un gruppo di file. FORMAT Formatta un disco per l'utilizzo con Windows. FTYPE Visualizza o modifica i tipi di file utilizzati nelle associazioni dell'e estensioni di file. GOTO Dirige l'interprete dei comandi di Windows a una riga con etichetta in un programma batch. GRAFTABL Abilita Windows alla visualizzazione di un set di caratteri estesi in modalità grafica. HELP Fornisce informazioni di aiuto per i comandi di Windows. IF Esegue un'elaborazione condizionale in un programma batch. LABEL Crea, cambia o elimina l'etichetta di volume di un disco. MD Crea una directory. MKDIR Crea una directory. MODE Configura una periferica di sistema. MORE Visualizza l'output una schermata alla volta. MOVE Sposta uno o più file da una directory a un'altra directory. PATH Visualizza o imposta un percorso di ricerca per file eseguibili. PAUSE Sospende l'elaborazione di un file batch e visualizza un messaggio. POPD Ripristina il valore precedente della directory corrente salvato con PUSHD. PRINT Stampa un file di testo. PROMPT Cambia il prompt dei comandi di Windows. PUSHD Salva la directory corrente e poi la cambia. RD Elimina una directory. RECOVER Recupera le informazioni leggibili da un disco danneggiato o difettoso. REM Registra commenti (note) in file batch o CONFIG.SYS. REN Rinomina i file. www joetex.eu Pag. 81 di 109

82 RENAME Rinomina i file. REPLACE Sostituisce i file. RMDIR Elimina una directory. SET Visualizza, imposta o elimina variabili di ambiente di Windows. SETLOCAL Inizia la localizzazione di modifiche di ambiente in un file batch. SHIFT Modifica la posizione di parametri sostituibili in file batch. SORT Ordina l'input. START Avvia una finestra separata per eseguire un programma o un comando specificato. SUBST Associa un percorso ad una lettera di unità. TIME Visualizza o imposta l'ora di sistema. TITLE Imposta il titolo della finestra per una sessione CMD.EXE. TREE Visualizza graficamente la struttura delle directory di un'unità o percorso. TYPE Visualizza il contenuto di un file di testo. VER Visualizza la versione di Windows. VERIFY Comunica a Windows di verificare o meno che i file siano stati scritti correttamente su un disco. VOL Visualizza un'etichetta di volume e il numero di serie del disco. XCOPY Copia file e strutture di directory. C:\Documents and Settings\joetex> Open Source Unix-like sono quei sistemi operativi molto simili al progetto madre di tutti i sistemi operativi maggiori, chiamato appunto UNIX. Linux è un sistema operativo derivato da Unix ma riscritto completamente a partire dal nucleo - kernel. Il suo creatore fu il finlandese Linus Torvalds, che nel 1991 lo rilasciò con licenza gratuita GNU GPL (GNU - General Public Licence). Per quanto attiene alla filosofia della licenza gratuita GNU GPL parleremo più approfonditamente in altra sede; per ora si consideri che il concetto Gnu GPL fa riferimento ad un discorso collegato al concetto di OPEN SOURCE. Open Source significa che il codice sorgente del kernel e dei moduli non è nascosto, ma è reso pubblico ed è anche modificabile all'interno della licenza GNU-GPL. Il sistema Open Source consente a migliaia di programmatori di tutti il mondo di dare contributi intellettuali e concreti per far crescere questa risorsa disponibile utile, gratuita e distribuibile gratuitamente a chicchessia. Il logo del sistema Linux è Tux, il pinguino disegnato da Larry Ewing, ma successivamene numerosissimi grafici si sono cimentati in versioni più o meno similari. Un Tux nostro è anche presente in intestazione pagina. Pur essendo Open Source basate sulla gratuità dell'uso e della distribuzione, alcune aziende che distribuiscono l'os, si fanno pagare la consulenza on line, il manuale cartaceo e altri servizi. Il compito delle aziende distributrici confezionano una o più vesti grafiche che hanno la funzione di facilitare l'uso del computer e soddisfare le esigenze estetiche del prodotto. 1. Le "distro" (nome col quale vengono comunemente chiamate le varie distribuzioni) comprendono un programma di installazione dell'os facilitato oramai come i concorrente che rilasciano software proprietario (il software proprietario si contrappone al free sostware e all'opensource); 2. Eventualmente creare una double-boot per coloro che non vogliono lasciare del tutto il vecchio OS utilizzato e ne mantengono 2 sullo stesso computer; 3. configurare le varie periferiche che possono essere collegate e lette dopo l'accensione del pc, ossia "a caldo"; www joetex.eu Pag. 82 di 109

83 4. offire via internet applicativi e programmi di varia utililità (partizionare il disco, utilizzare alcuni programmi di altri OS ecc.); 5. offrire strumenti di ufficio; 6. offrire aiuto mediante accesso ad internet o mediante telefono; 7. offrire un manuale cartaceo Le varie "distro" sono disponibili in versione gratuita scaricabili da internet, creando copie di dischi scaricati da internet oppure utilizzando le copie distribuite con le riviste. Le stesse distribuzioni gratuite sono disponibili a pagamento con un supporto tecnico che giustifica il prezzo. Vediamo alcune distribuzioni tra le più note: Redhat raggiungibile al sito ma nella sua nuova versione Fedora fruibile al sito Mandrake non più visitabile al sito attualmente Mandriva visitabile sul sito Suse disponibile al sito Debian scaricabile dal sito Preliminari di Installazione Siccome Installare Linux non era affatto semplice, molti utenti sono stati scoraggiati dall'uso. Inoltre la difficoltà, del tutto apparente, conisteva nell'utilizzo della riga di comando al posto dell'interfaccia grafica. Oggi tutti gli OS linux sono dotati di un programma autoinstallante che chiede all'utente la lingua, la tastiera (già consigliata in quanto collegata alla lingua), il nome dell'amministratore, la sua password, nome e password dell'utente da creare per loggarsi (collegarsi). Le vecchie versioni del nostro os non necessitava di hardware di grande livello: nelle versioni senza inerfaccia grafica si poteva addirittura avere una RAM di soli 8 MB. Si adatta attualmente anche ai vecchi 386 e 486 senza l'ambiente grafico. Attualmente è consigliabile per una media distribuzione linux con ambiente grafico: Processore Pentium II o simili da 330 MH; www joetex.eu Pag. 83 di 109

84 128 MB di RAM; 2 giga di spazio per il sistema operativo, i pacchetti applicativi, lo swap e l'archiviazione dei file; unità floppy o USB per la creazione di un disco di ripristino; Una unità di lettura CD-ROM - Masterizzatore R -RW; un mouse, sia esso collegabile con porta PS2 oppure USB; Un'accettabile scheda grafica Va detto che il sistema operativo è collegato alla qualità del processore, ossia linux riesce ad essere utilizzabile sia per processori con ingresso parallelo di 32 bit che di 64 bit. Per questo motivo è adattabile a moltisime piattaforme. Per installare il sistema operativo bisognava conoscere un certo numero di informazioni relative ai componenti hardware: Disco fisso: IDE hda da 8,2 GB; un eventuale Disco fisso 2: IDE hdb 4,18 GB; ricordiamo che il principale è Master ed il secondario viene definito slave; Partizioni: /dev/hda1 per lo swap; /dev/hda2 per il sistema operativo /; mount point: conoscenza del punto di collegamento; RAM: quantità installata, 256 MB; CD_ROM: tipo di interfaccia se SCSI, IDE (ATAPI) o altro; Adattatori SCSI (eventualmente): BusLogic SCSI Adapter, oppure Adaptec 2940UW o altro; Scheda di rete: marca e modello, 3COM, 3C590, Tulip ecc.; Mouse: Ps72 tre pulsanti Monitor: marca, modello, specifiche di fabbricazione, ad esempio View SOnic G773, sinc. orizz Khz sinc.vert Hz; scheda grafica: marca, modello e memoria; Ati Radeon 9000; scheda sonora (eventuale): S3 Sonic Vibes; I dispositivi IDE (Integrated o Intelligent Drive Electronics, acronimo che indica un'interfaccia che collega le periferiche di archiviazione di massa con la CPU; delle periferiche esistono la parte logica detta controller, che è il circuito elettronico di input/output, ossia prorio l'interfaccia che unisce la CPU con il coponente hardware, e una parte meccanica. È un sinonimo comunemente usato di ATA. ATA= "AT Attachment", solitamente tradocco con "attacco di tipo AT". E' una un particolare tipo di disk drive che possiede il controller integrato al suo interno) del canale secondario, il master o lo slave del controller secondario, vengono identificati dall'os linux come /dev/hdc e /dev/hdd. Eventuali altri canali IDE (memoria di massa USB ecc.) possono essere letti come /dev/hde e /dev/hdf. Queste sono dunque le modalità di lettura delle interfacce con le memorie di massa: /dev/hda - /dev/hdb - /dev/hdc - /dev/hdd - /dev/hde - /dev/hdf Lo Stesso avviene per i dischi SCSI con la variante che al posto di hda, hab, hdc ecc. viene sostituito il simbolo h con s: /dev/sda - /dev/sdb I dispositivi CD ROM vengono nominati nel seguente modo: /dev/scd0 - /dev/scd1 con l'ordine della sequenza SCSI. www joetex.eu Pag. 84 di 109

85 Le Partizioni Primarie o estese del disco presentano i seguenti nomi: /dev/hdx1 - /dev/hdx2 /dev/hdx3 - /dev/hdx4 (in cui X sostituisce il primo o il secondo disco rigido, ad esempio /dev/hda1 - /dev/hda2 e poi /dev/hdb1 - /dev/hdb2) Le partizioni logiche seguono la medesima nomenclatura: /dev/hdx5 - /dev/hdx6 in ragione della loro posizione fisica sul disco. Schema Riassuntivo: Partizionamento dei dischi rigidi Se intendiamo installare Linux bisogna considerare se sulla macchina esiste già un sistema operativo, se lo si vuole conservare per avere la possibilità di utilizzare due OS, se lo spazio è già stato creato sul disco, se vi sono più dischi ecc. Nel caso sia già presente sul disco un sistema operativo. bisogna creare un double - boot ossia un doppio avvio e consentire l'opzione di scelta. Prima di operare col partizionamento www joetex.eu Pag. 85 di 109

86 sono indispensabili due tipi di interventi sulla macchina che già possiede un os: la deframmentaziione il backup modificare la sequenza di boot del BIOS Avviare una versione Live di Linux Avviare il programma di partizionamento Deframmentazione Per partizionare il disco bisogna operare con un programma che consenta la formazione di un secondo file system, dividendo il disco in settori. Solitamente prima di partizionare il disco si procede, però, ad una Deframmentazione del Disco perchè in WIndows i file memorizzati in unità di massa occupano lo spazio adiacente al file precedente; quando vengono modificati e, ad esempio, ingranditi, spesso si ritrovano spezzettati in cluster non adiacenti e quindi frammentati su spazi fisici diversi. Proviamo un esempio con sequenza temporale: In data creo i seguenti file: a.doc - b.doc - c.doc In data creo i seguenti file: d.doc - e.doc - f.doc In data riprendo il file a.doc e lo modifico ingrandendolo del doppio (ad esempio un testo di 10 pagine diventa di 20); Verifichiamo la situazione dei file sul disco: a.doc - b.doc - c.doc - d.doc - e.doc - f.doc - a.doc ossia il file a.doc occupa uno spazio frammentato, non in zone e cluster adiacenti. Deframmentare il disco significa spostare i file b.doc - c.doc - d.doc - e.doc - f.doc per fare in modo che a.doc sia ricompattato, nel seguente modo: a.doc modificato (grande il doppio) - b.doc - c.doc - d.doc - e.doc - f.doc - vuoto - vuoto - vuoto Se poi in data elimino i file c.doc e d.doc si verifica la seguente situazione: a.doc modificato (grande il doppio) - b.doc - vuoto (al posto c.doc) - vuoto (al posto d.doc) - e.doc - f.doc - vuoto - vuoto - vuoto www joetex.eu Pag. 86 di 109

87 Ecco un'ideale visualizzazione del disco prima e dopo la deframmentazione: Il programma di deframmentaziione compatta i file frammentati e li posiziona tutti in forma adiacente, rilasciando spazio vuoto in modo uniforme. Backup Operata la deframmentazione del disco si consiglia di creare una copia di backup dei dati in modo da non perdere nessun file in caso di partizionamento distruttivo. Il partizionamento distruttivo avviene quando alcuni file occupano uno spazio fisico sul disco che non può essere cambiato (si tratta di alcuni file di sistema o file particolarmente grandi) e deve essere assegnato al nuovo partizionamento. Ovviamente si rischia di non poter accedere al sistema operativo originario e/o di perdere file importanti. Per il back-up, come per la deframmentazione, esistono diversi programmi gratuiti che operano in modo efficace e completo; in ogni caso è sempre possibile una semplice copia soltanto dei file creati dall'utente su disco DVD o altra unità di archiviazione di massa. Questo perché spesso di dispone dei dischi dei programmi installati, compreso il disco del Sistema Operativo. Modificare la sequenza di boot del BIOS Partizionare il disco è possibile con numerosi programmi OpenSource che girano anche su Windows. Uno di questi è FIPS, ma ne esistono altri molto validi, tra i quali QTParted. Questo programma è presente in molte distribuzioni di Linux e presenta una interfaccia grafica amichevole e di facile utilizzo. Per operare una partizione del disco rigido e utilizzare QTParted si può utilizzare un programma operativo Linux Live, ossia che viene montato tutto sulla RAM a partire dal disco CD-ROM. Per potere avviare Linux-Live bisogna innazitutto consentire al Bios di cercare il file di boot a partire da CD-ROM. Indicazioni operative: Vediamo l'immagine di un bios (cerchiata di rosso) applicata sopra una scheda madre www joetex.eu Pag. 87 di 109

88 Accendere la macchina appena compare la verifica del BIOS delle periferiche compare una frase: Press Del to enter Setup (pigia il tasto Delete - cancella per entrare nel settaggio) In alcune versioni del BIOS questo tasto è differente e bisogna pigiare f2 (il tasto funzione 2) Press f2 to enter setup Leggere le indicazioni del bios per entrare nel settaggio. A questo punto si entra in una finestra blu con indicazioni: esc (pigia il tasto) per uscire senza modificare; f10 (pigia il tasto funzione 10 per salvare e uscire) utilizzare i tasti freccia per muoversi nel menù: Utilizzare il tasto freccia a destra per raggiungere il menù Boot pigiare invio www joetex.eu Pag. 88 di 109

89 Utilizzare la freccia verso l'alto e verso il basso per selezionare la Boot Sequence e selezionare CD-ROM Drive (con la selezione il testo cambia colore) Utilizzare + opure f6 per portare in prima posizione il menù CD-ROM Drive oppure a seconda del bios scegliere la sequenza CD-ROM C A (rispettivamente lettore disco rom hard disk e infine floppy); www joetex.eu Pag. 89 di 109

90 Questo significa che il BIOS cercherà prima nell'unità di lettura CD-ROM per cercare un file di avvio (in Linux si chiama solitamente Lilo o Grub), se non lo trova lo cerca nell'unità di memoria indicata dalla seconda posizione, che deve essere C, ossia l'harddisk. L'ultima opzione è bene che sia la ricerca nel floppy disk. Dopo aver selezionato la sequenza desiderata (CD-ROM C Removeble DIsk A) pigiare esc Si torna alla schermata dei menù pigiare f10 per salvare ed uscire alla richiesta se Salvare e uscire digitare y (yes, suggerito dalla finestra di dialogo) pigiare invio. Caricamento del sistema operativo Linux-Live A questo punto inseriamo il CD - Rom Linux-Live Se è si carica il sistema operativo esistene clic su Chiudi sessione e poi Riavvia il sistema. La versione Linux-Live parte automaticamente e lo lasciamo caricare. Con qualche lentezza dovuta al tempo del lettore CD-ROM necessario a cercare le informazioni da caricare sulla RAM, il sistema operativo Linux Live è perfettamente Funzionante. Si può anche salvare i file sul Desktop e poi inviarli con Posta elettronica. In questo modo i file salvati su linux, se sono file immagine o della suite d'ufficio, possiamo scaricarli con la posta del vecchio sistema operativo. Crea file salvali ad esempio sul Desktop Apri il browser di internet Raggiungi il tuo provider Entra nella casella di posta Inviati presso lo stesso indirizzo di posta i file creati. Un comodo sistema operativo Linux che può essere caricato in RAM direttamente da CD-ROM è Knoppix, pensato per il settore Educational. Questa è la finestra che compare quando si avvia la versione Knoppix www joetex.eu Pag. 90 di 109

91 Clic su IT (lingua italiana) e leggere le caratteristiche. Le indicazioni per installare la versione dopo avere partizionato il disco sono presenti sulla pagina delle informazioni cliccando su in questo CD L'ultima delle domande frequenti è quella relativa al modo utile ad installare il sistema operativo sul disco rigido: Q: Can one also install the distribution from the CD onto a hard drive? A: sudo knoppix-installer. No warranty. La mancanza di garanzia, come in tutte le altre aziende di software, è relativa ai danneggiamenti poco probabili di unità fisiche e logiche. Quando installate qualsiasi programma accettate le condizioni che sono, appunto, la declinazione di responsabilità. www joetex.eu Pag. 91 di 109

92 Partizionare il disco rigido Quando il caricamento del sistema operativo è completo pigiare sulla barra di avvio clicc su Utilità clic su QTParted presente su molte distribuzioni, oppure utilizzare altro programma similare presente su altre distribuzioni. Si apre una prima temporanea finestra col logo dell'azienda che indica il Programma in corso di avvio. La finestra del programma Selezionare con un clic il primo /UNIONFS/dev/hda Il tempo di prelevare i dati viene visualizzato nella finestra temporanea che va chiusa www joetex.eu Pag. 92 di 109

93 Clic su OK Finestra che mostra la partizione dell'unco disco presente nel computer. Infatti il secondo /UNIONFS/dev/ hdc indica il lettore-masterizzatore CD. Visualizziamo il programma che legge l'unità /dev/hda Il settore di destra indica le tre partizioni: /dev/hda1 è quella di Linux con il file system ext3 con uno spazio di 2,38 GB di memoria dei quali una parte occupata (colore giallo); /dev/hda2 è quella di linux-swap (indicata col colore blu); 3. la 03 /dev/hda3 è il settore dedicato a Windows. Immaginiamo che il disco non sia ripartito in tre partizioni primarie, ma che sia come nella prossima immagine: www joetex.eu Pag. 93 di 109

94 Per partizionare /dev/hda1 Selezionare la partizione (clis sulla parte gialla posta in alto) Clic su Resize oppure tasto di scelta rapida + Resize Assegnare in MB la quantità da ritagliare. Per una partizione di linux vanno bene anche 4 GB, circa 4000 MB. Clic OK. Seleziona nuovamente il file system ntfs di windows clic su Resize e assegna una quantità all'incirca doppia rispetto alla RAM presente (se la RAM ha www joetex.eu Pag. 94 di 109

95 256 MB, assegnare 512 MB). Clic OK Seleziona il primo resize, quello da 4000 MB Tasto destro Format partition Selezionare il tipo di partizione che interessa mediante il menù a discesa che si ottiene col clic sulla freccina ntfs è il file system della partizione unica. Per Linux utilizzare il file system ext3 se si tratta di recenti relase. Selezionare ext3 Ripetere l'operazione selezionando la seconda area ritagliata di 512 MB Creare una partizione per i file di swap. Selezionare la partizione clic su format seleziona linux swap A questo punto lanciare tutto in esecuzione; A formattazione avvenuta si può installare il programma. Tattiche di partizionamento www joetex.eu Pag. 95 di 109

96 Il file system di Linux ext3 è anch'esso diviso in directory principali e secondarie secondo una struttura ad albero già indicata. Ogni partizione viene letta come file /deve/hda1 /deve/hda2 ecc. Ogni unità di memoria di massa, sia essa una partizione, cd-rom o una unità rimovibile, viene prima "montata" per consentire l'accesso. Il processo di montaggio deriva da un comando di derivazione Unix: mount. Per "smontare" l'unità di lettura il comando è umount. Va detto che spesso il sistema operativo viene installato su una partizione specifica ext3, mentre i documenti vengono riposti in un'altra partizione, in modo da consentire la rimozione oppure la sua sostituzione con altro sistema operativo senza modificare i file creati. Un'altra partizione tipica è quella relativa ai file di swap, che consentono l'utilizzo dell'hard-disk nel momento in cui la RAM non è sufficiente. Ecco le partizioni necessarie: 1. Partizione per il file system radice "/" 2. Partizione per i file di swap Partizioni consigliate: 1. Partizione per il file system radice "/" di capacità adatta a contenere i file più importanti del sistema operativo; 2. Partizione per il file di swap (solitamente il doppio della ram presente sul computer); 3. Partizione /boot di avvio, contenente il kernel ed altri file necessari all'avvio dell'os; 4. Partizione /usr per installare i pacchetti applicativi; 5. Partizione /home per gestire gli utenti del sistema; 6. Partizione /var per le variabili di sistema, come i file di spool, i file di posta, i file di log e, se esistono, i dati di errore e di eliminazione dei bug. Partizioni consigliate in caso di presenza di doppio sistema operativo: Partizoni precedenti (a scelta, quella necessaria, quella consigliata con possibili varianti) + Partizione del sistema operativo 2 (ad esempio Windows) + partizione di tipo FAT32 oppure NTFS nella quale salvare i documenti che possono essere letti e modificati da entrambi i sistemi operativi. Ricordiamo che Linux legge le partizioni Windows, sia quelle dei File System FAT, FAT16, FAT 32, NTFS. AL contrario Windows non consente la lettura di altre partizioni. Per questo motivo potrebbe essere comodo salvare i file di Linux e quelli di Windows su una partizione FAT32 (ad esempio) in modo che possano essere letti e modificati da entrambi i sistemi installati. Come è stato detto le partizioni primarie massime di un Hard disk sono 4. Per questo motivo si potrebbe creare una quarta partizione logica che consenta di essere suddivisa in altre logiche che risultino necessarie. Metodi di installazione Per installare il sistema operativo Linux sono possibili diverse strategie: Installazione da CD-ROM, mediante file di bootstrap da CD-ROM; Installazione da CD-ROM mediante boot presente su floppy-disk; Installazione da dispositivo PCMCIA con boot da floppy, qualora si utilizzi una macchina che non www joetex.eu Pag. 96 di 109

97 consente l'utilizzo di dispositivo PCMCIA per raggiungere il CD-ROM o la rete per l'installazione; Installazione da disco fisso con boot da floppy; Installazione da rete. Ottenere informazioni mediante bash Dopo avere installato un sistema Linux si possono ottenere informazioni utilizzando la Bash (Bourne Again Shell) e inserendo il comando man (manuale) poi lo spazio e poi il nome del comando del quale si cercano informazioni: man cp Il comando inviato alla bash restituisce informazioni relative al comando cp, ossia stampa in output sul monitor il manuale di cp (copia). Il comando man -k + nome di una parola chiave consente di cercare quelle pagine di manuale che contengono la parola chiave. man -k copy Il comando inviato alla bash restituisce pagine che contengono la parola copy, ossia stampa in output sul monitor tutte le pagine del manuale in cui sia inserita la parola copy. Altro modo per ottenere le informazioni è scrivere il nome del comando "cp" spazio "-help" cp -help Inoltre anche il comando info con accanto il nome del comando richiesto mette in output della bash le informazioni richieste info cp Il comando help presenta un elenco ci comandi supportati da una breve spiegazione. La stessa cosa lo fa il comando man senza altre indicazioni. man help Struttura dei comandi I comandi sono caratterizzati da una sequenza di opzioni relative alle varie possibilità del comando stesso e/o indicative del luogo fisico in cui si trovano file e il loro nome. www joetex.eu Pag. 97 di 109

98 Struttura dei comandi nome del comando (man è un comando e significa manual, cp è un comando e significa copy, mv indica muovi, che nel gergo windows è corrispettivo di taglia e incolla) -opzione (l'opzione deve sempre essere preceduta dal segno -; per esempio ls -a significa comando mostra la lista dei file e -a è l'opzione all, ossia tutti i file) argomenti nome file Un esempio: ls -al /joetex_libro/imgs Ls è il comando crea una lista -al sono le opzioni del comando, ossia crea una lista completa (-a, ossia all) e con molte informazioni (l significa long, long description) /joetex_libro/imgs indica il luogo fisico del quale creare la lista, ossia la directory imgs (immagini) interna alla directory joetex_libro Successione di comandi Si possono infilare più comandi uno dietro l'altro utilizzando i simboli ";" seguito da uno spazio. Ad esempio who; date Questi sono due comandi inviati insieme: who stampa in output coloro che sono collegati con il computer mentre date tira fuori la data. Esecuzione in background La bash invia i comandi per farli eseguire dalla macchina e aspetta che siano stati processati ed eseguiti i comandi per poi riportare in output il risultato (se richiesto) del comando oppure il prompt che consente di avviare un nuovo comando. Questo tipo di attesa mette il programma bash nella condizione di uso in foreground, ossia non è utilizzabile sino al completamento del processo avviato col comando. Diversamente si possono impostare processi che lavorino in contemporanea con la bash e lo facciano in background. La bash invia il comando alla macchina che provvede all'esecuzione, nel frattempo lavora ugualmente senza attendere il completamento del processo perché questi lavora in backgroun. Il simbolo di Linux che consente l'esecuzione del comando in backround è ampersand "&". Esempio: javac pippo.java & www joetex.eu Pag. 98 di 109

99 Comandi di gestione file Aprire la bash: Clic sull'icona del menù di scelta rapida Sistema, su Terminali ed infine su Konsole. oppure clic su K di Knoppix, poi su Cambiare directory cd.. per andare nella cartella superiore cd nomecartella per accedere a quella contenuta in home Ad esempio Ricordiamo che ~ indica la directory Home dell'utente, / la directory principale di root. Se siamo in root basta pigiare i tasti cd e poi mentre si mantiene pigiato il tasto alt gr si digita accento circonflesso per digitare il segno tilde. Con un invio il programma riporta il prompt nella posizione di partenza, ossia in Home. Lo stesso risultato lo so ottiene se partendo da qualsiasi posizione di cartella si digita cd. Creare ed eliminare una directory mkdir (in cui mk è abbreviazione di make e dir di directory); creiamo la directory immagini La mancata risposta indica che la creazione è stata effettuata. Proviamo a ripetere l'operazione per verificare se il programma ci fa ricreare una cartella immagini www joetex.eu Pag. 99 di 109

100 Cancellare la directory appena creata rmdir in cui rm sta per remove e dir per directory Salire di due livelli con un solo comando cd../.. Visualizzare il contenuto delle directory ls comando che crea una lista di file interni alla directory in cui ci si trova, posizione indicata dal prompt: [joetex@localhost ~]# questo prompt predefinito in Mandriva 10.2 indica la cartella dell'utente (riconoscibile dalla tilde) L'amministratore di sistema ha come simbolo il # al posto della tilde. La lista può essere semplicemente dei file dell'utente oppure comprendere tutti file (directory e documenti). Per ottenere la seconda opzione bisogna aggiungere -a, ossia all (tutti). www joetex.eu Pag. 100 di 109

101 La lista con una descrizione maggiore di alcuni elementi dei file è relativa all'opzione -l. Se si uniscono -a e -l si ottiene -al, opzione tipica che chiede la lista di tutti i file con le seguenti informazioni: le protezioni, il numero dei link al file il nome del proprietario, il nome del gruppo, le dimensioni in byte, la data e l'ora di ultima modifica il nome dei file. L'opzione -i visualizza anche l'i-node, ossia il numero di processo identificativo L'opzione -F contrassegna le directory con / mentre i file eseguibili con un asterisco * joetex@localhost ~]$ ls -ali totale drwx--x--x 34 joetex joetex 4096 gen 14 15:35./ drwxr-xr-x 3 root root 4096 gen 6 15:50../ drwxr-xr-x 2 joetex joetex 4096 gen 14 14:06 aaa/ rw joetex joetex 485 gen 14 15:30.bash_history rw-r--r-- 1 joetex joetex 24 gen 6 15:50.bash_logout rw-r--r-- 1 joetex joetex 191 gen 6 15:50.bash_profile rw-r--r-- 1 joetex joetex 124 gen 6 15:50.bashrc rw-rw-r-- 1 joetex joetex 56 gen 14 12:23.DCOPserver_localhost lrwxrwxrwx 1 joetex joetex 37 gen 14 12:23.DCOPserver_localhost_:0 -> www joetex.eu Pag. 101 di 109

102 /home/joetex/.dcopserver_localhost drwx joetex joetex 4096 gen 13 16:48 Desktop/ drwxr-xr-x 5 joetex joetex 4096 gen 7 21:44.dia/ rw joetex joetex 24 gen 6 23:20.dmrc drwxrwxr-x 3 joetex joetex 4096 gen 6 16:03 Documents/ drwxrwxr-x 3 joetex joetex 4096 gen 6 22:42 Download/ drwxr-x--- 2 joetex joetex 4096 gen 6 23:05.eggcups/ rw joetex joetex 16 gen 6 23:07.esd_auth drwxrwxr-x 7 joetex joetex 4096 gen 6 23:06.evolution/ rw-rw-r-- 1 joetex joetex 385 gen 14 15:35.fonts.cache drwx joetex joetex 4096 gen 14 12:23.gconf/ drwx joetex joetex 4096 gen 14 12:45.gconfd/ drwxr-xr-x 21 joetex joetex 4096 gen 14 12:34.gimp-2.2/ drwx joetex joetex 4096 gen 6 22:58.gnome/ drwx joetex joetex 4096 gen 7 21:43.gnome2/ drwx joetex joetex 4096 gen 6 15:06.gnome2_private/ drwx joetex joetex 4096 gen 6 22:58.gnome_private/ drwx joetex joetex 4096 gen 6 22:58.gnucash/ drwxr-xr-x 2 joetex joetex 4096 gen 6 23:05.gstreamer-0.8/ rw-rw-r-- 1 joetex joetex 265 gen 6 15:06.gtk-bookmarks rw-rw-r-- 1 joetex joetex 134 gen 6 23:05.gtkrc-1.2-gnome rw joetex joetex 390 gen 14 12:23.ICEauthority drwx joetex joetex 4096 gen 6 15:06.kde/ drwx joetex joetex 4096 gen 6 15:06.local/ rw-rw-r-- 1 joetex joetex 2052 gen 6 15:12.mailcap drwxr-xr-x 3 joetex joetex 4096 gen 6 15:06.mcop/ rw joetex joetex 31 gen 14 12:23.mcoprc drwxrwxr-x 2 joetex joetex 4096 gen 6 15:06.mdk-folders/ drwxr-xr-x 2 joetex joetex 4096 gen 6 15:06.MdkOnline/ drwx joetex joetex 4096 gen 6 23:05.metacity/ rw-rw-r-- 1 joetex joetex 635 gen 6 15:12.mime.types drwxrwxr-x 3 joetex joetex 4096 gen 6 23:18.mozilla/ drwxrwxr-x 2 joetex joetex 4096 gen 6 15:06 Musica/ drwxr-xr-x 3 joetex joetex 4096 gen 6 23:05.nautilus/ rwxrwxr-x 1 joetex joetex 47 gen 7 21:42.oofficerc* drwxr-xr-x 5 joetex joetex 4096 gen 14 13:46.openoffice/ drwxrwxr-x 2 joetex joetex 4096 gen 6 15:06 Pictures/ drwxrwxr-x 2 joetex joetex 4096 gen 14 12:23.qt/ rw joetex joetex 280 gen 6 22:41.recently-used drwx joetex joetex 4096 gen 14 12:45.screem/ rw-r--r-- 1 joetex joetex 3793 gen 6 15:50.screenrc rw-rw-r-- 1 joetex joetex 65 gen 6 15:12.sversionrc drwx joetex joetex 4096 gen 14 12:37.thumbnails/ drwx joetex joetex 4096 gen 14 13:54 tmp/ drwxrwxr-x 2 joetex joetex 4096 gen 6 15:06 Video/ rw joetex joetex 648 gen 6 15:24.viminfo rw joetex joetex 115 gen 14 12:23.Xauthority rw joetex joetex gen 14 15:39.xsession-errors [joetex@localhost ~]$ Per ottenere una lista di file selezionati si utilizzano i caratteri jolli * per sostituire un numero imprecisato di caratteri, oppure il? per un solo carattere. Ls A* www joetex.eu Pag. 102 di 109

103 per listare tutti i file che cominciano con A maiuscolo (la Bash è case sensitive) ls?b* per listare tutti i file che hanno la lettera b minuscola in seconda posizione. Visualizzare e concatenare un file cat nomedelfile Se si trova in una cartella di terzo livello inferiore cat /nomecartella1/nomecartella2/nomefile Oppure il comando more che divide un file molto lungo in una quantità di righe predefinito e permette di viasualizzare una riga dopo l'altra mediante tasto invio. Col comando more si resta in visualizzazione del contenuto del file sino a quando si utilizzano i tasti ctrl insieme con c, che riporta il prompt dei comandi. more nomefile pigia invia per avanzare nella lettura del file con numerose righe non visualizzabili tutte insieme pigia contro insieme con c per uscire dal file e visualizzare il prompt www joetex.eu Pag. 103 di 109

104 Concatenare i file cat nomefile1 nomefile2 nomefile3 Mette insieme uno dietro l'altro tutti i file elencati Copia una cartella o un documento Per copiare un documento o una cartella è necessario copiare altrove il file oppure rinominarlo. Questo perché il nome del file è un identificativo che non deve dare adito a opzioni di scelta da parte del sistema operativo, nel senso che in una determinata directory vi deve essere un unico file con un determinato nome. Copiare con altro nome è possibile nella stessa cartella, oppure copiare con lo stesso nome in altra cartella è ugualmente possibile. Per questo motivo la sintassi è la seguente cp nomefile nomecartelladiversa oppure cp nomefile nomefile2 in cui il nome numero 1 non è identico del secondo. Considerato che il sistema operativo è case sensitive, basta mettere una maiuscola al nome del file da duplicare all'interno della stessa directory. Muovi un file (directory o documento) da una cartella ad un'altra mv nomefile nomecartelladidestinazione Utilizzare il path per spostare i file sintassi: mv path_nameoriginario path_namedestinatario mv /nomecartella1/nomecartella2/nomefile../nomecartella3/nomecartella4/nomefile Rinominare un file all'interno di una stessa directory mv nomefile1 nomefile2 Cancellare un file rm nomefile oppure se presente in altra directory rm path_name www joetex.eu Pag. 104 di 109

105 Opzione di richiesta di conferma di cancellazione di file rm -i nomefile Rispondere y per cancellare (risposta yes), rispondere n per rifiutare risposta no). Alcune distro Linux, come ad esempio eduknoppix, di predefinito presentano un alias che trasforma il comando rm in comando rm -i, in modo da creare sempre una richiesta di cancellazione. Questo perché si ipotizzano degli user principianti che possono creare danni ai loro stessi file cancellandoli senza essere consapevoli di quanto vanno eseguendo. Opzione di cancellazione di file di una sottodirectory Un'altra opzione che cancella tutti i file interni ad una cartella a sua volta inserita dentro un'altra, è il l'opzion -r (rocursive) rm -r /nomecartella/nomefile Comando con opzione doppia rm -ir Crea un link ad un file Creare un link significa assegnare due nomi diversi allo stesso file, come se fossero 2 file diversi. In realtà modificando uno dei due, si modifica anche l'altro, in quanto non trattasi di file vero e proprio ma solo di collegamento. ln nomefile1 nomefile2 Verificando con lista la presenza dei file nella cartella, si noteranno due file diversi, dei quali uno è solo un link, l'altro è il vero contenitore dei dati. www joetex.eu Pag. 105 di 109

106 La verifica visibile nell'immagine che conferma la presenza del link è relativa al numero identificativo richiamato con -i. Entrmbi i file prova_file e prova_file2 hanno lo stesso i-node, nel nostro caso Creare un link è possibile anche con file presenti in altre directory. Il risultato non cambia. Basta specificare il pathname. Se non sbaglio questa modalità si chiama Hard Link. Il link simbolico, invece, cea un collegamento soltanto al nome di un file, e non anche al suo i-node. L'opzione per la creazione di un file simbolico è -s (symbolic link): ln -s nomefile1 nomefile2 Operare ricerche di file all'interno del file system find pathname -name nomefile In cui path name indica la directory di partenza (ad esempio /) Se si vogliono utilizzare i caratteri jolly bisogna utilizzare apici '*.do?'. Considerato che per cercare i file in tutto il file system il programma può impiegare del tempo, allora si può aggiungere una & che manda in background la ricerca. find. -name nomefile & per partire dalla cartella attuale (un punto solo indica la cartella corrente, due punti quello superiore) find / -name nomefile & Cambiare i permessi dei file Sintassi: chmod tipoutente opzione permesso pathname Quando si lista una directory per ispezionarne i suoi file, si può verificare anche il proprietario del file ed www joetex.eu Pag. 106 di 109

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi Software relazione Hardware Software di base Software applicativo Bios Sistema operativo Programmi applicativi Software di base Sistema operativo Bios Utility di sistema software Software applicativo Programmi

Dettagli

Sistemi Operativi Kernel

Sistemi Operativi Kernel Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni

Dettagli

Informatica: il sistema operativo

Informatica: il sistema operativo pierpaolo.vittorini@cc.univaq.it Università degli Studi dell Aquila Facoltà di Medicina e Chirurgia 6 ottobre 2006 Il software Il software è l insieme dei programmi che operano sul calcolatore Software

Dettagli

TEORIA DEI SISTEMI OPERATIVI

TEORIA DEI SISTEMI OPERATIVI TEORIA DEI SISTEMI OPERATIVI Classificazione dei sistemi operativi (Sistemi dedicati, Sistemi batch, Sistemi interattivi multiutente) CLASSIFICAZIONE DEI SISTEMI OPERATIVI Le tre principali configurazioni

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle

Dettagli

Sistemi operativi. Esempi di sistemi operativi

Sistemi operativi. Esempi di sistemi operativi Sistemi operativi Un sistema operativo è un programma che facilita la gestione di un computer Si occupa della gestione di tutto il sistema permettendo l interazione con l utente In particolare un sistema

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU Il sistema operativo Sistema operativo Gestione della CPU Primi elaboratori: Monoprogrammati: un solo programma in memoria centrale Privi di sistema operativo Gestione dell hardware da parte degli utenti

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Il software. la parte contro cui si può solo imprecare. Il software

Il software. la parte contro cui si può solo imprecare. Il software Il software la parte contro cui si può solo imprecare Il software L hardware da solo non è sufficiente per il funzionamento dell elaboratore ma è necessario introdurre il software ovvero un insieme di

Dettagli

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi 1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi Il processo E' un programma in esecuzione Tipi di processo Stati di un processo 1 indipendenti

Dettagli

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo Il Sistema Operativo Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo ... ma Cos'è un S.O.? un PROGRAMMA!... ma Cos'è un programma? PROGRAMMA: 1. algoritmo sequenza

Dettagli

La Gestione delle risorse Renato Agati

La Gestione delle risorse Renato Agati Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File

Dettagli

Architettura di un sistema di calcolo

Architettura di un sistema di calcolo Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

Il memory manager. Gestione della memoria centrale

Il memory manager. Gestione della memoria centrale Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo L2 1.1-Introduzione 1 Prerequisiti Concetto intuitivo di applicazione per computer Uso pratico elementare di un sistema operativo 2 1 Introduzione Uno dei compiti di un sistema

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO IL SOFTWARE L HARDWARE da solo non è sufficiente a far funzionare un computer Servono dei PROGRAMMI (SOFTWARE) per: o Far interagire, mettere in comunicazione, le varie componenti hardware tra loro o Sfruttare

Dettagli

Infrastrutture Software

Infrastrutture Software Infrastrutture Software I componenti fisici di un sistema informatico sono resi accessibili agli utenti attraverso un complesso di strumenti software finalizzati all utilizzo dell architettura. Si tratta

Dettagli

Funzioni del Sistema Operativo

Funzioni del Sistema Operativo Il Software I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (ferramenta). La struttura del calcolatore può essere schematizzata come una serie di

Dettagli

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA) Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Secondo biennio Articolazione Informatica TPSIT Prova Quarta Sistema operativo: gestione memoria centrale La Memoria Virtuale consente di superare i limiti della Memoria Centrale : A. no B. a volte C. si, ma non sempre e' adeguata D. si, attraverso tecniche di gestione

Dettagli

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 : Un Sistema Operativo è un insieme complesso di programmi che, interagendo tra loro, devono svolgere una serie di funzioni per gestire il comportamento del computer e per agire come intermediario consentendo

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria

Dettagli

Il Software. Il software del PC. Il BIOS

Il Software. Il software del PC. Il BIOS Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

Capitolo 1 Installazione del programma

Capitolo 1 Installazione del programma Capitolo 1 Installazione del programma Requisiti Hardware e Software Per effettuare l installazione del software Linea Qualità ISO, il computer deve presentare una configurazione minima così composta:

Dettagli

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

Dettagli

Esempio: aggiungere j

Esempio: aggiungere j Esempio: aggiungere j Eccezioni e interruzioni Il progetto del controllo del processore si complica a causa della necessità di considerare, durante l esecuzione delle istruzioni, il verificarsi di eventi

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,

Dettagli

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. La nozione di multiprogrammazione prevede la possibilità di

Dettagli

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica. Tecnologie informatiche ACCESSO REMOTO CON WINDOWS Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica. Un esempio di tale servizio

Dettagli

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE 1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma

Dettagli

(A) CONOSCENZA TERMINOLOGICA (B) CONOSCENZA E COMPETENZA

(A) CONOSCENZA TERMINOLOGICA (B) CONOSCENZA E COMPETENZA (A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: Condivisione locale Condivisione di rete Condivisione web Pulitura disco Riquadro delle attività (B) CONOSCENZA E COMPETENZA

Dettagli

Sistemi operativi e reti A.A. 2013-14. Lezione 2

Sistemi operativi e reti A.A. 2013-14. Lezione 2 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 2 Giovedì 10-10-2013 1 Sistemi a partizione di tempo (time-sharing) I

Dettagli

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera CPU Memoria principale Il Sistema Operativo Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura A.A. 2009/2010 ALU Unità di controllo Registri A indirizzi

Dettagli

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione Lezione 4 La Struttura dei Sistemi Operativi Introduzione Funzionamento di un SO La Struttura di un SO Sistemi Operativi con Struttura Monolitica Progettazione a Livelli di un SO 4.2 1 Introduzione (cont.)

Dettagli

Sistemi Operativi. 5 Gestione della memoria

Sistemi Operativi. 5 Gestione della memoria Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria

Dettagli

I THREAD O PROCESSI LEGGERI Generalità

I THREAD O PROCESSI LEGGERI Generalità I THREAD O PROCESSI LEGGERI Generalità Thread: segmento di codice (funzione) Ogni processo ha un proprio SPAZIO DI INDIRIZZAMENTO (area di memoria) Tutti i thread genereti dallo stesso processo condividono

Dettagli

Il computer: primi elementi

Il computer: primi elementi Il computer: primi elementi Tommaso Motta T. Motta Il computer: primi elementi 1 Informazioni Computer = mezzo per memorizzare, elaborare, comunicare e trasmettere le informazioni Tutte le informazioni

Dettagli

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi

Dettagli

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia

Dettagli

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI Buona lezione a tutti!! SISTEMI OPERATIVI Gli appunti sono disponibili per tutti gratis sul sito personale del Prof M. Simone al link: www.ascuoladi.135.it nella pagina web programmazione, sezione classi

Dettagli

PARTE 4 La Macchina Software

PARTE 4 La Macchina Software PARTE 4 La Macchina Software 94 Macchina Hardware e Macchina Software applicativi sistema operativo macchina hardware Agli albori dell'informatica, si programmava in binario, cioe` in linguaggio macchina,

Dettagli

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi (modulo di Informatica II) I processi Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 3-Schedulazione 1 Prerequisiti Concetto di media Concetto di varianza 2 1 Introduzione Come sappiamo, l assegnazione della CPU ai processi viene gestita dal nucleo, attraverso

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1 GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

Dettagli

Scheduling della CPU:

Scheduling della CPU: Coda dei processi pronti (ready( queue): Scheduling della CPU primo ultimo PCB i PCB j PCB k contiene i descrittori ( process control block, PCB) dei processi pronti. la strategia di gestione della ready

Dettagli

Gestione del processore e dei processi

Gestione del processore e dei processi Il processore è la componente più importante di un sistema di elaborazione e pertanto la sua corretta ed efficiente gestione è uno dei compiti principali di un sistema operativo Il ruolo del processore

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

Dettagli

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche Sommario Definizione di S. O. Attività del S. O. Struttura del S. O. Il gestore dei processi: lo scheduler Sistemi Mono-Tasking e

Dettagli

Informatica e Bioinformatica: Sistemi Operativi

Informatica e Bioinformatica: Sistemi Operativi Informatica e Bioinformatica: Sistemi Operativi 11 marzo 2013 Macchina Hardware/Software Sistema Operativo Macchina Hardware La macchina hardware corrisponde alle componenti fisiche del calcolatore (quelle

Dettagli

PORTALE CLIENTI Manuale utente

PORTALE CLIENTI Manuale utente PORTALE CLIENTI Manuale utente Sommario 1. Accesso al portale 2. Home Page e login 3. Area riservata 4. Pagina dettaglio procedura 5. Pagina dettaglio programma 6. Installazione dei programmi Sistema operativo

Dettagli

Controllo di processi

Controllo di processi Controllo di processi Ogni processo del sistema ha un PID (Process Identity Number). Ogni processo può generare nuovi processi (figli). La radice della gerarchia di processi è il processo init con PID=1.

Dettagli

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli

Dettagli

Introduzione al sistema operativo Il file system: file, directory,...

Introduzione al sistema operativo Il file system: file, directory,... ,OVRIWZDUHGLVLVWHPD cosa vedremo: Introduzione al sistema operativo Il file system: file, directory,...... 223,OVRIWZDUHLQWURGX]LRQH L hardware da solo non è sufficiente per il funzionamento dell elaboratore

Dettagli

FoLUG Forlì Linux User Group. Partizionamento

FoLUG Forlì Linux User Group. Partizionamento FoLUG Forlì Linux User Group con la partecipazione della Circoscrizione n 3 di Forlì Partizionamento Quello che occorre sapere sul disco fisso per installare UBUNTU 10.10 o altri sistemi operativi. FoLUG

Dettagli

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Concetti fondamentali L obiettivo della multiprogrammazione è di avere processi sempre in esecuzione al fine di

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi Sistemi Operativi Lez. 13: primitive per la concorrenza monitor e messaggi Osservazioni I semafori sono strumenti particolarmente potenti poiché consentono di risolvere ogni problema di sincronizzazione

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

Lo scheduling. Tipici schedulatori

Lo scheduling. Tipici schedulatori Lo scheduling Un processo durante la sua evoluzione è o running o in attesa di un evento. Nel secondo caso trattasi della disponibilità di una risorsa (CPU, I/O, struttura dati, ecc.) di cui il processo

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...

Dettagli

ARCHITETTURA DI RETE FOLEGNANI ANDREA

ARCHITETTURA DI RETE FOLEGNANI ANDREA ARCHITETTURA DI RETE FOLEGNANI ANDREA INTRODUZIONE È denominata Architettura di rete un insieme di livelli e protocolli. Le reti sono organizzate gerarchicamente in livelli, ciascuno dei quali interagisce

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

Gestione della Memoria

Gestione della Memoria Gestione della Memoria Idealmente la memoria dovrebbe essere grande veloce non volatile Gerarchia di memorie Disco: capiente, lento, non volatile ed economico Memoria principale: volatile, mediamente grande,

Dettagli

Le Infrastrutture Software ed il Sistema Operativo

Le Infrastrutture Software ed il Sistema Operativo Le Infrastrutture Software ed il Sistema Operativo Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it Il Sistema Operativo (S0) (Inf.) E' l'insieme dei programmi che consentono

Dettagli

CdL in Medicina Veterinaria - STPA AA 2007-08

CdL in Medicina Veterinaria - STPA AA 2007-08 CdL in Medicina Veterinaria - STPA AA 2007-08 Il Sistema Operativo Architettura del Software Software = insieme (complesso) di programmi. Organizzazione a strati, ciascuno con funzionalità di livello più

Dettagli

FPf per Windows 3.1. Guida all uso

FPf per Windows 3.1. Guida all uso FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete

Dettagli

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito) IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Statistics versione 21 con licenza per sito. Questo documento

Dettagli

Tecnologia di un Database Server (centralizzato) Gestione del buffer

Tecnologia di un Database Server (centralizzato) Gestione del buffer Buffer Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Gestione del buffer Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Buffer

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi

Dettagli