Il pager utilizzato negli esempi è less che quindi dovrà essere installato preventivamente con il comando:
# apt-get update
# apt-get install less
ATTENZIONE:i comandi riportati nel manoscritto sono preceduti dal carattere:
- #
- per indicare che devono essere eseguiti come utente 'root'
- $
- per indicare che possono essere eseguiti con i privilegi di un utente ordinario
Architettura di un console hurd
La console hurd è basata su una architettura di tipo client-server e, quindi, si compone di almeno due programmi: il primo denominato /hurd/console [src:/hurd-20090404/console/] che agisce da server e il secondo, denominato /bin/console [src:/hurd-20090404/console-client/] che agisce da client.
Il server
Il server della console hurd (programma /hurd/console) ne implementa centralmente le principali funzioni di gestione, ed, in particolare, tra le molteplici, gestisce:
- i buffers dello schermo delle singole console virtuali e le principali operazioni su di essi;
- le code di input e output relative agli eventi delle periferiche collegate;
- le operazioni di trasformazione affinché i caratteri rappresentati sullo schermo rispettino la codifica prevista (ad esempio, sono queste le funzioni che permettono la corretta visualizzazione dei segni diacritici come le lettere accentate dell'alfabeto italiano);
- l'interpretazione dei principali caratteri di controllo per la rappresentazione del contenuto visualizzato.
È utile,inoltre, ricordare che, internamente il server utilizza il set di caratteri Unicode secondo la codifica UCS-4 [12]; in particolare, ai fini dell' output, effettua la transcodifica da UCS-4 alla codifica configurata [src:/hurd-20090404/console/display.c:925-945, src:/hurd-20090404/console/display.c:1720-1776], mentre ai fini dell'input [src:/hurd-20090404/console/input.c:55-75 , src:/hurd-20090404/console/input.c:165] esegue la transcodifica dalla codifica configurata allo standard UTF-8 [13].
L'architettura interna del server è stata realizzata cercando di mantenere un sufficiente livello di astrazione rispetto alle caratteristiche delle periferiche di input e output; ciò è stato possibile delegandone l'interfaccia ad un programma client attraverso il quale il server può controllare un numero configurabile di terminali virtuali (sei nella configurazione base) cioè di terminali tra di loro indipendenti che condividono, uno alla volta, le periferiche di input e output di cui dispone il computer.