CORSO DI SISTEMI OPERATIVI (MODULO UNIX)
Corso di laurea in Informatica
Università degli Studi di Milano e po di Milano Bicocca Bicocca
Ultima edizione del corso: Anno Accademico 2000-2001
OBIETTIVI DEL MODULO
Lo scopo di questo modulo didattico, del Corso di Sistemi Operativi, è quello di fornire una introduzione alla famiglia dei sistemi operativi Unix.
Il corso non si riferisce ad alcuna implementazione specifica di Unix, ma, ove possibile, agli standard esistenti. Unix viene considerato da tre punti di vista complementari: il punto di vista dell’utente finale (principali comandi di shell), il punto di vista del programmatore di sistema (principali system call), il punto di vista dell’architetto del sistema operativi (principali strutture dati e componenti del kernel).
_________________________________________________________________________________
PROGRAMMA
- Storia ed evoluzione della famiglia di sistemi Unix
Caratteristiche generali di Unix e sua filosofia; storia ed evoluzione; Unix System V e Unix BSD; gli standard per gli open system; POSIX; il ruolo dell’Open Group; il movimento Open Source; LINUX; Unix e Internet. Situazione attuale e caratteristiche del mercato; evoluzioni. - UNIX dal punto di vista utente
Sessione di lavoro. Il file system: file ordinari, directory, file speciali; pathname. File system montabile. Principali comandi di gestione di directory e file. Identificazione degli utenti e meccanismi di sicurezza. Il ruolo del superuser. La shell: funzioni e principali tipi di shell. Script di shell. Caratteristiche principali dei linguaggi di shell: variabili, ambiente, strutture di controllo, metacaratteri. Redirezione dell’input/output e pipeline. Filtri. Esecuzione in background e foreground; job control. Comandi di accesso remoto. - UNIX dal punto di vista del programmatore di sistema
Classi di system call. POSIX. Principali system call per la gestione dei file, per la gestione dei processi, per la comunicazione fra processi. Struttura interna della shell. Background, foreground, redirezioni e pipeline. Socket e strutture client-server. - UNIX dal punto di vista dell’architetto di sistemi operativi
Struttura generale del kernel Unix. Kernel mode e user mode; system call e interruzioni. Immagine di un processo Unix; stati di un processo e process switching. Process table, u-area; meccanismo di creazione di un processo. Schedulazione e priorità. Gestione dei segnali. Memory management (cenni). Struttura del file system: blocchi, volumi, I-list, I-node. Meccanismi di indirizzamento. Superblocco. Gestione delle liste libere. Strutture dati in memoria centrale: file descriptor, file table, in-core I-node; mount table. File system: criticità ed evoluzioni.
_________________________________________________________________________________
PREREQUISITI
Per seguire proficuamente il corso è auspicabile una conoscenza di base del linguaggio C.
_________________________________________________________________________________
TESTI ADOTTATI
- G.Glass, “Unix for Programmers and Users”, Ed. Prentice Hall, 1993
Questo testo copre tutti gli argomenti svolti a lezione.
_________________________________________________________________________________
MATERIALE DIDATTICO
Qui di seguito si trovano le slides utilizzate a lezione. Le slides sono liberamente utilizzabili dagli studenti o per studio personale, o da chi fosse interessato ad usarli a supporto di lezioni universitarie. Ogni altro uso deve essere preventivamente autorizzato dal docente.
Parte Prima: Visibilità utente e comandi
Oltre 300 slides sulle pricipali caratteristiche e i principali comandi Unix dal punto di vista utente
- Slides Unix parte prima (PDF 635 kbytes; ZIP PDF 488 kbytes; ZIP WORD 664 kbytes; ultimo aggiornamento: febbraio 1998)
Parte Seconda: Programmazione di sistema e system call
Circa 110 slides sulle pricipali system call Unix, dal punto di vista del programmatore di sistema
- Slides Unix parte seconda (PDF: 182 kbytes; ZIP PDF 132 kbytes; ZIP WORD 114 kbytes; ultimo aggiornamento: maggio 1997)
Parte Terza: Struttura del Kernel
Circa 80 slides sulla struttura del kernel
_________________________________________________________________________________