La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Presentazioni simili


Presentazione sul tema: "CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX."— Transcript della presentazione:

1 CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © Carlo Brandolese Il Sistema Operativo UNIX Prima Parte Introduzione, Shell, File system e Processi Docente: Carlo Brandolese Politecnico di Milano

2 Il Sistema Operativo UNIX - I© Carlo Brandolese- 2 - Sommario Prima Parte 1.Introduzione 2.La shell sh Variabili di ambiente Comandi 3.Il File System Introduzione Comandi 4.Processi Introduzione Comandi Seconda Parte 5. 5.Utilities Filtri Archiviazione Leditor vi 6. 6.Scripting Introduzione Argomenti Variabili Redirezione e pipelining Comandi Funzoni Comandi avanzati

3 Il Sistema Operativo UNIX - I© Carlo Brandolese- 3 - Introduzione Prima Parte 1.Introduzione 2.La shell sh Variabili di ambiente Comandi 3.Il File System Introduzione Comandi 4.Processi Introduzione Comandi

4 Il Sistema Operativo UNIX - I© Carlo Brandolese- 4 - La struttura a strati Il sistema operativo UNIX è organizzato a strati: Applicazioni utente Shell File system Periferiche virtuali Kernel Hardware Punto di ingresso al sistema Livello applicativo Visione logica dei dispositivi di Memorizzazioe di massa Condivisione delle risorse Nucleo del sistema operativo Supporto hardware

5 Il Sistema Operativo UNIX - I© Carlo Brandolese- 5 - Accesso al sistema Per accedere ad un sistema è necessario un account Un utente è identificato tramite: username group password Le informazioni relative agli utenti sono raccolte nel file /etc/passwd root:aG4dhH1z:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin: daemon:x:2:2:daemon:/sbin: adm:GL16gtWn:3:4:adm:/var/adm: lp:x:4:7:lp:/var/spool/lpd: mail:x:8:12:mail:/var/spool/mail: news:x:9:13:news:/var/spool/news:...

6 Il Sistema Operativo UNIX - I© Carlo Brandolese- 6 - Login Lingresso ad un sistema viene detto login Una tipica sessione di login: La password non viene visualizzata La stringa Viene detta shell prompt E definibile dallutente I comandi digitati sono interpretati dalla shell apollo console login: brandole password: ******* Last login: Tue Jun 20 14:39:00 from apollo.cefriel.it Sun Microsystems Inc. SunOS Generic May 1996

7 Il Sistema Operativo UNIX - I© Carlo Brandolese- 7 - Comandi passwd [user] Consente allutente corrente di modificare la propria password (i dati sono salvati nel file /etc/passwd ) su [-l] user Simula la login di un utente differente rispetto a quello corrente who Riporta la lista degli utenti connessi alla macchina exit Abbandona la shell corrente Lutente rimane autenticato sul sistema

8 Il Sistema Operativo UNIX - I© Carlo Brandolese- 8 - Comandi logout Abbandona il sistema e termina la sessione useradd [options] login Crea un nuovo utente in base alle options Il comando aggiunge una linea al file /etc/passwd userdel [-r] login Elimina un account dal sistema groupadd [-g gid] group Crea un nuovo gruppo di utenti groupdel group Elimina un gruppo dal sistema

9 Il Sistema Operativo UNIX - I© Carlo Brandolese- 9 - La shell Prima Parte 1.Introduzione 2.La shell sh Variabili di ambiente Comandi 3.Il File System Introduzione Comandi 4.Processi Introduzione Comandi

10 Il Sistema Operativo UNIX - I© Carlo Brandolese La shell La shell è linterfaccia verso il sistema operativo Ogni shell definisce tre file standard per gestire le operaioni di ingresso/uscita stdin :standard input(la tastiera) stdout :standard output(il terminale corrente) stderr :standard error(il terminale corrente) I comandi inviati alla shell possono essere: Interni:Vengono eseguti nella shell corrente e possono modificare lo stato della shell Esterni:Vengono eseguiti in una shell differente e non possono modificare lo stato della shell corrente

