• Non ci sono risultati.

1 Per chi fosse interessato … Unix

N/A
N/A
Protected

Academic year: 2022

Condividi "1 Per chi fosse interessato … Unix"

Copied!
20
0
0

Testo completo

(1)

Cristina Baroglio - Unix 1

Unix

< Master in Bioinformatica-2003>

Cristina Baroglio baroglio @di.unito.it

http://www.di.unito.it/~baroglio/bioinfo/aa0203/index.html

Per chi fosse interessato …

U NIX, Guida co mpleta

K. Rosen, D. Host, J. Farber, R. Rosinski 1999, McGraw-Hill

(2)

Cristina Baroglio - Unix 3

Unix è un Sistema Operativo

cos’è un sistema operativo?

00101011001010 10001101011000 00001000100001 11010001110010 Un sistema operativo è un software il cui

scopo è:

1. nascondere le complicazioni della m acchina agli utenti

2. gestire le risorse in modo ottimale Un sistema operativo è un softwareil cui

scopo è:

1. nascondere le complicazioni della m acchina agli utenti

2. gestire le risorse in modo ottimale

Nascondere le complicazioni …

cosa vuol dire?

Questo è un computer aperto

I bit sono differenze di potenziale elettrico C P U

RA M

DISC O

BUS DEVICE

Il sistema operativo lavora a un livello più alto, gestisce utenti, me moria, file system, processi Il sistema operativo lavora a un livello più alto, gestisce utenti, me moria, file system, processi

(3)

Cristina Baroglio - Unix 5

Nascondere le complicazioni (2)

esempi

C P U (central processing unit)

File System (struttura organizzativa dei file)

Processi (program mi in esecuzione)

Solitam. Unica

I path mi permettono di raggiungere ogni

file/cartella

I processi devono poter comunicare per

collaborare

M olti utenti lavorano contemporanea mente su di una macchina

Non voglio che altri leggano o modifichino i miei documenti

Voglio poter imporre protocolli di interazione

Gestire le risorse

cos’è una risorsa?

Ese mpio :: la CPU è una risorsa

#include <stdio.h>

