X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=session.tex;h=5c62d918010e988c68ed98eaa18de967cd0eb265;hb=a4d2c80cad1136cecb529d68842f89745d62830b;hp=23bf1808ca5b8624457a90323d8f5c85264f6a69;hpb=6dc7c75899f0e3c418212cb0d4071e01118582a0;p=gapil.git diff --git a/session.tex b/session.tex index 23bf180..5c62d91 100644 --- a/session.tex +++ b/session.tex @@ -167,8 +167,8 @@ funzione \funcd{getsid}, che per caso di successo, e -1 in caso di errore, nel qual caso \var{errno} assumerà i valori: \begin{errlist} - \item[\errcode{ESRCH}] Il processo selezionato non esiste. - \item[\errcode{EPERM}] In alcune implementazioni viene restituito quando il + \item[\errcode{ESRCH}] il processo selezionato non esiste. + \item[\errcode{EPERM}] in alcune implementazioni viene restituito quando il processo selezionato non fa parte della stessa sessione del processo corrente. \end{errlist} @@ -211,10 +211,10 @@ ad un altro con la funzione \funcd{setpgid}, il cui prototipo \bodydesc{La funzione ritorna il valore del nuovo \textit{process group}, e -1 in caso di errore, nel qual caso \var{errno} assumerà i valori: \begin{errlist} - \item[\errcode{ESRCH}] Il processo selezionato non esiste. - \item[\errcode{EPERM}] Il cambiamento non è consentito. - \item[\errcode{EACCES}] Il processo ha già eseguito una \func{exec}. - \item[\errcode{EINVAL}] Il valore di \param{pgid} è negativo. + \item[\errcode{ESRCH}] il processo selezionato non esiste. + \item[\errcode{EPERM}] il cambiamento non è consentito. + \item[\errcode{EACCES}] il processo ha già eseguito una \func{exec}. + \item[\errcode{EINVAL}] il valore di \param{pgid} è negativo. \end{errlist} } \end{prototype} @@ -298,7 +298,7 @@ dal quale ricevono gli eventuali segnali da tastiera. A tale scopo lo standard POSIX.1 prevede che ad ogni sessione possa essere associato un terminale di controllo; in Linux questo viene realizzato mantenendo fra gli attributi di ciascun processo anche qual'è il suo terminale -di controllo.\footnote{Lo standard POSIX.1 non specifica nulla riguardo +di controllo.\footnote{lo standard POSIX.1 non specifica nulla riguardo l'implementazione; in Linux anch'esso viene mantenuto nella solita struttura \struct{task\_struct}, nel campo \var{tty}.} In generale ogni processo eredita dal padre, insieme al \acr{pgid} e al \acr{sid} anche il terminale di @@ -338,10 +338,10 @@ funzione \funcd{tcsetpgrp}, il cui prototipo \bodydesc{La funzione restituisce 0 in caso di successo, e -1 in caso di errore, nel qual caso \var{errno} assumerà i valori: \begin{errlist} - \item[\errcode{ENOTTY}] Il file \param{fd} non corrisponde al terminale di + \item[\errcode{ENOTTY}] il file \param{fd} non corrisponde al terminale di controllo del processo chiamante. - \item[\errcode{ENOSYS}] Il sistema non supporta il job control. - \item[\errcode{EPERM}] Il \textit{process group} specificato non è nella + \item[\errcode{ENOSYS}] il sistema non supporta il job control. + \item[\errcode{EPERM}] il \textit{process group} specificato non è nella stessa sessione del processo chiamante. \end{errlist} ed inoltre \errval{EBADF} ed \errval{EINVAL}. @@ -376,7 +376,7 @@ ad un terminale con la funzione \funcd{tcgetpgrp}, il cui prototipo gruppo di \textit{foreground}, e -1 in caso di errore, nel qual caso \var{errno} assumerà i valori: \begin{errlist} - \item[\errcode{ENOTTY}] Non c'è un terminale di controllo o \param{fd} non + \item[\errcode{ENOTTY}] non c'è un terminale di controllo o \param{fd} non corrisponde al terminale di controllo del processo chiamante. \end{errlist} ed inoltre \errval{EBADF} ed \errval{ENOSYS}. @@ -497,7 +497,7 @@ Nella maggior parte delle distribuzioni di GNU/Linux\footnote{fa eccezione la distribuzione \textit{Slackware}, come alcune distribuzioni su dischetto, ed altre distribuzioni dedicate a compiti limitati e specifici.} viene usata la procedura di avvio di System V; questa prevede che \cmd{init} legga dal -file di configurazione \file{/etc/inittab} quali programmi devono essere +file di configurazione \conffile{/etc/inittab} quali programmi devono essere lanciati, ed in quali modalità, a seconda del cosiddetto \textit{run level}, anch'esso definito nello stesso file. @@ -527,7 +527,7 @@ perci tutto ripetuto per ciascuno dei terminali che si hanno a disposizione (o per un certo numero di essi, nel caso delle console virtuali), secondo quanto indicato dall'amministratore nel file di configurazione del programma, -\file{/etc/inittab}. +\conffile{/etc/inittab}. Quando viene lanciato da \cmd{init} il programma parte con i privilegi di amministratore e con un ambiente vuoto; \cmd{getty} si cura di chiamare @@ -601,9 +601,10 @@ niente a che fare con la gestione diretta dei comandi dell'utente. Questi programmi, che devono essere eseguiti in modalità non interattiva e senza nessun intervento dell'utente, sono normalmente chiamati \textsl{demoni}, (o \textit{daemons}), nome ispirato dagli omonimi spiritelli -che svolgevano compiti vari, di cui parlava Socrate (che sosteneva di averne -uno al suo servizio).\footnote{NdT. ricontrollare, i miei ricordi di filosofia - sono piuttosto datati.} +della mitologia greca che svolgevano compiti che gli dei trovavano noiosi, di +cui parla anche Socrate (che sosteneva di averne uno al suo servizio). + +%TODO ricontrollare, i miei ricordi di filosofia sono piuttosto datati. Se però si lancia un programma demone dalla riga di comando in un sistema che supporta, come Linux, il \textit{job control} esso verrà comunque associato ad @@ -720,7 +721,7 @@ meccanismi come: \item scartare. \end{itemize*} secondo le modalità che questo preferisce e che possono essere impostate -attraverso il file di configurazione \file{/etc/syslog.conf} (maggiori +attraverso il file di configurazione \conffile{/etc/syslog.conf} (maggiori dettagli si possono trovare sulle pagine di manuale per questo file e per \cmd{syslogd}). @@ -767,23 +768,23 @@ specificato con un OR aritmetico. \hline \hline \const{LOG\_AUTH} & Messaggi relativi ad autenticazione e sicurezza, - obsoleto, è sostituito da \const{LOG\_AUTHPRIV}. \\ + obsoleto, è sostituito da \const{LOG\_AUTHPRIV}.\\ \const{LOG\_AUTHPRIV} & Sostituisce \const{LOG\_AUTH}.\\ \const{LOG\_CRON} & Messaggi dei demoni di gestione dei comandi programmati (\cmd{cron} e \cmd{at}).\\ \const{LOG\_DAEMON} & Demoni di sistema.\\ \const{LOG\_FTP} & Server FTP.\\ - \const{LOG\_KERN} & Messaggi del kernel\\ - \const{LOG\_LOCAL0} & Riservato all'amministratore per uso locale\\ + \const{LOG\_KERN} & Messaggi del kernel.\\ + \const{LOG\_LOCAL0} & Riservato all'amministratore per uso locale.\\ --- & \\ - \const{LOG\_LOCAL7} & Riservato all'amministratore per uso locale\\ - \const{LOG\_LPR} & Messaggi del sistema di gestione delle stampanti \\ - \const{LOG\_MAIL} & Messaggi del sistema di posta elettronica\\ + \const{LOG\_LOCAL7} & Riservato all'amministratore per uso locale.\\ + \const{LOG\_LPR} & Messaggi del sistema di gestione delle stampanti.\\ + \const{LOG\_MAIL} & Messaggi del sistema di posta elettronica.\\ \const{LOG\_NEWS} & Messaggi del sistema di gestione delle news - (USENET) \\ - \const{LOG\_SYSLOG} & Messaggi generati dallo stesso \cmd{syslogd}\\ - \const{LOG\_USER} & Messaggi generici a livello utente\\ - \const{LOG\_UUCP} & Messaggi del sistema UUCP\\ + (USENET).\\ + \const{LOG\_SYSLOG} & Messaggi generati dallo stesso \cmd{syslogd}.\\ + \const{LOG\_USER} & Messaggi generici a livello utente.\\ + \const{LOG\_UUCP} & Messaggi del sistema UUCP.\\ \hline \end{tabular} \caption{Valori possibili per l'argomento \param{facility} di \func{openlog}.} @@ -808,10 +809,10 @@ tab.~\ref{tab:sess_openlog_option}. \const{LOG\_NDELAY} & Sostituisce \const{LOG\_AUTH}.\\ \const{LOG\_NOWAIT} & Messaggi dei demoni di gestione dei comandi programmati (\cmd{cron} e \cmd{at}).\\ -\const{LOG\_ODELAY} & .\\ +\const{LOG\_ODELAY} & \\ \const{LOG\_PERROR} & Stampa anche su \file{stderr}.\\ \const{LOG\_PID} & Inserisce nei messaggi il \acr{pid} del processo - chiamante. \\ + chiamante.\\ \hline \end{tabular} \caption{Valori possibili per l'argomento \param{option} di \func{openlog}.} @@ -860,14 +861,14 @@ con la maschera binaria delle costanti di tab.~\ref{tab:sess_syslog_facility}. \textbf{Valore}& \textbf{Significato}\\ \hline \hline - \const{LOG\_EMERG} & Il sistema è inutilizzabile. \\ + \const{LOG\_EMERG} & Il sistema è inutilizzabile.\\ \const{LOG\_ALERT} & C'è una emergenza che richiede intervento immediato.\\ \const{LOG\_CRIT} & Si è in una condizione critica.\\ \const{LOG\_ERR} & Si è in una condizione di errore.\\ \const{LOG\_WARNING} & Messaggio di avvertimento.\\ \const{LOG\_NOTICE} & Notizia significativa relativa al comportamento.\\ - \const{LOG\_INFO} & Messaggio informativo. \\ + \const{LOG\_INFO} & Messaggio informativo.\\ \const{LOG\_DEBUG} & Messaggio di debug.\\ \hline \end{tabular} @@ -1146,7 +1147,7 @@ modificare i bit su cui non si interviene. \const{IGNBRK} & Ignora le condizioni di BREAK sull'input. Una \textit{condizione di BREAK} è definita nel contesto di una trasmissione seriale asincrona come una sequenza di - bit nulli più lunga di un byte. \\ + bit nulli più lunga di un byte.\\ \const{BRKINT} & Controlla la reazione ad un BREAK quando \const{IGNBRK} non è impostato. Se \const{BRKINT} è impostato il BREAK causa lo scarico delle code, @@ -1161,11 +1162,11 @@ modificare i bit su cui non si interviene. (\textit{carriage return}, \verb|'\r'|) viene scartato dall'input. Può essere utile per i terminali che inviano entrambi i caratteri di ritorno carrello e a capo - (\textit{newline}, \verb|'\n'|). \\ + (\textit{newline}, \verb|'\n'|).\\ \const{ICRNL} & Se impostato un carattere di ritorno carrello (\verb|'\r'|) sul terminale viene automaticamente trasformato in un a capo (\verb|'\n'|) sulla coda di - input. \\ + input.\\ \const{INLCR} & Se impostato il carattere di a capo (\verb|'\n'|) viene automaticamente trasformato in un ritorno carrello (\verb|'\r'|).\\ @@ -1185,11 +1186,11 @@ modificare i bit su cui non si interviene. \const{IXOFF} & Se impostato abilita il controllo di flusso in ingresso. Il computer emette un carattere di STOP per bloccare l'input dal terminale e lo sblocca con il - carattere START. \\ + carattere START.\\ \const{IMAXBEL}& Se impostato fa suonare il cicalino se si riempie la cosa di ingresso; in Linux non è implementato e il kernel si comporta cose se fosse sempre impostato (è una estensione - BSD). \\ + BSD).\\ \hline \end{tabular} \caption{Costanti identificative dei vari bit del flag di controllo @@ -1305,11 +1306,10 @@ valore. \const{O\_NOBLOCK} si bloccherà il processo finché non si è stabilita una connessione con il modem; inoltre se viene rilevata una disconnessione viene inviato un - segnale di - \const{SIGHUP} al processo di controllo del terminale. La - lettura su un terminale sconnesso comporta una condizione - di \textit{end of file} e la scrittura un errore di - \errcode{EIO}. \\ + segnale di \const{SIGHUP} al processo di controllo del + terminale. La lettura su un terminale sconnesso comporta + una condizione di \textit{end of file} e la scrittura un + errore di \errcode{EIO}.\\ \const{HUPCL} & Se è impostato viene distaccata la connessione del modem quando l'ultimo dei processi che ha ancora un file aperto sul terminale lo chiude o esce.\\ @@ -1322,27 +1322,26 @@ valore. parità. La reazione in caso di errori dipende dai relativi valori per \var{c\_iflag}, riportati in tab.~\ref{tab:sess_termios_iflag}. Se non è impostato i - bit di parità non vengono - generati e i caratteri non vengono controllati.\\ + bit di parità non vengono generati e i caratteri non + vengono controllati.\\ \const{PARODD} & Ha senso solo se è attivo anche \const{PARENB}. Se impostato viene usata una parità è dispari, altrimenti viene usata una parità pari.\\ \const{CSIZE} & Maschera per i bit usati per specificare la dimensione del carattere inviato lungo la linea di trasmissione, i valore ne indica la lunghezza (in bit), ed i valori - possibili sono \val{CS5}, \val{CS6}, - \val{CS7} e \val{CS8} + possibili sono \val{CS5}, \val{CS6}, \val{CS7} e \val{CS8} corrispondenti ad un analogo numero di bit.\\ \const{CBAUD} & Maschera dei bit (4+1) usati per impostare della velocità - della linea (il \textit{baud rate}) in ingresso. - In Linux non è implementato in quanto viene - usato un apposito campo di \struct{termios}.\\ + della linea (il \textit{baud rate}) in ingresso; in Linux + non è implementato in quanto viene usato un apposito + campo di \struct{termios}.\\ \const{CBAUDEX}& Bit aggiuntivo per l'impostazione della velocità della linea, per le stesse motivazioni del precedente non è implementato in Linux.\\ \const{CIBAUD} & Maschera dei bit della velocità della linea in - ingresso. Analogo a \const{CBAUD}, anch'esso in Linux è - mantenuto in un apposito campo di \struct{termios}. \\ + ingresso; analogo a \const{CBAUD}, anch'esso in Linux è + mantenuto in un apposito campo di \struct{termios}.\\ \const{CRTSCTS}& Abilita il controllo di flusso hardware sulla seriale, attraverso l'utilizzo delle dei due fili di RTS e CTS.\\ \hline @@ -1390,7 +1389,7 @@ fig.~\ref{fig:term_termios}). cancellando l'ultimo carattere della riga corrente dallo schermo; altrimenti il carattere è rimandato in eco per mostrare quanto accaduto (usato per i terminali con - l'uscita su una stampante). \\ + l'uscita su una stampante).\\ \const{ECHOPRT}& Se impostato abilita la visualizzazione del carattere di cancellazione in una modalità adatta ai terminali con l'uscita su stampante; l'invio del carattere di ERASE @@ -1409,7 +1408,7 @@ fig.~\ref{fig:term_termios}). \const{ECHOE} e \const{ECHOPRT}.\\ \const{ECHONL} & Se impostato viene effettuato l'eco di un a capo (\verb|\n|) anche se non è stato impostato - \const{ECHO}. \\ + \const{ECHO}.\\ \const{ECHOCTL}& Se impostato insieme ad \const{ECHO} i caratteri di controllo ASCII (tranne TAB, NL, START, e STOP) sono mostrati nella forma che prepone un ``\texttt{\circonf}'' @@ -1422,7 +1421,7 @@ fig.~\ref{fig:term_termios}). \const{IEXTEN} & Abilita alcune estensioni previste dalla implementazione. Deve essere impostato perché caratteri speciali come EOL2, LNEXT, REPRINT e WERASE possano - essere interpretati. \\ + essere interpretati.\\ \const{NOFLSH} & Se impostato disabilita lo scarico delle code di ingresso e uscita quando vengono emessi i segnali \const{SIGINT}, \const{SIGQUIT} e \const{SIGSUSP}.\\ @@ -1484,7 +1483,7 @@ altri.\footnote{in Linux il valore della costante \hline \const{VINTR} &\texttt{0x03}&(\texttt{C-c})& Carattere di interrupt, provoca l'emissione di - \const{SIGINT}. \\ + \const{SIGINT}.\\ \const{VQUIT} &\texttt{0x1C}&(\texttt{C-|})& Carattere di uscita provoca l'emissione di \const{SIGQUIT}.\\ @@ -1523,9 +1522,9 @@ altri.\footnote{in Linux il valore della costante \const{VEOL} &\texttt{0x00}& NUL & Carattere di fine riga. Agisce come un a capo, ma non viene scartato ed è letto come l'ultimo carattere - nella riga. \\ + nella riga.\\ \const{VREPRINT}&\texttt{0x12}&(\texttt{C-r})& Ristampa i caratteri non - ancora letti. \\ + ancora letti.\\ \const{VDISCARD}&\texttt{0x07}&(\texttt{C-o})& Non riconosciuto in Linux.\\ \const{VWERASE}&\texttt{0x17}&(\texttt{C-w})&Cancellazione di una parola.\\ @@ -1533,7 +1532,7 @@ altri.\footnote{in Linux il valore della costante quotare il carattere successivo che non viene interpretato ma passato - direttamente all'output. \\ + direttamente all'output.\\ \const{VEOL2} &\texttt{0x00}& NUL & Ulteriore carattere di fine riga. Ha lo stesso effetto di \const{VEOL} ma può essere un @@ -1584,7 +1583,7 @@ immagazzinate le impostazioni. Le funzioni sono \funcd{tcgetattr} e \bodydesc{Entrambe le funzioni restituiscono 0 in caso di successo e -1 in caso di errore, nel qual caso \var{errno} assumerà i valori: \begin{errlist} - \item[\errcode{EINTR}] La funzione è stata interrotta. + \item[\errcode{EINTR}] la funzione è stata interrotta. \end{errlist} ed inoltre \errval{EBADF}, \errval{ENOTTY} ed \errval{EINVAL}. } @@ -1630,9 +1629,9 @@ utili qualora si cambino i parametri di output. \textbf{Valore}& \textbf{Significato}\\ \hline \hline - \const{TCSANOW} & Esegue i cambiamenti in maniera immediata. \\ + \const{TCSANOW} & Esegue i cambiamenti in maniera immediata.\\ \const{TCSADRAIN}& I cambiamenti vengono eseguiti dopo aver atteso che - tutto l'output presente sulle code è stato scritto. \\ + tutto l'output presente sulle code è stato scritto.\\ \const{TCSAFLUSH}& È identico a \const{TCSADRAIN}, ma in più scarta tutti i dati presenti sulla coda di input.\\ \hline @@ -1786,7 +1785,6 @@ i terminali hanno un insieme di funzionalit di code di ingresso ed uscita; in generale si fa riferimento ad esse con il nome di \textsl{discipline di linea}. - Lo standard POSIX prevede alcune funzioni che permettono di intervenire direttamente sulla gestione di quest'ultime e sull'interazione fra i dati in ingresso ed uscita e le relative code. In generale tutte queste funzioni @@ -1816,9 +1814,9 @@ La funzione invia un flusso di bit nulli (che genera una condizione di break) sul terminale associato a \param{fd}; un valore nullo di \param{duration} implica una durata del flusso fra 0.25 e 0.5 secondi, un valore diverso da zero implica una durata pari a \code{duration*T} dove \code{T} è un valore -compreso fra 0.25 e 0.5.\footnote{POSIX specifica il comportamento solo nel - caso si sia impostato un valore nullo per \param{duration}; il comportamento - negli altri casi può dipendere dalla implementazione.} +compreso fra 0.25 e 0.5.\footnote{lo standard POSIX specifica il comportamento + solo nel caso si sia impostato un valore nullo per \param{duration}; il + comportamento negli altri casi può dipendere dalla implementazione.} Le altre funzioni previste da POSIX servono a controllare il comportamento dell'interazione fra le code associate al terminale e l'utente; la prima è @@ -1869,7 +1867,7 @@ di uscita canceller \textbf{Valore}& \textbf{Significato}\\ \hline \hline - \const{TCIFLUSH} & Cancella i dati sulla coda di ingresso. \\ + \const{TCIFLUSH} & Cancella i dati sulla coda di ingresso.\\ \const{TCOFLUSH} & Cancella i dati sulla coda di uscita. \\ \const{TCIOFLUSH}& Cancella i dati su entrambe le code.\\ \hline @@ -1913,7 +1911,7 @@ riportati in tab.~\ref{tab:sess_tcflow_action}. \const{TCOOFF}& Sospende l'output.\\ \const{TCOON} & Riprende un output precedentemente sospeso.\\ \const{TCIOFF}& Il sistema trasmette un carattere di STOP, che - fa interrompere la trasmissione dei dati dal terminale. \\ + fa interrompere la trasmissione dei dati dal terminale.\\ \const{TCION} & Il sistema trasmette un carattere di START, che fa riprendere la trasmissione dei dati dal terminale.\\ \hline @@ -1924,6 +1922,7 @@ riportati in tab.~\ref{tab:sess_tcflow_action}. \end{table} + \subsection{Operare in \textsl{modo non canonico}} \label{sec:term_non_canonical} @@ -1992,14 +1991,18 @@ Da fare. \label{sec:sess_pty} Qui vanno spiegati i terminali virtuali, \file{/dev/pty} e compagnia. +% vedi man pts + -\subsection{La funzione \func{openpty}} +\subsection{Allocazione dei terminale virtuali} \label{sec:sess_openpty} Qui vanno le cose su \func{openpty} e compagnia. - % TODO le ioctl dei terminali +% TODO trattare \func{posix\_openpt} + + % LocalWords: kernel multitasking dell'I job control BSD POSIX shell sez group