11 Il Sistema Operativo UNIX - I© Carlo Brandolese La shell La shell è linterprete dei comandi UNIX La shell può eseguire i comandi in due modi: Interattivo: comandi immessi dallutente al prompt Batch: comandi raccolti in uno script file Esistono diversi tipi di shell sh, bash La shell standard. È su tutti i sistemi ksh Korn shell csh, tcsh C-like shell Tutte le shell forniscono circa le stesse funzionalità Le diverse shell differiscono principalmente per quanto riguarda la sintassi

12 Il Sistema Operativo UNIX - I© Carlo Brandolese /bin/sh: formato comandi Un comando ha la seguente sintassi generale: cmd [-opt] [file[...]] [--special] [;] I vari campi indicano: cmd Nome del comando -opt Opzioni standard file[...] Lista di nomi di file separata da spazi --special Opzioni speciali (long options) ; Separa i comandi di una lista I comandi di una lista semplice sono eseguiti in sequenza

13 Il Sistema Operativo UNIX - I© Carlo Brandolese /bin/sh: nomi di file Indicati esplicitamente oppure mediante globbing Il globbing si basa su alcuni caratteri speciali combinati a formare un pattern: ~/ Home directory dellutente corrente * Sequenza di zero o più caratteri qualsiasi ? Singolo carattere qualsiasi [s-e] I caratteri compresi tra s ed e Il pattern è espanso nei nomi ad esso sovrapponibili Esempi: *.c File con estensione.c foo[0-9] File con nome foo seguito da una cifra

14 Il Sistema Operativo UNIX - I© Carlo Brandolese /bin/sh: documentazione UNIX fornisce una manualistica sui comandi I manuali sono accessibili dalla shell in modo testo man [-s n] cmd -s n Sezione dei manuali cui fare riferimento cmd Comando di cui mostrare il manuale man useradd Maintenance Commands useradd(1M) NAME useradd - administer a new user login on the system SYNOPSIS useradd [-c comment] [-d dir] [-e expire] [-f inactive] [-g group] [-G group [, group...]] [-m [-k skel_dir]] [-u uid [-o]] [-s shell] login DESCRIPTION useradd adds a new user entry to the /etc/passwd and /etc/shadow files. It also creates supplementary group memberships for the user (-G option) and creates the...

15 Il Sistema Operativo UNIX - I© Carlo Brandolese /bin/sh: configurazione La shell è parzialmente configurabile Tramite le opzioni della linea di comando Tramite il comando set Può essere associato un profile o configurazione ad ogni utente tramite opportuni script file.cshrc,.tcshrc.login,.logout E possibile definire nomi abbreviati o alternativi per i comandi standard: Aliasing Unaliasing

16 Il Sistema Operativo UNIX - I© Carlo Brandolese /bin/sh: configurazione E possibile raccogliere sequenze di comandi in uno script Uno script può essere considerato alla pari di un nuovo comando UNIX Gli script possono essere sviluppati in linguaggi diversi da sh, ad esempio: awk Elaborazione testi sed Elaborazioni testi Tcl/Tk Generico, sviluppo interfaccie grafiche perl Generico python Generico

17 Il Sistema Operativo UNIX - I© Carlo Brandolese /bin/sh: Variabili di ambiente Le varibili di ambiente Contengono informazioni relative alla sessione corrente Determinano alcuni aspetti della configurazone dellambiente Identità: USER Username dellutente GROUP Grouppo di appartenenza dellutente Host: HOST Nome della macchina corrente REMOTEHOST Nome della macchina remota DISPLAY : Nome del display in uso

18 Il Sistema Operativo UNIX - I© Carlo Brandolese /bin/sh: Variabili di ambiente Path: HOME Home directory dellutente PATH Lista dei path per gli eseguibili MANPATH Lista dei path delle pagine man LD_LIBRARY_PATH Lista di ricerca delle librerie PWD Directory corrente Shell: SHELL Tipo della shell corrente SHLVL Livello della shell corrente TERM Tipo di terminale

