X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=system.tex;h=8a8ee4985f587764756974d1f3f7fab288cf49f9;hp=31ce9b2545c7be8382ab61ed86abfb475b8910e0;hb=ae7bf994013ffbf4f5ef1d5a38a18033593e3e9f;hpb=ee65c9e30267ed1b0c0cef337c3ff86f9e0b370d diff --git a/system.tex b/system.tex index 31ce9b2..8a8ee49 100644 --- a/system.tex +++ b/system.tex @@ -285,7 +285,7 @@ alle applicazioni di sistema presenti, come quelli su alcuni parametri delle espressioni regolari o del comando \cmd{bc}, non li tratteremo esplicitamente, se ne trova una menzione completa nell'header file \file{bits/posix2\_lim.h}, e alcuni di loro sono descritti nella pagina di manuale di \func{sysconf} e -nel manuale delle \acr{glibc}. +nel manuale della \acr{glibc}. Quando uno dei limiti o delle caratteristiche del sistema può variare, per non dover essere costretti a ricompilare un programma tutte le volte che si @@ -308,7 +308,7 @@ La funzione prende come argomento un intero che specifica quale dei limiti si vuole conoscere. Uno specchietto contenente i principali valori disponibili in Linux è riportato in tab.~\ref{tab:sys_sysconf_par}, l'elenco completo è contenuto in \file{bits/confname.h}, ed una lista più esaustiva, con le -relative spiegazioni, si può trovare nel manuale delle \acr{glibc}. +relative spiegazioni, si può trovare nel manuale della \acr{glibc}. \begin{table}[htb] \centering @@ -626,7 +626,7 @@ dall'argomento \param{info}. \end{figure} Si noti come in fig.~\ref{fig:sys_utsname} le dimensioni delle stringhe di -\struct{utsname} non sono specificate. Il manuale delle \acr{glibc} indica +\struct{utsname} non sono specificate. Il manuale della \acr{glibc} indica due costanti per queste dimensioni, \constd{\_UTSNAME\_LENGTH} per i campi standard e \constd{\_UTSNAME\_DOMAIN\_LENGTH} per quello relativo al nome di dominio, altri sistemi usano nomi diversi come \constd{SYS\_NMLN} o @@ -723,7 +723,7 @@ per la lettura delle informazioni relative a utenti e gruppi tralasciando completamente quelle relative all'autenticazione. % Per questo non tratteremo % affatto l'interfaccia di PAM, ma approfondiremo invece il sistema del -% \textit{Name Service Switch}, un meccanismo messo a disposizione dalle +% \textit{Name Service Switch}, un meccanismo messo a disposizione dalla % \acr{glibc} per modularizzare l'accesso a tutti i servizi in cui sia % necessario trovare una corrispondenza fra un nome ed un numero (od altra % informazione) ad esso associato, come appunto, quella fra uno username ed un @@ -935,7 +935,7 @@ funzionale rispetto ad un sistema attuale, pertanto ci limiteremo a fornire soltanto l'elenco di tab.~\ref{tab:sys_passwd_func}, senza nessuna spiegazione ulteriore. Chi volesse insistere ad usare questa interfaccia può fare riferimento alle pagine di manuale delle rispettive funzioni ed al manuale -delle \acr{glibc} per i dettagli del funzionamento. +della \acr{glibc} per i dettagli del funzionamento. @@ -966,7 +966,7 @@ utilizzando il sistema al momento corrente, mentre il secondo mantiene la registrazione delle attività degli utenti. A quest'ultimo vengono anche aggiunte delle voci speciali per tenere conto dei cambiamenti del sistema, come la modifica del runlevel, il riavvio della macchina, ecc. Tutte queste -informazioni sono descritte in dettaglio nel manuale delle \acr{glibc}. +informazioni sono descritte in dettaglio nel manuale della \acr{glibc}. Questi file non devono mai essere letti direttamente, ma le informazioni che contengono possono essere ricavate attraverso le opportune funzioni di @@ -1107,12 +1107,12 @@ In generale occorre però tenere conto che queste funzioni non sono completamente standardizzate, e che in sistemi diversi possono esserci differenze; ad esempio \func{pututline} restituisce \code{void} in vari sistemi (compreso Linux, fino alle \acr{libc5}). Qui seguiremo la sintassi -fornita dalle \acr{glibc}, ma gli standard POSIX 1003.1-2001 e XPG4.2 hanno +fornita dalla \acr{glibc}, ma gli standard POSIX 1003.1-2001 e XPG4.2 hanno introdotto delle nuove strutture (e relativi file) di tipo \struct{utmpx}, che sono un sovrainsieme della \struct{utmp} usata tradizionalmente ed altrettante funzioni che le usano al posto di quelle citate. -Le \acr{glibc} utilizzavano già una versione estesa di \struct{utmp}, che +La \acr{glibc} utilizzava già una versione estesa di \struct{utmp}, che rende inutili queste nuove strutture, per questo su Linux \struct{utmpx} viene definita esattamente come \struct{utmp}, con gli stessi campi di fig.~\ref{fig:sys_utmp_struct}. Altrettanto dicasi per le nuove funzioni di @@ -1127,7 +1127,7 @@ hanno lo stesso identico comportamento. Per completezza viene definita anche Come già visto in sez.~\ref{sec:sys_user_group}, l'uso di strutture allocate staticamente rende le funzioni di lettura dei dati appena illustrate non -rientranti. Per questo motivo le \acr{glibc} forniscono anche delle versioni +rientranti. Per questo motivo la \acr{glibc} fornisce anche delle versioni rientranti: \func{getutent\_r}, \func{getutid\_r}, \func{getutline\_r}, che invece di restituire un puntatore restituiscono un intero e prendono due argomenti aggiuntivi, i rispettivi prototipi sono: @@ -1154,7 +1154,7 @@ rientranti, solo che restituiscono il risultato all'indirizzo specificato dal primo argomento aggiuntivo \param{buffer} mentre il secondo, \param{result)} viene usato per restituire il puntatore al buffer stesso. -Infine le \acr{glibc} forniscono altre due funzioni, \funcd{updwtmp} e +Infine la \acr{glibc} fornisce altre due funzioni, \funcd{updwtmp} e \funcd{logwtmp}, come estensione per scrivere direttamente delle voci nel file sul registro storico \sysfile{/var/log/wtmp}; i rispettivi prototipi sono: @@ -1911,12 +1911,12 @@ alla chiamata a \func{sysconf}. In Linux è implementata come una \textit{system call} nelle architetture in cui essa è necessaria, ed in genere restituisce il valore del simbolo \const{PAGE\_SIZE} del kernel, che dipende dalla architettura hardware, anche -se le versioni delle librerie del C precedenti le \acr{glibc} 2.1 +se le versioni delle librerie del C precedenti la \acr{glibc} 2.1 implementavano questa funzione restituendo sempre un valore statico. % TODO verificare meglio la faccenda di const{PAGE\_SIZE} -Le \textsl{glibc} forniscono, come specifica estensione GNU, altre due +La \textsl{glibc} fornisce, come specifica estensione GNU, altre due funzioni, \funcd{get\_phys\_pages} e \funcd{get\_avphys\_pages} che permettono di ottenere informazioni riguardo le pagine di memoria; i loro prototipi sono: @@ -1938,13 +1938,13 @@ rispettivamente con i parametri \const{\_SC\_PHYS\_PAGES} e corrispondenti alla RAM della macchina; la seconda invece la memoria effettivamente disponibile per i processi. -Le \acr{glibc} supportano inoltre, come estensioni GNU, due funzioni che +La \acr{glibc} supporta inoltre, come estensioni GNU, due funzioni che restituiscono il numero di processori della macchina (e quello dei processori attivi); anche queste sono informazioni comunque ottenibili attraverso \func{sysconf} utilizzando rispettivamente i parametri \const{\_SC\_NPROCESSORS\_CONF} e \const{\_SC\_NPROCESSORS\_ONLN}. -Infine le \acr{glibc} riprendono da BSD la funzione \funcd{getloadavg} che +Infine la \acr{glibc} riprende da BSD la funzione \funcd{getloadavg} che permette di ottenere il carico di processore della macchina, in questo modo è possibile prendere decisioni su quando far partire eventuali nuovi processi. Il suo prototipo è: @@ -2421,8 +2421,8 @@ Il secondo argomento di entrambe le funzioni è una struttura la cosiddetta \textit{timezone}, cioè l'insieme del fuso orario e delle convenzioni per l'ora legale che permettevano il passaggio dal tempo universale all'ora locale. Questo argomento oggi è obsoleto ed in Linux non è -mai stato utilizzato; esso non è supportato né dalle vecchie \textsl{libc5}, -né dalle \textsl{glibc}: pertanto quando si chiama questa funzione deve essere +mai stato utilizzato; esso non è supportato né dalla vecchia \textsl{libc5}, +né dalla \textsl{glibc}: pertanto quando si chiama questa funzione deve essere sempre impostato a \val{NULL}. \itindbeg{timezone} @@ -2605,7 +2605,7 @@ riportate in tab.~\ref{tab:sys_timex_mode}. La funzione utilizza il meccanismo di David L. Mills, descritto nell'\href{http://www.ietf.org/rfc/rfc1305.txt}{RFC~1305}, che è alla base del protocollo NTP. La funzione è specifica di Linux e non deve essere usata se la -portabilità è un requisito, le \acr{glibc} provvedono anche un suo omonimo +portabilità è un requisito, la \acr{glibc} provvede anche un suo omonimo \func{ntp\_adjtime}. La trattazione completa di questa funzione necessita di una lettura approfondita del meccanismo descritto nell'RFC~1305, ci limitiamo a descrivere in tab.~\ref{tab:sys_timex_mode} i principali valori utilizzabili @@ -2895,7 +2895,7 @@ Il risultato della funzione è controllato dalla stringa di formato viene utilizzato come modificatore. Alcuni dei possibili valori che esso può assumere sono riportati in tab.~\ref{tab:sys_strftime_format}.\footnote{per la precisione si sono riportati definiti dallo standard ANSI C, che sono anche - quelli ripresi in POSIX.1; le \acr{glibc} forniscono anche le estensioni + quelli ripresi in POSIX.1; la \acr{glibc} fornisce anche le estensioni introdotte da POSIX.2 per il comando \cmd{date}, i valori introdotti da SVID3 e ulteriori estensioni GNU; l'elenco completo dei possibili valori è riportato nella pagina di manuale della funzione.} La funzione tiene conto @@ -3132,8 +3132,8 @@ stampa, a seconda dell'opzione scelta il messaggio di errore (\texttt{\small \subsection{Alcune estensioni GNU} \label{sec:sys_err_GNU} -Le precedenti funzioni sono quelle definite ed usate nei vari standard; le -\acr{glibc} hanno però introdotto una serie di estensioni ``GNU'' che +Le precedenti funzioni sono quelle definite ed usate nei vari standard; la +\acr{glibc} ha però introdotto una serie di estensioni ``GNU'' che forniscono alcune funzionalità aggiuntive per una gestione degli errori semplificata e più efficiente. @@ -3155,7 +3155,7 @@ molte occasioni invece serve poter scrivere dei messaggi con maggiori informazioni. Ad esempio negli standard di programmazione GNU si richiede che ogni messaggio di errore sia preceduto dal nome del programma, ed in generale si può voler stampare il contenuto di qualche variabile per facilitare la -comprensione di un eventuale problema. Per questo le \acr{glibc} definiscono +comprensione di un eventuale problema. Per questo la \acr{glibc} definisce la funzione \funcd{error}, il cui prototipo è: \begin{funcproto}{