aboutsummaryrefslogtreecommitdiff
path: root/it_IT.ISO8859-15/books/unix-introduction/structure/chapter.xml
diff options
context:
space:
mode:
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.xml166
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&ugrave
+ 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>