19 Il Sistema Operativo UNIX - I© Carlo Brandolese sh [–x –e] –c cmd | scr Esegue linterprete dei comandi Alcune opzioni possono essere impostate tramite set setenv [var [value]] Gestisce le variabili di ambiente unsetenv var Elimina la variabile var dallambiente export [var [var]... ] Rende le varibili specificate disponibili nellambinte delle applicazioni eseguite nella shell corrente history Mostra la storia dei comandi eseguiti dal prompt Comandi

20 Il Sistema Operativo UNIX - I© Carlo Brandolese !{string|num} Ripete un comando precedentemente eseguito !! Ripete lultimo comando eseguito set var [= value] Definisce una variabile e ne assegna il valore Alcune variabili modificano le opzioni della shell alias [name string] Definisce una nome alternativo per un comando unalias name... | -a Rimuove le definizioni di nomi alternativi Comandi

21 Il Sistema Operativo UNIX - I© Carlo Brandolese Sommario Prima Parte 1.Introduzione 2.La shell sh Variabili di ambiente Comandi 3.Il File System Introduzione Comandi 4.Processi Introduzione Comandi

22 Il Sistema Operativo UNIX - I© Carlo Brandolese Introduzione Il File System fornisce allutente una visione logica dei dispositivi di memorizzazione di massa, quali: Hard Disk CD ROM Floopy DAT La struttura di un file system si basa su due concetti fondamentali: File Directory Sistemi operativi diversi utilizzano diverse implementazioni di file system

23 Il Sistema Operativo UNIX - I© Carlo Brandolese File Il concetto di file offre una visone omogenea delle informazioni memorizzate La visone non dipende dal tipo di dispositivo fisico su cui le informazioni vengono memorizzate Un file è costituito da: Un insieme di informazioni omogenee Un nome simbolico Un insieme di attributi Un file può contenere: Dati Programmi Riferimenti

24 Il Sistema Operativo UNIX - I© Carlo Brandolese File Ad un file sono associati alcuni attributi che ne descrivono alcune caratteristiche: NomeE il nome simbolico con riferirsi ad esso TipoDefinisce il tipo dei dati contenuti. LocazioneE un riferimento alla posizione fisica DimensioneDimensione dei dati Protezione Definisce le politiche di accesso Ora e DataIndicano il momento della creazione, dellultima modifica e dellultimo accesso ProprietarioIndica il nome dellutente che ha creato il file ed il suo gruppo di appartenenza

25 Il Sistema Operativo UNIX - I© Carlo Brandolese Directory Lelemento fondamentale per lorganizzazione dei file è la directory Esistono diverse strutture di directory Directory a singolo livello Directory a due livelli Directory ad albero Directory a grafo aciclico Directory a grafo generale UNIX adotta una struttura a grafo generale Il sistema operativo è più complesso: loop infiniti Soluzione: limitare la profondità/lunghezza del path

26 Il Sistema Operativo UNIX - I© Carlo Brandolese Directory Esempio di directory a grafo generale bin mike bill jhon gcc mike test data gnu much foo aax data foo mary work gnu mom much

27 Il Sistema Operativo UNIX - I© Carlo Brandolese Protezione Il file system UNIX gestisce gli accessi ai file secondo lo schema detto Simplified Access Control List Gli utenti sono identificati in base a Username: Identificativo dellutente Group: Identificativo di gruppo, condiviso da più utenti Gli utenti sono raggruppati in tre classi Owner:Solo il proprietario del file Group:Solo i membri del gruppo del proprietario del file Other:Tutti gli utenti

28 Il Sistema Operativo UNIX - I© Carlo Brandolese Protezione Le operazioni che un utente può effettuare su un file sono raggruppate in tre classi Read:Lettura, copia Write:Scrittura, modifica, eliminazione Execute:Esecuzione Le operazioni che un utente può effettuare su una directory sono raggruppate in tre classi Read:Elenco dei file contenuti Write:Creazione/rimozione dei file contenuti Execute:Entrata nella directory, creazione di file nella directory, elenco dei file contenuti

