X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=session.tex;h=78b60ecb9cf2475500e13dbdf7e3518e034ba815;hb=0e21ff1145b4f9a21c582fac348c87319133f79f;hp=4652bc5550a2db06f26cdeff816c2afef7252b54;hpb=60e20d29c0515f95b8a171fb33c7214c9bf92021;p=gapil.git diff --git a/session.tex b/session.tex index 4652bc5..78b60ec 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 @@ -644,9 +645,9 @@ occorrer il programma), per evitare che la directory da cui si è lanciato il processo resti in uso e non sia possibile rimuoverla o smontare il filesystem che la contiene. -\item Impostare la maschera dei permessi (di solito con \code{umask(0)}) in - modo da non essere dipendenti dal valore ereditato da chi ha lanciato - originariamente il processo. +\item Impostare la \itindex{umask} maschera dei permessi (di solito con + \code{umask(0)}) in modo da non essere dipendenti dal valore ereditato da + chi ha lanciato originariamente il processo. \item Chiudere tutti i file aperti che non servono più (in generale tutti); in particolare vanno chiusi i file standard che di norma sono ancora associati al terminale (un'altra opzione è quella di redirigerli verso @@ -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}). @@ -1582,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}. } @@ -1784,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 @@ -1814,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 è @@ -1922,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} @@ -1990,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