X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=intro.tex;h=56c59ffb15c39360f2397e9b710b1332760f9f23;hp=27a1d33c44848d3b5904ceffc56b393356369e86;hb=d47f15496fa85c8ec22edcde608f2665ec5b95ae;hpb=613d2f30d1c3ec28c569578a7b7bab23a40e8fea diff --git a/intro.tex b/intro.tex index 27a1d33..56c59ff 100644 --- a/intro.tex +++ b/intro.tex @@ -8,6 +8,10 @@ %% license is included in the section entitled "GNU Free Documentation %% License". %% +\part{Programmazione di sistema} +\label{part:progr-di-sist} + + \chapter{L'architettura del sistema} \label{cha:intro_unix} @@ -64,15 +68,15 @@ porte di input/output). Una parte del kernel, lo \textit{scheduler}\index{scheduler}, si occupa di stabilire, ad intervalli fissi e sulla base di un opportuno calcolo delle -priorità, quale ``processo'' deve essere posto in esecuzione (il cosiddetto -\textit{preemptive scheduling}\index{preemptive scheduling}). 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. +priorità, quale ``\textsl{processo}'' deve essere posto in esecuzione (il +cosiddetto \textit{preemptive scheduling}\index{preemptive scheduling}). +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. La memoria viene sempre gestita dal kernel attraverso il meccanismo della \textsl{memoria virtuale}\index{memoria virtuale}, che consente di assegnare a -ciascun processo uno spazio di indirizzi ``virtuale'' (vedi +ciascun processo uno spazio di indirizzi ``\textsl{virtuale}'' (vedi \secref{sec:proc_memory}) che il kernel stesso, con l'ausilio della unità di gestione della memoria, si incaricherà di rimappare automaticamente sulla memoria disponibile, salvando su disco quando necessario (nella cosiddetta @@ -196,7 +200,7 @@ maggioranza dei casi,\footnote{esistono implementazioni diverse delle librerie completamente soppiantate dalle \acr{glibc}, le \textit{uClib} pur non essendo complete come le \acr{glibc}, restano invece molto diffuse nel mondo embedded per le loro di dimensioni ridotte (e soprattutto la possibilità di - togliere le parti non necessearie), e pertanto costituiscono un valido + togliere le parti non necessarie), e pertanto costituiscono un valido rimpiazzo delle \acr{glibc} in tutti quei sistemi specializzati che richiedono una minima occupazione di memoria.} si dovrebbe usare il nome GNU/Linux (piuttosto che soltanto Linux) in quanto una parte essenziale del @@ -252,10 +256,10 @@ definendo gruppi di lavoro, di accesso a determinate risorse, etc. 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 \file{/etc/groups}). Questi numeri sono l'\textit{user identifier}, detto in -breve \textsl{userid}, ed indicato dall'acronimo \acr{uid}, e il \textit{group - identifier}, detto in breve \textsl{groupid}, ed identificato dall'acronimo -\acr{gid}, e sono quelli che vengono usati dal kernel per identificare -l'utente. +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 per ogni processo dell'utente a cui appartiene ed impedire ad altri utenti di interferire con @@ -466,13 +470,13 @@ possono recuperare varie (e di norma piuttosto intricate) informazioni POSIX.2 & 1003.2 & 9945-2& Comandi \\ POSIX.3 & 2003 &TR13210& Metodi di test \\ POSIX.4 & 1003.1b & --- & Estensioni real-time \\ - POSIX.4a& 1003.1c & --- & Threads \\ + POSIX.4a& 1003.1c & --- & Thread \\ POSIX.4b& 1003.1d &9945-1& Ulteriori estensioni real-time \\ POSIX.5 & 1003.5 & 14519& Interfaccia per il linguaggio ADA \\ POSIX.6 & 1003.2c,1e& 9945-2& Sicurezza \\ POSIX.8 & 1003.1f& 9945-1& Accesso ai file via rete \\ - POSIX.9 & 1003.9 & --- & Intercaccia per il Fortran-77 \\ - POSIX.12& 1003.1g& 9945-1& Sockets \\ + POSIX.9 & 1003.9 & --- & Interfaccia per il Fortran-77 \\ + POSIX.12& 1003.1g& 9945-1& Socket \\ \hline \end{tabular} \caption{Elenco dei vari standard POSIX e relative denominazioni.} @@ -558,7 +562,7 @@ richiede sia X11 che Motif). La conformit del nome \textit{Unix 98}, usato spesso anche per riferirsi allo standard. -\subsection{Lo ``standard'' BSD} +\subsection{Lo ``\textsl{standard}'' BSD} \label{sec:intro_bsd} Lo sviluppo di BSD iniziò quando la fine della collaborazione fra l'Università @@ -667,7 +671,7 @@ Le macro disponibili per i vari standard sono le seguenti: standard ISO C, POSIX.1, POSIX.2, and X/Open. \item[\macro{\_XOPEN\_SOURCE}] definendo questa macro si attivano le funzionalità descritte nella \textit{X/Open Portability Guide}. Anche queste - sono un soprainsieme di quelle definite in POSIX.1 e POSIX.2 ed in effetti + sono un sovrainsieme di quelle definite in POSIX.1 e POSIX.2 ed in effetti sia \macro{\_POSIX\_SOURCE} che \macro{\_POSIX\_C\_SOURCE} vengono automaticamente definite. Sono incluse anche ulteriori funzionalità disponibili in BSD e SVID. Se il valore della macro è posto a 500 questo