lezione 5/3
Schema della sezione
-
[seguono gli argomenti che tratteremo a partire dalla lezione 5/3 ed in quelle successive]
da Kerrisk (cap. 2), pag. 21-42
introduzione ai concetti fondamentali del sistema operativo Linux:
il kernel, i compiti principali del kernel; modalità kernel e modalità user;
punto di vista dei processi; punto di vista del kernel
la shell; utenti e gruppi, user ID, group ID, home directory, login shell, superuser;
Single Directory Hierarchy, radice del file system, tipi di files (file regolari, directories);
directories e links, nomi di files (filename), pathname, pathname assoluto e relativo, cartella di lavoro corrente;
proprietario dei file, permessi dei file (read, write, execute su file regolari; read, write, execute su directory);
universalità di I/O; system call open(), read(), write(), close(); descrittori di file;
programmi, processi, organizzazione della memoria di processo (text, data, heap, stack), creazione di un processo, esecuzione di un programma;
system call fork(), execve();
process id, parent process id, terminazione di un processo (da shell: echo $?)
system call _exit(), wait(); valore di stato di terminazione;
credenziali di processo (real user ID, real group ID, effective user ID, effective group ID);
processi privilegiati/non privilegiati;
processo init; variabili di ambiente;
memory mappings (file mapping, anonymous mapping);
librerie statiche e condivise;
interprocess communication e sincronizzazione tra processi:
signals, pipes, semaphores, shared memory;
segnali: control-C; comando kill da shell; ps -ef per trovare il pid di processo;
threads;
date and time: Epoch; process time (CPU time); system CPU time, user CPU time;
comandi top, htop;
file system /proc : /proc/<pid>/cmdline , /proc/<pid>/fd; /proc/cpuinfo;
altri comandi da shell: git pull , cd , ls , tree , sudo , sudo apt update , sudo apt upgrade , echo, id, man, pwd