X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=session.tex;h=f1b009b2a8f312f82d87c37707b4303d06d98697;hp=35ed018b848fdee76abe69346555042ea3390553;hb=49d0b7fc1091ad4185f5789e5d5b1243cf9115e8;hpb=535a5dfabb91231acc74e81c82425a6d47c355f9 diff --git a/session.tex b/session.tex index 35ed018..f1b009b 100644 --- a/session.tex +++ b/session.tex @@ -1,13 +1,18 @@ - \chapter{Sessioni di lavoro e terminali} +\chapter{Terminali e sessioni di lavoro} \label{cha:session} -Esamineremo in questo capitolo i concetti base del sistema delle sessioni di -lavoro, vale a dire il metodo con cui il kernel gestisce l'accesso concorrente -al sistema da parte di più utenti, permettendo loro di eseguire più programmi -in contemporanea. Nella seconda parte del capitolo tratteremo poi il -funzionamento dell'I/O su terminale, e delle varie peculiarità che esso viene -ad assumere a causa del suo stretto legame con le modalità di accesso al -sistema da parte degli utenti. +I terminali per lungo tempo tempo sono stati l'unico modo per accedere al +sistema, per questo anche oggi che esistono molte altre interfacce, essi +continuano a coprire un ruolo particolare, restando strettamente legati al +funzionamento dell'interfaccia a linea di comando. + +Mella prima parte del capitolo esamineremo i concetti base del sistema delle +sessioni di lavoro, vale a dire il metodo con cui il kernel permette ad un +utente di gestire le capacità multitiasking del sistema, permettendo di +eseguire più programmi in contemporanea. Nella seconda parte del capitolo +tratteremo poi il funzionamento dell'I/O su terminale, e delle varie +peculiarità che esso viene ad assumere a causa del suo stretto legame con il +suo uso come interfaccia di accesso al sistema da parte degli utenti. \section{Il \textit{job control}} @@ -678,12 +683,16 @@ messaggi del kernel.\footnote{i messaggi del kernel sono tenuti in un buffer si trova in \cite{LinDevDri}, nel quarto capitolo.} Il servizio permette poi di trattare i vari messaggi classificandoli -attraverso due indici; il primo, chiamato \textit{facility}, indica quale -categoria di demone ha emesso il messaggio, ed è organizzato in sottosistemi -(kernel, posta elettronica, demoni di stampa, ecc.), il secondo, chiamato -\textit{priority}, identifica l'importanza del messaggio. Il sistema di -\textit{syslog} provvede poi a riportare i messaggi all'amministratore -attraverso differenti meccanismi come: +attraverso due indici; il primo, chiamato \textit{facility}, suddivide in +diverse categorie i vari demoni in modo di raggruppare i messaggi provenienti +da operazioni che hanno attinenza fra loro, ed è organizzato in sottosistemi +(kernel, posta elettronica, demoni di stampa, ecc.). Il secondo, chiamato +\textit{priority}, identifica l'importanza dei vari messaggi, e permette di +classificarli e differenziare le modalità di notifica degli stessi. + +Il sistema di \textit{syslog} attraverso \cmd{syslogd} provvede poi a +riportare i messaggi all'amministratore attraverso una serie differenti +meccanismi come: \begin{itemize*} \item scrivere sulla console. \item inviare via mail ad uno specifico utente. @@ -697,10 +706,10 @@ dettagli si possono trovare sulle pagine di manuale per questo file e per \cmd{syslogd}). Le \acr{glibc} definiscono una serie di funzioni standard con cui un processo -può accedere in maniera generica al servizio di syslog, che però funzionano -solo localmente; se si vogliono inviare i messaggi ad un'altro sistema occorre -farlo esplicitamente con un socket UDP, o utilizzare le capacità di reinvio -del servizio. +può accedere in maniera generica al servizio di \textit{syslog}, che però +funzionano solo localmente; se si vogliono inviare i messaggi ad un'altro +sistema occorre farlo esplicitamente con un socket UDP, o utilizzare le +capacità di reinvio del servizio. La prima funzione definita dall'interfaccia è \func{openlog}, che apre una connessione al servizio di \textit{syslog}; essa in generale non è necessaria @@ -720,7 +729,7 @@ specificato da \code{argv[0]}); la stringa verr messaggio. Si tenga presente che il valore di \param{ident} che si passa alla funzione è un puntatore, se la stringa cui punta viene cambiata lo sarà pure nei successivi messaggi, e se viene cancellata i risultati potranno essere -impredicibili, per questo è sempre opportuno usare una stringa costante. +impredicibili, per questo è sempre opportuno usare una stringa costante. L'argomento \param{facility} permette invece di preimpostare per le successive chiamate l'omonimo indice che classifica la categoria del messaggio. @@ -762,8 +771,8 @@ specificato con un OR aritmetico. L'argomento \param{option} serve invece per controllare il comportamento della funzione \func{openlog} e delle modalità con cui le successive chiamate -scriveranno i messaggi, anch'esso viene specificato come maschera binaria -composta con un OR aritmetico di una qualunque delle costanti riportate in +scriveranno i messaggi, esso viene specificato come maschera binaria composta +con un OR aritmetico di una qualunque delle costanti riportate in \tabref{tab:sess_openlog_option}. \begin{table}[htb] @@ -846,19 +855,19 @@ con la maschera binaria delle costanti di \tabref{tab:sess_syslog_facility}. Una ulteriore funzione, \func{setlogmask}, permette di filtrare preliminarmente i messaggi in base alla loro priorità; il suo prototipo è: \begin{prototype}{syslog.h} - {int setlogmask(int mask)} +{int setlogmask(int mask)} Imposta la maschera dei log al valore specificato. \bodydesc{La funzione restituisce il precedente valore.} \end{prototype} -Le routine di gestione mantengono per ogni processo una maschera che determina -quale delle chiamate effettuate a \func{syslog} verrà effettivamente -registrata. La registrazione viene disabilitata per tutte quelle priorità che -non rientrano nella maschera; questa viene settata usando la macro -\code{LOG\_MASK(p)} dove \code{p} è una delle costanti di -\secref{tab:sess_syslog_priority}. É disponibile anche la macro +Le routine di gestione mantengono per ogni processo una maschera che +determina quale delle chiamate effettuate a \func{syslog} verrà +effettivamente registrata. La registrazione viene disabilitata per tutte +quelle priorità che non rientrano nella maschera; questa viene settata +usando la macro \code{LOG\_MASK(p)} dove \code{p} è una delle costanti di +\secref{tab:sess_syslog_priority}. É inoltre disponibile anche la macro \code{LOG\_UPTO(p)} che permette di specificare automaticamente tutte le priorità fino ad un certo valore. @@ -867,9 +876,14 @@ priorit \section{L'I/O su terminale} \label{sec:sess_terminal_io} -Esamineremo in questa sezione le peculiarità dell'I/O eseguito sui terminali, -tenendo conto delle differenze che quest'ultimi presentano rispetto ai normali -file su disco. +Benché come ogni altro dispositivo i terminali siano accessibili come file, +essi hanno assunto storicamente (essendo stati a lungo l'unico modo di +accedere al sistema) una loro rilevanza specifica, che abbiamo già avuto modo +di incontrare nella precedente sezione. + +Esamineremo qui le peculiarità dell'I/O eseguito sui terminali, che per la +loro particolare natura presenta delle differenze rispetto ai normali file su +disco e agli altri dispositivi.