sistemi operativi

42
Sistemi Operativi Salvatore Campagna Email: [email protected] Politecnico di Torino Dipartimento di Automatica e Informatica

Upload: garima

Post on 23-Feb-2016

49 views

Category:

Documents


0 download

DESCRIPTION

Sistemi Operativi. Salvatore Campagna Email : [email protected] Politecnico di Torino Dipartimento di Automatica e Informatica. Orario. Lezioni in aula Martedì 11.30 – 13.00 – Aula 14 Esercitazione in laboratorio - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Sistemi Operativi

Sistemi OperativiSalvatore CampagnaEmail: [email protected] di TorinoDipartimento di Automatica e Informatica

Page 2: Sistemi Operativi

OrarioLezioni in aula

◦Martedì 11.30 – 13.00 – Aula 14Esercitazione in laboratorio

◦Squadra B: Martedì 16.00 – 19.00 (16.00 – 17.30 assistito) - LABINF

◦Squadra A: Mercoledì 16.00 – 19.00 (16.00 – 17.30 assistito) – LAIB 1D

Squadre◦A: ABBATE – LECCA◦B: LEGORA - ZECCHI

Page 3: Sistemi Operativi

InfoURL slide lezione e esercitazione

◦http://www.cad.polito.it/~campagna/so/

Risorse cartacee e elettroniche◦http://tldp.org/LDP/abs/html/◦http://tldp.org/LDP/abs/abs-guide.pdf◦“The Linux A-Z”, Phil Cornes ISBN

0132347091◦Internet

Page 4: Sistemi Operativi

Programma del corsoParte I – Introduzione a

Linux/UNIXParte II – Introduzione alla shell e

comandi baseParte III – Comandi avanzatiParte IV – Shell scriptingParte V – L’editor Vi(m)

Page 5: Sistemi Operativi

IntroduzioneLinux/UNIX è un sistema

operativo multiutenteQuesto vuol dire che può essere

utilizzato da più utenti contemporaneamente

E’perciò necessaria una procedura di login per l’identificazione e l’accesso al sistema

Page 6: Sistemi Operativi

IntroduzioneUna sessione di lavoro inizia con

l’invocazione, da parte dell’ambiente, del programma login

L’utente accede al sistema fornendo nome utente e password

Dopo l’accesso l’utente è identificato da uno user ID

La sessione termina con i comandi logout o exit o con la combinazione Ctrl + D

Page 7: Sistemi Operativi

IntroduzioneLinux/UNIX è un sistema

operativo multitaskingIl multitasking rappresenta la

capacità di un sistema (dare l’impressione per sistemi a core singolo) di eseguire più programmi contemporaneamente

L’obiettivo è quello di massimizzare e ottimizzare l’utilizzo delle risorse

Page 8: Sistemi Operativi

IntroduzioneIl sistema operativo è organizzato

su più livelli detti layer

Hardware

Kernel

Librerie

Shell

Applicazioni

Page 9: Sistemi Operativi

Struttura dei comandiL’interazione tra l’utente e il sistema

operativo avviene tramite comandi impartiti attraverso una shell

La struttura generica di un comando è:

comando [opzioni] [argomenti]Le opzioni modificano il

comportamento del programmaGli argomenti forniscono i dati su cui

il programma opera

Page 10: Sistemi Operativi

Struttura dei comandiPer proseguire un comando sulla

riga successiva terminare la riga con “\” (backslash)

Esempio: find test_dir –name “test.*” \

-print0 | xargs -0 | grep “OK”Per eseguire una serie di

comandi usare “;” come separatore

Esempio: ls -la; cd test_dir; touch file.txt

Page 11: Sistemi Operativi

Il file systemCaratteristiche principali:Gerarchico (organizzazione ad

albero)Formato da directory e fileNon esistono estensione e

versioneL’accesso a file e directory è

basato sui permessi

Page 12: Sistemi Operativi

Layout file system

Page 13: Sistemi Operativi

Il file systemLa directory radice è “/” (slash)La directory corrente è indicata con “.”La directory padre della directory corrente

è indicata con “..”Il separatore di directory è “/” (slash)Ogni file o directory è raggiungibile

attreverso un pathname assoluto o relativo

Esempio (assoluto): /home/alice/work/file.txt

Esempio (relativo): alice/work/file.txt

Page 14: Sistemi Operativi

Il file systemIl nome di un file è una sequenza

qualunque di caratteriNo estensione e versioneE’comune usare comunque

estensioni “standard”Esempio: .c .o .so .ko .p .aUn file il cui nome comincia con

“.” non viene normalemente visualizzato

Page 15: Sistemi Operativi

Nomi dei fileSconsigliato l’uso di caratteri

“particolari” nei nomi di file◦/ \ “ ' * ; ? [ ] ( ) ~ ◦! $ { } < > # @ & |