29 Il Sistema Operativo UNIX - I© Carlo Brandolese Protezione Ad ogni file sono associati: Owner Group Simplified Access Control List La Simplified ACL è formata da tre gruppi di bit: Ogni gruppo si riferisce ad una classe di utenti Ogni bit del gruppo si riferisce ad una operazione owner group other execute write read rwx owner group other rwxrwxrwxrwx rwx

30 Il Sistema Operativo UNIX - I© Carlo Brandolese Comandi cd [path] Cambia la directory corrente pwd Mostra il path assoluto della directory corrente ls [path] Mostra lelenco dei file nella directory path o in quella corrent find path [-name pattern] Ricerca e mostra i file in tutto il sottoalbero che inizia dalla directory path

31 Il Sistema Operativo UNIX - I© Carlo Brandolese Comandi chmod mode file... Cambia i diritti di accesso ai file specificati chown [-R] owner[:group] file... Modifica il proprietario di un file chgrp [-R] group file... Modifica il gruppo di un file cp src dest Copia uno o più file o directory mv src dest Sposta o rinomina uno o più file o directory

32 Il Sistema Operativo UNIX - I© Carlo Brandolese Comandi rm [-r dir...] [file...] Rimuove uno o più file o directory touch [file...] Modifica le date di accesso o di modifica dei file Se un file non esiste viene creato mkdir dir Crea una nuova directory rmdir dir... Rimuove una o più directory vuote

33 Il Sistema Operativo UNIX - I© Carlo Brandolese Comandi du dir... Mostra lo stato di utilizzo dei dischi df dir Mostra lo spazio disponibile sui vari file system lpr [–P dest] file... Invia allo spooler di stampa uno o più file lpq [-P dest] Mostra lo stato della coda di stampa lprm [-P dest] [-|id] Rimuove un job dalla coda di stampa lpstat Mostra lo stato di tutti gli spooler

34 Il Sistema Operativo UNIX - I© Carlo Brandolese Link Esistono due tipi di link: soft (symbolic) o hard Soft link È un riferimento ad un file o ad una directory Rimuovendo un link il file originale non viene rimosso Rimuovendo un file i link divengono inconsistenti Il comando ls mostra i symbolic link usando una l come primo carattere degli attributi del file Hard link È una copia del descrittore di un file o di una directory Il file non viene rimosso fino a che esistono link Il comando ls mostra gli hard link incrementando link count, nella seconda colonna

35 Il Sistema Operativo UNIX - I© Carlo Brandolese Link -foo -bar -frob dbin lfoo -bar -frob dbin i-node./bar i-node This is the file named bar... This is the file named bar... i-node This is the file named bar... This is the file named bar... Soft linkHard link

36 Il Sistema Operativo UNIX - I© Carlo Brandolese Comandi ln -s src [dest] Crea un link soft ad uno o più file o directory ls -l -rw-r--r-- 1 brandole 5 Jul 14 14:37 original ln –s original link1 ln –s original link2 ls -l lrwxrwxrwx 1 brandole 8 Jul 14 14:38 link1 -> original lrwxrwxrwx 1 brandole 8 Jul 14 14:38 link2 -> original -rw-r--r-- 1 brandole 5 Jul 14 14:37 original rm link1 ls -l lrwxrwxrwx 1 brandole 8 Jul 14 14:38 link2 -> original -rw-r--r-- 1 brandole 5 Jul 14 14:37 original rm original ls -l lrwxrwxrwx 1 brandole 8 Jul 14 14:38 link2 -> original cat link2 cat: cannot open link2

37 Il Sistema Operativo UNIX - I© Carlo Brandolese Comandi ln src [dest] Crea un link hard ad uno o più file o directory ls -l -rw-r--r-- 1 brandole 5 Jul 14 14:37 original ln original link1 ln original link2 ls -l lrwxrwxrwx 3 brandole 8 Jul 14 14:38 link1 lrwxrwxrwx 3 brandole 8 Jul 14 14:38 link2 -rw-r--r-- 3 brandole 5 Jul 14 14:37 original rm link1 ls -l lrwxrwxrwx 2 brandole 8 Jul 14 14:38 link2 -rw-r--r-- 2 brandole 5 Jul 14 14:37 original rm original ls -l lrwxrwxrwx 1 brandole 8 Jul 14 14:38 link2 cat link2 This is the content of the file...

