SO
Mail Prof: daniele.radicioni@unito.it
12 Crediti
Informazioni corso
- Scritto
- Orale facoltativo - per la Lode
Teoria
Unix
- The Linux Programming Interface
Introduzione
Anni ‘60
2 Kernel Originari
- AT&T
- BSD
Richard Stallman lancia lo GNU Project 1983
Free as in Freedom, il punto non e’ sulla gratuita'
- E' ispezionabile
Per un uso didattico basta un sistema discendente da System5
Linus Torvalds, inizia a lavorare su Linux - Unix-like 1991
Progressive Licensing ~ software distrubuibile gratuitamente
- Linux e' il kernel
OS
strato che mette in comunicazione utente e hardware
- 
Kernel strato piu' basso - composto di funzioni autonome
- non utilizzate direttamente dall’utente
 
 - Permette l’accesso all’hardware
 - Device
 - 
Processi Sono programmi in esecuzione - un kernel facilita la creazione e la gestione dei processi
 - 
Fork System call - crea una seconda linea di computazione
 - 
crezioni di processi Processi possono creare altri processi - Genitori
 - Figli
 
 - biforcazione della linea di computazione
 
 - 
Comunicazione tra Processi per permetterne la collaborazione 
 
 - 
Gestione della Memoria - 
Virtualizzazione della Memoria spostamento parti di processi in Memoria Secondaria - poi ripresa attraverso paging
 - 
Swap spostamento di interi processi nella memoria secondaria 
 
- poi ripresa attraverso 
 
- 
 - Operazioni sul Filesystem
 - Un kernel e' construito per un hardware specifico
 
- composto di funzioni autonome
- 
Shell - interprete di comandi
 - permette l’interazione utente - sistema
 - 
oggetto utilizzato per l’amministrazione della macchina $ cat /etc/shells $ tar cvzf foo.tgz cps100 $ tar xvzf foo.tgz 
 
- 
Filesystem Visione astratta che visualizza il contenuto della memoria secondaria della macchina - e' un albero
- bin/ applicazioni condivise
- etc/ configurazione
- home/ directories degli utenti
- lib/ librerie necessarie agli utenti
- opt/ third party software
- tmp/ spazio temporaneo
- usr/ spazio programmi degli utenti
 
 - 
permette all’utente di - visualizzare
 - organizzare
 - interagire le directories della macchina
 
 
- e' un albero
- 
Applicazioni comandi, parti - 
Comandi - comando
- argomenti
- flag con o senza dash che li preceda
 - tar
 - 
man >man 1 command - Possibile specificare la sezione con numero
 
 - 
grep global regular expression print - cerca pattern
 
 - tail
 - head
 - less
 - more
 - mv
 - rm
 - cp
 - 
Metacharacter wildcards - ? qualsiasi carattere 1 volta
- * carattere 0 o piu'
- match tra uno dei caratteri specificati
 
 - 
Input Output Redirection redirigere l’output $ ls > out.org sovrascrive $ ls >> out.org preserva il contenuto precedente cambiare l’input $ sort < terms > terms-alpha sort prende terms e scrive in terms-alpha 
 - 
Pipes Operatore che combina input e output redirection - l’output di un programma viene utilizzato come input ad un altro programma
 > echo $SHELL 
 
 
- 
- 
Filosofia - 
Semplicita' ciascun componente deve essere breve 
 - 
Focus fare una cosa bene - piu' semplice da mantenere
 
 - Componenti Riutilizzabili
 - 
Filtri strumenti che trasformano l’input in un output 
 - 
File in formati aperti UTF8 ~ UTF16 
 - 
Flessibilita' Evitare limiti arbitrari 
 
- 
- 
Account Privilegi dei vari account - 
root completo controllo - puo' distruggere il sistema
- e' dato per scontato che si abbia conoscenza dei pericoli
 
 - system
 - 
utente - nomi
- si usavano al piu' di 8 caratteri
 
- poco accesso
 
- nomi
 - 
Gruppi ogni file ha permessi per: - owner
- gruppo
- altri
 Consentono il controllo di accessi su parti diverse della macchina in una macchina condivisa 
 - 
Permessi il superutente o il proprietario di una risorsa puo' cambiarne la proprieta' > chown jane home/bin > ls -l //formato long -rwxrwx— - la sequenza e':
- in prima posizione indica il tipo di file
- directory
- fifo
 
- poi si susseguono 3 blocchi da 3
- permessi utente
- permessi gruppo
- permessi altri
 
 
- in prima posizione indica il tipo di file
 Cambio Permessi > chmod o+wr myfile //symbolic mode aggiunge write e execute permission a others > chmod 754 myfile //absolute mode - absolute
- ogni numero indica il valore in binario dei permessi di ogni gruppo(owner|group|others)
 
 - 
Tipi di permessi - r
 - w
 - e
 
 - 
utenti - u
 - g
 - o
 
 
- la sequenza e':
 
- 
Integrazione C
Controllo dei processi
Segnali
Pipe e Fifo
Code di messaggi
Memoria Condivisa
Semafori
Bash
C
Esercitazioni
La sua discussione permette l’accesso allo Scritto (5 scritti all’anno)
- almeno 10 giorni di anticipo per la consegna, inviato ai professori dei turni corrispondenti ai partecipanti
- preferibilmente fuori dalla finestra esami
Progetto Individuale o di Gruppo (max 3)
Una volta completato chiedere con mail al professore del corso di Teoria di poter sostenere l’esame scritto, eventualmente l’orale
Novembre
Sorgenti
Breve Relazione
Nome Cognome - Matricola - Mail