m ain(int argc, char **argv) {

int i;

for (i=0; i<strlen(argv[1]; i++) printf(“\n ciao %s!!\n”, argv[1]);

}

Questo è un program ma

È una sequenza di istruzioni scritte in un linguaggio d’alto livello (ling.

C)

Per essere eseguito viene compilato, ovvero tradotto in un linguaggio a più basso livello, le cui istruzioni possono essere eseguite dalla macchina

(4)

Cristina Baroglio - Unix 7

Gestione delle risorse (2)

editor

Interfaccia grafica

Finestra comandi

Mio program ma

È un processo È un processo

È un processo È un insieme di

processi

Se mbrano eseguiti in parallelo ma com’è possibile se la CPU è unica?

Gestione delle risorse (3)

Il Sistema Operativo mantiene un descrittore per ogni processo (process control block)

Ogni processo è in uno stato (in esecuzione, in attesa, pronto, …)

Un solo processo per volta può essere “in esecuzione”: il processo che usa la risorsa CPU

Tutti gli altri sono sospesi

Il sistema operativo implementa una politica di schedulingche per distribuire l’uso della risorsa CPU fra i vari processi pronti (ready)

(5)

Cristina Baroglio - Unix 9

Esempio: round robin

Coda dei processi “ready”

C P U

Un processo può occupare la C P U per un quanto di tempo, allo scadere viene posto in fondo alla coda dei processi ready mentre la C P U passa al primo processo ready in coda

Sistema Operativo Unix

1. M ultiutente 2. M ulti-task

3. File system gerarchico 4. Scritto in C (portabilità) 5. Stratificato

6. Gestisce in modo omogeneo device e directory/file

7. Sistema di protezione di file e directory

(6)

Cristina Baroglio - Unix 11

Shell

> Co mando argomenti [ opzioni ] Output del comando

> nuovo_co mando

Prompt

Indica che il sistema è in attesa di un comando

Tipicamente l’interazione avviene in forma testuale: l’utente digita un comando, il sistema lo esegue, visualizzando eventuali output, poi si mette in attesa di un nuovo comando

L’ambiente di lavoro dell’utente è detto shell. La shell manda in esecuzione i comandi dell’utente e fa da tramite fra questi e il kernel del sistema operativo

Esempi di comandi

>> date

Tue Feb 26 13:27:13 MET 2002

>>

>> ls tmp

prova1* prova1.c docum entazione/

>>

>> gcc –o prova1 prova1.c

>>

Co mando senza argomenti né opzioni

Co mando con un argomento

Co mando con un argomento e un’opzione

(7)

Cristina Baroglio - Unix 13

Gestione degli utenti

Gestione degli utenti

Ad una stessa macchina possono essere collegati più utenti contemporanea mente

Ciascun utente deve lavorare co me se fosse l’unico ad utilizzare la macchina

Un utente deve poter condividere file e cartelle con altri Deve poter proteggere i propri file e cartelle dagli altri Ad una stessa macchina possono essere collegati più utenti contemporanea mente

Ciascun utente deve lavorare co me se fosse l’unicoad utilizzare la macchina

Un utente deve poter condividerefile e cartelle con altri Deve poter proteggerei propri file e cartelle dagli altri

(8)

Cristina Baroglio - Unix 15

Utenti e ambiente di lavoro

Quando un utente inizia a lavorare su una macchina Unix il sistema operativo gli crea un ambiente di lavoro

• l’ambiente è definito dal valore di un certo numero di variabili di ambiente(HOM E, PATH, P W D, TER M, …)

• accesso a una parte del file system

• avvio di un’interfacciadi lavoro

Co me sono identificati gli utenti?

identificazione

Login:: identificatore pubblico usato anche, per esempio, per identificare il destinatario di posta elettronica

Password:: privata, usata dal sistema operativo per accertare l’identità del presunto utente (mantenute in /etc/passwd)

UID:: User Identifier, numero intero usato internamente al sistema come identificatore dell’utente

(9)

Cristina Baroglio - Unix 17

Gruppi di utenti

Un gruppo identifica un insie me di utenti che cooperano

In certe versioni di Unix (non tutte) un utente può appartenere a più gruppi

Ogni gruppo ha un identificatore detto GID (Group Identifier)

Un gruppo identifica un insie me di utenti che cooperano

In certe versioni di Unix (non tutte) un utente può appartenere a più gruppi

Ogni gruppo ha un identificatore detto GID(Group Identifier)

File System

(10)

Cristina Baroglio - Unix 19

File system

L’utente vede la me moria organizzata in file

Un file è una sequenza di byte, ha un nome, un contenuto, un proprietario, e vari attributi come ad esempio i diritti d’accesso

I file sono organizzati in una struttura gerarchica: unalbero

directory file

frontiera

Alberi = scatole cinesi

(11)

Cristina Baroglio - Unix 21

File system e utenti

luca elena topolino

Una parte del file system appartiene a “superuser” (o

“root”) il resto appartiene ai singoli utenti; ogni utente è proprietario di un sottoalbero Una parte del file system appartiene a “superuser” (o

“root”) il resto appartiene ai singoli utenti; ogni utenteè proprietario di un sottoalbero

Path assoluti …

testo.txt

testo.txt root

dir1

dir2

dir3

Nodi diversinell’albero possono avere lo stesso no me

Ogni nodo è univocamente

individuatodal cam mino che congiunge la radice (root) al nodo medesimo (path assoluto)

root/dir1/dir2/testo.txt /dir1/dir2/testo.txt

(12)

Cristina Baroglio - Unix 23

… Path relativi…

.

root

dir1

dir2

dir3

Ogni directoryha due sottodirectory speciali

“.” che punta alla directory m edesima

“..” che punta alla directory padre ..

… Path relativi

testo.txt

testo.txt root

dir1

dir2

dir3

Tramite “..” posso costruire cam mini relativi, che partono da una directory qualsiasi e raggiungono un file (directory) qualsiasi

Se per esempio parto da

“dir3” raggiungo i due file

“testo.txt”rispettivamente con:

testo.txt

(13)

Cristina Baroglio - Unix 25

Diritti di accesso ai file …

Ogni file ha un proprietario: utente che lo ha creato

Il proprietario di un file appartiene a un gruppo

Per ogni file avremo tre specifichedi diritti di accesso:

1. Per il proprietario

2. Per gli utenti ∈ al gruppo del proprietario 3. Per gli utenti che non rientrano nei punti 1 e 2

… diritti di accesso ai file

r = diritto di lettura w = diritto di modifica x = diritto di esecuzione

r w - r - - - documento1.txt

Diritti del proprietario

Diritti del gruppo del proprietario

Diritti di tutti gli altri

User Group Others

(14)

Cristina Baroglio - Unix 27

chmod

Consente i modificare i diritti di accesso

u= modifica i diritti di accesso del proprietario

g= modifica i diritti di accesso del gruppo del proprietario o= modifica i diritti di accesso di tutti gli altri utenti a= tutti gli utenti

+= per abilitare dei diritti -= per disabilitare dei diritti

>> chmod a+x prova1

r w - r -- --- prova1

r wx r -x --x prova1

Diritti di accesso alle directory

r = diritto di lettura

w = diritto di creaz/cancellaz file x = diritto di attraversamento

r w - r - - - mia_directory

Diritti del proprietario

Diritti del gruppo del proprietario

Diritti di tutti gli altri

User Group Others

Inibire il diritto di attraversam ento di una directory ad un utente significa che l’utente non potrà usare quel nome in un path per accedere all’eventuale

sottoalbero

(15)

Cristina Baroglio - Unix 29

Working directory …

In ogni istante ciascun utente è “posizionato” in un qualche punto del file system, la posizione nel file system è detta working directory(directory di lavoro) Tutte le volte che eseguo un comando che utilizza un file

devo specificare il cam mino per raggiungere quel file?

N O!!

>> cp file1 file2

file1è contenuto nella wd file2viene creato in wd

>> cp file1 ../tmp/file2

file1è contenuto nella wd file2viene creato in ../tmp

… working Directory

• La Working Directory è mantenuta in una variabile di ambientechiamata P W D dal sistema operativo

• All’atto del login P W D assu me come valore la ho me directorydell’utente

•Il valore diP W D è modificato dal comando cd

(16)

Cristina Baroglio - Unix 31

Shell

Una shellè un interprete di comandi

tutti i comandi digitati da un utente vengono analizzati ed eseguiti da una shell

Ciclo della shell

Loop forever { wait_com mand;

parse_com mand;

execute_com mand;

}

n.b.i program mi creati dagli utenti sono trattati alla stregua dei comandi di sistema

Una shell consente anche:

1. di mantenere ed usare un elenco di comandi eseguiti (history)

2. di completare i nomi in m odo automatico

Struttura dei comandi

No me_co mando [opzioni] [argo menti]

Unix è case-sensitive: maiuscole ≠ minuscole

Gli spazi fungono da separatori: i nomi non devono contenere spazi

In molti linguaggi gli accentihanno un significato a sé stante:

m ai usare lettere accentate

Alcuni comandi hanno argom enti espliciti altri lavorano su variabili di a mbiente (argomenti impliciti)

(17)

Cristina Baroglio - Unix 33

Alcuni comandi su directory

1. mkdir nome_dir :: crea una nuova directory

2. rmdir nome_dir :: cancella la directory nome_dir(se è vuota) 3. rm –r nome_dir :: cancella una directory e il suo contenuto 4. mv dir1 dir2 :: cambia no me alla directory dir1

5. mv file1 … fileN dir:: sposta i file indicati inserendoli in dir 6. cd path :: cambia la w.d. seguendo il cam mino path 7. ls :: elenca il contenuto della wd

8. ls path :: elenca il contenuto della directory path

9. pwd :: mostra la w.d.

Alcune opzioni di ls

1. -l :: mostra tutte le info associate ai file (dimensione, diritti d’accesso, …) 2. -t :: elenca i file in ordine di modifica (prima quelli modificati più di recente) 3. -a :: elenca anche i file nascosti (il cui nome inizia per “.”)

Alcuni comandi su file

1. rm nome_file :: cancella il file nome_file

2. rm –i nome_file :: cancella il file chiedendo conferma 3. mv file1 file2 :: cambia no me al file file1

4. file file1 :: restituisce il tipo di contenuto del file

5. vi file1 :: editor, qui usato per creare file1 o modificarne il contenuto

(18)

Cristina Baroglio - Unix 35

Alcuni comandi sugli utenti

1. finger login :: restituisce info sul proprietario del login

2. who :: restituisce l’elenco degli utenti attualmente connessi a una macchina

3. whoa mi :: restituisce il login dell’utente dalla cui shell è stato lanciato il comando

Non solo file e directory

testo.txt

testo.txt root

dir1

dir2

dir3

link

ln –s ../dir1/dir2/testo.txt [nuovo_no me]

(19)

Cristina Baroglio - Unix 37

Processi

Processi

L’esecuzione di un comando o in genere di un program ma dà origine a un processo

Standard input

Standard output Standard error

(20)

Cristina Baroglio - Unix 39

Ridirezione dei flussi

I flussi standard possono essere ridiretti: l’input può essere diverso dalla tastiera e output e error possono essere diversi dal monitor (es. file)

Ese mpi:

ls –a >file_risultato

mio_progra m m a > /dev/null

Pipe

I comandi possono essere “concatenati” attraverso la ridirezione di standard input e output dimodoché l’output

prodotto dal primo divenga l’input del secondo

C m d1| C md2

Ese mpio: fgrep “aabbcc” file_dati | wc

Riferimenti

Documenti correlati

A comparison between the evidence produced with the instruments estimated on monthly data and the ones estimated on weekly data (and then sampled at a monthly

Quale deve essere la minima velocità con cui di deve lanciare un oggetto di massa 1 kg dalla supercie della Terra, anché possa sfuggire all'attrazione gravitazionale terrestre

Somministrazione della terapia antimicrobica, antivirale e antifungina nell’adulto e nel bambino in ospedale.. 135

Livello descrittivo: gli allievi sono in grado di riconoscere le figure e di caratterizzarle in base alle loro proprietà geometriche, le sanno denominare. Livello razionale:

Farà parte di questo modulo un foglio, detto Customer Satisfaction Item List, dove devono essere elencate le caratteristiche che il prodotto dovrà possedere per assicurare una

Il Consiglio Internazionale degli Infermieri (ICN) e la Consociazione Nazionale delle Associazioni Infermiere/i (CNAI) avvertono delle conseguenze del

sua divisione in due cellule, tempo caratteristico della specie e delle condizioni colturali..

In caso esito irregolare dell’attività di analisi e controllo, è prevista altresì l’inibizione dalla facoltà di inviare nuove dichiarazioni d’intento tramite i canali