X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=intro.tex;h=049d516d9bda31d8675a18410dd7e80a183cfc40;hp=9c682f7e7efc3084543c9d0038868a9f6c2fdc45;hb=25de957ddf731370bec1eb74b13cf35aa7886d1b;hpb=7ab2f18da45ad6da904be851e3a864adeac8cb10 diff --git a/intro.tex b/intro.tex index 9c682f7..049d516 100644 --- a/intro.tex +++ b/intro.tex @@ -1,3 +1,13 @@ +%% intro.tex +%% +%% Copyright (C) 2000-2002 Simone Piccardi. Permission is granted to +%% copy, distribute and/or modify this document under the terms of the GNU Free +%% Documentation License, Version 1.1 or any later version published by the +%% Free Software Foundation; with the Invariant Sections being "Prefazione", +%% with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the +%% license is included in the section entitled "GNU Free Documentation +%% License". +%% \chapter{L'architettura del sistema} \label{cha:intro_unix} @@ -181,17 +191,22 @@ programma. Quanto appena illustrato mette in evidenza il fatto che nella stragrande maggioranza dei casi,\footnote{esistono implementazioni diverse delle librerie - del C, come le \textit{libc5} o le \textit{uclib}, che non derivano dal - progetto GNU, ma oggi sono, tranne casi particolari, completamente - soppiantate dalle \acr{glibc}.} si dovrebbe usare il nome GNU/Linux -(piuttosto che soltanto Linux) in quanto una parte essenziale del sistema -(senza la quale niente funzionerebbe) è la GNU Standard C Library (in breve -\acr{glibc}), ovvero la libreria realizzata dalla Free Software Foundation -nella quale sono state implementate tutte le funzioni essenziali definite -negli standard POSIX e ANSI C, utilizzabili da qualunque programma. + Standard del C, come le \textit{libc5} o le \textit{uClib}, che non derivano + dal progetto GNU. Le \textit{libc5} oggi sono, tranne casi particolari, + 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 + 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 +sistema (senza la quale niente funzionerebbe) è la GNU Standard C Library (in +breve \acr{glibc}), ovvero la libreria realizzata dalla Free Software +Foundation nella quale sono state implementate tutte le funzioni essenziali +definite negli standard POSIX e ANSI C, utilizzabili da qualunque programma. Le funzioni di questa libreria sono quelle riportate dalla terza sezione del -\textsl{Manuale di Programmazione di Unix }(cioè accessibili con il comando +\textsl{Manuale di Programmazione di Unix} (cioè accessibili con il comando \cmd{man 3 }) e sono costruite sulla base delle chiamate al sistema del kernel; è importante avere presente questa distinzione, fondamentale dal punto di vista dell'implementazione, anche se poi, nella realizzazione di normali @@ -293,36 +308,44 @@ qualunque sistema operativo. Per questo motivo, anche se lo standard non ha alcun riferimento ad un sistema di tipo Unix, GNU/Linux (per essere precisi le \acr{glibc}), come molti Unix moderni, provvede la compatibilità con questo standard, fornendo le funzioni -di libreria da esso previste. Queste sono dichiarate in quindici header file -(anch'essi provvisti dalla \acr{glibc}), uno per ciascuna delle quindici aree -in cui è stata suddivisa una libreria standard. In -\tabref{tab:intro_posix_header} si sono riportati questi header, insieme a -quelli definiti negli altri standard descritti nelle sezioni successive. +di libreria da esso previste. Queste sono dichiarate in una serie di +\textit{header file}\footnote{i file di dichiarazione di variabili, tipi e + funzioni, usati normalmente da un compilatore C. Per poter accedere alle + funzioni occorre includere con la direttiva \code{\#include} questi file nei + propri programmi; per ciascuna funzione che tratteremo in seguito + indicheremo anche gli \textit{header file} necessari ad usarla.} (anch'essi +provvisti dalla \acr{glibc}), In \tabref{tab:intro_posix_header} si sono +riportati i principali \textit{header file} definiti nello standard POSIX, +insieme a quelli definiti negli altri standard descritti nelle sezioni +successive. \begin{table}[htb] \footnotesize \centering - \begin{tabular}[c]{|l|l|} + \begin{tabular}[c]{|l|c|c|l|} \hline - \textbf{Standard} & \textbf{Contenuto} \\ + \multirow{2}{*}{\textbf{Header}}& + \multicolumn{2}{|c|}{\textbf{Standard}}& + \multirow{2}{*}{\textbf{Contenuto}} \\ + \cline{2-3} + & ANSI C& POSIX& \\ \hline \hline - \file{assert.h}& Verifica le asserzioni fatte in un programma.\\ - \file{cpio.h} & .\\ - \file{} & .\\ - \file{} & .\\ - \file{} & .\\ - \file{} & .\\ - \file{} & .\\ - \file{} & .\\ - \file{} & .\\ - \file{} & .\\ - \file{} & .\\ - \file{stdio.h} & I/O bufferizzato in standard ANSI C.\\ - \file{stdlib.h}& definizioni della libreria standard.\\ + \file{assert.h}&$\bullet$&$\bullet$& Verifica le asserzioni fatte in un + programma.\\ + \file{errno.h} &$\bullet$&$\bullet$& Errori di sistema.\\ + \file{fcntl.h} &$\bullet$&$\bullet$& Controllo sulle opzioni dei file.\\ + \file{limits.h}&$\bullet$&$\bullet$& Limiti e parametri del sistema.\\ + \file{} &$\bullet$&$\bullet$& .\\ + \file{} &$\bullet$&$\bullet$& .\\ + \file{} &$\bullet$&$\bullet$& .\\ + \file{} &$\bullet$&$\bullet$& .\\ + \file{} &$\bullet$&$\bullet$& .\\ + \file{stdio.h} &$\bullet$&$\bullet$& I/O bufferizzato in standard ANSI C.\\ + \file{stdlib.h}&$\bullet$&$\bullet$& definizioni della libreria standard.\\ \hline \end{tabular} - \caption{Elenco dei vari file di include definiti dallo standard POSIX.} + \caption{Elenco dei vari header file definiti dallo standard POSIX.} \label{tab:intro_posix_header} \end{table} @@ -355,7 +378,7 @@ tipi si sono rivelati inadeguati, e se ne \begin{table}[htb] \footnotesize \centering - \begin{tabular}[c]{|l|l|} + \begin{tabular}[c]{|l|c|c|l|} \hline \textbf{Tipo} & \textbf{Contenuto} \\ \hline @@ -364,7 +387,7 @@ tipi si sono rivelati inadeguati, e se ne \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}.\\ + \type{ino\_t} & Numero di \textit{inode}\index{inode}.\\ \type{key\_t} & Chiave per il System V IPC.\\ \type{loff\_t} & Posizione corrente in un file.\\ \type{mode\_t} & Attributi di un file.\\