doc: remove much of the Italian translations

The Italian translation has not been updated since r31375 on
2008-01-27. Future commits were either mechanical or global.

- The committers guide still references CVS
- The handbook still references sysinstall
- Both still reference GNATS

In general the documentation is out of date sufficient and not being
updated.

The hard work of the previous contributors is much appreciated.

Leave the handbook as there is interest in continuing the project.
This commit is contained in:
Eitan Adler 2018-08-11 01:23:04 +00:00
parent 870a8a1d4d
commit 7820081803
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=52099
31 changed files with 0 additions and 19254 deletions

View file

@ -1,6 +1,5 @@
# $FreeBSD$
SUBDIR = articles
SUBDIR+= books
COMPAT_SYMLINK = it

View file

@ -1,12 +0,0 @@
# $FreeBSD$
SUBDIR =
SUBDIR+= committers-guide
SUBDIR+= explaining-bsd
SUBDIR+= filtering-bridges
SUBDIR+= new-users
SUBDIR+= vm-design
DOC_PREFIX?= ${.CURDIR}/../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

View file

@ -1,5 +0,0 @@
#
# $FreeBSD$
#
DESTDIR?= ${DOCDIR}/it_IT.ISO8859-15/articles/${.CURDIR:T}

View file

@ -1,21 +0,0 @@
#
# $FreeBSD$
#
# Articolo: Guida del Committer
MAINTAINER=ale@FreeBSD.org
DOC?= article
FORMATS?= html
WITH_ARTICLE_TOC?= YES
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
SRCS= article.xml
URL_RELPREFIX?= ../../../..
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

File diff suppressed because it is too large Load diff

View file

@ -1,19 +0,0 @@
#
# $FreeBSD$
#
# Articolo: Panoramica su BSD
DOC?= article
FORMATS?= html
WITH_ARTICLE_TOC?= YES
INSTALL_COMPRESSED?=gz
INSTALL_ONLY_COMPRESSED?=
SRCS= article.xml
URL_RELPREFIX?= ../../../..
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

View file

