X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=system.tex;h=d33c0c8bb122f7ae3a41ca4d8cf340583d800494;hp=ec3a0840ab0e9ec1a9b0a9b63e813cf10477d279;hb=e51dd0ef809bae5d7e8247e8e043f73d02cd0153;hpb=0465908c904030ae51b43e72afa328e8dda27fd9 diff --git a/system.tex b/system.tex index ec3a084..d33c0c8 100644 --- a/system.tex +++ b/system.tex @@ -88,23 +88,23 @@ avere un valore minimo di 8. \textbf{Costante}&\textbf{Valore}&\textbf{Significato}\\ \hline \hline - \const{MB\_LEN\_MAX}& 16 & massima dimensione di un - carattere esteso\\ - \const{CHAR\_BIT} & 8 & bit di \ctyp{char}\\ - \const{UCHAR\_MAX}& 255 & massimo di \ctyp{unsigned char}\\ - \const{SCHAR\_MIN}& -128 & minimo di \ctyp{signed char}\\ - \const{SCHAR\_MAX}& 127 & massimo di \ctyp{signed char}\\ - \const{CHAR\_MIN} &\footnotemark& minimo di \ctyp{char}\\ - \const{CHAR\_MAX} &\footnotemark& massimo di \ctyp{char}\\ - \const{SHRT\_MIN} & -32768 & minimo di \ctyp{short}\\ - \const{SHRT\_MAX} & 32767 & massimo di \ctyp{short}\\ - \const{USHRT\_MAX}& 65535 & massimo di \ctyp{unsigned short}\\ - \const{INT\_MAX} & 2147483647 & minimo di \ctyp{int}\\ - \const{INT\_MIN} &-2147483648 & minimo di \ctyp{int}\\ - \const{UINT\_MAX} & 4294967295 & massimo di \ctyp{unsigned int}\\ - \const{LONG\_MAX} & 2147483647 & massimo di \ctyp{long}\\ - \const{LONG\_MIN} &-2147483648 & minimo di \ctyp{long}\\ - \const{ULONG\_MAX}& 4294967295 & massimo di \ctyp{unsigned long}\\ + \const{MB\_LEN\_MAX}& 16 & Massima dimensione di un + carattere esteso.\\ + \const{CHAR\_BIT} & 8 & Numero di bit di \ctyp{char}.\\ + \const{UCHAR\_MAX}& 255 & Massimo di \ctyp{unsigned char}.\\ + \const{SCHAR\_MIN}& -128 & Minimo di \ctyp{signed char}.\\ + \const{SCHAR\_MAX}& 127 & Massimo di \ctyp{signed char}.\\ + \const{CHAR\_MIN} &\footnotemark& Minimo di \ctyp{char}.\\ + \const{CHAR\_MAX} &\footnotemark& Massimo di \ctyp{char}.\\ + \const{SHRT\_MIN} & -32768 & Minimo di \ctyp{short}.\\ + \const{SHRT\_MAX} & 32767 & Massimo di \ctyp{short}.\\ + \const{USHRT\_MAX}& 65535 & Massimo di \ctyp{unsigned short}.\\ + \const{INT\_MAX} & 2147483647 & Minimo di \ctyp{int}.\\ + \const{INT\_MIN} &-2147483648 & Minimo di \ctyp{int}.\\ + \const{UINT\_MAX} & 4294967295 & Massimo di \ctyp{unsigned int}.\\ + \const{LONG\_MAX} & 2147483647 & Massimo di \ctyp{long}.\\ + \const{LONG\_MIN} &-2147483648 & Minimo di \ctyp{long}.\\ + \const{ULONG\_MAX}& 4294967295 & Massimo di \ctyp{unsigned long}.\\ \hline \end{tabular} \caption{Costanti definite in \file{limits.h} in conformità allo standard @@ -130,10 +130,10 @@ tab.~\ref{tab:sys_isoc90_macro}. \textbf{Costante}&\textbf{Valore}&\textbf{Significato}\\ \hline \hline - \const{LLONG\_MAX}& 9223372036854775807& massimo di \ctyp{long long}\\ - \const{LLONG\_MIN}&-9223372036854775808& minimo di \ctyp{long long}\\ + \const{LLONG\_MAX}& 9223372036854775807& Massimo di \ctyp{long long}.\\ + \const{LLONG\_MIN}&-9223372036854775808& Minimo di \ctyp{long long}.\\ \const{ULLONG\_MAX}&18446744073709551615& - massimo di \ctyp{unsigned long long}\\ + Massimo di \ctyp{unsigned long long}.\\ \hline \end{tabular} \caption{Macro definite in \file{limits.h} in conformità allo standard @@ -163,22 +163,21 @@ file, riportate in tab.~\ref{tab:sys_file_macro}). \textbf{Costante}&\textbf{Valore}&\textbf{Significato}\\ \hline \hline - \const{ARG\_MAX} &131072& dimensione massima degli argomenti + \const{ARG\_MAX} &131072& Dimensione massima degli argomenti passati ad una funzione della famiglia \func{exec}.\\ - \const{CHILD\_MAX} & 999& numero massimo di processi contemporanei + \const{CHILD\_MAX} & 999& Numero massimo di processi contemporanei che un utente può eseguire.\\ - \const{OPEN\_MAX} & 256& numero massimo di file che un processo + \const{OPEN\_MAX} & 256& Numero massimo di file che un processo può mantenere aperti in contemporanea.\\ - \const{STREAM\_MAX}& 8& massimo numero di stream aperti per + \const{STREAM\_MAX}& 8& Massimo numero di stream aperti per processo in contemporanea.\\ - \const{TZNAME\_MAX}& 6& dimensione massima del nome di una + \const{TZNAME\_MAX}& 6& Dimensione massima del nome di una \texttt{timezone} (vedi sez.~\ref{sec:sys_time_base})).\\ - \const{NGROUPS\_MAX}& 32& numero di gruppi supplementari per + \const{NGROUPS\_MAX}& 32& Numero di gruppi supplementari per processo (vedi sez.~\ref{sec:proc_access_id}).\\ - \const{SSIZE\_MAX}&32767& valore massimo del tipo \type{ssize\_t}.\\ - \hline + \const{SSIZE\_MAX}&32767& Valore massimo del tipo \type{ssize\_t}.\\ \hline \end{tabular} \caption{Costanti per i limiti del sistema.} @@ -207,29 +206,28 @@ riportati in tab.~\ref{tab:sys_posix1_general}. \textbf{Costante}&\textbf{Valore}&\textbf{Significato}\\ \hline \hline - \const{\_POSIX\_ARG\_MAX} & 4096& dimensione massima degli argomenti + \const{\_POSIX\_ARG\_MAX} & 4096& Dimensione massima degli argomenti passati ad una funzione della famiglia \func{exec}.\\ - \const{\_POSIX\_CHILD\_MAX} & 6& numero massimo di processi + \const{\_POSIX\_CHILD\_MAX} & 6& Numero massimo di processi contemporanei che un utente può eseguire.\\ - \const{\_POSIX\_OPEN\_MAX} & 16& numero massimo di file che un processo + \const{\_POSIX\_OPEN\_MAX} & 16& Numero massimo di file che un processo può mantenere aperti in contemporanea.\\ - \const{\_POSIX\_STREAM\_MAX} & 8& massimo numero di stream aperti per + \const{\_POSIX\_STREAM\_MAX} & 8& Massimo numero di stream aperti per processo in contemporanea.\\ - \const{\_POSIX\_TZNAME\_MAX} & & dimensione massima del nome di una + \const{\_POSIX\_TZNAME\_MAX} & & Dimensione massima del nome di una \textit{timezone} (vedi sez.~\ref{sec:sys_date}). \\ - \const{\_POSIX\_NGROUPS\_MAX}& 0& numero di gruppi supplementari per + \const{\_POSIX\_NGROUPS\_MAX}& 0& Numero di gruppi supplementari per processo (vedi sez.~\ref{sec:proc_access_id}).\\ - \const{\_POSIX\_SSIZE\_MAX} &32767& valore massimo del tipo + \const{\_POSIX\_SSIZE\_MAX} &32767& Valore massimo del tipo \type{ssize\_t}.\\ \const{\_POSIX\_AIO\_LISTIO\_MAX}&2& \\ \const{\_POSIX\_AIO\_MAX} & 1& \\ \hline - \hline \end{tabular} \caption{Macro dei valori minimi delle caratteristiche generali del sistema per la conformità allo standard POSIX.1.} @@ -250,14 +248,14 @@ valori ottenuti da \func{sysconf}. \textbf{Macro}&\textbf{Significato}\\ \hline \hline - \macro{\_POSIX\_JOB\_CONTROL}& il sistema supporta il + \macro{\_POSIX\_JOB\_CONTROL}& Il sistema supporta il \textit{job control} (vedi sez.~\ref{sec:sess_job_control}).\\ - \macro{\_POSIX\_SAVED\_IDS} & il sistema supporta gli identificatori del + \macro{\_POSIX\_SAVED\_IDS} & Il sistema supporta gli identificatori del gruppo \textit{saved} (vedi sez.~\ref{sec:proc_access_id}) per il controllo di accesso dei processi\\ - \const{\_POSIX\_VERSION} & fornisce la versione dello standard POSIX.1 + \const{\_POSIX\_VERSION} & Fornisce la versione dello standard POSIX.1 supportata nel formato YYYYMML (ad esempio 199009L).\\ \hline @@ -401,15 +399,15 @@ riportate in tab.~\ref{tab:sys_file_macro}. \textbf{Costante}&\textbf{Valore}&\textbf{Significato}\\ \hline \hline - \const{LINK\_MAX} &8 & numero massimo di link a un file\\ - \const{NAME\_MAX}& 14 & lunghezza in byte di un nome di file. \\ - \const{PATH\_MAX}& 256 & lunghezza in byte di un + \const{LINK\_MAX} &8 & Numero massimo di link a un file.\\ + \const{NAME\_MAX}& 14 & Lunghezza in byte di un nome di file. \\ + \const{PATH\_MAX}& 256 & Lunghezza in byte di un \itindex{pathname} \textit{pathname}.\\ - \const{PIPE\_BUF}&4096 & byte scrivibili atomicamente in una pipe + \const{PIPE\_BUF}&4096 & Byte scrivibili atomicamente in una pipe (vedi sez.~\ref{sec:ipc_pipes}).\\ - \const{MAX\_CANON}&255 & dimensione di una riga di terminale in modo + \const{MAX\_CANON}&255 & Dimensione di una riga di terminale in modo canonico (vedi sez.~\ref{sec:term_design}).\\ - \const{MAX\_INPUT}&255 & spazio disponibile nella coda di input + \const{MAX\_INPUT}&255 & Spazio disponibile nella coda di input del terminale (vedi sez.~\ref{sec:term_design}).\\ \hline @@ -432,16 +430,16 @@ le analoghe di tab.~\ref{tab:sys_posix1_general}. \textbf{Macro}&\textbf{Valore}&\textbf{Significato}\\ \hline \hline - \const{\_POSIX\_LINK\_MAX} &8 & numero massimo di link a un file.\\ - \const{\_POSIX\_NAME\_MAX}& 14 & lunghezza in byte di un nome di file. \\ - \const{\_POSIX\_PATH\_MAX}& 256 & lunghezza in byte di un - \itindex{pathname} \textit{pathname}.\\ - \const{\_POSIX\_PIPE\_BUF}& 512 & byte scrivibili atomicamente in una - pipe.\\ - \const{\_POSIX\_MAX\_CANON}&255 & dimensione di una riga di - terminale in modo canonico.\\ - \const{\_POSIX\_MAX\_INPUT}&255 & spazio disponibile nella coda di input - del terminale.\\ + \const{\_POSIX\_LINK\_MAX} &8 & Numero massimo di link a un file.\\ + \const{\_POSIX\_NAME\_MAX}& 14 & Lunghezza in byte di un nome di file.\\ + \const{\_POSIX\_PATH\_MAX}& 256 & Lunghezza in byte di un + \itindex{pathname} \textit{pathname}.\\ + \const{\_POSIX\_PIPE\_BUF}& 512 & Byte scrivibili atomicamente in una + pipe.\\ + \const{\_POSIX\_MAX\_CANON}&255 & Dimensione di una riga di + terminale in modo canonico.\\ + \const{\_POSIX\_MAX\_INPUT}&255 & Spazio disponibile nella coda di input + del terminale.\\ % \const{\_POSIX\_MQ\_OPEN\_MAX}& 8& \\ % \const{\_POSIX\_MQ\_PRIO\_MAX}& 32& \\ % \const{\_POSIX\_FD\_SETSIZE}& 16 & \\ @@ -535,7 +533,7 @@ il manuale delle \acr{glibc} indica due diverse dimensioni, \const{\_UTSNAME\_LENGTH} per i campi standard e \const{\_UTSNAME\_DOMAIN\_LENGTH} per quello specifico per il nome di dominio; altri sistemi usano nomi diversi come \const{SYS\_NMLN} o \const{\_SYS\_NMLN} -o \const{UTSLEN} che possono avere valori diversi.\footnote{Nel caso di Linux +o \const{UTSLEN} che possono avere valori diversi.\footnote{nel caso di Linux \func{uname} corrisponde in realtà a 3 system call diverse, le prime due usano rispettivamente delle lunghezze delle stringhe di 9 e 65 byte; la terza usa anch'essa 65 byte, ma restituisce anche l'ultimo campo, @@ -660,11 +658,14 @@ in \file{linux/sysctl.h},\footnote{indicando un file di definizioni si fa disponibile in \file{/proc/sys} è riportata inoltre nella documentazione inclusa nei sorgenti del kernel, nella directory \file{Documentation/sysctl}. -Ma oltre alle informazioni ottenibili da \func{sysctl} dentro \file{proc} -sono disponibili moltissime altre informazioni, fra cui ad esempio anche -quelle fornite da \func{uname} (vedi sez.~\ref{sec:sys_config}) che sono -mantenute nei file \file{ostype}, \file{hostname}, \file{osrelease}, -\file{version} e \file{domainname} di \file{/proc/kernel/}. +Ma oltre alle informazioni ottenibili da \func{sysctl} dentro \file{proc} sono +disponibili moltissime altre informazioni, fra cui ad esempio anche quelle +fornite da \func{uname} (vedi sez.~\ref{sec:sys_config}) che sono mantenute +nei file \procrelfile{/proc/sys/kernel}{ostype}, +\procrelfile{/proc/sys/kernel}{hostname}, +\procrelfile{/proc/sys/kernel}{osrelease}, +\procrelfile{/proc/sys/kernel}{version} e +\procrelfile{/proc/sys/kernel}{domainname} di \file{/proc/sys/kernel/}. @@ -729,9 +730,10 @@ loro dati sono generati al volo ad ogni lettura, e passati al kernel ad ogni scrittura. Il tipo di filesystem è specificato da \param{filesystemtype}, che deve essere -una delle stringhe riportate nel file \file{/proc/filesystems}, che contiene -l'elenco dei filesystem supportati dal kernel; nel caso si sia indicato uno -dei filesystem virtuali, il contenuto di \param{source} viene ignorato. +una delle stringhe riportate nel file \procfile{/proc/filesystems}, che +contiene l'elenco dei filesystem supportati dal kernel; nel caso si sia +indicato uno dei filesystem virtuali, il contenuto di \param{source} viene +ignorato. Dopo l'esecuzione della funzione il contenuto del filesystem viene resto disponibile nella directory specificata come \textit{mount point}, il @@ -766,27 +768,27 @@ valori riportati in tab.~\ref{tab:sys_mount_flags}. \textbf{Parametro} & \textbf{Valore}&\textbf{Significato}\\ \hline \hline - \const{MS\_RDONLY} & 1 & monta in sola lettura.\\ - \const{MS\_NOSUID} & 2 & ignora i bit \itindex{suid~bit} \acr{suid} e + \const{MS\_RDONLY} & 1 & Monta in sola lettura.\\ + \const{MS\_NOSUID} & 2 & Ignora i bit \itindex{suid~bit} \acr{suid} e \itindex{sgid~bit} \acr{sgid}.\\ - \const{MS\_NODEV} & 4 & impedisce l'accesso ai file di dispositivo.\\ - \const{MS\_NOEXEC} & 8 & impedisce di eseguire programmi.\\ - \const{MS\_SYNCHRONOUS}& 16 & abilita la scrittura sincrona.\\ - \const{MS\_REMOUNT} & 32 & rimonta il filesystem cambiando le opzioni.\\ - \const{MS\_MANDLOCK} & 64 & consente il \textit{mandatory locking} + \const{MS\_NODEV} & 4 & Impedisce l'accesso ai file di dispositivo.\\ + \const{MS\_NOEXEC} & 8 & Impedisce di eseguire programmi.\\ + \const{MS\_SYNCHRONOUS}& 16 & Abilita la scrittura sincrona.\\ + \const{MS\_REMOUNT} & 32 & Rimonta il filesystem cambiando le opzioni.\\ + \const{MS\_MANDLOCK} & 64 & Consente il \textit{mandatory locking} \itindex{mandatory~locking} (vedi sez.~\ref{sec:file_mand_locking}).\\ - \const{S\_WRITE} & 128 & scrive normalmente.\\ - \const{S\_APPEND} & 256 & consente la scrittura solo in + \const{S\_WRITE} & 128 & Scrive normalmente.\\ + \const{S\_APPEND} & 256 & Consente la scrittura solo in \itindex{append~mode} \textit{append mode} (vedi sez.~\ref{sec:file_sharing}).\\ - \const{S\_IMMUTABLE} & 512 & impedisce che si possano modificare i file.\\ - \const{MS\_NOATIME} &1024 & non aggiorna gli \textit{access time} (vedi + \const{S\_IMMUTABLE} & 512 & Impedisce che si possano modificare i file.\\ + \const{MS\_NOATIME} &1024 & Non aggiorna gli \textit{access time} (vedi sez.~\ref{sec:file_file_times}).\\ - \const{MS\_NODIRATIME}&2048 & non aggiorna gli \textit{access time} delle + \const{MS\_NODIRATIME}&2048 & Non aggiorna gli \textit{access time} delle directory.\\ - \const{MS\_BIND} &4096 & monta il filesystem altrove.\\ - \const{MS\_MOVE} &8192 & sposta atomicamente il punto di montaggio.\\ + \const{MS\_BIND} &4096 & Monta il filesystem altrove.\\ + \const{MS\_MOVE} &8192 & Sposta atomicamente il punto di montaggio.\\ \hline \end{tabular} \caption{Tabella dei codici dei flag di montaggio di un filesystem.} @@ -903,15 +905,15 @@ genere Le \acr{glibc} provvedono infine una serie di funzioni per la gestione dei due -file \file{/etc/fstab} ed \file{/etc/mtab}, che convenzionalmente sono usati -in quasi tutti i sistemi unix-like per mantenere rispettivamente le +file \conffile{/etc/fstab} ed \conffile{/etc/mtab}, che convenzionalmente sono +usati in quasi tutti i sistemi unix-like per mantenere rispettivamente le informazioni riguardo ai filesystem da montare e a quelli correntemente montati. Le funzioni servono a leggere il contenuto di questi file in -opportune strutture \struct{fstab} e \struct{mntent}, e, per \file{/etc/mtab} -per inserire e rimuovere le voci presenti nel file. +opportune strutture \struct{fstab} e \struct{mntent}, e, per +\conffile{/etc/mtab} per inserire e rimuovere le voci presenti nel file. In generale si dovrebbero usare queste funzioni (in particolare quelle -relative a \file{/etc/mtab}), quando si debba scrivere un programma che +relative a \conffile{/etc/mtab}), quando si debba scrivere un programma che effettua il montaggio di un filesystem; in realtà in questi casi è molto più semplice invocare direttamente il programma \cmd{mount}, per cui ne tralasceremo la trattazione, rimandando al manuale delle \acr{glibc} @@ -926,18 +928,19 @@ tralasceremo la trattazione, rimandando al manuale delle \acr{glibc} Tradizionalmente le informazioni utilizzate nella gestione di utenti e gruppi (password, corrispondenze fra nomi simbolici e user-id, home directory, ecc.) -venivano registrate all'interno dei due file di testo \file{/etc/passwd} ed -\file{/etc/group},\footnote{in realtà oltre a questi nelle distribuzioni più - recenti è stato introdotto il sistema delle \textit{shadow password} che - prevede anche i due file \file{/etc/shadow} e \file{/etc/gshadow}, in cui - sono state spostate le informazioni di autenticazione (ed inserite alcune - estensioni) per toglierle dagli altri file che devono poter essere letti per - poter effettuare l'associazione fra username e \acr{uid}.} il cui formato è -descritto dalle relative pagine del manuale\footnote{nella quinta sezione, - quella dei file di configurazione, occorre cioè usare \cmd{man 5 passwd} - dato che altrimenti si avrebbe la pagina di manuale del comando - \cmd{passwd}.} e tutte le funzioni che richiedevano l'accesso a queste -informazione andavano a leggere direttamente il contenuto di questi file. +venivano registrate all'interno dei due file di testo \conffile{/etc/passwd} +ed \conffile{/etc/group},\footnote{in realtà oltre a questi nelle + distribuzioni più recenti è stato introdotto il sistema delle \textit{shadow + password} che prevede anche i due file \conffile{/etc/shadow} e + \conffile{/etc/gshadow}, in cui sono state spostate le informazioni di + autenticazione (ed inserite alcune estensioni) per toglierle dagli altri + file che devono poter essere letti per poter effettuare l'associazione fra + username e \acr{uid}.} il cui formato è descritto dalle relative pagine del +manuale\footnote{nella quinta sezione, quella dei file di configurazione, + occorre cioè usare \cmd{man 5 passwd} dato che altrimenti si avrebbe la + pagina di manuale del comando \cmd{passwd}.} e tutte le funzioni che +richiedevano l'accesso a queste informazione andavano a leggere direttamente +il contenuto di questi file. Col tempo però questa impostazione ha incominciato a mostrare dei limiti: da una parte il meccanismo classico di autenticazione è stato ampliato, ed oggi @@ -1089,16 +1092,16 @@ fig.~\ref{fig:sys_group_struct}. \end{figure} Le funzioni viste finora sono in grado di leggere le informazioni sia -direttamente dal file delle password in \file{/etc/passwd} che tramite il -sistema del \itindex{Name~Service~Switch} \textit{Name Service Switch} e -sono completamente generiche. Si noti però che non c'è una funzione che -permetta di impostare direttamente una password.\footnote{in realtà questo può - essere fatto ricorrendo a PAM, ma questo è un altro discorso.} Dato che -POSIX non prevede questa possibilità esiste un'altra interfaccia che lo fa, -derivata da SVID le cui funzioni sono riportate in -tab.~\ref{tab:sys_passwd_func}. Questa però funziona soltanto quando le -informazioni sono mantenute su un apposito file di \textsl{registro} di utenti -e gruppi, con il formato classico di \file{/etc/passwd} e \file{/etc/group}. +direttamente dal file delle password in \conffile{/etc/passwd} che tramite il +sistema del \itindex{Name~Service~Switch} \textit{Name Service Switch} e sono +completamente generiche. Si noti però che non c'è una funzione che permetta di +impostare direttamente una password.\footnote{in realtà questo può essere + fatto ricorrendo a PAM, ma questo è un altro discorso.} Dato che POSIX non +prevede questa possibilità esiste un'altra interfaccia che lo fa, derivata da +SVID le cui funzioni sono riportate in tab.~\ref{tab:sys_passwd_func}. Questa +però funziona soltanto quando le informazioni sono mantenute su un apposito +file di \textsl{registro} di utenti e gruppi, con il formato classico di +\conffile{/etc/passwd} e \conffile{/etc/group}. \begin{table}[htb] \footnotesize @@ -1113,29 +1116,29 @@ e gruppi, con il formato classico di \file{/etc/passwd} e \file{/etc/group}. \func{fgetpwent\_r}& Come la precedente, ma rientrante.\\ \func{putpwent} & Immette una voce in un file di registro degli utenti.\\ - \func{getpwent} & Legge una voce da \file{/etc/passwd}.\\ + \func{getpwent} & Legge una voce da \conffile{/etc/passwd}.\\ \func{getpwent\_r} & Come la precedente, ma rientrante.\\ - \func{setpwent} & Ritorna all'inizio di \file{/etc/passwd}.\\ - \func{endpwent} & Chiude \file{/etc/passwd}.\\ + \func{setpwent} & Ritorna all'inizio di \conffile{/etc/passwd}.\\ + \func{endpwent} & Chiude \conffile{/etc/passwd}.\\ \func{fgetgrent} & Legge una voce dal file di registro dei gruppi specificato.\\ \func{fgetgrent\_r}& Come la precedente, ma rientrante.\\ \func{putgrent} & Immette una voce in un file di registro dei gruppi.\\ - \func{getgrent} & Legge una voce da \file{/etc/group}.\\ + \func{getgrent} & Legge una voce da \conffile{/etc/group}.\\ \func{getgrent\_r} & Come la precedente, ma rientrante.\\ - \func{setgrent} & Ritorna all'inizio di \file{/etc/group}.\\ - \func{endgrent} & Chiude \file{/etc/group}.\\ + \func{setgrent} & Ritorna all'inizio di \conffile{/etc/group}.\\ + \func{endgrent} & Chiude \conffile{/etc/group}.\\ \hline \end{tabular} \caption{Funzioni per la manipolazione dei campi di un file usato come - registro per utenti o gruppi nel formato di \file{/etc/passwd} e - \file{/etc/groups}.} + registro per utenti o gruppi nel formato di \conffile{/etc/passwd} e + \conffile{/etc/group}.} \label{tab:sys_passwd_func} \end{table} Dato che oramai la gran parte delle distribuzioni di GNU/Linux utilizzano almeno le \textit{shadow password} (quindi con delle modifiche rispetto al -formato classico del file \file{/etc/passwd}), si tenga presente che le +formato classico del file \conffile{/etc/passwd}), si tenga presente che le funzioni di questa interfaccia che permettono di scrivere delle voci in un \textsl{registro} degli utenti (cioè \func{putpwent} e \func{putgrent}) non hanno la capacità di farlo specificando tutti i contenuti necessari rispetto a @@ -1282,17 +1285,17 @@ corrispondente al valore del campo \var{ut\_id} specificato in \param{ut}. \textbf{Valore} & \textbf{Significato}\\ \hline \hline - \const{EMPTY} & Non contiene informazioni valide. \\ - \const{RUN\_LVL} & Identica il runlevel del sistema. \\ - \const{BOOT\_TIME} & Identifica il tempo di avvio del sistema \\ + \const{EMPTY} & Non contiene informazioni valide.\\ + \const{RUN\_LVL} & Identica il runlevel del sistema.\\ + \const{BOOT\_TIME} & Identifica il tempo di avvio del sistema.\\ \const{OLD\_TIME} & Identifica quando è stato modificato l'orologio di - sistema. \\ + sistema.\\ \const{NEW\_TIME} & Identifica da quanto è stato modificato il - sistema. \\ - \const{INIT\_PROCESS} & Identifica un processo lanciato da \cmd{init}. \\ - \const{LOGIN\_PROCESS}& Identifica un processo di login. \\ - \const{USER\_PROCESS} & Identifica un processo utente. \\ - \const{DEAD\_PROCESS} & Identifica un processo terminato. \\ + sistema.\\ + \const{INIT\_PROCESS} & Identifica un processo lanciato da \cmd{init}.\\ + \const{LOGIN\_PROCESS}& Identifica un processo di login.\\ + \const{USER\_PROCESS} & Identifica un processo utente.\\ + \const{DEAD\_PROCESS} & Identifica un processo terminato.\\ % \const{ACCOUNTING} & ??? \\ \hline \end{tabular} @@ -1367,7 +1370,7 @@ utilizzo. \subsection{L'uso delle risorse} \label{sec:sys_resource_use} -Come abbiamo accennato in sez.~\ref{sec:proc_wait4} le informazioni riguardo +Come abbiamo accennato in sez.~\ref{sec:proc_wait} le informazioni riguardo l'utilizzo delle risorse da parte di un processo è mantenuto in una struttura di tipo \struct{rusage}, la cui definizione (che si trova in \file{sys/resource.h}) è riportata in fig.~\ref{fig:sys_rusage_struct}. @@ -1411,7 +1414,7 @@ ai tempi di utilizzo del processore, che sono definiti come strutture di tipo \struct{timeval}. Questa è la stessa struttura utilizzata da \func{wait4} (si ricordi quando -visto in sez.~\ref{sec:proc_wait4}) per ricavare la quantità di risorse +visto in sez.~\ref{sec:proc_wait}) per ricavare la quantità di risorse impiegate dal processo di cui si è letto lo stato di terminazione, ma essa può anche essere letta direttamente utilizzando la funzione \funcd{getrusage}, il cui prototipo è: @@ -1471,7 +1474,7 @@ fatto solo fino al valore del secondo, che per questo viene detto \textit{hard \errcode{ENOMEM}, mentre se il superamento viene causato dalla crescita dello \itindex{stack} stack il processo riceverà un segnale di - \const{SIGSEGV}. \\ + \const{SIGSEGV}.\\ \const{RLIMIT\_CORE} & La massima dimensione per di un file di \itindex{core~dump} \textit{core dump} (vedi sez.~\ref{sec:sig_prog_error}) creato nella @@ -1585,8 +1588,8 @@ parte di un processo sono previste due funzioni, \funcd{getrlimit} e \bodydesc{Le funzioni ritornano 0 in caso di successo e -1 in caso di errore, nel qual caso \var{errno} assumerà uno dei valori: \begin{errlist} - \item[\errcode{EINVAL}] I valori per \param{resource} non sono validi. - \item[\errcode{EPERM}] Un processo senza i privilegi di amministratore ha + \item[\errcode{EINVAL}] i valori per \param{resource} non sono validi. + \item[\errcode{EPERM}] un processo senza i privilegi di amministratore ha cercato di innalzare i propri limiti. \end{errlist} ed \errval{EFAULT}.} @@ -1744,7 +1747,7 @@ prototipo \begin{errlist} \item[\errcode{EACCESS}] non si hanno i permessi per accedere a \param{pathname}. - \item[\errcode{EPERM}] Il processo non ha privilegi sufficienti ad + \item[\errcode{EPERM}] il processo non ha privilegi sufficienti ad abilitare il \textit{BSD accounting}. \item[\errcode{ENOSYS}] il kernel non supporta il \textit{BSD accounting}. \item[\errcode{EUSER}] non sono disponibili nel kernel strutture per il @@ -1773,9 +1776,9 @@ vengono salvate in formato binario, e corrispondono al contenuto della apposita struttura dati definita all'interno del kernel. Il funzionamento di \func{acct} viene inoltre modificato da uno specifico -parametro di sistema, modificabile attraverso \file{/proc/sys/kernel/acct} (o -tramite la corrispondente \func{sysctl}). Esso contiene tre valori interi, il -primo indica la percentuale di spazio disco libero sopra il quale viene +parametro di sistema, modificabile attraverso \procfile{/proc/sys/kernel/acct} +(o tramite la corrispondente \func{sysctl}). Esso contiene tre valori interi, +il primo indica la percentuale di spazio disco libero sopra il quale viene ripresa una registrazione che era stata sospesa per essere scesi sotto il minimo indicato dal secondo valore (sempre in percentuale di spazio disco libero). Infine l'ultimo valore indica la frequenza in secondi con cui deve @@ -1834,8 +1837,8 @@ demoni che compiono lavori amministrativi ad ore definite, come \cmd{cron}. Di solito questo tempo viene convertito automaticamente dal valore in UTC al tempo locale, utilizzando le opportune informazioni di localizzazione -(specificate in \file{/etc/timezone}). E da tenere presente che questo tempo è -mantenuto dal sistema e non è detto che corrisponda al tempo tenuto +(specificate in \conffile{/etc/timezone}). E da tenere presente che questo +tempo è mantenuto dal sistema e non è detto che corrisponda al tempo tenuto dall'orologio hardware del calcolatore. Anche il \itindex{process~time} \textit{process time} di solito si esprime in @@ -2178,10 +2181,10 @@ sintassi specificata per la forma equivalente di questa funzione definita come \hline \hline \const{TIME\_OK} & 0 & L'orologio è sincronizzato.\\ - \const{TIME\_INS} & 1 & insert leap second.\\ - \const{TIME\_DEL} & 2 & delete leap second.\\ - \const{TIME\_OOP} & 3 & leap second in progress.\\ - \const{TIME\_WAIT} & 4 & leap second has occurred.\\ + \const{TIME\_INS} & 1 & Insert leap second.\\ + \const{TIME\_DEL} & 2 & Delete leap second.\\ + \const{TIME\_OOP} & 3 & Leap second in progress.\\ + \const{TIME\_WAIT} & 4 & Leap second has occurred.\\ \const{TIME\_BAD} & 5 & L'orologio non è sincronizzato.\\ \hline \end{tabular} @@ -2305,7 +2308,7 @@ funzione \funcd{tzset}, il cui prototipo La funzione inizializza le variabili di fig.~\ref{fig:sys_tzname} a partire dal valore della variabile di ambiente \const{TZ}, se quest'ultima non è definita -verrà usato il file \file{/etc/localtime}. +verrà usato il file \conffile{/etc/localtime}. \begin{figure}[!htb] \footnotesize @@ -2431,7 +2434,7 @@ costante \val{EOF} (a seconda della funzione); ma questo valore segnala solo che c'è stato un errore, non il tipo di errore. Per riportare il tipo di errore il sistema usa la variabile globale -\var{errno},\footnote{L'uso di una variabile globale può comportare alcuni +\var{errno},\footnote{l'uso di una variabile globale può comportare alcuni problemi (ad esempio nel caso dei thread) ma lo standard ISO C consente anche di definire \var{errno} come un \textit{modifiable lvalue}, quindi si può anche usare una macro, e questo è infatti il modo usato da Linux per