X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=prochand.tex;h=94d316eca7ec189ffb5bc8a5455a1fca12e9fd92;hb=bb7e03c4aabced62e10372f761e2272a7b85101a;hp=03ed95f2f61a473277d8536e6133a53e6458d1fe;hpb=886e1105f5b014b7984a8416d6a8101259af16d6;p=gapil.git diff --git a/prochand.tex b/prochand.tex index 03ed95f..94d316e 100644 --- a/prochand.tex +++ b/prochand.tex @@ -155,7 +155,8 @@ periodico secondo la frequenza specificata dalla costante \const{HZ},\footnote{fino al kernel 2.4 il valore usuale di questa costante era 100, per tutte le architetture eccetto l'alpha, per la quale era 1000, nel 2.6 è stato portato a 1000 su tutte le architetture; occorre fare - attenzione a non confondere questo valore con quello dei clock tick (vedi + attenzione a non confondere questo valore con quello dei + \itindex{clock~tick} \textit{clock tick} (vedi sez.~\ref{sec:sys_unix_time}).} definita in \file{asm/param.h}, ed il cui valore è espresso in Hertz.\footnote{a partire dal kernel 2.6.21 è stato introdotto (a cura di Ingo Molnar) un meccanismo completamente diverso, @@ -1186,15 +1187,15 @@ nuovo riceverne lo stato. \textbf{Macro} & \textbf{Descrizione}\\ \hline \hline - \const{WEXITED} & Ritorna quando un processo figlio è terminato. \\ + \const{WEXITED} & Ritorna quando un processo figlio è terminato.\\ \const{WNOHANG} & Ritorna immediatamente anche se non c'è niente da - notificare. \\ - \const{WSTOPPED} & Ritorna quando un processo figlio è stato fermato. \\ - \const{WCONTINUED}& ritorna quando un processo figlio che era stato - fermato ha ripreso l'esecuzione. \\ + notificare.\\ + \const{WSTOPPED} & Ritorna quando un processo figlio è stato fermato.\\ + \const{WCONTINUED}& Ritorna quando un processo figlio che era stato + fermato ha ripreso l'esecuzione.\\ \const{WNOWAIT} & Lascia il processo ancora in attesa di ricezione, così che una successiva chiamata possa di nuovo riceverne - lo stato. \\ + lo stato.\\ \hline \end{tabular} \caption{Costanti che identificano i bit dell'argomento \param{options} @@ -1516,16 +1517,18 @@ Come accennato in sez.~\ref{sec:intro_multiuser} il modello base\footnote{in realtà già esistono estensioni di questo modello base, che lo rendono più flessibile e controllabile, come le \itindex{capabilities} \textit{capabilities} illustrate in sez.~\ref{sec:proc_capabilities}, le ACL - per i file o il \itindex{Mandatory~Access~Control~(MAC)} \textit{Mandatory - Access Control} di SELinux; inoltre basandosi sul lavoro effettuato con + per i file (vedi sez.~\ref{sec:file_ACL}) o il + \itindex{Mandatory~Access~Control~(MAC)} \textit{Mandatory Access Control} + di \index{SELinux} SELinux; inoltre basandosi sul lavoro effettuato con SELinux, a partire dal kernel 2.5.x, è iniziato lo sviluppo di una - infrastruttura di sicurezza, il \textit{Linux Security Modules}, o LSM, in - grado di fornire diversi agganci a livello del kernel per modularizzare - tutti i possibili controlli di accesso.} di sicurezza di un sistema -unix-like è fondato sui concetti di utente e gruppo, e sulla separazione fra -l'amministratore (\textsl{root}, detto spesso anche \textit{superuser}) che -non è sottoposto a restrizioni, ed il resto degli utenti, per i quali invece -vengono effettuati i vari controlli di accesso. + infrastruttura di sicurezza, i \itindex{Linux~Security~Modules} + \textit{Linux Security Modules}, o LSM, in grado di fornire diversi agganci + a livello del kernel per modularizzare tutti i possibili controlli di + accesso.} di sicurezza di un sistema unix-like è fondato sui concetti di +utente e gruppo, e sulla separazione fra l'amministratore (\textsl{root}, +detto spesso anche \textit{superuser}) che non è sottoposto a restrizioni, ed +il resto degli utenti, per i quali invece vengono effettuati i vari controlli +di accesso. Abbiamo già accennato come il sistema associ ad ogni utente e gruppo due identificatori univoci, lo user-ID ed il group-ID; questi servono al kernel per @@ -1562,27 +1565,27 @@ tab.~\ref{tab:proc_uid_gid}. \hline \hline \acr{uid} & \textit{real} & \textsl{user-ID reale} - & indica l'utente che ha lanciato il programma\\ + & Indica l'utente che ha lanciato il programma.\\ \acr{gid} & '' &\textsl{group-ID reale} - & indica il gruppo principale dell'utente che ha lanciato - il programma \\ + & Indica il gruppo principale dell'utente che ha lanciato + il programma.\\ \hline \acr{euid} & \textit{effective} &\textsl{user-ID effettivo} - & indica l'utente usato nel controllo di accesso \\ + & Indica l'utente usato nel controllo di accesso.\\ \acr{egid} & '' & \textsl{group-ID effettivo} - & indica il gruppo usato nel controllo di accesso \\ + & Indica il gruppo usato nel controllo di accesso.\\ -- & -- & \textsl{group-ID supplementari} - & indicano gli ulteriori gruppi cui l'utente appartiene \\ + & Indicano gli ulteriori gruppi cui l'utente appartiene.\\ \hline -- & \textit{saved} & \textsl{user-ID salvato} - & è una copia dell'\acr{euid} iniziale\\ + & È una copia dell'\acr{euid} iniziale.\\ -- & '' & \textsl{group-ID salvato} - & è una copia dell'\acr{egid} iniziale \\ + & È una copia dell'\acr{egid} iniziale.\\ \hline \acr{fsuid} & \textit{filesystem} &\textsl{user-ID di filesystem} - & indica l'utente effettivo per l'accesso al filesystem \\ + & Indica l'utente effettivo per l'accesso al filesystem. \\ \acr{fsgid} & '' & \textsl{group-ID di filesystem} - & indica il gruppo effettivo per l'accesso al filesystem \\ + & Indica il gruppo effettivo per l'accesso al filesystem.\\ \hline \end{tabular} \caption{Identificatori di utente e gruppo associati a ciascun processo con @@ -2109,12 +2112,12 @@ eseguibili,\footnote{una descrizione sommaria di questa funzionalit ma non essendo implementata non ne tratteremo qui.} in modo da poter stabilire quali capacità possono essere utilizzate quando viene messo in esecuzione uno specifico programma; attualmente però questa funzionalità non è -implementata.\footnote{per attualmente si intende fino al kernel 2.6.13, e - finora non è disponibile al momento neanche presente nessuna realizzazione - sperimentale delle specifiche POSIX.1e, anche se esistono dei patch di - sicurezza del kernel, come LIDS (vedi - \href{http://www.lids.org}{\texttt{http://www.lids.org/})} che realizzano - qualcosa di simile.} +implementata.\footnote{per attualmente si intende fino al kernel 2.6.23; + benché l'infrastruttura per crearla sia presente (vedi anche + sez.~\ref{sec:file_xattr}) finora non è disponibile nessuna realizzazione + delle specifiche POSIX.1e, esistono però dei patch di sicurezza del kernel, + come LIDS (vedi \href{http://www.lids.org}{\texttt{http://www.lids.org/})} + che realizzano qualcosa di simile.} \begin{table}[!h!bt] @@ -2195,7 +2198,8 @@ implementata.\footnote{per attualmente si intende fino al kernel 2.6.13, e (limitatamente a quelle che il processo chiamante ha nel suo insieme di capacità permesse) da qualunque processo.\\ - \const{CAP\_LINUX\_IMMUTABLE}& la capacità di impostare gli attributi +% TODO cambiata nel 2.4.24 rc1 ? + \const{CAP\_LINUX\_IMMUTABLE}& La capacità di impostare gli attributi \textit{immutable} e \itindex{append~mode} \textit{append only} per i file su un filesystem che supporta questi @@ -2206,7 +2210,7 @@ implementata.\footnote{per attualmente si intende fino al kernel 2.6.13, e \const{CAP\_NET\_BROADCAST}& La capacità di consentire l'uso di socket in \itindex{broadcast} \textit{broadcast} e \itindex{multicast} \textit{multicast}.\\ - \const{CAP\_NET\_ADMIN} & la capacità di eseguire alcune operazioni + \const{CAP\_NET\_ADMIN} & La capacità di eseguire alcune operazioni privilegiate sulla rete (impostare le opzioni privilegiate dei socket, abilitare il \itindex{multicast} \textit{multicasting}, @@ -2247,12 +2251,12 @@ implementata.\footnote{per attualmente si intende fino al kernel 2.6.13, e sistema.\\ \const{CAP\_SYS\_NICE} & La capacità di modificare le priorità dei processi (vedi sez.~\ref{sec:proc_priority}). \\ - \const{CAP\_SYS\_RESOURCE}& la capacità di superare le limitazioni sulle + \const{CAP\_SYS\_RESOURCE}& La capacità di superare le limitazioni sulle risorse, aumentare le quote disco, usare lo spazio disco riservato all'amministratore.\\ \const{CAP\_SYS\_TIME} & La capacità di modificare il tempo di sistema (vedi sez.~\ref{sec:sys_time}).\\ - \const{CAP\_SYS\_TTY\_CONFIG}& la capacità di simulare un \textit{hangup} + \const{CAP\_SYS\_TTY\_CONFIG}& La capacità di simulare un \textit{hangup} della console, con la funzione \func{vhangup}.\\ \const{CAP\_MKNOD} & La capacità di creare file di dispositivo con la @@ -3295,7 +3299,6 @@ dato che in Linux questo intervallo di tempo questa funzione ritorna sempre un valore di 150 millisecondi, e non importa specificare il PID di un processo reale. - Come accennato ogni processo che usa lo scheduling real-time può rilasciare volontariamente la CPU; questo viene fatto attraverso la funzione \funcd{sched\_yield}, il cui prototipo è: @@ -3315,8 +3318,12 @@ l'esecuzione non sar in modalità \textit{fifo}, per permettere l'esecuzione degli altri processi con pari priorità quando la sezione più urgente è finita. +% TODO: con il 2.6.23 il comportamento è stato leggermente modificato ed è +% stato introdotto /proc/sys/kernel/sched_compat_yield da mettere a 1 per aver +% la compatibilità con il precedente. -\subsection{Il controllo dello \textit{scheduler} per i sistemi multiprocessore} +\subsection{Il controllo dello \textit{scheduler} per i sistemi + multiprocessore} \label{sec:proc_sched_multiprocess} Infine con il supporto dei sistemi multiprocessore sono state introdotte delle