@ -1,615 +0,0 @@
<?xml version="1.0" encoding="iso-8859-15"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<!--
The FreeBSD Italian Documentation Project
$FreeBSD$
Original revision: 1.22
-->
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="it">
<info><title>Panoramica su BSD</title>
<author><personname><firstname>Greg</firstname><surname>Lehey</surname></personname><affiliation>
<address><email>grog@FreeBSD.org</email></address>
</affiliation></author>
<legalnotice xml:id="trademarks" role="trademarks">
&tm-attrib.freebsd;
&tm-attrib.amd;
&tm-attrib.apple;
&tm-attrib.linux;
&tm-attrib.opengroup;
&tm-attrib.sun;
&tm-attrib.xfree86;
&tm-attrib.general;
</legalnotice>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
<abstract>
<para>Nel mondo open source, la parola <quote>Linux</quote> è quasi
sinonimo di <quote>Sistema Operativo</quote>, ma non si tratta del solo
sistema operativo &unix; open source. Secondo
l'<link xlink:href="http://www.leb.net/hzo/ioscount/data/r.9904.txt">Internet
Operating System Counter</link>, ad Aprile del 1999 il 31.3% delle
macchine connesse in rete ha in esecuzione Linux.
Il 14.6% fa girare BSD &unix;.
Alcuni dei più grandi operatori del web, come <link xlink:href="http://www.yahoo.com/">Yahoo!</link>, usano BSD. Il server
FTP più affollato del mondo nel 1999 (ora defunto), <link xlink:href="ftp://ftp.cdrom.com/">ftp.cdrom.com</link>, usa BSD per
trasferire 1.4 TB di dati al giorno. Chiaramente questo non è
un mercato di nicchia: BSD è un segreto ben mantenuto.</para>
<para>Dunque, qual è il segreto? Perché BSD non è
conosciuto meglio? Questo documento risponde a questa e ad altre
domande.</para>
<para>In questo documento, le differenze tra BSD e Linux verranno
evidenziate <emphasis>così</emphasis>.</para>
&trans.it.surrender;
</abstract>
</info>
<sect1 xml:id="what-is-bsd">
<title>Cos'è BSD?</title>
<para>BSD sta per <quote>Berkeley Software Distribution</quote>. È
il nome delle distribuzioni di codice sorgente dell'Università
della California, Berkeley, che erano originariamente estensioni al
sistema operativo &unix; del settore Ricerca della AT&amp;T.
Molti progetti open source di sistemi operativi sono basati
su una versione di questo codice sorgente noto come
4.4BSD-Lite. Inoltre, essi comprendono un gran numero di
pacchetti provenienti da altri progetti Open Source, incluso, in
particolare, il progetto GNU. L'intero sistema operativo
comprende:</para>
<itemizedlist>
<listitem>
<para>Il kernel BSD, che gestisce lo scheduling dei processi, l'utilizzo
della memoria, il supporto multiprocessore (SMP), i driver dei
vari dispositivi, ecc.</para>
<para><emphasis>Diversamente dal kernel Linux, ci sono differenti
kernel BSD con differenti caratteristiche.</emphasis></para>
</listitem>
<listitem>
<para>La libreria C, le API di base per il sistema.</para>
<para><emphasis>La libreria C BSD è basata su codice proveniente
da Berkeley, non dal progetto GNU.</emphasis></para>
</listitem>
<listitem>
<para>Utilità come shell, file manager, compilatori e
linker.</para>
<para><emphasis>Alcune delle applicazioni derivano dal
progetto GNU, altre no.</emphasis></para>
</listitem>
<listitem>
<para>L'X Window System, che gestisce la visualizzazione grafica.</para>
<para>L'X Window System usato nella maggior parte delle versioni di
BSD viene mantenuto da uno dei due progetti separati, il
<link xlink:href="http://www.XFree86.org/">progetto &xfree86;</link> e il
<link xlink:href="http://www.X.org/">progetto X.Org</link>.
Questo è lo stesso codice usato da Linux. BSD in genere non
specifica un <quote>desktop grafico</quote> come GNOME o KDE,
anche se questi sono disponibili.</para>
</listitem>
<listitem>
<para>Molti altri programmi ed utilità.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="what-a-real-unix">
<title>Cosa, un vero &unix;?</title>
<para>I sistemi operativi BSD non sono cloni, ma derivati open source
del sistema operativo &unix; dell'AT&amp;T Research, che è anche
l'antenato del moderno &unix; System V. Questo potrebbe sorprendere.
Come è potuto accadere questo, se la AT&amp;T non ha mai rilasciato
il suo codice come open source?</para>
<para>È vero che lo &unix; AT&amp;T non è open source, e nel
senso del copyright BSD in definitiva <emphasis>non è</emphasis>
&unix;, ma d'altro canto l'AT&amp;T ha importato sorgenti da altri
progetti, in maniera rilevante dal Computer Sciences Research Group
dell'Università della California a Berkeley, CA. Iniziato nel
1976, il CSRG ha iniziato a rilasciare nastri con il loro software,
chiamandolo <emphasis>Berkeley Software Distribution</emphasis> o
<emphasis>BSD</emphasis>.</para>
<para>Le versioni iniziali di BSD consistevano principalmente di programmi
utente, ma questo cambiò drammaticamente quando il CSRG
sottoscrisse un contratto con la
Defense Advanced Projects Research Agency (DARPA) per migliorare
i protocolli di comunicazione della loro rete, ARPANET. I nuovi
protocolli furono conosciuti come <emphasis>Internet Protocols</emphasis>,
e in seguito come <emphasis>TCP/IP</emphasis>, ai nomi dei protocolli
più importanti. La prima implementazione distribuita in maniera
estesa fu parte di 4.2BSD, nel 1982.</para>
<para>Nel corso degli '80, sorsero un certo numero di compagnie
che producevano workstation. Molti preferirono usare &unix; su licenza
piuttosto che sviluppare da soli un nuovo sistema operativo.
In particolare, la Sun Microsystems rilicenziò &unix; ed
implementò una versione commerciale di 4.2BSD, che chiamò
SunOS. Quando alla AT&amp;T stessa fu permesso di vendere &unix;
commercialmente, cominciarono con una implementazione ridotta all'osso
nota come System III, presto seguita da System V.
Il codice fondamentale di System V non comprendeva la parte di rete,
dunque tutte le implementazioni includevano software addizionale tratto
da BSD, incluso il software legato al TCP/IP, ma anche utilità come
la shell <emphasis>csh</emphasis> e l'editor <emphasis>vi</emphasis>.
Complessivamente, questi miglioramenti furono conosciuti
come le <emphasis>Estensioni Berkeley</emphasis>.</para>
<para>Il nastro BSD conteneva codice AT&amp;T e dunque richiedeva
una licenza per il sorgente &unix;. Dal 1990, il finanziamento del CSRG
si stava esaurendo, e se ne stava per affrontare la chiusura.
Alcuni membri del gruppo decisero di rilasciare il codice BSD,
che era Open Source, senza il codice proprietario della AT&amp;T.
Ciò accadde infine con il <emphasis>Networking Tape 2</emphasis>,
in genere noto come <emphasis>Net/2</emphasis>. Net/2 non era un sistema
operativo completo: mancava circa il 20% del codice del kernel. Uno dei
membri del CSRG, William F. Jolitz, scrisse il codice rimanente e lo
rilasciò all'inizio del 1992 come <emphasis>386BSD</emphasis>.
Allo stesso tempo, un altro gruppo di ex membri del CSRG formò una
compagnia chiamata <link xlink:href="http://www.bsdi.com/">Berkeley Software
Design Inc.</link> e rilasciò una versione beta di un sistema
operativo chiamato <link xlink:href="http://www.bsdi.com/">BSD/386</link>,
che era basato sugli stessi sorgenti. Il nome del sistema operativo
è cambiato di recente in BSD/OS.</para>
<para>386BSD non divenne mai un sistema operativo stabile. Invece, due
altri progetti se ne distaccarono nel 1993:
<link xlink:href="http://www.NetBSD.org/">NetBSD</link> e
<link xlink:href="&url.base;/index.html">FreeBSD</link>.
I due progetti presero inizialmente direzioni divergenti, a causa della
differente pazienza nell'attendere miglioramenti a
386BSD: la gente di NetBSD cominciò all'inizio dell'anno,
e la prima versione di FreeBSD non fu pronta fino alla fine
dell'anno. Nel frattempo, i codici erano diventati abbastanza differenti
da renderne difficile la fusione. Inoltre, i progetti avevano obiettivi
differenti, come vedremo in seguito. Nel 1996,
<link xlink:href="http://www.OpenBSD.org/">OpenBSD</link> si ramificò
da NetBSD, e nel 2003,
<link xlink:href="http://www.dragonflybsd.org/">DragonFlyBSD</link> si
ramificò da FreeBSD.</para>
</sect1>
<sect1 xml:id="why-is-bsd-not-better-known">
<title>Perché BSD non è più conosciuto?</title>
<para>Per un certo numero di ragioni, BSD è relativamente
sconosciuto:</para>
<orderedlist>
<listitem>
<para>Gli sviluppatori BSD sono spesso più interessati
a ripulire il loro codice che a fagli pubblicità.</para>
</listitem>
<listitem>
<para>Molta della popolarità di Linux è dovuta a fattori
esterni al progetto Linux, come la stampa, e le compagnie formate per
fornire servizi relativi a Linux. Fino a poco tempo fa,
la varie versioni di BSD open source non avevano tali spinte.</para>
</listitem>
<listitem>
<para>Gli sviluppatori BSD tendono ad avere più esperienza
di quelli di Linux, ed hanno meno interesse nel rendere il sistema
facile da usare.
I nuovi arrivati tendono a sentirsi più a loro agio con
Linux.</para>
</listitem>
<listitem>
<para>Nel 1992, l'AT&amp;T citò in giudizio
<link xlink:href="http://www.bsdi.com/">BSDI</link>,
il produttore di BSD/386, sostenendo che il prodotto conteneva
codice sotto copyright della AT&amp;T. Il caso fu risolto in
tribunale nel 1994, ma lo spettro della causa continua a perseguitare
alcune persone. Nel marzo 2000 un articolo pubblicato sul web
sosteneva che il caso era stato <quote>concluso
recentemente</quote>.</para>
<para>Un dettaglio che venne chiarito dall'azione legale fu il nome:
negli anni '80, BSD era stato conosciuto come <quote>BSD
&unix;</quote>.
Con l'eliminazione delle ultima vestigia del codice AT&amp;T da BSD,
si era perso anche il diritto di usare il nome &unix;. Per questo
noterete riferimenti nei libri al <quote>sistema operativo 4.3BSD
&unix;</quote> ed al <quote>sistema operativo 4.4BSD</quote>.</para>
</listitem>
<listitem>
<para>C'è una certa percezione che il progetto BSD sia
frammentato e belligerante. Il <link xlink:href="http://interactive.wsj.com/bin/login?Tag=/&amp;URI=/archive/retrieve.cgi%253Fid%253DSB952470579348918651.djm&amp;">Wall
Street Journal</link> parlò di
<quote>balcanizzazione</quote> dei progetti BSD. Come per l'azione
legale, questa percezione si basa principalmente su vecchie
storie.</para>
</listitem>
</orderedlist>
</sect1>
<sect1 xml:id="comparing-bsd-and-linux">
<title>Paragone tra BSD e Linux</title>
<para>Dunque qual'è l'effettiva differenza tra, diciamo, Debian
Linux e FreeBSD? Per l'utente medio, la differenza è
sorprendentemente piccola: entrambi sono sistemi operativi tipo &unix;.
Entrambi vengono sviluppati da progetti non commerciali (questo non si
applica a molte altre distribuzioni di Linux, ovviamente). Nella sezione
seguente, daremo un'occhiata a BSD e lo paragoneremo a Linux.
La descrizione si applica molto da vicino a FreeBSD, che conta per un 80%
delle installazioni BSD, ma le differenza da NetBSD, OpenBSD e DragonFlyBSD
sono piccole.</para>
<sect2>
<title>Chi possiede BSD?</title>
<para>Nessuna persona o società possiede BSD. Esso è creato
e distribuito da una comunità di persone con grande preparazione
tecnica e voglia di fare che contribuiscono da tutto il mondo.
Alcuni dei componenti di BSD sono progetti open source a se stanti gestiti
da diversi responsabili.</para>
</sect2>
<sect2>
<title>Come viene sviluppato ed aggiornato BSD?</title>
<para>I kernel BSD vengono sviluppati ed aggiornati
seguendo il modello di sviluppo open source. Ogni progetto mantiene
un <emphasis>albero dei sorgenti</emphasis> liberamente accessibile in
un <link xlink:href="http://www.cvshome.org/">Concurrent Versions
System</link>, un sistema di gestione delle versioni concorrenti,
che contiene tutti i file sorgenti del progetto,
inclusa la documentazione ed altri file inerenti. Il CVS
permette agli utenti di <quote>estrarre</quote> (in sostanza,
estrarre una copia di) ogni versione desiderata del sistema.</para>
<para>Un grande numero di sviluppatori da tutto il mondo contribuisce al
miglioramento di BSD. Essi sono divisi in tre grandi gruppi:</para>
<itemizedlist>
<listitem>
<para>I <firstterm>contributor</firstterm> scrivono codice o
documentazione. Non gli è permesso di effettuare il commit
(aggiungere codice) direttamente all'albero dei sorgenti.
Affinché il loro codice sia incluso nel sistema, esso
deve essere rivisto e controllato da uno sviluppatore registrato,
noto come <emphasis>committer</emphasis>.</para>
</listitem>
<listitem>
<para>I <firstterm>committer</firstterm> sono sviluppatori
con accesso in scrittura all'albero dei sorgenti.
Per poter divenire un committer, un individuo deve dimostrare
abilità nell'area nella quale è attivo.</para>
<para>
È a discrezione del committer la volontà di
confrontarsi con qualcuno prima di effettuare cambiamenti. In
generale, un committer con esperienza può effettuare
cambiamenti che sono ovviamente corretti senza interrogare nessuno.
Ad esempio, un committer del progetto di documentazione può
correggere errori tipografici o grammaticali senza un confronto con
altri. D'altro canto, dagli sviluppatori che stanno per effettuare
cambiamenti profondi o complessi ci si aspetta che sottopongano i
cambiamenti a revisione prima di renderli effettivi. In casi
estremi, un membro del core team, con una funzione simile a un Capo
Architetto, può ordinare che i cambiamenti siano rimossi
dall'albero, un processo noto come <firstterm>marcia
indietro</firstterm>.
Tutti i committer ricevono una lettera che descrive ogni
modifica individuale, dunque non è possibile effettuare un
commit segretamente.</para>
</listitem>
<listitem>
<para>Il <firstterm>Core Team</firstterm>. FreeBSD e NetBSD
hanno ognuno un core team che gestisce il progetto. I
core team si sono modificati nel corso del progetto, ed i loro
ruoli non sempre sono ben definiti. Non è necessario essere
uno sviluppatore per far parte del core team, anche se è
normale che sia così. Le regole
per il core team variano da un progetto ad un altro, ma in
generale chi ne fa parte ha più autorità
nell'indirizzamento del progetto rispetto agli altri membri.</para>
</listitem>
</itemizedlist>
<para>Questa organizzazione differisce da Linux in vari modi:</para>
<orderedlist>
<listitem>
<para>Nessuna persona controlla il contenuto del sistema. In
pratica, questa differenza è sopravvalutata, poiché
il Capo Architetto può richiedere che il codice sia
rimosso, ed anche nel progetto Linux viene permesso a
molte persone di effettuare cambiamenti.</para>
</listitem>
<listitem>
<para>D'altra parte, <emphasis>c'è</emphasis> un deposito
centrale, un punto singolo dove è possibile trovare i
sorgenti dell'intero sistema, incluse tutte le vecchie
versioni.</para>
</listitem>
<listitem>
<para>I progetti BSD mantengono l'intero <quote>Sistema
Operativo</quote>, non solo il kernel. Questa distinzione
è utile solo marginalmente: né BSD né Linux
sono utili senza applicazioni. Le applicazioni usate su BSD sono
spesso le stesse usate su Linux.</para>
</listitem>
<listitem>
<para>Come risultato di un mantenimento formalizzato
di un singolo CVS per l'albero dei sorgenti, lo sviluppo di BSD
è chiaro, ed è possibile accedere ad ogni versione del
sistema dal numero di release o dalla data.
Il CVS permette anche aggiornamenti incrementali del sistema: ad
esempio, il repository di FreeBSD viene aggiornato più o meno
100 volte al giorno. La maggior parte dei cambiamenti sono
piccoli.</para>
</listitem>
</orderedlist>
</sect2>
<sect2>
<title>Release di BSD</title>
<para>FreeBSD, NetBSD and OpenBSD forniscono il sistema in tre
<quote>release</quote> differenti. Come per Linux, alle release
vengono assegnati dei numeri come 1.4.1 o 3.5. Inoltre, il numero di
versione ha un suffisso che indica il suo scopo:</para>
<orderedlist>
<listitem>
<para>la versione di sviluppo del sistema è chiamata
<firstterm>CURRENT</firstterm>. FreeBSD assegna un numero
alla CURRENT, ad esempio FreeBSD 5.0-CURRENT. NetBSD usa uno
schema di denominazione leggermente differente
ed aggiunge un suffisso di una singola lettera che indica
i cambiamenti nell'interfaccia interna, ad esempio NetBSD
1.4.3G. OpenBSD non assegna un numero
(<quote>OpenBSD-current</quote>).
Tutti gli sviluppi del sistema vanno in questo ramo.</para>
</listitem>
<listitem>
<para>A intervalli regolari, tra le due e le quattro volte all'anno, i
progetti fanno uscire una versione <firstterm>RELEASE</firstterm>
del sistema, disponibile su CD-ROM e come libero download da siti
FTP, ad esempio OpenBSD 2.6-RELEASE o NetBSD 1.4-RELEASE.
La versione RELEASE è intesa per gli utenti finali ed
è la versione normale del sistema. NetBSD fornisce anche
<emphasis>patch release</emphasis>, versioni con solo piccole
correzioni, con una terza cifra, ad esempio NetBSD 1.4.2.</para>
</listitem>
<listitem>
<para>Quando vengono trovati dei bug in una versione RELEASE,
vengono corretti, e le correzioni vengono aggiunte all'albero del
CVS. In FreeBSD, la versione risultante viene detta
<firstterm>STABLE</firstterm>, mentre in NetBSD ed OpenBSD continua
a chiamarsi RELEASE. Caratteristiche minori possono essere aggiunte
a questo ramo dopo un periodo di test nel ramo CURRENT.</para>
</listitem>
</orderedlist>
<para><emphasis>In contrasto, Linux mantiene due alberi di codice
differenti: la versione stabile e la versione di sviluppo.
Le versioni stabili hanno un numero di versione pari, come 2.0, 2.2 o
2.4. Le versioni di sviluppo hanno numero di versione dispari, come
2.1, 2.3 o 2.5. In ogni caso, il numero è seguito da un
ulteriore numero che indica la versione esatta. Inoltre, ogni
venditore aggiunge i suoi programmi utente o le sue utilità,
dunque anche il nome della distribuzione è importante. Ogni
venditore di distribuzione assegna anche un numero di versione alla
distribuzione, dunque una descrizione completa dovrebbe essere una
cosa del tipo <quote>TurboLinux 6.0 con kernel
2.2.14</quote></emphasis></para>
</sect2>
<sect2>
<title>Quali versioni di BSD sono disponibili?</title>
<para>In contrasto alle numerose distribuzioni Linux, ci sono solo
quattro BSD open source. Ogni progetto BSD mantiene il suo albero dei
sorgenti ed il suo kernel. In pratica, comunque, ci sono meno
divergenze tra i codici dei programmi utente dei vari progetti di quante
ce ne siano in Linux.</para>
<para>È difficile catalogare gli obiettivi di ogni progetto:
le differenze sono molto soggettive. Di base,</para>
<itemizedlist>
<listitem>
<para>FreeBSD punta alle alte prestazioni e alla facilità d'uso
per l'utente finale, ed è molto usato dai fornitori di
contenuti web. Funziona su diverse piattaforme, inclusi i sistemi
basati su i386 (<quote>PC</quote>), i sistemi basati sui processori
AMD a 64-bit, i sistemi basati su &ultrasparc;, i sistemi basati su
processori Alpha della Compaq e i sistemi basati sulle specifiche
NEC PC-98. Il progetto FreeBSD ha nettamente più utenti degli
altri.</para>
</listitem>
<listitem>
<para>NetBSD punta alla massima portabilità: <quote>of course
it runs NetBSD</quote>, ovviamente ci gira NetBSD.
Funziona su macchine che vanno dai palmtop ai grossi
server, ed è anche stato usato dalla NASA in alcune missioni
spaziali. È una scelta particolarmente buona per il vecchio
hardware non Intel.</para>
</listitem>
<listitem>
<para>OpenBSD punta alla sicurezza e alla purezza del codice: usa una
combinazione dei concetti open source e un rigoroso controllo
del codice per creare un sistema la cui correttezza sia
dimostrabile, rendendolo la scelta di organizzazioni attente alla
sicurezza come banche, borse e dipartimenti del governo
statunitense.
Come NetBSD, funziona su un gran numero di piattaforme.</para>
</listitem>
<listitem>
<para>DragonFlyBSD punta ad alte prestazioni e scalabilità sotto
qualsiasi sistema dal singolo sistema mono-processore al sistema
massicciamente clasterizzato. DragonFlyBSD ha diversi obbiettivi a
lungo termine, anche se è concentrato nel fornire un'infrastruttura
SMP facile da capire, mantenere e sviluppare.</para>
</listitem>
</itemizedlist>
<para>Ci sono anche altri due sistemi operativi BSD che non sono open
source, BSD/OS e il &macos; X della Apple:</para>
<itemizedlist>
<listitem>
<para>BSD/OS fu il pù antico dei derivati di 4.4BSD.
Non fu open source, anche se le licenze per il codice sorgente
erano disponibili ad un costo relativamente basso.
Per molti aspetti assomiglia a FreeBSD. Due anni dopo
l'acquisizione di BSDi da parte di Wind River Systems,
BSD/OS non riuscii a sopravvivere come prodotto indipendete.
Supporto e codice sorgente sono ancora disponibili da Wind River,
anche se tutto il nuovo sviluppo è concentrato sul
sistema operativo embedded VxWorks.</para>
</listitem>
<listitem>
<para><link xlink:href="http://www.apple.com/macosx/server/">&macos;
X</link> è l'ultima versione del sistema operativo per
la linea &macintosh; della <link xlink:href="http://www.apple.com/">Apple
Computer Inc.</link>. L'anima BSD &unix; di questo sistema
operativo, <link xlink:href="http://developer.apple.com/darwin/">Darwin</link>, è
disponibile come un sistema operativo open source completamente
funzionante per computer x86 e PPC. Il sistema grafico Aqua/Quartz
e molti altri aspetti proprietari di &macos; X rimangono comunque
closed source. Numerosi sviluppatori di Darwin sono anche
committer di FreeBSD, e viceversa.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Come differisce la licenza BSD dalla GNU Public?</title>
<para>Linux è disponibile con licenza <link xlink:href="http://www.fsf.org/copyleft/gpl.html">GNU General Public
License</link> (GPL), che è pensata per eliminare il software
closed source. In particolare, ogni lavoro derivante da un prodotto
rilasciato sotto GPL deve essere fornito anche con il codice sorgente,
se richiesto. Al contrario, la <link xlink:href="http://www.opensource.org/licenses/bsd-license.html">licenza
BSD</link> è meno restrittiva: le distribuzioni dei soli
binari sono permesse. Ciò è particolarmente attraente per
le applicazioni embedded.</para>
</sect2>
<sect2>
<title>Cos'altro dovrei sapere?</title>
<para>Poiché sono disponibili meno applicazioni per BSD che per
Linux, gli sviluppatori BSD hanno creato un pacchetto di
compatibilità con Linux, che permette ai programmi per Linux di
funzionare su BSD. Il pacchetto include sia modifiche al kernel, in
modo da permettere l'esecuzione corretta di chiamate di sistema
Linux, che file di compatibilità, come la libreria C. Non
c'è una differenza notevole nella velocità di esecuzione
tra una applicazione in esecuzione su una macchina Linux ed una
applicazione in esecuzione su una macchina BSD con pari
caratteristiche.</para>
<para>La natura <quote>tutto da una sola fonte</quote> di BSD fa sì
che gli aggiornamenti siano molto più semplici da gestire
rispetto alla maggior parte dei casi in Linux. BSD gestisce gli
aggiornamenti della versione di libreria fornendo moduli di
compatibilità per le versioni precedenti, dunque è
possibile eseguire binari di parecchi anni prima senza problemi.</para>
</sect2>
<sect2>
<title>Cosa dovrei usare, BSD o Linux?</title>
<para>Cosa significa tutto questo in pratica? Chi dovrebbe usare BSD, chi
dovrebbe usare Linux?</para>
<para>Questa è una domanda molto difficile a cui rispondere. Qui
ci sono alcune linee guida:</para>
<itemizedlist>
<listitem>
<para><quote>Se non è rotto, non aggiustarlo</quote>: se usi
già un sistema operativo open source, e ne sei soddisfatto,
probabilmente non c'è ragione di cambiare.</para>
</listitem>
<listitem>
<para>I sistemi BSD, in particolare FreeBSD, possono avere prestazioni
notevolmente migliori di Linux. Ma questo non avviene in tutti i
campi. In molti casi, c'è una differenza minima nelle
prestazioni. In alcuni casi, Linux può comportarsi meglio di
FreeBSD.</para>
</listitem>
<listitem>
<para>In generale, i sistemi BSD hanno una reputazione migliore di
affidabilità, principalmente come risultato di una base di
codice più maturo.</para>
</listitem>
<listitem>
<para>I progetti BSD hanno una reputazione migliore per quanto
concerne qualità e completezza della loro documentazione.
I diversi progetti di documentazione mirano a fornire attivamente
documentazione aggiornata, in molte lingue, e coprendo tutti
gli aspetti del sistema.</para>
</listitem>
<listitem>
<para>La licenza BSD può essere più attraente della
GPL.</para>
</listitem>
<listitem>
<para>BSD può eseguire la maggior parte dei binari Linux,
mentre Linux non può eseguire i binari BSD. Molte
implementazioni di BSD possono anche eseguire i binari di altri
sistemi di tipo &unix;. Come risultato, BSD può
rappresentare un percorso di migrazione più semplice da
altri sistemi rispetto a Linux.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Chi fornisce supporto, servizi, e training su BSD?</title>
<para>BSDi / <link xlink:href="http://www.freebsdmall.com">FreeBSD
Mall, Inc.</link> forniscono contratti di supporto per
FreeBSD da quasi un decennio.</para>
<para>Inoltre, ognuno dei progetti ha una lista di consulenti a pagamento:
<link xlink:href="&url.base;/commercial/consult_bycat.html">FreeBSD</link>,
<link xlink:href="http://www.netbsd.org/gallery/consultants.html">NetBSD</link>,
e <link xlink:href="http://www.openbsd.org/support.html">OpenBSD</link>.</para>
</sect2>
</sect1>
</article>

