%% session.tex
%%
-%% Copyright (C) 2000-2005 Simone Piccardi. Permission is granted to
+%% Copyright (C) 2000-2006 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 "Un preambolo",
il cui scopo è quello di permettere ad un utente di poter sfruttare le
capacità multitasking di un sistema Unix per eseguire in contemporanea più
processi, pur potendo accedere, di solito, ad un solo terminale,\footnote{con
- X e con i terminali virtuali tutto questo non è più vero, dato che si può
- accedere a molti terminali in contemporanea da una singola postazione di
- lavoro, ma il sistema è nato prima dell'esistenza di tutto ciò.} avendo cioè
-un solo punto in cui si può avere accesso all'input ed all'output degli
-stessi.
+ \textit{X Window} e con i terminali virtuali tutto questo non è più vero,
+ dato che si può accedere a molti terminali in contemporanea da una singola
+ postazione di lavoro, ma il sistema è nato prima dell'esistenza di tutto
+ ciò.} avendo cioè un solo punto in cui si può avere accesso all'input ed
+all'output degli stessi.
\subsection{Una panoramica introduttiva}
negli anni '80, e successivamente standardizzata da POSIX.1; la sua
disponibilità nel sistema è verificabile attraverso il controllo della macro
\macro{\_POSIX\_JOB\_CONTROL}. In generale il \textit{job control} richiede il
-supporto sia da parte della shell (quasi tutte ormai lo fanno), che da parte
+supporto sia da parte della shell (quasi tutte ormai lo hanno), che da parte
del kernel; in particolare il kernel deve assicurare sia la presenza di un
driver per i terminali abilitato al \textit{job control} che quella dei
relativi segnali illustrati in sez.~\ref{sec:sig_job_control}.
\itindex{process~group} \textit{process group}, e di aprire il terminale (che
così diventa il terminale di controllo della sessione) in lettura sullo
standard input ed in scrittura sullo standard output e sullo standard error;
-inoltre effettuerà, qualora servano, ulteriori settaggi.\footnote{ad esempio,
- come qualcuno si sarà accorto scrivendo un nome di login in maiuscolo, può
- effettuare la conversione automatica dell'input in minuscolo, ponendosi in
- una modalità speciale che non distingue fra i due tipi di caratteri (a
- beneficio di alcuni vecchi terminali che non supportavano le minuscole).}
-Alla fine il programma stamperà un messaggio di benvenuto per poi porsi in
-attesa dell'immissione del nome di un utente.
+inoltre effettuerà, qualora servano, ulteriori impostazioni.\footnote{ad
+ esempio, come qualcuno si sarà accorto scrivendo un nome di login in
+ maiuscolo, può effettuare la conversione automatica dell'input in minuscolo,
+ ponendosi in una modalità speciale che non distingue fra i due tipi di
+ caratteri (a beneficio di alcuni vecchi terminali che non supportavano le
+ minuscole).} Alla fine il programma stamperà un messaggio di benvenuto per
+poi porsi in attesa dell'immissione del nome di un utente.
Una volta che si sia immesso il nome di login \cmd{getty} esegue direttamente
il programma \cmd{login} con una \func{exevle}, passando come argomento la
Le \acr{glibc} definiscono una serie di funzioni standard con cui un processo
può accedere in maniera generica al servizio di \textit{syslog}, che però
-funzionano solo localmente; se si vogliono inviare i messaggi ad un'altro
+funzionano solo localmente; se si vogliono inviare i messaggi ad un altro
sistema occorre farlo esplicitamente con un socket\index{socket} UDP, o
utilizzare le capacità di reinvio del servizio.
automaticamente un avviso (un carattere di BELL, che provoca un beep)
sull'output quando si eccedono le dimensioni della coda. Se è abilitato il
modo canonico i caratteri in ingresso restano nella coda fintanto che non
-viene ricevuto un a capo; un'altro parametro del sistema, \const{MAX\_CANON},
+viene ricevuto un a capo; un altro parametro del sistema, \const{MAX\_CANON},
specifica la dimensione massima di una riga in modo canonico.
La coda di uscita è analoga a quella di ingresso e contiene i caratteri
\func{open} senza aver specificato il flag di
\const{O\_NOBLOCK} si bloccherà il processo finché
non si è stabilita una connessione con il modem; inoltre
- se viene rilevata una disconessione viene inviato un
+ se viene rilevata una disconnessione viene inviato un
\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
Il terzo flag, mantenuto nel campo \var{c\_cflag}, è detto \textsl{flag di
controllo} ed è legato al funzionamento delle linee seriali, permettendo di
-impostarne varie caratteristiche, come il numero di bit di stop, i settaggi
-della parità, il funzionamento del controllo di flusso; esso ha senso solo per
-i terminali connessi a linee seriali. Un elenco dei vari bit, del loro
-significato e delle costanti utilizzate per identificarli è riportato in
-tab.~\ref{tab:sess_termios_cflag}.
+impostarne varie caratteristiche, come il numero di bit di stop, le
+impostazioni della parità, il funzionamento del controllo di flusso; esso ha
+senso solo per i terminali connessi a linee seriali. Un elenco dei vari bit,
+del loro significato e delle costanti utilizzate per identificarli è riportato
+in tab.~\ref{tab:sess_termios_cflag}.
I valori di questo flag sono molto specifici, e completamente indirizzati al
controllo di un terminale mantenuto su una linea seriale; essi pertanto non
\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 prepende un \verb|^| alla
+ mostrati nella forma che prepone un \verb|^| alla
lettera ottenuta sommando \texttt{0x40} al valore del
carattere (di solito questi si possono ottenere anche
direttamente premendo il tasto \texttt{ctrl} più la
essere interpretati. \\
\const{NOFLSH} & Se impostato disabilita lo scarico delle code di ingresso
e uscita quando vengono emessi i segnali \const{SIGINT},
- \const{SIGQUIT} and \const{SIGSUSP}.\\
+ \const{SIGQUIT} e \const{SIGSUSP}.\\
\const{TOSTOP} & Se abilitato, con il supporto per il job control presente,
genera il segnale \const{SIGTTOU} per un processo in
background che cerca di scrivere sul terminale.\\
%%% mode: latex
%%% TeX-master: "gapil"
%%% End:
+
+% LocalWords: kernel multitasking dell'I job control BSD POSIX shell sez group
+% LocalWords: foreground process bg fg Di waitpid WUNTRACED pgrp session sched
+% LocalWords: struct pgid sid pid ps getpgid getpgrp SVr unistd void errno int
+% LocalWords: ESRCH getsid glibc system call XOPEN SOURCE EPERM setpgrp EACCES
+% LocalWords: setpgid exec EINVAL did fork race condition setsid l'I tty ioctl
+% LocalWords: NOCTTY TIOCSCTTY error tcsetpgrp termios fd pgrpid descriptor VT
+% LocalWords: ENOTTY ENOSYS EBADF SIGTTIN SIGTTOU EIO tcgetpgrp crypt SIGTSTP
+% LocalWords: SIGINT SIGQUIT SIGTERM SIGHUP hungup kill orphaned SIGCONT exit
+% LocalWords: init Slackware run level inittab fig device getty exevle TERM at
+% LocalWords: getpwnam chdir home chown chmod setuid setgid initgroups SIGCHLD
+% LocalWords: daemon like daemons NdT Stevens Programming FAQ filesystem umask
+% LocalWords: noclose syslog syslogd socket UDP klogd printk printf facility
+% LocalWords: priority log openlog const char ident option argv tab AUTH CRON
+% LocalWords: AUTHPRIV cron FTP KERN LOCAL LPR NEWS news USENET UUCP CONS CRIT
+% LocalWords: NDELAY NOWAIT ODELAY PERROR stderr format strerror EMERG ALERT
+% LocalWords: ERR WARNING NOTICE INFO DEBUG debug setlogmask mask UPTO za ssh
+% LocalWords: teletype telnet read write BELL beep CANON isatty desc ttyname
+% LocalWords: NULL ctermid stdio pathname buff size len ERANGE bits ispeed xFF
+% LocalWords: ospeed line tcflag INPCK IGNPAR PARMRK ISTRIP IGNBRK BREAK NUL
+% LocalWords: BRKINT IGNCR carriage return newline ICRNL INLCR IUCLC IXON NL
+% LocalWords: IXANY IXOFF IMAXBEL iflag OPOST CR OCRNL OLCUC ONLCR ONOCR OFILL
+% LocalWords: ONLRET OFDEL NLDLY CRDLY TABDLY BSDLY backspace BS VTDLY FFDLY
+% LocalWords: form feed FF oflag CLOCAL NOBLOCK of HUPCL CREAD CSTOPB PARENB
+% LocalWords: PARODD CSIZE CS CBAUD CBAUDEX CIBAUD CRTSCTS RTS CTS cflag ECHO
+% LocalWords: ICANON ECHOE ERASE ECHOPRT ECHOK ECHOKE ECHONL ECHOCTL ctrl ISIG
+% LocalWords: INTR QUIT SUSP IEXTEN EOL LNEXT REPRINT WERASE NOFLSH and TOSTOP
+% LocalWords: SIGSUSP XCASE DEFECHO FLUSHO DISCARD PENDIN lflag NCCS VINTR EOF
+% LocalWords: interrupt VQUIT VERASE VKILL VEOF VTIME VMIN VSWTC switch VSTART
+% LocalWords: VSTOP VSUSP VEOL VREPRINT VDISCARD VWERASE VLNEXT escape actions
+% LocalWords: tcgetattr tcsetattr EINTR TCSANOW TCSADRAIN TCSAFLUSH speed MIN
+% LocalWords: SetTermAttr UnSetTermAttr cfsetispeed cfsetospeed cfgetispeed
+% LocalWords: cfgetospeed quest'ultime tcsendbreak duration break tcdrain
+% LocalWords: tcflush queue TCIFLUSH TCOFLUSH TCIOFLUSH tcflow action TCOOFF
+% LocalWords: TCOON TCIOFF TCION timer openpty