E’possibile usare lo spazio ma attenzione

Provare I seguenti comandi e verificare l’effetto:◦touch file prova.txt (crea due file)◦touch “file prova.txt” (crea un file)◦touch file\ prova2.txt (crea un file)

Page 16: Sistemi Operativi

I file – i-nodeStruttura dati che archivia:

◦il proprietario e il gruppo di appartenenza

◦dimensione del file e la sua locazione fisica;

◦le informazioni temporali di modifica (mtime), ultimo accesso (atime) e di cambio di stato (ctime)

◦i permessi d'accesso◦il numero di collegamenti fisici che

referenziano l'inode

Page 17: Sistemi Operativi

I file – i-nodeOgni i-node è identificato da un

numero univoco (i-node id) per il dispositivo

Ogni file è un collegamento fisico ad un i-node (associazione nome collegamento fisico i-node id)

Quando si accede a un file si recuperano le informazioni dal suo i-node

Page 18: Sistemi Operativi

Collegamenti tra fileUn collegamento è un oggetto del

file system che permette di fare riferimento ad un altro file del file system attraverso un nome diverso

Il file originale è accessibile attraverso più file

In UNIX/Linux esistono due tipi di collegamenti (link)◦Simbolici (soft link)◦Fisici (hard link)

Page 19: Sistemi Operativi

Collegamenti simboliciSi creano con il comando ln –s

oppure con cp -sE’ un file contenente

un percorso relativo o assoluto al file o directory a cui fa riferimento

Se il file puntato viene rimosso il link simbolico rimane orfano

Il link simbolico può fare riferimento anche ad un file su un altro file system

Page 20: Sistemi Operativi

Collegamenti fisiciSi creano con il comando lnAssocia un nome di file all’i-nodeNon può restare orfanoLa rimozione di un file avviene

solo se tutti gli hard link sono rimossi

I link e il file puntato dal link devono far parte dello stesso file system

Page 21: Sistemi Operativi

PermessiL’accesso a file e directory avviene

attraverso l’assegnazione di permessiPermessi di base o attributi

◦Lettura – read (r)◦Scrittura – write (w)◦Esecuzione – exec (x)

Tre classi di utente◦Proprietario del file o directory – user (u)◦Gruppo a cui appartiene il proprietario -

group(g)◦Gli altri - others (o)

Page 22: Sistemi Operativi

Permessi su directoryLettura – Read(r) – Possibilità di

elencare il contenuto (ls)Scrittura – Write (w) – Possibilità

di creare e/o cancellare file (touch, rm,…)

Execuzione – Exec (x) – Possibilità di attreversare la directory (cd,…)

Page 23: Sistemi Operativi

PermessiDato un file i permessi sono

espressi d a una tripletta a cui corrisponde una valore binario e/o ottale

1 indica permesso settato, 0 permesso non settato

Corrispondenza 1:1 con una stringa binaria o ottale

Esempio: rwxr-xr-x = 111101101 = 755

Permssi per user, group e others

Page 24: Sistemi Operativi

Permessi speciali per eseguibiliSetuid: esecuzione con i privilegi

del proprietario del fileSetgid: esecuzione con i

permessi del gruppoSticky: se settatto per una

directory indica che i file possono essere cancellati e spostati solamente dagli utenti proprietari o dal proprietario della directory o da root

Page 25: Sistemi Operativi

Comandi principaliGestione file e directoryGestione permessiVisualizzazione di file

Page 26: Sistemi Operativi

Il comando manIl comando «più importante» su

un sistema UNIX/Linux è manOgni pagina man è un

documento esplicativo di un comando

Per accedere a una pagina man si usa il comando man [sezione] <comando>

La sezione specifica la categoria di manuale al quale si vuole accedere

Page 27: Sistemi Operativi

Il comando manSezioni:

◦1: comandi generali◦2: chiamate di sistema◦3: funzioni della libreria standard del C◦4: file speciali e driver◦5: formato di file e convenzioni◦6: giochi e screensaver◦7: miscellanea◦8: amministrazione del sistema,

comandi e demoni

Page 28: Sistemi Operativi

Copia e spostamento di filecp [opzioni] <src> <dest>: copia

uno o più file da SRC a DEST (che può essere una directory)

rm [opzioni] <file>: cancella il file

mv [opzioni] <src> <dest>: sposta file e directory in altri file (rinomina) o directory

Page 29: Sistemi Operativi

Opzioni comuni-r (recursive): esegue

ricorsivamente su tutti i file contenuti nelle sottodirectory

-i (interactive): chiede conferma per ognuno dei file

-f (force): esegue il comando senza chiedere conferma

Page 30: Sistemi Operativi

Gestione directorycd <directory>: cambia la

directory corrente con quella indicata

pwd: mostra la directory correntemkdir <directory>: crea una