View file

@ -1,18 +0,0 @@
#
# $FreeBSD$
#
# Articolo: Filtering Bridges
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?=gz
INSTALL_ONLY_COMPRESSED?=
SRCS= article.xml
URL_RELPREFIX?= ../../../..
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

View file

@ -1,429 +0,0 @@
<?xml version="1.0" encoding="iso-8859-15"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<!--
The FreeBSD Italian Documentation Project
$FreeBSD$
Original revision: 1.21
-->
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="it">
<info><title>Filtering Bridges</title>
<authorgroup>
<author><personname><firstname>Alex</firstname><surname>Dupre</surname></personname><affiliation>
<address><email>ale@FreeBSD.org</email></address>
</affiliation></author>
</authorgroup>
<legalnotice xml:id="trademarks" role="trademarks">
&tm-attrib.freebsd;
&tm-attrib.3com;
&tm-attrib.intel;
&tm-attrib.general;
</legalnotice>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
<abstract>
<para>Spesso è utile dividere una rete fisica (come una Ethernet)
in due segmenti separati, senza dover creare sottoreti e usare un router
per collegarli assieme. Il dispositivo che collega due reti insieme in
questo modo è chiamato bridge. Un sistema FreeBSD con due
interfacce di rete è sufficiente per raggiungere lo scopo.</para>
<para>Un bridge funziona individuando gli indirizzi del livello
<acronym>MAC</acronym> (indirizzi Ethernet) dei dispositivi collegati ad
ognuna delle sue interfacce di rete e inoltrando il traffico tra le due
reti solo se il mittente e il destinatario si trovano su segmenti
differenti. Sotto molti punti di vista un brigde è simile a uno
switch Ethernet con solo due porte.</para>
</abstract>
</info>
<sect1 xml:id="filtering-bridges-why">
<title>Perché usare un filtering bridge?</title>
<para>Sempre più frequentemente, grazie all'abbassamento dei costi
delle connessioni a banda larga (xDSL) e a causa della riduzione del
numero di indirizzi IPv4 disponibili, molte società si ritrovano
collegate ad Internet 24 ore su 24 e con un numero esiguo (a volte nemmeno
una potenza di 2) di indirizzi IP. In situazioni come queste spesso
è desiderabile avere un firewall che regoli i permessi di ingresso
e uscita per il traffico da e verso Internet, ma una soluzione basata
sulle funzionalità di packet filtering dei router può non
essere applicabile, vuoi per problemi di suddivisione delle sottoreti,
vuoi perché il router è di proprietà del fornitore di
accesso (<acronym>ISP</acronym>), vuoi perché il router non
supporta tali funzionalità. È in questi casi che l'utilizzo
di un filtering bridge diventa altamente consigliato.</para>
<para>Un firewall basato su bridge può essere configurato e inserito
direttamente tra il router xDSL e il vostro hub/switch Ethernet senza
alcun problema di assegnazione di indirizzi IP.</para>
<note>
<para>La traduzione italiana di <quote>firewall</quote> è
<quote>muro anti incendio</quote>, <emphasis>non</emphasis>
<quote>muro di fuoco</quote> come molti pensano. Nel corso
dell'articolo, comunque, manterrò i termini tecnici nella loro
lingua originale in modo da non creare confusione o
ambiguità.</para>
</note>
</sect1>
<sect1 xml:id="filtering-bridges-how">
<title>Metodi d'installazione</title>
<para>Aggiungere le funzionalità di bridge a una macchina FreeBSD non
è difficile. Dalla release 4.5 è possibile caricare tali
funzionalità come moduli anziché dover ricompilare il
kernel, semplificando di gran lunga la procedura. Nelle prossime
sottosezioni spiegherò entrambi i metodi di installazione.</para>
<important>
<para><emphasis>Non</emphasis> seguite entrambe le istruzioni: le
procedure sono <emphasis>a esclusione</emphasis>. Scegliete
l'alternativa che meglio si adatta alle vostre esigenze e
capacità.</para>
</important>
<para>Prima di continuare è necessario assicurarsi di avere almeno
due schede di rete Ethernet che supportino la modalità promiscua
sia in ricezione che in trasmissione, difatti devono essere in grado di
inviare pacchetti Ethernet con qualunque indirizzo, non solo il loro.
Inoltre, per avere un buon rendimento, le schede dovrebbero essere di
tipo PCI bus mastering. Le scelte migliori sono ancora le Intel
&etherexpress; Pro seguite dalle &tm.3com; 3c9xx subito dopo. Per
comodità nella configurazione del firewall può essere
utile avere due schede di marche differenti (che usino drivers
differenti) in modo da distinguere chiaramente quale interfaccia sia
collegata al router e quale alla rete interna.</para>
<sect2 xml:id="filtering-bridges-kernel">
<title>Configurazione del Kernel</title>
<para>Così avete deciso di utilizzare il più vecchio e
collaudato metodo di installazione. Per prima cosa bisogna
aggiungere le seguenti righe al file di configurazione del
kernel:</para>
<programlisting>options BRIDGE
options IPFIREWALL
options IPFIREWALL_VERBOSE</programlisting>
<para>La prima riga serve a compilare il supporto per il bridge, la
seconda il firewall e la terza le funzioni di logging del firewall.
</para>
<para>Adesso è necessario compilare e installare il nuovo kernel.
Si possono trovare le istruzioni nella sezione <link xlink:href="&url.books.handbook;/kernelconfig-building.html">
Building and Installing a Custom Kernel</link> dell'handbook.</para>
</sect2>
<sect2 xml:id="filtering-bridges-modules">
<title>Caricamento dei Moduli</title>
<para>Se avete deciso di usare il nuovo e più semplice metodo di
installazione, l'unica cosa da fare è aggiungere la seguente riga
al file <filename>/boot/loader.conf</filename>:</para>
<programlisting>bridge_load="YES"</programlisting>
<para>In questo modo all'avvio della macchina verrà caricato
insieme al kernel anche il modulo <filename>bridge.ko</filename>. Non
è necessario invece aggiungere una riga per il modulo
<filename>ipfw.ko</filename> in quanto verrà caricato in
automatico dallo script <filename>/etc/rc.network</filename> dopo aver
seguito i passi della prossima sezione.</para>
</sect2>
</sect1>
<sect1 xml:id="filtering-bridges-finalprep">
<title>Preparativi finali</title>
<para>Prima di riavviare per caricare il nuovo kernel o i moduli richiesti
(a seconda del metodo che avete scelto in precedenza), bisogna effettuare
alcune modifiche al file <filename>/etc/rc.conf</filename>. La regola di
default del firewall è di rifiutare tutti i pacchetti IP. Per
iniziare attiviamo il firewall in modalità <option>open</option>,
in modo da verificare il suo funzionamento senza alcun problema di
filtraggio pacchetti (nel caso stiate eseguendo questa procedura da
remoto, tale accorgimento vi consentirà di non rimanere
erroneamente tagliati fuori dalla rete).
Inserite queste linee nel file <filename>/etc/rc.conf</filename>:</para>
<programlisting>firewall_enable="YES"
firewall_type="open"
firewall_quiet="YES"
firewall_logging="YES"</programlisting>
<para>La prima riga serve ad attivare il firewall (e a caricare il modulo
<filename>ipfw.ko</filename> nel caso non fosse già compilato nel
kernel), la seconda a impostarlo in modalità
<option>open</option> (come descritto nel file
<filename>/etc/rc.firewall</filename>), la terza a non
visualizzare il caricamento delle regole e la quarta ad abilitare il
supporto per il logging.</para>
<para>Per quanto riguarda la configurazione delle interfacce di rete, il
metodo più utilizzato è quello di assegnare un IP a solo una
delle schede di rete, ma il bridge funziona egualmente anche se entrambe o
nessuna delle interfacce ha IP settati. In quest'ultimo caso (IP-less) la
macchina bridge sarà ancora più nascosta in quanto
inaccessibile dalla rete: per configurarla occorrerà quindi entrare
da console o tramite una terza interfaccia di rete separata dal bridge. A
volte all'avvio della macchina qualche programma richiede di accedere alla
rete, per esempio per una risoluzione di dominio: in questo caso è
necessario assegnare un IP all'interfaccia esterna (quella collegata a
Internet, dove risiede il server <acronym>DNS</acronym>), visto che il
bridge verrà attivato alla fine della procedura di avvio. Questo
vuol dire che l'interfaccia <filename>fxp0</filename> (nel nostro
caso) deve essere menzionata nella sezione ifconfig del file
<filename>/etc/rc.conf</filename>, mentre la <filename>xl0</filename>
no. Assegnare IP a entrambe le schede di rete non ha molto senso, a meno
che durante la procedura di avvio non si debba accedere a servizi presenti
su entrambi i segmenti Ethernet.</para>
<para>C'è un'altra cosa importante da sapere. Quando si utilizza IP
sopra Ethernet ci sono due protocolli Ethernet in uso: uno è IP,
l'altro è <acronym>ARP</acronym>. <acronym>ARP</acronym> permette
la conversione dell'indirizzo IP di una macchina nel suo indirizzo
Ethernet (livello <acronym>MAC</acronym>). Affinché due macchine
separate dal bridge riescano a comunicare tra loro è necessario che
il bridge lasci passare i pacchetti <acronym>ARP</acronym>. Tale
protocollo non fa parte del livello IP, visto che è presente solo
con IP sopra Ethernet. Il firewall di FreeBSD agisce esclusivamente sul
livello IP e quindi tutti i pacchetti non IP (compreso
<acronym>ARP</acronym>) verranno inoltrati senza essere filtrati, anche se
il firewall è configurato per non lasciar passare nulla.</para>
<para>Ora è arrivato il momento di riavviare la macchina e usarla
come in precedenza: appariranno dei nuovi messaggi riguardo al bridge e al
firewall, ma il bridge non sarà attivato e il firewall, essendo in
modalità <option>open</option>, non impedirà nessuna
operazione.</para>
<para>Se ci dovessero essere dei problemi, è il caso di scoprire ora
da cosa derivino e risolverli prima di continuare.</para>
</sect1>
<sect1 xml:id="filtering-bridges-enabling">
<title>Attivazione del Bridge</title>
<para>A questo punto, per attivare il bridge, bisogna eseguire i seguenti
comandi (avendo l'accortezza di sostituire i nomi delle due interfacce di
rete <filename>fxp0</filename> e <filename>xl0</filename> con i
propri):</para>
<screen>&prompt.root; <userinput>sysctl net.link.ether.bridge.config=fxp0:0,xl0:0</userinput>
&prompt.root; <userinput>sysctl net.link.ether.bridge.ipfw=1</userinput>
&prompt.root; <userinput>sysctl net.link.ether.bridge.enable=1</userinput></screen>
<para>La prima riga specifica tra quali interfacce va attivato il bridge,
la seconda abilita il firewall sul bridge ed infine la terza attiva il
bridge.</para>
<note>
<para>Se hai &os;&nbsp;5.1-RELEASE o precedenti le variabili sysctl
sono chiamate in modo differente. Guarda &man.bridge.4; per i
dettagli.</para>
</note>
<para>A questo punto dovrebbe essere possibile inserire la macchina tra
due gruppi di host senza che venga compromessa qualsiasi
possibilità di comunicazione tra di loro. Se è così,
il prossimo passo è quello di aggiungere le parti
<literal>net.link.ether.bridge.[blah]=[blah]</literal>
di queste righe al file <filename>/etc/sysctl.conf</filename>, in modo che
vengano eseguite all'avvio della macchina.</para>
</sect1>
<sect1 xml:id="filtering-bridges-ipfirewall">
<title>Configurazione del Firewall</title>
<para>Ora è arrivato il momento di creare il proprio file con le
regole per il firewall, in modo da rendere sicura la rete interna.
Ci sono delle complicazioni nel fare questo, perché non tutte le
funzionalità del firewall sono disponibili sui pacchetti inoltrati
dal bridge. Inoltre, c'è una differenza tra i pacchetti che stanno
per essere inoltrati dal bridge e quelli indirizzati alla macchina locale.
In generale, i pacchetti che entrano nel bridge vengono processati dal
firewall solo una volta, non due come al solito; infatti vengono filtrati
solo in ingresso, quindi qualsiasi regola che usi <option>out</option>
oppure <option>xmit</option> non verrà mai eseguita. Personalmente
uso <option>in via</option> che è una sintassi più antica,
ma che ha un senso quando la si legge.
Un'altra limitazione è che si possono usare solo i comandi
<option>pass</option> e <option>drop</option> per i pacchetti filtrati
dal bridge. Cose avanzate come <option>divert</option>,
<option>forward</option> o <option>reject</option> non sono disponibili.
Queste opzioni possono ancora essere usate, ma solo per il traffico da
e verso la macchina bridge stessa (sempre che le sia stato assegnato
un IP).</para>
<para>Nuovo in FreeBSD 4.0 è il concetto di stateful filtering.
Questo è un grande miglioramento per il traffico
<acronym>UDP</acronym>, che consiste tipicamente di una richiesta in
uscita, seguita a breve termine da una risposta con la stessa coppia di
indirizzi IP e numeri di porta (ma con mittente e destinatario invertiti,
ovviamente). Per i firewall che non supportano il mantenimento di stato,
non c'è modo di gestire questo breve scambio di dati come una
sessione unica. Ma con un firewall che può
<quote>ricordarsi</quote> di un pacchetto <acronym>UDP</acronym> in
uscita e permette una risposta nei minuti successivi, gestire i
servizi <acronym>UDP</acronym> è semplice.
L'esempio seguente mostra come fare. La stessa cosa è
possibile farla con i pacchetti <acronym>TCP</acronym>. Questo
permette di evitare qualche tipo di attacco denial of service e altri
sporchi trucchi, ma tipicamente fa anche crescere velocemente la
tabella di stato.</para>
<para>Vediamo un esempio di configurazione. Bisogna notare che all'inizio
del file <filename>/etc/rc.firewall</filename> ci sono già delle
regole standard per l'interfaccia di loopback
<filename>lo0</filename>, quindi non ce ne occuperemo più ora.
Le regole personalizzate andrebbero messe in un file a parte (per esempio
<filename>/etc/rc.firewall.local</filename>) e caricate all'avvio
modificando la riga del file <filename>/etc/rc.conf</filename> dove era
stata definita la modalità <option>open</option> con:</para>
<programlisting>firewall_type="/etc/rc.firewall.local"</programlisting>
<important>
<para>Bisogna specificare il path <emphasis>completo</emphasis>
del file, altrimenti non verrà caricato con il rischio di
rimanere tagliati fuori dalla rete.</para>
</important>
<para>Per il nostro esempio immaginiamo di avere l'interfaccia
<filename>fxp0</filename> collegata all'esterno (Internet) e la
<filename>xl0</filename> verso l'interno (<acronym>LAN</acronym>).
La macchina bridge ha assegnato l'IP
<systemitem class="ipaddress">1.2.3.4</systemitem>
(è impossibile che il vostro <acronym>ISP</acronym> vi assegni un
indirizzo simile a questo, ma per l'esempio va bene).</para>
<programlisting># Le connessioni di cui abbiamo mantenuto lo stato vengono fatte passare subito
add check-state
# Esclude le reti locali definite nell'RFC 1918
add drop all from 10.0.0.0/8 to any in via fxp0
add drop all from 172.16.0.0/12 to any in via fxp0
add drop all from 192.168.0.0/16 to any in via fxp0
# Permette alla macchina bridge di connettersi con chi vuole
# (se la macchina è IP-less non includere questi comandi)
add pass tcp from 1.2.3.4 to any setup keep-state
add pass udp from 1.2.3.4 to any keep-state
add pass ip from 1.2.3.4 to any
# Permette agli host della rete interna di connettersi con chi vogliono
add pass tcp from any to any in via xl0 setup keep-state
add pass udp from any to any in via xl0 keep-state
add pass ip from any to any in via xl0
# Sezione TCP
# Permette SSH
add pass tcp from any to any 22 in via fxp0 setup keep-state
# Permette SMTP solo verso il mail server
add pass tcp from any to relay 25 in via fxp0 setup keep-state
# Permette i trasferimenti di zona solo dal name server secondario [dns2.nic.it]
add pass tcp from 193.205.245.8 to ns 53 in via fxp0 setup keep-state
# Lascia passare i controlli ident:
# è meglio che aspettare che vadano in timeout
add pass tcp from any to any 113 in via fxp0 setup keep-state
# Permette connessioni nel range di "quarantena".
add pass tcp from any to any 49152-65535 in via fxp0 setup keep-state
# Sezione UDP
# Permette DNS solo verso il name server
add pass udp from any to ns 53 in via fxp0 keep-state
# Permette connessioni nel range di "quarantena".
add pass udp from any to any 49152-65535 in via fxp0 keep-state
# Sezione ICMP
# Abilita le funzioni di 'ping'
add pass icmp from any to any icmptypes 8 keep-state
# Permette il passaggio dei messaggi di errori del comando 'traceroute'
add pass icmp from any to any icmptypes 3
add pass icmp from any to any icmptypes 11
# Tutto il resto è sospetto
add drop log all from any to any</programlisting>
<para>Coloro che hanno configurato un firewall in precedenza potrebbero aver
notato che manca qualcosa. In particolare, non ci sono regole contro lo
spoofing, difatti <emphasis>non</emphasis> abbiamo aggiunto:</para>
<programlisting>add deny all from 1.2.3.4/8 to any in via fxp0</programlisting>
<para>Ovvero, non far entrare dall'esterno pacchetti che affermano di venire
dalla rete interna. Questa è una cosa che solitamente viene fatta
per essere sicuri che qualcuno non provi a eludere il packet filter,
generando falsi pacchetti che sembrano venire dall'interno. Il problema
è che c'è <emphasis>almeno</emphasis> un host
sull'interfaccia esterna che non si può ignorare: il router.
Solitamente, però, gli <acronym>ISP</acronym> eseguono il controllo
anti-spoof sui loro router e quindi non ce ne dobbiamo preoccupare.</para>
<para>L'ultima riga sembra un duplicato della regola di default, ovvero non
far passare nulla che non sia stato specificatamente permesso. In
verità c'è una differenza: tutto il traffico sospetto
verrà loggato.</para>
<para>Ci sono due regole per permettere il traffico <acronym>SMTP</acronym>
e <acronym>DNS</acronym> verso il mail server e il name server, se ne
avete. Ovviamente l'intero set di regole deve essere personalizzato
per le proprie esigenze, questo non è altro che uno specifico
esempio (il formato delle regole è spiegato dettagliatamente nella
man page &man.ipfw.8;). Bisogna notare che, affinché
<quote>relay</quote> e <quote>ns</quote>
siano interpretati correttamente, la risoluzione dei nomi deve funzionare
<emphasis>prima</emphasis> che il bridge sia attivato. Questo è un
chiaro esempio che dimostra l'importanza di settare l'IP sulla corretta
scheda di rete. In alternativa è possibile specificare
direttamente l'indirizzo IP anziché il nome host (cosa necessaria
se la macchina è IP-less).</para>
<para>Le persone che sono solite configurare un firewall probabilmente
avranno sempre usato una regola <option>reset</option> o
<option>forward</option> per i pacchetti
ident (porta 113 <acronym>TCP</acronym>). Sfortunatamente, questa non
è una scelta applicabile con il bridge, quindi la cosa migliore
è lasciarli passare fino alla destinazione. Finché la
macchina di destinazione non ha un demone ident attivo, questa tecnica
è relativamente sicura. L'alternativa è proibire le
connessioni sulla porta 113, creando qualche problema con servizi tipo
<acronym>IRC</acronym> (le richieste ident devono andare in
timeout).</para>
<para>L'unica altra cosa un po' particolare che potete aver notato è
che c'è una regola per lasciar comunicare la macchina bridge e
un'altra per gli host della rete interna. Ricordate che questo è
dovuto al fatto che i due tipi di traffico prendono percorsi differenti
attraverso il kernel e di conseguenza anche dentro il packet filter. La
rete interna passerà attraverso il bridge, mentre la macchina
locale userà il normale stack IP per le connessioni. Perciò
due regole per gestire due casi differenti. Le regole <literal>in via
fxp0</literal> funzionano in entrambi i casi.
In generale, se usate regole <option>in via</option> attraverso il
packet filter, dovrete fare un'eccezione per i pacchetti generati
localmente, in quanto non entrano tramite nessuna interfaccia.</para>
</sect1>
<sect1 xml:id="filtering-bridges-contributors">
<title>Contributi</title>
<para>Alcune parti di questo articolo sono state prese, tradotte e
adattate da testi sui bridge, appartenenti alla documentazione di FreeBSD
in lingua inglese, a cura di Nick Sayer e Steve Peterson.</para>
<para>Un grosso ringraziamento va a Luigi Rizzo per l'implementazione
delle funzionalità di bridging in FreeBSD e per il tempo che mi ha
dedicato rispondendo ad alcune mie domande a riguardo.</para>
</sect1>
</article>

