Corso di Laurea in Ingegneria Informatica Laboratorio di Sistemi Operativi II anno, III periodo 2 crediti 13 ore di lezione 16 ore di esercitazione INFORMAZIONI UTILI Docente: Gianluigi Folino tel. : 0984/831731 e-mail: [email protected] Sito web del corso: http://www.icar.cnr.it/folino/lso Oppure da www.folino.it cliccare sul Link Lab. di Sist. Operativi Orario del Corso • Lunedì dalle ore 11:30 alle 13:30, Laboratorio di Informatica VII piano. Mercoledì dalle ore 8:30 alle 10:30,Aula B. Ricevimento Mercoledì dalle 14:30 alle 16:30 cubo 41/c (DEIS) I piano OBIETTIVI DEL CORSO sperimentare e applicare le nozioni apprese durante il corso di Sistemi Operativi, utilizzando i diffusissimi sistemi Linux e Windows 2000. Al termine del corso conoscerete Linux e Windows 2000 nelle loro componenti architetturali e funzionali. Materiale Didattico Libri di Testo Linux Documentation Project, http://sunsite.unc.edu/linux “Inside Windows 2000”, Terza edizione, D. Solomon, Microsoft Press. "Guida completa Linux" - Peterson, MC Graw Hill. Altro materiale didattico Lucidi delle lezioni Dispense integrative PROGRAMMA DEL CORSO (1) Sistemi Unix e Linux Storia dei sistemi Unix e componenti principali. Unix. MINIX. Introduzione a Linux. Login e Logout. La shell. I comandi principali della shell. Programmare la shell. I Makefile. Programmi di utilità. Il kernel. Gestione dei processi e dei thread. Concetti di base. I processi in Linux e relative system call (fork, wait, exit, kill, ecc.). I thread in Linux e relative system call (create, exit, join, ecc..). Lo scheduling dei processi. Gestione della memoria. Text segment e data segment. Memory mapped file. System call (brk, mmap, unmap) relative alla memoria. Swapping. Paginazione. File system. Input/output in Linux e relative System Call. I driver e gli Stream. Il file System di Linux e relative System Call. Il Network File System (NTFS) e il Parallel File System (PFS). Gestione della sicurezza. Concetti Fondamentali. System Call relative alla sicurezza. SSH. PROGRAMMA DEL CORSO (2) Windows 2000 Storia di Windows e componenti principali. Ms-dos. Windows 95/98/ME. Windows NT. Windows 2000. Le Api Win32. Il registry. La struttura del sistema operativo: Kernel e Hardware Abstraction Layer. Gli Object. Gestione dei processi e dei thread. Concetti di base. Comunicazione fra processi. Scheduling dei processi. Gestione della memoria. Concetti di base. Le API relative alla gestione della memoria. Page Fault. Gestione della memoria fisica. La cache. File system. Input/Output. Gestione dei driver. Fat16, Fat32 e NTFS. Le API relative al file System. Gestione della sicurezza. Concetti fondamentali, API e implementazione. ESERCITAZIONI Linux Comandi principali e programmazione shell Installazione e manutenzione Linux (Debian/Ubuntu) System call principali per le comunicazioni fra processi e per il file system Windows2000 Api di Windows 2000 ESERCITAZIONI Per le esercitazioni formerete dei gruppi, massimo tre persone Il tutto tramite il sito Web, previa una semplice registrazione (basta scegliere una password e lasciare l’e-mail). Quindi avrete un account per ogni gruppo su una macchina Linux in Laboratorio ESERCITAZIONI Per connettervi alla macchina Linux in laboratorio aprite il programma puttyssh, Selezionate ssh come tipo di connessione e come indirizzo scrivete 192.168.42.10 MODALITA’ DI ESAME E’ propedeutico il corso di Architettura dei Calcolatori E’ assolutamente necessario seguire in contemporanea il corso di Sistemi Operativi o averlo già seguito Prova scritta Prova orale obbligatoria (o domande di teoria allo scritto) Laboratorio di Sistemi Operativi •Proprietà dei sistemi operativi •Storia di Unix/Linux •Distribuzioni Linux •Come connettersi ad un server Linux •Login •Le shell •Comandi principali della bash Laboratorio di Sistemi Operativi Alcune differenze fra Windows 98 e Windows NT/2000 Laboratorio di Sistemi Operativi Dimensioni del codice di alcuni sistemi operativi (in linee di codice sorgente) UNIX User Interface The layers of a UNIX system. UNIX Utility Programs Alcuni dei comandi principali di Linux