nuova directoryrmdir <directory>: cancella una

directory vuota

Page 31: Sistemi Operativi

Gestione linkln <target> <alias>: crea un

hard link (link fisico) <alias> a un file o directory <target>

ln –s <target> <alias>: crea un soft link (link simbolico) <alias> a un file o directory <target>

Page 32: Sistemi Operativi

Cambiare i permessichmod è il comando per

cambiare i permessi di accesso ai file

chmod <permessi> <file>I permessi possono essere

specificati simbolicamente o numericamente

La rappresentazione numerica sfrutta la corrispondenza permessi valore ottale

Page 33: Sistemi Operativi

Cambiare i permessiEsempio: permessi con

rappresentazione numericachmod 644 <file>:equivale ad un file con permessi rw-r--r-- = 110 100 100, per u, g, a

La notazione simbolica usa i seguenti simboli per indicare l’utente:◦u: (user) proprietario◦g: (group) gruppo del proprietario◦o: (others) altri◦a: (all) tutti

Page 34: Sistemi Operativi

Cambiare i permessiI simboli per indicare il permesso r, w e xModificatori:

◦+: aggiunge permessi specificati alle classi selezionate; non rimuove permessi già concessi ma non specificati

◦=: imposta i permessi specificati nelle classi selezionate; rimuove eventuali permessi già concessi ma non specificati

◦-:  rimuove i permessi specificati dalle classi selezionate

Page 35: Sistemi Operativi

Cambiare i permessiEsempi:

◦chmod u+r: aggiunge il permesso di lettura al proprietario

◦chmod u=wx: imposta i permessi di scrittura e esecuzione per il proprietario e rimuove tutti gli altri

◦chmod a+x: aggiunge il permesso di esecuzione per tutti

◦chmod o-x: toglie il permesso di esecuzione per gli altri

Page 36: Sistemi Operativi

Gestione permessiumask permette di impostare i

permessi da negare di default quando un file viene creato◦umask <maschera>

Il comando senza la maschera restituisce la maschera corrente

Se la maschera è 022 allora i file vengono creati con permessi 755 = rwxr-xr-x

Page 37: Sistemi Operativi

Gestione permessiPer cambiare proprietario e/o

gruppo del file usare il comando chown (change owner)◦chown [opzioni] utente [:gruppo] file◦chown [opzioni] uid [:gid] file

-R opera ricorsivamente su tutti i file di una directory

Page 38: Sistemi Operativi

Comando lsls (list segments) visualizza l’elenco di

file in una directory e le informazioni riguardanti ciascun file

Opzioni comuni:◦-a: visualizza file nascosti (che iniziano con

“.”)◦-l: formato esteso◦-g: include il gruppo◦-t: ordina i file in ordine temporale◦-r: inverte l’ordine◦-R: opera ricorsivamente sulle sottodirectory

Page 39: Sistemi Operativi

Comando ls – Un esempio# ls -alg ~/tmp

total 84drwx------ 6 maino staff 512 Sep 1 16:14 .drwxr-xr-x 19 maino staff 1024 Sep 6 09:06 ..-rw-r--r-- 1 maino staff 1240 Jan 21 1992 AA.readmedrwxr-x--- 2 maino staff 512 May 22 14:08 examples-rw------- 1 maino staff 2416 Jun 30 15:24 gendata.c-rw------- 1 maino staff 332 Jun 18 15:29 local.cdrwxr-xr-x 2 maino staff 512 May 22 14:08 man-rw-r----- 1 maino staff 27930 Mar 12 23:19 new.tex-rw------- 1 maino staff 28077 Mar 12 22:52 numer.tex-rw-r----- 1 maino staff 70 Jun 2 18:00 prova.tex-rw-r----- 1 maino staff 1364 May 6 14:20 random.c-rw-r----- 1 maino staff 62 May 6 14:21 random.hdrwx------ 2 maino staff 512 May 25 14:36 testprof

Page 40: Sistemi Operativi

Visualizzazione di file di testoCon un editor interattivo: vi,

emacs, …cat <file1>[<file2>…]:

(catenate): visualizza i file passati sulla riga di comando concatenandoli (in successione)

head [-n <#righe>] <file>: visualizza le prime n righe di un file

tail [-n <#righe>] <file>: visualizza le ultime n righe di un file

Page 41: Sistemi Operativi

Visualizzazione file di testopg <file>more <file>less <file>Durante la visualizzazione

◦spazio: prossima pagina◦return: (Invio): prossima riga◦b: pagina precedente◦/pattern: prossima occorrenza di pattern◦?pattern: occorrenza precedente di pattern◦q: chiude l’editor

Page 42: Sistemi Operativi

Riepilogo comandimanmkdir, rmdircp, mv, rm, lnpwdchmod, chown, umasklscat, head, tail, pg, more, less