View file

@ -1,18 +0,0 @@
#
# $FreeBSD$
#
# Articolo: Per chi e' alle Prime Armi sia con FreeBSD che con Unix
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?=gz
INSTALL_ONLY_COMPRESSED?=
SRCS= article.xml
URL_RELPREFIX?= ../../../..
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

File diff suppressed because it is too large Load diff

View file

@ -1,22 +0,0 @@
#
# $FreeBSD$
#
# Articolo: Elementi di progettazione del sistema di VM di FreeBSD
DOC?= article
FORMATS?= html
WITH_ARTICLE_TOC?= YES
SRCS= article.xml
IMAGES_EN = fig1.eps
IMAGES_EN+= fig2.eps
IMAGES_EN+= fig3.eps
IMAGES_EN+= fig4.eps
INSTALL_COMPRESSED?=gz
INSTALL_ONLY_COMPRESSED?=
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,6 @@
# $FreeBSD$
SUBDIR = handbook
SUBDIR+= unix-introduction
ROOT_SYMLINKS= handbook

View file

@ -1,43 +0,0 @@
#
# $FreeBSD$
#
# Crea l'Introduzione a Unix.
#
MAINTAINER= ale@FreeBSD.org
DOC?= book
FORMATS?= html-split
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
#
# SRCS lista i singoli files XML che compongono il documento. Modifiche
# a qualunque di questi files obbligano la ricreazione
#
# Contenuto XML
SRCS = book.xml
SRCS+= bibliography/chapter.xml
SRCS+= command-summary/chapter.xml
SRCS+= commands/chapter.xml
SRCS+= editors/chapter.xml
SRCS+= getting-started/chapter.xml
SRCS+= glossary/chapter.xml
SRCS+= history/chapter.xml
SRCS+= preface/chapter.xml
SRCS+= shell-programming/chapter.xml
SRCS+= shells/chapter.xml
SRCS+= special-features/chapter.xml
SRCS+= structure/chapter.xml
SRCS+= system-resource/chapter.xml
SRCS+= text-processing/chapter.xml
# Entities
SRCS+= chapters.ent
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

View file

