CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di...
-
Upload
teodoro-colella -
Category
Documents
-
view
220 -
download
3
Transcript of CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di...
© 2001 - Carlo Brandolese© 2001 - Carlo Brandolese
CEFRIELCEFRIELConsorzio per la Formazione e la RicercaConsorzio per la Formazione e la Ricercain Ingegneria dell’Informazionein Ingegneria dell’Informazione
PolitecnicoPolitecnicodi Milanodi Milano
Il Sistema Operativo UNIXIl Sistema Operativo UNIX
Prima PartePrima Parte
Introduzione, Shell, File system e ProcessiIntroduzione, Shell, File system e Processi
Docente:Docente:
Carlo BrandoleseCarlo Brandolese
Politecnico di MilanoPolitecnico di [email protected]@elet.polimi.it
www.elet.polimi.it/~brandolewww.elet.polimi.it/~brandole
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 22 - -
SommarioSommario
Prima Parte1. Introduzione2. La shell
sh
Variabili di ambienteComandi
3. Il File SystemIntroduzioneComandi
4. ProcessiIntroduzioneComandi
Seconda Parte5. Utilities
FiltriArchiviazioneL’editor vi
6. ScriptingIntroduzioneArgomentiVariabiliRedirezione e pipeliningComandiFunzoniComandi avanzati
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 33 - -
IntroduzioneIntroduzione
Prima Parte1. Introduzione2. La shell
sh
Variabili di ambienteComandi
3. Il File SystemIntroduzioneComandi
4. ProcessiIntroduzioneComandi
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 44 - -
La struttura a stratiLa 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
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 55 - -
Accesso al sistemaAccesso al sistema
Per accedere ad un sistema è necessario un accountUn utente è identificato tramite:
usernamegrouppassword
Le informazioni relative agli utenti sono raccolte nel file /etc/passwd
root:aG4dhH1z:0:0:root:/root:/bin/bashbin: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:...
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 66 - -
LoginLogin
L’ingresso ad un sistema viene detto loginUna tipica sessione di login:
La password non viene visualizzata La stringa brandole@apollo>
Viene detta shell promptE’ definibile dall’utente
I comandi digitati sono interpretati dalla shell
apollo console login: brandolepassword: *******
Last login: Tue Jun 20 14:39:00 from apollo.cefriel.itSun Microsystems Inc. SunOS 5.5.1 Generic May 1996brandole@apollo>
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 77 - -
ComandiComandi
passwd [user]Consente all’utente corrente di modificare la propria password (i dati sono salvati nel file /etc/passwd)
su [-l] userSimula la login di un utente differente rispetto a quello corrente
whoRiporta la lista degli utenti connessi alla macchina
exitAbbandona la shell correnteL’utente rimane autenticato sul sistema
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 88 - -
ComandiComandi
logoutAbbandona il sistema e termina la sessione
useradd [options] loginCrea un nuovo utente in base alle optionsIl comando aggiunge una linea al file /etc/passwd
userdel [-r] loginElimina un account dal sistema
groupadd [-g gid] groupCrea un nuovo gruppo di utenti
groupdel groupElimina un gruppo dal sistema
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 99 - -
La shellLa shell
Prima Parte1. Introduzione2. La shell
sh
Variabili di ambienteComandi
3. Il File SystemIntroduzioneComandi
4. ProcessiIntroduzioneComandi
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1010 - -
La shellLa shell
La shell è l’interfaccia verso il sistema operativoOgni 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 shellEsterni: Vengono eseguiti in una shell differente e
non possono modificare lo stato della shell
corrente
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1111 - -
La shellLa shell
La shell è l’interprete dei comandi UNIXLa shell può eseguire i comandi in due modi:
Interattivo: comandi immessi dall’utente al promptBatch: comandi raccolti in uno script file
Esistono diversi tipi di shellsh, bash La shell standard. È su tutti i sistemiksh Korn shellcsh, tcsh C-like shell
Tutte le shell forniscono circa le stesse funzionalitàLe diverse shell differiscono principalmente per quanto riguarda la sintassi
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1212 - -
/bin/sh:/bin/sh: formato comandi formato comandi
Un comando ha la seguente sintassi generale:
cmd [-opt] [file[...]] [--special] [;]
I vari campi indicano:cmd Nome del comando-opt Opzioni standardfile[...] 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
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1313 - -
/bin/sh:/bin/sh: nomi di file nomi di file
Indicati esplicitamente oppure mediante globbingIl globbing si basa su alcuni caratteri speciali combinati a formare un pattern:
~/ Home directory dell’utente 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 sovrapponibiliEsempi:
*.c File con estensione .cfoo[0-9] File con nome foo seguito da una cifra
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1414 - -
/bin/sh: /bin/sh: documentazionedocumentazione
UNIX fornisce una manualistica sui comandiI manuali sono accessibili dalla shell in modo testoman [-s n] cmd
-s n Sezione dei manuali cui fare riferimentocmd Comando di cui mostrare il manuale
brandole@apollo> man useraddMaintenance Commands useradd(1M)NAME useradd - administer a new user login on the systemSYNOPSIS useradd [-c comment] [-d dir] [-e expire] [-f inactive] [-g group] [-G group [, group ...]] [-m [-k skel_dir]] [-u uid [-o]] [-s shell] loginDESCRIPTION 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...
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1515 - -
/bin/sh: /bin/sh: configurazioneconfigurazione
La shell è parzialmente configurabileTramite le opzioni della linea di comandoTramite 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:
AliasingUnaliasing
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1616 - -
/bin/sh: /bin/sh: configurazioneconfigurazione
E’ possibile raccogliere sequenze di comandi in uno scriptUno script può essere considerato alla pari di un nuovo comando UNIXGli script possono essere sviluppati in linguaggi diversi da sh, ad esempio:
awk Elaborazione testised Elaborazioni testiTcl/Tk Generico, sviluppo interfaccie graficheperl Genericopython Generico
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1717 - -
/bin/sh: /bin/sh: Variabili di Variabili di ambienteambiente
Le varibili di ambienteContengono informazioni relative alla sessione correnteDeterminano alcuni aspetti della configurazone dell’ambiente
Identità:USER Username dell’utenteGROUP Grouppo di appartenenza dell’utente
Host:HOST Nome della macchina correnteREMOTEHOST Nome della macchina remotaDISPLAY: Nome del display in uso
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1818 - -
/bin/sh: /bin/sh: Variabili di Variabili di ambienteambiente
Path:HOME Home directory dell’utentePATH Lista dei path per gli eseguibiliMANPATH Lista dei path delle pagine manLD_LIBRARY_PATH Lista di ricerca delle libreriePWD Directory corrente
Shell:SHELL Tipo della shell correnteSHLVL Livello della shell correnteTERM Tipo di terminale
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1919 - -
sh [–x –e] –c cmd | scrEsegue l’interprete dei comandiAlcune opzioni possono essere impostate tramite set
setenv [var [value]]Gestisce le variabili di ambiente
unsetenv varElimina la variabile var dall’ambiente
export [var [var] ... ]Rende le varibili specificate disponibili nell’ambinte delle applicazioni eseguite nella shell corrente
historyMostra la storia dei comandi eseguiti dal prompt
ComandiComandi
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2020 - -
!{string|num}Ripete un comando precedentemente eseguito
!!Ripete l’ultimo comando eseguito
set var [= value]Definisce una variabile e ne assegna il valoreAlcune variabili modificano le opzioni della shell
alias [name string]Definisce una nome alternativo per un comando
unalias name ... | -aRimuove le definizioni di nomi alternativi
ComandiComandi
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2121 - -
SommarioSommario
Prima Parte1. Introduzione2. La shell
sh
Variabili di ambienteComandi
3. Il File SystemIntroduzioneComandi
4. ProcessiIntroduzioneComandi
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2222 - -
IntroduzioneIntroduzione
Il File System fornisce all’utente una visione logica dei dispositivi di memorizzazione di massa, quali:
Hard DiskCD ROMFloopyDAT
La struttura di un file system si basa su due concetti fondamentali:
FileDirectory
Sistemi operativi diversi utilizzano diverse implementazioni di file system
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2323 - -
FileFile
Il concetto di file offre una visone omogenea delle informazioni memorizzateLa visone non dipende dal tipo di dispositivo fisico su cui le informazioni vengono memorizzateUn file è costituito da:
Un insieme di informazioni omogeneeUn nome simbolicoUn insieme di attributi
Un file può contenere:DatiProgrammiRiferimenti
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2424 - -
FileFile
Ad un file sono associati alcuni attributi che ne descrivono alcune caratteristiche:
Nome E’ il nome simbolico con riferirsi ad esso
Tipo Definisce il tipo dei dati contenuti.
Locazione E’ un riferimento alla posizione fisica
Dimensione Dimensione dei dati
Protezione Definisce le politiche di accessoOra e Data Indicano il momento della creazione,
dell’ultima modifica e dell’ultimoaccesso
Proprietario Indica il nome dell’utente che ha creatoil file ed il suo gruppo di appartenenza
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2525 - -
DirectoryDirectory
L’elemento fondamentale per l’organizzazione dei file è la directoryEsistono diverse strutture di directory
Directory a singolo livelloDirectory a due livelliDirectory ad alberoDirectory a grafo aciclicoDirectory a grafo generale
UNIX adotta una struttura a grafo generaleIl sistema operativo è più complesso: loop infinitiSoluzione: limitare la profondità/lunghezza del path
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2626 - -
DirectoryDirectory
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
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2727 - -
ProtezioneProtezione
Il file system UNIX gestisce gli accessi ai file secondo lo schema detto Simplified Access Control ListGli utenti sono identificati in base a
Username: Identificativo dell’utenteGroup: Identificativo di gruppo,
condiviso da più utenti
Gli utenti sono raggruppati in tre classiOwner: Solo il proprietario del fileGroup: Solo i membri del gruppo
del proprietario del fileOther: Tutti gli utenti
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2828 - -
ProtezioneProtezione
Le operazioni che un utente può effettuare su un file sono raggruppate in tre classi
Read: Lettura, copiaWrite: Scrittura, modifica, eliminazioneExecute: Esecuzione
Le operazioni che un utente può effettuare su una directory sono raggruppate in tre classi
Read: Elenco dei file contenutiWrite: Creazione/rimozione dei file contenutiExecute: Entrata nella directory, creazione di file
nella directory, elenco dei file contenuti
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2929 - -
ProtezioneProtezione
Ad ogni file sono associati:OwnerGroupSimplified Access Control List
La Simplified ACL è formata da tre gruppi di bit:Ogni gruppo si riferisce ad una classe di utentiOgni bit del gruppo si riferisce ad una operazione
owner group other
executewrite
read
rwx
owner group other
rwx rwx
111 101 101
7 5 5
rwx rwx rwx
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3030 - -
ComandiComandi
cd [path]Cambia la directory corrente
pwdMostra il path assoluto della directory corrente
ls [path]Mostra l’elenco 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
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3131 - -
ComandiComandi
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 destCopia uno o più file o directory
mv src destSposta o rinomina uno o più file o directory
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3232 - -
ComandiComandi
rm [-r dir...] [file...]Rimuove uno o più file o directory
touch [file...]Modifica le date di accesso o di modifica dei fileSe un file non esiste viene creato
mkdir dirCrea una nuova directory
rmdir dir...Rimuove una o più directory vuote
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3333 - -
ComandiComandi
du dir...Mostra lo stato di utilizzo dei dischi
df dirMostra 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
lpstatMostra lo stato di tutti gli spooler
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3434 - -
LinkLink
Esistono due tipi di link: soft (symbolic) o hardSoft link
È un riferimento ad un file o ad una directoryRimuovendo un link il file originale non viene rimossoRimuovendo un file i link divengono inconsistentiIl 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 directoryIl file non viene rimosso fino a che esistono link Il comando ls mostra gli hard link incrementando link count, nella seconda colonna
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3535 - -
LinkLink
- foo
- bar
- frob
d bin
l foo
- bar
- frob
d bin
i-node
./bar./bar
i-node
This is thefile namedbar...
This is thefile namedbar...
i-node
This is thefile namedbar...
This is thefile namedbar...
Soft link Hard link
1
1
1
6
2
2
1
6
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3636 - -
ComandiComandi
ln -s src [dest]Crea un link soft ad uno o più file o directory
brandole@apollo> ls -l-rw-r--r-- 1 brandole 5 Jul 14 14:37 originalbrandole@apollo> ln –s original link1brandole@apollo> ln –s original link2brandole@apollo> ls -llrwxrwxrwx 1 brandole 8 Jul 14 14:38 link1 -> originallrwxrwxrwx 1 brandole 8 Jul 14 14:38 link2 -> original-rw-r--r-- 1 brandole 5 Jul 14 14:37 originalbrandole@apollo> rm link1brandole@apollo> ls -llrwxrwxrwx 1 brandole 8 Jul 14 14:38 link2 -> original-rw-r--r-- 1 brandole 5 Jul 14 14:37 originalbrandole@apollo> rm originalbrandole@apollo> ls -llrwxrwxrwx 1 brandole 8 Jul 14 14:38 link2 -> originalbrandole@apollo> cat link2cat: cannot open link2brandole@apollo>
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3737 - -
ComandiComandi
ln src [dest]Crea un link hard ad uno o più file o directory
brandole@apollo> ls -l-rw-r--r-- 1 brandole 5 Jul 14 14:37 originalbrandole@apollo> ln original link1brandole@apollo> ln original link2brandole@apollo> ls -llrwxrwxrwx 3 brandole 8 Jul 14 14:38 link1lrwxrwxrwx 3 brandole 8 Jul 14 14:38 link2-rw-r--r-- 3 brandole 5 Jul 14 14:37 originalbrandole@apollo> rm link1brandole@apollo> ls -llrwxrwxrwx 2 brandole 8 Jul 14 14:38 link2-rw-r--r-- 2 brandole 5 Jul 14 14:37 originalbrandole@apollo> rm originalbrandole@apollo> ls -llrwxrwxrwx 1 brandole 8 Jul 14 14:38 link2brandole@apollo> cat link2This is the content of the file...brandole@apollo>
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3838 - -
DeviceDevice
Un device è un file speciale che fornisce una interfaccia comune a diversi dispositivi o datiI 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
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3939 - -
Organizzazione del file systemOrganizzazione 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 aggiuntivicontinua
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4040 - -
Organizzazione del file systemOrganizzazione del file system
/usr/ Contiene parti addizionali del sistema/var/ Contiene file temporanei o semi-
temporanei di sistema. Tali file sonoessenziali 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 l’accesso ai processi
attraverso una interfaccia basata sulmodello del file system
/tmp/ Directory temporanea
continua
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4141 - -
Organizzazione del file systemOrganizzazione 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 invocaticon argomento start
/etc/rc2.d/ Contiene gli script di boot in multiuser mode
/etc/init.d/Raccoglie tutti gli script di boot e dishutdown. Le directory rcn.dcontengono link a questi file
continua
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4242 - -
Organizzazione del file systemOrganizzazione del file system
/etc/rc<n>/ 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
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4343 - -
MountingMounting
L’operazione di mounting permette di collegare un file system ad una directory, detta mount-point, di un altro file system:
Il mount-point è una directoryIl contenuto preesistente del mount-point diviene temporaneamente inaccessibile
La rimozione di un tale collegamento viene detta unmounting:
Il contenuto preesistente del mount-point è nuovamente accessibileNon è possibile scollegare un file system se un processo sta operando sul file system montato
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4444 - -
MountingMounting
E’ possibile collegare file system condivisi attraverso una rete (NFS mounting)Il file /etc/mnttab tiene traccia dei file system correntemente montatiLe operazioni di mounting e unmounting agiscono sul file /etc/mnttabMounting e unmounting sono eseguibili solo da root
È possibile permettere ad un utente generico di montare e smontare file system particolari
CD-ROM localiFloppy
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4545 - -
MountingMounting
Il file /etc/mnttab contiene le seguenti informazioni sui file system montati
special Il nome del file system o del devicemount-point Il path del mount-point fstype Il tipo di file system montatooptions Opzioni di montaggio, tipicamente
i diritti di accessotime Ora di montaggio del file system
Il file /etc/fstab (a volte /etc/vfstab) indica i file system da montare al boot del sistema
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4646 - -
ComandiComandi
mount dev mntMonta il file system dev nella directory mnt
mountall [table]Effettua il montaggio dei file system specificati nella tabella table
umount devRimuove un file system montato
eject deviceEspelle un dispositivo rimovibile (floppy disk, CD-ROM)
syncAggiorna lo stato del file system
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4747 - -
SommarioSommario
Prima Parte1. Introduzione2. La shell
sh
Variabili di ambienteComandi
3. Il File SystemIntroduzioneComandi
4. ProcessiIntroduzioneComandi
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4848 - -
IntroduzioneIntroduzione
ProgrammaOperazioni che devono essere svolte da un calcolatore
ProcessoÈ una istanza di un programma in esecuzioneÈ costituito da
Una immagine del del suo codice macchinaUn descrittore di processo
Il descrittore del processo contieneIdentificativo del processo o process id (pid)Stato del processoProgram counterInformazioni sulla memoriaAltre informazioni
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4949 - -
EsecuzioneEsecuzione
Eseguire un processo comportaLa creazione di un descrittore di processoIl 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 processIl processo creato si chiama processo figlio o child process
Nel sistema operativo UNIX tutti i processi discendono dal processo sched, cioè lo scheduler
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 5050 - -
EsecuzioneEsecuzione
I processi possono essere eseguiti in due modalitàForeground Il processo figlio eredita e ritiene tutte
le risorse del padre. Il padre è sospeso inattesa della terminazione del figlio
Backgroud Il processo figlio eredita tutte le risorsedel padre. Il processo padre rimane inesecuzione. È lo scheduler ad assegnarele risorse ai due processi
L’utente può specificare la modalità di esecuzione di un processoLa modalità di esecuzione può cambiare durante la vita di un processo
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 5151 - -
OperazioniOperazioni
Su un processo si possono eseguire alcune operazioniCreazione
Un processo viene creato in foreground fornendo ad una shell il nome del programma corrispondentePer creare un processo in background si usa il carattere & alla fine della linea di comando della shell
TerminazioneUn processo in foreground viene terminato premendo opportune combinazioni di tasti, tipicamente CTRL-CUn processo in background viene terminato inviandogli un opportuno segnale (SIGKILL, SIGABRT) tramite il comando kill
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 5252 - -
OperazioniOperazioni
SospensioneUn processo in foreground viene sospeso premendo opportune combinazioni di tasti, tipicamente CTRL-ZUn processo in background viene sospeso inviandogli un opportuno segnale (SIGSTOP) tramite i comandi kill e stop
ContinuazioneSi 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
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 5353 - -
OperazioniOperazioni
DuplicazioneUn 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
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 5454 - -
ComandiComandi
programCrea un nuovo processo in foreground
program &Crea un nuovo processo in background
ps -auxMostra alcune informazioni riguardanti tutti i processi correntemente in esecuzione
jobsMostra la litsa dei processi figli della shell corrente
Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 5555 - -
ComandiComandi
fg %jobidPorta un processo in foreground
bg %jobidPorta un processo in background
kill pidTermina un processo
stop pidSospende un processo
time commandEsegue command e mostra i tempi di esecuzione