Sperimentazioni di SO UNIX Cristina Baroglio [email protected] Mercoledì 14:00-16:00 1. 2. 3. 4. 5. 6. Introduzione Utenti Processi System call (fork - IPC) Shell e file system Comandi principali Introduzione a UNIX Un po’ di storia … 1969: Unics 1971: Unix v1 1979: Unix v7 1987: minix 1991:Linux 1975: Unix v6 1977: PWB 1979: Xenix 1983: System V 1993: Solaris 1978: BSD 1993: freeBSD netBSD openBSD 1 Per chi arriva da Windows Windows: Centralità della grafica Vantaggi: 1. Intuitività delle operazioni + comuni 2. Conseguente ampia diffusione (uffici, uso domestico, …) Limiti: 1. Come adattare il sistema alle mie esigenze? 2. Cosa c’è sotto alla grafica? Approccio testuale L’ idea è di interagire con il sistema “parlandogli” (impartendo ordini) tramite un apposito linguaggio Hello?!? Svantaggi: Bisogna imparare il linguaggio Vantaggi: Enorme flessibilità del sistema Struttura dei comandi anticipazione prompt> comando [opzioni] [arg1 arg2 … argN] ↵ prompt> ls *.gif Lista i file con estensione “gif” della directory corrente prompt> mv img11.jpg foto/ritratto.jpg Cambia il nome del file img11.jpg in ritratto.jpg e inseriscilo nella directory foto 2 UNIX Sistema operativo 1. Multiutente 2. Multitask, CPU scheduling = coda a priorità 3. File system = albero multilivello, utenti in 4. 5. grado di costruire le proprie sottodirectory Scelte dettate da un principio di semplicità: costruire un kernel semplice + librerie su cui fosse possibile realizzare dei SO ad hoc o più sofisticati Portabile, Scritto in C Occorre riconoscre gli utenti e proteggere gli uni dagli altri Il sistema gestisce molti processi che lavorano in parallelo 6. Uso di un formato unico per i file (byte stream) 7. Interfaccia unica per gestione di file e device periferici 8. Possibilità di estendere l’interfaccia utente Sistema strutturato vs. monolitico Unix = kernel + componenti caricate quando servono Unica parte necessaria (gestisce le funzioni principali, es. scheduling dei processi, gestione memoria, I/O) Piccolo (<15000 linee di codice) Scritto in C Gestiscono funzioni non vitali (es. interfaccia grafica, mail, rete) Possono essere attivate, disattivate, sostituite, aggiunte senza inficiare il funzionamento del sistema Per chi vuole dare un’ occhiata ai file … /usr/src/linux kernel mm fs init [ LINUX ] 3 Struttura a livelli KERNEL INTERF. TO HW HW SYSTEM CALL INTERFACE A 1 B 2 C 3 Shell, interpreti, I N compilatori. T librerie di sistema E R F A C C I A utente utente KERNEL kernel 1 1. Segnali, gestione dell’I/O, terminali 2. File system, swap di memoria, driver dei dischi 2 3. Gestione dei processi, CPU scheduling, memoria virtuale 3 KERNEL Basso livello A. Controller dei terminali B. Controller dei device A B C. Controller della memoria fisica C 4