@ -1,179 +0,0 @@
<?xml version="1.0" encoding="iso-8859-15"?>
<!--
The FreeBSD Italian Documentation Project
$FreeBSD$
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="bibliography">
<title>Una breve bibliografia Unix</title>
<table frame="all" xml:id="bibliography-table">
<title>Una breve bibliografia Unix</title>
<tgroup cols="4">
<colspec colwidth="3in"/>
<colspec colwidth="1.8in"/>
<colspec colwidth="1in"/>
<thead>
<row>
<entry align="center">Titolo</entry>
<entry align="center">Autori</entry>
<entry align="center">Editore</entry>
<entry align="center">Anno pub.</entry>
</row>
</thead>
<tbody>
<row>
<entry><emphasis>UNIX: concetti, strutture,
utilizzo</emphasis></entry>
<entry>James R. Groff, Paul N. Weinberg</entry>
<entry>Jackson</entry>
<entry>1988</entry>
</row>
<row>
<entry><emphasis>Guida completa Unix System V. Release
4</emphasis></entry>
<entry>Coffin Steven</entry>
<entry>Mc Graw Hill</entry>
<entry>1991</entry>
</row>
<row>
<entry><emphasis>Introduzione all'architettura di sistema
Unix</emphasis></entry>
<entry>Prabhat K. Andleigh</entry>
<entry>Jackson</entry>
<entry>1991</entry>
</row>
<row>
<entry><emphasis>Usare Unix senza fatica</emphasis></entry>
<entry>John R. Levine, Margaret Levine Young</entry>
<entry>Mc Graw Hill</entry>
<entry>1993</entry>
</row>
<row>
<entry><emphasis>La grande guida Unix</emphasis></entry>
<entry>John J. Valley</entry>
<entry>Jackson</entry>
<entry>1993</entry>
</row>
<row>
<entry><emphasis>Shell Unix guida alla
programmazione</emphasis></entry>
<entry>Arthur, Burns</entry>
<entry>Mc Graw Hill</entry>
<entry>1998</entry>
</row>
<row>
<entry><emphasis>Introduzione alla struttura interna di
Unix</emphasis></entry>
<entry>Le Van Huu</entry>
<entry>Unicopli</entry>
<entry>1998</entry>
</row>
<row>
<entry><emphasis>Unix guida completa</emphasis></entry>
<entry>Rosen, Host, Farber, Rosinski</entry>
<entry>Mc Graw Hill</entry>
<entry>1999</entry>
</row>
<row>
<entry><emphasis>Gestione del sistema operativo Unix</emphasis></entry>
<entry>Bruno Catalano, Ezio Raddi</entry>
<entry>Città Studi</entry>
<entry>2000</entry>
</row>
<row>
<entry><emphasis>Guida a Unix seconda edizione</emphasis></entry>
<entry>Hahn H.</entry>
<entry>Mc Graw Hill</entry>
<entry>2000</entry>
</row>
<row>
<entry><emphasis>I segreti di Unix Seconda edizione</emphasis></entry>
<entry>Armstrong James</entry>
<entry>Apogeo</entry>
<entry>2000</entry>
</row>
<row>
<entry><emphasis>Guida a Unix con Linux</emphasis></entry>
<entry>Jack Dent, Tony Gaddis</entry>
<entry>Apogeo</entry>
<entry>2001</entry>
</row>
<row>
<entry><emphasis>Introduzione a Unix</emphasis></entry>
<entry>David L. Schwartz</entry>
<entry>Apogeo</entry>
<entry>2001</entry>
</row>
<row>
<entry><emphasis>Unix manuale per l'amministratore di sistema - terza
edizione</emphasis></entry>
<entry>Nemeth Evi, Snyder Garth, Seebass Scott, Hein Trent</entry>
<entry>Pearson Education Italia</entry>
<entry>2002</entry>
</row>
</tbody>
</tgroup>
</table>
</chapter>

View file

@ -1,105 +0,0 @@
<?xml version="1.0" encoding="iso-8859-15"?>
<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters;
]>
<!--
The FreeBSD Italian Documentation Project
$FreeBSD$
-->
<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="it">
<info><title>Introduzione a Unix</title>
<author><personname><firstname>Frank G.</firstname><surname>Fiamingo</surname></personname><affiliation>
<address><email>fiamingo.1@osu.edu</email></address>
</affiliation></author>
<author><personname><firstname>Linda</firstname><surname>DeBula</surname></personname><affiliation>
<address><email>debula.2@osu.edu</email></address>
</affiliation></author>
<author><personname><firstname>Linda</firstname><surname>Condron</surname></personname><affiliation>
<address><email>condron.1@osu.edu</email></address>
</affiliation></author>
<pubdate>Settembre 1998</pubdate>
<copyright>
<year>1996</year>
<year>1997</year>
<year>1998</year>
<holder>University Technology Services, The Ohio State
University.</holder>
</copyright>
<legalnotice xml:id="legalnotice">
<para>&copy; 1996-1998 University Technology Services, The Ohio State
University, Baker Systems Engineering Building, 1971 Neil Avenue,
Columbus, OH 43210.</para>
<para>Tutti i diritti riservati. La ridistribuzione e l'uso, con o senza
modifiche, sono permesse purchè siano rispettate le seguenti
condizioni:</para>
<orderedlist>
<listitem>
<para>La ridistribuzione deve contenere la precedente nota di
copyright, questa lista di condizioni, e il seguente
disclaimer.</para>
</listitem>
<listitem>
<para>Né il nome dell'Università né i nomi dei
suoi contributori possono essere usati per appoggiare o promuovere
prodotti o servizi derivanti da questo documento senza un precedente
specifico permesso scritto.</para>
</listitem>
</orderedlist>
<para>QUESTA PUBBLICAZIONE VIENE FORNITA <quote>COSÌ
COM'È</quote> SENZA NESSUN TIPO DI GARANZIA. QUESTA
PUBBLICAZIONE PUÒ CONTENERE IMPRECISIONI TECNICHE O ERRORI
TIPOGRAFICI.</para>
<para>Unix è un marchio registrato della The Open Group, AT&amp;T
è un marchio registrato della American Telephone and Telegraph,
Inc.</para>
</legalnotice>
<releaseinfo>$FreeBSD$</releaseinfo>
<abstract>
&trans.it.mark;
<para>Questo documento introduce il vasto mondo dei sistemi operativi
Unix e lo fa in stile manualistico. Unix non è un sistema
operativo unico, come molti potrebbero pensare, bensì è
una grande famiglia di sistemi operativi (come ad esempio FreeBSD,
NetBSD, OpenBSD, BSD, AIX, System V, SunOS, varie distribuzioni di
Linux, ecc.), aventi comandi e caratteristiche simili e disponibili per
molte architetture hardware (come ad esempio x86, alpha, ecc.).</para>
<para>Copyright e URL rivisti nel Settembre 1998.</para>
</abstract>
</info>
&chap.preface;
&chap.history;
&chap.structure;
&chap.getting-started;
&chap.system-resource;
&chap.shells;
&chap.special-features;
&chap.text-processing;
&chap.commands;
&chap.shell-programming;
&chap.editors;
&chap.command-summary;
&chap.bibliography;
&chap.glossary;
</book>

View file

@ -1,28 +0,0 @@
<?xml version="1.0" encoding="iso-8859-15"?>
<!--
The FreeBSD Italian Documentation Project
Crea le entities per ogni capitolo dell'Introduzione a Unix.
Ogni entity è chiamata chap.foo, dove foo è il valore
dell'attributo id di quel capitolo, e corrisponde al nome della directory
nella quale il file sgml del capitolo è salvato.
I capitoli devono essere listati nell'ordine in cui sono referenziati.
$FreeBSD$
-->
<!ENTITY chap.preface SYSTEM "preface/chapter.xml">
<!ENTITY chap.history SYSTEM "history/chapter.xml">
<!ENTITY chap.structure SYSTEM "structure/chapter.xml">
<!ENTITY chap.getting-started SYSTEM "getting-started/chapter.xml">
<!ENTITY chap.system-resource SYSTEM "system-resource/chapter.xml">
<!ENTITY chap.shells SYSTEM "shells/chapter.xml">
<!ENTITY chap.special-features SYSTEM "special-features/chapter.xml">
<!ENTITY chap.text-processing SYSTEM "text-processing/chapter.xml">
<!ENTITY chap.commands SYSTEM "commands/chapter.xml">
<!ENTITY chap.shell-programming SYSTEM "shell-programming/chapter.xml">
<!ENTITY chap.editors SYSTEM "editors/chapter.xml">
<!ENTITY chap.command-summary SYSTEM "command-summary/chapter.xml">
<!ENTITY chap.bibliography SYSTEM "bibliography/chapter.xml">
<!ENTITY chap.glossary SYSTEM "glossary/chapter.xml">

View file

