1 / 42

Sistemi Operativi

Sistemi Operativi. Salvatore Campagna Email : salvatore.campagna@polito.it Politecnico di Torino Dipartimento di Automatica e Informatica. Orario. Lezioni in aula Martedì 11.30 – 13.00 – Aula 14 Esercitazione in laboratorio

garima
Download Presentation

Sistemi Operativi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistemi Operativi Salvatore Campagna Email: salvatore.campagna@polito.it Politecnico di Torino Dipartimento di Automatica e Informatica

  2. Orario • Lezioni in aula • Martedì 11.30 – 13.00 – Aula 14 • Esercitazione 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

  3. Info • URL 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

  4. Programma del corso • Parte I – Introduzione a Linux/UNIX • Parte II – Introduzione alla shell e comandi base • Parte III – Comandi avanzati • Parte IV – Shellscripting • Parte V – L’editor Vi(m)

  5. Introduzione • Linux/UNIX è un sistema operativo multiutente • Questo 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

  6. Introduzione • Una 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 logouto exito con la combinazione Ctrl + D

  7. Introduzione • Linux/UNIX è un sistema operativo multitasking • Il 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

  8. Introduzione Il sistema operativo è organizzato su più livelli detti layer Applicazioni Shell Librerie Kernel Hardware

  9. Struttura dei comandi • L’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 programma • Gli argomenti forniscono i dati su cui il programma opera

  10. Struttura dei comandi • Per proseguire un comando sulla riga successiva terminare la riga con “\” (backslash) Esempio: findtest_dir–name “test.*” \ -print0 | xargs -0 | grep “OK” • Per eseguire una serie di comandi usare “;” come separatore Esempio: ls -la; cd test_dir; touchfile.txt

  11. Il file system Caratteristiche principali: • Gerarchico (organizzazione ad albero) • Formato da directory e file • Non esistono estensione e versione • L’accesso a file e directory è basato sui permessi

  12. Layout file system

  13. Il file system • La 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 pathnameassoluto o relativo Esempio (assoluto): /home/alice/work/file.txt Esempio (relativo): alice/work/file.txt

  14. Il file system • Il nome di un file è una sequenza qualunque di caratteri • No estensione e versione • E’comune usare comunque estensioni “standard” Esempio: .c .o .so .ko .p .a • Un file il cui nome comincia con “.” non viene normalemente visualizzato

  15. Nomi dei file • Sconsigliato l’uso di caratteri “particolari” nei nomi di file • / \ “ ' * ; ? [ ] ( ) ~ • ! $ { } < > # @ & | • E’possibileusare lo spazio ma attenzione • Provare I seguenticomandi e verificarel’effetto: • touch file prova.txt (crea due file) • touch “file prova.txt” (crea un file) • touch file\ prova2.txt (crea un file)

  16. I file – i-node • Struttura 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 permessid'accesso • il numero di collegamenti fisici che referenziano l'inode

  17. I file – i-node • Ogni 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

  18. Collegamenti tra file • Un 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)

  19. Collegamenti simbolici • Si creano con il comando ln –s oppure con cp -s • E’ 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

  20. Collegamenti fisici • Si creano con il comando ln • Associa un nome di file all’i-node • Non può restare orfano • La 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

  21. Permessi • L’accesso a file e directory avviene attraverso l’assegnazione di permessi • Permessi 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)

  22. Permessi su directory • Lettura – 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,…)

  23. Permessi • Dato 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

  24. Permessi speciali per eseguibili • Setuid: esecuzione con i privilegi del proprietario del file • Setgid: esecuzione con i permessi del gruppo • Sticky: 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

  25. Comandi principali • Gestione file e directory • Gestione permessi • Visualizzazione di file

  26. Il comando man • Il comando «più importante» su un sistema UNIX/Linux è man • Ogni 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

  27. Il comando man • Sezioni: • 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

  28. Copia e spostamento di file • cp [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

  29. 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

  30. Gestione directory • cd <directory>: cambia la directory corrente con quella indicata • pwd: mostra la directory corrente • mkdir <directory>: crea una nuova directory • rmdir <directory>: cancella una directory vuota

  31. Gestione link • ln <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>

  32. Cambiare i permessi • chmod è 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

  33. Cambiare i permessi • Esempio: permessi con rappresentazione numerica chmod 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

  34. Cambiare i permessi • I simboli per indicare il permesso r, w e x • Modificatori: • +: 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

  35. Cambiare i permessi • Esempi: • chmodu+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 • chmoda+x: aggiunge il permesso di esecuzione per tutti • chmod o-x: toglie il permesso di esecuzione per gli altri

  36. Gestione permessi • umask 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

  37. Gestione permessi • Per cambiare proprietario e/o gruppo del file usare il comando chown (changeowner) • chown [opzioni] utente [:gruppo] file • chown [opzioni] uid [:gid] file • -R opera ricorsivamente su tutti i file di una directory

  38. Comando ls • ls (listsegments) 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

  39. Comando ls – Un esempio # ls -alg ~/tmptotal 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

  40. Visualizzazione di file di testo • Con 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

  41. Visualizzazione file di testo • pg <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

  42. Riepilogo comandi • man • mkdir, rmdir • cp, mv, rm, ln • pwd • chmod, chown, umask • ls • cat, head, tail, pg, more, less

More Related