X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=intro.tex;h=b648bd011cc915b56ebf95b6ff9c9a756938385f;hp=73f676134373a863bd0f15792e9a5c372173ccbf;hb=bf78d63598adf72d71aeea3c32277dd63484bb02;hpb=38dff25efc0d3ae24d82724cd196c583c2362737 diff --git a/intro.tex b/intro.tex index 73f6761..b648bd0 100644 --- a/intro.tex +++ b/intro.tex @@ -313,21 +313,69 @@ 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. +(1003.1d e 1003.1c) e vari altri. In \tabref{tab:intro_posix_std} si è +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 +si può parlare di POSIX.4 come di POSIX.1b). + +Si tenga presente però che nuove specificazioni e proposte di +standardizzazione si aggiungono continuamente, mentre le versioni precedenti +vengono riviste; talvolta poi i riferimenti cambiamo nome, per cui anche solo +seguire le denominazioni usate diventa particolarmente faticoso; una pagina +dove si possono recuperare varie (e di norma piuttosto intricate) informazioni +è: \href{http://www.pasc.org/standing/sd11.html} +{http://www.pasc.org/standing/sd11.html}. + + +\begin{table}[htb] + \centering + \begin{tabular}[c]{|l|l|l|l|} + \hline + \textbf{Standard} & \textbf{IEEE} & \textbf{ISO} & \textbf{Contenuto} \\ + \hline + \hline + POSIX.1 & 1003.1 & 9945-1& Interfacce di base \\ + POSIX.1a& 1003.1a& 9945-1& Estensioni a POSIX.1 \\ + 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.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 \\ + \hline + \end{tabular} + \caption{Elenco dei vari standard POSIX e relative denominazioni.} + \label{tab:intro_posix_std} +\end{table} + +Benché l'insieme degli standard POSIX siano basati sui sistemi Unix essi +definiscono comunque un'interfaccia di programmazione generica e non fanno +riferimento ad una implementazione specifica (ad esempio esiste +un'implementazione di POSIX.1 anche sotto Windows NT). Lo standard principale +resta comunque POSIX.1, che continua ad evolversi; la versione più nota, cui +gran parte delle implementazioni fanno riferimento, e che costituisce una base +per molti altri tentativi di standardizzazione, è stata rilasciata anche come +standard internazionale con la sigla ISO/IEC 9945-1:1996. + +Linux e le \acr{glibc} implementano tutte le funzioni definite nello standard +POSIX.1, queste ultime forniscono in più alcune ulteriori capacità (per +funzioni di \textit{pattern matching} e per la manipolazione delle +\textit{regular expression}), che vengono usate dalla shell e dai comandi di +sistema e che sono definite nello standard POSIX.2. + +Nelle versioni più recenti del kernel e delle librerie sono inoltre supportate +ulteriori funzionalità aggiunte dallo standard POSIX.1c per quanto riguarda i +\textit{thread} (vedi ...), e dallo standard POSIX.1b per quanto riguarda i +segnali e lo scheduling real-time (\secref{sec:sig_real_time} e +\secref{sec:proc_real_time}), la misura del tempo, i meccanismi di +intercomunicazione (\secref{sec:ipc_posix}) e l'I/O asincrono +(\secref{sec:file_asyncronous_io}). -Benché lo standard POSIX sia basato sui sistemi Unix esso definisce comunque -un'interfaccia di programmazione generica e non fa riferimento ad una -implementazione specifica (ad esempio esiste un'implementazione di questo -standard anche sotto Windows NT). Lo standard si è evoluto nel tempo, ed una -versione più aggiornata (quella che viene normalmente denominata POSIX.1) è -stata rilasciata come standard internazionale con la sigla ISO/IEC -9945-1:1996. - -Le \acr{glibc} implementano tutte le funzioni definite nello standard POSIX.1, -fornendo in più alcune ulteriori capacità (per funzioni di \textit{pattern - matching} e per la manipolazione delle \textit{regular expression}), che -usate dalla shell e dai comandi di sistema e che sono definite nello standard -POSIX.2. \subsection{Lo standard X/Open -- XPG3} @@ -401,8 +449,8 @@ socket. Queste estensioni sono state via via aggiunte al sistema nelle varie versioni del sistema (BSD 4.2, BSD 4.3 e BSD 4.4) come pure in alcuni derivati -commerciali come SunOS. Le \acr{glibc} provvedono tutte queste estensioni che -sono state in gran parte incorporate negli standard successivi. +commerciali come SunOS. Il kernel e le \acr{glibc} provvedono tutte queste +estensioni che sono state in gran parte incorporate negli standard successivi. \subsection{Lo standard System V} @@ -428,11 +476,11 @@ rinominata in Unix System Laboratories) venne acquistata dalla Novell, che poi trasferì il marchio Unix al consorzio X/Open; l'ultima versione di System V fu la SVr4.2MP rilasciata nel Dicembre 93. -Le \acr{glibc} implementano le principali funzionalità richieste da SVID che -non sono già incluse negli standard POSIX ed ANSI C, per compatibilità con lo -Unix System V e con altri Unix (come SunOS) che le includono. Tuttavia le -funzionalità più oscure e meno utilizzate (che non sono presenti neanche in -System V) sono state tralasciate. +Linux e le \acr{glibc} implementano le principali funzionalità richieste da +SVID che non sono già incluse negli standard POSIX ed ANSI C, per +compatibilità con lo Unix System V e con altri Unix (come SunOS) che le +includono. Tuttavia le funzionalità più oscure e meno utilizzate (che non sono +presenti neanche in System V) sono state tralasciate. Le funzionalità implementate sono principalmente il meccanismo di intercomunicazione fra i processi e la memoria condivisa (il cosiddetto System