X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=intro.tex;h=0e24abdcae8ac88f61b91758135def140c0f2c05;hp=9e473ed5b65aa7868a21b2a80a0f6ce5f69d5083;hb=6f8e0ca42d3d0b97b5e5747798a1eaffb44e8521;hpb=1550495f935630d90ba48c15f8c5248e15717488 diff --git a/intro.tex b/intro.tex index 9e473ed..0e24abd 100644 --- a/intro.tex +++ b/intro.tex @@ -37,7 +37,7 @@ Il concetto base di un sistema unix-like cosiddetto \textit{kernel}, nel nostro caso Linux) a cui si demanda la gestione delle risorse essenziali (la CPU, la memoria, le periferiche) mentre tutto il resto, quindi anche la parte che prevede l'interazione con l'utente, -deve venire realizzato tramite programmi eseguiti dal kernel e che accedano +dev'essere realizzato tramite programmi eseguiti dal kernel, che accedano alle risorse hardware tramite delle richieste a quest'ultimo. Fin dall'inizio uno Unix si presenta come un sistema operativo @@ -62,11 +62,11 @@ all'hardware, mentre i programmi normali vengono eseguiti in modalit (e non possono accedere direttamente alle zone di memoria riservate o alle porte di input/output). -Una parte del kernel, lo \textit{scheduler}\index{\textit{scheduler}}, si -occupa di stabilire, ad intervalli fissi e sulla base di un opportuno calcolo -delle priorità, quale ``\textsl{processo}'' deve essere posto in esecuzione -(il cosiddetto \textit{preemptive - scheduling}\index{\textit{preemptive~scheduling}}). Questo verrà comunque +Una parte del kernel, lo \textit{scheduler}\itindex{scheduler}, si occupa di +stabilire, ad intervalli fissi e sulla base di un opportuno calcolo delle +priorità, quale ``\textsl{processo}'' deve essere posto in esecuzione (il +cosiddetto \textit{prehemptive + multitasking}\itindex{prehemptive~multitasking}). Questo verrà comunque eseguito in modalità protetta; quando necessario il processo potrà accedere alle risorse hardware soltanto attraverso delle opportune chiamate al sistema che restituiranno il controllo al kernel. @@ -250,7 +250,7 @@ Ogni utente appartiene anche ad almeno un gruppo (il cosiddetto \textit{default group}), ma può essere associato ad altri gruppi (i \textit{supplementary group}), questo permette di gestire i permessi di accesso ai file e quindi anche alle periferiche, in maniera più flessibile, -definendo gruppi di lavoro, di accesso a determinate risorse, etc. +definendo gruppi di lavoro, di accesso a determinate risorse, ecc. L'utente e il gruppo sono identificati da due numeri, la cui corrispondenza ad un nome espresso in caratteri è inserita nei due file \file{/etc/passwd} e @@ -258,11 +258,11 @@ un nome espresso in caratteri in sez.~\ref{sec:sys_user_group} queste informazioni possono essere mantenute, con l'uso del \textit{Name Service Switch}, su varie tipologie di supporti, compresi server centralizzati come LDAP.} -\index{\textit{Name~Service~Switch}} Questi numeri sono l'\textit{user - identifier}, detto in breve \textsl{user-ID}, ed indicato dall'acronimo -\acr{uid}, e il \textit{group identifier}, detto in breve \textsl{group-ID}, -ed identificato dall'acronimo \acr{gid}, e sono quelli che vengono usati dal -kernel per identificare l'utente. +\itindex{Name~Service~Switch} Questi numeri sono l'\textit{user identifier}, +detto in breve \textsl{user-ID}, ed indicato dall'acronimo \acr{uid}, e il +\textit{group identifier}, detto in breve \textsl{group-ID}, ed identificato +dall'acronimo \acr{gid}, e sono quelli che vengono usati dal kernel per +identificare l'utente. In questo modo il sistema è in grado di tenere traccia dell'utente a cui appartiene ciascun processo ed impedire ad altri utenti di interferire con @@ -277,7 +277,7 @@ Infine in ogni Unix essere in grado di fare qualunque operazione; per l'utente \textit{root} infatti i meccanismi di controllo descritti in precedenza sono disattivati.\footnote{i controlli infatti vengono sempre eseguiti da un codice - del tipo \code{if (uid) \{ ... \}}} + del tipo: ``\code{if (uid) \{ \textellipsis\ \}}''.} \section{Gli standard} @@ -377,7 +377,7 @@ usare le varie estensioni al linguaggio e al preprocessore da esso supportate. Uno dei problemi di portabilità del codice più comune è quello dei tipi di dati utilizzati nei programmi, che spesso variano da sistema a sistema, o -anche da una architettura ad un altra (ad esempio passando da macchine con +anche da una architettura ad un'altra (ad esempio passando da macchine con processori 32 bit a 64). In particolare questo è vero nell'uso dei cosiddetti \textit{tipi elementari}\index{tipo!elementare} del linguaggio C (come \ctyp{int}) la cui dimensione varia a seconda dell'architettura hardware. @@ -400,8 +400,8 @@ una infinita serie di problemi di portabilit \textbf{Tipo} & \textbf{Contenuto} \\ \hline \hline - \type{caddr\_t} & core address.\\ - \type{clock\_t} & contatore del tempo di sistema.\\ + \type{caddr\_t} & Core address.\\ + \type{clock\_t} & Contatore del tempo di sistema.\\ \type{dev\_t} & Numero di dispositivo.\\ \type{gid\_t} & Identificatore di un gruppo.\\ \type{ino\_t} & Numero di \textit{inode}\index{inode}.\\ @@ -451,8 +451,8 @@ standardizzare l'interfaccia con il sistema operativo. Ma gli standard POSIX non si limitano alla standardizzazione delle funzioni di libreria, e in seguito sono stati prodotti anche altri standard per la shell e -i comandi di sistema (1003.2), per le estensioni realtime e per i thread -(1003.1d e 1003.1c) e vari altri. In tab.~\ref{tab:intro_posix_std} è +i comandi di sistema (1003.2), per le estensioni \textit{real-time} e per i +thread (1003.1d e 1003.1c) e vari altri. In tab.~\ref{tab:intro_posix_std} è riportata una classificazione sommaria dei principali documenti prodotti, e di come sono identificati fra IEEE ed ISO; si tenga conto inoltre che molto spesso si usa l'estensione IEEE anche come aggiunta al nome POSIX (ad esempio @@ -564,7 +564,7 @@ periodicamente nuove specifiche e strumenti per la verifica della conformit alle stesse. Nel 1997 fu annunciata la seconda versione delle \textit{Single UNIX - Specification}, nota con la sigla SUSv2, in queste versione le interfacce + Specification}, nota con la sigla SUSv2, in questa versione le interfacce specificate salgono a 1434 (e 3030 se si considerano le stazioni di lavoro grafiche, per le quali sono inserite pure le interfacce usate da CDE che richiede sia X11 che Motif). La conformità a questa versione permette l'uso @@ -638,8 +638,9 @@ ottenibili sia attraverso l'uso di opzioni del compilatore (il \cmd{gcc}) che definendo opportune costanti prima dell'inclusione dei file degli header. Se si vuole che i programmi seguano una stretta attinenza allo standard ANSI C -si può usare l'opzione \cmd{-ansi} del compilatore, e non sarà riconosciuta -nessuna funzione non riconosciuta dalle specifiche standard ISO per il C. +si può usare l'opzione \cmd{-ansi} del compilatore, e non potrà essere +utilizzata nessuna funzione non riconosciuta dalle specifiche standard ISO per +il C. Per attivare le varie opzioni è possibile definire le macro di preprocessore, che controllano le funzionalità che le \acr{glibc} possono mettere a @@ -715,7 +716,7 @@ includere i vari header file. %% \subsection{Gli standard di GNU/Linux} %% \label{sec:intro_linux_std} -%% Da fare (o cassare, a seconda del tempo e della voglia). +% TODO Da fare (o cassare, a seconda del tempo e della voglia).