38 Il Sistema Operativo UNIX - I© Carlo Brandolese Device Un device è un file speciale che fornisce una interfaccia comune a diversi dispositivi o dati I device sono raccolti in /dev /dev/stdin Standard input /dev/stdout Standard output /dev/stderr Standard error /dev/null Null file /dev/tty Terminale fisico (seriale) /dev/pty Terminale virtuale (telnet, xtem) /dev/console Terminale di default /dev/dsk/c0t0d0s00 Dispositivo SCSI numero 0 /dev/fd/0 Floppy disk numero 0

39 Il Sistema Operativo UNIX - I© Carlo Brandolese Organizzazione del file system UNIX prevede la seguente organizzazione / Root directory /bin/ Raccoglie gli eseguibili e i comandi standard /dev/ Contiene i device /home/ Contiene le home directory degli utenti. /lib/ Contiene le librerie statiche e dinamiche sia di sistema, sia degli applicativi /local/ E il mount-point dei file system locali /mnt/ E il mount-point dei file system addizionali /opt/ Contiene pacchetti software aggiuntivi continua

40 Il Sistema Operativo UNIX - I© Carlo Brandolese Organizzazione del file system /usr/ Contiene parti addizionali del sistema /var/ Contiene file temporanei o semi- temporanei di sistema. Tali file sono essenziali per il sistema /var/spool/ Contiene le code di stampa /var/mail/ Contiene le inbox degli utenti /var/log/ Contiene i transcript delle operazoni di sistema /proc/ Fornisce laccesso ai processi attraverso una interfaccia basata sul modello del file system /tmp/ Directory temporanea continua

41 Il Sistema Operativo UNIX - I© Carlo Brandolese Organizzazione del file system /etc/ Contiene file di configurazione /etc/rc0.d/ Contiene gli script di shutdown. I nomi degli script iniziano con Knn e vengono eseguiti in ordine alfabetico. Sono invocati con argomento stop /etc/rcS.d/ Contiene gli script di boot in single user mode. I nomi degli script iniziano con Snn e sono invocati con argomento start / etc/rc2.d/ Contiene gli script di boot in multi user mode /etc/init.d/ Raccoglie tutti gli script di boot e di shutdown. Le directory rcn.d contengono link a questi file continua

42 Il Sistema Operativo UNIX - I© Carlo Brandolese Organizzazione del file system /etc/rc / Script di boot principali. Eseguono gli script nelle directory /etc/rcn.d/ /etc/skel/ Contiene file di configurazione utente di default /etc/psswd Password file /etc/fstab Tabella dei file system da montare al boot /etc/mnttab Tabella dei file montati /etc/hosts Tabella di risoluzione degli IP /etc/resolv.conf Tabella di routing /etc/services Elenco dei servizi forniti dal demone di rete inetd

43 Il Sistema Operativo UNIX - I© Carlo Brandolese Mounting Loperazione di mounting permette di collegare un file system ad una directory, detta mount-point, di un altro file system: Il mount-point è una directory Il contenuto preesistente del mount-point diviene temporaneamente inaccessibile La rimozione di un tale collegamento viene detta unmounting: Il contenuto preesistente del mount-point è nuovamente accessibile Non è possibile scollegare un file system se un processo sta operando sul file system montato

44 Il Sistema Operativo UNIX - I© Carlo Brandolese Mounting E possibile collegare file system condivisi attraverso una rete (NFS mounting) Il file /etc/mnttab tiene traccia dei file system correntemente montati Le operazioni di mounting e unmounting agiscono sul file /etc/mnttab Mounting e unmounting sono eseguibili solo da root È possibile permettere ad un utente generico di montare e smontare file system particolari CD-ROM locali Floppy

45 Il Sistema Operativo UNIX - I© Carlo Brandolese Mounting Il file /etc/mnttab contiene le seguenti informazioni sui file system montati special Il nome del file system o del device mount-point Il path del mount-point fstype Il tipo di file system montato options Opzioni di montaggio, tipicamente i diritti di accesso time Ora di montaggio del file system Il file /etc/fstab (a volte /etc/vfstab ) indica i file system da montare al boot del sistema

