Guida dell'amministratore di sistema di Linux: Versione 0.6.2 | ||
---|---|---|
Indietro | Capitolo 8. Login e logout | Avanti |
Due computer della stessa rete di solito sono collegati da un singolo cavo fisico. Quando comunicano in rete, i programmi in ciascun computer che prendono parte alla comunicazione sono collegati attraverso una connessione virtuale, una specie di cavo immaginario. Per quanto riguarda i programmi ai lati della connessione, hanno un monopolio del proprio cavo; comunque, dato che il cavo non è reale, solo immaginario, i sistemi operativi di entrambi i computer hanno diverse connessioni virtuali che condividono lo stesso cavo fisico. In questo modo, usando una sola connessione reale, diversi programmi possono comunicare tra di loro senza dover conoscere o doversi preoccupare delle altre comunicazioni. È anche possibile avere diversi computer che usano lo stesso cavo; le connessioni virtuali esistono tra due computer, e gli altri ignorano quelle di cui non fanno parte.
Questo è un modo complicato e troppo astratto per descrivere la situazione; può però essere abbastanza buono per capirle la ragione importante per cui i login via rete sono in qualche modo diversi da quelli normali: le connessioni virtuali vengono stabilite quando due programmi su computer diversi vogliono comunicare; dato che in principio è possibile fare login su un qualsiasi computer della rete da un qualsiasi altro, c'è un numero enorme di comunicazioni virtuali potenziali, quindi non è pratico inizializzare una getty per ogni login potenziale.
C'è un singolo processo di inetd (che corrisponde alle getty) che gestisce tutti i login di rete; quando nota un login di rete in arrivo (cioè nota che viene aperta una connessione virtuale da un altro computer), inizia un nuovo processo per gestirlo singolarmente. Il processo originale resta e continua ad aspettare altri login.
Per complicare un po' le cose, esiste più di un protocollo di comunicazione per i login di rete; i due più importanti sono telnet e rlogin. Oltre ai login, ci sono molte altre connessioni virtuali possibili (per FTP, Gopher, HTTP ed altri servizi di rete); sarebbe poco efficace avere un processo separato che aspetti un tipo particolare di connessione, quindi ce n'è uno solo che può riconoscere tutti i tipi e far partire il programma giusto per il servizio richiesto. Questo programma si chiama inetd; vedere la Linux Network Administrators' Guide ([NAG]) per altre informazioni.