@ -1,671 +0,0 @@
<?xml version="1.0" encoding="iso-8859-15"?>
<!--
The FreeBSD Italian Documentation Project
$FreeBSD$
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="command-summary">
<title>Riassunto dei comandi Unix</title>
<sect1 xml:id="command-summary-">
<title>Comandi Unix</title>
<para>Nella tabella che segue vengono riassunti i comandi maggiormente usati
su un sistema Unix. In questa tabella, come in generale avviene, per
molti comandi Unix, <replaceable>file</replaceable> può essere un
nome di file, una lista di nomi di file o input/output che potrebbe essere
rediretto per o dal comando.</para>
<table frame="all" xml:id="command-summary-table">
<title>Comandi Unix</title>
<tgroup cols="2">
<colspec colwidth="4in"/>
<thead>
<row>
<entry align="center">Comando/Sintassi</entry>
<entry align="center">Cosa fa</entry>
</row>
</thead>
<tbody>
<row>
<entry><command>awk/nawk [opzioni]
file</command></entry>
<entry>esamina schemi in un file e processa i risultati</entry>
</row>
<row>
<entry><command>cat [opzioni]
file</command></entry>
<entry>concatena (lista) un file</entry>
</row>
<row>
<entry><command>cd
[directory]</command></entry>
<entry>cambia directory</entry>
</row>
<row>
<entry><command>chgrp [opzioni]
gruppo file</command></entry>
<entry>cambia il gruppo di appartenenza di un file</entry>
</row>
<row>
<entry><command>chmod [opzioni]
file</command></entry>
<entry>cambia i permessi di accesso a file o directory</entry>
</row>
<row>
<entry><command>chown [opzioni]
proprietario file</command></entry>
<entry>cambia il proprietario di un file; può essere solo
fatto dal super-user</entry>
</row>
<row>
<entry><command>chsh (passwd -e/-s) username
login_shell</command></entry>
<entry>cambia la shell di login dell'utente (spesso solamente
attraverso il super-user)</entry>
</row>
<row>
<entry><command>cmp [opzioni]
file1 file2</command></entry>
<entry>confronta due file e mostra dove avvengono le differenze
(file di testo e file binari)</entry>
</row>
<row>
<entry><command>compress [opzioni]
file</command></entry>
<entry>comprime il file specificato e lo salva con l'estensione
<filename>.Z</filename></entry>
</row>
<row>
<entry><command>cp [opzioni]
file1 file2</command></entry>
<entry>copia <filename>file1</filename>
in <filename>file2</filename>;
<filename>file2</filename> non dovrebbe
già esistere. Questo comando crea o sovrascrive
<filename>file2</filename></entry>
</row>
<row>
<entry><command>cut (opzioni)
[file]</command></entry>
<entry>taglia specifici campi/caratteri dalle linee del file
specificato</entry>
</row>
<row>
<entry><command>date
[opzioni]</command></entry>
<entry>riporta data e ora corrente</entry>
</row>
<row>
<entry><command>dd [if=infile]
[of=outfile]
[operando=valore]</command></entry>
<entry>copia un file, converte tra ASCII e EBCDIC o scambia l'ordine
di byte, come specificato</entry>
</row>
<row>
<entry><command>diff [opzioni]
file1 file2</command></entry>
<entry>confronta i due file e visualizza le differenze (solamente
file di testo)</entry>
</row>
<row>
<entry><command>df [opzioni]
[risorsa]</command></entry>
<entry>riporta il sommario dei blocchi del disco e degli inode
liberi e usati</entry>
</row>
<row>
<entry><command>du [opzioni]
[directory o
file]</command></entry>
<entry>riporta lo spazio di disco usato</entry>
</row>
<row>
<entry><command>echo
[stringa di testo]</command></entry>
<entry>riporta la stringa di testo specificata in standard
output</entry>
</row>
<row>
<entry><command>ed</command> o <command>ex
[opzioni]
file</command></entry>
<entry>editor a linea di comando</entry>
</row>
<row>
<entry><command>emacs [opzioni]
file</command></entry>
<entry>editor a schermo-pieno</entry>
</row>
<row>
<entry><command>expr
argomenti</command></entry>
<entry>valuta gli argomenti. Usato per l'aritmetica, ecc. in
shell</entry>
</row>
<row>
<entry><command>file [opzioni]
file</command></entry>
<entry>classifica il tipo di file</entry>
</row>
<row>
<entry><command>find directory
[opzioni]
[azioni]</command></entry>
<entry>cerca file basandosi sul tipo o su uno schema</entry>
</row>
<row>
<entry><command>finger [opzioni]
user[@nomehost]</command></entry>
<entry>riporta informazioni circa gli utenti di macchine locali e
remote</entry>
</row>
<row>
<entry><command>ftp [opzioni]
host</command></entry>
<entry>trasferisce file utilizzando il protocollo di trasferimento
di file (FTP)</entry>
</row>
<row>
<entry><command>grep [opzioni]
'stringa di ricerca'
argomento</command></entry>
<entry morerows="2">ricerca nell'argomento (in questo caso
probabilmente un file) tutte le occorrenze della stringa di
ricerca specificata e le visualizza</entry>
</row>
<row>
<entry><command>egrep [opzioni]
'stringa di ricerca'
argomento</command></entry>
</row>
<row>
<entry><command>fgrep [opzioni]
'stringa di ricerca'
argomento</command></entry>
</row>
<row>
<entry><command>gzip [opzioni]
file</command></entry>
<entry morerows="2">comprime o decomprime un file. I file compressi
vengo memorizzati con l'estensione
<filename>.gz</filename></entry>
</row>
<row>
<entry><command>gunzip [opzioni]
file</command></entry>
</row>
<row>
<entry><command>zcat [opzioni]
file</command></entry>
</row>
<row>
<entry><command>head [-numero]
file</command></entry>
<entry>mostra le prime 10 (o numero di) linee di un file</entry>
</row>
<row>
<entry><command>hostname</command></entry>
<entry>mostra o setta (solamente super-user) il nome della macchina
attuale</entry>
</row>
<row>
<entry><command>kill [opzioni]
[-SEGNALE]
[pid#]
[%job]</command></entry>
<entry>manda un segnale al processo specificato dal numero di
processo id (<replaceable>pid#</replaceable>) o dal numero di
controllo del job (%<replaceable>n</replaceable>). Il segnale di
default termina il processo</entry>
</row>
<row>
<entry><command>ln [opzioni]
sorgente
destinazione</command></entry>
<entry>crea un collegamento di nome
<filename>destinazione</filename> a
<filename>sorgente</filename></entry>
</row>
<row>
<entry><command>lpq
[opzioni]</command></entry>
<entry morerows="1">mostra lo stato dei job di stampa</entry>
</row>
<row>
<entry><command>lpstat
[opzioni]</command></entry>
</row>
<row>
<entry><command>lpr [opzioni]
file</command></entry>
<entry morerows="1">stampa sulla stampante specificata</entry>
</row>
<row>
<entry><command>lp [opzioni]
file</command></entry>
</row>
<row>
<entry><command>lprm
[opzioni]</command></entry>
<entry morerows="1">rimuove un job di stampa dalla coda di
stampa</entry>
</row>
<row>
<entry><command>cancel
[opzioni]</command></entry>
</row>
<row>
<entry><command>ls [opzioni]
[directory o
file]</command></entry>
<entry>elenca il contenuto della directory specificata o i permessi
del file specificato</entry>
</row>
<row>
<entry><command>mail [opzioni]
[user]</command></entry>
<entry morerows="2">semplice utility per la posta elettronica
disponibile su un sistema Unix. Si digita un punto come primo
carattere su una nuova linea per trasmettere il messaggio, un
punto interrogativo per richiamare l'help</entry>
</row>
<row>
<entry><command>mailx [opzioni]
[user]</command></entry>
</row>
<row>
<entry><command>Mail [opzioni]
[user]</command></entry>
</row>
<row>
<entry><command>man [opzioni]
comando</command></entry>
<entry>mostra la pagina di manuale (<emphasis>man</emphasis>)
del comando specificato</entry>
</row>
<row>
<entry><command>mkdir [opzioni]
directory</command></entry>
<entry>crea una directory</entry>
</row>
<row>
<entry><command>more [opzioni]
file</command></entry>
<entry morerows="2">impaginatore di un file testuale</entry>
</row>
<row>
<entry><command>less [opzioni]
file</command></entry>
</row>
<row>
<entry><command>pg [opzioni]
file</command></entry>
</row>
<row>
<entry><command>mv [opzioni]
file1 file2</command></entry>
<entry>muove <filename>file1</filename>
in <filename>file2</filename></entry>
</row>
<row>
<entry><command>od [opzioni]
file</command></entry>
<entry>dump su un file binario, in ottale, in ASCII, in
esadecimale, in decimale o in modalità carattere.</entry>
</row>
<row>
<entry><command>passwd
[opzioni]</command></entry>
<entry>setta o modifica la propria password</entry>
</row>
<row>
<entry><command>paste [opzioni]
file</command></entry>
<entry>incolla campi nelle linee del file specificato</entry>
</row>
<row>
<entry><command>pr [opzioni]
file</command></entry>
<entry>filtra il file e lo stampa su un terminale</entry>
</row>
<row>
<entry><command>ps
[opzioni]</command></entry>
<entry>mostra lo stato dei processi attivi</entry>
</row>
<row>
<entry><command>pwd</command></entry>
<entry>stampa la directory di lavoro (corrente)</entry>
</row>
<row>
<entry><command>rcp [opzioni]
nomehost</command></entry>
<entry>copia file in remoto dalla macchina corrente in un'altra
macchina</entry>
</row>
<row>
<entry><command>rlogin [opzioni]
nomehost</command></entry>
<entry>effettua il login in remoto su un'altra macchina</entry>
</row>
<row>
<entry><command>rm [opzioni]
file</command></entry>
<entry>rimuove (elimina) un file o una directory
(<option>-r</option> elimina ricorsivamente la directory ed il suo
contenuto) (<option>-i</option> chiede conferma prima di eliminare
i file)</entry>
</row>
<row>
<entry><command>rmdir [opzioni]
directory</command></entry>
<entry>rimuove una directory</entry>
</row>
<row>
<entry><command>rsh [opzioni]
nomehost</command></entry>
<entry>shell remota da eseguire su un'altra macchina</entry>
</row>
<row>
<entry><command>script
file</command></entry>
<entry>memorizza ogni cosa che appare sullo schermo in un file fino
a quando si esegue <command>exit</command></entry>
</row>
<row>
<entry><command>sed [opzioni]
file</command></entry>
<entry>editor di flusso per editare file da uno script o da linea di
comando</entry>
</row>
<row>
<entry><command>sort [opzioni]
file</command></entry>
<entry>ordina le linee del file specificato basandosi sulle opzioni
scelte</entry>
</row>
<row>
<entry><command>source
file</command></entry>
<entry morerows="1">legge i comandi dal file specificato
e li esegue nella shell corrente. <command>source</command> per
la shell C, <command>.</command> per la shell Bourne</entry>
</row>
<row>
<entry><command>. file</command></entry>
</row>
<row>
<entry><command>strings [opzioni]
file</command></entry>
<entry>riporta sequenze di 4 o più caratteri stampabili
terminanti in &lt;NL&gt; o &lt;NULL&gt;. Generalmente viene usato
per ricercare in file binari stringhe ASCII</entry>
</row>
<row>
<entry><command>stty
[opzioni]</command></entry>
<entry>setta o visualizza le opzioni del terminale di
controllo</entry>
</row>
<row>
<entry><command>tail [opzioni]
file</command></entry>
<entry>mostra le ultime linee (o parte) di un file</entry>
</row>
<row>
<entry><command>tar [opzioni]
[file]</command></entry>
<entry>archivio a nastro--riferirsi alle pagine man per dettagli su
come creare, elencare ed estrarre file da un archivio. I file tar
possono essere memorizzati su disco o su nastro.</entry>
</row>
<row>
<entry><command>tee [opzioni]
file</command></entry>
<entry>copia standard output in uno o più file</entry>
</row>
<row>
<entry><command>telnet [host
[porta]]</command></entry>
<entry>comunica con un altro host usando il protocollo
telnet</entry>
</row>
<row>
<entry><command>touch [opzioni]
[data/ora]
file</command></entry>
<entry>crea un file vuoto o aggiorna la data/ora di accesso di un
file esistente</entry>
</row>
<row>
<entry><command>tr [opzioni]
stringa1 stringa2</command></entry>
<entry>traduce i caratteri di <replaceable>stringa1</replaceable>
provenienti da standard input in quelli di
<replaceable>stringa2</replaceable> per standard output</entry>
</row>
<row>
<entry><command>uncompress
file.Z</command></entry>
<entry>decomprime il file specificato e lo salva in un file</entry>
</row>
<row>
<entry><command>uniq [opzioni]
file</command></entry>
<entry>rimuove le linee ripetute in un file</entry>
</row>
<row>
<entry><command>uudecode
[file]</command></entry>
<entry>decodifica un file codificato con
<command>uuencode</command>, riportandolo al file
originale</entry>
</row>
<row>
<entry><command>uuencode [file]
nuovo_nome</command></entry>
<entry>codifica un file binario in codice ASCII 7-bit; utile quando
lo si trasmette via email, per essere poi decodificato come
<filename>nuovo_nome</filename> alla
destinazione</entry>
</row>
<row>
<entry><command>vi [opzioni]
file</command></entry>
<entry>editor visuale, a pieno schermo</entry>
</row>
<row>
<entry><command>wc [opzioni]
[file]</command></entry>
<entry>mostra il numero di parole (o di caratteri o di linee) del
file specificato</entry>
</row>
<row>
<entry><command>whereis [opzioni]
comando</command></entry>
<entry>riporta le locazioni del binario, del sorgente e della pagina
man per il comando specificato</entry>
</row>
<row>
<entry><command>which
comando</command></entry>
<entry>riporta il percorso del comando o l'alias di shell in
uso</entry>
</row>
<row>
<entry><command>who</command> o <command>w</command></entry>
<entry>riporta chi è <quote>loggato</quote> e quali processi
ha in esecuzione</entry>
</row>
<row>
<entry><command>zcat
file.Z</command></entry>
<entry>concatena (lista) il file non compresso a video, lasciando il
file compresso su disco</entry>
</row>
</tbody>
</tgroup>
</table>
</sect1>
</chapter>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,558 +0,0 @@
<?xml version="1.0" encoding="iso-8859-15"?>
<!--
The FreeBSD Italian Documentation Project
$FreeBSD$
-->
<glossary xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<title>Glossario</title>
<glossdiv>
<title>A</title>
<glossentry>
<glossterm>account</glossterm>
<glossdef>
<para>struttura di dati che contiene alcune informazioni (come password,
nome reale, username, indirizzo, ecc.) relative a un utente</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>alias</glossterm>
<glossdef>
<para>meccanismo che permette di invocare un comando (o una combinazione
di comandi) attraverso un nome pseudonimo precedentemente
assegnato</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>B</title>
<glossentry>
<glossterm>background</glossterm>
<glossdef>
<para>riferito alla modalità di gestione dell'esecuzione di un
processo in shell corrente: la shell non aspetta la fine di tale
processo ma continua la sua normale esecuzione</para>
<para><emphasis>Vedere:</emphasis>
<link linkend="shells-job-control">sezione 5.5</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>backquote</glossterm>
<glossdef>
<para>caratteri speciali utilizzati per inserire in una stringa l'output
del comando specificato tra questi caratteri</para>
<para><emphasis>Vedere:</emphasis> <link linkend="shell-programming-sett-param-val">sezione 9.2</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>built-in</glossterm>
<glossdef>
<para>comandi incorporati nel codice della shell</para>
<para><emphasis>Vedere:</emphasis> <link linkend="shells-built-in-comm">sezione 5.1</link></para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>C</title>
<glossentry>
<glossterm>case sensitive</glossterm>
<glossdef>
<para>distinzione tra lettere maiuscole e lettere minuscole</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>D</title>
<glossentry>
<glossterm>directory-home</glossterm>
<glossdef>
<para>è la directory dell'utente, nella quale ci si ritrova
(in generale) dopo la fase di login</para>
<para><emphasis>Vedere:</emphasis> <link linkend="getting-started-directory-nav-control">sezione
3.6</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>directory-root</glossterm>
<glossdef>
<para>è la directory padre di tutte le altre directory (indicata
spesso con il segno /)</para>
<para><emphasis>Vedere:</emphasis> <link linkend="structure-file-system">sezione 2.2</link></para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>E</title>
<glossentry>
<glossterm>editor</glossterm>
<glossdef>
<para>strumenti per manipolare testi (programmi, ecc.)</para>
<para><emphasis>Vedere:</emphasis> <link linkend="editors">Capitolo
10</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>EOF</glossterm>
<glossdef>
<para>sta per <quote>end of file</quote> e indica la fine del
file</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>F</title>
<glossentry>
<glossterm>filename</glossterm>
<glossdef>
<para>nome del file</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>file system</glossterm>
<glossdef>
<para>architettura formata da un insieme di strutture dati che permetto
di organizzare e gestire i dati su disco</para>
<para><emphasis>Vedere:</emphasis> <link linkend="structure-file-system">sezione 2.2</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>foreground</glossterm>
<glossdef>
<para>riferito alla modalità di gestione dell'esecuzione di un
processo in shell corrente: la shell aspetta che il processo termini
prima di riprendere la sua esecuzione</para>
<para><emphasis>Vedere:</emphasis> <link linkend="shells-job-control">sezione 5.5</link></para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>G</title>
<glossentry>
<glossterm>groupid</glossterm>
<glossdef>
<para>numero che identifica in maniera univoca un gruppo di utenti su un
sistema Unix</para>
<para><emphasis>Vedere:</emphasis> <link linkend="getting-started-login-identity">sezione 3.1.4</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>groupname</glossterm>
<glossdef>
<para>nome che identifica un gruppo su un sistema Unix</para>
<para><emphasis>Vedere:</emphasis> <link linkend="getting-started-login-identity">sezione 3.1.4</link></para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>H</title>
<glossentry>
<glossterm>hard link</glossterm>
<glossdef>
<para>link fisico tra due file</para>
<para><emphasis>Vedere:</emphasis> <link linkend="commands-work-files-ln">sezione 8.1.7</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>here document</glossterm>
<glossdef>
<para>speciale forma di quoting</para>
<para><emphasis>Vedere:</emphasis> <link linkend="shell-programming-here-doc">sezione 9.6</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>history</glossterm>
<glossdef>
<para>storia dei comandi digitati precedentemente</para>
<para><emphasis>Vedere:</emphasis> <link linkend="shells-history">sezione 5.6</link></para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>I</title>
<glossentry>
<glossterm>inode</glossterm>
<glossdef>
<para>struttura di dati contenente informazioni sui file</para>
<para><emphasis>Vedere:</emphasis> <link linkend="structure-directories-files-inodes">sezione 2.3</link></para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>J</title>
<glossentry>
<glossterm>job</glossterm>
<glossdef>
<para>sinonimo di processo</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>K</title>
<glossentry>
<glossterm>kernel</glossterm>
<glossdef>
<para>è il cuore del sistema operativo, il posto in cui sono
caricati tutti i driver per i device, gestisce i processi, le
operazione di I/O, ecc.</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>L</title>
<glossentry>
<glossterm>login</glossterm>
<glossdef>
<para>riferito sia al nome utente di un account Unix (login username)
sia alla fase (fase di login) di accesso a un sistema Unix
(login+password) (il riferimento risulta chiaro dal contesto)</para>
<para><emphasis>Vedere:</emphasis> <link linkend="getting-started-login">sezione 3.1</link></para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>M</title>
<glossentry>
<glossterm>man page</glossterm>
<glossdef>
<para>pagina del manuale di un sistema Unix</para>
<para><emphasis>Vedere:</emphasis> <link linkend="getting-started-get-help">sezione 3.5</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>multi-level file system </glossterm>
<glossdef>
<para>file system a più livelli organizzati in gerarchia</para>
<para><emphasis>Vedere:</emphasis> <link linkend="structure-file-system">sezione 2.2</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>multi-processor</glossterm>
<glossdef>
<para>o multi-tasking; capacità del sistema operativo che
permette di eseguire più programmi (processi) senza doverne
aspettare la terminazione sequenziale</para>
<para><emphasis>Vedere:</emphasis> <link linkend="structure-os">sezione
2.1</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>multi-user</glossterm>
<glossdef>
<para>capacità del sistema operativo che permette di gestire
più utenti contemporaneamente</para>
<para><emphasis>Vedere:</emphasis> <link linkend="structure-os">sezione
2.1</link></para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>O</title>
<glossentry>
<glossterm>OS</glossterm>
<glossdef>
<para>operating system, sistema operativo</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>P</title>
<glossentry>
<glossterm>password</glossterm>
<glossdef>
<para>codice segreto di un account Unix utilizzato per autenticare un
utente nel sistema</para>
<para><emphasis>Vedere:</emphasis> <link linkend="getting-started-login">sezione 3.1</link> e
<link linkend="getting-started-login-passwords">sezione 3.1.2</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>path name</glossterm>
<glossdef>
<para>percorso dei nomi, che indica i <quote>rami</quote> del file
system (directory separate da un /) che bisogna attraversare per
raggiungere un determinato file o directory</para>
<para><emphasis>Vedere:</emphasis> <link linkend="structure-file-system">sezione 2.2</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>pattern</glossterm>
<glossdef>
<para>schema</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>pipe/piping</glossterm>
<glossdef>
<para>meccanismo che porta l'output di un comando nell'input di
un altro</para>
<para><emphasis>Vedere:</emphasis> <link linkend="special-features-file-redir">sezione 6.2</link></para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>Q</title>
<glossentry>
<glossterm>quoting</glossterm>
<glossdef>
<para>tecnica di interpretazione di una stringa da parte della
shell</para>
<para><emphasis>Vedere:</emphasis> <link linkend="shell-programming-quoting">sezione 9.3</link></para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>S</title>
<glossentry>
<glossterm>script</glossterm>
<glossdef>
<para>programma scritto nel linguaggio della shell</para>
<para><emphasis>Vedere:</emphasis> <link linkend="shell-programming-scripts">sezione 9.1</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>shell</glossterm>
<glossdef>
<para>interprete a linea di comando. È l'interfaccia tra
l'utente e il sistema operativo (kernel)</para>
<para><emphasis>Vedere:</emphasis> <link linkend="shells">Capitolo
5</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>simbolic link</glossterm>
<glossdef>
<para>link simbolico (collegamento tramite path name) tra due file o
directory</para>
<para><emphasis>Vedere:</emphasis> <link linkend="commands-work-files-ln">sezione 8.1.7</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>system call</glossterm>
<glossdef>
<para>sono delle procedure (routine) standard, che i programmi utente
utilizzano per accedere ai servizi che il kernel mette
a disposizione</para>
<para><emphasis>Vedere:</emphasis> <link linkend="structure-os">sezione
2.1</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>standard error</glossterm>
<glossdef>
<para>dispositivo standard di errori (terminale di default)</para>
<para><emphasis>Vedere:</emphasis> <link linkend="special-features-file-desc">sezione 6.1</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>standard input</glossterm>
<glossdef>
<para>dispositivo standard di ingresso (tastiera di default)</para>
<para><emphasis>Vedere:</emphasis> <link linkend="special-features-file-desc">sezione 6.1</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>standard output</glossterm>
<glossdef>
<para>dispositivo standard di uscita (terminale di default)</para>
<para><emphasis>Vedere:</emphasis> <link linkend="special-features-file-desc">sezione 6.1</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>super-user</glossterm>
<glossdef>
<para>o root, utente speciale che amministra un sistema Unix</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>U</title>
<glossentry>
<glossterm>userid</glossterm>
<glossdef>
<para>numero che identifica univocamente l'utente su un sistema
Unix</para>
<para><emphasis>Vedere:</emphasis> <link linkend="getting-started-login-identity">sezione 3.1.4</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>username</glossterm>
<glossdef>
<para>o user, nome di un utente Unix (utilizzato nella fase di
login)</para>
<para><emphasis>Vedere:</emphasis> <link linkend="getting-started-login-identity">sezione 3.1.4</link></para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>V</title>
<glossentry>
<glossterm>verbose</glossterm>
<glossdef>
<para>modalità di esecuzione di un comando che fornisce molte
informazioni addizionali (utile per gli utenti novizi)</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv>
<title>W</title>
<glossentry>
<glossterm>wild card</glossterm>
<glossdef>
<para>anche conosciuti come meta-caratteri, sono caratteri speciali
utilizzati in alcune circostanze per il confronto/sostituzione di
caratteri</para>
<para><emphasis>Vedere:</emphasis> <link linkend="special-features-wildcard">sezione 6.4</link></para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>word-wrap</glossterm>
<glossdef>
<para>meccanismo che invia alla prossima riga l'intera parola fuori
margine</para>
</glossdef>
</glossentry>
</glossdiv>
</glossary>

View file

@ -1,103 +0,0 @@
<?xml version="1.0" encoding="iso-8859-15"?>
<!--
The FreeBSD Italian Documentation Project
$FreeBSD$
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="history">
<title>Storia di Unix</title>
<para>1965 Bell Laboratory con la collaborazione del MIT e della General
Eletric lavorano per la realizzazione di un nuovo sistema operativo,
Multics, il quale vuole fornire, come principali caratteristiche,
capacità multi-utente (multi-user), multi-processo (multi-processor)
e un file system multi-livello (gerarchico)
(multi-level file system).</para>
<para>1969 AT&amp;T era infelice del progresso di Multics e abbandona il
progetto. Ken Thompson, Dennis Ritchie, Rudd Canaday e Doug McIlroy,
alcuni programmatori dei Bell Lab che avevano lavorato nel progetto Multics,
progettano e implementano su un PDP-7 la prima versione del file system Unix
insieme ad alcune utility. Il nome Unix è stato assegnato da parte
di Brian Kernighan come gioco di parole su Multics.</para>
<para>1 Gennaio 1970 Inizio di Unix.</para>
<para>1971 Il sistema ora gira su un PDP-11 con 16 Kbyte di memoria, di cui
8 Kbyte per i programmi utente, e con un disco di 512 Kbyte.</para>
<para>Il suo primo reale impiego è come strumento di manipolazione
del testo in esclusiva per il dipartimento dei Bell Lab. Quel tipo di
utilizzo giustifica ulteriormente la ricerca e lo sviluppo attraverso la
programmazione di gruppo. Unix attira i programmatori perchè
è stato progettato con queste caratteristiche:</para>
<itemizedlist>
<listitem>
<para>ambiente di programmazione;</para>
</listitem>
<listitem>
<para>semplice interfaccia utente;</para>
</listitem>
<listitem>
<para>semplici utility che possono essere combinate per realizzare potenti
funzioni;</para>
</listitem>
<listitem>
<para>file system gerarchico (ad albero);</para>
</listitem>
<listitem>
<para>semplice interfacciamento con i dispositivi, in armonia con il
formato dei file;</para>
</listitem>
<listitem>
<para>sistema multi-utente e multi-processo;</para>
</listitem>
<listitem>
<para>architettura indipendente e trasparente all'utente.</para>
</listitem>
</itemizedlist>
<para>1973 Unix è riscritto prevalentemente in C, un nuovo linguaggio
di programmazione sviluppato da Dennis Ritchie. La codifica in questo
linguaggio di alto livello diminuisce fortemente lo sforzo necessario per
portare Unix su nuove macchine.</para>
<para>1974 Thompson e Ritchie descrivono in una relazione pubblicata in un
comunicato dell'ACM il nuovo sistema operativo Unix. Unix genera
entusiasmo nella comunità accademica che lo vede come un potente
strumento di insegnamento per lo studio della programmazione di sistemi.
Poichè il decreto del 1956 impedisce ad AT&amp;T di
commercializzare il prodotto, viene concessa una licenza
all'Università per scopi educativi e una per esistenza
commerciale.</para>
<para>1977 Ci sono circa 500 siti Unix nel mondo.</para>
<para>1980 BSD 4.1 (software sviluppato da Berkeley).</para>
<para>1983 SunOS, BSD 4.2, Sys V.</para>
<para>1984 Ci sono circa 100.000 siti Unix che girano su differenti
piattaforme hardware, con differenti capacità.</para>
<para>1988 AT&amp;T e Sun Microsystem sviluppano System V Release 4 (SVR4).
Questo sarà in futuro implementato in UnixWare e Solaris 2.</para>
<para>1993 Novell compra Unix da AT&amp;T.</para>
<para>1994 Novell porta il nome <emphasis>UNIX</emphasis> a X/OPEN.</para>
<para>1995 Santa Cruz Operation compra UnixWare da Novell. Santa Cruz
Operation e Hewlett-Packard annunciano lo sviluppo di una versione di Unix a
64 bit.</para>
<para>1996 International Data Corporation prevede che nel 1997 ci saranno 3
milioni di sistemi Unix nel mondo.</para>
</chapter>

View file

@ -1,97 +0,0 @@
<?xml version="1.0" encoding="iso-8859-15"?>
<!--
The FreeBSD Italian Documentation Project
$FreeBSD$
-->
<preface xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="preface">
<title>Prefazione</title>
<para>Questo documento è rivolto in prevalenza a quelle persone che si
avvicinano per la prima volta a Unix, ma non solo.</para>
<para>Prima di iniziare ad esporre la traduzione di questo documento
volevo dire alcune cose. Alcune parole del testo originale in lingua
inglese non sono state tradotte in italiano, vuoi perchè la
rispettiva traduzione in italiano non è efficiente in termini di
comprensibilità, vuoi perchè è di uso comune far
riferimento a queste direttamente in lingua inglese (vedi login, quoting,
built-in, here document, shell, background, pipe, script, ecc.). Inoltre mi
è sembrato opportuno e logico modificare l'ultima sezione di questo
documento, bibliografia di Unix (testi in lingua inglese), in una breve
bibliografia italiana di Unix. Infine ho aggiunto un glossario dove poter
trovare un elenco dei termini inglesi più caldi incontrati in questo
documento e il loro significato corrispondente.</para>
<para>Non mi resta che augurarvi una buona lettura.</para>
<bridgehead xml:id="preface-conv" renderas="sect1">Convenzioni usate in questo
libro</bridgehead>
<para>Per fornire un testo consistente e facile da leggere, sono state
seguite numerose convenzioni in tutto il libro.</para>
<bridgehead xml:id="preface-typographic-conv" renderas="sect2">Convenzioni
Tipografiche</bridgehead>
<variablelist>
<varlistentry>
<term><emphasis>Italico</emphasis></term>
<listitem>
<para>Un font <emphasis>italico</emphasis> è per i nomi dei file,
per gli URL, per il testo enfatizzato, e per il primo utilizzo dei
termini tecnici.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>Monospazio</varname></term>
<listitem>
<para>Un font <varname>monospazio</varname> è usato per i
messaggi di errore, i comandi, le variabili di ambiente, i nomi di
host, i nomi degli utenti, i nomi dei gruppi, i nomi dei device, le
variabili, e i frammenti di codice.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><application>Grassetto</application></term>
<listitem>
<para>Un font in <application>grassetto</application> è per le
applicazioni, i comandi, e i tasti.</para>
</listitem>
</varlistentry>
</variablelist>
<bridgehead xml:id="preface-command-conv" renderas="sect2">Input
dell'Utente</bridgehead>
<para>I tasti sono visualizzati in <keycap>grassetto</keycap> per
differenziarli dal testo normale. Le combinazioni di tasti che devono
essere digitate contemporaneamente sono visualizzate con un
`<literal>+</literal>' tra i tasti, come:</para>
<para><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>Alt</keycap>
<keycap>Del</keycap>
</keycombo></para>
<para>I tasti che devono essere digitati in sequenza saranno separati da
virgole, come per esempio:</para>
<para><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>X</keycap>
</keycombo>, <keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>S</keycap>
</keycombo></para>
<para>Vuol dire che l'utente deve digitare i tasti <keycap>Ctrl</keycap> e
<keycap>X</keycap> contemporaneamente e poi i tasti <keycap>Ctrl</keycap> e
<keycap>S</keycap>.</para>
</preface>

File diff suppressed because it is too large Load diff

View file

@ -1,554 +0,0 @@
<?xml version="1.0" encoding="iso-8859-15"?>
<!--
The FreeBSD Italian Documentation Project
$FreeBSD$
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="special-features">
<title>Caratteristiche speciali di Unix</title>
<para>Uno dei più importanti contributi che Unix ha dato ai sistemi
operativi è stato quello di fornire molti strumenti per creare lavori
ordinari e per ottenere le informazioni che si desiderano. Un altro
è rappresentato dal modo standard con cui i dati sono memorizzati e
trasmessi in un sistema Unix. Questo permette di trasferire dati
<emphasis>in</emphasis> un file, nel terminale video o in un programma,
oppure <emphasis>da</emphasis> un file, dalla tastiera o da un programma,
sempre in maniera uniforme. Il trattamento standardizzato dei dati supporta
due importanti caratteristiche di Unix: la redirezione di I/O e il
piping.</para>
<para>Con la <emphasis>redirezione dell'output</emphasis>, l'output di un
comando viene rediretto su un file piuttosto che sul terminale video.
Con la <emphasis>redirezione dell'input</emphasis>, l'input di un comando
viene preso da un file piuttosto che dalla tastiera. Sono possibili
altre tecniche di redirezione dell'input e dell'output come
si vedrà in seguito. Con il <emphasis>piping</emphasis>, l'output di
un comando può essere usato come input di un comando successivo.
In questo capitolo si discuterà di alcune delle caratteristiche e
degli strumenti disponibili per gli utenti Unix.</para>
<sect1 xml:id="special-features-file-desc">
<title>Descrittori di file</title>
<para>Ci sono 3 descrittori di file standard:</para>
<informaltable frame="none">
<tgroup cols="3">
<colspec colwidth="1in"/>
<colspec colwidth="0.5in"/>
<tbody>
<row>
<entry>&man.stdin.4;</entry>
<entry>0</entry>
<entry>Standard input per il programma</entry>
</row>
<row>
<entry>&man.stdout.4;</entry>
<entry>1</entry>
<entry>Standard output dal programma</entry>
</row>
<row>
<entry>&man.stderr.4;</entry>
<entry>2</entry>
<entry>Standard error (output) dal programma</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Normalmente l'input viene preso dalla tastiera o da un file.
Generalmente l'output, sia &man.stdout.4; che &man.stderr.4;, scorre nel
terminale, ma può essere rediretto, uno o entrambi, su uno o
più file.</para>
<para>Si possono specificare descrittori di file addizionali, denotandoli
con un numero da 3 a 9 e redirigendo l'I/O attraverso questi.</para>
</sect1>
<sect1 xml:id="special-features-file-redir">
<title>Redirezione di file</title>
<para>La redirezione dell'output prende l'output di un comando e lo
posiziona nel file specificato. La redirezione dell'input legge il file
specificato come input per un comando. La tabella che segue sintetizza le
possibili modalità di redirezione.</para>
<table frame="all" xml:id="special-features-table-file-redir">
<title>Redirezione di file</title>
<tgroup cols="2">
<colspec colwidth="1.5in"/>
<thead>
<row>
<entry align="center">SIMBOLO</entry>
<entry align="center">REDIREZIONE</entry>
</row>
</thead>
<tbody>
<row>
<entry><command>&gt;</command></entry>
<entry>redirezione dell'output</entry>
</row>
<row>
<entry><command>&gt;!</command></entry>
<entry>come sopra, ma non tiene conto dell'opzione
<emphasis>noclobber</emphasis> per &man.csh.1;</entry>
</row>
<row>
<entry><command>&gt;&gt;</command></entry>
<entry>appende l'output</entry>
</row>
<row>
<entry><command>&gt;&gt;!</command></entry>
<entry>come sopra, ma non tiene conto dell'opzione
<emphasis>noclobber</emphasis> su &man.csh.1; e crea il file se
non esiste</entry>
</row>
<row>
<entry><command>|</command></entry>
<entry>incanala (pipe) l'output nell'input di un altro
comando</entry>
</row>
<row>
<entry><command>&lt;</command></entry>
<entry>redirezione dell'input</entry>
</row>
<row>
<entry><command>&lt;&lt;Stringa</command></entry>
<entry>legge da standard input fino a quando incontra una linea
contenente solo la parola <replaceable>Stringa</replaceable>.
Anche conosciuto come <emphasis>here document</emphasis>
(vedere il <link linkend="shell-programming">Capitolo 9</link>)</entry>
</row>
<row>
<entry><command>&lt;&lt;\Stringa</command></entry>
<entry>come sopra, ma le sostituzioni di shell non sono
permesse</entry>
</row>
</tbody>
</tgroup>
</table>
<para>Un esempio di redirezione dell'output è:</para>
<para><command>cat file1 file2 &gt;
file3</command></para>
<para>Il precedente comando concatena
<filename>file1</filename>
e <filename>file2</filename> e redirige (manda)
l'output in <filename>file3</filename>. Se
<filename>file3</filename> non esiste, viene
creato. Se esiste, verrà troncato a lunghezza zero prima che il
nuovo contenuto sia inserito, oppure, se l'opzione
<emphasis>noclobber</emphasis> della shell &man.csh.1; è abilitata,
il comando verrà rifiutato (vedere la shell &man.csh.1; nel
<link linkend="shells">Capitolo 5</link>). I file originali
<filename>file1</filename> e
<filename>file2</filename> rimarranno
come erano prima dell'esecuzione del comando, ossia due entità
separate.</para>
<para>L'output viene appeso a un file con la forma:</para>
<para><command>cat file1 &gt;&gt;
file2</command></para>
<para>Questo comando appende il contenuto di
<filename>file1</filename> alla fine
dell'esistente <filename>file2</filename>
(<filename>file2</filename> non viene
soprascritto).</para>
<para>L'input è rediretto (preso) da un file con la forma:</para>
<para><command>programma &lt;
file</command></para>
<para>Questo comando prende l'input per il
<command>programma</command> da
<filename>file</filename>.</para>
<para>Per incanalare (pipe) l'output di un programma nell'input di un altro
programma si usa la forma:</para>
<para><command>comando|comando</command></para>
<para>Questo comando assegna l'output del primo comando all'input del
secondo comando.</para>
<sect2 xml:id="special-features-file-redir-csh">
<title>Csh</title>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="2in"/>
<tbody>
<row>
<entry><command>&gt;&amp;
file</command></entry>
<entry>redirige &man.stdout.4; e &man.stderr.4; in
<filename>file</filename></entry>
</row>
<row>
<entry><command>&gt;&gt;&amp;
file</command></entry>
<entry>appende &man.stdout.4; e &man.stderr.4; in
<filename>file</filename></entry>
</row>
<row>
<entry><command>|&amp;
comando</command></entry>
<entry>crea una pipe tra &man.stdout.4;-&man.stderr.4; e il
<command>comando</command></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Per redirigere &man.stdout.4; e &man.stderr.4; in due file separati
si deve prima redirigere &man.stdout.4; in una sotto-shell,
così:</para>
<screen>&prompt.user; <userinput>(comando &gt; out_file) &gt;&amp; err_file</userinput></screen>
</sect2>
<sect2 xml:id="special-features-file-redir-sh">
<title>Sh</title>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="2in"/>
<tbody>
<row>
<entry><command>2&gt;
file</command></entry>
<entry>redirige &man.stderr.4; in
<filename>file</filename></entry>
</row>
<row>
<entry><command>&gt; file
2&gt;&amp;1</command></entry>
<entry>redirige &man.stdout.4; e &man.stderr.4; in
<filename>file</filename></entry>
</row>
<row>
<entry><command>&gt;&gt; file
2&gt;&amp;1</command></entry>
<entry>appende &man.stdout.4; e &man.stderr.4; in
<filename>file</filename></entry>
</row>
<row>
<entry><command>2&gt;&amp;1 |
comando</command></entry>
<entry>crea una pipe tra &man.stdout.4;-&man.stderr.4; e il
<replaceable>comando</replaceable></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Per redirigere &man.stdout.4; e &man.stderr.4; in due file separati
si può fare:</para>
<screen>$ <userinput>comando 1&gt; out_file 2&gt; err_file</userinput></screen>
<para>oppure, data la redirezione di default per &man.stdout.4;:</para>
<screen>$ <userinput>comando &gt; out_file 2&gt; err_file</userinput></screen>
<para>Con la shell Bourne si possono specificare altri descrittori di file
(da 3 a 9) e redirigere l'output attraverso questi. Questo può
essere fatto con la forma:</para>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1in"/>
<tbody>
<row>
<entry><command>n&gt;&amp;m</command></entry>
<entry>redirige il descrittore di file
<replaceable>n</replaceable> sul descrittore di file
<replaceable>m</replaceable></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Questo meccanismo viene utilizzato per mandare &man.stderr.4; nello
stesso posto di &man.stdout.4;, <command>2&gt;&amp;1</command>, quando
si vuole avere i messaggi di errore e i normali messaggi in un file
piuttosto che sul terminale. Se si vuole che solamente i messaggi di
errore vadano nel file, si può usare un descrittore di file di
supporto, 3. Si redirige prima 3 su 2, quindi 2 su 1 e in fine si
redirige 1 su 3.</para>
<screen>$ <userinput>(comando 3&gt;&amp;2 2&gt;&amp;1 1&gt;&amp;3) &gt; file</userinput></screen>
<para>Questo manda &man.stderr.4; in 1 e &man.stdout.4; in 3 che è
rediretto su 2. In questo modo, in effetti, si ribaltano i normali
significati dei descrittori di file 1 e 2. Si può sperimentare
tutto questo con l'esempio seguente:</para>
<screen>$ <userinput>(cat file 3&gt;&amp;2 2&gt;&amp;1 1&gt;&amp;3) &gt; errfile</userinput></screen>
<para>Quindi se <filename>file</filename>
è letto, l'informazione è scartata dall'output del
comando, ma se <filename>file</filename> non
può essere letto, i messaggi di errore sono messi nel file
<filename>errfile</filename> per usi
futuri.</para>
<para>I descrittori di file che sono stati creati possono essere chiusi
con:</para>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1in"/>
<tbody>
<row>
<entry><command>m&lt;&amp;-</command></entry>
<entry>chiude un descrittore di file di input</entry>
</row>
<row>
<entry><command>&lt;&amp;-</command></entry>
<entry>chiude &man.stdin.4;</entry>
</row>
<row>
<entry><command>m&gt;&amp;-</command></entry>
<entry>chiude un descrittore di file di output</entry>
</row>
<row>
<entry><command>&gt;&amp;-</command></entry>
<entry>chiude &man.stdout.4;</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2>
</sect1>
<sect1 xml:id="special-features-special-comm-simb">
<title>Altri speciali simboli di comando</title>
<para>Oltre ai simboli di redirezione dei file ci sono altri
simboli speciali che si possono usare su linea di comando.
Alcuni di questi sono:</para>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1.5in"/>
<tbody>
<row>
<entry><command>;</command></entry>
<entry>separatore di comandi</entry>
</row>
<row>
<entry><command>&amp;</command></entry>
<entry>esegue un comando in background</entry>
</row>
<row>
<entry><command>&amp;&amp;</command></entry>
<entry>esegue il comando seguente (a questo simbolo) solamente se il
comando precedente (a questo simbolo) è stato completato
con successo, esempio:
<command>grep stringa file &amp;&amp; cat
file</command></entry>
</row>
<row>
<entry><command>||</command></entry>
<entry>esegue il comando seguente (a questo simbolo) solamente se il
comando precedente (a questo simbolo) non è stato
completato con successo, esempio:
<command>grep stringa file ||
echo "Stringa non trovata."</command></entry>
</row>
<row>
<entry><command>( )</command></entry>
<entry>i comandi tra parentesi sono eseguiti in una sotto-shell.
L'output della sotto-shell può essere manipolato come
specificato nelle precedenti sezioni.</entry>
</row>
<row>
<entry><command>' '</command></entry>
<entry>segni di quoting letterali. All'interno di questi segni di
quoting non viene permesso ad alcuni caratteri di assumere
significati speciali.</entry>
</row>
<row>
<entry><command>\</command></entry>
<entry>considera il prossimo carattere letteralmente
(escape)</entry>
</row>
<row>
<entry><command>" "</command></entry>
<entry>segni di quoting regolari. All'interno di questi segni di
quoting sono permesse sostituzioni di variabili e di comando
(non disattivano $ e \ all'interno della stringa).</entry>
</row>
<row>
<entry><command>`comando`</command></entry>
<entry>prende l'output del comando e lo sostituisce nell'argomento
su linea di comando</entry>
</row>
<row>
<entry><command>#</command></entry>
<entry>ogni cosa che lo segue fino a un newline è un
commento</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Inoltre, il carattere \ può essere usato per effettuare un
escape sul carattere di newline, in modo tale da continuare un
lungo comando su più di una linea fisica di testo.</para>
</sect1>
<sect1 xml:id="special-features-wildcard">
<title>Meta caratteri</title>
<para>La shell e alcuni programmi di manipolazione testo permettono i
<emphasis>meta-caratteri</emphasis>, chiamati anche
<emphasis>wild card</emphasis>, i quali vengono rimpiazzati dai
corrispondenti schemi (pattern). Per i nomi di file questi
<emphasis>meta-caratteri</emphasis> e i loro significati sono:</para>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1.5in"/>
<tbody>
<row>
<entry><emphasis>?</emphasis></entry>
<entry>indica un singolo carattere alla posizione
indicata</entry>
</row>
<row>
<entry><emphasis>*</emphasis></entry>
<entry>indica una stringa di zero o più
caratteri</entry>
</row>
<row>
<entry><emphasis>[abc...]</emphasis></entry>
<entry>indica un carattere tra quelli racchiusi</entry>
</row>
<row>
<entry><emphasis>[a-e]</emphasis></entry>
<entry>indica un carattere tra quelli nel range a, b, c, d,
e</entry>
</row>
<row>
<entry><emphasis>[!def]</emphasis></entry>
<entry>indica un carattere tra quelli non inclusi in parentesi,
solamente &man.sh.1;</entry>
</row>
<row>
<entry><emphasis>{abc,bcd,cde}</emphasis></entry>
<entry>indica un set di caratteri tra quelli inclusi in parentesi,
separati da una virgola (,) (niente spazi), solamente
&man.csh.1;</entry>
</row>
<row>
<entry><emphasis>~</emphasis></entry>
<entry>indica la directory home dell'utente corrente, solamente
&man.csh.1;</entry>
</row>
<row>
<entry><emphasis>~<replaceable>user</replaceable></emphasis></entry>
<entry>indica la directory home dell'utente specificato, solamente
&man.csh.1;</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect1>
</chapter>

View file

@ -1,165 +0,0 @@
<?xml version="1.0" encoding="iso-8859-15"?>
<!--
The FreeBSD Italian Documentation Project
$FreeBSD$
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="structure">
<title>Struttura di Unix</title>
<sect1 xml: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 xml: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 xml: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 xml: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>