46 Il Sistema Operativo UNIX - I© Carlo Brandolese Comandi mount dev mnt Monta il file system dev nella directory mnt mountall [table] Effettua il montaggio dei file system specificati nella tabella table umount dev Rimuove un file system montato eject device Espelle un dispositivo rimovibile (floppy disk, CD-ROM) sync Aggiorna lo stato del file system

47 Il Sistema Operativo UNIX - I© Carlo Brandolese Sommario Prima Parte 1.Introduzione 2.La shell sh Variabili di ambiente Comandi 3.Il File System Introduzione Comandi 4.Processi Introduzione Comandi

48 Il Sistema Operativo UNIX - I© Carlo Brandolese Introduzione Programma Operazioni che devono essere svolte da un calcolatore Processo È una istanza di un programma in esecuzione È costituito da Una immagine del del suo codice macchina Un descrittore di processo Il descrittore del processo contiene Identificativo del processo o process id (pid) Stato del processo Program counter Informazioni sulla memoria Altre informazioni

49 Il Sistema Operativo UNIX - I© Carlo Brandolese Esecuzione Eseguire un processo comporta La creazione di un descrittore di processo Il caricamneto in memoria della immagine del programma Un processo viene sempre creato da un altro processo Il processo creatore si chiama processo padre o parent process Il processo creato si chiama processo figlio o child process Nel sistema operativo UNIX tutti i processi discendono dal processo sched, cioè lo scheduler

50 Il Sistema Operativo UNIX - I© Carlo Brandolese Esecuzione I processi possono essere eseguiti in due modalità ForegroundIl processo figlio eredita e ritiene tutte le risorse del padre. Il padre è sospeso in attesa della terminazione del figlio BackgroudIl processo figlio eredita tutte le risorse del padre. Il processo padre rimane in esecuzione. È lo scheduler ad assegnare le risorse ai due processi Lutente può specificare la modalità di esecuzione di un processo La modalità di esecuzione può cambiare durante la vita di un processo

51 Il Sistema Operativo UNIX - I© Carlo Brandolese Operazioni Su un processo si possono eseguire alcune operazioni Creazione Un processo viene creato in foreground fornendo ad una shell il nome del programma corrispondente Per creare un processo in background si usa il carattere & alla fine della linea di comando della shell Terminazione Un processo in foreground viene terminato premendo opportune combinazioni di tasti, tipicamente CTRL-C Un processo in background viene terminato inviandogli un opportuno segnale ( SIGKILL, SIGABRT ) tramite il comando kill

52 Il Sistema Operativo UNIX - I© Carlo Brandolese Operazioni Sospensione Un processo in foreground viene sospeso premendo opportune combinazioni di tasti, tipicamente CTRL-Z Un processo in background viene sospeso inviandogli un opportuno segnale ( SIGSTOP ) tramite i comandi kill e stop Continuazione Si può forzare la continuazione di un processo sospeso utilizzando i comandi fg e bg È anche possibile inviare al processo sospeso un opportuno segnale ( SIGCONT ) tramite il comando kill

53 Il Sistema Operativo UNIX - I© Carlo Brandolese Operazioni Duplicazione Un processo può essere duplicato solo attraverso chiamate a funzioni di sistema operativo Analisi È possibile visualizzare alcune informazioni relative ai processi utilizzando i comandi ps e jobs

54 Il Sistema Operativo UNIX - I© Carlo Brandolese Comandi program Crea un nuovo processo in foreground program & Crea un nuovo processo in background ps -aux Mostra alcune informazioni riguardanti tutti i processi correntemente in esecuzione jobs Mostra la litsa dei processi figli della shell corrente

55 Il Sistema Operativo UNIX - I© Carlo Brandolese Comandi fg %jobid Porta un processo in foreground bg %jobid Porta un processo in background kill pid Termina un processo stop pid Sospende un processo time command Esegue command e mostra i tempi di esecuzione


Scaricare ppt "CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX."

Presentazioni simili


Annunci Google