diff options
Diffstat (limited to 'it_IT.ISO8859-15/books/unix-introduction/structure/chapter.xml')
-rw-r--r-- | it_IT.ISO8859-15/books/unix-introduction/structure/chapter.xml | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/it_IT.ISO8859-15/books/unix-introduction/structure/chapter.xml b/it_IT.ISO8859-15/books/unix-introduction/structure/chapter.xml new file mode 100644 index 0000000000..69db41145d --- /dev/null +++ b/it_IT.ISO8859-15/books/unix-introduction/structure/chapter.xml @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding="iso-8859-15" standalone="no"?> +<!-- + The FreeBSD Italian Documentation Project + + $FreeBSD$ +--> + +<chapter id="structure"> + <title>Struttura di Unix</title> + + <sect1 id="structure-os"> + <title>Il sistema operativo</title> + + <para>Unix è un sistema operativo a strati. Lo strato più + interno è l'hardware il quale fornisce servizi al OS. Il sistema + operativo (OS), riferito in Unix come al <emphasis>kernel</emphasis>, + interagisce direttamente con l'hardware e fornisce i servizi ai programmi + utente. I programmi utente non necessitano di conoscere informazioni + sull'hardware. Devono solo sapere come interagire con il kernel ed + è quest'ultimo a fornire i servizi richiesti. Uno dei più + grandi fattori che ha contribuito alla richiesta di Unix da parte dei + programmatori è stato che molti programmi utente corretti + sono indipendenti dall'hardware sottostante, e ciò li rende + facilmente trasportabili su nuovi sistemi.</para> + + <para>I programmi utente interagiscono con il kernel attraverso un set di + <emphasis>system call</emphasis> (chiamate di sistema) standard. Queste + system call chiedono dei servizi, servizi che saranno forniti dal kernel. + Così i servizi possono includere un accesso a un file: aprire, + chiudere, leggere, scrivere un file, creare un link o eseguire un file; + creare o aggiornare degli account (informazioni relative ad un utente come + nome, password, ecc.); cambiare il proprietario di un file o di una + directory; spostarsi in una nuova directory; creare, sospendere o + terminare un processo; abilitare l'accesso a un dispositivo hardware e + impostare dei limiti sulle risorse di sistema.</para> + + <para>Unix è un sistema operativo <emphasis>multi-user</emphasis> + (multi-utente) e <emphasis>multi-tasking</emphasis> (multi-processo). Si + possono avere molti utenti <quote>loggati</quote> simultaneamente nel + sistema (multi-user), ognuno dei quali esegue alcuni programmi + (multi-tasking). È compito del kernel mantenere ogni processo e + ogni utente separato e regolare l'accesso all'hardware di sistema, inclusa + la cpu, la memoria, il disco e altri dispositivi di I/O.</para> + +<programlisting> +FIGURA 2.1 Struttura di un sistema Unix + + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +| | +| Programmi | +| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | +| | | | +| | Kernel | | +| | _ _ _ _ _ _ _ _ _ _ _ _ _ _ | | +| | | Hardware | | | +| | |_ _ _ _ _ _ _ _ _ _ _ _ _ _| | | +| | | | +| | System Call | | +| |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _| | +| | +|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|</programlisting> + </sect1> + + <sect1 id="structure-file-system"> + <title>Il file system</title> + + <para>L'aspetto del file system di Unix è paragonabile alla struttura + rovesciata di un albero. Si parte dall'alto con la directory + <emphasis>root</emphasis>, denotata con <filename>/</filename>, per poi + scendere attraverso sotto-directory sottostanti la root.</para> + +<programlisting> +FIGURA 2.2 Struttura del file system di Unix + + + /(root) 1 livello + | | | | | + bin dev etc tmp usr 2 livello + | | | | | | | | | + sh date csh ttya cua0 passwd group bin lib 3 livello + | + gcc 4 livello + + .... n livello</programlisting> + + <para>Ogni nodo è o un <emphasis>file</emphasis> o una + <emphasis>directory</emphasis> di file, dove quest'ultima può + contenere altri file e directory. Un file o una directory vengono + specificati attraverso il loro <emphasis>path name</emphasis> (percorso + del nome del file o della directory), il quale può essere un path + name assoluto oppure un path name relativo ad un'altra locazione. Un path + name assoluto inizia con la directory root, <filename>/</filename>, + seguono poi i <quote>rami</quote> del file system, ognuno separato da /, + fino a raggiungere il file desiderato, come per esempio:</para> + + <para><filename>/home/condron/source/xntp</filename></para> + + <para>Un path name relativo specifica un percorso relativo ad un altro path + name, che usualmente è la directory di lavoro corrente in cui ci si + trova. Sono ora introdotte due directory speciali:</para> + + <para><filename>.</filename> la directory corrente</para> + + <para><filename>..</filename> la directory padre della directory + corrente</para> + + <para>Quindi se si è in <filename>/home/frank</filename> e si + desidera specificare un path nel modo relativo si può usare:</para> + + <para><filename>../condron/source/xntp</filename></para> + + <para>Questo indica che si deve prima salire di un livello di directory, + quindi passare attraverso la directory <filename>condron</filename>, + seguire la directory <filename>source</filename> e quindi + <filename>xntp</filename>.</para> + </sect1> + + <sect1 id="structure-directories-files-inodes"> + <title>Directory, file e inode Unix</title> + + <para>Ogni <emphasis>directory</emphasis> e ogni <emphasis>file</emphasis> + sono inclusi nella loro directory padre. Nel caso della directory root, + la directory padre è se stessa. Una directory è un file + contenente una tabella che elenca i file contenuti nella directory stessa, + dove ai nomi dei file in lista vengono assegnati i corrispondenti numeri + di <emphasis>inode</emphasis>. Un inode è un file speciale, + progettato per essere letto dal kernel al fine di conoscere alcune + informazioni su ciascun file. Un inode specifica i permessi del file, il + proprietario del file, la data di creazione, quella dell'ultimo accesso e + quella dell'ultima modifica del file e la posizione fisica dei blocchi di + dati sul disco che contengono il file.</para> + + <para>Il sistema non richiede qualche struttura particolare per i dati + contenuti nel file. Il file può essere ASCII o binario o una + combinazione di questi e può rappresentare dati testuali, uno + script di shell, un codice oggetto compilato per un programma, una tabella + di directory, robaccia o qualunque cosa si voglia.</para> + + <para>Non c'è un'intestazione, una traccia, un'etichetta o il + carattere <emphasis>EOF</emphasis> come parte del file.</para> + </sect1> + + <sect1 id="structure-programs"> + <title>Programmi Unix</title> + + <para>Un <emphasis>programma</emphasis> o un <emphasis>comando</emphasis> + interagisce con il kernel per fornire l'ambiente e realizzare le + funzioni richieste dall'utente. Un programma può essere: un file + di shell eseguibile, conosciuto come uno script di shell, un comando + interno (built-in) alla shell o un file sorgente compilato in codice + oggetto.</para> + + <para>La <emphasis>shell</emphasis> è un interprete a linea di + comando. L'utente interagisce con il kernel attraverso la shell. Si + può scrivere uno script ASCII (testo) in modo tale da essere + interpretato da una shell.</para> + + <para>I programmi di sistema sono generalmente in forma binaria, compilati + partendo da un codice sorgente in C. Questi si trovano in posti come + <filename>/bin</filename>, <filename>/usr/bin</filename>, + <filename>/usr/local/bin</filename>, <filename>/usr/ucb</filename>, ecc. + Questi comandi forniscono quelle funzionalità che normalmente si + pensano essere di Unix. Alcuni di questi sono &man.sh.1;, &man.csh.1;, + &man.date.1;, &man.who.1;, &man.more.1;, &man.ls.1; e molti altri.</para> + </sect1> +</chapter> |