diff --git a/it_IT.ISO8859-15/articles/committers-guide/article.sgml b/it_IT.ISO8859-15/articles/committers-guide/article.sgml index 113c183974..da0f93177b 100644 --- a/it_IT.ISO8859-15/articles/committers-guide/article.sgml +++ b/it_IT.ISO8859-15/articles/committers-guide/article.sgml @@ -1,1557 +1,1634 @@ %man; %freebsd; %authors; %teams; + + +%trademarks; %mailing-lists; %translators; ]>
Guida del Committer The FreeBSD Italian Documentation Project $FreeBSD$ 1999 2000 2001 2002 2003 The FreeBSD Italian Documentation Project + + &tm-attrib.freebsd; + &tm-attrib.ibm; + &tm-attrib.intel; + &tm-attrib.sparc; + &tm-attrib.general; + + Questo documento fornisce informazioni per la comunità dei committer di FreeBSD. Tutti i nuovi committer dovrebbero leggere questo documento prima di iniziare, e i committer già esistenti sono fortemente incoraggiati a riguardarselo di tanto in tanto. Traduzione a cura di &a.it.alex;. Dettagli Amministrativi Host con il Repository Principale ncvs.FreeBSD.org Metodi di Accesso &man.ssh.1;, solo protocollo 2 CVSROOT Principale ncvs.FreeBSD.org:/home/ncvs + role="fqdn">ncvs.FreeBSD.org:/home/ncvs + (guarda anche la ). &a.cvs; Principali &a.peter; e &a.markm;, così come &a.joe; per i ports/ Mailing List &a.developers;, &a.committers; (Entrambe sono liste private; gli archivi possono essere trovati in /home/mail/developers-archive e /home/mail/committers-archive sul cluster di FreeBSD.org.) Report mensili del Core Team /home/core/public/monthly-report sul cluster di FreeBSD.org. Tag CVS Degni di Nota RELENG_4 (4.X-STABLE), HEAD (-CURRENT) È richiesto l'uso di &man.ssh.1; o &man.telnet.1; con Kerberos 5 per connettersi agli host del progetto e solo &man.ssh.1;, protocollo 2 ha il permesso di collegarsi all'host con il repository. Questi sono generalmente più sicuri che un semplice &man.telnet.1; o &man.rlogin.1; visto che la negoziazione delle credenziali avverrà sempre in modo cifrato. Tutto il traffico è cifrato di default con &man.ssh.1;. Insieme a programmi di utilità come &man.ssh-agent.1; e &man.scp.1;, anch'essi disponibili, &man.ssh.1; è di gran lunga più conveniente. Se non sai nulla di &man.ssh.1;, guarda la . Tipi di Bit di Commit Il repository CVS di FreeBSD ha un numero di componenti che, se combinati, supportano i sorgenti di base del sistema operativo, la documentazione, l'infrastruttura dei port delle applicazioni di terze parti, e vari programmi di utilità. Quando vengono assegnati i bit di commit di FreeBSD, vengono specificate le aree dell'albero dove il bit può essere usato. Solitamente, le aree associate a un bit corrispondono a quelle di chi ha autorizzato l'assegnamento del bit di commit. Ulteriori aree di autorità possono essere aggiunte in seguito: se occorrerà, il committer dovrà seguire le normali procedure di allocazione del bit di commit per quell'area dell'albero, chiedendo l'approvazione all'entità appropriata e possibilmente prendendo un mentore per quell'area per un po' di tempo. Tipo di Committer Responsabile Componenti dell'Albero src core@ src/, doc/ soggetta ad appropriata revisione doc doceng@ doc/, www/, documentazione src/ ports portmgr@ ports/ I bit di commit assegnati prima dello sviluppo della nozione di aree di autorità possono essere usati in molte parti dell'albero. Tuttavia, il buon senso dice che un committer che non ha mai lavorato precedentemente in un'area dell'albero chieda una revisione del proprio lavoro prima di effettuare il commit, chieda l'approvazione del responsabile appropriato, e/o lavori d'accordo con un mentore. Dato che le regole sulla manutenzione del codice differiscono a seconda dell'area dell'albero, questo è per il bene del committer che lavora in un'area poco familiare tanto quanto per gli altri che lavorano sull'albero. I committer sono incoraggiati a chiedere la revisione del proprio lavoro come parte del normale processo di sviluppo, indifferentemente dall'area dell'albero in cui stanno lavorando. Operazioni sul CVS Si assume che tu abbia già familiarità con le operazioni di base di CVS. I &a.cvs; sono i proprietari del repository CVS e sono responsabili delle sue modifiche dirette allo scopo di ripulire o sistemare dei gravi abusi di CVS da parte di un committer. Nel caso dovessi causare qualche problema al repository, diciamo una errata operazione di cvs import o cvs tag, invia un messaggio ai &a.cvs; (o chiama uno di loro) ed esponi il problema ad uno di loro. Gli unici che hanno il permesso di manipolare direttamente i bit del repository sono i - repomeister. Non ci sono shell di login disponibili su - ncvs.FreeBSD.org, tranne che per i + repomeister. Per questo non ci sono shell di login + disponibili sulle macchine del repository, tranne che per i repomeister. + L'albero CVS è attualmente diviso in quattro repository + differenti, ovvero doc, ports, + projects e src. Questi vengono + ricomposti sotto un unico CVSROOT quando vengono + distribuiti tramite CVSup per la convenienza + dei nostri utenti. + + + Nota che il modulo www che contiene i sorgenti + del sito web di FreeBSD + è contenuto all'interno del repository + doc. + + + I repository CVS sono ospitati sulle macchine repository. + Attualmente, ognuno dei repository elencati qui sopra risiede sulla stessa + macchina fisica, ncvs.FreeBSD.org, ma + per permettere la possibilità di averne ognuno su una macchina + diversa in futuro, ci sono diversi nomi di host che i committer + dovrebbero utilizzare. Inoltre, ogni repository risiede in una + directory differente. La seguente tabella racchiude la situazione. + + + Repository CVS, Host e Directory di &os; + + + + + Repository + + Host + + Directory + + + + + + doc + + dcvs.FreeBSD.org + + /home/dcvs + + + + ports + + pcvs.FreeBSD.org + + /home/pcvs + + + + projects + + projcvs.FreeBSD.org + + /home/projcvs + + + + src + + ncvs.FreeBSD.org + + /home/ncvs + + + +
+ Le operazioni sul CVS sono fatte da remoto impostando la variabile di ambiente CVSROOT a ncvs.FreeBSD.org:/home/ncvs e la variabile CVS_RSH a ssh, e quindi effettuando le appropriate operazioni di check-out/check-in. Se desideri aggiungere qualcosa di totalmente nuovo (ad esempio dei sorgenti in contrib, ecc.), deve essere usato cvs import. Guarda come riferimento la pagina man di &man.cvs.1; per l'utilizzo. Per favore non usare cvs checkout o update con la macchina con il repository ufficiale impostata come CVS Root per tenere aggiornato il tuo albero dei sorgenti. CVS da remoto non è ottimizzato per la distribuzione via rete e richiede un grande sovraccarico di lavoro e di amministrazione sul lato server. Utilizza il nostro metodo di distribuzione avanzato cvsup per ottenere i bit del repository, ed esegui solamente l'operazione di commit sull'host con il repository. Forniamo un'estesa rete di mirror cvsup per questo scopo, così come diamo accesso al cvsup-master se hai veramente bisogno di essere aggiornato alle ultime modifiche. Il cvsup-master ha la potenza necessaria a gestire - questa cosa, il repository principale no. &a.jdp; è a capo del - cvsup-master. - - Molti committer definiscono l'alias fcvs che - si traduce in cvs -d - xxx@ncvs.FreeBSD.org:/home/ncvs per questo scopo. - In questo modo svolgono tutte le operazioni di CVS localmente ed usano - fcvs commit per effettuare il commit sull'albero CVS - ufficiale. + questa cosa, il repository principale no. &a.kuriyama; è a capo + del cvsup-master. Se devi usare le operazioni add e delete di CVS come se fosse un'operazione &man.mv.1;, allora va effettuata una copia nel repository piuttosto che usare add e delete di CVS. In una copia nel repository, un CVS Meister copierà il/i file nei loro nuovi nomi e/o locazioni e ti avviserà ad operazione avvenuta. Lo scopo di una copia del repository è di preservare la cronologia dei cambiamenti del file, o i log. Noi del FreeBSD Project diamo molta importanza alla cronologia dei cambiamenti che CVS fornisce al progetto. Informazioni di riferimento, tutorial, e FAQ su CVS possono essere trovate su: . Anche le informazioni contenute nei capitoli di Karl Fogel da Open Source Development with CVS sono molto utili. &a.des; ha fornito inoltre il seguente mini manuale su CVS. Effettua il check out di un modulo con il comando co o checkout. &prompt.user; cvs checkout shazam Questo estrae una copia del modulo shazam. Se non c'è alcun modulo shazam nel file dei moduli, cercherà allora una directory di primo livello chiamata shazam. Opzioni utili con <command>cvs checkout</command> Non crea le directory vuote Estrae solo un livello, non le sottodirectory Estrai la versione, il ramo, o il tag ver Estrai i sorgenti com'erano in data data
Esempi pratici su FreeBSD: Estrai il modulo miscfs, che corrisponde a src/sys/miscfs: &prompt.user; cvs co miscfs Ora hai una directory chiamata miscfs con le sottodirectory CVS, deadfs, devfs, e così via. Una di queste (linprocfs) è vuota. Estrai gli stessi file, ma con il percorso completo: &prompt.user; cvs co src/sys/miscfs Ora hai una directory chiamata src, con le sottodirectory CVS e sys. La directory src/sys ha le sottodirectory CVS e miscfs, ecc. Estrai gli stessi file, ma elimina le directory vuote: &prompt.user; cvs co -P miscfs Ora hai una directory chiamata miscfs con le sottodirectory CVS, deadfs, devfs... ma nota che non c'è nessuna sottodirectory linprocfs, perché non contiene alcun file. Estrai la directory miscfs, ma nessuna delle sue sottodirectory: &prompt.user; cvs co -l miscfs Ora hai una a directory chiamata miscfs con solo una sottodirectory chiamata CVS. Estrai il modulo miscfs com'è nel ramo 4.X: &prompt.user; cvs co -rRELENG_4 miscfs Puoi modificare i sorgenti ed effettuare il commit su questo ramo. Estrai il modulo miscfs com'era nella 3.4-RELEASE. &prompt.user; cvs co -rRELENG_3_4_0_RELEASE miscfs Non potrai effettuare il commit delle modifiche, visto che RELENG_3_4_0_RELEASE corrisponde ad un preciso istante di tempo, non a un ramo. Estrai il modulo miscfs com'era il 15 gennaio 2000. &prompt.user; cvs co -D'01/15/2000' miscfs Non potrai effettuare modifiche. Estrai il modulo miscfs com'era una settimana fa. &prompt.user; cvs co -D'last week' miscfs Non potrai effettuare modifiche. Tieni presente che cvs salva i metadati in sottodirectory chiamate CVS. Gli argomenti di e sono fissi, che vuol dire che cvs se li ricorderà in seguito, ad esempio quando farai un cvs update.
Controlla lo stato dei file estratti con il comando status. &prompt.user; cvs status shazam Questo visualizza lo stato del file shazam o di ogni file nella directory shazam. Per ogni file, lo stato è uno fra: Up-to-date Il file à aggiornato e non è stato modificato. Needs Patch Il file non è stato modificato, ma c'è una nuova versione nel repository. Locally Modified Il file è aggiornato, ma è stato modificato. Needs Merge Il file è stato modificato, e c'è una nuova versione nel repository. File had conflicts on merge Ci sono stati conflitti l'ultima volta che il file è stato aggiornato, e non sono ancora stati risolti. Vedrai anche la versione e la data locale, il numero dell'ultima versione appropriata (ultima appropriata perché se hai una data, un tag o un ramo fissati, può non essere l'ultima versione), e i tag, le date o le opzioni applicate. Dopo avere estratto qualcosa, puoi aggiornarlo con il comando update. &prompt.user; cvs update shazam Questo aggiorna il file shazam o il contenuto della directory shazam all'ultima versione sul ramo che hai estratto. Se hai estratto un preciso instante di tempo, non fa nulla a meno che i tag non siano stati spostati nel repository o qualche altra strana cosa sia in corso. Opzioni utili, in aggiunta a quelle elencate sopra, con checkout: Estrae ogni directory aggiuntiva mancante. Scarica l'ultima versione del ramo principale. Altre magie (guarda sotto). Se hai estratto un modulo con o , l'esecuzione di cvs update con un argomento differente di o o con selezionerà un nuovo ramo, una nuova versione o una nuova data. L'opzione elimina tutti i tag, le date o le versioni fissate mentre e ne impostano di nuove. Teoricamente, specificando HEAD come argomento di avrai lo stesso risultato di , ma è solo in teoria. L'opzione è utile se: qualcuno ha aggiunto delle sottodirectory al modulo che hai estratto dopo averlo estratto. hai estratto con , e dopo cambi idea e vuoi estrarre anche le sottodirectory. hai cancellato delle sottodirectory e vuoi estrarle nuovamente. Osserva l'output di cvs update con cura. La lettera all'inizio di ogni file indica cosa è stato fatto su di esso: U Il file è stato aggiornato senza problemi. P Il file è stato aggiornato senza problemi (vedrai questo solo quando lavorerai su un repository remoto). M Il file è stato modificato, ed è stato fuso senza conflitti. C Il file è stato modificato, ed è stato fuso con dei conflitti. La fusione è ciò che avviene quando estrai una copia di qualche codice sorgente, lo modifichi, quindi qualcun altro effettua il commit di un'altra modifica, e tu esegui cvs update. CVS nota che tu hai fatto dei cambiamenti locali, e cerca di fondere le tue modifiche con quelle fatte tra la versione che hai originariamente estratto e quella che stai aggiornando. Se i cambiamenti sono a due parti separate del file, solitamente non ci saranno problemi (sebbene il risultato possa non essere sintatticamente o semanticamente corretto). CVS stamperà una M davanti ad ogni file modificato localmente anche se non c'è una nuova versione nel repository, quindi cvs update è adatto per avere un resoconto di quello che hai cambiato in locale. Se appare una C, allora le tue modifiche sono in conflitto con i cambiamenti presenti nel repository (le modifiche sono sulle stesse righe, o righe vicine, o hai cambiato così tanto il file locale che cvs non è in grado di applicare le modifiche al repository). Dovrai allora andare a modificare il file a mano e risolvere i conflitti; questi saranno evidenziati da righe di simboli <, = e >. Per ogni conflitto, ci sarà una linea di demarcazione formata da sette < e il nome del file, seguita da una porzione di quello che il tuo file locale conteneva, seguita da una riga di separazione con sette =, seguita dalla porzione corrispondente presente nella versione del repository, seguita da una riga di separazione con sette > e il numero di versione che stai aggiornando. L'opzione è un po' voodoo. Aggiorna il file locale alla versione specificata come se avessi usato , ma non cambia il numero di versione o il ramo registrato del file locale. Non è realmente utile tranne quando usata due volte, nel qual caso fonderà le modifiche tra le due versioni specificate nella copia su cui stai lavorando. Per esempio, supponiamo che ti abbia effettuato il commit di una modifica a shazam/shazam.c in &os.current; e che più tardi tu voglia effettuare l'MFC. Le modifiche che vuoi fondere sono nella versione 1.15: Estrai la versione &os.stable; del modulo shazam: &prompt.user; cvs co -rRELENG_4 shazam Applica le modifiche tra la ver 1.14 e la 1.15: &prompt.user; cvs update -j1.14 -j1.15 shazam/shazam.c Quasi certamente avrai un conflitto a causa delle righe $Id$ (o nel caso di FreeBSD, $FreeBSD$), quindi dovrai modificare a mano il file per risolvere il conflitto (rimuovi le righe di separazione e la seconda linea $Id$, lasciando la linea $Id$ originale intatta). Guarda le differenze tra la versione locale e quella sul repository con il comando diff. &prompt.user; cvs diff shazam mostra ogni modifica che hai fatto al file o al modulo shazam. Opzioni utili con <command>cvs diff</command> Utilizza il formato diff unificato. Utilizza il formato diff contestuale. Visualizza i file mancanti o aggiunti.
Vorrai sempre utilizzare , visto che le diff unificate sono molto più semplici da leggere rispetto a quasi tutti gli altri formati (in alcune circostanze, le diff contestuali generate con l'opzione possono essere meglio, ma sono molto più voluminose). Una diff unificata consiste di una serie di parti. Ogni parte inizia con una riga con due caratteri @ e specifica dove si trovano le differenze nel file e su quante linee si estendono. Questa è seguita da un certo numero di righe; alcune (precedute da uno spazio) fanno parte del contesto; altre (precedute da un -) sono quelle eliminate e altre ancora (precedute da un +) sono quelle aggiunte. Puoi anche effettuare una diff con una versione differente rispetto a quella che hai estratto specificando la versione con o come per il checkout o l'update, o anche visualizzare le differenze tra due versioni arbitrarie (indipendentemente da quella che hai localmente) specificando due versioni con o .
Guarda le righe di log con il comando log. &prompt.user; cvs log shazam Se shazam è un file, questo stamperà un'intestazione con le informazioni sul file, come la locazione nel repository dove il file è salvato, a quale versione è l'HEAD per questo file, in quali rami si trova il file, e qualsiasi tag valido per questo file. Quindi, per ogni versione del file, viene stampato un messaggio di log. Questo include la data e l'ora del commit, chi ha fatto il commit, quante righe sono state aggiunte e/o tolte, e alla fine il messaggio di log che il committer ha scritto quando ha inviato la modifica. Se shazam è una directory, allora le informazioni di log descritte sopra vengono stampate a turno per ogni file presente nella directory. A meno che tu abbia dato l'opzione a log, vengono stampati anche i log per tutte le sottodirectory di shazam, in maniera ricorsiva. Usa il comando log per vedere la storia di uno o più file, come è salvata nel repository CVS. Puoi anche usarlo per vedere il messaggio di log di una versione specifica, se aggiungi al comando log: &prompt.user; cvs log -r1.2 shazam Questo stamperà solamente il messaggio di log per la versione 1.2 del file shazam se è un file, oppure i messaggi di log per le versioni 1.2 di ogni file sotto shazam se è una directory. Guarda chi ha fatto cosa con il comando annotate. Questo comando visualizza ogni riga del file o dei file specificati, insieme all'utente che ha modificato più recentemente quella riga. &prompt.user; cvs annotate shazam Aggiungi nuovi file con il comando add. Crea il file, usa cvs add su di esso, quindi cvs commit. In modo analogo, puoi aggiungere nuove directory creandole e poi utilizzando cvs add su di esse. Nota che non c'è bisogno di usare il commit sulle directory. Rimuovi i file obsoleti con il comando remove. Rimuovi il file, quindi usa cvs rm su di esso, ed infine cvs commit. Effettua il commit con il comando commit o checkin. Opzioni utili con <command>cvs commit</command> Forza il commit di un file non modificato. Specifica un messaggio di commit sulla riga di comando anziché invocare un editor.
Usa l'opzione se ti accorgi che hai lasciato fuori informazioni importanti dal messaggio di commit. Buoni messaggi di commit sono importanti. Dicono agli altri perché hai fatto le modifiche che hai fatto, non solo qui ed ora, ma per mesi o anni quando qualcuno si chiederà perché dei pezzi di codice all'apparenza illogici o inefficienti sono entrati nel file sorgente. È inoltre un aiuto inestimabile per decidere su quali modifiche va effettuato l'MFC e su quali no. I messaggi di commit devono essere chiari, concisi, e fornire un ragionevole sommario per dare un'indicazione di cosa è stato cambiato e perché. I messaggi di commit devono fornire abbastanza informazioni affinché una terza parte possa decidere se la modifica è rilevante per lei e se debba leggere la modifica stessa. Evita di effettuare il commit di più modifiche scollegate in una volta sola. Questo rende difficile la fusione, e inoltre rende più complicato determinare quale modifica è colpevole se salta fuori un bug. Evita di effettuare il commit di correzioni di stile o di spaziatura insieme a correzioni di funzionalità. Questo rende difficile la fusione, e inoltre rende più complicato capire quali modifiche alle funzionalità sono state fatte. Nel caso di file di documentazione, può rendere il lavoro dei gruppi di traduzione più complicato, visto che diventa difficile per loro determinare esattamente quali modifiche al contenuto vanno tradotte. Evita di effettuare il commit di cambiamenti a più file con un unico messaggio generico o vago. Invece, effettua il commit di un file alla volta (o di piccoli gruppi di file correlati) con un messaggio di commit appropriato. Prima di effettuare il commit, devi sempre: verificare su che ramo stai effettuando il commit, tramite cvs status. revisionare i tuoi cambiamenti, con cvs diff Inoltre, devi SEMPRE specificare esplicitamente sulla riga di comando su quali file deve essere effettuato il commit, in modo da non toccare incidentalmente altri file non voluti - cvs commit senza argomenti effettuerà il commit di ogni modifica nella directory corrente ed ogni sottodirectory.
Suggerimenti e trucchi aggiuntivi: Puoi inserire le opzioni più comunemente usate nel tuo ~/.cvsrc, come in questo caso: cvs -z3 diff -Nu update -Pd checkout -P Questo esempio dice: usa sempre il livello di compressione 3 quando si parla con un server remoto. Questo è un salvavita quando si lavora su una connessione lenta. usa sempre le opzioni (visualizza i file aggiunti o rimossi) e (formato diff unificato) con &man.diff.1;. usa sempre le opzioni (elimina le directory vuote) e (estrai le nuove directory) quando si effettua l'update. usa sempre l'opzione (elimina le directory vuote) quando si estrae. Usa lo script cdiff di Eivind Eklund per visualizzare le diff unificate. È un wrapper per &man.less.1; che aggiunge i codici colore ANSI per far risaltare le intestazioni delle sezioni, le righe rimosse e quelle aggiunte; il contesto rimane invariato. Inoltre espande i tab correttamente (i tab spesso appaiono errati nelle diff a causa del carattere aggiuntivo all'inizio di ogni riga). Semplicemente usalo al posto di &man.more.1; o &man.less.1;: &prompt.user; cvs diff -Nu shazam | cdiff Alternativamente alcuni editor come &man.vim.1; (editors/vim5) hanno il supporto al colore e quando vengono usati con l'evidenziazione della sintassi attiva evidenzieranno molti tipi di file, incluse le diff, le patch, e i log CVS/RCS. &prompt.user; echo "syn on" >> ~/.vimrc &prompt.user; cvs diff -Nu shazam | vim - &prompt.user; cvs log shazam | vim - CVS è vecchio, arcano, complesso e buggato, e a volte esibisce comportamenti non deterministici che qualcuno sostiene siano la prova che CVS non sia niente di più di una manifestazione Newtoniana di una entità ultradimensionale sensibile. Non è umanamente possibile conoscere ogni dettaglio di CVS, quindi non essere dispiaciuto di chiedere aiuto all'Intelligenza Artificiale (&a.cvs;). Non lasciare il comando cvs commit nella modalità di inserimento del messaggio di commit per troppo tempo (più di 2–3 minuti). Questo blocca la directory in cui stai lavorando ed impedirà ad altri sviluppatori di effettuare commit nella stessa directory. Se devi digitare un messaggio di commit lungo, scrivilo prima di eseguire cvs commit, e inseriscilo successivamente.
Convenzioni e Tradizioni Come nuovo committer ci sono alcune cose che dovresti fare all'inizio. Aggiungere te stesso alla sezione Developers della Contributors List e rimuovere te stesso dalla sezione Additional Contributors. Una volta fatto ciò, non dimenticarti di aggiungere la tua entity di autore in doc/en_US.ISO8859-1/share/sgml/authors.ent; usa le altre voci come esempio. Questo è un compito relativamente semplice, ma rimane una buona prima prova delle tue abilità con CVS. Aggiungi una voce per te stesso in www/en/news/news.xml. Guarda le altre voci che assomigliano a A new committer e segui il formato. Se hai una chiave PGP o GnuPG, potresti volerla aggiungere in doc/share/pgpkeys. &a.des; ha scritto uno script di shell per rendere questa operazione molto semplice. Guarda il file README per maggiori informazioni. Alcune persone aggiungono una voce per se stessi in ports/astro/xearth/files/freebsd.committers.markers. Alcune persone aggiungono una voce per se stessi in src/usr.bin/calendar/calendars/calendar.freebsd. Presentati agli altri committer, altrimenti nessuno avrà idea di chi tu sia o di cosa ti occupi. Non devi scrivere una biografia completa, basta un paragrafo o due su chi sei e su quello di cui hai intenzione di occuparti come committer di FreeBSD. Invialo alla &a.developers; e sarai sulla strada giusta! Loggati su hub.FreeBSD.org e crea un file /var/forward/utente (dove utente è il tuo nome utente) contenente l'indirizzo e-mail dove vuoi che i messaggi indirizzati a tuonomeutente@FreeBSD.org siano inoltrati. Questo include tutti i messaggi di commit così come ogni altro messaggio inviato alla &a.committers; e alla &a.developers;. Caselle di posta veramente grandi che hanno preso residenza fissa su hub spesso vengono accidentalmente troncate senza preavviso, quindi inoltra o leggi i messaggi in modo da non perderli. Se sei iscritto alla &a.cvsall;, probabilmente vorrai disiscriverti per evitare di ricevere copie doppie dei messaggi di commit e della loro evoluzione. Tutti i nuovi committer hanno un mentore assegnato a loro per i primi mesi. Il tuo mentore è più o meno responsabile di spiegarti ogni cosa ti sia poco chiara ed è anche responsabile delle tue azioni durante questo periodo iniziale. Se fai un commit errato, imbarazzerai il tuo mentore e probabilmente dovresti passare almeno i primi commit a lui prima di agire direttamente sul repository. Tutti i commit dovrebbero andare su &os.current; prima di essere fusi in &os.stable;. Nessuna nuova caratteristica importante o modifica ad alto rischio dovrebbe essere fatta sul ramo &os.stable;. Relazioni tra Sviluppatori Se stai lavorando direttamente sul tuo codice o su codice che è già stabilito essere di tua responsabilità, allora c'è probabilmente poca necessità di confrontarsi con altri committer prima di effettuare un commit. Se vedi un bug in un'area del sistema che è chiaramente orfana (e ce n'è qualcuna di queste aree, per nostra vergogna), agisci allo stesso modo. Se, tuttavia, stai per modificare qualcosa che è chiaramente mantenuto attivamente da qualcun'altro (ed è solo guardando la mailing list cvs-committers che puoi veramente sapere cosa è e cosa non è) allora invia le modifiche a lui, come avresti fatto prima di diventare committer. Per i port, dovresti contattare il MAINTAINER specificato nel Makefile. Per altre parti del repository, se non sei sicuro di chi possa essere il maintainer attivo, potrebbe essere utile scorrere l'output di cvs log per vedere chi ha effettuato delle modifiche in passato. &a.fenner; ha scritto un utile script di shell che può aiutare a determinare chi sia il maintainer attivo. Questo elenca ogni persona che ha effettuato commit su un file specifico con il numero di commit che ha fatto. Può essere trovato su freefall in ~fenner/bin/whodid. Se alle tue richieste non corrisponde una risposta o se il committer in altro modo dimostra uno scarso interesse nell'area oggetto della modifica, vai avanti ed effettua il commit tu stesso. Se non sei sicuro di un commit per qualunque motivo, fallo revisionare da -hackers prima di effettuare il commit. Meglio che sia criticato lì piuttosto che quando è parte del repository CVS. Se ti capita di effettuare un commit che provoca controversie, potresti voler considerare l'annullamento delle modifiche finché il problema sia chiarito. Ricorda – con CVS possiamo sempre tornare indietro. Non mettere in dubbio le intenzioni di qualcuno che non è d'accordo con te. Se vedono una soluzione differente dalla tua per un problema, o anche un problema diverso, non è perché sono stupidi, perché hanno una dubbia origine, o perché stanno cercando di distruggere il tuo duro lavoro, la tua immagine personale, o FreeBSD, ma semplicemente perché hanno una visione differente del mondo. La diversità è una buona cosa. Dissenti onestamente. Argomenta la tua posizione con i suoi meriti, sii onesto sui difetti che può avere, e sii disponibile a guardare le loro soluzioni, o anche le loro visioni del problema, con mente aperta. Accetta le correzioni. Possiamo tutti sbagliare. Se hai fatto un errore, scusati e vai avanti con la tua vita. Non picchiarti, e sicuramente non picchiare gli altri per il tuo sbaglio. Non sprecare tempo imbarazzandoti o recriminando, risolvi solo il problema e vai avanti. Chiedi aiuto. Cerca (e dai) revisioni dagli altri. Uno delle cose in cui dovrebbe eccellere il software open source è il numero di occhi che lo scrutano; questo non è vero se nessuno revisionerà il codice. GNATS Il FreeBSD Project utilizza GNATS per gestire i bug e le richieste di cambiamenti. Assicurati di usare edit-pr numero-pr su freefall quando effettui il commit di una correzione o di un suggerimento trovato in un PR GNATS per chiuderlo. È inoltre considerato gentile se trovi il tempo di chiudere ogni PR associato al tuo commit, se esistono. Puoi anche usare &man.send-pr.1; tu stesso per proporre qualsiasi cambiamento che pensi debba essere fatto, a seguito di una maggiore revisione da parte di altre persone. Puoi trovare di più su GNATS su: http://www.cs.utah.edu/csinfo/texinfo/gnats/gnats.html http://www.FreeBSD.org/support.html &man.send-pr.1; Puoi far girare una copia locale di GNATS, e poi integrare l'albero GNATS di FreeBSD in esso tramite CVSup. In seguito puoi usare i comandi GNATS localmente, o usare altre interfacce, come tkgnats. Questo ti permette di interrogare il database dei PR senza bisogno di essere connesso a Internet. Utilizzo di un albero GNATS locale Se non stai già scaricando l'albero GNATS, aggiungi questa riga al tuo supfile, e riesegui &man.cvsup.1;. Nota che siccome GNATS non è sotto il controllo di CVS non ha tag, quindi se lo stai aggiungendo al tuo supfile esistente deve apparire prima di ogni voce tag= dato che queste rimangono attive una volta impostate. gnats release=current prefix=/usr Questo metterà l'albero GNATS di FreeBSD in /usr/gnats. Puoi usare un file refuse per controllare quali categorie ricevere. Per esempio, per ricevere solo i PR docs, metti questa riga in /usr/local/etc/cvsup/sup/refuse Il percorso preciso dipende dall'impostazione *default base nel tuo supfile. . gnats/[a-ce-z]* Il resto di questi esempi assume che tu abbia scaricato solo la categoria docs. Modificali quando è necessario, a seconda delle categorie che tieni in sincronia. Installa il port GNATS da ports/databases/gnats. Questo metterà le varie directory GNATS sotto $PREFIX/share/gnats. Crea un symlink per le directory GNATS che aggiorni tramite CVSup sotto la versione di GNATS che hai installato. &prompt.root; cd /usr/local/share/gnats/gnats-db &prompt.root; ln -s /usr/gnats/docs Ripeti tante volte quanto necessario, a seconda di quante categorie GNATS tieni in sincronia. Aggiorna il file categories di GNATS con queste categorie. Il file è $PREFIX/share/gnats/gnats-db/gnats-adm/categories. # Questa categoria è obbligatoria pending:Categoria per i PR errati:gnats-admin: # # Categorie di FreeBSD # docs:Bug di Documentazione:freebsd-doc: Esegui $PREFIX/libexec/gnats/gen-index per ricreare l'indice GNATS. L'output deve essere reindirizzato su $PREFIX/share/gnats/gnats-db/gnats-adm/index. Puoi fare questo periodicamente da &man.cron.8;, o eseguire &man.cvsup.1; da uno script di shell che fa anche questo. &prompt.root; /usr/local/libexec/gnats/gen-index \ > /usr/local/share/gnats/gnats-db/gnats-adm/index Verifica la configurazione interrogando il database dei PR. Questo comando visualizza i PR docs aperti. &prompt.root; query-pr -c docs -s open Anche altre interfacce, come quella fornita dal port databases/tkgnats, dovrebbero funzionare correttamente. Prendi un PR e chiudilo. Questa procedura funziona solo per permetterti di visualizzare ed interrogare i PR localmente. Per modificarli o chiuderli dovrai ancora loggarti su freefall e farlo da lì. Chi è Chi Oltre ai meister del repository, ci sono altri membri e team del FreeBSD Project che probabilmente arriverai a conoscere nel tuo ruolo di committer. Brevemente, e senza pretesa di elencarli tutti, questi sono: &a.jhb; John è il manager dell'SMPng Project, e ha autorità sulla progettazione architetturale e sull'implementazione del passaggio a un sistema di threading e locking del kernel a grana fine. È anche l'autore dell'SMPng Architecture Document. Se stai lavorando sullo stesso sistema, coordinati con John. Puoi imparare di più sull'SMPng Project dalla sua home page: &a.jake;, &a.tmm; Jake e Thomas sono i maintainer del port sull'architettura - sparc64. + &sparc64;. &a.doceng; doceng è il gruppo responsabile dell'infrastruttura per la realizzazione della documentazione, approva i nuovi committer della documentazione, e assicura che il sito web di FreeBSD e la documentazione sul sito FTP siano aggiornati rispetto all'albero CVS. Non è un organo di risoluzione dei conflitti. La maggior parte delle discussioni relative alla documentazione prendono posto sulla &a.doc;. I committer interessati a contribuire alla documentazione dovrebbero familiarizzare con il Documentation Project Primer. &a.ru; Ruslan è Mister &man.mdoc.7;. Se stai scrivendo una pagina man e hai bisogno di qualche suggerimento sulla struttura, o sul linguaggio di markup, chiedi a Ruslan. &a.bde; Bruce è lo Style Police-Meister. Quando fai un commit che poteva essere fatto meglio, Bruce sarà lì a dirtelo. Ringrazia che qualcuno lo sia. Bruce conosce anche molto bene gli standard applicabili a FreeBSD. &a.gallatin; &a.mjacob; &a.dfr; &a.obrien; Questi sono gli sviluppatori e i supervisori primari della piattaforma DEC Alpha AXP. &a.dg; David è il supervisore del sistema VM. Se hai in mente una modifica al sistema VM, coordinala con David. &a.dfr; &a.marcel; &a.peter; &a.ps; Questi sono i principali sviluppatori e supervisori della - piattaforma Intel IA-64, ufficialmente conosciuta come l'Itanium + piattaforma Intel IA-64, ufficialmente conosciuta come l'&itanium; Processor Family (IPF). &a.murray; &a.steve; &a.rwatson; &a.jhb; &a.bmah; &a.scottl; Questi sono i membri del &a.re;. Questo team è responsabile di decidere i tempi delle release e controllare il processo di release. Durante i periodi di congelamento del codice, gli ingegneri di release hanno l'autorità finale su tutte le modifiche al sistema per quel ramo di cui si sta preparando la release. Se c'è qualcosa che vuoi sia fuso da &os.current; a &os.stable; (qualsiasi valore queste possano avere in un dato momento), queste sono le persone con cui devi parlare. Bruce è anche l'autore della documentazione di release (src/release/doc/*). Se effettui il commit di una modifica che pensi sia degna di menzione nelle note di release, assicurati che Bruce lo sappia. Meglio ancora, inviagli una patch con il tuo commento. &a.benno; Benno è il maintainer ufficiale del port per - PowerPC. + &powerpc;. &a.brian; Maintainer ufficiale di /usr/sbin/ppp. &a.nectar; Jacques è il FreeBSD Security Officer e supervisiona il &a.security-officer;. &a.wollman; Se hai bisogno di consigli sulle oscure parti interne delle reti o non sei sicuro di qualche eventuale modifica al sottosistema di rete che hai in mente, Garrett è qualcuno con cui parlare. Garret è inoltre molto esperto sui vari standard applicabili a FreeBSD. &a.committers; cvs-committers è l'entità che CVS usa per inviarti tutti i messaggi di commit. Non devi mai inviare email direttamente a questa lista. Puoi solamente rispondere a questa lista quando i messaggi sono brevi e direttamente correlati a un commit. &a.developers; Tutti i committer sono iscritti a -developers. Questa lista è stata creata per essere un forum sulle questioni della comunità dei committer. Esempi sono le votazioni per il Core, annunci, ecc. Questa lista non è intesa come posto per la revisione del codice o come rimpiazzo della &a.arch; o della &a.audit;. Infatti usarla in questo modo urta il FreeBSD Project dato che dà l'impressione di una lista privata dove vengono prese le decisioni generali che influenzano tutta la comunità che usa FreeBSD senza essere rese pubbliche. Ultimo, ma non per importanza mai e poi mai invia un messaggio alla &a.developers; mettendo in CC:/BCC: un'altra lista FreeBSD. Mai e poi mai invia un messaggio su un'altra mailing list mettendo in CC:/BCC: la &a.developers;. Fare questo può diminuire enormemente i benefici di questa lista. Inoltre, non pubblicare o inoltrare mai email inviate alla &a.developers;. L'atto di inviare un messaggio alla &a.developers; anziché a una lista pubblica significa che le informazioni contenute non sono ad uso pubblico. Guida Rapida a SSH Se stai usando FreeBSD 4.0 o successivo, OpenSSH è incluso nel sistema base. Se stai usando una release precedente, aggiorna ed installa uno dei port di SSH. In generale, probabilmente vorrai prendere OpenSSH dal port security/openssh. Potresti anche voler estrarre l'ssh1 originale dal port security/ssh, ma sii certo di porre la dovuta attenzione alla sua licenza. Nota che questi port non possono essere installati contemporaneamente. Se non vuoi digitare la tua password ogni volta che usi &man.ssh.1;, e usi chiavi RSA o DSA per autenticarti, &man.ssh-agent.1; è lì per la tua comodità. Se vuoi usare &man.ssh-agent.1;, assicurati di eseguirlo prima di utilizzare altre applicazioni. Gli utenti X, per esempio, solitamente fanno questo dal loro file .xsession o .xinitrc. Guarda &man.ssh-agent.1; per i dettagli. Genera un paio di chiavi con &man.ssh-keygen.1;. Le chiavi finiranno nella tua directory $HOME/.ssh. Invia la tua chiave pubblica ($HOME/.ssh/identity.pub) alla persona che ti sta configurando come committer in modo che possa inserirla nel file authorized_keys nella tua home directory su freefall (ad esempio, $HOME/.ssh/authorized_keys). Ora dovresti essere in grado di usare &man.ssh-add.1; per autenticarti una volta a sessione. Ti verrà richiesta la pass phrase della tua chiave privata, e quindi verrà salvata nel tuo agente di autenticazione (&man.ssh-agent.1;). Se non vuoi più avere la tua chiave salvata nell'agente, l'esecuzione di ssh-add -d la rimuoverà. Verifica facendo qualcosa come ssh freefall.FreeBSD.org ls /usr. Per maggiori informazioni, guarda security/openssh, &man.ssh.1;, &man.ssh-add.1;, &man.ssh-agent.1;, &man.ssh-keygen.1;, e &man.scp.1;. Il Lungo Elenco di Regole dei Committer di FreeBSD Traduzione in corso Supporto per Diverse Architetture Traduzione in corso FAQ Specifiche sui Port Traduzione in corso Benefici del Lavoro Traduzione in corso Domande Generali Traduzione in corso
diff --git a/it_IT.ISO8859-15/articles/euro/article.sgml b/it_IT.ISO8859-15/articles/euro/article.sgml index 64033959d2..2175ae56bc 100644 --- a/it_IT.ISO8859-15/articles/euro/article.sgml +++ b/it_IT.ISO8859-15/articles/euro/article.sgml @@ -1,390 +1,397 @@ %man; + +%trademarks; %translators; ]>
Il simbolo dell'Euro su <systemitem class="osname">FreeBSD</systemitem> Aaron Kaplan
aaron@lo-res.org
2002 2003 The FreeBSD Italian Documentation Project $FreeBSD$ + + &tm-attrib.freebsd; + &tm-attrib.general; + + Questo documento cercherà di aiutarvi ad usare il nuovo simbolo dell'Euro presente sulla vostra nuova tastiera comprata all'inizio del 2002 per l'avvento della nuova valuta comune. Inizieremo dalle parti più importanti come essere in grado di visualizzare correttamente il simbolo in console. Le sezioni successive tratteranno la configurazione di specifici programmi come X11. Molti utili suggerimenti sono stati forniti da Oliver Fromm, Tom Rhodes e innumerevoli altri. Grazie! Senza di voi non sarebbe stato possibile realizzare questo articolo! Traduzione a cura di &a.it.dema;.
L'Euro in 5 minuti Se avete già familiarità con la localizzazione come descritta nel Manuale di FreeBSD potreste essere interessanti solamente alle seguenti informazioni che vi consentiranno di iniziare velocemente ad usare l'Euro: ISO8859-15 Questa è una versione leggermente modificata della più comune mappa caratteri ISO8859-1. Include il simbolo dell'Euro. Usata per le variabili d'ambiente LANG e LC_CTYPE. iso15-8x16.fnt Il font per la console da usare con &man.vidcontrol.1; /usr/share/syscons/keymaps/*.iso.kbd Mappe di tastiera per le diverse lingue. Impostate la vostra variabile keymap in rc.conf ad una di queste mappe. LC_CTYPE Usata per impostare il corretto tipo di caratteri nelle vostre impostazioni locali. XkbLayout "lingua(euro)" Opzione di configurazione di XFree86. /usr/X11R6/lib/X11/fonts/*/fonts.alias Assicuratevi di modificare i nomi dei vostri file dei font di X11 a -*-..-*-iso8859-15 Nota generale Nelle sezioni seguenti ci riferiremo spesso a ISO8859-15. Questa è la notazione standard a partire da FreeBSD 4.5. Nelle versioni più vecchie la notazione standard era invece ISO_8859-15 oppure DIS_8859-15. Se state usando una versione di FreeBSD più vecchia, assicuratevi di guardare in /usr/share/locale/ per scoprire quale notazione è in uso nel vostro sistema. La console Configurare il font della console In base alla risoluzione e dimensione della vostra console dovrete mettere una delle seguenti linee in rc.conf: font8x16="iso15-8x16.fnt" # da /usr/share/syscons/fonts/* font8x14="iso15-8x14.fnt" font8x8="iso15-8x8.fnt" Questo imposterà effettivamente il font ISO8859-15 conosciuto anche come Latin-9. ISO8859-15 è una variazione di ISO8859-1. Potete notare la differenza tra i due esaminando il simbolo dell'Euro: il suo valore decimale è 164. Nell'ISO8859-1 noterete un cerchietto con quattro piccoli segnetti agli angoli. Questo è spesso chiamato simbolo universale di valuta. Nell'ISO8859-15, invece del cerchietto, avrete il simbolo dell'Euro. Per il resto i font sono più o meno identici. Al momento della stesura di questo articolo l'unico font utilizzabile sembra essere l'iso15-8x16.fnt. Gli altri sembrano avere l'aspetto dello ISO8859-1 sebbene il nome suggerisca altrimenti. Impostando questo font alcune applicazioni da console avranno un aspetto rovinato. Questo è dovuto al fatto che esse si aspettano di trovare un diverso set di font/caratteri come per esempio l'ANSI 850. Un tipico esempio è sysinstall. Comunque questo non dovrebbe essere un problema nella maggior parte dei casi. Il vostro prossimo passo dovrebbe essere o riavviare il vostro sistema affinché i cambiamenti abbiano effetto oppure (manualmente) effettuare le modifiche nello stesso modo in cui avverrebbero all'avvio: &prompt.user; vidcontrol -f iso15-8x16.fnt Per controllare se il font è stato impostato eseguite il seguente piccolo script awk: #!/usr/bin/awk -f BEGIN { for(i=160;i<180;i++) printf"%3d %c\n",i,i } Il risultato dovrebbe mostrare il simbolo dell'Euro nella posizione 164. Configurare la vostra tastiera per l'Euro La maggior parte delle mappe di tastiera dovrebbe essere già correttamente impostata. Per esempio, se avete una tastiera italiana e vi funzionano le lettere accentate, potete tranquillamente saltare questa sezione visto che la tastiera mappa correttamente la combinazioni di caratteri, qualunque essa sia, (ad esempio: Alt Gr e ) al valore decimale 164. Se avete problemi la cosa migliore è controllare i file in /usr/share/syscons/keymaps/*.kbd. Il formato dei file delle mappe di tastiera è descritto in &man.keyboard.4;. &man.kbdcontrol.1; può essere usato per caricare una mappa personalizzata. Una volta che è stata trovata la corretta mappa di tastiera, dovete aggiungerla a /etc/rc.conf con la linea: keymap="it.iso" # o un'altra mappa Come spiegato in precedenza, questo passo probabilmente lo avete già fatto al momento dell'installazione (con sysinstall). In caso contrario, riavviate oppure caricate la nuova mappa con &man.kbdcontrol.1;. Per verificare la nuova mappatura della tastiera, passate ad una nuova console e al prompt di login, invece di loggarvi, provate a premere il tasto Euro. Se non funziona assicuratevi di aver correttamente impostato la giusta mappa di tastiera oppure inviate una segnalazione di bug con &man.send-pr.1;. Al momento il tasto Euro non funziona ancora con bash o tcsh. Correggere le variabili d'ambiente Le shell (bash, tcsh) si basano sulla libreria &man.readline.3;, la quale a sua volta utilizza la variabile d'ambiente LC_CTYPE. LC_CTYPE deve essere impostata prima che la shell sia completamente operativa. Fortunatamente è sufficiente aggiungere la linea: export LC_CTYPE=it_IT.ISO8859-15 al vostro file .bash_profile (bash), oppure: setenv LC_CTYPE it_IT.ISO8859-15 al vostro file .login (tcsh). Naturalmente, it_IT deve essere sostituito con la vostra lingua. Poi, sloggatevi e riloggatevi nuovamente, e verificate che il tasto Euro funzioni. Già così la maggior parte delle applicazioni console dovrebbe funzionare correttamente col tasto Euro. Ulteriori configurazioni per programmi speciali come pine potrebbero essere comunque necessarie. Un'alternativa alla modifica di .login e .bash_profile è quella di impostare le variabili d'ambiente tramite &man.login.conf.5;. Questo approccio ha il vantaggio di assegnare classi di login a determinati utenti (esempio, utenti Francesi, utenti Tedeschi, ecc.) in un solo posto. Modificare X11 Modificate /etc/XF86Config secondo le seguenti istruzioni: Option "XkbLayout" "it(euro)" Come sempre, rimpiazzate it con la vostra lingua. Così facendo la tastiera dovrebbe essere configurata correttamente. Come in console, deve essere scelto il font adatto. Per le applicazioni KDE andate in KDE control center -> Personalization -> Country & Language -> Charset e cambiatelo in ISO8859-15. Simili modifiche si devono effettuare per kmail e altre applicazioni. Un'altra buona idea è modificare i vostri file fonts.alias. In particolar modo il font fixed dovrebbe essere modificato per usare la giusta mappa caratteri. Il file /usr/X11R6/lib/X11/fonts/misc/fonts.alias dell'autore è mostrato come esempio: ! $Xorg: fonts.alias,v 1.3 2000/08/21 16:42:31 coskrey Exp $ fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15 variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15 (...) Come in console, applicazioni speciali hanno ancora i font ISO8859-1 configurati nei loro rispettivi database &man.xrdb.1;. Un esempio importante è xterm. Come regola generale è sufficiente cambiare il corrispondente file di configurazione in /usr/X11R6/lib/X11/app-defaults e aggiungere il font corretto. Ecco come fare per xterm. &prompt.root; cd /usr/X11R6/lib/X11/app-defaults/ &prompt.root; vi XTerm Aggiungete la seguente linea all'inizio del file: *font: -misc-fixed-medium-r-normal-*-*-120-*-*-c-*-iso8859-15 Infine, fate ripartire X e assicuratevi che i font siano visualizzati correttamente eseguendo il precedente script awk. Tutte le principali applicazioni dovrebbero rispettare la mappatura di tastiera e l'impostazione del font. Problemi non ancora risolti Naturalmente, l'autore gradirebbe ricevere i vostri commenti. Inoltre, fatemi almeno sapere se avete soluzioni per questi problemi irrisolti. Descrivere metodi alternativi per configurare XFree86: x11/xkeycaps Impostazioni in GNOME Impostazioni in XFCE Impostazioni per (X)Emacs Descrivere l'UTF-8 Descrivere libiconv come un buon sistema per convertire applicazioni da ISO8859-15 a UTF-{8,16}
diff --git a/it_IT.ISO8859-15/articles/explaining-bsd/article.sgml b/it_IT.ISO8859-15/articles/explaining-bsd/article.sgml index 715cbe6e59..84f646b98e 100644 --- a/it_IT.ISO8859-15/articles/explaining-bsd/article.sgml +++ b/it_IT.ISO8859-15/articles/explaining-bsd/article.sgml @@ -1,599 +1,612 @@ %man; %freebsd; + +%trademarks; %translators; ]>
Panoramica su BSD Greg Lehey
grog@FreeBSD.org
+ + &tm-attrib.freebsd; + &tm-attrib.apple; + &tm-attrib.linux; + &tm-attrib.opengroup; + &tm-attrib.sun; + &tm-attrib.xfree86; + &tm-attrib.general; + + Nel mondo open source, la parola Linux è quasi sinonimo di Sistema Operativo, ma non si tratta del solo sistema operativo &unix; open source. Secondo l'Internet Operating System Counter, ad Aprile del 1999 il 31.3% delle macchine connesse in rete ha in esecuzione Linux. - Il 14.6% fa girare BSD UNIX. + Il 14.6% fa girare BSD &unix;. Alcuni dei più grandi operatori del web, come Yahoo!, usano BSD. Il server FTP più affollato del mondo, ftp.cdrom.com, usa BSD per trasferire 1.4 TB di dati al giorno. Chiaramente questo non è un mercato di nicchia: BSD è un segreto ben mantenuto. Dunque, qual è il segreto? Perché BSD non è conosciuto meglio? Questo documento risponde a questa e ad altre domande. In questo documento, le differenze tra BSD e Linux verranno evidenziate così. Traduzione a cura di &a.it.surrender;.
Cos'è BSD? BSD sta per Berkeley Software Distribution. È 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&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: Il kernel BSD, che gestisce lo scheduling dei processi, l'utilizzo della memoria, il supporto multiprocessore (SMP), i driver dei vari dispositivi, ecc. Diversamente dal kernel Linux, ci sono differenti kernel BSD con differenti caratteristiche. La libreria C, le API di base per il sistema. La libreria C BSD è basata su codice proveniente da Berkeley, non dal progetto GNU. Utilità come shell, file manager, compilatori e linker. Alcune delle applicazioni derivano dal progetto GNU, altre no. L'X Window System, che gestisce la visualizzazione grafica. L'X Window System usato nella maggior parte delle versioni di BSD viene mantenuto come un progetto separato, il - progetto XFree86. + progetto &xfree86;. Questo è lo stesso codice usato da Linux. BSD in genere non specifica un desktop grafico come GNOME o KDE, anche se questi sono disponibili. Molti altri programmi ed utilità. - Cosa, un vero UNIX? + Cosa, un vero &unix;? I sistemi operativi BSD non sono cloni, ma derivati open source - del sistema operativo UNIX dell'AT&T Research, che è anche - l'antenato del moderno UNIX System V. Questo potrebbe sorprendere. Come - è potuto accadere questo, se la AT&T non ha mai rilasciato il - suo codice come open source? + del sistema operativo &unix; dell'AT&T Research, che è anche + l'antenato del moderno &unix; System V. Questo potrebbe sorprendere. + Come è potuto accadere questo, se la AT&T non ha mai rilasciato + il suo codice come open source? - È vero che lo UNIX AT&T non è open source, e nel + È vero che lo &unix; AT&T non è open source, e nel senso del copyright BSD in definitiva non è - UNIX, ma d'altro canto l'AT&T ha importato sorgenti da altri progetti, - in maniera rilevante dal Computer Sciences Research Group + &unix;, ma d'altro canto l'AT&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 Berkeley Software Distribution o BSD. 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 Internet Protocols, e in seguito come TCP/IP, ai nomi dei protocolli più importanti. La prima implementazione distribuita in maniera estesa fu parte di 4.2BSD, nel 1982. Nel corso degli '80, sorsero un certo numero di compagnie - che producevano workstation. Molti preferirono usare UNIX su licenza + 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 + In particolare, la Sun Microsystems rilicenziò &unix; ed implementò una versione commerciale di 4.2BSD, che chiamò - SunOS. Quando alla AT&T stessa fu permesso di vendere UNIX + SunOS. Quando alla AT&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 csh e l'editor vi. Complessivamente, questi miglioramenti furono conosciuti come le Estensioni Berkeley. Il nastro BSD conteneva codice AT&T e dunque richiedeva - una licenza per il sorgente UNIX. Dal 1990, il finanziamento del CSRG + 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&T. Ciò accadde infine con il Networking Tape 2, in genere noto come Net/2. 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 386BSD. Allo stesso tempo, un altro gruppo di ex membri del CSRG formò una compagnia chiamata Berkeley Software Design Inc. e rilasciò una versione beta di un sistema operativo chiamato BSD/386, che era basato sugli stessi sorgenti. Il nome del sistema operativo è cambiato di recente in BSD/OS. 386BSD non divenne mai un sistema operativo stabile. Invece, due altri progetti se ne distaccarono nel 1993: NetBSD e FreeBSD. 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, un ulteriore progetto, OpenBSD, si divise da NetBSD. Perché BSD non è più conosciuto? Per un certo numero di ragioni, BSD è relativamente sconosciuto: Gli sviluppatori BSD sono spesso più interessati a ripulire il loro codice che a fagli pubblicità. 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. 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. Nel 1992, l'AT&T citò in giudizio BSDI, il produttore di BSD/386, sostenendo che il prodotto conteneva codice sotto copyright della AT&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 concluso recentemente. Un dettaglio che venne chiarito dall'azione legale fu il nome: - negli anni '80, BSD era stato conosciuto come BSD Unix. + negli anni '80, BSD era stato conosciuto come BSD + &unix;. Con l'eliminazione delle ultima vestigia del codice AT&T da BSD, - si era perso anche il diritto di usare il nome UNIX. Per questo + si era perso anche il diritto di usare il nome &unix;. Per questo noterete riferimenti nei libri al sistema operativo 4.3BSD - UNIX ed al sistema operativo 4.4BSD. + &unix; ed al sistema operativo 4.4BSD. C'è una certa percezione che il progetto BSD sia frammentato e belligerante. Il Wall Street Journal parlò di balcanizzazione dei progetti BSD. Come per l'azione legale, questa percezione si basa principalmente su vecchie storie. Paragone tra BSD e Linux 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. + 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 ed OpenBSD sono piccole. Chi possiede BSD? 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 gestiti da diversi responsabili. Come viene sviluppato ed aggiornato BSD? I kernel BSD vengono sviluppati ed aggiornati seguendo il modello di sviluppo open source. Ogni progetto mantiene un albero dei sorgenti liberamente accessibile in un Concurrent Versions System, 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 estrarre (in sostanza, estrarre una copia di) ogni versione desiderata del sistema. Un grande numero di sviluppatori da tutto il mondo contribuisce al miglioramento di BSD. Essi sono divisi in tre grandi gruppi: I contributor 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 committer. I committer 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. È 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 marcia indietro. Tutti i committer ricevono una lettera che descrive ogni modifica individuale, dunque non è possibile effettuare un commit segretamente. Il Core Team. 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. Questa organizzazione differisce da Linux in vari modi: 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. D'altra parte, c'è un deposito centrale, un punto singolo dove è possibile trovare i sorgenti dell'intero sistema, incluse tutte le vecchie versioni. I progetti BSD mantengono l'intero Sistema Operativo, 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. 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. Release di BSD Ogni progetto BSD fornisce il sistema in tre release 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: la versione di sviluppo del sistema è chiamata CURRENT. 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 (OpenBSD-current). Tutti gli sviluppi del sistema vanno in questo ramo. A intervalli regolari, tra le due e le quattro volte all'anno, i progetti fanno uscire una versione RELEASE 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 patch release, versioni con solo piccole correzioni, con una terza cifra, ad esempio NetBSD 1.4.2. 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 STABLE, 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. 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 TurboLinux 6.0 con kernel 2.2.14 Quali versioni di BSD sono disponibili? In contrasto alle numerose distribuzioni Linux, ci sono solo tre 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. È difficile catalogare gli obiettivi di ogni progetto: le differenze sono molto soggettive. Di base, FreeBSD punta alle alte prestazioni e alla facilità d'uso per l'utente finale, ed è molto usato dai fornitori di contenuti web. Funziona su PC e processori Alpha della Compaq. Il progetto FreeBSD ha nettamente più utenti degli altri. NetBSD punta alla massima portabilità: of course it runs NetBSD, 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. 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. Ci sono anche altri due sistemi operativi BSD che non sono open - source, BSD/OS e il Mac OS X della Apple: + source, BSD/OS e il &macos; X della Apple: BSD/OS è il più antico dei derivati di 4.4BSD. Non è open source, anche se licenze per il codice sorgente sono disponibili ad un costo relativamente basso. Assomiglia a FreeBSD in molti sensi. - Mac OS + &macos; X è l'ultima versione del sistema operativo per - la linea Macintosh della Apple - Computer Inc.. L'anima BSD Unix di questo sistema + la linea &macintosh; della Apple + Computer Inc.. L'anima BSD &unix; di questo sistema operativo, Darwin, è 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 Mac OS X rimangono comunque + e molti altri aspetti proprietari di &macos; X rimangono comunque closed source. Numerosi sviluppatori di Darwin sono anche committer di FreeBSD, e viceversa. Come differisce la licenza BSD dalla GNU Public? Linux è disponibile con licenza GNU General Public License (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 licenza BSD è meno restrittiva: le distribuzioni dei soli binari sono permesse. Ciò è particolarmente attraente per le applicazioni embedded. Cos'altro dovrei sapere? 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. La natura tutto da una sola fonte 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. Cosa dovrei usare, BSD o Linux? Cosa significa tutto questo in pratica? Chi dovrebbe usare BSD, chi dovrebbe usare Linux? Questa è una domanda molto difficile a cui rispondere. Qui ci sono alcune linee guida: Se non è rotto, non aggiustarlo: se usi già un sistema operativo open source, e ne sei soddisfatto, probabilmente non c'è ragione di cambiare. 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. In generale, i sistemi BSD hanno una reputazione migliore di affidabilità, principalmente come risultato di una base di codice più maturo. La licenza BSD può essere più attraente della GPL. BSD può eseguire codice Linux, mentre Linux non può eseguire codice BSD. Come risultato, c'è più software disponibile per BSD che per Linux. Chi fornisce supporto, servizi, e training su BSD? BSD ha sempre supportato BSD/OS, e recentemente ha annunciato contratti di supporto per FreeBSD. Inoltre, ognuno dei progetti ha una lista di consulenti a pagamento: FreeBSD, NetBSD, e OpenBSD.
diff --git a/it_IT.ISO8859-15/articles/filtering-bridges/article.sgml b/it_IT.ISO8859-15/articles/filtering-bridges/article.sgml index 516a0ee65e..5561fc02b9 100644 --- a/it_IT.ISO8859-15/articles/filtering-bridges/article.sgml +++ b/it_IT.ISO8859-15/articles/filtering-bridges/article.sgml @@ -1,424 +1,433 @@ %man; + +%trademarks; ]>
Filtering Bridges Alex Dupre
sysadmin@alexdupre.com
$FreeBSD$ + + + &tm-attrib.freebsd; + &tm-attrib.3com; + &tm-attrib.intel; + &tm-attrib.general; + 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. Un bridge funziona individuando gli indirizzi del livello MAC (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.
Perché usare un filtering bridge? 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 (ISP), vuoi perché il router non supporta tali funzionalità. È in questi casi che l'utilizzo di un filtering bridge diventa altamente consigliato. 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. La traduzione italiana di firewall è muro anti incendio, non muro di fuoco come molti pensano. Nel corso dell'articolo, comunque, manterrò i termini tecnici nella loro lingua originale in modo da non creare confusione o ambiguità. Metodi d'installazione 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. Non seguite entrambe le istruzioni: le procedure sono a esclusione. Scegliete l'alternativa che meglio si adatta alle vostre esigenze e capacità. 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 3Com 3c9xx subito dopo. Per + ðerexpress; 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. Configurazione del Kernel 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: options BRIDGE options IPFIREWALL options IPFIREWALL_VERBOSE La prima riga serve a compilare il supporto per il bridge, la seconda il firewall e la terza le funzioni di logging del firewall. Adesso è necessario compilare e installare il nuovo kernel. Si possono trovare le istruzioni nella sezione Building and Installing a Custom Kernel dell'handbook. Caricamento dei Moduli Se avete deciso di usare il nuovo e più semplice metodo di installazione, l'unica cosa da fare è aggiungere la seguente riga al file /boot/loader.conf: bridge_load="YES" In questo modo all'avvio della macchina verrà caricato insieme al kernel anche il modulo bridge.ko. Non è necessario invece aggiungere una riga per il modulo ipfw.ko in quanto verrà caricato in automatico dallo script /etc/rc.network dopo aver seguito i passi della prossima sezione. Preparativi finali 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 /etc/rc.conf. La regola di default del firewall è di rifiutare tutti i pacchetti IP. Per iniziare attiviamo il firewall in modalità , 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 /etc/rc.conf: firewall_enable="YES" firewall_type="open" firewall_quiet="YES" firewall_logging="YES" La prima riga serve ad attivare il firewall (e a caricare il modulo ipfw.ko nel caso non fosse già compilato nel kernel), la seconda a impostarlo in modalità (come descritto nel file /etc/rc.firewall), la terza a non visualizzare il caricamento delle regole e la quarta ad abilitare il supporto per il logging. 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 DNS), visto che il bridge verrà attivato alla fine della procedura di avvio. Questo vuol dire che l'interfaccia fxp0 (nel nostro caso) deve essere menzionata nella sezione ifconfig del file /etc/rc.conf, mentre la xl0 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. C'è un'altra cosa importante da sapere. Quando si utilizza IP sopra Ethernet ci sono due protocolli Ethernet in uso: uno è IP, l'altro è ARP. ARP permette la conversione dell'indirizzo IP di una macchina nel suo indirizzo Ethernet (livello MAC). Affinché due macchine separate dal bridge riescano a comunicare tra loro è necessario che il bridge lasci passare i pacchetti ARP. 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 ARP) verranno inoltrati senza essere filtrati, anche se il firewall è configurato per non lasciar passare nulla. 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à , non impedirà nessuna operazione. Se ci dovessero essere dei problemi, è il caso di scoprire ora da cosa derivino e risolverli prima di continuare. Attivazione del Bridge A questo punto, per attivare il bridge, bisogna eseguire i seguenti comandi (avendo l'accortezza di sostituire i nomi delle due interfacce di rete fxp0 e xl0 con i propri): &prompt.root; sysctl net.link.ether.bridge_cfg=fxp0:0,xl0:0 &prompt.root; sysctl net.link.ether.bridge_ipfw=1 &prompt.root; sysctl net.link.ether.bridge=1 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. 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 net.link.ether.[blah]=[blah] di queste righe al file /etc/sysctl.conf, in modo che vengano eseguite all'avvio della macchina. Configurazione del Firewall 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 oppure non verrà mai eseguita. Personalmente uso che è una sintassi più antica, ma che ha un senso quando la si legge. Un'altra limitazione è che si possono usare solo i comandi e per i pacchetti filtrati dal bridge. Cose avanzate come , o 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). Nuovo in FreeBSD 4.0 è il concetto di stateful filtering. Questo è un grande miglioramento per il traffico UDP, 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ò ricordarsi di un pacchetto UDP in uscita e permette una risposta nei minuti successivi, gestire i servizi UDP è semplice. L'esempio seguente mostra come fare. La stessa cosa è possibile farla con i pacchetti TCP. 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. Vediamo un esempio di configurazione. Bisogna notare che all'inizio del file /etc/rc.firewall ci sono già delle regole standard per l'interfaccia di loopback lo0, quindi non ce ne occuperemo più ora. Le regole personalizzate andrebbero messe in un file a parte (per esempio /etc/rc.firewall.local) e caricate all'avvio modificando la riga del file /etc/rc.conf dove era stata definita la modalità con: firewall_type="/etc/rc.firewall.local" Bisogna specificare il path completo del file, altrimenti non verrà caricato con il rischio di rimanere tagliati fuori dalla rete. Per il nostro esempio immaginiamo di avere l'interfaccia fxp0 collegata all'esterno (Internet) e la xl0 verso l'interno (LAN). La macchina bridge ha assegnato l'IP 1.2.3.4 (è impossibile che il vostro ISP vi assegni un indirizzo di classe A di questo tipo, ma per l'esempio va bene). # 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 Coloro che hanno configurato un firewall in precedenza potrebbero aver notato che manca qualcosa. In particolare, non ci sono regole contro lo spoofing, difatti non abbiamo aggiunto: add deny all from 1.2.3.4/8 to any in via fxp0 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'è almeno un host sull'interfaccia esterna che non si può ignorare: il router. Solitamente, però, gli ISP eseguono il controllo anti-spoof sui loro router e quindi non ce ne dobbiamo preoccupare. 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. Ci sono due regole per permettere il traffico SMTP e DNS 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é relay e ns siano interpretati correttamente, la risoluzione dei nomi deve funzionare prima 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). Le persone che sono solite configurare un firewall probabilmente avranno sempre usato una regola o per i pacchetti ident (porta 113 TCP). 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 IRC (le richieste ident devono andare in timeout). 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 in via fxp0 funzionano in entrambi i casi. In generale, se usate regole attraverso il packet filter, dovrete fare un'eccezione per i pacchetti generati localmente, in quanto non entrano tramite nessuna interfaccia. Contributi 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. 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.
diff --git a/it_IT.ISO8859-15/articles/multi-os/article.sgml b/it_IT.ISO8859-15/articles/multi-os/article.sgml index c4f809ee02..21c7ba5400 100644 --- a/it_IT.ISO8859-15/articles/multi-os/article.sgml +++ b/it_IT.ISO8859-15/articles/multi-os/article.sgml @@ -1,769 +1,792 @@ %authors; + +%trademarks; %translators; ]>
- Installazione e Utilizzo di FreeBSD con altri Sistemi Operativi + Installazione e Utilizzo di FreeBSD con altri Sistemi + Operativi Jay Richmond
jayrich@sysc.com
6 Agosto 1996 + + &tm-attrib.freebsd; + &tm-attrib.ibm; + &tm-attrib.linux; + &tm-attrib.microsoft; + &tm-attrib.powerquest; + &tm-attrib.general; + + Questo documento spiega come far coesistere felicemente - FreeBSD con altri sistemi operativi come Linux, MS-DOS, - OS/2, e Windows 95. + FreeBSD con altri sistemi operativi come Linux, &ms-dos;, + &os2;, e &windows; 95. Un ringraziamento speciale va a: Annelise Anderson andrsn@stanford.edu, Randall Hopper rhh@ct.picker.com, e &a.jkh;. Traduzione a cura di &a.it.max;.
Introduzione Molta gente non può far convivere questi sistemi operativi senza avere a disposizione un hard disk di grosse dimensioni, perciò sono state incluse informazioni speciali sui drive EIDE di grosse dimensioni. Poiché ci sono così tante combinazioni di possibili sistemi operativi e configurazioni di hard disk, la potrebbe esserti di aiuto più di altre. Contiene descrizioni di specifiche configurazioni che usano molteplici sistemi operativi. Questo documento assume che tu abbia già fatto posto sul tuo hard disk per un altro sistema operativo. Ogni volta che ripartizioni il tuo hard disk, corri il rischio di distruggere e quindi perdere i dati sulle partizioni originali. In ogni caso, se il tuo hard disk è completamente occupato dal DOS, potresti usare FIPS (incluso nel CDROM di FreeBSD nella directory \TOOLS oppure via - ftp). + ftp). Ti permette di ripartizionare il tuo hard disk senza distruggere i dati già contenuti. C'è anche un programma commerciale - chiamato Partition Magic, che ti permette + chiamato &partitionmagic;, che ti permette di ridimensionare e cancellare partizioni senza conseguenze. Panoramica sui Boot Manager Si tratta solo di brevi descrizioni dei diversi boot manager che potresti trovare. A seconda del tuo computer, potresti trovare utile usarne più di uno sullo stesso sistema. Boot Easy Questo è il boot manager standard fornito con FreeBSD. Ha la possibilità di far partire qualsiasi cosa, incluso BSD, - OS/2 (HPFS), Windows 95 (FAT e FAT32), e Linux. + &os2; (HPFS), &windows; 95 (FAT e FAT32), e Linux. Le partizioni vengono scelte con i tasti funzione (F1-F12). - Boot Manager di OS/2 + Boot Manager di &os2; Questo fa partire FAT, FAT32, HPFS, FFS (FreeBSD), ed EXT2 - (Linux). Le partizioni - vengono scelte usando i tasti freccia. L'OS/2 Boot Manager è + (Linux). Le partizioni vengono scelte usando i tasti freccia. + L'&os2; Boot Manager è l'unico ad usare una propria partizione separata, diversamente dagli altri, che usano il master boot record (MBR). Di conseguenza, deve essere installato prima del 1024esimo cilindro per evitare problemi di avvio. Può far partire Linux usando LILO quando questo è parte del settore di avvio, non dell'MBR. Leggi gli HOWTO - di Linux sul World Wide Web per avere più + url="http://www.linuxresources.com/LDP/HOWTO/HOWTO-INDEX.html">HOWTO + di Linux sul World Wide Web per avere più informazioni su come far partire Linux con il boot manager di - OS/2. + &os2;. OS-BS Questa è un'alternativa a Boot Easy. Ti dà più controllo sul processo di avvio, con la possibilità di impostare la partizione di default da cui partire e il timeout di avvio. La versione beta di questo programma ti permette di avviare scegliendo il sistema operativo con i tasti freccia. È incluso nel cd di FreeBSD nella directory \TOOLS oppure via ftp. + url="ftp://ftp.FreeBSD.org/pub/FreeBSD/tools/">ftp. LILO, o LInux LOader Questo è un boot manager limitato. Farà partire FreeBSD, sebbene siano necessari alcuni accorgimenti e sistemazioni nel file di configurazione. A proposito di FAT32 FAT32 è il rimpiazzo al file system FAT incluso nella Release Beta SR2 di Microsoft, che dovrebbe essere installata - con Windows 95 a partire dalla fine del 1996. Converte il + con &windows; 95 a partire dalla fine del 1996. Converte il normale file system FAT e ti permette di usare cluster di dimensioni più piccole per hard disk di dimensioni maggiori. Inoltre FAT32 modifica il settore di avvio tradizionale e la tabella di allocazione, rendendola incompatibile con alcuni Boot Manager. Una Installazione Tipica Diciamo che ho due grandi hard disk EIDE e voglio installarci - FreeBSD, Linux, e Windows 95. + FreeBSD, Linux, e &windows; 95. Ecco come potrei fare usando questi due hard disk: /dev/wd0 (Primo hard disk) /dev/wd1 (Secondo hard disk) Tutti e due hanno 1416 cilindri. - Parto dalla partizione MS-DOS o dal dischetto di avvio - di Windows 95 che contiene l'utility FDISK.EXE + Parto dalla partizione &ms-dos; o dal dischetto di avvio + di &windows; 95 che contiene l'utility FDISK.EXE e creo una piccola partizione primaria da 50 MB - (35-40 per Windows 95, più un po' di spazio per respirare) + (35-40 per &windows; 95, più un po' di spazio per respirare) sul primo disco. Creo anche una partizione più grande sul - secondo hard disk per le applicazioni di Windows e per i dati. + secondo hard disk per le applicazioni di &windows; e per i + dati. - Faccio ripartire ed installo Windows 95 (più facile a + Faccio ripartire ed installo &windows; 95 (più facile a dirsi che a farsi) sulla partizione C:. La prossima cosa che farò sarà installare Linux. Non sono sicuro per le altre distribuzioni, ma la Slackware include LILO (guarda la ). Quando ripartiziono il mio hard disk con l'fdisk di Linux, metterò tutto ciò che riguarda Linux sul primo hard disk (probabilmente 300 MB per una partizione di root decente e un po' di spazio di swap). Dopo aver installato Linux, quando viene chiesto di installare LILO, assicurati di installarlo sul settore di avvio della partizione di Linux, non nell'MBR (Master Boot Record). La parte rimanente di hard disk va a FreeBSD. Assicurati anche che la slice root di FreeBSD non vada oltre il 1024esimo cilindro. (Il 1024esimo cilindro è circa intorno ai 528 MB in un disco ipotetico, il mio, di 720 MB). Userò il resto dell'hard disk (circa 270 MB) per /usr e /. Il resto del secondo hard disk (la grandezza varia a seconda di quanto spazio - ho lasciato agli applicativi e ai dati per Windows + ho lasciato agli applicativi e ai dati per &windows; quando ho creato la partizione nel primo passo) può essere usata per /usr/src e per lo spazio di swap. Se visualizzato con l'utility fdisk - di Windows 95, l'hard disk dovrebbe risultare in questo modo: + di &windows; 95, l'hard disk dovrebbe risultare in questo modo: --------------------------------------------------------------------- Display Partition Information Current fixed disk drive: 1 Partition Status Type Volume_Label Mbytes System Usage C: 1 A PRI DOS 50 FAT** 7% 2 A Non-DOS (Linux) 300 43% Total disk space is 696 Mbytes (1 Mbyte = 1048576 bytes) Press Esc to continue --------------------------------------------------------------------- Display Partition Information Current fixed disk drive: 2 Partition Status Type Volume_Label Mbytes System Usage D: 1 A PRI DOS 420 FAT** 60% Total disk space is 696 Mbytes (1 Mbyte = 1048576 bytes) Press Esc to continue --------------------------------------------------------------------- ** Potrebbe essere FAT16 o FAT32 se stai usando l'aggiornamento OEM SR2. Guarda la . Installazione di FreeBSD. Assicurati di avviare il computer con il primo hard disk configurato con NORMAL nel BIOS. Se non è così, dovrai settare la vera geometria del disco all'avvio (per arrivare a fare ciò, fai partire - Windows 95 e consulta Microsoft Diagnostics + &windows; 95 e consulta Microsoft Diagnostics (MSD.EXE), o controlla il BIOS) con il parametro hd0=1416,16,63 dove 1416 è il numero di cilindri sull'hard disk, 16 è il numero di testine per traccia, o heads per track, e 63 è il numero di settori per traccia sul drive. Quando partiziono l'hard disk, cerco sempre di mettere Boot Easy sul primo hard disk. Non mi preoccupo del secondo hard disk, non parte nulla da quello. Al riavvio, Boot Easy dovrebbe riconoscere le tre partizioni - avviabili, cioè quella DOS (ovvero Windows 95), Linux, e + avviabili, cioè quella DOS (ovvero &windows; 95), Linux, e BSD (FreeBSD). Considerazioni Speciali Molti sistemi operativi sono molto pignoli su come e dove devono - essere messi sull'hard disk. Windows 95 deve essere sulla prima - partizione primaria sul primo hard disk. OS/2 fa eccezione. Può + essere messi sull'hard disk. &windows; 95 deve essere sulla prima + partizione primaria sul primo hard disk. &os2; fa eccezione. Può essere installato in una partizione primaria o estesa sul primo o sul secondo hard disk. Se non sei sicuro, mantieni la parte avviabile di partizione sotto il 1024esimo cilindro. - Se installi Windows 95 su un sistema BSD esistente, questo + Se installi &windows; 95 su un sistema BSD esistente, questo distruggerà l'MBR, e dovrai reinstallare il boot manager precedente. Boot Easy può essere reinstallato usando l'utility BOOTINST.EXE inclusa nella directory \TOOLS sul cdrom, oppure - via ftp. + via ftp. Puoi anche ricominciare l'installazione e andare all'editor delle partizioni. Da lì, marcare la partizione di FreeBSD come avviabile, scegliere Boot Manager, e quindi digitare W per scrivere le informazioni nell'MBR. Puoi ora riavviare, e Boot Easy dovrebbe - riconoscere Windows 95 e DOS. + riconoscere &windows; 95 e DOS. - Ricordati che OS/2 può leggere partizioni FAT e HPFS, ma non - FFS (FreeBSD) o EXT2 (Linux). Diversamente Windows 95 può leggere - e scrivere solo su FAT o FAT32 (guarda la ). + Ricordati che &os2; può leggere partizioni FAT e HPFS, ma non + FFS (FreeBSD) o EXT2 (Linux). Diversamente &windows; 95 può + leggere e scrivere solo su FAT o FAT32 (guarda la ). FreeBSD può leggere gran parte degli altri file system, ma al momento non può leggere partizioni HPFS. Linux può leggere partizioni HPFS, ma non può scrivervi. Versioni recenti del kernel - di Linux (2.x) possono leggere e scrivere su partizioni di Windows 95 di - tipo VFAT (VFAT è ciò che permette a Windows 95 di avere + di Linux (2.x) possono leggere e scrivere su partizioni di &windows; 95 di + tipo VFAT (VFAT è ciò che permette a &windows; 95 di avere i nomi di file lunghi - è molto simile alla FAT). Linux può leggere e scrivere sulla maggior parte dei file system. Capito? Lo spero... Esempi (La sezione ha bisogno di lavoro, per favore spedisci il tuo esempio a jayrich@sysc.com). - FreeBSD+Win95: Se hai installato FreeBSD dopo Windows 95, dovresti - vedere DOS nel menu di Boot Easy. Questo è - Windows 95. Se hai installato Windows 95 dopo FreeBSD, leggi la - sopra. + FreeBSD + &windows; 95: Se hai installato FreeBSD dopo &windows; 95, + dovresti vedere DOS nel menu di Boot Easy. Questo + è &windows; 95. Se hai installato &windows; 95 dopo FreeBSD, leggi + la sopra. Fin quando il tuo hard disk non ha più di 1024 cilindri, non dovrebbero esserci problemi. Se una partizione va oltre il 1024esimo cilindro, e hai messaggi di errore come invalid system disk sotto - DOS (Windows 95) e FreeBSD non parte, prova a cercare una opzione nel BIOS - chiamata > 1024 cylinder support o + DOS (&windows; 95) e FreeBSD non parte, prova a cercare una opzione nel + BIOS chiamata > 1024 cylinder support o NORMAL/LBA mode. DOS potrebbe necessitare dell'LBA (Logical Block Addressing - Indirizzamento Logico dei Blocchi) per partire correttamente. Se l'idea di cambiare delle impostazioni nel BIOS ogni volta che si accende il computer non ti piace, puoi far partire FreeBSD da DOS con l'utility FBSDBOOT.EXE che trovi sul CD (dovrebbe trovare la tua partizione FreeBSD e farla partire). - FreeBSD+OS/2+Win95: Nulla di nuovo qui. Il boot manager di OS/2 - può far partire tutti questi sistemi operativi, cosicché non - dovrebbero esserci problemi. + FreeBSD + &os2; + &windows; 95: Nulla di nuovo qui. Il boot manager + di &os2; può far partire tutti questi sistemi operativi, + cosicché non dovrebbero esserci problemi. - FreeBSD+Linux: Puoi usare Boot Easy per far partire tutti e due i + FreeBSD + Linux: Puoi usare Boot Easy per far partire tutti e due i sistemi operativi. - FreeBSD+Linux+Win95: (guarda la ) + FreeBSD + Linux + &windows; 95: (guarda la ) Altre Fonti di Aiuto Ci sono molti HOW-TO su + url="http://www.linuxresources.com/LDP/HOWTO/HOWTO-INDEX.html">HOW-TO su Linux che trattano come affrontare il problema di avere più sistemi operativi sullo stesso hard disk. Il Linux+DOS+Win95+OS2 + url="http://www.linuxresources.com/LDP/HOWTO/mini/Linux+DOS+Win95+OS2.html">Linux+DOS+Win95+OS2 mini-HOWTO offre aiuto su come configurare il boot manager di - OS/2 e il Linux+FreeBSD + &os2; e il Linux+FreeBSD mini-HOWTO potrebbe essere anch'esso interessante. Anche il Linux-HOWTO + url="http://www.in.net/~jkatz/win95/Linux-HOWTO.html">Linux-HOWTO è di grande aiuto. L'NT + url="http://www.tburke.net/info/ntldr/ntldr_hacking_guide.htm">&windowsnt; Loader Hacking Guide fornisce buone informazioni sul - multibooting di Windows NT, '95, e DOS con altri sistemi operativi. + multibooting di &windowsnt;, '95, e DOS con altri sistemi + operativi. E il pacchetto di Hale Landis, How It Works contiene alcune utili informazioni su tutti i tipi di geometrie dei drive e su argomenti legati al processo di avvio. Puoi trovarlo su . Inoltre non perderti la documentazione del kernel di FreeBSD sul processo di avvio, disponibile nella distribuzione dei sorgenti del kernel (si scompatta in file:/usr/src/sys/i386/boot/biosboot/README.386BSD. + url="file://localhost/usr/src/sys/i386/boot/biosboot/README.386BSD">file:/usr/src/sys/i386/boot/biosboot/README.386BSD. Dettagli Tecnici (Contributo di Randall Hopper, rhh@ct.picker.com) Questa sezione prova a fornire abbastanza informazioni di base sugli hard disk e sul processo di avvio così da essere poi capaci di determinare le cause dei problemi più frequenti che potreste affrontare al momento dell'installazione e della configurazione di più sistemi operativi. Inizia con un linguaggio semplice, così potresti voler scorrere la pagina fino a quando non ti sembri difficile e cominciare quindi da quel punto a leggere. Introduzione agli Hard Disk Sono generalmente usati tre termini fondamentali per descrivere l'allocazione dei dati sull'hard disk: Cylinders (Cilindri), Heads (Testine), e Sectors (Settori). Non è particolarmente importante sapere esattamente cosa significano questi termini e quale sia il loro compito specifico, ma interessa sapere che, insieme, identificano dove si trovano fisicamente i dati sull'hard disk. Ogni hard disk ha un particolare numero di cilindri, di testine, e di settori per ogni parte di cilindro relativa a una singola testina (che generalmente viene chiamato track, o traccia). Questi dati contribuiscono a determinare la geometria fisica del disco dell'hard disk. Ci sono generalmente 512 byte per settore, e 63 settori per traccia, mentre il numero di cilindri e testine varia a seconda del tipo di hard disk. In questo modo puoi trovare la quantità di dati che il disco potrebbe contenere semplicemente calcolando: (numero di cilindri) × (numero di testine) × (63 settori/traccia) × (512 byte/settore) Per esempio, sul mio Western Digital AC31600 EIDE, questo è: (3148 cilindri) × (16 testine) × (63 settori/traccia) × (512 byte/settore) che sarebbe 1,624,670,208 byte, o circa 1.6 Giga. Puoi scoprire la geometria fisica del disco (cioè il numero di cilindri, testine, e il fattore settori/tracciati) del tuo hard disk usando ATAID o altri programmi reperibili su Internet. Probabilmente il tuo hard disk ti è stato venduto con queste informazioni. Comunque stai attento: se stai usando l'opzione LBA del BIOS (vedi la ), non puoi usare un qualsiasi programma per conoscere la geometria fisica. Questo perché molti programmi (ad esempio MSD.EXE o l'fdisk di FreeBSD) non identificano la geometria fisica del disco, fanno invece riferimento alla geometria traslata (Numeri virtuali usando LBA). Continua a leggere per saperne di più. Un altro aspetto interessante di questi termini. Dati 3 numeri—un numero di cilindri, un numero di testine, e un numero di settori per tracciato—si può identificare uno specifico settore assoluto (un blocco di 512 byte di dati) sull'hard disk. I cilindri e le testine sono numerati partendo da 0, e i settori sono numerati partendo da 1. Per quelli che sono interessati a dettagli più tecnici, informazioni sulla geometria dei dischi, settori di avvio, BIOS, e altro, possono trovare grandi quantità di informazioni in Internet. Basta fare una ricerca con Lycos, Yahoo e altri digitando boot sector o master boot record. Tra le numerose informazioni utili che si possono trovare c'è il pacchetto di documentazione How It Works (in italiano Come Funziona) di Hale Landis. Guarda la per alcuni puntatori a questo pacchetto. Ok, troppa terminologia finora. Adesso parliamo del processo di avvio. Il Processo di Avvio Sul primo settore del tuo disco (Cyl 0, Head 0, Sector 1) risiede il Master Boot Record (MBR). Questo contiene una mappa del tuo disco. Identifica fino a 4 partizioni, ciascuna delle quali è uno spazio, una parte, di quel disco. FreeBSD chiama queste partizioni slices per evitare confusione con le sue partizioni, di cui ora non parleremo. Ciascuna partizione può contenere un sistema operativo diverso. Ogni elemento che rappresenta una partizione presente nell'MBR ha un Partition ID, un valore Start Cylinder/Head/Sector, e un valore End Cylinder/Head/Sector. Il Partition ID mostra di che tipo di partizione si tratta (di che sistema operativo) e i valori di inizio/fine dicono dove questa si trova. La mostra una lista di partition ID più comuni. Partition ID ID (hex) + Descrizione 01 + DOS12 primaria (12-bit FAT) 04 + DOS16 primaria (16-bit FAT) 05 + DOS estesa 06 + DOS primaria di grande dimensione (> 32MB) 0A - OS/2 + + &os2; 83 + Linux (EXT2FS) A5 + FreeBSD, NetBSD, 386BSD (UFS)
Nota che non tutte le partizioni sono avviabili (per esempio quelle DOS estese). Alcune lo sono, altre no. Ciò che rende una partizione avviabile è la configurazione del Partition Boot Sector che si trova all'inizio di ciascuna partizione. Quando configuri il tuo boot manager preferito, questo cerca gli elementi nella tavola delle partizioni sull'MBR di tutti i tuoi hard disk e fa in modo che tu possa dare un nome a tutte gli elementi della lista. Quindi all'avvio, il boot manager viene invocato da un codice particolare presente nell'MBR del primo hard disk che viene rilevato sul tuo sistema. Questo guarda la tavola delle partizioni dell'MBR corrispondente alla partizione che hai scelto, usa l'informazione sullo Start Cylinder/Head/Sector per quella partizione, carica il Partition Boot Sector per quella partizione, e sli dà il controllo. Quel settore di avvio per la partizione contiene abbastanza informazioni per cominciare a caricare il sistema operativo di quella partizione. Un particolare che abbiamo sorvolato e che è importante conoscere. Tutti gli hard disk hanno l'MBR. Ad ogni modo, quello importante è quello del disco che viene rilevato per primo dal BIOS. Se hai solo hard disk IDE, è il primo disco IDE (cioè il disco primario del controller primario). Stessa cosa per i sistemi SCSI. Se hai sia SCSI che IDE invece, i dischi IDE vengono riconosciuti per primi dal BIOS, quindi il primo disco IDE è quello che viene riconosciuto per primo. Il boot manager che installerai si troverà quindi sull'MBR del primo disco riconosciuto come descritto.
Limitazioni sull'Avvio e Avvertimenti Ora un po' di cose interessanti alle quali devi stare attento. Il maledetto limite dei 1024 cilindri e l'aiuto dell'LBA del BIOS La prima parte del processo di avvio viene effettuata attraverso il BIOS, (se questo è un termine nuovo per te, il BIOS è un chip contenente del software presente sulla scheda madre che contiene il codice di avviamento per il computer). Quindi, questa prima parte del processo è soggetta alle limitazioni dell'interfaccia del BIOS. L'interfaccia BIOS usata per leggere gli hard disk in questo momento (INT 13H, Subfunction 2) alloca 10 bit per il Cylinder Number, 8 bit per l'Head Number, e 6 bit per il Sector Number. Questo porta gli utenti ad essere sottoposti a dei limiti (per esempio i boot manager installati nell'MBR così come i loader installati nei Boot Sector) che ora vediamo: 1024 cilindri, massimo 256 testine, massimo 64 settori/traccia, massimo (in realtà 63, 0 non è disponibile) Ora, hard disk grossi hanno molti cilindri, ma non molte testine, quindi invariabilmente con grandi hard disk il numero di cilindri sarà più alto di 1024. A causa di questo e della situazione dell'interfaccia BIOS, non puoi far partire un sistema operativo da qualsiasi punto del disco. Il codice di avvio (il boot manager e il loader del sistema operativo devono essere nei settori di avvio di tutte le partizioni avviabili) deve risiedere entro il limite dei 1024 cilindri. In pratica, se il tuo hard disk è generico e contiene 16 testine, questo si tramuta in: 1024 cilindri/disco × 16 testine/disco × 63 settori/traccia × 512 byte/settore che è intorno al summenzionato limite dei 528MB. Qui è dove entra in gioco l'LBA (Logical Block Addressing, Indirizzamento Logico dei Blocchi) del BIOS. L'LBA del BIOS fornisce all'utente delle API del BIOS accesso ai cilindri fisici oltre al 1024esimo attraverso l'interfaccia BIOS ridefinendo un cilindro. Quindi, rimappa cilindri e testine, facendo sembrare al BIOS che il computer contenga meno cilindri e più testine di quanto in realtà non ne abbia. In altre parole, si avvantaggia del fatto che gli hard disk hanno relativamente poche testine e molti cilindri semplicemente bilanciando tra cilindri e testine facendo in modo che tutti e due i numeri rimangano sotto la soglia (1024 cilindri, 256 testine). Con l'LBA del BIOS, la limitazione agli hard disk è virtualmente eliminata (beh, spostata ad 8 Gigabyte). Se hai un BIOS che supporta l'LBA, puoi mettere FreeBSD o qualsiasi altro OS in qualsiasi parte tu voglia senza toccare il limite dei 1024 cilindri. Per usare ancora l'esempio del mio Western Digital da 1.6 Giga, la sua geometria fisica è: (3148 cilindri, 16 testine, 63 settori/traccia, 512 byte/settore) Ad ogni modo, il mio LBA del BIOS rimappa questo in: (787 cilindri, 64 testine, 63 settori/traccia, 512 byte/settore) dandomi la stessa grandezza effettiva di disco, ma con numero di cilindri e testine entro i limiti dell'API del BIOS (casualmente, ho sia Linux che FreeBSD installati su uno dei miei hard disk sopra il 1024esimo cilindro fisico, e tutti e due partono perfettamente, grazie all'LBA del BIOS). Boot Manager e Allocazione del Disco Un altro punto di cui tener conto al momento al momento dell'installazione di un boot manager, è quello di ricordarsi di allocare spazio per il tuo boot manager. È meglio aver presente fin da subito questo problema, per non accorgersene troppo tardi e dover quindi reinstallare uno o più sistemi operativi. Se hai seguito il discorso nella a proposito del Master Boot Sector (dove si trova l'MBR), dei Partition Boot Sectors, e dell processo di avvio, potresti esserti chiesto esattamente dove quel piccolo boot manager risiede sul tuo hard disk. Bene, alcuni boot manager sono abbastanza piccoli da risiedere nel Master Boot Sector (Cilindro 0, Testina 0, Settore 0) insieme alla tabella delle partizioni. Alcuni invece hanno bisogno di un po' di spazio in più e si estendono su alcuni settori oltre il Master Boot Sector nella traccia del Cilindro 0 Testina 0, dato che questa è tipicamente libera. Ecco qui. Alcuni sistemi operativi (incluso FreeBSD) fanno in modo che le loro partizioni possano cominciare subito dopo il Master Boot Sector, cioè al cilindro 0, testina 0, settore 2 se vuoi. Infatti, se dai al sysinstall di FreeBSD un disco con una parte iniziale vuota oppure un disco vuoto, quello è il punto da cui comincerà la partizione FreeBSD di default (o almeno lo ha fatto quando sono caduto in questa trappola). Poi quando vai ad installare il tuo boot manager, se è uno che occupa alcuni settori oltre all'MBR, andrà a sovrascrivere la parte iniziale dei dati della prima partizione. Nel caso di FreeBSD, questo sovrascrive il label del disco, e fa in modo da rendere non avviabile la partizione di FreeBSD. Il modo più semplice per eliminare questo problema (e lasciarti la flessibilità di provare in seguito differenti boot manager) è quello di lasciare sempre la prima traccia del tuo hard disk completamente libera quando partizioni il tuo hard disk. Ciò significa lasciare libero lo spazio tra il cilindro 0, testina 0, settore 2 fino a cilindro 0, testina 0, settore 63, e cominciare la prima partizione sul cilindro 0, testina 1, settore 1. Per ciò che vale, quando crei una partizione DOS all'inizio del tuo hard disk, il DOS lascia sempre questo spazio libero di default (ecco perché molti boot manager presumono che sia libero). Quindi creare una partizione DOS all'inizio del disco toglie questi problemi tutti insieme. Mi piace fare da solo, creando una partizione DOS da 1 mega all'inizio, perché questo evita che cambino le lettere dei drive DOS quando ripartiziono in seguito. Come riferimento, i seguenti boot manager usano il Master Boot Sector per immagazzinare il loro codice e i loro dati: OS-BS 1.35 Boot Easy LILO Questi boot manager usano alcuni settori addizionali dopo il Master Boot Sector: OS-BS 2.0 Beta 8 (settori 2-5) - Boot Manager di OS/2 + Boot Manager di &os2; Cosa fare se il tuo computer non parte? In alcuni momenti quando installi dei boot manager, potresti lasciare l'MBR in uno stato in cui il computer non riesce più a partire. Questo è spiacevole, ma possibile quando si utilizza FDISK su di un boot manager già installato. Se hai una partizione DOS avviabile sul tuo hard disk, puoi partire da un floppy DOS, e poi eseguire il comando: A:\> FDISK /MBR Per mettere il codice originale di avvio del DOS nel sistema. Puoi ora avviare DOS (e solamente DOS) dall'hard disk. Alternativamente, puoi far ripartire il programma di installazione del tuo boot manager da un floppy avviabile.
diff --git a/it_IT.ISO8859-15/articles/new-users/article.sgml b/it_IT.ISO8859-15/articles/new-users/article.sgml index dec36e5c26..cf0a677b42 100644 --- a/it_IT.ISO8859-15/articles/new-users/article.sgml +++ b/it_IT.ISO8859-15/articles/new-users/article.sgml @@ -1,1072 +1,1083 @@ %man; %freebsd; + +%trademarks; %mailing-lists; %translators; ]>
Per chi è alle Prime Armi sia con FreeBSD che con &unix; Annelise Anderson
andrsn@andrsn.stanford.edu
15 Agosto 1997 + + &tm-attrib.freebsd; + &tm-attrib.ibm; + &tm-attrib.microsoft; + &tm-attrib.netscape; + &tm-attrib.opengroup; + &tm-attrib.general; + + Congratulazioni per aver installato FreeBSD! Questa introduzione é per chi é alle prime armi con FreeBSD - e Un*x—perciò comincia dalle basi. + e &unix;—perciò comincia dalle basi. Stai certamente usando la versione 2.0.5 o una più recente di FreeBSD distribuita da BSDi o FreeBSD.org, il tuo sistema ha (per il momento) un solo utente (te stesso)—e sei probabilmente abbastanza - bravo con DOS/WINDOWS o OS/2. + bravo con DOS/&windows; o &os2;. Traduzione a cura di &a.it.max;.
Entrare ed Uscire dal Sistema Entra (quando vedi login:) come l'utente che hai creato durante l'installazione oppure come root. (La tua installazione di FreeBSD dovrebbe già avere un account di root; root può andare ovunque e fare qualsiasi cosa, anche cancellare file essenziali, perciò stai attento!) I simboli &prompt.user; e &prompt.root; che incontrerai più avanti simboleggiano il prompt (i tuoi potrebbero essere differenti), dove &prompt.user; indica un utente ordinario e &prompt.root; indica root. Per uscire (e ritrovarsi con un nuovo prompt login:) scrivi &prompt.root; exit tante volte quanto serve. Sì, premi invio dopo ogni comando, e ricordati che &unix; fa distinzione tra maiuscole e minuscole—perciò exit, non EXIT. Per spegnere il computer digita &prompt.root; /sbin/shutdown -h now O per riavviarlo digita &prompt.root; /sbin/shutdown -r now oppure &prompt.root; /sbin/reboot Puoi anche riavviarlo premendo CtrlAltCanc. Lasciagli un po' di tempo per compiere il suo lavoro. Questo equivale a /sbin/reboot nelle versioni più recenti di FreeBSD ed è molto meglio che premere il bottone di reset. Non vorrai mica reinstallare tutto da capo, vero? Aggiungere un Utente con Privilegi di Root Se non hai creato un utente durante l'installazione e quindi sei entrato nel sistema come root, dovresti probabilmente crearne uno ora tramite &prompt.root; adduser La prima volta che aggiungi un utente, il sistema dovrebbe chiederti di inserire delle impostazioni di default da applicare. Potresti volere come shell &man.csh.1; invece di &man.sh.1;, se ti viene consigliato sh come default. Altrimenti premi solo invio per accettare i valori proposti. Questi dati vengono salvati in /etc/adduser.conf, un file modificabile successivamente a mano. Supponiamo che tu voglia creare l'utente jack di nome reale Jack Benimble. Assegna a jack una password per ragioni di sicurezza (anche i bambini che gironzolano per casa potrebbero mettere le mani sulla tastiera). Quando ti viene chiesto se vuoi invitare jack in un altro gruppo, digita wheel Login group is ``jack''. Invite jack into other groups: wheel Questo ti permetterà di entrare come l'utente jack e usare il comando &man.su.1; per diventare root. A quel punto non sarai più preso in giro per essere entrato direttamente come root. Puoi uscire da adduser in qualsiasi momento premendo CtrlC, e alla fine avrai l'opportunità di approvare il nuovo utente oppure premere n per non farlo. Potresti voler creare un secondo utente (jill?) cosicché quando andrai a modificare i file di jack avrai un'ancora di salvezza in caso qualcosa vada male. Una volta fatto questo, usa exit per tornare al prompt di login ed entrare come jack. In generale è meglio cercare di lavorare da utente normale in modo da non avere il potere—e il rischio—di root. Se hai già creato un utente e vuoi che quell'utente sia in grado di usare su per diventare root, puoi entrare come root e modificare il file /etc/group, aggiungendo jack alla prima linea (il gruppo wheel). Ma prima devi fare pratica con &man.vi.1;, l'editor di testo—oppure usa il più semplice &man.ee.1;, installato sulle recenti versioni di FreeBSD. Per cancellare un utente, usa il comando rmuser. Diamoci un'occhiata in giro Una volta avuto accesso come utente normale, guardati in giro e prova alcuni dei comandi che ti daranno accesso alle fonti di aiuto e di informazioni su FreeBSD. Ecco qui una lista di comandi e le loro funzioni: id Ti dice chi sei! pwd Ti mostra dove sei—la directory in cui stai lavorando. ls Ti mostra una lista dei file contenuti nella directory. ls Ti mostra un elenco dei file contenuti nella directory ponendo * dopo i file eseguibili, / dopo le directory, e @ dopo i collegamenti simbolici. ls Mostra un elenco di file nel formato lungo—grandezza, data, permessi. ls Mostra una lista dei file nascosti, cioè con un punto davanti al nome, insieme agli altri. Se sei root, i file puntati vengono mostrati anche senza l'opzione . cd Cambia la directory di lavoro. cd .. torna alla directory superiore; nota lo spazio dopo cd. cd /usr/local va nella directory specificata. cd ~ va nella directory home dell'utente collegato in quel momento—per esempio, /usr/home/jack. Prova cd /cdrom, e poi ls, per scoprire se il tuo CDROM è montato e funziona. view nomefile Mostra il contenuto del file (chiamato nomefile) senza modificarlo. Prova view /etc/fstab. :q per uscire. cat nomefile Mostra nomefile sullo schermo. Se è troppo lungo e ne puoi vedere solo la fine, premi BlocScorr e usa freccia-su per muoverti in alto; puoi usare BlocScorr anche con le pagine man. Premi ancora BlocScorr per uscire dallo scorrimento. Potresti provare cat con alcuni dei file nascosti presenti nella tua directory home—cat .cshrc, cat .login, cat .profile. Noterai degli alias in .cshrc per alcuni dei comandi ls (sono molto convenienti). Puoi creare degli altri alias modificando .cshrc. Puoi far sì che questi alias diventino disponibili a tutti gli utenti mettendoli nel file di configurazione generale di csh, /etc/csh.cshrc. Ottenere Aiuto e Informazioni Ecco alcune risorse utili per ottenere aiuto. Testo è qualcosa che puoi digitare a tuo piacere—normalmente si tratta di un comando o del nome di un file. apropos testo Tutto ciò che contiene la stringa testo nel database whatis. man testo Mostra la pagina man di testo, la maggior risorsa di documentazione per i sistemi Un*x. man ls ti dirà tutti i modi possibili per usare il comando ls. Premi Invio per muoverti nel testo, CtrlB per andare indietro di una pagina, CtrlF per andare avanti, q oppure CtrlC per uscire. which testo Ti dice dove si trova il comando testo nel path dell'utente. locate testo Ti dice tutte le directory nei path dell'utente in cui si trova il comando testo. whatis testo Ti dice che cosa fa il comando testo e la sua pagina man. Digitando whatis * ti verranno presentate tutte le pagine man associate agli eseguibili presenti nella directory corrente. whereis testo Trova il file testo, dandoti il suo percorso completo. Potresti voler provare ad usare whatis con alcuni comandi utili come cat, more, grep, mv, find, tar, chmod, chown, date, e script. more ti permette di leggere una pagina alla volta come in DOS, ad esempio, ls -l | more oppure more nomefile. * ha valore assoluto—per esempio, ls w* mostra tutti i file che cominciano con w. Per caso alcuni di questi comandi non funzionano correttamente? Sia &man.locate.1;, sia &man.whatis.1; dipendono da un database che viene ricostruito settimanalmente. Se la tua macchina non sarà lasciata accesa per il fine settimana (usando FreeBSD), può darsi che tu voglia usare i comandi per la manutenzione giornaliera, settimanale, e mensile ogni tanto. Falli partire come root e lascia loro il tempo di finire il lavoro prima di farne partire un altro. &prompt.root; periodic daily output tralasciato &prompt.root; periodic weekly output tralasciato &prompt.root; periodic monthly output tralasciato Se ti stufi di aspettare, premi AltF2 per avere un'altra console virtuale, e poterti loggare nuovamente. Dopotutto è un sistema multi-utente, e multi-tasking. Probabilmente questi comandi produrranno dei messaggi sullo schermo quando lavorano; puoi digitare clear per pulire lo schermo. Quando hanno finito, dovresti dare un'occhiata a /var/mail/root e /var/log/messages. Usare tali comandi fa parte dell'amministrazione di - sistema—e come utente singolo di un sistema Unix, + sistema—e come utente singolo di un sistema &unix;, sei tu l'amministratore del sistema. Praticamente l'unica cosa per la quale è necessario che tu sia root è l'amministrazione. Queste responsabilità non vengono trattate bene nemmeno in quei grossi libri - su Unix, che sembrano dedicare troppo spazio all'uso dei menu + su &unix;, che sembrano dedicare troppo spazio all'uso dei menu nei windows manager. Potresti voler leggere uno dei più interessanti libri sull'amministrazione di sistema, come UNIX System Administration Handbook di Evi Nemeth et.al. (Prentice-Hall, 1995, ISBN 0-13-15051-7)—la seconda edizione con la copertina rossa; oppure Essential System Administration di Æleen Frisch (O'Reilly & Associates, 1993, ISBN 0-937175-80-3). Io ho usato quello di Nemeth. Modificare File di Testo Per poter configurare il tuo sistema, devi modificare dei file. Molti di questi saranno in /etc; e avrai bisogno del comando su per diventare root e poter così modificarli. Puoi usare il semplice editor ee, ma alla lunga risulta più utile imparare vi. C'é un eccellente tutorial su vi in /usr/src/contrib/nvi/docs/tutorial se lo hai installato; altrimenti puoi scaricarlo via FTP da ftp.cdrom.com dalla directory FreeBSD/FreeBSD-current/src/contrib/nvi/docs/tutorial. Prima di modificare un file, dovresti farne una copia. Supponiamo tu voglia modificare /etc/rc.conf. Puoi semplicemente usare cd /etc per andare in /etc e fare: &prompt.root; cp rc.conf rc.conf.orig Questo copierà rc.conf in rc.conf.orig, e potrai successivamente copiare rc.conf.orig in rc.conf per tornare all'originale. Ma ancora meglio sarà spostare (rinominare) il file per poi ricopiarlo con il nome originale: &prompt.root; mv rc.conf rc.conf.orig &prompt.root; cp rc.conf.orig rc.conf perché il comando mv mantiene la data e il proprietario originali del file. Puoi ora modificare rc.conf. Se vuoi tornare all'originale, potresti fare mv rc.conf rc.conf.myedit (assumendo che vuoi tenere la versione modificata) e quindi fare &prompt.root; mv rc.conf.orig rc.conf per tornare allo stato iniziale. Per modificare un file, digita &prompt.root; vi nomefile Muoviti nel testo con i tasti freccia. Esc mette vi in modalità comando. Ecco qui alcuni dei comandi: x cancella la lettera su cui si trova il cursore dd cancella l'intera riga (anche se va a capo sullo schermo) i inserisci del testo nella posizione del cursore a inserisci del testo dopo il cursore Quando digiti i o a, puoi inserire del testo. Esc ti riporta in modalità comando dove puoi digitare :w per salvare le modifiche sul disco e continuare a modificare il file :wq per salvare le modifiche e uscire :q! per uscire senza salvare le modifiche /testo per spostare il cursore su testo; /Invio per trovare la prossima occorrenza di testo. G per andare alla fine del file nG per andare alla riga n del file, dove n è un numero CtrlL per ridisegnare lo schermo Ctrlb e Ctrlf vai avanti e indietro di una pagina, come succede con more e view. Fai un po' di pratica con vi nella tua directory home creando un nuovo file digitando vi nomefile e aggiungendo e cancellando del testo, salvando il file, e riaprendolo di nuovo. vi è pieno di sorprese perché è abbastanza complesso, e ti capiterà di digitare un comando che farà di sicuro qualcosa che non ti aspetti. (Alcune persone preferiscono vi—è più potente dell'EDIT del DOS—scopri il comando :r) Usa Esc una o più volte per essere sicuro di essere in modalità comando e continua da lì quando hai dei problemi, salva spesso con :w, e usa :q! per uscire e ricominciare (dal tuo ultimo :w) quando ne hai bisogno. Ora puoi usare cd per andare in /etc, su per diventare root, vi per modificare il file /etc/group, e aggiungere un utente al gruppo wheel cosicché possa avere privilegi di root. Aggiungi solo una virgola e il nome di login dell'utente alla fine della prima riga del file, premi Esc, e usa :wq per salvare il file su disco e uscire. La modifica ha effetto immediato. (Non hai lasciato uno spazio dopo la virgola, vero?) Stampa di File da DOS A questo punto la tua stampante non funzionerà ancora sotto FreeBSD, ecco quindi un sistema per creare un file da una pagina man, metterlo su un floppy, e quindi stamparlo da DOS. Supponiamo che tu voglia leggere attentamente come cambiare i permessi sui file (abbastanza importante). Puoi usare man chmod per leggere come fare. Il comando &prompt.user; man chmod | col -b > chmod.txt toglierà gli elementi di formattazione e manderà il tutto sul file chmod.txt al posto di mostrare il contenuto sullo schermo. Ora metti un dischetto formattato DOS nel lettore, digita su per diventare root, e scrivi &prompt.root; /sbin/mount -t msdos /dev/fd0 /mnt per montare il floppy su /mnt. Ora (non hai più bisogno di essere root, e puoi digitare exit per tornare ad essere l'utente jack) puoi andare nella directory in cui hai creato chmod.txt e copiare il file sul floppy digitando: &prompt.user; cp chmod.txt /mnt e usare ls /mnt per vedere il contenuto di /mnt, che dovrebbe contenere il file chmod.txt. In particolare potresti voler creare un file con l'output di /sbin/dmesg digitando &prompt.user; /sbin/dmesg > dmesg.txt e copiare dmesg.txt sul floppy. /sbin/dmesg è il file di log di avvio, ed è importante comprenderlo perché ti mostra cosa ha trovato FreeBSD all'avvio. Se poni delle domande sulla &a.questions; o su un gruppo USENET—del tipo FreeBSD non trova il mio drive per i nastri, che cosa faccio?—la gente vorrà sapere cosa mostra il tuo dmesg. Ora devi smontare il floppy (da root) per poter togliere il disco &prompt.root; /sbin/umount /mnt e riavviare per tornare in DOS. Copia questo file in una directory DOS, richiamali con l'EDIT del DOS, Notepad o Wordpad di - Windows, o un editor di testi, fai una piccola modifica in modo che + &windows;, o un editor di testi, fai una piccola modifica in modo che il file debba essere salvato, e stampa come faresti da DOS o - Windows. Spera che funzioni! Le pagine man vengono meglio se + &windows;. Spera che funzioni! Le pagine man vengono meglio se stampate con il comando DOS print. (Copiare i file da FreeBSD su una partizione DOS montata è ancora in alcuni casi rischioso.) Far funzionare la stampante sotto FreeBSD consiste nel creare un opportuno elemento in /etc/printcap e creare una directory di spool corrispondente in /var/spool/output. Se la tua stampante è su lpt0 (ciò che DOS chiama LPT1), devi solo andare in /var/spool/output e (da root) creare la directory lpd digitando: mkdir lpd, se non è già presente. A quel punto la stampante dovrebbe rispondere quando il sistema parte, e lp o lpr dovrebbero mandare un file alla stampante. Che il file venga stampato o meno è solo questione di configurazione, che è discussa nel Manuale di FreeBSD. Altri Comandi Utili df mostra lo spazio disponibile e tutte le partizioni montate. ps aux mostra i processi in esecuzione. ps ax è una forma contratta. rm nomefile cancella nomefile. rm -R dir cancella la directory dir e tutte le sottodirectory—attenzione! ls -R mostra il contenuto della directory e delle sue sottodirectory; io usavo una variante, ls -AFR > where.txt, per avere una lista dei file in / e (separatamente) /usr prima che scoprissi dei metodi migliori per cercare i file. passwd per cambiare la password dell'utente (o di root) man hier - pagina man sul file system di Unix + pagina man sul file system di &unix; Usa find per trovare nomefile in /usr o nelle sue sottodirectory digitando &prompt.user; find /usr -name "nomefile" Puoi usare * come identificatore universale in "nomefile" (che dovrebbe essere tra virgolette). Se dici a find di cercare in / anziché /usr cercherà il/i file su tutti i file system montati, inclusi i CDROM e le partizioni DOS. - Un libro eccellente che tratta i comandi e le utility di Unix + Un libro eccellente che tratta i comandi e le utility di &unix; è Unix for the Impatient di Abrahams & Larson (2nd ed., Addison-Wesley, 1996). - Ci sono anche un sacco di informazioni su Unix su Internet. Guarda + Ci sono anche un sacco di informazioni su &unix; su Internet. Guarda Unix Reference Desk. Prossimi Passi Dovresti ora avere gli strumenti necessari per girare nel sistema e modificare i file, così da poter rendere tutto funzionante. Ci sono un sacco di informazioni nel Manuale di FreeBSD (che è probabilmente sul tuo disco rigido) e sul sito web di FreeBSD. Una grande scelta di package e port è presente sul CDROM così come sul sito web. Il manuale ti spiega come usarli (prendi il package se esiste, con pkg_add /cdrom/packages/All/nomepackage, dove nomepackage è il nome del file del package). Il CDROM ha una lista di package e di port con delle brevi descrizioni in cdrom/packages/index, cdrom/packages/index.txt, e cdrom/ports/index, e con descrizioni più ampie in /cdrom/ports/*/*/pkg/DESCR, dove * rappresenta rispettivamente sottodirectory di tipi di programmi e nomi di programmi. Se trovi il manuale troppo difficile su come installare i port dal CDROM (con il sistema di lndir e altro), ecco come funziona normalmente: Trova il port che vuoi, supponiamo kermit. Ci sarà una directory per lui sul CDROM. Copia la sottodirectory in /usr/local (un buon posto perché il software che aggiungi sia disponibile a tutti gli utenti) con: &prompt.root; cp -R /cdrom/ports/comm/kermit /usr/local Questo dovrebbe portarti ad avere la sottodirectory /usr/local/kermit che contiene tutti i file presenti nella sottodirectory kermit del CDROM. Ora, crea la directory /usr/ports/distfiles se non esiste ancora, usando mkdir. Poi controlla /cdrom/ports/distfiles cercando un file con il nome che indica che si tratta del port esatto. Copia quel file in /usr/ports/distfiles; nelle versioni più recenti puoi saltare questo passo, perché FreeBSD lo farà per te. Nel caso di kermit, non c'è nessun distfile. Quindi entra con cd nella sottodirectory di /usr/local/kermit che contiene il file Makefile. Digita &prompt.root; make all install Durante questo processo il port userà FTP per scaricare i file compressi che non ha trovato sul CDROM o in /usr/ports/distfiles. Se la tua connessione non funziona ancora e non c'è nessun file per il port in /cdrom/ports/distfiles, dovrai recuperare il distfile usando un'altra macchina e poi copiarlo in /usr/ports/distfiles da un dischetto o dalla partizione DOS. Leggi Makefile (usando cat o more oppure view) per scoprire dove andare (il sito principale di distribuzione) per trovare il file e conoscere il suo nome. Il nome verrà troncato quando scaricato da DOS, e dopo averlo trasferito in /usr/ports/distfiles dovrai rinominarlo (usando il comando mv) nel suo nome originale cosicché possa essere trovato. (Usa il trasferimento di file binario!) Quindi torna in /usr/local/kermit, trova la directory contenente Makefile, e digita make all install. Un'altra cosa che può succedere quando si installa un port o un package è che questi abbiano bisogno di un altro programma. Se l'installazione si ferma con un messaggio can't find unzip o simile, potresti dover installare il package o il port di unzip prima di proseguire. Una volta installato, digita rehash per far sì che FreeBSD rilegga i file contenuti nel path e sappia quali sono presenti. (Se trovi un sacco di messaggi path not found quando usi whereis o which, dovresti fare delle aggiunte all'elenco delle directory nel file .cshrc nella tua directory home. - L'elenco dei path in Unix fa la stessa + L'elenco dei path in &unix; fa la stessa cosa che fa in DOS, tranne che la directory corrente (di default) non si trova nel path per ragioni di sicurezza; se il comando che vuoi eseguire è nella directory in cui ti trovi, devi digitare ./ prima del nome del comando; niente spazio dopo la barra.) - Potresti volere la versione più recente di Netscape + Potresti volere la versione più recente di &netscape; dal loro sito FTP. - (Netscape necessita dell'X Window System.) Ora c'é una versione + (&netscape; necessita dell'X Window System.) Ora c'é una versione per FreeBSD, quindi dà un'occhiata in giro. Usa solo gunzip nomefile e tar xvf nomefile sul file, sposta il binario in /usr/local/bin o qualche altro posto in cui vengono tenuti i binari, esegui rehash, e quindi aggiungi le seguenti linee a .cshrc in tutte le directory home degli utenti oppure (più semplicemente) in /etc/csh.cshrc, il file di configurazione globale di csh: setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB setenv XNLSPATH /usr/X11R6/lib/X11/nls Questo assume che il file XKeysymDB e la directory nls siano in /usr/X11R6/lib/X11; se non lo sono, trovale e mettile lì. - Se hai originariamente installato Netscape dal CDROM (o via + Se hai originariamente installato &netscape; dal CDROM (o via FTP), non sostituire /usr/local/bin/netscape con il nuovo binario di netscape; questo è solo uno script di shell che imposta le variabili di ambiente per te. Rinomina invece il nuovo binario in netscape.bin e rimpiazza il vecchio binario, che dovrebbe essere /usr/local/netscape/netscape. Il tuo Ambiente di Lavoro La shell è la parte più importante del tuo ambiente di lavoro. In DOS, la shell è solitamente command.com. La shell è ciò che interpreta i comandi che digiti sulla linea di comando, e quindi comunica con il resto del sistema operativo. Puoi anche scrivere script di shell, che sono come i file batch di DOS: una serie di comandi che devono essere eseguiti senza il tuo intervento. Due shell vengono normalmente installate con FreeBSD: csh e sh. csh è buona per lavoro da linea di comando, ma gli script dovrebbero essere scritti usando sh (o bash). Puoi scoprire che shell hai digitando echo $SHELL. csh è una buona shell, ma tcsh fa tutto ciò che csh fa e anche altro. Ti permette di richiamare i comandi usando le frecce e ti permette di modificarli. Ha l'auto-completamento dei nomi di file con tab (csh usa Esc), e ti permette di tornare alla directory in cui eri digitando cd -. È anche più semplice alterare il prompt con tcsh. Ti rende la vita più facile. Ecco tre semplici passi per installare una nuova shell: Installa la shell tramite port o package, come faresti con un qualsiasi altro port o package. Usa rehash e which tcsh (assumendo che tu stia installando tcsh) per essere sicuro di averla installata. Da root, modifica /etc/shells, aggiungendo una riga nel file per la nuova shell, in questo caso /usr/local/bin/tcsh, e salva il file. (Alcuni port lo fanno per te.) Usa il comando chsh per cambiare permanentemente la tua shell in tcsh, o digita tcsh al prompt per cambiare la shell senza dover uscire dal sistema per poi rientrare. Può essere pericoloso cambiare la shell di root in qualcosa di diverso da sh o csh su - versioni più recenti di FreeBSD e di Unix; potresti + versioni più recenti di FreeBSD e di &unix;; potresti non avere una shell funzionante se il sistema entra in modalità singolo utente. La soluzione è usare su -m per diventare root, che ti dà tcsh come shell di root, poiché la shell è parte del tuo ambiente. Puoi rendere tutto ciò permanente aggiungendo al - tuo .tcshrc un alias con - alias su su -m. + tuo .tcshrc un alias con: + alias su su -m Quando tcsh parte, legge i file /etc/csh.cshrc e /etc/csh.login, come farebbe csh. Leggerà anche il file .login nella tua directory home ed anche .cshrc, a meno che tu non abbia un file .tcshrc. Puoi crearlo copiando .cshrc in .tcshrc. Ora che hai installato tcsh, puoi sistemare il tuo prompt. Puoi trovare i dettagli nella pagina man di tcsh, ma ecco qui una linea da mettere nel tuo .tcshrc che ti dirà quanti comandi hai digitato, che ore sono, e in che directory ti trovi. Produce anche un > se sei un utente normale e un # se sei root, ma tsch lo farebbe in ogni caso: set prompt = "%h %t %~ %# " Questa dovrebbe andare nella stessa posizione della linea di prompt corrente se ce n'è una, o sotto "if($?prompt) then" in caso contrario. Commenta la vecchia riga; così potrai tornare a quella vecchia se la preferirai. Non dimenticare gli spazi e le virgolette. Puoi far rileggere .tcshrc digitando source .tcshrc. Puoi avere una lista delle variabili di sistema che sono state impostate digitando env al prompt. Il risultato ti mostrerà il tuo editor di default, il pager, e il tipo di terminale, tra le altre possibili variabili. Un comando utile se ti connetti al sistema da una postazione remota e non riesci ad eseguire un programma perché il terminale non ne è capace è setenv TERM vt100. Altro Da root puoi smontare il CDROM con /sbin/umount /cdrom, toglilo dal lettore, inseriscine un altro, e montalo con /sbin/mount_cd9660 /dev/cd0a /cdrom assumendo che cd0a sia il nome di dispositivo del tuo lettore di CDROM. La versione più recente di FreeBSD ti permette di montare il CDROM solo con /sbin/mount /cdrom. Usare il live file system—il secondo cd del set di FreeBSD—è utile se hai poco spazio a disposizione. Ciò che si trova sul live file system cambia da release a release. Potresti provare ad eseguire dei giochi dal CDROM. Questo comporta l'uso di lndir, che viene installato con l'X Window System, per dire ai programmi dove trovare i file necessari, poiché questi si trovano nel file system /cdrom anziché /usr e le sue sottodirectory, che è dove dovrebbero essere. Leggi man lndir per avere più informazioni. I Commenti sono Benvenuti Se usi questa guida, sarei interessata a sapere dove non è chiara, ciò che è stato tralasciato e che vorresti venisse incluso, e sapere se tutto ciò è stato utile. I miei ringraziamenti vanno a Eugene W. Stark, professore di informatica a SUNY-Stony Brook, e John Fieber per i suoi utili commenti. Annelise Anderson, andrsn@andrsn.stanford.edu Per questioni legate alla traduzione, o se avete commenti da poter esprimere solo in italiano, non esitate a contattarmi. Come per l'autrice originale, ogni genere di commenti è ben accetto. Massimiliano Stucchi, stucchi@willystudios.com
diff --git a/it_IT.ISO8859-15/articles/vm-design/article.sgml b/it_IT.ISO8859-15/articles/vm-design/article.sgml index 4e96042ea1..db5d83da9f 100644 --- a/it_IT.ISO8859-15/articles/vm-design/article.sgml +++ b/it_IT.ISO8859-15/articles/vm-design/article.sgml @@ -1,1047 +1,1057 @@ %man; %freebsd; + +%trademarks; %translators; ]>
Elementi di progettazione del sistema di VM di FreeBSD Matthew Dillon
dillon@apollo.backplane.com
+ + &tm-attrib.freebsd; + &tm-attrib.linux; + &tm-attrib.microsoft; + &tm-attrib.opengroup; + &tm-attrib.general; + + Il titolo è in realtà solo un modo complicato per dire che cercherò di descrivere l'intera enchilada della memoria virtuale (VM), sperando di farlo in una maniera che chiunque possa seguire. Nell'ultimo anno mi sono concentrato su un certo numero di sottosistemi principali del kernel in FreeBSD, trovando quelli della VM (la memoria virtuale) e dello Swap i più interessanti, e considerando quello di NFS un lavoretto necessario. Ho riscritto solo piccole porzioni di quel codice. Nell'arena della VM la sola grossa riscrittura che ho affrontato è stata quella del sottosistema di swap. La maggior parte del mio lavoro è stato di pulizia e mantenimento, con solo alcune moderate riscritture di codice e nessuna correzione rilevante a livello algoritmico nel sottosistema della VM. Il nocciolo della base teorica del sottosistema rimane immutato ed un bel po' del merito per gli sforzi di modernizzazione negli ultimi anni appartiene a John Dyson e David Greenman. Poiché non sono uno storico come Kirk non tenterò di marcare tutte le varie caratteristiche con i nomi delle relative persone, perché sbaglierei invariabilmente. Traduzione a cura di &a.it.surrender;. Questo articolo è stato pubblicato in origine nel numero di gennaio 2000 di DaemonNews. Questa versione dell'articolo può includere aggiornamenti da parte di Matt e di altri autori per riflettere i cambiamenti nell'implementazione della VM di FreeBSD.
Introduzione Prima di andare avanti con la descrizione del progetto effettivo della VM spendiamo un po' di tempo sulla necessità di mantenere e modernizzare una qualunque base di codice longeva. Nel mondo della programmazione, gli algoritmi tendono ad essere più importanti del codice ed è dovuto alle radici accademiche di BSD che si è prestata grande attenzione alla progettazione algoritmica sin dal principio. Una maggiore attenzione al design in genere conduce ad una base di codice flessibile e pulita che può essere modificata abbastanza semplicemente, estesa, o rimpiazzata nel tempo. Mentre BSD viene considerato un sistema operativo vecchio da alcune persone, quelli di noi che lavorano su di esso tendono a considerarlo come una base di codice matura che ha vari componenti modificati, estesi, o rimpiazzati con codice moderno. Questa si è evoluta, e FreeBSD è all'avanguardia, non importa quanto possa essere vecchio qualche pezzo di codice. Questa è una distinzione importante da fare ed una di quelle che sfortunatamente sfuggono alla maggior parte delle persone. Il più grande errore che un programmatore possa fare è non imparare dalla storia, e questo è precisamente l'errore che molti sistemi - operativi moderni hanno commesso. NT è il miglior esempio + operativi moderni hanno commesso. &windowsnt; è il miglior esempio di questo, e le conseguenze sono state disastrose. Anche Linux commette questo errore a un certo livello—abbastanza perché noi appassionati di BSD possiamo scherzarci su ogni tanto, comunque. Il problema di Linux è semplicemente la mancanza di esperienza e di una storia con la quale confrontare le idee, un problema che sta venendo affrontato rapidamente dalla comunità Linux nello stesso modo in cui è stato affrontato da quella BSD—con il continuo - sviluppo di codice. La gente di NT, d'altro canto, fa ripetutamente gli - stessi errori risolti da &unix; decadi fa e poi impiega anni nel - risolverli. E poi li rifanno, ancora, e ancora. + sviluppo di codice. La gente di &windowsnt;, d'altro canto, fa + ripetutamente gli stessi errori risolti da &unix; decadi fa e poi impiega + anni nel risolverli. E poi li rifanno, ancora, e ancora. Soffrono di un preoccupante caso di non è stato progettato qui e di abbiamo sempre ragione perché il nostro dipartimento marketing dice così. Io ho pochissima tolleranza per chiunque non impari dalla storia. La maggior parte dell'apparente complessità di progettazione di FreeBSD, specialmente nel sottosistema VM/Swap, è una conseguenza diretta dell'aver dovuto risolvere importanti problemi di prestazioni legati a varie condizioni. Questi problemi non sono dovuti a cattivi progetti algoritmici ma sorgono invece da fattori ambientali. In ogni paragone diretto tra piattaforme, questi problemi diventano più evidenti quando le risorse di sistema cominciano ad essere stressate. Mentre descrivo il sottosistema VM/Swap di FreeBSD il lettore dovrebbe sempre tenere a mente almeno due punti. Primo, l'aspetto più importante nel design prestazionale è ciò che è noto come Ottimizzazione del Percorso Critico. Accade spesso che le ottimizzazioni prestazionali aggiungano un po di impurità al codice per far migliorare il percorso critico. Secondo, un progetto solido e generalizzato, funziona meglio di un progetto pesantemente ottimizzato, alla lunga. Mentre un progetto generale può alla fin fine essere più lento di un sistema pesantemente ottimizzato quando vengono implementati inizialmente, il progetto generalizzato tende ad essere più semplice da adattare alle condizioni variabili mentre quello pesantemente ottimizzato finisce per dover essere gettato via. Ogni base di codice che dovrà sopravvivere ed essere mantenibile per anni deve dunque essere progettata con attenzione fin dall'inizio anche se questo può portare a piccoli peggioramenti nelle prestazioni. Vent'anni fa c'era ancora gente che sosteneva che programmare in assembly era meglio che programmare in linguaggi di alto livello, perché si poteva produrre codice che era dieci volte più veloce. Oggi, la fallacia di tale argomento è ovvia—così come i paralleli con il design algoritmico e la generalizzazione del codice. Oggetti VM Il modo migliore per iniziare a descrivere il sistema di VM di FreeBSD è guardandolo dalla prospettiva di un processo a livello utente. Ogni processo utente vede uno spazio di indirizzamento della VM singolo, privato e contiguo, contenente molti tipi di oggetti di memoria. Questi oggetti hanno varie caratteristiche. Il codice del programma e i dati del programma sono effettivamente un singolo file mappato in memoria (il file binario che è stato eseguito), ma il codice di programma è di sola lettura mentre i dati del programma sono copy-on-write I dati copy on write sono dati che vengono copiati solo al momento della loro effettiva modifica . Il BSS del programma è solamente una zona di memoria allocata e riempita con degli zero su richiesta, detta in inglese demand zero page fill. Nello spazio di indirizzamento possono essere mappati anche file arbitrari, che è in effetti il meccanismo con il quale funzionano le librerie condivise. Tali mappature possono richiedere modifiche per rimanere private rispetto al processo che le ha effettuate. La chiamata di sistema fork aggiunge una dimensione completamente nuova al problema della gestione della VM in cima alla complessità già data. Una pagina di dati di un programma (che è una basilare pagina copy-on-write) illustra questa complessità. Un programma binario contiene una sezione di dati preinizializzati che viene inizialmente mappata direttamente in memoria dal file del programma. Quando un programma viene caricato nello spazio di memoria virtuale di un processo, questa area viene inizialmente copiata e mappata in memoria dal binario del programma stesso, permettendo al sistema della VM di liberare/riusare la pagina in seguito e poi ricaricarla dal binario. Nel momento in cui un processo modifica questi dati, comunque, il sistema della VM deve mantenere una copia privata della pagina per quel processo. Poiché la copia privata è stata modificata, il sistema della VM non può più liberarlo, poiché non ci sarebbe più nessuna possibilità di recuperarlo in seguito. Noterai immediatamente che quella che in origine era soltanto una semplice mappatura di un file è diventata qualcosa di più complesso. I dati possono essere modificati pagina per pagina mentre una mappatura di file coinvolge molte pagine alla volta. La complessità aumenta ancora quando un processo esegue una fork. Quando un processo esegue una fork, il risultato sono due processi—ognuno con il proprio spazio di indirizzamento privato, inclusa ogni modifica fatta dal processo originale prima della chiamata a fork(). Sarebbe stupido per un sistema di VM creare una copia completa dei dati al momento della fork() perché è abbastanza probabile che almeno uno dei due processi avrà bisogno soltanto di leggere da una certa pagina da quel momento in poi, permettendo di continuare ad usare la pagina originale. Quella che era una pagina privata viene di nuovo resa una copy-on-write, poiché ogni processo (padre e figlio) si aspetta che i propri cambiamenti rimangano privati per loro e non abbiano effetti sugli altri. FreeBSD gestisce tutto ciò con un modello a strati di oggetti VM. Il file binario originale del programma risulta come lo strato di Oggetti VM più basso. Un livello copy-on-write viene messo sopra questo per mantenere quelle pagine che sono state copiate dal file originale. Se il programma modifica una pagina di dati appartenente al file originale il sistema dell VM prende un page fault Un page fault, o mancanza di pagina, corrisponde ad una mancanza di una determinata pagina di memoria a un certo livello, ed alla necessità di copiarla da un livello più lento. Ad esempio se una pagina di memoria è stata spostata dalla memoria fisica allo spazio di swap su disco, e viene richiamata, si genera un page fault e la pagina viene di nuovo copiata in ram. e fa una copia della pagina nel livello più alto. Quando un processo effettua una fork, vengono aggiunti altri livelli di Oggetti VM. Tutto questo potrebbe avere un po' più senso con un semplice esempio. Una fork() è un'operazione comune per ogni sistema *BSD, dunque questo esempio prenderà in considerazione un programma che viene avviato ed esegue una fork. Quando il processo viene avviato, il sistema della VM crea uno starto di oggetti, chiamiamolo A: +---------------+ | A | +---------------+ Un'immagine A rappresenta il file—le pagine possono essere spostate dentro e fuori dal mezzo fisico del file se necessario. Copiare il file dal disco è sensato per un programma, ma di certo non vogliamo effettuare il page out La copia dalla memoria al disco, l'opposto del page in, la mappatura in memoria. e sovrascrivere l'eseguibile. Il sistema della VM crea dunque un secondo livello, B, che verrà copiato fisicamente dallo spazio di swap: +---------------+ | B | +---------------+ | A | +---------------+ Dopo questo, nella prima scrittura verso una pagina, viene creata una nuova pagina in B, ed il suo contenuto viene inizializzato con i dati di A. Tutte le pagine in B possono essere spostate da e verso un dispositivo di swap. Quando il programma esegue la fork, il sistema della VM crea due nuovi livelli di oggetti—C1 per il padre e C2 per il figlio—che restano sopra a B: +-------+-------+ | C1 | C2 | +-------+-------+ | B | +---------------+ | A | +---------------+ In questo caso, supponiamo che una pagina in B venga modificata dal processo genitore. Il processo subirà un fault di copy-on-write e duplicherà la pagina in C1, lasciando la pagina originale in B intatta. Ora, supponiamo che la stessa pagina in B venga modificata dal processo figlio. Il processo subirà un fault di copy-on-write e duplicherà la pagina in C2. La pagina originale in B è ora completamente nascosta poiché sia C1 che C2 hanno una copia e B potrebbe teoricamente essere distrutta (se non rappresenta un vero file). Comunque, questo tipo di ottimizzazione non è triviale da realizzare perché è di grana molto fine. FreeBSD non effettua questa ottimizzazione. Ora, supponiamo (come è spesso il caso) che il processo figlio effettui una exec(). Il suo attuale spazio di indirizzamento è in genere rimpiazzato da un nuovo spazio di indirizzamento rappresentante il nuovo file. In questo caso il livello C2 viene distrutto: +-------+ | C1 | +-------+-------+ | B | +---------------+ | A | +---------------+ In questo caso, il numero di figli di B scende a uno, e tutti gli accessi a B avvengono attraverso C1. Ciò significa che B e C1 possono collassare insieme in un singolo strato. Ogni pagina in B che esista anche in C1 viene cancellata da B durante il crollo. Dunque, anche se l'ottimizzazione nel passo precedente non era stata effettuata, possiamo recuperare le pagine morte quando il processo esce o esegue una exec(). Questo modello crea un bel po' di problemi potenziali. Il primo è che ci si potrebbe ritrovare con una pila abbastanza profonda di Oggetti VM incolonnati che costerebbe memoria e tempo per la ricerca quando accadesse un fault. Può verificarsi un ingrandimento della pila quando un processo esegue una fork dopo l'altra (che sia il padre o il figlio). Il secondo problema è che potremmo ritrovarci con pagine morte, inaccessibili nella profondità della pila degli Oggetti VM. Nel nostro ultimo esempio se sia il padre che il figlio modificano la stessa pagina, entrambi hanno una loro copia della pagina e la pagina originale in B non è più accessibile da nessuno. Quella pagina in B può essere liberata. FreeBSD risolve il problema della profondità dei livelli con un'ottimizzazione speciale detta All Shadowed Case (caso dell'oscuramento totale). Questo caso accade se C1 o C2 subiscono sufficienti COW fault (COW è l'acronimo che sta per copy on write) da oscurare completamente tutte le pagine in B. Ponimo che C1 abbia raggiunto questo livello. C1 può ora scavalcare B del tutto, dunque invece di avere C1->B->A e C2->B->A adesso abbiamo C1->A e C2->B->A. ma si noti cos'altro è accaduto—ora B ha solo un riferimento (C2), dunque possiamo far collassare B e C2 insieme. Il risultato finale è che B viene cancellato interamente e abbiamo C1->A e C2->A. Spesso accade che B contenga un grosso numero di pagine e ne' C1 ne' C2 riescano a oscurarlo completamente. Se eseguiamo una nuova fork e creiamo un insieme di livelli D, comunque, è molto più probabile che uno dei livelli D sia eventualmente in grado di oscurare completamente l'insieme di dati più piccolo rappresentato da C1 o C2. La stessa ottimizzazione funzionerà in ogni punto nel grafico ed il risultato di ciò è che anche su una macchina con moltissime fork le pile degli Oggetti VM tendono a non superare una profondità di 4. Ciò è vero sia per il padre che per il figlio ed è vero nel caso sia il padre a eseguire la fork ma anche se è il figlio a eseguire fork in cascata. Il problema della pagina morta esiste ancora nel caso C1 o C2 non oscurino completamente B. A causa delle altre ottimizzazioni questa eventualità non rappresenta un grosso problema e quindi permettiamo semplicemente alle pagine di essere morte. Se il sistema si trovasse con poca memoria le manderebbe in swap, consumando un po' di swap, ma così è. Il vantaggio del modello ad Oggetti VM è che fork() è estremamente veloce, poiché non deve aver luogo nessuna copia di dati effettiva. Lo svantaggio è che è possibile costruire un meccanismo a livelli di Oggetti VM relativamente complesso che rallenterebbe la gestione dei page fault, e consumerebbe memoria gestendo le strutture degli Oggetti VM. Le ottimizazioni realizzate da FreeBSD danno prova di ridurre i problemi abbastanza da poter essere ignorati, non lasciando nessuno svantaggio reale. Livelli di SWAP Le pagine di dati private sono inizialmente o pagine copy-on-write o pagine zero-fill. Quando avviene un cambiamento, e dunque una copia, l'oggetto di copia originale (in genere un file) non può più essere utilizzato per salvare la copia quando il sistema della VM ha bisogno di riutilizzarla per altri scopi. A questo punto entra in gioco lo SWAP. Lo SWAP viene allocato per creare spazio dove salvare memoria che altrimenti non sarebbe disponibile. FreeBSD alloca la struttura di gestione di un Oggetto VM solo quando è veramente necessario. Ad ogni modo, la struttura di gestione dello swap ha avuto storicamente dei problemi. Su FreeBSD 3.X la gestione della struttura di swap prealloca un array che contiene l'intero oggetto che necessita di subire swap—anche se solo poche pagine di quell'oggetto sono effettivamente swappate questo crea una frammentazione della memoria del kernel quando vengono mappati oggetti grandi, o processi con grandi dimensioni all'esecuzione (large runsizes, RSS). Inoltre, per poter tenere traccia dello spazio di swap, viene mantenuta una lista dei buchi nella memoria del kernel, ed anche questa tende ad essere pesantemente frammentata. Poiché la lista dei buchi è una lista lineare, l'allocazione di swap e la liberazione hanno prestazioni non ottimali O(n) per ogni pagina. Questo richiede anche che avvengano allocazioni di memoria durante il processo di liberazione dello swap, e questo crea problemi di deadlock, blocchi senza uscita, dovuti a scarsa memoria. Il problema è ancor più esacerbato dai buchi creati a causa dell'algoritmo di interleaving. Inoltre il blocco di swap può divenire frammentato molto facilmente causando un'allocazione non contigua. Anche la memoria del Kernel deve essere allocata al volo per le strutture aggiuntive di gestione dello swap quando avviene uno swapout. È evidente che c'era molto spazio per dei miglioramenti. Per FreeBSD 4.X, ho completamente riscritto il sottosistema di swap. Con questa riscrittura, le strutture di gestione dello swap vengono allocate attraverso una tabella di hash invece che con un array lineare fornendo una dimensione di allocazione fissata e una granularità molto maggiore. Invece di usare una lista lineare collegata per tenere traccia delle riserve di spazio di swap, essa usa una mappa di bit di blocchi di swap organizzata in una struttura ad albero radicato con riferimenti allo spazio libero nelle strutture nei nodi dell'albero. Ciò rende in effetti l'operazione di allocazione e liberazione delle risorse un'operazione O(1). L'intera mappa di bit dell'albero radicato viene anche preallocata in modo da evitare l'allocazione di memoria kernel durante le operazioni di swap critiche nei momenti in cui la memoria disponibile è ridotta. Dopo tutto, il sistema tende a fare uso dello swap quando ha poca memoria quindi dovremmo evitare di allocare memoria per il kernel in quei momenti per poter evitare potenziali deadlock. Infine, per ridurre la frammentazione l'albero radicato è in grado di allocare grandi spezzoni contigui in una volta, saltando i pezzetti frammentati. Non ho ancora compiuto il passo finale di avere un puntatore di supportoall'allocazione che scorra su una porzione di swap nel momento in cui vengano effettuate delle allocazioni, in modo da garantire ancor di più le allocazioni contigue o almeno una località nel riferimento, ma ho assicurato che un'aggiunta simile possa essere effettuata. Quando liberare una pagina Poiché il sistema della VM usa tutta la memoria disponibile per il caching del disco, in genere ci sono pochissime pagine veramente libere. Il sistema della VM dipende dalla possibilità di scegliere in maniera appropriata le pagine che non sono in uso per riusarle in nuove allocazioni. Selezionare le pagine ottimali da liberare è forse la funzione singola più importante che possa essere eseguita da una VM perché se si effettua una selezione non accurata, il sistema della VM può essere forzato a recuperare pagine dal disco in modo non necessari, degradando seriamente le prestazioni del sistema. Quanto sovraccarico siamo disposti a sopportare nel percorso critico per evitare di liberare la pagina sbagliata? Ogni scelta sbagliata che facciamo ci costerà centinaia di migliaia di cicli di CPU ed uno stallo percettibile nei processi coinvolti, dunque permettiamo un sovraccarico significativo in modo da poter avere la certezza che la pagina scelta sia quella giusta. Questo è il motivo per cui FreeBSD tende ad avere prestazioni migliori di altri sistemi quando le risorse di memoria vengono stressate. L'algoritmo di determinazione della pagina da liberare è costruito su una storia di uso delle pagine di memoria. Per acquisire tale storia, il sistema si avvantaggia di una caratteristica della maggior parte dell'hardware moderno, il bit che indica l'attività di una pagina (page-used bit). In qualsiasi caso, il page-used bit viene azzerato e in un momento seguente il sistema della VM passa di nuovo sulla pagina e vede che il page-used bit è stato di nuovo attivato. Questo indica che la pagina viene ancora usata attivamente. Il bit ancora disattivato è un indice che quella pagina non viene usata attivamente. Controllando questo bit periodicamente, viene sviluppata una storia d'uso (in forma di contatore) per la pagina fisica. Quando il sistema della VM avrà bisogno di liberare delle pagine, controllare questa storia diventa la pietra angolare nella determinazione del candidato migliore come pagina da riutilizzare. E se l'hardware non ha un page-used bit? Per quelle piattaforme che non hanno questa caratteristica, il sistema in effetti emula un page-used bit. Esso elimina la mappatura di una pagina, o la protegge, forzando un page fault se c'è un accesso successivo alla pagina. Quando avviene il page fault, il sistema segnala semplicemente la pagina come usata e la sprotegge in maniera che possa essere usata. Mentre prendere tale page fault solo per determinare se una pagina è in uso può apparire una scelta costosa, in realtà essa lo è molto meno che riusare la pagina per altri scopi, per dover poi scoprire che un processo ne aveva ancora bisogno e dovere andare a cercarla di nuovo su disco. FreeBSD fa uso di parecchie code per le pagine per raffinare ulteriormente la selezione delle pagine da riutilizzare, come anche per determinare quando le pagine sporche devono essere spostate dalla memoria e immagazzinate da qualche parte. Poiché le tabelle delle pagine sono entità dinamiche in FreeBSD, non costa praticamente nulla eliminare la mappatura di una pagina dallo spazio di indirizzamento di un qualsiasi processo che la stia usando. Quando una pagina candidata è stata scelta sulla base del contatore d'uso, questo è esattamente quello che viene fatto. Il sistema deve effettuare una distinzione tra pagine pulite che possono essere teoricamente liberate in qualsiasi momento, e pagine sporche che devono prima essere scritte (salvate) per poter essere riutilizzabili. Quando una pagina candidata viene trovata viene spostata nella coda delle pagine inattive, se è una pagina sporca, o nella coda di cache se è pulita. Un algoritmo separato basato su un rapporto sporche/pulite determina quando le pagine sporche nella coda inattiva devono essere scritte su disco. Una volta che è stato fatto questo, le pagine ormai salvate vengono spostate dalla coda delle inattive alla coda di cache. A questo punto, le pagine nella coda di cache possono ancora essere riattivate da un VM fault ad un costo relativamente basso. Ad ogni modo, le pagine nella coda di cache vengono considerate immediatamente liberabili e verranno riutilizzate con un metodo LRU (least-recently used Usate meno recentemente. Le pagine che non vengono usate da molto tempo probabilmente non saranno necessarie a breve, e possono essere liberate. ) quando il sistema avrà bisogno di allocare nuova memoria. È importante notare che il sistema della VM di FreeBSD tenta di separare pagine pulite e sporche per l'espressa ragione di evitare scritture non necessarie di pagine sporche (che divorano banda di I/O), e non sposta le pagine tra le varie code gratuitamente quando il sottosistema non viene stressato. Questo è il motivo per cui dando un systat -vm vedrai sistemi con contatori della coda di cache bassi e contatori della coda delle pagine attive molto alti. Quando il sistema della VM diviene maggiormente stressato, esso fa un grande sforzo per mantenere le varie code delle pagine ai livelli determinati come più efficenti. Per anni è circolata la leggenda urbana che Linux facesse un lavoro migliore di FreeBSD nell'evitare gli swapout, ma in pratica questo non è vero. Quello che stava effettivamente accadendo era che FreeBSD stava salvando le pagine inutilizzate proattivamente per fare spazio mentre Linux stava mantendendo le pagine inutilizzate lasciando meno memoria disponibile per la cache e le pagine dei processi. Non so se questo sia vero ancora oggi. Pre-Faulting e Ottimizzazioni di Azzeramento Subire un VM fault non è costoso se la pagina sottostante è già nella memoria fisica e deve solo essere mappata di nuovo nel processo, ma può divenire costoso nel caso se ne subiscano un bel po' su base regolare. Un buon esempio di ciò si ha eseguendo un programma come &man.ls.1; o &man.ps.1; ripetutamente. Se il binario del programma è mappato in memoria ma non nella tabella delle pagine, allora tutte le pagine che verranno accedute dal programmma dovranno generare un page fault ogni volta che il programma viene eseguito. Ciò non è necessario quando le pagine in questione sono già nella cache della VM, quindi FreeBSD tenterà di pre-popolare le tabelle delle pagine di un processo con quelle pagine che sono già nella VM Cache. Una cosa che FreeBSD non fa ancora è effettuare il pre-copy-on-write di alcune pagine nel caso di una chiamata a exec. Ad esempio, se esegui il programma &man.ls.1; mentre stai eseguendo vmstat 1 noterai che subisce sempre un certo numero di page fault, anche eseguendolo ancora e ancora. Questi sono zero-fill fault, legati alla necessità di azzerare memoria, non program code fault, legati alla copia dell'eseguibile in memoria (che erano già stati gestiti come pre-fault). Pre-copiare le pagine all'exec o alla fork è un'area che potrebbe essere soggetta a maggior studio. Una larga percentuale dei page fault che accadono è composta di zero-fill fault. In genere è possibile notare questo fatto osservando l'output di vmstat -s. Questi accadono quando un processo accede a pagine nell'area del BSS. Ci si aspetta che l'area del BSS sia composta inizialmente da zeri ma il sistema della VM non si preoccupa di allocare nessuna memoria finché il processo non ne ha effettivamente bisogno. Quindi nel momento in cui accade un fault il sistema della VM non deve solo allocare una nuova pagina, ma deve anche azzerarla. Per ottimizzare l'operazione di azzeramento, il sistema della VM ha la capacità di pre-azzerare le pagine e segnalarle come tali, e di richiedere pagine pre-azzerate quando avvengono zero-fill fault. Il pre-azzeramento avviene quando la CPU è inutilizzata ma il numero di pagine che vengono pre-azzerate dal sistema è limitato per evitare di spazzare via la cache della memoria. Questo è un eccellente esempio di complessità aggiunta al sistema della VM per ottimizare il percorso critico. Ottimizzazioni della Tabella delle Pagine Le ottimizzazioni alla tabella delle pagine costituiscono La parte più controversa nel design della VM di FreeBSD ed ha mostrato un po' di affanno con l'avvento di un uso pesante di mmap(). Penso che questa sia una caratteristiche della maggior parte dei BSD anche se non sono sicuro di quando è stata introdotta la prima volta. Ci sono due ottimizzazioni maggiori. La prima è che le tabelle della pagine hardware non contengono uno stato persistente ma possono essere gettate via in qualsiasi momento con un sovraccarico di gestione minimo. La seconda è che ogni pagina attiva nel sistema ha una struttura di controllo pv_entry che è integrata con la struttura vm_page. FreeBSD può semplicemente operare attraverso quelle mappature di cui è certa l'esistenza, mentre Linux deve controllare tutte le tabelle delle pagine che potrebbero contenere una mappatura specifica per vedere se lo stanno effettivamente facendo, il che può portare ad un sovraccarico computazionale O(n^2) in alcune situazioni. È per questo che FreeBSD tende a fare scelte migliori su quale pagina riutilizzare o mandare in swap quando la memoria è messa sotto sforzo, fornendo una miglior performance sotto carico. Comunque, FreeBSD richiede una messa a punto del kernel per accomodare situazioni che richiedano grandi spazi di indirizzamento condivisi, come quelli che possono essere necessari in un sistema di news perché potrebbe esaurire il numero di struct pv_entry. Sia Linux che FreeBSD necessitano di lavoro in quest'area. FreeBSD sta cercando di massimizzare il vantaggio di avere un modello di mappatura attiva potenzialmente poco denso (non tutti i processi hanno bisogno di mappare tutte le pagine di una libreria condivisa, ad esempio), mentre linux sta cercando di semplificare i suoi algoritmi. FreeBSD generalmente ha dei vantaggi prestazionali al costo di un piccolo spreco di memoria in più, ma FreeBSD crolla nel caso in cui un grosso file sia condiviso massivamente da centinaia di processi. Linux, d'altro canto, crolla nel caso in cui molti processi mappino a macchia di leopardo la stessa libreria condivisa e gira in maniera non ottimale anche quando cerca di determinare se una pagina deve essere riutilizzata o no. Colorazione delle Pagine Concluderemo con le ottimizzazioni di colorazione delle pagine. La colorazione delle pagine è un'ottimizzazione prestazionale progettata per assicurare che gli accessi a pagine contigue nella memoria virtuale facciano il miglior uso della cache del processore. Nei tempi antichi (cioè più di 10 anni fa) le cache dei processori tendevano a mapparela memoria virtuale invece della memoria fisica. Questo conduceva ad un numero enorme di problemi inclusa la necessità di ripulire la cache ad ogni cambio di contesto, in alcuni casi, e problemi con l'aliasing dei dati nella cache. Le cache dei processori moderni mappano la memoria fisica proprio per risolvere questi problemi. Questo significa che due pagine vicine nello spazio di indirizzamento dei processi possono non corrispondere a due pagine vicine nella cache. In effetti, se non si è attenti pagine affiancate nella memoria virtuale possono finire con l'occupare la stessa pagina nella cache del processore—portando all'eliminazione prematura di dati immagazzinabili in cache e riducendo le prestazioni della cache. Ciò è vero anche con cache set-associative set-associative sta per associative all'interno di un insieme, in quanto c'è un insieme di blocchi della cache nei quale puo essere mappato un elemento della memoria fisica. a molte vie (anche se l'effetto viene in qualche maniera mitigato). Il codice di allocazione della memoria di FreeBSD implementa le ottimizizzazioni di colorazione delle pagine, ciò significa che il codice di allocazione della memoria cercherà di trovare delle pagine libere che siano vicine dal punto di vista della cache. Ad esempio, se la pagina 16 della memoria fisica è assegnata alla pagina 0 della memoria virtuale di un processo e la cache può contenere 4 pagine, il codice di colorazione delle pagine non assegnerà la pagina 20 di memoria fisica alla pagina 1 di quella virtuale. Invece, gli assegnerà la pagina 21 della memoria fisica. Il codice di colorazione delle pagine cerca di evitare l'assegnazione della pagina 20 perché questa verrebbe mappata sopra lo stesso blocco di memoria cache della pagina 16 e ciò causerrebbe un uso non ottimale della cache. Questo codice aggiunge una complessità significativa al sottosistema di allocazione memoria della VM, come si può ben immaginare, ma il gioco vale ben più della candela. La colorazione delle pagine rende la memoria virtuale deterministica quanto la memoria fisica per quel che riguarda le prestazioni della cache. Conclusione La memoria virtuale nei sistemi operativi moderni deve affrontare molti problemi differenti efficientemente e per molti diversi tipi di uso. L'approccio modulare ed algoritmico che BSD ha storicamente seguito ci permette di studiare e comprendere l'implementazione attuale cosi come di poter rimpiazzare in maniera relativamente pulita grosse sezioni di codice. Ci sono stati un gran numero di miglioramenti al sistema della VM di FreeBSD negli ultimi anni, ed il lavoro prosegue. Sessione Bonus di Domande e Risposte di Allen Briggs <email>briggs@ninthwonder.com</email> Cos'è l'algoritmo di interleaving a cui fai riferimento nell'elenco delle debolezze della gestione dello swap in FreeBSD 3.X ? FreeBSD usa un intervallo tra zone di swap fissato, con un valore predefinito di 4. Questo significa che FreeBSD riserva spazio per quattro aree di swap anche se ne hai una sola o due o tre. Poiché lo swap è intervallato lo spazio di indirizzamento lineare che rappresenta le quattro aree di swap verrà frammentato se non si possiedono veramente quattro aree di swap. Ad esempio, se hai due aree di swap A e B la rappresentazione dello spazio di FreeBSD per quell'area di swap verrà interrotta in blocchi di 16 pagine: A B C D A B C D A B C D A B C D FreeBSD 3.X usa una lista sequenziale delle regioni libere per registrare le aree di swap libere. L'idea è che grandi blocchi di spazio libero e lineare possano essere rappresentati con un nodo singolo (kern/subr_rlist.c). Ma a causa della frammentazione la lista sequenziale risulta assurdamente frammentata. Nell'esempio precedente, uno spazio di swap completamente non allocato farà si che A e B siano mostrati come liberi e C e D come totalmente allocati. Ogni sequenza A-B richiede un nodo per essere registrato perché C e D sono buchi, dunquei nodi di lista non possono essere combinati con la sequenza A-B seguente. Perché organizziamo lo spazio in intervalli invece di appiccicare semplicemente le area di swap e facciamo qualcosa di più carino? Perché è molto più semplice allocare strisce lineari di uno spazio di indirizzamento ed ottenere il risultato già ripartito tra dischi multipli piuttosto che cercare di spostare questa complicazione altrove. La frammentazione causa altri problemi. Essendoci una lista lineare nella serie 3.X, ed avendo una tale quantità di frammentazione implicita, l'allocazione e la liberazione dello swap finisce per essere un algoritmo O(N) invece di uno O(1). Combinalo con altri fattori (attività di swap pesante) e comincerai a trovarti con livelli di overhead come O(N^2) e O(N^3), e ciò è male. Il sistema dela serie 3.X può anche avere necessità di allocare KVM durante un'operazione di swap per creare un nuovo nodo lista, il che può portare ad un deadlock se il sistema sta cercando di liberare pagine nella memoria fisica in un momento di scarsità di memoria. Nella serie 4.X non usiamo una lista sequenziale. Invece usiamo un albero radicato e mappe di bit di blocchi di swap piuttosto che nodi lista. Ci prendiamo il peso di preallocare tutte le mappe di bit richieste per l'intera area di swap ma ciò finisce per consumare meno memoria grazie all'uso di una mappa di bit (un bit per blocco) invece di una lista collegata di nodi. L'uso di un albero radicato invece di una lista sequenziale ci fornisce una performance quasi O(1) qualunque sia il livello di frammentazione dell'albero. Non ho capito questo:
È importante notare che il sistema della VM di FreeBSD tenta di separare pagine pulite e sporche per l'espressa ragione di evitare scritture non necessarie di pagine sporche (che divorano banda di I/O), e non sposta le pagine tra le varie code gratuitamente se il sottosistema non viene stressato. Questo è il motivo per cui dando un systat -vm vedrai sistemi con contatori della coda di cache bassi e contatori della coda delle pagine attive molto alti.
Come entra in relazione la separazione delle pagine pulite e sporche (inattive) con la situazione nella quale vediamo contatori bassi per la coda di cache e valori alti per la coda delle pagine attive in systat -vm? I dati di systat derivano da una fusione delle pagine attive e sporche per la coda delle pagine attive?
Si, questo può confondere. La relazione è obiettivo contro realtà. Il nostro obiettivo è separare le pagine ma la realtà è che se non siamo in crisi di memoria, non abbiamo bisogno di farlo. Questo significa che FreeBSD non cercherà troppo di separare le pagine sporche (coda inattiva) da quelle pulite (code della cache), ne cercherà di disattivare le pagine (coda pagine attive -> coda pagine inattive) quando il sistema non è sotto sforzo, anche se non vengono effettivamente usate.
Nell'esempio di &man.ls.1; / vmstat 1, alcuni dei page fault non potrebbero essere data page faults (COW da file eseguibili a pagine private)? Cioè, io mi aspetterei che i page fault fossero degli zero-fill e dei dati di programma. O si implica che FreeBSD effettui il pre-COW per i dati di programma? Un fault COW può essere o legato a uno zero-fill o a dati di programma. Il meccanismo è lo stesso in entrambi i casi poiché i dati di programma da copiare sono quasi certamente già presenti nella cache. E infatti li tratto insieme. FreeBSD non effettua preventivamentela copia dei dati di programma o lo zero-fill, effettua la mappatura preventiva delle pagine che sono presenti nella sua cache. Nella sezione sull'ottimizzazione della tabella delle pagine, potresti fornire maggiori dettagli su pv_entry e vm_page (forse vm_page dovrebbe essere vm_pmap—come in 4.4, cf. pp. 180-181 di McKusick, Bostic, Karel, Quarterman)? Specificamente, che tipo di operazioni/reazioni richiederebbero la scansione delle mappature? Come funziona Linux nel caso in cui FreeBSD fallisce (la condivisione di un grosso file mappato tra molti processi)? Una vm_page rappresenta una tupla (oggetto,indice#). Una pv_entry rappresenta una voce nella tabella delle pagine hardware (pte). Se hai cinque processi che condividono la stessa pagina fisica, e tre delle tabelle delle pagine di questi processi mappano effettivamente la pagina, questa pagina verrà rappresentata da una struttura vm_page singola e da tre strutture pv_entry. Le strutture pv_entry rappresentano solo le pagine mappate dalla MMU (una pv_entry rappresenta un pte). Ciò significa che è necessario rimuovere tutti i riferimenti hardware a vm_page (in modo da poter riutilizzare la pagina per qualcos'altro, effettuare il page out, ripulirla, sporcarla, e così via) possiamo semplicemente scansionare la lista collegata di pv_entry associate con quella vm_page per rimuovere o modificare i pte dalla loro tabella delle pagine. Sotto Linux non c'è una lista collegata del genere. Per poter rimuovere tutte le mappature della tabella delle pagine hardware per una vm_page linux deve indicizzare ogni oggetto VM che potrebbe aver mappato la pagina. Ad esempio, se si hanno 50 processi che mappano la stessa libreria condivisa e si vuole liberarsi della pagina X in quella libreria, sarà necessario cercare nella tabella delle pagine per ognuno dei 50 processi anche se solo 10 di essi ha effettivamente mappato la pagina. Così Linux sta barattando la semplicità del design con le prestazioni. Molti algoritmi per la VM che sono O(1) o (piccolo N) in FreeBSD finiscono per diventare O(N), O(N^2), o anche peggio in Linux. Poiché i pte che rappresentano una particolare pagina in un oggetto tendono ad essere allo stesso offset in tutte le tabelle delle pagine nelle quali sono mappati, la riduzione del numero di accessi alla tabela delle pagine allo stesso offset eviterà che la la linea di cache L1 per quell'offset venga cancellata, portando ad una performance migliore. FreeBSD ha aggiunto complessità (lo schema pv_entry) in modo da incrementare le prestazioni (per limitare gli accessi alla tabella delle pagine solo a quelle pte che necessitino di essere modificate). Ma FreeBSD ha un problema di scalabilità che linux non ha nell'avere un numero limitato di strutture pv_entry e questo provoca problemi quando si hanno condivisioni massicce di dati. In questo caso c'è la possibilità che finiscano le strutture pv_entry anche se c'è ancora una grande quantità di memoria disponibile. Questo può essere risolto abbastanza facilmente aumentando il numero di struttre pv_entry nella configurazione del kernel, ma c'è veramente bisogno di trovare un modo migliore di farlo. Riguardo il sovrapprezzo in memoria di una tabella delle pagine rispetto allo schema delle pv_entry: Linux usa tabelle delle pagine permanenti che non vengono liberate, ma non necessita una pv_entry per ogni pte potenzialmente mappato. FreeBSD usa tabelle delle pagine throw away, eliminabili, ma aggiunge una struttura pv_entry per ogni pte effettivamente mappato. Credo che l'utilizzo della memoria finisca per essere più o meno lo stesso, fornendo a FreeBSD un vantaggio algoritmico con la capacità di eliminare completamente le tabelle delle pagine con un sovraccarico prestazionale minimo. Infine, nella sezione sulla colorazione delle pagine, potrebbe esser d'aiuto avere qualche descrizione in più di quello che intendi. Non sono riuscito a seguire molto bene. Sai come funziona una memoria cache hardware L1? Spiego: Considera una macchina con 16MB di memoria principale ma solo 128K di cache L1. In genere il modo in cui funziona la cache è che ogni blocco da 128K di memoria principale usa gli stessi 128K di cache. Se si accede all'offset 0 della memoria principale e poi al 128K su può finire per cancellarei dati che si erano messi nella cache dall'offset 0! Ora, sto semplificando di molto. Ciò che ho appena descritto è quella che viene detta memoria cache a corrispondenza diretta, o direct mapped. La maggior parte delle cache moderne sono quelle che vengono dette set-associative a 2 o 4 vie. L'associatività di questo tipo permette di accedere fino ad N regioni di memoria differenti che si sovrappongano sulla stessa cache senza distruggere i dati preventivamente immagazzinati. Ma solo N. Dunque se ho una cache set associativa a 4 vie posso accedere agli offset 0, 128K, 256K 384K ed essere ancora in grado di accedere all'offset 0 ritrovandolo nella cache L1. Se poi accedessi all'offset 512K, ad ogni modo, uno degli oggetti dato immagazzinati precedentemente verrebbero cancellati dalla cache. È estremamente importante … estremamente importante che la maggior parte degli accessi del processore alla memoria vengano dalla cache L1, poiché la cache L1 opera alla stessa frequenza del processore. Nel momento in cui si ha un miss Un miss nella cache è equivalente a un page fault per la memoria fisica, ed allo stesso modo implica un accesso a dispositivi molto più lenti, da L1 a L2 come da RAM a disco. nella cache L1 si deveandare a cercare nella cache L2 o nella memoria principale, il processore andrà in stallo, e potenzialmente potrà sedersi a girarsi i pollici per un tempo equivalente a centinaia di istruzioni attendendo che la lettura dalla memoria principale venga completata. La memoria principale (la RAM che metti nel tuo computer) è lenta, se comparata alla velocità del nucleo di un moderno processore. Ok, ora parliamo della colorazione dele pagine: tutte le moderne cache sono del tipo noto come cache fisiche. Esse memorizzano indirizzi di memoria fisica, non indirizzi di memoria virtual. Ciò permette alla cache di rimanere anche nel momento in cui ci sia un cambio di contesto tra processi, e ciò è molto importante. - Ma nel mondo Unix devi lavorare con spazi di indirizzamento + Ma nel mondo &unix; devi lavorare con spazi di indirizzamento virtuali, non con spazi di indirizzamento fisici. Ogni programma che scrivi vedrà lo spazio di indirizzamento virtuale assegnatogli. Le effettive pagine fisiche nascoste sotto quello spazio di indirizzi virtuali non saranno necessariamente contigue fisicamente! In effetti, potresti avere due pagine affiancate nello spazio di indirizzamento del processo cge finiscono per trovarsi agli offset 0 e 128K nella memoria fisica. Un programma normalmente assume che due pagine affiancate verranno poste in cache in maniera ottimale. Cioè, che possa accedere agli oggetti dato in entrambe le pagine senza che esse si cancellino a vicenda le rispettiva informazioni in cache. Ma ciò è vero solo se le pagine fisiche sottostanti lo spazio di indirizzo virtuale sono contigue (per quel che riguarda la cache). Questo è ciò che viene fatto dalla colorazione delle pagine. Invece di assegnare pagine fisiche casuali agli indirizzi virtuali, che potrebbe causare prestazioni non ottimali della cache, la colorazione dele pagine assegna pagine fisiche ragionevolmente contigue. Dunque i programmi possono essere scritti assumendo che le caratteristiche per lo spazio di indirizzamento virtuale del programma della cache hardware sottostante siano uguali a come sarebbero state se avessero usato lo spazio di indirizzamento fisico. Si note ho detto ragionevolmente contigue invece che semplicemente contigue. Dal punto di vista di una cache di 128K a corrispondenza diretta, l'indirizzo fisico 0 è lo stesso che l'indirizzo fisico 128K. Dunque due agine affiancate nello spzio di indirizzamento virtuale potrebbero finire per essere all'offset 128K e al 132K nella memoria fisica, ma potrebbero trovarsi tranquillamente anche agli offset 128K e 4K della memoria fisica e mantenera comunque le stesse caratteristiche prestazionali nei riguardi della cache. Dunque la colorazione delle pagine non deveassegnare pagine di memoria fisica veramente contigue a pagine di memoria virtuale contigue, deve solo assicurarsi che siano assegnate pagine contigue dal punto di vista delle prestazioni/operazioni della cache.
diff --git a/it_IT.ISO8859-15/books/handbook/Makefile b/it_IT.ISO8859-15/books/handbook/Makefile index 280deb9c07..6a56dec221 100644 --- a/it_IT.ISO8859-15/books/handbook/Makefile +++ b/it_IT.ISO8859-15/books/handbook/Makefile @@ -1,196 +1,245 @@ # # $FreeBSD$ # # Crea il Manuale di FreeBSD. # # ------------------------------------------------------------------------ # # Variabili specifiche del Manuale # # WITH_PGPKEYS La versione stampata del manuale riporta solo i # fingerprints PGP di base. Se vuoi visualizzare # le chiavi intere, allora setta questa variabile. # Questa opzione non ha effetto sui formati HTML. # # Targets specifici del Manuale # # pgpkeyring Questo target leggerą il contenuto del file # pgpkeys/chapter.sgml ad estrarrą tutte le chiavi # pgp sullo standard output. Questo output puņ # quindi essere rediretto su un file e distribuito # come un keyring pubblico degli sviluppatori di # FreeBSD che puņ essere facilmente importato in # PGP/GPG. # # ------------------------------------------------------------------------ MAINTAINER= sysadmin@alexdupre.com DOC?= book FORMATS?= html-split HAS_INDEX= true +WITH_GLOSSARY?= INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= IMAGES_EN = advanced-networking/isdn-bus.eps IMAGES_EN+= advanced-networking/isdn-twisted-pair.eps IMAGES_EN+= advanced-networking/natd.eps -IMAGES_EN+= install/userconfig.scr -IMAGES_EN+= install/userconfig2.scr -IMAGES_EN+= install/hdwrconf.scr -IMAGES_EN+= install/probstart.scr -IMAGES_EN+= install/main1.scr -IMAGES_EN+= install/sysinstall-exit.scr -IMAGES_EN+= install/main-doc.scr -IMAGES_EN+= install/docmenu1.scr -IMAGES_EN+= install/main-keymap.scr -IMAGES_EN+= install/keymap.scr -IMAGES_EN+= install/main-options.scr -IMAGES_EN+= install/options.scr -IMAGES_EN+= install/main-std.scr -IMAGES_EN+= install/fdisk-drive1.scr -IMAGES_EN+= install/fdisk-edit1.scr -IMAGES_EN+= install/fdisk-edit2.scr +IMAGES_EN+= install/adduser1.scr +IMAGES_EN+= install/adduser2.scr +IMAGES_EN+= install/adduser3.scr IMAGES_EN+= install/boot-mgr.scr -IMAGES_EN+= install/fdisk-drive2.scr -IMAGES_EN+= install/disklabel-ed1.scr +IMAGES_EN+= install/console-saver1.scr +IMAGES_EN+= install/console-saver2.scr +IMAGES_EN+= install/console-saver3.scr +IMAGES_EN+= install/console-saver4.scr +IMAGES_EN+= install/desktop.scr IMAGES_EN+= install/disklabel-auto.scr +IMAGES_EN+= install/disklabel-ed1.scr +IMAGES_EN+= install/disklabel-ed2.scr +IMAGES_EN+= install/disklabel-fs.scr IMAGES_EN+= install/disklabel-root1.scr IMAGES_EN+= install/disklabel-root2.scr -IMAGES_EN+= install/disklabel-fs.scr IMAGES_EN+= install/disklabel-root3.scr -IMAGES_EN+= install/disklabel-ed2.scr +IMAGES_EN+= install/disk-layout.eps IMAGES_EN+= install/dist-set.scr IMAGES_EN+= install/dist-set2.scr -IMAGES_EN+= install/media.scr +IMAGES_EN+= install/docmenu1.scr IMAGES_EN+= install/ed0-conf.scr IMAGES_EN+= install/ed0-conf2.scr +IMAGES_EN+= install/edit-inetd-conf.scr +IMAGES_EN+= install/example-dir1.eps +IMAGES_EN+= install/example-dir2.eps +IMAGES_EN+= install/example-dir3.eps +IMAGES_EN+= install/example-dir4.eps +IMAGES_EN+= install/example-dir5.eps +IMAGES_EN+= install/fdisk-drive1.scr +IMAGES_EN+= install/fdisk-drive2.scr +IMAGES_EN+= install/fdisk-edit1.scr +IMAGES_EN+= install/fdisk-edit2.scr IMAGES_EN+= install/ftp-anon1.scr IMAGES_EN+= install/ftp-anon2.scr -IMAGES_EN+= install/nfs-server-edit.scr -IMAGES_EN+= install/security.scr -IMAGES_EN+= install/console-saver1.scr -IMAGES_EN+= install/console-saver2.scr -IMAGES_EN+= install/console-saver3.scr -IMAGES_EN+= install/console-saver4.scr -IMAGES_EN+= install/timezone1.scr -IMAGES_EN+= install/timezone2.scr -IMAGES_EN+= install/timezone3.scr +IMAGES_EN+= install/hdwrconf.scr +IMAGES_EN+= install/keymap.scr +IMAGES_EN+= install/main1.scr +IMAGES_EN+= install/mainexit.scr +IMAGES_EN+= install/main-std.scr +IMAGES_EN+= install/main-options.scr +IMAGES_EN+= install/main-doc.scr +IMAGES_EN+= install/main-keymap.scr +IMAGES_EN+= install/media.scr IMAGES_EN+= install/mouse1.scr IMAGES_EN+= install/mouse2.scr IMAGES_EN+= install/mouse3.scr IMAGES_EN+= install/mouse4.scr IMAGES_EN+= install/mouse5.scr IMAGES_EN+= install/mouse6.scr -IMAGES_EN+= install/xf86setup.scr -IMAGES_EN+= install/desktop.scr +IMAGES_EN+= install/mta-main.scr +IMAGES_EN+= install/net-config-menu1.scr +IMAGES_EN+= install/net-config-menu2.scr +IMAGES_EN+= install/nfs-server-edit.scr +IMAGES_EN+= install/ntp-config.scr +IMAGES_EN+= install/options.scr IMAGES_EN+= install/pkg-cat.scr -IMAGES_EN+= install/pkg-sel.scr -IMAGES_EN+= install/pkg-install.scr IMAGES_EN+= install/pkg-confirm.scr -IMAGES_EN+= install/adduser1.scr -IMAGES_EN+= install/adduser2.scr -IMAGES_EN+= install/adduser3.scr -IMAGES_EN+= install/mainexit.scr -IMAGES_EN+= install/disk-layout.eps -IMAGES_EN+= install/edit-inetd-conf.scr -IMAGES_EN+= install/example-dir1.eps -IMAGES_EN+= install/example-dir2.eps -IMAGES_EN+= install/example-dir3.eps -IMAGES_EN+= install/example-dir4.eps -IMAGES_EN+= install/example-dir5.eps +IMAGES_EN+= install/pkg-install.scr +IMAGES_EN+= install/pkg-sel.scr +IMAGES_EN+= install/probstart.scr +IMAGES_EN+= install/routed.scr +IMAGES_EN+= install/security.scr +IMAGES_EN+= install/sysinstall-exit.scr +IMAGES_EN+= install/timezone1.scr +IMAGES_EN+= install/timezone2.scr +IMAGES_EN+= install/timezone3.scr +IMAGES_EN+= install/userconfig.scr +IMAGES_EN+= install/userconfig2.scr +IMAGES_EN+= install/xf86setup.scr +IMAGES_EN+= security/ipsec-crypt-pkt.pic +IMAGES_EN+= security/ipsec-encap-pkt.pic +IMAGES_EN+= security/ipsec-network.pic +IMAGES_EN+= security/ipsec-out-pkt.pic IMAGES_EN+= vinum/vinum-concat.pic IMAGES_EN+= vinum/vinum-mirrored-vol.pic IMAGES_EN+= vinum/vinum-raid10-vol.pic IMAGES_EN+= vinum/vinum-raid5-org.pic IMAGES_EN+= vinum/vinum-simple-vol.pic IMAGES_EN+= vinum/vinum-striped-vol.pic IMAGES_EN+= vinum/vinum-striped.pic # Immagini dalla libreria per tutti i documenti IMAGES_LIB = callouts/1.png IMAGES_LIB+= callouts/2.png IMAGES_LIB+= callouts/3.png IMAGES_LIB+= callouts/4.png IMAGES_LIB+= callouts/5.png IMAGES_LIB+= callouts/6.png IMAGES_LIB+= callouts/7.png IMAGES_LIB+= callouts/8.png IMAGES_LIB+= callouts/9.png IMAGES_LIB+= callouts/10.png # # SRCS lista i singoli files SGML che compongono il documento. Modifiche # a qualunque di questi files obbligano la ricreazione # # Contenuto SGML SRCS = book.sgml SRCS+= advanced-networking/chapter.sgml SRCS+= basics/chapter.sgml SRCS+= bibliography/chapter.sgml SRCS+= config/chapter.sgml SRCS+= boot/chapter.sgml SRCS+= cutting-edge/chapter.sgml SRCS+= desktop/chapter.sgml SRCS+= disks/chapter.sgml SRCS+= eresources/chapter.sgml SRCS+= install/chapter.sgml SRCS+= introduction/chapter.sgml SRCS+= kernelconfig/chapter.sgml SRCS+= l10n/chapter.sgml SRCS+= linuxemu/chapter.sgml SRCS+= mail/chapter.sgml SRCS+= mirrors/chapter.sgml SRCS+= multimedia/chapter.sgml SRCS+= pgpkeys/chapter.sgml SRCS+= ppp-and-slip/chapter.sgml SRCS+= printing/chapter.sgml SRCS+= security/chapter.sgml SRCS+= serialcomms/chapter.sgml SRCS+= users/chapter.sgml SRCS+= vinum/chapter.sgml SRCS+= x11/chapter.sgml SRCS+= ports/chapter.sgml SRCS+= preface/preface.sgml SRCS+= colophon.sgml # Entities SRCS+= chapters.ent SYMLINKS= ${DESTDIR} index.html handbook.html # Attiva tutti i capitoli. CHAPTERS?= ${SRCS:M*chapter.sgml} SGMLFLAGS+= ${CHAPTERS:S/\/chapter.sgml//:S/^/-i chap./} +.if defined(WITH_GLOSSARY) && !empty(WITH_GLOSSARY) +SGMLFLAGS+= -i chap.freebsd-glossary +.endif # XXX La creazione del Manuale attualmente sfora dei limiti interni, # codificati in pdftex. Finché non dividiamo il Manuale, crea la versione # PDF usando ps2pdf invece di pdftex. PS2PDF?= ${PREFIX}/bin/ps2pdf book.tex-pdf: ${TOUCH} book.tex-pdf book.pdf: book.ps ${PS2PDF} book.ps book.pdf pgpkeyring: pgpkeys/chapter.sgml @${JADE} -V nochunks ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC} -DOC_PREFIX?= ${.CURDIR}/../../.. - # # Variabili specifiche del Manuale # .if defined(WITH_PGPKEYS) JADEFLAGS+= -V withpgpkeys .endif +DOC_PREFIX?= ${.CURDIR}/../../.. + +.for p in ftp cvsup +SRCS+= mirrors.sgml.${p}.inc +CLEANFILES+= mirrors.sgml.${p}.inc +CLEANFILES+= mirrors.sgml.${p}.inc.tmp +.endfor + +SRCS+= eresources.sgml.www.inc +CLEANFILES+= eresources.sgml.www.inc +CLEANFILES+= eresources.sgml.www.inc.tmp + .include "${DOC_PREFIX}/share/mk/doc.project.mk" + +.for p in ftp cvsup +mirrors.sgml.${p}.inc: ${XML_MIRRORS} ${XSL_MIRRORS} + ${XSLTPROC} ${XSLTPROCOPTS} \ + -o $@.tmp \ + --param 'transtable.xml' "'${XML_TRANSTABLE}'" \ + --param 'type' "'$p'" \ + --param 'proto' "'$p'" \ + --param 'target' "'handbook/mirrors/chapter.sgml'" \ + ${XSL_MIRRORS} ${XML_MIRRORS} + ${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2>,;s,,,' \ + < $@.tmp > $@ || (${RM} -f $@ && false) + ${RM} -f $@.tmp +.endfor + +eresources.sgml.www.inc: ${XML_MIRRORS} ${XSL_MIRRORS} + ${XSLTPROC} ${XSLTPROCOPTS} \ + -o $@.tmp \ + --param 'transtable.xml' "'${XML_TRANSTABLE}'" \ + --param 'type' "'www'" \ + --param 'proto' "'http'" \ + --param 'target' "'handbook/eresources/chapter.sgml'" \ + ${XSL_MIRRORS} ${XML_MIRRORS} + ${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2>,;s,,,' \ + < $@.tmp > $@ || (${RM} -f $@ && false) + ${RM} -f $@.tmp diff --git a/it_IT.ISO8859-15/books/handbook/basics/chapter.sgml b/it_IT.ISO8859-15/books/handbook/basics/chapter.sgml index 5ad134712e..96d1856729 100644 --- a/it_IT.ISO8859-15/books/handbook/basics/chapter.sgml +++ b/it_IT.ISO8859-15/books/handbook/basics/chapter.sgml @@ -1,1985 +1,2727 @@ Chris Shumway Riscritto da Basi di Unix Sinossi basi Il seguente capitolo tratta i comandi e le funzionalità di base del sistema operativo FreeBSD. Molto di questo materiale è - valido anche per altri sistemi operativi Unix-like. Sentiti libero di + valido anche per altri sistemi operativi &unix;-like. Sentiti libero di leggere velocemente questo capitolo se hai familiarità con questo materiale. Se sei un utente alle prime armi di FreeBSD, allora dovrai di sicuro leggere questo capitolo attentamente. Dopo aver letto questo capitolo, saprai: - Come funzionano i permessi dei file Unix. + Come usare le console virtuali di FreeBSD. + + + + Come funzionano i permessi dei file &unix;. + + + + La struttura di default del file system di &os;. - Cosa sono le ACL del file system e come - usarle. + Come montare e smontare i file system. Cosa sono i processi, i demoni e i segnali. Cos'è una shell, e come cambiare il proprio ambiente di login di default. I principi di base sull'uso degli editor testuali. - Come leggere le pagine man per ottenere maggiori - informazioni. + Cosa sono i dispositivi e i nodi dei dispositivi. - Come usare le console virtuali di FreeBSD. + Quali formati dei binari sono usati in &os;. + + + + Come leggere le pagine man per ottenere maggiori + informazioni. + + Console Virtuali e Terminali + + console virtuali + terminali + + FreeBSD può essere usato in vari modi. Uno di questi è + quello di digitare i comandi tramite un terminale testuale. Quando si + utilizza FreeBSD in questo modo si ha velocemente nelle proprie mani molta + della flessibilità e della potenza di un sistema operativo &unix;. + Questa sezione descrive cosa sono i terminali e le + console, e come si possono utilizzare in FreeBSD. + + + La console + + console + + Se non hai configurato FreeBSD in modo tale da avviare in modo + automatico l'ambiente grafico durante l'avvio, il sistema ti + fornirà un prompt di login dopo la fase di avvio, esattamente + dopo che gli script di avvio sono stati eseguiti. Dovresti vedere + qualcosa simile a questo: + + Additional ABI support:. +Local package initialization:. +Additional TCP options:. + +Fri Sep 20 13:01:06 EEST 2002 + +FreeBSD/i386 (pc3.example.org) (ttyv0) + +login: + + I messaggi potrebbero essere leggermente diversi sul tuo sistema, + tuttavia dovresti vedere qualcosa di analogo. In questo momento ci + interessano le ultime due righe. Analizziamo la penultima riga: + + FreeBSD/i386 (pc3.example.org) (ttyv0) + + Questa riga contiene alcune informazioni sul sistema che hai appena + avviato. Sei di fronte a una console FreeBSD, che sta + girando su un processore Intel o su un processore compatibile con + l'architettura x86 + Questo è il significato di i386. + Nota che anche se non stai eseguendo FreeBSD su una CPU della serie + 386 di Intel, questo messaggio resta i386. Non + si riferisce al tipo del tuo processore, ma bensì + all'architettura del processore.. + Il nome di questa macchina (tutte le macchine &unix; hanno un nome) + è pc3.example.org, e in questo momento sei di + fronte alla sua console di sistema—il terminale + ttyv0. + + Infine, l'ultima riga è sempre: + + login: + + Qui devi digitare il tuo username per loggarti in + FreeBSD. La prossima sezione descrive come fare ad effettuare il login + su FreeBSD. + + + + Loggarsi in FreeBSD + + FreeBSD è un sistema multi-utente e multi-processo. Questa + è la descrizione formale che viene usualmente attribuita a un + sistema che può essere usato da diverse persone, le quali + eseguono contemporaneamente molti programmi su una singola + macchina. + + Ogni sistema multi-utente necessita di qualche metodo che distingua + un utente in modo univoco. In FreeBSD (e in tutti i + sistemi operativi &unix;-like), questo viene realizzato richiedendo che + ogni utente debba loggarsi nel sistema prima che possa + eseguire qualche programma. Ogni utente ha un nome univoco (lo + username), uno personale e una chiave segreta (la + password). FreeBSD richiede entrambe queste due cose + prima di dare la possibilità ad un utente di eseguire qualche + programma. + + script di avvio + + Giusto dopo la fase di avvio di FreeBSD e quando gli script di avvio + sono stati eseguiti + Gli script di avvio sono programmi che vengono eseguiti in modo + automatico durante la fase di avvio di FreeBSD. Il loro compito + principale è quello di settare delle cose che potranno essere + utilizzate da qualsiasi altra cosa venga eseguita, ed avviare i + servizi che potresti avere configurato in modo tale da essere + eseguiti in background per realizzare cose utili. + , ti viene presentato un prompt dove inserire un valido + username: + + login: + + Giusto per questo esempio, assumiamo che il tuo username sia + john. Al prompt digita john e + premi Invio. Ti verrà presentato un prompt + dove inserire la password: + + login: john +Password: + + Digita la password di john, e premi + Invio. La password non viene + visualizzata! Non ti devi preoccupare di questo per ora. + È sufficiente sapere che è una questione di + sicurezza. + + Se hai digitato la tua password in modo corretto, dovresti essere + loggato in FreeBSD e sei quindi pronto per provare tutti i comandi + disponibili. + + Dovresti inoltre vedere il messaggio del giorno + (MOTD) seguito da un prompt dei comandi (un + carattere #, $, o + %). Ciò + indica che sei a tutti gli effetti loggato in FreeBSD. + + + + Console Multiple + + Eseguire comandi &unix; in una sola console va bene, tuttavia + FreeBSD può eseguire più programmi alla volta. Avere una + sola console dove poter digitare i comandi può essere un + pò uno spreco quando un sistema operativo come FreeBSD è + in grado di eseguire dozzine di programmi contemporaneamente. È + in questo caso che le console virtuali possono essere + molto utili. + + FreeBSD può essere configurato in modo tale da poter + utilizzare differenti console virtuali. Puoi passare da una console + virtuale ad un'altra digitando un paio di tasti sulla tastiera. Ogni + console ha il proprio canale di output indipendente, e FreeBSD si + occupa di redirigere correttamente l'input della tastiera e l'output del + monitor quando passi da una console virtuale in un'altra. + + In FreeBSD alcune combinazioni speciali di tasti sono state + riservate per il passaggio tra le console + Una descrizione abbastanza tecnica ed accurata di tutti i + dettagli della console di FreeBSD e dei driver della tastiera + può essere trovata nelle pagine man di &man.syscons.4;, + &man.atkbd.4;, &man.vidcontrol.1; e &man.kbdcontrol.1;. Qui non + approfondiremo i dettagli, ma il lettore interessato può + sempre consultare le pagine man per una spiegazione dettagliata + e completa su come funzionano queste cose. + . Puoi usare + AltF1, + AltF2, fino a + AltF8 per + cambiare console su FreeBSD. + + Quando passi da una console ad un'altra, FreeBSD si preoccupa di + salvare e ripristinare l'output a video. Il risultato è + l'illusione di avere più schermi e più + tastiere virtuali che puoi utilizzare per dare in pasto a + FreeBSD dei comandi. I programmi che lanci su una console virtuale + rimarranno in esecuzione anche quando la console non è visibile. + L'esecuzione di questi programmi continua quando passi in un'altra + console virtuale. + + + + Il File <filename>/etc/ttys</filename> + + La configurazione di default di FreeBSD prevede l'avvio del sistema + con otto console virtuali. Comunque questo non è un settaggio + obbligatorio, e puoi facilmente personalizzare la tua installazione in + modo tale da avviare il sistema con qualche console virtuale in + più. Il numero e i settaggi delle console virtuali sono + configurati nel file /etc/ttys. + + Puoi usare il file /etc/ttys per configurare + le console virtuali di FreeBSD. In questo file ogni riga non commentata + (le righe che non iniziano con il carattere #) + contiene i settaggi di un singolo terminale o di una singola console + virtuale. La versione di default di questo file contenuta in FreeBSD + configura nove console virtuale, e ne abilita otto di queste. Si tratta + delle righe che iniziano con ttyv: + + # name getty type status comments +# +ttyv0 "/usr/libexec/getty Pc" cons25 on secure +# Terminali virtuali +ttyv1 "/usr/libexec/getty Pc" cons25 on secure +ttyv2 "/usr/libexec/getty Pc" cons25 on secure +ttyv3 "/usr/libexec/getty Pc" cons25 on secure +ttyv4 "/usr/libexec/getty Pc" cons25 on secure +ttyv5 "/usr/libexec/getty Pc" cons25 on secure +ttyv6 "/usr/libexec/getty Pc" cons25 on secure +ttyv7 "/usr/libexec/getty Pc" cons25 on secure +ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure + + Per una descrizione più dettagliata su ogni colonna di questo + file e per tutte le opzioni che puoi utilizzare per settare le console + virtuali, consulta la pagina man &man.ttys.5;. + + + + Console in Modalità Single User + + Una descrizione dettagliata del significato della + modalità single user può essere trovata + nella . È bene notare che + c'è un'unica console quando avvii FreeBSD in modalità + single user. Le console virtuali non sono disponibili. Anche i + settaggi della console in modalità single user possono essere + trovati nel file /etc/ttys. Guarda la riga che + inizia con console: + + # name getty type status comments +# +# Se la console è definita "insecure", allora il processo init richiederà la password di root +# quando entrerai in modalità single-user. +console none unknown off secure + + + Come riportato nel commento sopra la riga + console, puoi modificare questa riga cambiando + secure in insecure. Se lo fai, + quando FreeBSD viene avviato in modalità single user, + verrà chiesta la password di root. + + Pensaci comunque due volte a settare il parametro + insecure. Se non ricordi più + la password di root, riuscire ad avviare il + sistema in modalità single user sarà molto complesso. + È ancora possibile, ma potrebbe essere molto difficile per chi + non conosce molto bene il meccanismo di avvio di FreeBSD e i relativi + programmi. + + + + I Permessi - Unix + UNIX - FreeBSD, essendo un discendente diretto dello Unix BSD, si basa su - molti concetti chiave di Unix. Il primo, e il più affermato, + FreeBSD, essendo un discendente diretto dello &unix; BSD, si basa su + molti concetti chiave di &unix;. Il primo e il più affermato è che FreeBSD è un sistema operativo multi-utente. Il sistema può gestire diversi utenti che lavorano contemporaneamente su lavori indipendenti. Il sistema è responsabile della gestione e della suddivisione appropiata delle richieste di utilizzo dei dispositivi hardware, delle periferiche, della memoria, e del tempo di CPU in modo equo per ogni utente. Poichè il sistema è in grado di supportare più utenti, tutto ciò che il sistema gestisce possiede un'insieme di permessi che determinano chi può leggere, scrivere, ed eseguire la - risorsa. Questi permessi sono memorizzati mediante due ottetti + risorsa. Questi permessi sono memorizzati mediante tre ottetti suddivisi in tre parti, una per il proprietario del file, una per il gruppo al quale il file appartiene, e una per tutti gli altri. Questa rappresentazione numerica funziona in questo modo: permessi permessi dei file Valore Permessi Listato nella Directory 0 Lettura no, scrittura no, esecuzione no --- 1 Lettura no, scrittura no, esecuzione --x 2 Lettura no, scrittura, esecuzione no -w- 3 Lettura no, scrittura, esecuzione -wx 4 Lettura, scrittura no, esecuzione no r-- 5 Lettura, scrittura no, esecuzione r-x 6 Lettura, scrittura, esecuzione no rw- 7 Lettura, scrittura, esecuzione rwx ls directory Puoi usare l'opzione del comando &man.ls.1; per visualizzare un lungo listato della directory che include una colonna contenente le informazioni sui permessi del file per il proprietario, per - il gruppo, e per gli altri. Ecco come è composta la prima colonna - di ls -l: + il gruppo, e per gli altri. Per esempio, digitando ls + -l in una arbitraria directory: + + &prompt.user; ls -l +total 530 +-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile +-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile +-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt +... + + Ecco come è suddivisa la prima colonna dell'output del comando + ls -l: -rw-r--r-- Il primo carattere (partendo da sinistra) indica se il file in questione è un file regolare, una directory, un file speciale per - dispositivi a caratteri, una socket, o un file speciali per altri + dispositivi a caratteri, una socket, o un file speciale per altri dispositivi. Nel nostro caso, il - indica un file regolare. I tre caratteri successivi, che in questo esempio sono rw-, indicano i permessi per il proprietario del file. Seguono altri tre caratteri, r--, che indicano i permessi del gruppo al quale il file appartiene. Gli ultimi tre caratteri, r--, indicano i permessi per il resto del mondo. Un trattino significa che il permesso non viene concesso. Nel caso di questo file, i permessi sono settati affinchè il proprietario possa leggere e scrivere il file, il gruppo possa leggere il file, e il resto del mondo possa solamente leggere il file. In accordo con la precedente tabella, i permessi per questo file sono 644, dove ogni cifra rappresenta una delle tre parti che costituiscono i permessi del file. D'accordo, ma il sistema come controlla i permessi sui dispositivi? FreeBSD tratta molti dispositivi hardware esattamente come un file che i programmi possono aprire, leggere, e scrivere dei dati proprio come avviene con gli altri file. Questi file speciali per i dispositivi sono memorizzati nella directory /dev. Anche le directory sono trattate come file. Queste hanno permessi di lettura, scrittura e di esecuzione. Il bit riferito al permesso di esecuzione per una directory ha un significato leggermente differente rispetto a quello dei file. Quando una directory ha il permesso di - esecuzione abilitato, significa che si ha accesso alla directory, ad - esempio è possibile eseguire il comando cd per - entrarci. Inoltre questo significa che all'interno della directory - è possibile accedere ai file dei quali si conosce il nome + esecuzione abilitato, significa che si ha accesso alla directory, ossia + è possibile eseguire il comando cd (cambio di + directory) per entrarci. Inoltre questo significa che all'interno della + directory è possibile accedere ai file dei quali si conosce il nome (naturalmente a condizione dei permessi degli stessi file). In particolare, per visualizzare il contenuto di una directory, deve essere abilitato il permesso di lettura sulla stessa, mentre per eliminare un file di cui si conosce il nome, è necessario che la directory contenente il file abbia i permessi di scrittura e di esecuzione abilitati. Ci sono altri bit per permessi particolari, ma sono in genere usati in circostanze speciali come il permesso di setuid per i binari e quello di sticky per le directory. Se vuoi avere più informazioni sui permessi dei file e su come settarli, guarda la pagina man di &man.chmod.1;. - - - - - - Tom - - Rhodes - - Contributo di - - - - - ACL - - Liste di Controllo di Accesso del File System - - Oltre ai miglioramenti del file system contenuti nelle snapshot, - FreeBSD 5.0 e successive offrono la sicurezza delle Liste di Controllo di - Accesso del File System (ACL). - - Le Liste di Controllo di Accesso estendono il modello dei permessi - standard di Unix con un alto grado di compatibilità (POSIX.1e). - Questa caratteristica permette ad un amministratore di usufruire di un - modello si sicurezza più sofisticato. - - Per abilitare il supporto delle ACL per il file - system UFS, la riga: - - options UFS_ACL - - deve essere contenuta nel file del kernel al momento della sua - compilazione. Se il kernel non viene compilato con questa opzione, - verrà visualizzato un messaggio di avvertimento quando si - tenta di effettuare il mount di un file system che supporta le - ACL. Questa opzione è inclusa nel kernel - GENERIC. Le ACL si basano su - attributi estesi che sono abilitati sul file system. Questi attributi - estesi saranno supportati in modo nativo dalla prossima generazione del - file system Unix, chiamata UFS2. - - - Per configurare gli attributi estesi su UFS1 - è richiesto un grado di amministrazione globale superiore - rispetto a quello richiesto per UFS2. Inoltre le - prestazioni degli attributi estesi su UFS2 sono - sostanzialmente superiori. Come risultato, UFS2 - è in genere preferito a UFS1 per l'utilizzo - con le liste di controllo di accesso. - - - Le ACL sono abilitate in fase di mount tramite una - flag amministrativa, , che può essere aggiunta - in /etc/fstab. Inoltre tale flag può essere - settata in modo automatico e permanente usando &man.tunefs.8; per - modificare il superblocco della flag relativa alle ACL - nell'intestazione del file system. Generalmente, è preferibile - usare il superblocco della flag per molte ragioni: + + + + + Tom - - - La flag delle ACL attivata in fase di mount non - può essere modificata da un remount (&man.mount.8; - ), ma solamente da un &man.umount.8; e da un nuovo - &man.mount.8;. Questo significa che le ACL non - possono essere abilitate sul file system root dopo l'avvio del - sistema. Inoltre significa che non puoi modificare la disposizione - di un file system una volta che è in uso. - + Rhodes - - Settando il superblocco della flag si permette di montare il file - system con le ACL abilitate anche se non c'è - la specifica in fstab o se c'è un - riordino dei dispositivi. In questo modo si evita di montare - accidentalmente file system senza le ACL abilitate, - il che potrebbe provocare una forzatura impropria delle - ACL e perciò potrebbe provocare dei - problemi di sicurezza. - - + Contributo di + + + + + Permessi Simbolici + + + Permessisimbolici + + + I permessi simbolici, qualche volta chiamati espressioni simboliche, + usano caratteri al posto dei numeri ottali per assegnare i permessi a + file o directory. Le espressioni simboliche usano la sintassi (chi) + (azione) (permessi), con i seguenti valori: + + + + + + Opzione + + Lettera + + Cosa rappresenta/Cosa fa + + + + + + (chi) + + u + + Utente + + + + (chi) + + g + + Gruppo di appartenenza + + + + (chi) + + o + + Altri + + + + (chi) + + a - - Si può modificare il comportamento delle - ACL in modo tale che la flag possa essere abilitata - senza effettuare un nuovo &man.mount.8;, ma si ritiene opportuno - scoraggiare accidentali mount senza le ACL - abilitate, poichè potresti seriamente sparati sui piedi se - abiliti le ACL, quindi le disabiliti, e poi - le riabiliti senza aver ripulito gli attributi estesi. Generalmente, - una volta che hai abilitato le ACL su un file system, - queste non dovrebbero essere disabilitate, affinchè le - protezioni sui file non siano compatibili con quelle volute dagli utenti - sul sistema, e riabilitando le ACL, quelle precedenti - potrebbero essere di nuovo attribuite a quei file i cui permessi sono - stati modificati, avendo come risultato un comportamento - imprevedibile. - - - I file system con le ACL abilitate mostreranno il - segno + (più) quando verranno visualizzati i - loro permessi. Per esempio: - - drwx------ 2 robert robert 512 Dec 27 11:54 private -drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1 -drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2 -drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3 -drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html - - Vediamo che le directory directory1, - directory2, e directory3 - fanno uso delle ACL. La directory - public_html no. + Tutti (tutto il mondo) + + + + (azione) + + + + + Aggiunge i permessi + + + + (azione) + + - + + Rimuove i permessi + + + + (azione) + + = + + Setta esplicitamente i permessi + + + + (permessi) + + r + + Lettura + + + + (permessi) + + w + + Scrittura + + + + (permessi) + + x + + Esecuzione + + + + (permessi) + + t + + Bit sticky + + + + (permessi) + + s + + Setta UID o GID + + + + + + Questi valori sono usati con il comando &man.chmod.1; + in modo simile a prima, ma con le lettere. Per esempio, puoi usare il + seguente comando per impedire agli altri utenti l'accesso a + FILE: + + &prompt.user; chmod go= FILE + + Se si ha la necessità di realizzare più di una + modifica ai settaggi di un file si può usare una lista di + settaggi separati da virgola. Per esempio il seguente comando + rimuoverà il permesso di scrittura su + FILE al gruppo di appartenenza del file e al + resto del mondo, e inoltre aggiungerà + il permesso di esecuzione per tutti: + + &prompt.user; chmod go-w,a+x FILE + Struttura delle Directory gerarchia delle directory La gerarchia delle directory di FreeBSD è fondamentale per ottenere una comprensione globale del sistema. Il concetto più importante da cogliere al volo è quello relativo alla directory root, /. Questa directory è la prima ad essere - montata all'avvio e contiene la base del sistema necessaria per - predisporre il sistema operativo al funzionamento multi-utente. - Inoltre la directory root contiene i punti di mount per gli altri file - system che potresti voler montare. + montata all'avvio e contiene gli elementi fondamentali del sistema + necessari per predisporre il sistema operativo al funzionamento + multi-utente. Inoltre la directory root contiene i punti di mount per + gli altri file system che potresti voler montare. Un punto di mount è una directory dove dei file system aggiuntivi possono essere innestati sul file system root. Alcuni punti di mount standard sono /usr, /var, /mnt, e /cdrom. Queste directory compaiono in genere negli elementi del file /etc/fstab. Il file /etc/fstab è una tabella di file system e punti di mount che viene consultata dal sistema. Molti dei file system riferiti nel file /etc/fstab sono montati in modo automatico all'avvio tramite lo script &man.rc.8; a meno che essi sia stati dichiarati con l'opzione . Consulta la pagina man di &man.fstab.5; per maggiori informazioni sul formato del file /etc/fstab e per le opzioni che può contenere. Una descrizione completa della gerarchia del file system è disponibile nella pagina man &man.hier.7;. Per ora, è sufficiente una breve panoramica generale delle directory più comuni. Directory Descrizione / Directory root del file system. /bin/ Utilità fondamentali per l'utente sia in ambiente mono-utente sia in ambiente multi-utente. /boot/ Programmi e file di configurazione utilizzati durante la fase di avvio del sistema operativo. /boot/defaults/ File di configurazione di avvio di default; consultare &man.loader.conf.5;. /dev/ Nodi di dispositivo; consultare &man.intro.4;. /etc/ Script e file di configurazione del sistema. /etc/defaults/ File di configurazione di default del sistema; consultare &man.rc.8;. /etc/mail/ File di configurazione per gli MTA (Mail Transfer Agent, agente di trasferimento della posta elettronica) come &man.sendmail.8;. /etc/namedb/ File di configurazione di named; consultare &man.named.8;. /etc/periodic/ Script che sono eseguiti giornalmente, settimanalmente, e mensilmente tramite &man.cron.8;; consultare &man.periodic.8;. /etc/ppp/ File di configurazione di ppp; consultare &man.ppp.8;. /mnt/ Directory vuota usata comunemente dagli amministratori di sistema come punto di mount temporaneo. /proc/ File system dedicato ai processi; consultare &man.procfs.5;, &man.mount.procfs.8;. /root/ Directory home per l'account root. /sbin/ Programmi di sistema e utilità di amministrazione fondamentali sia in ambiente mono-utente sia in ambiente multi-utente. /stand/ Programmi usati in un ambiente standalone. /tmp/ File temporanei, di solito un file system basato sulla memoria come &man.mfs.8; (generalmente il contenuto di /tmp non viene preservato dopo un reboot del sistema). /usr/ La maggior parte delle applicazioni e delle utilità dell'utente. /usr/bin/ Utilità, strumenti di programmazione, e applicazioni comuni. /usr/include/ File include standard del C. /usr/lib/ Archivio di librerie. /usr/libdata/ Archivio di dati per utilità varie. /usr/libexec/ Demoni & utilità di sistema (eseguiti da altri programmi). /usr/local/ Eseguibili locali, librerie locali, ecc. Usata anche come destinazione di default per la struttura dei port di FreeBSD. All'interno di /usr/local, viene usato lo stesso schema generale descritto in &man.hier.7; per la directory /usr. Le eccezioni sono la directory man, che è posta direttamente sotto /usr/local piuttosto che sotto /usr/local/share, e la documentazione dei port che è in share/doc/port. /usr/obj/ Albero degli elementi dipendenti dal tipo di architettura dell'elaboratore prodotto dalla costruzione dell'albero /usr/src. /usr/ports Collezione dei port di FreeBSD (opzionale). /usr/sbin/ Demoni & utilità di sistema (eseguiti dagli utenti). /usr/share/ File indipendenti dal tipo di architettura dell'elaboratore. /usr/src/ File sorgenti di BSD e/o sorgenti proprietari. /usr/X11R6/ Eseguibili, librerie, ecc. riguardanti la distribuzione X11R6 (opzionale). - - /var/ + + /var/ + + File log di vario genere, file temporanei, file transitori, + e file di spool. + + + + /var/log/ + + File di log del sistema di vario genere. + + + + /var/mail/ + + File delle caselle di posta degli utenti. + + + + /var/spool/ + + Directory di spool per stampanti e per la posta elettronica + del sistema. + + + + /var/tmp/ + + File temporanei che sono mantenuti tra i reboot del + sistema. + + + + /var/yp + + Mappe NIS. + + + + + + + + + Organizzazione del Disco + + La più piccola unità di organizzazione che FreeBSD usa + per ricercare file è il nome del file. I nomi dei file sono + case-sensitive, ciò significa che readme.txt + e README.TXT sono due file distinti. FreeBSD non usa + l'estensione (es. .txt) di un file per determinare + se il file è un programma, un documento, o qualche altra forma di + dati. + + I file sono memorizzati in directory. Una directory può + contenere centinaia di file o non contenerne affatto. Inoltre una + directory può contenere altre directory, consentendo di costruire + una gerarchia di directory all'interno di un'altra. Tutto questo rende + più facile l'organizzazione dei tuoi dati. + + File e directory sono riferiti attraverso il nome del file o della + directory, seguito da uno slash in avanti, /, + a sua volta seguito da altri nomi di directory che sono necessari. Se + hai una directory di nome foo, la quale contiene la + directory bar, che a sua volta contiene il file + readme.txt, allora il nome completo, chiamato anche + il path del file è + foo/bar/readme.txt. + + Le directory e i file sono memorizzati in un filesystem. Ogni + filesystem contiene esattamente una directory al livello più alto, + chiamata la directory root di quel filesystem. + Questa directory root può contenere altre directory. + + Fin qui è probabilmente tutto simile ad altri sistemi + operativi che hai usato. Tuttavia ci sono alcune differenze; per + esempio, il DOS usa il carattere \ per separare i nomi + di file e directory, mentre &macos; usa :. + + FreeBSD non usa lettere di dispositivi, o altri nomi di dispositivi + nel path. In FreeBSD non dovrai mai scrivere + c:/foo/bar/readme.txt. + + Piuttosto, un filesystem è designato come il + filesystem root. La directory root del + filesystem root è riferita con /. Ogni altro + filesystem è montato sotto il filesystem + root. Non importa quanti dischi hai sul tuo sistema FreeBSD, ogni + directory è come se fosse parte dello stesso disco. + + Supponiamo che tu abbia tre filesystem, chiamati + A, B, e C. + Ogni filesystem ha una directory root, la quale contiene altre due + directory, chiamate A1, A2 (e + nello stesso modo B1, B2 e + C1, C2). + + Sia A il filesystem root. Se usi il comando + ls per visualizzare il contenuto di questa directory + dovresti vedere due sottodirectory, A1 e + A2. L'albero delle directory assomiglia a + questo: + + + + + + + + / + | + +--- A1 + | + `--- A2 + + + + Un filesystem deve essere montato su una directory di un altro + filesystem. Supponiamo ora che tu monti il filesystem + B sulla directory A1. La directory + root di B rimpiazza A1, e di + conseguenza appariranno le directory di B: + + + + + + + + / + | + +--- A1 + | | + | +--- B1 + | | + | `--- B2 + | + `--- A2 + + + + I file contenuti nelle directory B1 o + B2 possono essere raggiunti con il path + /A1/B1 o /A1/B2. I file che + erano in /A1 sono stati temporaneamente nascosti. + Questi riappariranno quando B sarà + smontato da A. + + Se B è stato montato su + A2 allora il diagramma assomiglierà a + questo: + + + + + + + + / + | + +--- A1 + | + `--- A2 + | + +--- B1 + | + `--- B2 + + + + e i path saranno rispettivamente /A2/B1 e + /A2/B2. + + I filesystem possono essere montati in cima ad altri filesystem. + Continuando con l'ultimo esempio, il filesystem C + può essere montato in cima alla directory B1 + nel filesystem B, arrivando a questa + sistemazione: + + + + + + + + / + | + +--- A1 + | + `--- A2 + | + +--- B1 + | | + | +--- C1 + | | + | `--- C2 + | + `--- B2 + + + + Oppure C potrebbe essere montato direttamente sul + filesystem A, sotto la directory + A1: + + + + + + + + / + | + +--- A1 + | | + | +--- C1 + | | + | `--- C2 + | + `--- A2 + | + +--- B1 + | + `--- B2 + + + + Se hai familiarità con DOS, questo è simile, man non + identico, al comando join. + + Di solito non ti devi occupare direttamente di questi aspetti. + Tipicamente quando installi FreeBSD crei i filesystem e decidi dove + montarli, e da quel momento non avrai più la necessità di + modificarli a meno che installi un nuovo disco. + + È possibile avere un unico filesystem root, senza avere la + necessità di crearne altri. Esistono alcuni svantaggi + utilizzando questo approccio, e un solo vantaggio. + + + Benefici con Filesystem Multipli + + + Filesystem diversi possono avere opzioni di + mount diverse. Per esempio, in una attenta progettazione, + il filesystem root potrebbe essere montato in modalità di sola + lettura, rendendo impossibile la cancellazione accidentale o la modifica + di un file critico. Inoltre, separando i filesystem scrivibili + dall'utente, come /home, da altri filesystem + permette di montare i primi con l'opzione nosuid; + questa opzione non permette il settaggio dei bit + suid/guid sui file + eseguibili memorizzati sul filesystem che ha tale opzione di mount + attivata, migliorando l'aspetto sicurezza. + + + + FreeBSD ottimizza in modo automatico la disposizione dei file sul + filesystem, a seconda di come è usato il filesystem. Quindi + un filesystem che contiene molti file piccoli che sono scritti di + frequente avrà un'ottimizzazione diversa rispetto ad un altro + filesystem che contiene pochi file di grandi dimensioni. Utilizzando + un solo grande filesystem questa ottimizzazione viene a + mancare. + + + + I filesystem di FreeBSD reagiscono bene ad una violenta perdita di + energia elettrica. Tuttavia, una perdita di energia in un punto + critico potrebbe sempre danneggiare la struttura del filesystem. + Splittando i tuoi dati su filesystem multipli sarà più + probabile che il sistema riparta, dandoti la possibilità di + ripristinare un precedente backup se necessario. + + + + + Benefici di un Filesystem Singolo + + + I filesystem sono a dimensione fissa. Se crei un solo filesystem + quando installi FreeBSD e gli assegni una data dimensione, in futuro + potresti scoprire che necessiti di creare una partizione più + grande. Questo non è facilmente realizzabile se non + effettuando un backup dei dati, ricreando il filesystem con la nuova + dimensione, e quindi ripristinando il backup di dati. + + + FreeBSD 4.4 e successivi hanno il comando &man.growfs.8;, + con il quale è possibile incrementare la dimensione del + filesystem al volo, rimuovendo questa limitazione. + + + + + I filesystem sono contenuti all'interno di partizioni. Il termine + partizione non ha lo stesso significato di quello introdotto all'inizio di + questo capitolo, a causa dell'eredità &unix; di FreeBSD. Ogni + partizione è identificata da una lettera partendo dalla + a fino alla h. Ogni partizione + può contenere solo un filesystem, il che significa che i filesystem + sono spesso identificati sia dal loro punto di mount nella gerarchia del + filesystem, sia dalla lettera della partizione nella quale sono + contenuti. + + Inoltre FreeBSD usa parte del disco per lo spazio di + swap. Lo spazio di swap fornisce a FreeBSD la + funzionalità di memoria virtuale. Questo + permette al tuo computer di comportarsi come se avesse più memoria + di quella che ha realmente. Quando FreeBSD esaurisce la memoria muove + alcuni dati presenti in memoria che non sono utilizzati in quel momento + nello spazio di swap, e li riporta in memoria (spostando nello spazio di + swap qualche altro dato) non appena necessari. + + Alcune partizioni hanno certe convenzioni a loro associate. + + + + + + + + + + Partizione + + Convenzione + + + + + + a + + In genere contiene il filesystem root + + + + b + + In genere contiene lo spazio di swap + + + + c + + Di solito rappresenta l'intera dimensione della slice. + Questo permette a utility che necessitano di lavorare sull'intera + slice (per esempio, uno scanner di blocchi difettosi) di lavorare + sulla partizione c. Di norma non dovresti + creare un filesystem su questa partizione. + + + + d + + La partizione d era utilizzata in passato + con un significato speciale, sebbene ora non sia più + utilizzata. Ai giorni d'oggi, alcuni strumenti operano in modo + starno se gli si dice di lavorare sulla partizione + d, e per questo motivo + sysinstall di norma non la + crea. + + + + + + Ogni partizione-che-contiene-un-filesystem è memorizzata in + ciò che FreeBSD chiama slice. Slice + è un termine di FreeBSD per identificare ciò che in + precedenza abbiamo chiamato partizione, e di nuovo, questo è + dovuto dal background &unix; di FreeBSD. Le slices sono numerate, + partendo da 1 e arrivando fino a 4. + + slice + + partizioni + + pericolosamente dedicate + + I numeri di slice seguono il nome del dispositivo, preceduti da una + s, e partendo da 1. Quindi + da0s1 è la prima slice sul + primo disco SCSI. Ci possono essere solo quattro slice fisiche su un + disco, ma puoi avere slice logiche all'interno di slice fisiche di un + appropriato tipo. Queste slice estese sono numerate a partire da 5, + quindi ad0s5 è la prima + slice estesa sul primo disco IDE. Questi stratagemmi sono usati per i + filesystem che si aspettano di occupare una slice. + + Le slice, i dispositivi fisici pericolosamente + dedicati, e altri dispositivi contengono + partizioni, le quali sono rappresentate tramite + lettere dalla a fino alla h. Queste + lettere seguono il nome del dispositivo, quindi + da0a è la partizione a + sul primo dispositivo da, il quale è pericolosamente + dedicato. ad1s3e è + la quinta partizione nel terza slice del secondo disco IDE. + + In fine, ogni disco sul sistema è identificato. Un nome di un + disco incomincia con un codice che indica il tipo di disco, seguito da un + numero, che indica quale disco esso sia. A differenza delle slice, + i numeri riferiti al disco incominciano da 0. Puoi vedere dei codici + generici in . + + Quando fai riferimento a una partizione di FreeBSD devi specificare + anche il nome della slice e del disco che contengono la partizione, e + quando fai riferimento a una slice dovresti specificare anche il nome del + disco. Specifica quindi il nome del disco, il carattere + s, il numero di slice, e infine la lettera della + partizione. Alcuni esempi sono mostrati nell'. + + L' mostra un modello + concettuale di struttura di un disco che dovrebbe aiutare a chiare le + cose. + + Per installare FreeBSD devi prima configurare le slice del disco, + creare le partizioni all'interno della slice che vuoi usare per FreeBSD, + e quindi creare un filesystem (o spazio di swap) in ogni partizione, e + decidere dove il filesystem deve essere montato. + + + Codici dei Dispositivi Disco + + + + + + + + + Codice + + Significato + + + + + + ad + + disco ATAPI (IDE) + + + + da + + disco ad accesso diretto SCSI + + + + acd + + CDROM ATAPI (IDE) + + + + cd + + CDROM SCSI + - File log di vario genere, file temporanei, file transitori, - e file di spool. - + + fd - - /var/log/ + Disco floppy + + + +
- File di log del sistema di vario genere. - + + Esempi di Nomi di Dischi, di Slice, e di Partizioni - - /var/mail/ + + + - File delle caselle di posta degli utenti. - + + - /var/spool/ + Nome - Directory di spool per stampanti e per la posta elettronica - del sistema. + Significato + + - /var/tmp/ + ad0s1a - File temporanei che sono mantenuti tra i reboot del - sistema. + La prima partizione (a) sulla prima + slice (s1) sul primo disco IDE + (ad0). - /var/yp + da1s2e - Mappe NIS. + La quinta partizione (e) sulla seconda + slice (s2) sul secondo disco SCSI + (da1). - + + + + Modello Concettuale di un Disco + + Questo diagramma mostra come FreeBSD vede il primo disco IDE + attaccato al sistema. Si assuma che il disco sia di 4 GB, e che + contenga due slice da 2 GB (equivalenti come significato a due + partizioni DOS). La prima slice contiene un disco DOS, + C:, e la seconda slice contiene + un'installazione di FreeBSD. In questo esempio l'installazione di + FreeBSD ha tre partizioni standard più una di swap. + + Le tre partizioni conterranno ognuna un filesystem. La partizione + a sarà usata per il filesystem root, + la e per la gerarchia di directory + /var, e la partizione f per + la gerarchia di directory /usr. + + + + + + + + .-----------------. --. +| | | +| DOS / Windows | | +: : > Prima slice, ad0s1 +: : | +| | | +:=================: ==: --. +| | | Partizione a, montata come / | +| | > riferita come ad0s2a | +| | | | +:-----------------: ==: | +| | | Partizione b, usata come swap | +| | > riferita come ad0s2b | +| | | | +:-----------------: ==: | Partizione c, senza +| | | Partizione e, usata come /var > filesystem, tutta +| | > riferita come ad0s2e | la slice di FreeBSD, +| | | | ad0s2c +:-----------------: ==: | +| | | | +: : | Partizione f, usata come /usr | +: : > riferita come ad0s2f | +: : | | +| | | | +| | --' | +`-----------------' --' + + +
Montaggio e Smontaggio dei File system Il file system è raffigurato in maniera ottimale da un albero, radicato, per così dire, in /. Le directory /dev, /usr, e le altre directory che stanno all'interno della directory root sono i rami, i quali possono essere a loro volta ramificati, come in /usr/local, e così via. file system root Esistono varie ragioni per mantenere alcune di queste directory su file system separati. La directory /var contiene le directory log/, spool/, e vari tipi di file temporanei, e come tale, può riempirsi. Riempire il file system root non è una buona idea, quindi scindere la directory /var da / è spesso vantaggioso. Un'altra motivazione per mantenere certi alberi di directory su altri - file system è quando questi alberi sono allogiati su dischi fisici + file system è quando questi alberi sono alloggiati su dischi fisici separati, o sono dischi virtuali separati, come avviene per i mount del Network File System, o dei dispositivi CDROM. Il File <filename>fstab</filename> file system montati con fstab Durante la fase di avvio, i file system elencati nel file /etc/fstab sono montati in modo automatico (a meno che siano specificati con l'opzione ). Il file /etc/fstab contiene una serie di righe il cui formato è il seguente: device /mount-point fstype options dumpfreq passno device Il nome del dispositivo (che deve esistere), come spiegato nella . mount-point La directory (che deve esistere), sulla quale montare il file system. fstype Il tipo di file system da passare a &man.mount.8;. Il file system di default di FreeBSD è ufs. options per file system leggibili-scrivibili, oppure per file system solamente leggibili, seguite da altre opzioni che potrebbero essere necessarie. Un'opzione comune è per i file system che normalmente non sono montati durante la sequenza di avvio. Altre opzioni sono elencate nella pagina man di &man.mount.8;. dumpfreq Viene usato da &man.dump.8; per determinare quali file system - richiede un dump. Se non si specifica nulla, viene assunto il + richiedono un dump. Se non si specifica nulla, viene assunto il valore zero. passno Determina l'ordine secondo il quale i file system vengono controllati. I file system che devono saltare il controllo devono avere i loro passno settati a zero. Il file system root (che deve essere controllato prima di qualsiasi altra cosa) deve avere il suo passno settato a uno, e i passno degli altri file system devono essere settati a valori maggiori di uno. Se più di un file system ha lo stesso passno allora &man.fsck.8; tenterà di controllare i file system in parallelo. Il Comando <command>mount</command> file system montaggio Il comando &man.mount.8; è ciò che in definitiva viene usato per montare i file system. La sua forma di utilizzo elementare è: &prompt.root; mount device mountpoint Esistono molte opzioni, come spiegato nella pagina man di &man.mount.8;, ma le più comuni sono: Opzioni di Mount Monta tutti i file system elencati nel file /etc/fstab. Le eccezioni sono quei file system specificati come noauto, quelli esclusi dalla flag , o quei file system che sono già montati. - Fà tutto ad eccezione della system call attuale. - Questa opzione risulta utile in congiunzione con la flag + Fà tutto ad eccezione della attuale system call di + mount. Questa opzione risulta utile in congiunzione con la flag per determinare quale &man.mount.8; si stia effettivamente tentando di realizzare. Forza il mount di un file system impuro (pericoloso), o forza la revoca di accesso in scrittura quando si declassa lo stato di mount di un file system da lettura-scrittura a lettura solamente. Monta il file system in sola lettura. Questo è identico ad usare l'argomento con l'opzione . fstype Monta il dato file system secondo il tipo di file system specificato, oppure, se affiancato dall'opzione , monta solamente i file system di un dato tipo. ufs è il tipo di file system di default. Aggiorna le opzioni di mount sul file system. Modalità verbose. Monta il file system in lettura-scrittura. L'opzione accetta una lista di argomenti separati da una virgola, inclusi i seguenti: nodev - Non sostiene dispositivi speciali sul file system. Questa - è un'utile opzione di sicurezza. + Non permette l'interpretazione di dispositivi speciali sul + file system. Questa è un'utile opzione di + sicurezza. noexec - Non permette l'esecuzioni di binari su questo file system. + Non permette l'esecuzione di binari su questo file system. Questa è un'altra utile opzione di sicurezza. nosuid Non permette l'interpretazione delle flag setuid o setgid sul - file system. Anche questa è un'utile opzione di + file system. Anche questa è un'utile opzione di sicurezza. Il Comando <command>umount</command> file system smontaggio Il comando &man.umount.8; accetta, come unico parametro, un punto di mount, un nome di dispositivo, l'opzione o l'opzione . Tutte queste modalità accettano l'opzione per forzare la smontatura, e l'opzione per la modalità verbose. Sei avvisato che l'opzione non è in generale un buona idea. Smontare in modo violento i file system può mandare in crash il computer o danneggiare i dati sul file system. Le opzioni e sono usate per smontare tutti i file system, con la possibilità di specificare i tipi di file system elencandoli dopo la flag . Tuttavia, l'opzione non tenta di smontare il file system root. I Processi FreeBSD è un sistema operativo multi-tasking. Con questa capacità il sistema è come se potesse eseguire più di un programma alla volta. Ogni programma in esecuzione in un dato istante è chiamato processo. Ogni volta che esegui un comando fai partire almeno un nuovo processo, e ci sono molti processi di sistema che sono sempre in esecuzione, che permettono il corretto funzionamento del sistema. Ogni processo è identificato in modo univoco da un numero chiamato process ID, o PID, e, come avviene per i file, ogni processo ha un proprietario e un gruppo. Le informazioni sul proprietario e sul gruppo sono usate per determinare, tramite il meccanismo dei permessi dei file discusso precedentemente, quali file e quali dispositivi il processo può aprire. Inoltre molti processi hanno un processo padre. Tale processo è il processo che li ha generati. Per esempio, se stai digitando dei comandi in shell allora la shell è un processo, così come lo sono i comandi che esegui. Ogni processo che esegui in questo modo avrà come suo processo padre la tua shell. L'eccezione a questo meccanismo - è un processo speciale chiamato init. Il - processo init è sempre il primo processo, quindi - il suo PID è sempre 1. init viene avviato - in modo automatico dal kernel quando si avvia FreeBSD. + è un processo speciale chiamato &man.init.8;. Il processo + init è sempre il primo processo, quindi il suo + PID è sempre 1. init viene avviato in modo + automatico dal kernel quando si avvia FreeBSD. Due comandi sono particolarmente utili per monitorare i processi sul - sistema, &man.ps.1; e &man.top.1;. Il comando &man.ps.1; è usato - per mostrare una lista statica dei processi che sono in esecuzione in quel - momento, e può mostrare i loro PID, quanta memoria stanno usando, - la linea di comando che li ha avviati, e altro ancora. Il comando - &man.top.1; visualizza tutti i processi in esecuzione, e aggiorna queste - informazioni ogni qualche secondo, in modo che puoi vedere - interattivamente cosa sta facendo il tuo computer. + sistema, &man.ps.1; e &man.top.1;. Il comando ps + è usato per mostrare una lista statica dei processi che sono in + esecuzione in quel momento, e può mostrare i loro PID, quanta + memoria stanno usando, la linea di comando che li ha avviati, e altro + ancora. Il comando top visualizza tutti i processi in + esecuzione, e aggiorna queste informazioni ogni qualche secondo, in modo + che puoi vedere interattivamente cosa sta facendo il tuo computer. - Di default, &man.ps.1; mostra solo i tuoi comandi che sono in quel - mmomento in esecuzione. Per esempio: + Di default, ps mostra solo i tuoi comandi che sono + in quel momento in esecuzione. Per esempio: &prompt.user; ps PID TT STAT TIME COMMAND 298 p0 Ss 0:01.10 tcsh 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14) 37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14) 48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi 48730 p0 IW 0:00.00 (dns helper) (navigator-linux-) 72210 p0 R+ 0:00.00 ps 390 p1 Is 0:01.14 tcsh 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y 6688 p3 IWs 0:00.00 tcsh 10735 p4 IWs 0:00.00 tcsh 20256 p5 IWs 0:00.00 tcsh 262 v0 IWs 0:00.00 -tcsh (tcsh) 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish Come puoi vedere in questo esempio, l'output di &man.ps.1; è organizzato in molte colonne. La colonna PID si riferisce al process ID discusso poco fà. I PID sono assegnati partendo dal numero 1, andando fino al 99999, e ricominciando dall'inizio una volta esauriti (se disponibili). La colonna TT mostra su quale tty il programma è in esecuzione, e può essere benissimo ignorata per il momento. La colonna STAT mostra lo stato del programma, e di nuovo, può essere benissimo ignorata. La colonna TIME indica per quanto tempo il programma è stato in esecuzione sulla - CPU—non indica per forza il tempo trascorso da quando hai avviato - il programma, poichè i programmi trascorrono molto tempo in attesa - per faccende che accadono prima che questi possano trascorrere del tempo - in CPU. Infine, la colonna COMMAND indica la riga di - comando che è stata utilizzata per eseguire il programma. + CPU—di solito non indica il tempo trascorso da quando hai avviato + il programma, poichè la maggior parte dei programmi trascorrono + molto tempo in attesa per faccende che accadono prima che questi possano + trascorrere del tempo in CPU. Infine, la colonna + COMMAND indica la riga di comando che è stata + utilizzata per eseguire il programma. Il comando &man.ps.1; supporta varie opzioni per cambiare le informazioni da visualizzare. Uno dei gruppi di opzioni più utili è auxww. L'opzione mostra le informazioni riguardo a tutti i processi in esecuzione, non solo quelli che ti appartengono. L'opzione mostra il nome utente del proprietario del processo, come pure la memoria utilizzata dal processo. L'opzione mostra le informazioni riguardo ai processi demoni, e l'opzione indica a &man.ps.1; di visualizzare la linea di comando completa che ha avviato il processo, piuttosto che troncarla quando è troppo lunga per essere adattata sullo schermo. L'output di &man.top.1; è simile. Un esempio di esecuzione assomiglia a questo: &prompt.user; top last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10 47 processes: 1 running, 46 sleeping CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free Swap: 256M Total, 38M Used, 217M Free, 15% Inuse PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm 48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt ... L'output è diviso in due sezioni. La parte superiore (le prime cinque linee) mostra il PID dell'ultimo processo eseguito, il carico medio del sistema (che è un indice di come il sistema sia impegnato), il tempo di vita del sistema (il tempo passato dall'ultimo reboot) e l'ora corrente. I restanti numeri nella parte superiore riportano quanti processi sono in esecuzione (47 in questo caso), quanta memoria di sistema e quanta memoria di swap è stata utilizzata, e quanto tempo il sistema sta trascorrendo nei vari stati di CPU. Sotto ci sono una serie di colonne che contengono simili informazioni a quelle contenute nell'output di &man.ps.1;. Come prima puoi vedere il PID, il nome utente, quanto tempo di CPU è stato utilizzato, e il comando che era stato eseguito. Inoltre il comando &man.top.1; di default ti mostra quanta memoria è stata concessa al processo. Questa informazione è suddivisa in due colonne, una per la dimensione totale, e l'altra per la dimensione attuale—la dimensione totale è la quantità di memoria che l'applicazione ha richiesto, e la dimensione attuale è la quantità di memoria che sta utilizzando in quel momento. In questo esempio puoi vedere che Netscape ha richiesto quasi 30 MB di RAM, ma al momento ne sta usando solo 9 MB. Il comando &man.top.1; aggiorna in modo automatico queste informazioni ogni due secondi; questo lasso temporale può essere modificato con l'opzione . I Demoni, i Segnali, e come Uccidere i Processi Quando esegui un'editor risulta semplice averne il controllo, dirgli di caricare file, e così via. Tutto questo può essere fatto poichè l'editor fornisce delle agevolazioni in questo senso, e anche perchè l'editor è collegato a un terminale. Alcuni programmi non sono stati progettati per essere eseguiti con un continuo input dell'utente, e perciò questi programmi si sconnettono dal terminale alla prima occasione. Per esempio, un server web trascorre tutto il giorno rispondendo a richieste web, e normalmente non necessita di alcun input da parte tua. I programmi che trasportano la posta elettronica da un sito a un'altro sito sono un'altro esempio di questa classe di applicazioni. Chiamiamo questi programmi demoni. I demoni erano dei personaggi della mitologia greca; nè buoni nè cattivi, erano piccoli custodi degli spiriti che, nel complesso, risultavano essere utili per l'umanità. Molto similmente i server web e quelli di posta elettronica di oggi fanno cose utili. Ecco il motivo per cui la mascot di BSD è stata per molto tempo, e lo è ancora, l'allegro demone con le scarpe da tennis e con il forcone. Esiste la convenzione di chiamare i programmi che normalmente sono eseguiti come demoni con una d finale. BIND sta per Berkeley Internet Name Daemon (e il nome effettivo del programma che viene eseguito è named), il nome del programma Apache, un server web, è httpd, il demone dello spool di stampa è lpd e così via. Questa è una convenzione, non è una regola ferrea; per esempio, il principale demone di posta elettronica per l'applicazione Sendmail è chiamato sendmail, e non maild, come potresti aspettarti. A volte puoi aver bisogno di comunicare con un processo demone. Queste comunicazioni sono chiamate segnali, e puoi comunicare con i demoni (o con altri processi in esecuzione) mandandogli un segnale. Esistono svariati segnali che puoi inviare—alcuni di questi hanno un significato specifico, altri sono interpretabili dall'applicazione, e la documentazione dell'applicazione ti dirà come l'applicazione stessa interpreta i segnali. Puoi mandare un segnale solo ai processi che ti appartengono. Se mandi un segnale a un processo che non ti appartiene con il comando &man.kill.1; o &man.kill.2; il permesso ti sarà negato. L'eccezione a questa regola riguarda l'utente root, che può mandare segnali a processi di chiunque. Inoltre in alcune circostanze FreeBSD invia segnali alle applicazioni. Se un'applicazione è stata scritta malamente, e tenta di accedere alla memoria che non gli compete, FreeBSD manda al processo il segnale di Violazione della Segmentazione (SIGSEGV). Se un'applicazione ha utilizzato la system call &man.alarm.3; in modo tale da essere avvisata dopo un certo periodo di tempo trascorso allora FreeBSD invierà a questa applicazione il segnale di Allarme (SIGALRM), e così via. Per fermare un processo possono essere utilizzati due segnali, SIGTERM e SIGKILL. - SIGTERM è la modalità cortese di - terminare un processo; il processo può - catturare il segnale, capire che vuoi abbatterlo, - chiudere i file di log che potrebbe avere aperto, e in genere terminare - qualunque cosa che stava facendo prima dell'interruzione. Nei casi in cui - un processo sia coinvolto in qualche compito che non può essere - interrotto allora questo processo può persino ignorare - SIGTERM. + SIGTERM è il modo cortese di terminare un + processo; il processo può catturare il + segnale, capire che vuoi abbatterlo, chiudere i file di log che potrebbe + avere aperto, e in genere terminare qualunque cosa che stava facendo prima + dell'interruzione. Nei casi in cui un processo sia coinvolto in qualche + compito che non può essere interrotto allora questo processo + può persino ignorare SIGTERM. Il segnale SIGKILL non può essere ignorato da un processo. Questo è il segnale che dice Non mi interessa cosa stai facendo, fermati subito. Se mandi il segnale SIGKILL a un processo allora FreeBSD fermerà subito il processo Non è del tutto vero—ci sono alcune cose che non possono essere interrotte. Per esempio, se il processo sta tentando - di leggere un file situato su un'altro computer in rete, e questo + di leggere un file situato su un altro computer in rete, e questo computer non è disponibile per qualche ragione (è stato spento, o la rete ha qualche problema), allora il processo è detto non interrompibile. Il processo finirà in time out, generalmente dopo due minuti. Non appena avviene il time out il processo potrà essere terminato. . Altri segnali che potresti aver bisogno di usare sono SIGHUP, SIGUSR1, e SIGUSR2. Questi sono segnali a scopo generico, e differenti applicazioni possono fare cose diverse quando catturano questi segnali. Supponiamo che hai cambiato il file di configurazione del tuo server web—hai bisogno di dire al server web di rileggere la sua configurazione. Potresti fermare e riavviare httpd, ma questo porterebbe a un breve periodo di interruzione del tuo server web, che potrebbe non essere gradito. Molti demoni sono stati scritti per rispondere al segnale SIGHUP tramite la rilettura dei loro file di configurazione. In questo modo invece di terminare e riavviare httpd potresti inviare il segnale SIGHUP. Poichè non esiste un modo standard di trattare questi segnali, differenti demoni potrebbero avere un comportamento diverso, quindi assicurati di leggere la documentazione per il demone in questione. I segnali sono inviati utilizzando il comando &man.kill.1;, come mostra questo esempio. Inviare un Segnale a un Processo Questo esempio mostra come inviare un segnale a &man.inetd.8;. Il - file di configurazione di &man.inetd.8; è - /etc/inetd.conf, e &man.inetd.8; rilegge questo - file di configurazione quando riceve il segnale + file di configurazione di inetd è + /etc/inetd.conf, e inetd rilegge + questo file di configurazione quando riceve il segnale SIGHUP. Cerca il process ID del processo a cui vuoi mandare il segnale. Puoi utilizzare &man.ps.1; e &man.grep.1; per farlo. Il comando &man.grep.1; viene utilizzato per perlustrare attraverso l'output, cercando la stringa da te specificata. Questo comando viene eseguito in modalità utente, e &man.inetd.8; viene eseguito in modalità root, quindi le opzioni da dare a &man.ps.1; sono . &prompt.user; ps -ax | grep inetd 198 ?? IWs 0:00.00 inetd -wW Come puoi vedere il PID di &man.inetd.8; è 198. In alcuni casi potrebbe apparire nel risultato anche il comando grep inetd. Questo dipende dal modo utilizzato da &man.ps.1; nell'elencare la lista dei processi in esecuzione. Usa il comando &man.kill.1; per inviare il segnale. Poichè &man.inetd.8; viene eseguito in modalità root prima devi usare il comando &man.su.1; per diventare root. &prompt.user; su Password: &prompt.root; /bin/kill -s HUP 198 - Come avviene per la maggior parte dei comandi Unix, il comando + Come avviene per la maggior parte dei comandi &unix;, il comando &man.kill.1; non stampa il risultato dell'operazione se questa ha avuto successo. Se mandi un segnale a un processo del quale non sei il proprietario allora vedrai il messaggio kill: PID: Operazione non permessa. Se sbagli il PID invierai il segnale al processo sbagliato, il che potrebbe essere dannoso, o, se hai fortuna, manderai il segnale a un PID che in quel momento non è in uso, e in questo caso vedrai il messaggio kill: PID: Nessun processo. Perchè Usare <command>/bin/kill</command>? Molte shell forniscono il comando kill come comando built-in; ossia, la shell invia il segnale in modo diretto, senza dover eseguire /bin/kill. Tutto ciò può essere molto utile, ma le diverse shell hanno una sintassi diversa per specificare il nome del segnale da inviare. Invece di cercare di imparare tutte queste sintassi, può essere più semplice usare direttamente il comando /bin/kill .... L'invio di altri segnali è analogo, basta sostituire all'occorrenza TERM o KILL nella linea di comando. Terminare processi in modo random su un sistema può essere una cattiva idea. In particolare, il processo &man.init.8;, con process ID 1, è un caso molto speciale. Eseguire /bin/kill -s KILL 1 è un modo veloce per arrestare il tuo sistema. - Controlla Sempre due volte gli argomenti quando + Controlla sempre due volte gli argomenti quando esegui &man.kill.1; prima di premere Invio. Le Shell shell riga di comando In FreeBSD, la maggior parte del lavoro di tutti i giorni viene svolto tramite un'interfaccia a riga di comando chiamata shell. Uno dei compiti principali di una shell è quello di prendere in input dei comandi ed eseguirli. Inoltre molte shell hanno delle funzioni built-in (incorporate) utili nei lavori ordinari come la gestione dei file, la sostituzione dei nomi dei file, la modifica della riga di comando, la creazione di macro di comandi, e la gestione delle variabili d'ambiente. FreeBSD si propone con una serie di shell, come la Shell Bourne, sh, e la versione successiva della C-shell, tcsh. Molte altre shell sono disponibili nella FreeBSD Ports Collection, come le shell zsh e bash. Quale shell devi usare? È veramente una questione di gusti. Se sei un programmatore di C potresti sentirti a tuo agio con una shell C-like come la tcsh. Se vieni da Linux o non sei - pratico dell'interfaccia a riga di comando di Unix potresti provare la + pratico dell'interfaccia a riga di comando di &unix; potresti provare la bash. Il fatto è che ogni shell ha delle caratteristiche che possono o meno combaciare con il tuo ambiente di lavoro preferito, e quindi devi scegliere tu stesso quale shell utilizzare. Una caratteristica comune in una shell è il completamento dei nomi dei file. Dopo aver digitato alcuni dei primi caratteri di un comando o di un nome di file, la shell di solito può completare in modo automatico il resto del comando o del nome del file tramite la pressione del tasto Tab sulla tastiera. Ecco un'esempio. Supponiamo che hai due file chiamati foobar e foo.bar. Vuoi cancellare foo.bar. Quello che dovresti digitare sulla tastiera è: rm fo[Tab].[Tab]. La shell dovrebbe visualizzare rm foo[BEEP].bar. Il [BEEP] è la campanella della console, che mi segnala che la shell è incapace di completare interamente il nome del file poichè esiste più di una sola corrispondenza. Sia foobar che foo.bar iniziano con fo, tuttavia la shell è riuscita a completarlo in foo. A questo punto premendo ., e poi di nuovo Tab, la shell sarà in grado di completare da sola il resto del nome del file. variabili d'ambiente Un'altro aspetto di una shell è l'uso delle variabili d'ambiente. Le variabili d'ambiente sono una coppia di valori mutevoli memorizzati nello spazio dell'ambiente della shell. Questo spazio può essere letto dai programmi invocati dalla shell, e di conseguenza questo spazio può contenere le configurazioni di molti programmi. Qui sotto c'è una lista delle variabili d'ambiente più comuni con il loro rispettivo significato: variabili d'ambiente Variabile Descrizione USER Il nome dell'utente attualmente loggato. PATH Lista di directory separate da due punti utilizzate per la ricerca dei binari. DISPLAY Nome di rete del display X11 a cui connettersi, se disponibile. SHELL La shell corrente. TERM Il nome del terminale dell'utente. Usato per determinare le capacità del terminale. TERMCAP Serie di elementi di codici di escape del terminale utilizzati per realizzare svariate funzioni del terminale. OSTYPE Il tipo di sistema operativo. FreeBSD, ad esempio. MACHTYPE L'architettura della CPU su cui il sistema gira. EDITOR L'editor di testo preferito dall'utente. PAGER L'impaginatore di testo preferito dall'utente. MANPATH Lista di directory separate da due punti utilizzate nella ricerca delle pagine man. shell Bourne Il modo di settare una variabile d'ambiente varia leggermente a seconda della shell utilizzata. Per esempio, nelle shell C-Style come tcsh e csh, puoi usare setenv per settare le variabili d'ambiente. Sotto le shell Bourne come sh e bash, puoi usare export per settare le tue variabili d'ambiente correnti. Per esempio, per settare o modificare la variabile d'ambiente EDITOR a /usr/local/bin/emacs, sotto csh o tcsh si può utilizzare il comando: &prompt.user; setenv EDITOR /usr/local/bin/emacs Sotto le shell Bourne: &prompt.user; export EDITOR="/usr/local/bin/emacs" Con la maggior parte delle shell puoi inoltre creare un'espansione di una variabile d'ambiente mettendo sulla riga di comando il simbolo $ davanti al nome della variabile stessa. Per esempio, echo $TERM visualizzerà ciò che corrisponde a $TERM, poichè la shell espande $TERM e passa il risultato a echo. Le shell trattano molti caratteri speciali, chiamati meta-caratteri come rappresentazioni speciali di dati. Il più comune di questi è il simbolo *, che rappresenta diverse istanze di caratteri in un nome di file. Questi meta-caratteri possono essere usati per la sostituzione dei nomi di file. Per esempio, digitando echo * è quasi come aver digitato ls poichè la shell prende tutti i file che corrispondono a * e li mette sulla riga di comando con echo che quindi li visualizza. Per impedire alla shell di interpretare questi caratteri speciali, questi possono essere messi in escape mettendo subito prima di essi un backslash (\). echo $TERM visualizza il tipo del tuo terminale. echo \$TERM visualizza $TERM così com'è. Cambiare la Propria Shell Il modo più semplice per cambiare la propria shell è quello di usare il comando chsh. Eseguendo chsh verrà invocato l'editor definito nella tua variabile d'ambiente EDITOR; nel caso in cui questa non sia stata settata, verrà invocato vi. Modifica la riga Shell: in base alle tue esigenze. Puoi anche eseguire chsh con l'opzione ; in questo modo verrà settata la shell in modo diretto, senza che sia necessario invocare l'editor. Per esempio, se vuoi cambiare la tua shell in bash, potresti digitare il seguente comando: &prompt.user; chsh -s /usr/local/bin/bash Comunque eseguendo chsh con nessun parametro e modificando la shell all'interno dell'editor funzionerà lo stesso. La shell che desideri utilizzare deve essere presente nel file /etc/shells. Se hai installato una shell dalla collezione dei port, allora la nuova shell dovrebbe essere già stata inserita nel suddetto file in modo automatico. Se installi una shell manualmente, questo lavoro lo devi fare tu. Per esempio, se installi bash a mano e la metti sotto /usr/local/bin, dovresti fare questo: &prompt.root; echo "/usr/local/bin/bash" >> /etc/shells Dopo averlo fatto riavvia chsh. Editor di Testo editor di testo editor La maggior parte del lavoro di configurazione in FreeBSD viene fatto tramite la modifica di file di testo. Perciò, è una buona - idea familiarizzare con un'editor di testo. FreeBSD si presenta con + idea familiarizzare con un editor di testo. FreeBSD si presenta con alcuni editor come parte base del sistema, e molti altri sono disponibili nella collezione dei port. ee L'editor più semplice e più facile da imparare si chiama ee, che sta per easy editor. Per avviare ee, puoi digitare sulla riga di comando ee filename dove filename è il nome del file che deve essere modificato. Per esempio, per modificare /etc/rc.conf, devi digitare ee /etc/rc.conf. Una volta all'interno di ee, tutti i comandi per azionare le funzioni dell'editor sono elencati nella - parte superiore del video. Il carattere ^ è il + parte superiore del video. Il carattere ^ è il tasto Ctrl della tastiera, quindi ^e - espande la combinazioni di tasti + si riferisce alla combinazione di tasti Ctrl e . Per uscire da ee, premi il tasto Esc, quindi conferma l'uscita dall'editor. Se il file ha subito delle modifiche ti verrà chiesto se le vuoi salvare. vi editor vi emacs editor emacs FreeBSD ha come parte base del sistema anche editor di testo più potenti come vi, mentre altri editor, come emacs e vim, sono inclusi nella FreeBSD Ports Collection. Questi editor offrono molte più funzionalità e molta più potenza a costo di essere un poco più complicati da imparare ad utilizzare. Comunque se intendi utilizzare in modo intensivo un editor, imparando ad utilizzare un editor potente come vim o emacs risparmierai a lungo andare un sacco di tempo. Dispositivi e Nodi di Dispositivo Il termine dispositivo viene usato prevalentemente per specificare le unità hardware all'interno di un sistema, come i dischi, le stampanti, le schede grafiche, e le tastiere. Durante la fase di avvio di FreeBSD, la maggior parte delle cose che vengono visualizzate da FreeBSD riguardano i dispositivi che sono stati rilevati. Puoi riesaminare questi messaggi di avvio guardando il file /var/run/dmesg.boot. Per esempio, acd0 è il primo drive CDROM IDE, mentre kbd0 rappresenta la tastiera. - In un sistema operativo Unix la maggior parte di questi dispositivi + In un sistema operativo &unix; la maggior parte di questi dispositivi sono accessibili tramite dei file speciali chiamati nodi di dispositivo, i quali sono posti nella directory /dev. Creare i Nodi di Dispositivo Quando aggiungi un nuovo dispositivo al tuo sistema, o ricompili il kernel per supportare dispositivi aggiuntivi, hai bisogno di creare per questi nuovi dispositivi uno o più nodi di dispositivo. Script MAKEDEV Sui sistemi senza il DEVFS (tutte le versioni di FreeBSD antecedenti la 5.0), i nodi di dispositivo sono creati usando lo script &man.MAKEDEV.8; come mostrato qui sotto: &prompt.root; cd /dev &prompt.root; sh MAKEDEV ad1 Questo esempio creerà gli opportuni nodi di dispositivo per il secondo drive IDE. <literal>DEVFS</literal> (DEVice File System) Il file system device, o DEVFS, fornisce la disponibilità dello spazio dei nomi dei dispositivi del kernel allo spazio dei nomi globale del file system. Invece di dover creare o modificare i nodi di dispositivo, DEVFS mantiene in modo automatico questo particolare file system. Guarda la pagina man di &man.devfs.5; per maggiori informazioni. DEVFS viene usato di default su - FreeBSD 5.0. + FreeBSD 5.0 e successive. - - Console Virtuali & terminali - - console virtuali - terminali - - FreeBSD può essere usato in vari modi. Uno di questi è - quello di digitare i comandi tramite un terminale testuale. Quando si - utilizza FreeBSD in questo modo si ha velocemente nelle proprie mani molta - della flessibilità e della potenza di un sistema operativo &unix;. - Questa sezione descrive cosa sono i terminali e le - console, e come si possono utilizzare in FreeBSD. - - - La console - - console - - Se non hai configurato FreeBSD in modo tale da avviare in modo - automatico l'ambiente grafico durante l'avvio, il sistema ti - fornirà un prompt di login dopo la fase di avvio, esattamente - dopo che gli script di avvio sono stati eseguiti. Dovresti vedere - qualcosa simile a questo: - - Additional ABI support:. -Local package initialization:. -Additional TCP options:. - -Fri Sep 20 13:01:06 EEST 2002 - -FreeBSD/i386 (pc3.example.org) (ttyv0) - -login: - - I messaggi potrebbero essere leggermente diversi sul tuo sistema, - tuttavia dovresti vedere qualcosa di analogo. In questo momento ci - interessano le ultime due righe. Analizziamo la penultima riga: - - FreeBSD/i386 (pc3.example.org) (ttyv0) - - Questa riga contiene alcune informazioni sul sistema che hai appena - avviato. Sei di fronte a una console FreeBSD, che sta - girando su un processore Intel o su un processore compatibile con - l'architettura x86 - Questo è il significato di i386. - Nota che anche se non stai eseguendo FreeBSD su una CPU della serie - 386 di Intel, questo messaggio resta i386. Non - si riferisce al tipo del tuo processore, ma bensì - all'architettura del processore.. - Il nome di questa macchina (tutte le macchine &unix; hanno un nome) - è pc3.example.org, e in questo momento sei di - fronte alla sua console di sistema—il terminale - ttyv0. - - Infine, l'ultima riga è sempre: - - login: - - Qui devi digitare il tuo username per loggarti in - FreeBSD. La prossima sezione descrive come fare ad effettuare il login - su FreeBSD. - - - - Loggarsi in FreeBSD - - FreeBSD è un sistema multi-utente e multi-processo. Questa - è la descrizione formale che viene usualmente attribuita a un - sistema che può essere usato da diverse persone, le quali - eseguono contemporaneamente molti programmi su una singola - macchina. - - Ogni sistema multi-utente necessita di qualche metodo che distingua - un utente in modo univoco. In FreeBSD (e in tutti i - sistemi operativi &unix;-like), questo viene realizzato richiedendo che - ogni utente debba loggarsi nel sistema prima che possa - eseguire qualche programma. Ogni utente ha un nome univoco (lo - username) e uno personale, e una chiave segreta (la - password). FreeBSD richiede entrambe queste due cose - prima di dare la possibilità ad un utente di eseguire qualche - programma. - - script di avvio - - Giusto dopo la fase di avvio di FreeBSD e quando gli script di avvio - sono stati eseguiti - Gli script di avvio sono programmi che vengono eseguiti in modo - automatico durante la fase di avvio di FreeBSD. Il loro compito - principale è quello di settare delle cose che potranno essere - utilizzate da qualsiasi altra cosa venga eseguita, ed avviare i - servizi che potresti avere configurato in modo tale da essere - eseguiti in background per realizzare cose utili. - , ti viene presentato un prompt dove inserire un valido - username: - - login: - - Giusto per questo esempio, assumiamo che il tuo username sia - john. Al prompt digita john e - premi Invio. Ti verrà presentato un prompt - dove inserire la password: - - login: john -Password: - - Digita la password di john, e premi - Invio. La password non viene - visualizzata! Non ti devi preoccupare di questo per ora. - È sufficiente sapere che è una questione di - sicurezza. - - Se hai digitato la tua password in modo corretto, dovresti essere - loggato in FreeBSD e sei quindi pronto per provare tutti i comandi - disponibili. - - - - Console multiple - - Eseguire comandi &unix; in una sola console va bene, tuttavia - FreeBSD può eseguire più programmi alla volta. Avere una - sola console dove poter digitare i comandi può essere un - pò uno spreco quando un sistema operativo come FreeBSD è - in grado di eseguire dozzine di programmi contemporaneamente. È - in questo caso che le console virtuali possono essere - molto utili. - - FreeBSD può essere configurato in modo tale da poter - utilizzare differenti console virtuali. Puoi passare da una console - virtuale ad un'altra digitando un paio di tasti sulla tastiera. Ogni - console ha il proprio canale di output indipendente, e FreeBSD si - occupa di redirigere correttamente l'input della tastiera e l'output del - monitor quando passi da una console virtuale in un'altra. - - In FreeBSD alcune combinazioni speciali di tasti sono state - riservate per il passaggio tra le console - Una descrizione abbastanza tecnica ed accurata di tutti i - dettagli della console di FreeBSD e dei driver della tastiera - può essere trovata nelle pagine man di &man.syscons.4;, - &man.atkbd.4;, &man.vidcontrol.1; e &man.kbdcontrol.1;. Qui non - approfondiremo i dettagli, ma il lettore interessato può - sempre consultare le pagine man per una spiegazione dettagliata - e completa su come funzionano queste cose. - . Puoi usare - AltF1, - AltF2, fino a - AltF8 per - cambiare console su FreeBSD. - - Quando passi da una console ad un'altra, FreeBSD si preoccupa di - salvare e ripristinare l'output a video. Il risultato è - l'illusione di avere più schermi e più - tastiere virtuali che puoi utilizzare per dare in pasto a - FreeBSD dei comandi. I programmi che lanci su una console virtuale - rimarranno in esecuzione anche quando la console non è visibile. - L'esecuzione di questi programmi continua quando passi in un'altra - console virtuale. - - - - Il file <filename>/etc/ttys</filename> - - La configurazione di default di FreeBSD prevede l'avvio del sistema - con 8 console virtuali. Comunque questo non è un settaggio - obbligatorio, e puoi facilmente personalizzare la tua installazione in - modo tale da avviare il sistema con qualche console virtuale in - più. Il numero e i settaggi delle console virtuali sono - configurati nel file /etc/ttys. - - Puoi usare il file /etc/ttys per configurare - le console virtuali di FreeBSD. In questo file ogni riga non commentata - (le righe che non iniziano con il carattere #) - contiene il settaggio di un singolo terminale o di una singola console - virtuale. La versione di default di questo file contenuta in FreeBSD - configura 9 console virtuale, e ne abilita 8 di queste. Si tratta delle - righe che iniziano con ttyv: + + Formati dei Binari - # name getty type status comments -# -ttyv0 "/usr/libexec/getty Pc" cons25 on secure -# Terminali virtuali -ttyv1 "/usr/libexec/getty Pc" cons25 on secure -ttyv2 "/usr/libexec/getty Pc" cons25 on secure -ttyv3 "/usr/libexec/getty Pc" cons25 on secure -ttyv4 "/usr/libexec/getty Pc" cons25 on secure -ttyv5 "/usr/libexec/getty Pc" cons25 on secure -ttyv6 "/usr/libexec/getty Pc" cons25 on secure -ttyv7 "/usr/libexec/getty Pc" cons25 on secure -ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure + Per comprendere il motivo per cui FreeBSD usa il formato + ELF, devi prima conoscere un pò i tre attuali + formati eseguibili dominanti per &unix;: - Per una descrizione più dettagliata su ogni colonna di questo - file e per tutte le opzioni che puoi utilizzare per settare le console - virtuali, consulta la pagina man &man.ttys.5;. - + + + &man.a.out.5; + + Il più vecchio e classico formato oggetto + di &unix;. Usa un'intestazione corta e compatta con un numero magico + all'inizio che è spesso usato per caratterizzare il formato + (vedere &man.a.out.5; per maggiori dettagli). Contiene tre segmenti + caricabili: .text, .data, e .bss più una tabella di simboli e + una di stringhe. + - - Console in modalità single user + + COFF - Una descrizione dettagliata del significato della - modalità single user può essere trovata - nella . È bene notare che - c'è un'unica console quando avvii FreeBSD in modalità - single user. Le console virtuali non sono disponibili. Anche i - settaggi della console in modalità single user possono essere - trovati nel file /etc/ttys. Guarda la riga che - inizia con console: + Il formato oggetto di SVR3. Poichè l'intestazione include + una porzione di tabella, puoi avere molto di più delle sole + sezioni .text, .data, e .bss. + - # name getty type status comments -# -# Se la console è definita "insecure", allora il processo init richiederà la password di root -# quando entrerai in modalità single-user. -console none unknown off secure + + ELF + + Il successore di COFF, caratterizzato da + sezioni multiple e da possibili valori a 32-bit o 64-bit. Uno dei + maggiori svantaggi: ELF fù progettato con + l'assunzione che ci doveva essere solo un ABI per ogni tipo di + architettura dei sistemi. Tale assunzione è in realtà + piuttosto sbagliata, e non è vera nemmeno nel mondo commerciale + di SYSV (che ha almeno tre ABI: SVR4, Solaris, SCO). + + FreeBSD tenta di aggirare questo problema fornendo un + utility per marchiare un eseguibile + ELF con informazioni sull'ABI per il quale è + stato costruito. Guarda la pagina man &man.brandelf.1; per maggiori + informazioni. + + - - Come riportato nel commento sopra la riga - console, puoi modificare questa riga cambiando - secure in insecure. Se lo fai, - quando FreeBSD viene avviato in modalità single user, - verrà chiesta la password di root. + FreeBSD proviene dalla scuola classica e ha usato il + formato &man.a.out.5;, una tecnologia sperimentata ed utilizzata + attraverso molte generazioni delle release BSD, fino agli inizi del ramo + 3.X. Sebbene fino ad allora era possibile costruire ed eseguire su + un sistema FreeBSD binari (e kernel) del formato ELF, + inizialmente FreeBSD si oppose al salto di cambiamento al + formato ELF come formato di default. Per quale motivo? + Dunque, quando la scuola Linux fece il suo doloroso passaggio a + ELF, questo non era sufficiente per abbandonare + il formato eseguibile a.out a causa del loro + rigido meccanismo a salto-di-tabella basato sulla libreria condivisa, il + quale rendeva la costruzione di librerie condivise un compito molto + difficile tanto per i venditori che per gli sviluppatori. Tuttavia, + quando gli strumenti di ELF furono in grado di offrire + una soluzione al problema della libreria condivisa e quando furono visti + come la strada imminente, il costo della migrazione + fù accettato poichè necessario e avvenne così la + transizione. Il meccanismo di libreria condivisa di FreeBSD è + basato sullo stile più restrittivo del maccanismo di libreria + condivisa degli &sunos; di Sun, e come tale, è molto facile da + utilizzare. - Pensaci comunque due volte a settare il parametro - insecure. Se non ricordi più - la password di root, riuscire ad avviare il - sistema in modalità single user sarà molto complesso. - È ancora possibile, ma potrebbe essere molto difficile per chi - non conosce molto bene il meccanismo di avvio di FreeBSD e i relativi - programmi. - - + Quindi, perchè ci sono così tanti formati + differenti? + + In passato l'hardware era semplice. Questo hardware semplice + sosteneva un sistema semplice e piccolo. Il formato + a.out era del tutto adatto per rappresentare i binari + su questo semplice sistema (un PDP-11). Nonostante le persone fecero il + port di &unix; da questo semplice sistema, esse mantennero il formato + a.out poichè era sufficiente per un primo port + di &unix; verso architetture come Motorola 68k, VAXen, ecc. + + All'epoca alcuni ingegneri hardware di spicco stabilirono che se tale + formato poteva forzare il software a fare alcuni trucchi sporchi, allora + esso sarebbe stato in grado di abbattere alcune barriere di progettazione + e permettere al core della CPU di andare più veloce. Benchè + il formato a.out fù progettato per lavorare + con questo nuovo tipo di hardware (conosciuto ai giorni d'oggi come + RISC), esso fù appena sufficiente per questo + hardware, quindi furono sviluppati altri formati per ottenere delle + prestazioni da questo hardware migliori di quelle che il limitato e + semplice formato a.out era in grado di offrire. + Furono inventati formati come il COFF, + l'ECOFF, e alcuni altri e furono esaminate le loro + limitazioni prima che fù prodotto l'ELF. + + Per di più, le dimensioni dei programmi stavano diventando + enormi e i dischi (e la memoria fisica) erano ancora relativamente + piccoli, e quindi il concetto di libreria condivisa prese piede. + Inoltre il sistema di VM (Memoria Virtuale) divenne più + sofisticato. Benchè ognuno di questi miglioramenti fù fatto + utilizzando il formato a.out, la sua utilità + si distese sempre più con ogni nuova caratteristica. In aggiunta, + la gente voleva caricare alcune cose in modo dinamico al tempo di + esecuzione, o anche scartare parte dei loro programmi dopo l'esecuzione + del codice iniziale al fine di salvare memoria e spazio di swap. + I linguaggi divennero più sofisticati e le persone desideravano che + il codice venisse chiamato dopo il main in modo automatico. Furono + apportati molte migliorie al formato a.out per + permettere tutte queste cose, e sostanzialmente tutto funzionò per + un dato periodo. Col passare del tempo, il formato + a.out non fù più in grado di gestire + tutti questi problemi senza apportare dei miglioramenti al codice con + un conseguente aumento della complessità. Benchè il formato + ELF risolveva molti di questi problemi, era doloroso + migrare da un sistema che tutto sommato funzionava. Quindi il formato + ELF attese fino a quando fù meno doloroso + rimanere con il formato a.out piuttosto che migrare + al formato ELF. + + Tuttavia, il tempo passò, e gli strumenti di costruzione che + FreeBSD derivò dai loro strumenti di costruzione (in particolare + l'assemblatore ed il loader) evolsero in due tronconi paralleli. + L'albero di FreeBSD aggiunse le librerie condivise e sistemò alcuni + bug. Il popolo di GNU che in origine aveva scritto questi programmi + li riscrisse e aggiunse un semplice supporto per la costruzione di + compilatori cross, la possibilità di produrre formati diversi a + piacimento, e così via. Da quando molte persone vollero costruire + compilatori cross per FreeBSD, questi furono delusi poichè i vecchi + sorgenti che FreeBSD aveva per as e + ld non erano pronti per questo lavoro. + La nuova serie di strumenti di GNU (binutils) + supportavano la compilazione cross, ELF, le librerie + condivise, le estensioni C++, ecc. Inoltre molti venditori stanno + rilasciando binari ELF, ed è una buona cosa + per FreeBSD eseguirli. + + Il formato ELF è più espressivo di + quello a.out e permette una maggiore + estensibilità nel sistema base. Gli strumenti di + ELF sono meglio mantenuti, e offrono un supporto alla + compilazione cross, che sta a cuore a molte persone. + ELF può essere un pò meno veloce di + a.out, ma tentare di misurarne le prestazioni non + è molto semplice. Ci sono anche numerosi dettagli che sono diversi + tra i due formati nel modo in cui essi mappano le pagine, gestiscono il + codice iniziale, ecc. Questi dettagli non sono molto importanti, ma tra i + due esistono delle differenze. Nel tempo il supporto per il formato + a.out verrà rimosso dal kernel + GENERIC, ed eventualmente sarà rimosso + completamente dal kernel non appena non ci sarà più la + necessità di eseguire programmi con il formato + a.out. Per Maggiori Informazioni Le Pagine Man pagine man La documentazione più esauriente su FreeBSD è - costituita dalle pagine man. Quasi tutti i programmi sul sistema hanno + costituita dalle pagine man. Quasi tutti i programmi sul sistema hanno un piccolo manuale di riferimento che spiega il funzionamento di base e - i vari argomenti del programma stesso. Questi manuali possono essere + i vari argomenti del programma stesso. Questi manuali possono essere visualizzati con il comando man. L'uso del comando man è semplice: - &prompt.user; man command + &prompt.user; man comando - command è il nome del comando di cui + comando è il nome del comando di cui desideri maggiori informazioni. Per esempio, per sapere di più circa il comando ls digita: &prompt.user; man ls Il manuale in linea è diviso in sezione numerate: Comandi utente. System call e codici di errore. Funzioni della libreria C. Driver dei dispositivi. Formati di file. Giochi e altri passatempo. Informazioni varie. Comandi di mantenimento e di funzionamento del sistema. Sviluppo del kernel. In qualche caso, lo stesso soggetto può apparire in più di una sezione del manuale in linea. Per esempio, esiste un comando utente chmod e una system call chmod(). In questo caso, puoi dire al comando man quale vuoi specificando la sezione: &prompt.user; man 1 chmod In questo caso verrà visualizzata la pagina man del comando utente chmod. I riferimenti di una sezione particolare del manuale in linea sono tradizionalmente posti tra parentesi all'interno della documentazione, quindi &man.chmod.1; fa riferimento al comando utente chmod e &man.chmod.2; fa riferimento alla system call. Tutto questo va bene se conosci il nome del comando e desideri semplicemente sapere come usarlo, ma cosa succede se non ricordi il nome del comando? Puoi usare man con l'opzione per ricercare tramite parole chiavi nelle descrizioni dei comandi: &prompt.user; man -k mail Con questo comando ti verrà presentata una lista di comandi che hanno la parola chiave mail nella loro descrizione. Di fatto questo meccanismo funziona proprio come il comando apropos. Stai dando un'occhiata a tutti quei comandi fantastici che si trovano in /usr/bin ma non hai la più pallida idea di cosa fanno la maggior parte di essi? Semplicemente digita: &prompt.user; cd /usr/bin &prompt.user; man -f * oppure &prompt.user; cd /usr/bin &prompt.user; whatis * che è la stessa cosa. I File Info di GNU Free Software Foundation FreeBSD include molte applicazioni e utility prodotti dalla Free Software Foundation (FSF). Oltre alle pagine man, questi programmi hanno dei più ampi documenti in ipertesto chiamati file info che possono essere visualizzati con il comando info, o se hai installato emacs, con la modalità info di emacs. Per usare il comando &man.info.1;, digita semplicemente: &prompt.user; info Per una breve introduzione, digita h. Per un rapido riferimento dei comandi, digita ?.
diff --git a/it_IT.ISO8859-15/books/handbook/bibliography/chapter.sgml b/it_IT.ISO8859-15/books/handbook/bibliography/chapter.sgml index d914a1a023..2e7b8c2f53 100644 --- a/it_IT.ISO8859-15/books/handbook/bibliography/chapter.sgml +++ b/it_IT.ISO8859-15/books/handbook/bibliography/chapter.sgml @@ -1,573 +1,607 @@ Bibliografia Sebbene le pagine man forniscano la documentazione di riferimento definitiva per le singole parti del sistema operativo FreeBSD, sono famose per non illustrare come mettere insieme i pezzi per far andare uniformemente l'intero sistema operativo. Per questo, non esiste sostituto a un buon - libro sull'amministrazione di un sistema Unix e a un buon manuale per gli + libro sull'amministrazione di un sistema &unix; e a un buon manuale per gli utenti. Libri & Riviste Specifiche su FreeBSD Libri & Riviste internazionali: Using FreeBSD (in cinese). FreeBSD for PC 98'ers (in giapponese), pubblicato da SHUWA System Co, LTD. ISBN 4-87966-468-5 C3055 P2900E. FreeBSD (in giapponese), pubblicato da CUTT. ISBN 4-906391-22-2 C3055 P2400E. Complete Introduction to FreeBSD (in giapponese), pubblicato da Shoeisha Co., Ltd. ISBN 4-88135-473-6 P3600E. Personal UNIX Starter Kit FreeBSD (in giapponese), pubblicato da ASCII. ISBN 4-7561-1733-3 P3000E. FreeBSD Handbook (traduzione giapponese), pubblicato da ASCII. ISBN 4-7561-1580-2 P3800E. FreeBSD mit Methode (in tedesco), pubblicato da Computer und Literatur Verlag/Vertrieb Hanser, 1998. ISBN 3-932311-31-0. FreeBSD 4 - Installieren, Konfigurieren, Administrieren (in tedesco), pubblicato da Computer und Literatur Verlag, 2001. ISBN 3-932311-88-4. + + FreeBSD 5 - + Installieren, Konfigurieren, Administrieren (in tedesco), + pubblicato da Computer und Literatur + Verlag, 2003. ISBN 3-936546-06-1. + + + + FreeBSD de + Luxe (in tedesco), pubblicato da Verlag Modere Industrie, 2003. + ISBN 3-8266-1343-0. + + FreeBSD Install and Utilization Manual (in giapponese), pubblicato da Mainichi Communications Inc.. Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo - Building Internet + Building Internet Server with FreeBSD (in indonesiano), pubblicato - da Elex Media - Komputindo. + da Elex Media + Komputindo. - Libri & Riviste in lingua inglese: Absolute BSD: The Ultimate Guide to FreeBSD, pubblicato da No Starch Press, 2002. ISBN 1886411743. The Complete FreeBSD, pubblicato da O'Reilly, 2003. ISBN 0596005164. The FreeBSD Corporate Networker's Guide, pubblicato da Addison-Wesley, 2000. ISBN 0201704811. FreeBSD: An Open-Source Operating System for Your Personal Computer, pubblicato da The Bit Tree Press, 2001. ISBN 0971204500. Teach Yourself FreeBSD in 24 Hours, pubblicato da Sams, 2002. ISBN 0672324245. FreeBSD unleashed, pubblicato da Sams, 2002. ISBN 0672324563. FreeBSD: The Complete Reference, pubblicato da McGrawHill, 2003. ISBN 0072224096. Guide per gli Utenti Computer Systems Research Group, UC Berkeley. 4.4BSD User's Reference Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-075-9 Computer Systems Research Group, UC Berkeley. 4.4BSD - User's Supplementary Documents. O'Reilly & - Associates, Inc., 1994. ISBN 1-56592-076-7 + User's Supplementary Documents. O'Reilly & + Associates, Inc., 1994. ISBN 1-56592-076-7 UNIX in a Nutshell. O'Reilly & - Associates, Inc., 1990. ISBN 093717520X + Associates, Inc., 1990. ISBN 093717520X Mui, Linda. What You Need To Know When You Can't Find Your UNIX System Administrator. O'Reilly & - Associates, Inc., 1995. ISBN 1-56592-104-6 + Associates, Inc., 1995. ISBN 1-56592-104-6 Ohio State University ha scritto un Corso Introduttivo a UNIX che è disponibile online in formato HTML e PostScript. (Il documento è disponibile online in italiano come parte del FreeBSD Italian Documentation Project.) Jpman Project, Japan FreeBSD Users Group. FreeBSD User's Reference Manual (traduzione giapponese). Mainichi Communications - Inc., 1998. ISBN4-8399-0088-4 P3800E. + Inc., 1998. ISBN 4-8399-0088-4 P3800E. Edinburgh - University ha scritto una Guida Online per i nuovi + University ha scritto una Guida Online per i nuovi arrivati nell'ambiente UNIX. Guide per gli Amministratori Albitz, Paul e Liu, Cricket. DNS and BIND, 4a Ed. O'Reilly & Associates, Inc., 2001. ISBN 1-59600-158-4 Computer Systems Research Group, UC Berkeley. 4.4BSD System Manager's Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-080-5 Costales, Brian, et al. Sendmail, 2a Ed. - O'Reilly & Associates, Inc., 1997. ISBN 1-56592-222-0 + O'Reilly & Associates, Inc., 1997. ISBN 1-56592-222-0 Frisch, Æleen. Essential System Administration, 2a Ed. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-127-5 Hunt, Craig. TCP/IP Network Administration, 2a Ed. O'Reilly & Associates, Inc., 1997. ISBN 1-56592-322-7 Nemeth, Evi. UNIX System Administration Handbook. 3a Ed. Prentice Hall, 2000. ISBN 0-13-020601-6 Stern, Hal Managing NFS and NIS O'Reilly & Associates, Inc., 1991. ISBN 0-937175-75-7 Jpman Project, Japan FreeBSD Users Group. FreeBSD System - Administrator's Manual (traduzione giapponese). (traduzione giapponese). Mainichi Communications - Inc., 1998. ISBN4-8399-0109-0 P3300E. + Inc., 1998. ISBN 4-8399-0109-0 P3300E. + + + + Dreyfus, Emmanuel. Cahiers + de l'Admin: BSD (in francese), Eyrolles, 2003. ISBN + 2-212-11244-0 Guide per i Programmatori Asente, Paul, Converse, Diana, e Swick, Ralph. X Window System Toolkit. Digital Press, 1998. ISBN 1-55558-178-1 Computer Systems Research Group, UC Berkeley. 4.4BSD - Programmer's Reference Manual. O'Reilly & + Programmer's Reference Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-078-3 Computer Systems Research Group, UC Berkeley. 4.4BSD Programmer's Supplementary Documents. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-079-1 Harbison, Samuel P. e Steele, Guy L. Jr. C: A Reference Manual. 4a ed. Prentice Hall, 1995. ISBN 0-13-326224-3 Kernighan, Brian e Dennis M. Ritchie. The C Programming Language.. PTR Prentice Hall, 1988. ISBN 0-13-110362-9 Lehey, Greg. Porting UNIX Software. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-126-7 Plauger, P. J. The Standard C Library. Prentice Hall, 1992. ISBN 0-13-131509-9 + + Spinellis, Diomidis. Code + Reading: The Open Source Perspective. + Addison-Wesley, 2003. ISBN 0-201-79940-5 + + Stevens, W. Richard. Advanced Programming in the UNIX - Environment. Reading, Mass. : Addison-Wesley, 1992 + Environment. Reading, Mass. : Addison-Wesley, 1992. ISBN 0-201-56317-7 Stevens, W. Richard. UNIX Network Programming. 2a Ed, PTR Prentice Hall, 1998. ISBN 0-13-490012-X Wells, Bill. Writing Serial Drivers for UNIX. Dr. Dobb's Journal. 19(15), Dicembre 1994. pp68-71, 97-99. Architettura del Sistema Operativo Andleigh, Prabhat K. UNIX System Architecture. Prentice-Hall, Inc., 1990. ISBN 0-13-949843-5 Jolitz, William. Porting UNIX to the 386. Dr. Dobb's Journal. Gennaio 1991-Luglio 1992. Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels e John Quarterman The Design and Implementation of the 4.3BSD UNIX Operating System. Reading, Mass. : Addison-Wesley, 1989. ISBN 0-201-06196-1 Leffler, Samuel J., Marshall Kirk McKusick, The Design and Implementation of the 4.3BSD UNIX Operating System: Answer Book. Reading, Mass. : Addison-Wesley, 1991. ISBN 0-201-54629-9 McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, e John Quarterman. The Design and Implementation of the 4.4BSD Operating System. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-54979-4 (Il capitolo 2 di questo libro è disponibile online come parte del FreeBSD Documentation Project, mentre il capitolo 9 è consultabile qui.) Stevens, W. Richard. TCP/IP Illustrated, Volume 1: The Protocols. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63346-9 Schimmel, Curt. Unix Systems for Modern Architectures. Reading, Mass. : Addison-Wesley, 1994. ISBN 0-201-63338-8 Stevens, W. Richard. TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP and the UNIX Domain Protocols. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63495-3 Vahalia, Uresh. UNIX Internals -- The New Frontiers. Prentice Hall, 1996. ISBN 0-13-101908-2 Wright, Gary R. and W. Richard Stevens. TCP/IP Illustrated, Volume 2: The Implementation. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-X Riferimenti sulla Sicurezza Cheswick, William R. e Steven M. Bellovin. Firewalls and Internet Security: Repelling the Wily Hacker. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-63357-4 Garfinkel, Simson e Gene Spafford. Practical UNIX & Internet Security. 2a Ed. O'Reilly & Associates, Inc., 1996. ISBN 1-56592-148-8 Garfinkel, Simson. PGP Pretty Good Privacy O'Reilly & Associates, Inc., 1995. ISBN 1-56592-098-8 Riferimenti sull'Hardware Anderson, Don e Tom Shanley. Pentium Processor System Architecture. 2a Ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40992-5 Ferraro, Richard F. Programmer's Guide to the EGA, VGA, and Super VGA Cards. 3a ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-62490-7 Intel Corporation pubblica la documentazione sulle sue CPU, chipsets e standards sul suo sito web per gli sviluppatori, solitamente come files PDF. Shanley, Tom. 80486 System Architecture. 3a ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40994-1 Shanley, Tom. ISA System Architecture. 3a ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40996-8 Shanley, Tom. PCI System Architecture. 4a ed. Reading, Mass. : Addison-Wesley, 1999. ISBN 0-201-30974-2 - Van Gilluwe, Frank. The Undocumented PC, 2a Ed. - Reading, Mass: Addison-Wesley Pub. Co., 1996. ISBN + Van Gilluwe, Frank. The Undocumented PC, 2a + Ed. Reading, Mass: Addison-Wesley Pub. Co., 1996. ISBN 0-201-47950-8 - Messmer, Hans-Peter. The Indispensable PC Hardware Book, 4a Ed. - Reading, Mass: Addison-Wesley Pub. Co., 2002. ISBN - 0-201-59616-4 + Messmer, Hans-Peter. The Indispensable PC Hardware + Book, 4a Ed. Reading, Mass: Addison-Wesley Pub. Co., + 2002. ISBN 0-201-59616-4 - Storia di Unix + Storia di &unix; Lion, John Lion's Commentary on UNIX, 6th Ed. With Source Code. ITP Media Group, 1996. ISBN 1573980137 Raymond, Eric S. The New Hacker's Dictionary, 3rd edition. MIT Press, 1996. ISBN 0-262-68092-0. Conosciuto anche come il Jargon File Salus, Peter H. A quarter century of UNIX. Addison-Wesley Publishing Company, Inc., 1994. ISBN 0-201-54777-5 Simon Garfinkel, Daniel Weise, Steven Strassmann. The UNIX-HATERS Handbook. IDG Books Worldwide, Inc., 1994. ISBN 1-56884-203-1 Don Libes, Sandy Ressler Life with UNIX — edizione speciale. Prentice-Hall, Inc., 1989. ISBN 0-13-536657-7 The BSD family tree. + url="http://www.freebsd.org/cgi/cvsweb.cgi/src/share/misc/bsd-family-tree"> o /usr/share/misc/bsd-family-tree su una macchina FreeBSD recente. The BSD Release Announcements collection. 1997. Networked Computer Science Technical Reports Library. Old BSD releases from the Computer Systems Research group (CSRG). - : - Il set di 4 CD comprende tutte le versioni di BSD dalla 1BSD alla 4.4BSD e - 4.4BSD-Lite2 (ma non la 2.11BSD, sfortunatamente). Inoltre, l'ultimo disco - contiene i sorgenti finali più i files SCCS. + : Il set di 4 CD + comprende tutte le versioni di BSD dalla 1BSD alla 4.4BSD e + 4.4BSD-Lite2 (ma non la 2.11BSD, sfortunatamente). Inoltre, l'ultimo + disco contiene i sorgenti finali più i file SCCS. Riviste e Giornali The C/C++ Users Journal. R&D Publications Inc. ISSN 1075-2838 Sys Admin — The Journal for UNIX System Administrators Miller Freeman, Inc., ISSN 1061-2688 + + + freeX — Das Magazin für Linux - BSD - + UNIX (in tedesco) Computer- und Literaturverlag GmbH, + ISSN 1436-7033 + diff --git a/it_IT.ISO8859-15/books/handbook/book.sgml b/it_IT.ISO8859-15/books/handbook/book.sgml index 5884c1ff82..1f4f47b5ca 100644 --- a/it_IT.ISO8859-15/books/handbook/book.sgml +++ b/it_IT.ISO8859-15/books/handbook/book.sgml @@ -1,227 +1,272 @@ %man; %bookinfo; %freebsd; %authors; %teams; %mailing-lists; %newsgroups; + +%trademarks; + %txtfiles; %translators; %chapters; + %pgpkeys; ]> Manuale di FreeBSD The FreeBSD Italian Documentation Project Febbraio 1999 1995 1996 1997 1998 1999 2000 2001 2002 2003 The FreeBSD Italian Documentation Project &bookinfo.legalnotice; + + + &tm-attrib.freebsd; + &tm-attrib.3com; + &tm-attrib.3ware; + &tm-attrib.arm; + &tm-attrib.adaptec; + &tm-attrib.adobe; + &tm-attrib.apple; + &tm-attrib.corel; + &tm-attrib.creative; + &tm-attrib.heidelberger; + &tm-attrib.ibm; + &tm-attrib.ieee; + &tm-attrib.intel; + &tm-attrib.intuit; + &tm-attrib.linux; + &tm-attrib.lsilogic; + &tm-attrib.m-systems; + &tm-attrib.macromedia; + &tm-attrib.microsoft; + &tm-attrib.netscape; + &tm-attrib.opengroup; + &tm-attrib.oracle; + &tm-attrib.powerquest; + &tm-attrib.realnetworks; + &tm-attrib.redhat; + &tm-attrib.sap; + &tm-attrib.sun; + &tm-attrib.symantec; + &tm-attrib.themathworks; + &tm-attrib.thomson; + &tm-attrib.usrobotics; + &tm-attrib.vmware; + &tm-attrib.waterloomaple; + &tm-attrib.wolframresearch; + &tm-attrib.xfree86; + &tm-attrib.xiph; + &tm-attrib.general; + Benvenuto in FreeBSD! Questo manuale copre l'installazione e l'uso giorno per giorno di FreeBSD &rel2.current;-RELEASE e FreeBSD &rel.current;-RELEASE. Questo manuale è un progetto in evoluzione ed è il frutto del lavoro di molti singoli. Molte sezioni non esistono ancora e alcune di quelle che esistono devono essere aggiornate. Se sei interessato ad aiutare questo progetto, invia un'email alla &a.doc;. L'ultima versione di questo documento è sempre disponibile sul sito web di FreeBSD. Inoltre può essere scaricata in una varietà di formati e tipi di compressione dal server FTP di FreeBSD o da uno dei numerosi siti mirror. Se preferisci avere una copia rilegata del manuale, puoi comprarne una su FreeBSD Mall. Puoi anche voler cercare nel manuale. &chap.preface; Per Cominciare Questa parte del Manuale di FreeBSD è per gli utenti e gli amministratori che si affacciano a FreeBSD. Questi capitoli: Ti introdurranno a FreeBSD. Ti guideranno attraverso il processo di installazione. - Ti insegneranno qualche base di Unix. + Ti insegneranno le basi e i fondamenti di &unix;. Ti mostreranno come installare la varietà delle applicazioni di terze parti disponibili per FreeBSD. - Ti introdurranno a X, il sistema a finestre di Unix, e ti + Ti introdurranno a X, il sistema a finestre di &unix;, e ti spiegheranno come configurare un ambiente desktop che ti renda più produttivo. Abbiamo cercato di mantenere il numero di riferimenti in avanti nel testo al minimo così che tu possa leggere questa sezione del Manuale dall'inizio alla fine con il minimo scorrimento di pagine possibile. Amministrazione del Sistema I rimanenti capitoli del Manuale di FreeBSD coprono tutti gli aspetti dell'amministrazione di un sistema FreeBSD. Ogni capitolo inizia descrivendo quello che imparerai dopo aver letto il capitolo, e specifica anche quello che dovresti sapere prima di affrontare il materiale. Questi capitoli sono studiati per essere letti quando si ha bisogno di un'informazione. Non devi leggerli in un ordine particolare, né devi leggerli tutti prima di poter usare FreeBSD. Appendici - + + &chap.colophon; diff --git a/it_IT.ISO8859-15/books/handbook/boot/chapter.sgml b/it_IT.ISO8859-15/books/handbook/boot/chapter.sgml index 98640a8999..16b95c203a 100644 --- a/it_IT.ISO8859-15/books/handbook/boot/chapter.sgml +++ b/it_IT.ISO8859-15/books/handbook/boot/chapter.sgml @@ -1,819 +1,819 @@ La Procedura di Avvio di FreeBSD Sinossi avvio avviamento Il processo di accensione di un computer e caricamento del sistema operativo viene detto processo di avviamento, o semplicemente avvio. La procedura di avvio di FreeBSD fornisce un alto grado di flessibilità nel personalizzare quello che succede quando avvii il sistema, dandoti la possibilità di scegliere tra diversi sistemi operativi installati sullo stesso computer, o anche tra diverse versioni dello stesso sistema operativo o tra diversi kernel installati. Questo capitolo fornisce i dettagli sulle opzioni di configurazione che puoi impostare per personalizzare il processo di avvio di FreeBSD. Ciò comprende tutto quello che avviene fino a quando il kernel viene lanciato, vengono controllate le periferiche, e viene avviato &man.init.8;. Se non sei sicuro di sapere quando tutto questo accada, si tratta del momento in cui il colore del testo a video cambia da bianco brillante a grigio. Dopo aver letto questo capitolo, saprai: Quali sono i componenti del sistema di avvio di FreeBSD, e come interagiscono. Le opzioni che puoi impostare per i componenti durante l'avviamento di FreeBSD per controllare il processo di avvio. Le basi dei &man.device.hints.5;. Solo per x86 Questo capitolo descrive la procedura di avvio di FreeBSD su sistemi Intel x86. Il Problema dell'Avvio Accendere un computer e far partire il sistema operativo pone un dilemma interessante. Per definizione, il computer non sa fare nulla finché non viene avviato il sistema operativo. Questo include anche l'esecuzione dei programmi dal disco. Dunque se il computer non può eseguire un programma da disco senza il sistema operativo, ed i programmi del sistema operativo sono sul disco, come viene avviato il sistema operativo? Questo è un problema analogo a quello descritto nel libro Le Avventure del Barone di Munchausen. Un personaggio era caduto in una botola, e ne era uscito tirandosi su da sé (in inglese bootstrap), riuscendo nell'intento solo con i propri sforzi. Nei primi giorni dei calcolatori al meccanismo usato per caricare il sistema operativo fu applicato il termine bootstrap, ed in seguito venne abbreviato in booting (in italiano avvio). Su sistemi con hardware x86 il BIOS (Basic Input/Output System) è il responsabile del caricamento del sistema operativo. Per fare ciò, il BIOS cerca nel disco rigido il Master Boot Record (MBR), che deve essere in una specifica posizione sul disco. Il BIOS ha abbastanza conoscenze per caricare ed eseguire l'MBR, ed assume che l'MBR possa portare avanti il resto dei compiti relativi al caricamento del sistema operativo. BIOS Basic Input/Output System Se hai solo un sistema operativo installato sui tuoi dischi allora l'MBR standard sarà sufficiente. Questo MBR cerca la prima slice (partizione) avviabile sul disco, e poi esegue il codice su quella slice per caricare il resto del sistema operativo. Se hai installato più sistemi operativi sui tuoi dischi allora puoi installare un MBR diverso, che mostra una lista dei diversi sistemi operativi, e ti permette di scegliere quale avviare. FreeBSD viene fornito con un simile MBR che può essere installato, ed altri fornitori di sistemi operativi forniscono MBR alternativi. Il resto del sistema di avvio di FreeBSD è diviso in tre stadi. Il primo stadio viene eseguito dall'MBR, che sa solo il necessario per mettere il computer in un certo stato ed eseguire il secondo stadio. Quest'ultimo può fare poco di più, prima di eseguire il terzo. Il terzo stadio esaurisce il compito di caricare il sistema operativo. Il lavoro è diviso in queste tre parti perché gli standard dei PC pongono dei limiti alla dimensione dei programmi che possono essere eseguiti nei primi due stadi. Concatenando i compiti si permette a FreeBSD di fornire un loader più flessibile. kernel init A questo punto viene avviato il kernel ed esso comincia a verificare i dispositivi e ad inizializzarli. Una volta che la procedura di avvio del kernel è finita, il kernel passa il controllo al processo utente &man.init.8;, che si assicura che i dischi siano in uno stato usabile. Poi &man.init.8; avvia la configurazione delle risorse a livello utente che monta i file system, imposta le schede di rete per comunicare via rete, ed in generale fa partire tutti i processi che generalmente sono in esecuzione su un sistema FreeBSD all'avvio. L'MBR, e gli Stadi di Avvio Uno, Due, e Tre MBR, <filename>/boot/boot0</filename> Master Boot Record (MBR) L'MBR di FreeBSD è posizionato in /boot/boot0. Questa è una copia dell'MBR, poiché il vero MBR deve essere posizionato su una parte speciale del disco, fuori dell'area di FreeBSD. Siccome il programma nell'MBR può essere lungo solo 512 byte, boot0 è molto semplice. Se hai installato l'MBR di FreeBSD ed hai vari sistemi operativi installati sui tuoi dischi allora vedrai una schermata simile a questa al momento dell'accensione: Screenshot di <filename>boot0</filename> F1 DOS F2 FreeBSD F3 Linux F4 ?? F5 Drive 1 Default: F2 - Altri sistemi operativi, in particolare Windows 95, sono noti + Altri sistemi operativi, in particolare &windows; 95, sono noti per l'abitudine a sovrascrivere l'MBR esistente con il proprio. Se accade questo, o se vuoi rimpiazzare l'MBR pre-esistente con quello di FreeBSD puoi usare il seguente comando: &prompt.root; fdisk -B -b /boot/boot0 dispositivo Dove dispositivo è il dispositivo dal quale vuoi avviare, come ad0 per il primo disco IDE, ad2 per il primo disco ide sul secondo canale, da0 per il primo disco SCSI, e così via. Comunque, se sei un utente Linux e preferisci che sia LILO a controllare il processo di avvio, puoi modificare /etc/lilo.conf per avviare FreeBSD, e selezionare durante il processo di installazione di FreeBSD. Se hai installato il boot manager di FreeBSD, puoi avviare Linux e modificare il file di configurazione di LILO, /etc/lilo.conf aggiungendo la seguente opzione: other=/dev/hdXY table=/dev/hdb loader=/boot/chain.b label=FreeBSD che permetterà l'avvio di FreeBSD e Linux via LILO. Nel nostro esempio, usiamo XY per determinare quale drive e quale partizione usare. Se stai usando un drive SCSI, dovrai cambiare /dev/hdXY in qualcosa di simile a /dev/sdXY, dove viene usata ancora la sintassi XY. L'opzione può essere omessa se hai entrambi i sistemi operativi sullo stesso drive. Ora puoi eseguire /sbin/lilo -v per effettuare i tuoi cambiamenti, che dovrebbero essere confermati con messaggio su schermo. Stadio Uno, <filename>/boot/boot1</filename>, e Stadio Due, <filename>/boot/boot2</filename> Concettualmente il primo ed il secondo stadio sono parte dello stesso programma, sulla stessa area del disco. Per limitazioni di spazio sono stati divisi in due, ma li installerai sempre insieme. Essi si trovano sul settore di avvio della slice di avvio, dove boot0, o ogni altro programma nell'MBR si aspetta di trovare il codice da eseguire per proseguire la procedura di avvio. I file nella directory /boot sono copie dei file reali, che sono immagazzinati fuori dal file system di FreeBSD. boot1 è molto semplice, poiché può essere lungo solo 512 byte, e conosce solo lo stretto necessario del disklabel di FreeBSD, il quale memorizza le informazioni sulle slice, per trovare ed eseguire boot2. boot2 è leggermente più sofisticato, e conosce il file system di FreeBSD abbastanza da potervi trovare dei file, e può fornire una semplice interfaccia per scegliere quale kernel o loader eseguire. Poiché il loader è molto più complesso, e fornisce una gradevole interfaccia di facile utilizzo alla configurazione di avvio, boot2 in genere lo esegue, ma in precedenza era incaricato di lanciare il kernel direttamente. Screenshot di <filename>boot2</filename> >> FreeBSD/i386 BOOT Default: 0:ad(0,a)/kernel boot: Se mai avrai bisogno di rimpiazzare il boot1 ed il boot2 installati usa &man.disklabel.8;. &prompt.root; disklabel -B discoslice Dove discoslice sono il disco e la slice dal quale vuoi effettuare l'avvio, come ad esempio ad0s1 per la prima slice sul primo disco IDE. Modalità Pericolosamente Dedicata Se nella sintassi del comando &man.disklabel.8; usi solo il nome del disco, come ad0, creerai un disco pericolosamente dedicato, senza slice. Quasi sicuramente non è questo quello che vuoi fare, quindi controlla due volte il comando &man.disklabel.8; prima di premere Invio. Stadio Tre, <filename>/boot/loader</filename> boot-loader Il loader è l'ultimo stadio della procedura di avvio divisa in tre, e si trova sul file system, generalmente come /boot/loader. Il loader deve essere inteso come un metodo user-friendly per la configurazione di avvio, tramite l'uso di un insieme di comandi integrati facili da usare, sostenuto da un potente interprete, con un insieme di comandi più complessi. Sequenza di Operazioni del Loader Durante l'inizializzazione, il loader controllerà la console e i dischi, e cercherà di capire da quale disco si stia avviando. Imposterà le variabili di conseguenza, ed avvierà un interprete al quale potranno essere passati i comandi dell'utente in maniera interattiva o attraverso uno script. loader configurazione del loader Poi il loader leggerà /boot/loader.rc, che di default legge i settaggi di /boot/defaults/loader.conf il quale imposta dei valori di default ragionevoli per le variabili e inoltre /boot/loader.rc legge /boot/loader.conf per i cambiamenti locali a quelle variabili. In base a queste variabili loader.rc carica i moduli ed il kernel prescelti. Infine, di default, il loader attende per 10 secondi la pressione di un tasto, ed avvia il kernel se non viene interrotto. Se invece viene interrotto, viene presentato all'utente un prompt in grado di comprendere un semplice insieme di comandi, dal quale l'utente può impostare precisamente le variabili, scaricare dalla memoria tutti i moduli, o caricarli, ed infine avviare o ri-avviare. Comandi Integrati nel Loader Questi sono i comandi usati più comunemente. Per una discussione completa su tutti i comandi disponibili, guarda &man.loader.8;. autoboot secondi Procede all'avvio del kernel se non viene interrotto nell'intervallo di tempo specificato, in secondi. Mostra un conto alla rovescia, e l'intervallo predefinito è di 10 secondi. boot -opzioni nomekernel Procede immediatamente all'avvio del kernel, con le opzioni date, se ce ne sono, e con il nome del kernel specificato, se fornito. boot-conf Va avanti con la stessa configurazione automatica di moduli basati sulle variabili come accade al boot. Questo ha senso solo se prima usi unload, e cambi delle variabili, in generale kernel. help argomento Mostra un messaggio d'aiuto letto da /boot/loader.help. Se l'argomento dato è index, allora elenca tutti gli argomenti disponibili. include nomefile Processa il file specificato. Il file viene letto, e interpretato riga per riga. Un errore blocca il comando include immediatamente. load tipo nomefile Carica il kernel, il modulo del kernel, o il file del tipo specificato, con il nome specificato. Ogni argomento dopo nomefile viene passato al file. ls percorso Mostra un elenco dei file nel percorso dato, o nella directory root, se non ne viene specificato uno. Se è specificato , verranno mostrate anche le dimensioni dei file. lsdev Elenca tutti i dispositivi dai quali potrebbe essere possibile caricare moduli. Se viene specificata l'opzione , verranno stampati dettagli maggiori. lsmod Mostra i moduli caricati. Se viene specificato , verranno stampati dettagli maggiori. more nomefile Mostra i file specificati, con una pausa ad ogni pagina visualizzata. reboot Riavvia immediatamente il sistema. set variabile set variabile=valore Imposta le variabili di ambiente del loader. unload Rimuove tutti i moduli caricati. Esempi sul Loader Qui ci sono alcuni esempi pratici sull'uso del loader: modalità singolo utente Per avviare semplicemente il vostro kernel abituale, ma in modalità singolo utente: boot -s Per scaricare dalla memoria i moduli e il kernel usuali, e poi caricare solo il vecchio (o un altro) kernel: kernel.old unload load kernel.old Puoi usare kernel.GENERIC per riferirti al kernel generico che viene fornito nel disco d'installazione, o kernel.old per riferirti al kernel installato precedentemente (quando hai aggiornato o configurato il kernel, ad esempio). Usa il comando seguente per caricare i tuoi soliti moduli con un altro kernel: unload set kernel="kernel.old" boot-conf Per caricare uno script di configurazione del kernel (uno script automatizzato che faccia le cose che faresti tu normalmente configurando il kernel all'avvio): load -t userconfig_script /boot/kernel.conf Interazione con il Kernel Durante l'Avvio kernel interazione all'avvio Una volta che il kernel è stato caricato dal loader (come di consueto) o da boot2 (scavalcando il loader), esso esamina i suoi flag di avvio, se ce ne sono, e aggiusta il suo comportamento come necessario. kernel flag di boot I Flag di Avvio del Kernel Qui ci sono alcuni dei più comuni flag di avvio: durante l'inizializzazione del kernel, chiede il dispositivo da montare come file system di root. avvia da CDROM. esegue UserConfig, il programma di configurazione del kernel all'avvio avvia in modalità singolo utente aumenta la verbosità durante l'avvio del kernel Ci sono altri flag di avvio, leggi &man.boot.8; per maggiori informazioni su di essi. Tom Rhodes Contributo di device.hints Device Hints Questa è una caratteristica di FreeBSD 5.0 e successive che non esiste nelle versioni precedenti. Durante l'avvio iniziale del sistema, il boot &man.loader.8; leggerà il file &man.device.hints.5;. Questo file contiene informazioni di avvio per il kernel dette variabili, e talvolta indicate come device hints, suggerimenti per i dispositivi. Questi device hints vengono usati dai driver per la configurazione delle varie periferiche. I device hints possono essere specificati anche nel prompt del terzo stadio del boot loader. Le variabili possono essere aggiunte usando il comando set, rimosse con unset, e visualizzate con show. Inoltre, in questo modo, le variabili impostate nel file /boot/device.hints possono essere scavalcate. I device hint inseriti in questo modo non sono permanenti e verranno dimenticati al riavvio seguente. Una volta che il sistema è stato avviato, può essere usato il comando &man.kenv.1; per mostrare tutte le variabili. La sintassi per il file /boot/device.hints è una variabile per riga, usando il solito cancelletto # per indicare i commenti. Le linee sono costruite come segue: hint.driver.unit.keyword="valore" La sintassi nel terzo stadio del boot loader è: set hint.driver.unit.keyword=valore driver è il nome del driver per il dispositivo, unit è il numero di unità per quel driver, e keyword è la parola chiave per quell'hint. La parola chiave può essere: at: specifica il bus sul quale è collegato il dispositivo. port: specifica l'indirizzo iniziale di I/O che deve essere usato. irq: specifica il numero di interrupt request che deve essere usato. drq: specifica il numero del canale DMA. maddr: specifica l'indirizzo di memoria fisico occupato dal dispositivo. flags: imposta vari bit di flag per il dispositivo. disabled: se impostato a 1 il dispositivo è disabilitato. I driver possono accettare (o richiedere) più hints di quelli elencati qui, si raccomanda quindi di verificare la loro pagina di manuale. Per maggiori informazioni, consulta le pagine man &man.device.hints.5;, &man.kenv.1;, &man.loader.conf.5;, e &man.loader.8;. init Init: Inizializzazione del Controllo dei Processi Una volta che il kernel ha finito di avviarsi, trasferisce il controllo al processo utente init, che si trova in /sbin/init, o al programma specificato nella variabile init_path nel loader. Sequenza di Riavvio Automatica La sequenza di riavvio automatica assicura che i file system disponibili sul sistema siano consistenti. Se qualcuno non lo è, e &man.fsck.8; non può risolvere le inconsistenze, &man.init.8; abbandona il sistema in modalità singolo utente per permettere all'amministratore di sistema di occuparsi dei problemi direttamente. Modalità Singolo Utente modalità singolo utente console Questa modalità può essere raggiunta attraverso la sequenza di riavvio automatica, o tramite l'avvio da parte dell'utente con l'opzione o impostando la variabile boot_single nel loader. Si può arrivare ad essa anche richiamando &man.shutdown.8; senza l'opzione per il riavvio () o per l'arresto (), dalla modalità multi utente. Se la console del sistema è settata come insecure in /etc/ttys, allora il sistema richiede la password di root prima di entrare in modalità singolo utente. Una Console Insicura in <filename>/etc/ttys</filename> # name getty type status comments # # Se la console è settata come "insecure", allora init chiederà # la password di root per andare in modalità singolo utente . console none unknown off insecure Avere una console insecure significa ritenere insicura la sicurezza fisica della console, ed assicurarsi che solo chi conosce la password di root possa usare la modalità singolo utente, non significa voler eseguire la console in maniera insicura. Dunque, se vuoi avere sicurezza, scegli insecure, non secure. Modalità Multi Utente modalità multi utente Se &man.init.8; ritiene che i tuoi file system siano in ordine, o quando l'utente ha terminato il lavoro in modalità singolo utente, il sistema entra in modalità multi utente, nella quale inizia la configurazione delle risorse del sistema. file rc Configurazione delle Risorse (rc) Il sistema di configurazione delle risorse legge i valori predefiniti della configurazione da /etc/defaults/rc.conf, e i dettagli specifici del sistema da /etc/rc.conf, e poi procede al montaggio dei file system del sistema elencati in /etc/fstab, avvia i servizi di rete, avvia vari demoni di sistema, ed infine esegue gli script di avvio dei pacchetti installati localmente. La pagina man di &man.rc.8; è un buon riferimento per la configurazione delle risorse del sistema, poiché esamina gli script stessi. Sequenza di Spegnimento spegnimento Al momento di uno spegnimento controllato, tramite &man.shutdown.8;, &man.init.8; cercherà di eseguire lo script /etc/rc.shutdown, e poi procederà ad inviare a tutti i processi il segnale TERM, e successivamente il segnale KILL a quelli che non sono terminati in tempo. Per spegnere una macchina FreeBSD su architetture e sistemi che supportano la gestione dell'energia, usa semplicemente il comando shutdown -p now per disattivare immediatamente l'alimentazione. Per riavviare semplicemente un sistema FreeBSD, usa solo shutdown -r now. Avrai bisogno di essere root o un membro del gruppo operator per eseguire &man.shutdown.8;. Possono essere usati anche i comandi &man.halt.8; e &man.reboot.8;, fai riferimento alle loro pagine di man ed a quella di &man.shutdown.8; per maggiori informazioni. La gestione dell'energia richiede il supporto &man.acpi.4; nel kernel o caricato come modulo in FreeBSD 5.X e il supporto &man.apm.4; in FreeBSD 4.X. diff --git a/it_IT.ISO8859-15/books/handbook/chapters.ent b/it_IT.ISO8859-15/books/handbook/chapters.ent index 6b49b24703..f30e73d97b 100644 --- a/it_IT.ISO8859-15/books/handbook/chapters.ent +++ b/it_IT.ISO8859-15/books/handbook/chapters.ent @@ -1,49 +1,52 @@ + + + diff --git a/it_IT.ISO8859-15/books/handbook/colophon.sgml b/it_IT.ISO8859-15/books/handbook/colophon.sgml index aab885f4e2..5a1d8324fe 100644 --- a/it_IT.ISO8859-15/books/handbook/colophon.sgml +++ b/it_IT.ISO8859-15/books/handbook/colophon.sgml @@ -1,33 +1,33 @@ Questo libro è frutto del lavoro combinato di centinaia di persone che hanno contribuito al FreeBSD Documentation Project. Il testo è stato scritto in SGML seguendo le specifiche del DocBook DTD ed è stato formattato dall'SGML in molti formati di presentazione differenti usando Jade, un motore DSSSL open source. Sono stati usati i fogli di stile DSSSL di Norm Walsh con un livello aggiuntivo di personalizzazione per fornire a Jade le istruzioni di presentazione. La versione stampata di questo documento non sarebbe stata possibile senza il linguaggio di composizione - TeX di Donald Knuth, + &tex; di Donald Knuth, LaTeX di Leslie Lamport, o il pacchetto di macro JadeTeX di Sebastian Rahtz. diff --git a/it_IT.ISO8859-15/books/handbook/desktop/chapter.sgml b/it_IT.ISO8859-15/books/handbook/desktop/chapter.sgml index 3583f30d91..c0b186d302 100644 --- a/it_IT.ISO8859-15/books/handbook/desktop/chapter.sgml +++ b/it_IT.ISO8859-15/books/handbook/desktop/chapter.sgml @@ -1,1325 +1,1332 @@ Christophe Juniet Contributo di Applicazioni Desktop Sinossi FreeBSD può far girare una gran varietà di applicazioni desktop, come ad esempio browser per la navigazione e editor di testi. La maggior parte di questi sono disponibili in pacchetti o possono essere automaticamente installati dalla collezione di port. Molti nuovi utenti si aspettano di trovare questo tipo di applicazioni nei loro desktop. Questo capitolo ti mostrerà come installare alcune popolari applicazioni desktop, sia dai package che dalla collezione dei port. Da notare che quando installiamo programmi dalla collezione dei port, questi sono compilati dai sorgenti. Questa operazione potrebbe durare molto tempo, dipende da cosa stai compilando e dalla potenza della tua macchina. Se per te compilare i sorgenti occupa un arco di tempo proibitivamente lungo, puoi installare la maggior parte dei programmi della collezione dei port da pacchetti precompilati. Visto che FreeBSD è compatibile con i binari di Linux, molte applicazione originariamente scritte per Linux sono disponibili per il tuo desktop. È fortemente raccomandata la lettura del prima di installare qualsiasi applicazione per Linux. La maggior parte dei port che sfruttano la compatibilità con Linux iniziano con linux-. Ricordatelo quando cerchi un port in particolare, per esempio con &man.whereis.1;. Nella parte seguente, si presuppone che tu abbia installato il supporto per la compatibilità con i binari di Linux prima di installare qualsiasi applicazione per Linux. Queste sono le categorie software trattate in questo capitolo: Browser (come ad es. Mozilla, - Netscape, + &netscape;, Opera) Produttività (come ad es. KOffice, AbiWord, The GIMP, OpenOffice.org) - Visualizzatori di documenti (come ad es. Acrobat - Reader, gv, + Visualizzatori di documenti (come ad es. + &acrobat.reader;, + gv, Xpdf, GQview) Finance (come ad es. GnuCash, Gnumeric, Abacus) Prima di leggere questo capitolo, dovresti: Essere in grado di installare altro software di terze parti (). Essere in grado di installare altro software per Linux (). Per informazioni su come avere un ambiente multimediale, leggi il . Se vuoi installare e usare l'e-mail, sono presenti riferimenti nel . Browser In FreeBSD non viene preinstallato nessun browser in particolare. Invece, la directory www della collezione dei port contiene molti browsers pronti per essere installati. Se non hai il tempo di compilare tutto (in alcuni casi potrebbe occupare molto tempo) molti di questi sono disponibili come package. KDE e anche GNOME hanno dei browsers HTML. Guarda la per avere informazioni su come installare questi ambienti desktop. Se stai cercando dei browser leggeri, dovresti controllare la collezione dei port per www/dillo, www/links, oppure www/w3m. Questa sezione riguarda le seguenti applicazioni: Nome dell'applicazione Livello di risorse necessarie Installazione dai port Principali dipendenze Mozilla pesante pesante Gtk+ - Netscape + &netscape; pesante leggero Compatibilità binaria con Linux Opera leggero leggero Versione FreeBSD: Nessuna. Versione per Linux: Compatibilità binaria con Linux e linux-openmotif Mozilla Mozilla Mozilla è probabilmente il browser più indicato per il tuo desktop FreeBSD. È moderno, stabile, e completamente supportato da FreeBSD. Tra le caratteristiche un motore di visualizzazione di pagine che segue completamente lo standard HTML. Ha inoltre un lettore di mail e news. Presenta anche un editor HTML se vuoi comporre della pagine web. Gli utenti di - Netscape riconosceranno + &netscape; riconosceranno le somiglianze con la suite Communicator in quanto basati sullo stesso codice. Su macchine lente, con una velocita di CPU minore di 233MHz o con meno di 64MB di RAM, Mozilla potrebbe utilizzare troppe risorse per essere eseguito al meglio. Potresti invece dare un'occhiata al browser Opera descritto poco più giù in questo capitolo. Se non puoi o non vuoi compilare Mozilla per qualsiasi ragione, il FreeBSD GNOME team l'ha già fatto per te. Devi solo installare il pacchetto dalla rete con: &prompt.root; pkg_add -r mozilla Se il pacchetto non è disponibile, e hai abbastanza tempo e spazio su disco, puoi prelevare i sorgenti di Mozilla, compilarli e installarli sul tuo sistema. Questo può essere fatto con: &prompt.root; cd /usr/ports/www/mozilla &prompt.root; make install clean Puoi assicurarti una corretta inizializzazione del port di Mozilla attraverso l'esecuzione dell'utility chrome registry setup con i privilegi di root. In ogni caso se vuoi prelevare alcuni add-ons come ad esempio gestori del mouse, dovresti eseguire Mozilla come root per installarli correttamente. Una volta completata l'installazione di Mozilla, non necessiti di essere ancora root. Puoi avviare Mozilla come browser digitando: &prompt.user; mozilla Puoi avviarlo direttamente come lettore di mail e news come mostrato qui sotto: &prompt.user; mozilla -mail Tom Rhodes Contributo di - Mozilla, Java, e Shockwave Flash + Mozilla, &java;, e ¯omedia; &flash; Installare Mozilla è semplice, ma sfortunatamente installare Mozilla con il - supporto per cose come java e - Shockwave Flash consuma sia spazio su disco che - tempo. + supporto per add-on come &java; e ¯omedia; &flash; + consuma sia spazio su disco che tempo. La prima cosa da fare è scaricare i files che verranno usati poi con Mozilla. Raggiungi con il tuo browser la pagina presente al seguente link e creati un account sul loro sito. Ricordati di salvare il nome utente e la password visto che potresti averne bisogno in fututo. Scarica una copia del file j2sdk-1_3_1-src.tar.gz e salvalo in /usr/ports/distfiles/ perchè il port non è in grado di prelevarlo automaticamente. Questo a causa delle limitazioni dovute alla licenza. Nel frattempo scarica il java environment da . Il file è j2sdk-1_3_1_08-linux-i586.bin ed è abbastanza grande (circa 25 megabyte!). Esattamente come prima, questo file deve essere salvato in /usr/ports/distfiles/. Alla fine scarica una copia del java patchkit da e salvalo nella directory /usr/ports/distfiles/. Installiamo il port java/jdk13 con il classico make install clean e dopo installiamo il port www/flashpluginwrapper. Questo port necessita di emulators/linux_base che è un port abbastanza grande. Anche se esistono altri plug-in - flash, questi hanno dato dei problemi + &flash;, questi hanno dato dei problemi e non hanno funzionato da me. Installa il port www/mozilla, se Mozilla non è ancora installato. - Ora copiamo il plug-in flash con: + Ora copiamo il plug-in &flash; + con: &prompt.root; cp /usr/local/lib/flash/libflashplayer.so \ /usr/X11R6/lib/browser_plugins/libflashplayer_linux.so &prompt.root; cp /usr/local/lib/flash/ShockwaveFlash.class \ /usr/X11R6/lib/browser_plugins/ Se si sta usando www/mozilla-devel, la directory di destinazione sarà differente. Ora aggiungere le seguenti righe all'inizio (ma ovviamante sotto #!/bin/sh) dello script di avvio di Mozilla: /usr/X11R6/bin/mozilla. LD_PRELOAD=/usr/local/lib/libflashplayer.so.1 export LD_PRELOAD Questo farà funzionare il plug-in di - flash. + &flash;. Ora avvia Mozilla solo con: &prompt.user; mozilla & Aprire il menu di opzioni About Plug-ins dal menù Help. Una lista con tutte i plug-in - disponibili dovrebbe apparire. java e - shockwave flash dovrebbero essere + disponibili dovrebbe apparire. &java; e + &shockwave; &flash; dovrebbero essere elencate. - Netscape + &netscape; Netscape Nella collezione dei port sono presenti diverse versioni - del browser Netscape. Sin dalla prima versione scritta per FreeBSD - Netscape contiene un grave bug di sicurezza, è fortemente + del browser &netscape;. Sin dalla prima versione scritta per FreeBSD + &netscape; contiene un grave bug di sicurezza, è fortemente scoraggiata l'installazione. Invece, puoi usare una versione più recente per Linux o per DIGITAL UNIX. - L'ultima release stabile del browser Netscape è - Netscape 7. Questa può essere + L'ultima release stabile del browser &netscape; è + &netscape; 7. Questa può essere installata dalla collezione dei port con: &prompt.root; cd /usr/ports/www/netscape7 &prompt.root; make install clean Ci sono delle versioni localizzate nelle categorie French, German, e Japanese. - Le versioni Netscape 4.x non sono + Le versioni &netscape; 4.x non sono raccomandate perchè non sono conformi agli standard attuali. - Tuttavia, Netscape 7.x + Tuttavia, &netscape; 7.x e le altre versioni più recenti sono disponibili solo per architetture i386. Opera Opera Opera è un browser molto veloce, pieno di funzionalità, e basato sugli standard attuali. È disponibile in due versioni: una nativa per FreeBSD e una che gira sotto emulazione Linux. Per tutte e due i casi È disponibile una versione gratuita che visualizza banner pubblicitari e una che è a pagamento. Puoi comprare una versione senza avvisi pubblicitari dal sito web di Opera. Questa è una release per Linux ma gira senza problemi anche sotto FreeBSD. Per navigare nel web con la versione per FreeBSD di Opera, installa il package: &prompt.root; pkg_add -r opera Alcuni siti FTP non hanno tutti i pacchetti, ma è possibile ottenere lo stesso risultato con la collezione dei port digitando: &prompt.root; cd /usr/port/www/opera &prompt.root; make install clean Per installare la versione Linux di Opera, sustituire linux-opera al posto di opera nell'esempio sopra. La versione Linux È utile in situazioni che richiedono l'uso di plug-ins che sono disponibili solo per Linux, come ad esempio Adobe - Acrobat Reader. In tutti gli altri casi, le versioni per - FreeBSD e Linux funzioneranno esattamente alla stessa + &acrobat.reader;. In tutti gli altri casi, le versioni + per FreeBSD e Linux funzioneranno esattamente alla stessa maniera. Produttività Quando si parla di produttività, i nuovi utenti spesso cercano un buon pacchetto office o un facile e completo editor di testi. Non ci sono applicativi di default, mentre alcuni ambienti desktop come KDE sono muniti di un pacchetto office. FreeBSD dispone di tutto ciò di cui hai necessità indipendentemente dal tuo ambiente desktop. Questa sezione riguarda le seguenti applicazioni: Nome dell'applicazione Livello di risorse necessarie Installazione dai port Principali dipendenze KOffice leggero pesante KDE AbiWord leggero leggero Gtk+ o GNOME The Gimp leggero pesante Gtk+ OpenOffice.org pesante molto pesante GCC 3.1, - JDK 1.3, + &jdk; 1.3, Mozilla KOffice KOffice suite per ufficio KOffice La comunità KDE distribuisce il suo ambiente desktop insieme a un pacchetto office che può essere usato all'esterno dell'ambiente KDE. Questo include le 4 principali componenti che sono presenti nelle altre principale suite di office. KWord è l'editor di testi, KSpread è il foglio di calcolo elettronico, KPresenter gestisce presentazioni a slide e Kontour ti permette di disegnare documenti grafici. Prima di installare l'ultima release di KOffice, assicurati di avere una versione aggiornata di KDE. Per installare KOffice come pacchetto, inserisci il seguente comando: &prompt.root; pkg_add -r koffice se il pacchetto non è disponibile puoi usare la collezione dei ports. Per esempio, per installare KOffice per KDE3, fai: &prompt.root; cd /usr/ports/editors/koffice-kde3 &prompt.root; make install clean AbiWord AbiWord AbiWord è un editor di testi - gratuito simile in aspetto e non solo a Microsoft + gratuito simile in aspetto e non solo a µsoft; Word. È adatto per la digitazione di documenti, lettere, reports, appunti e così via. È molto veloce, contiene molte funzioni, ed è molto facile da usare. AbiWord può importare ed esportare file di molti tipi, compreso alcuni formati proprietari come Microsoft .doc. AbiWord è disponibile come package. Puoi installarlo digitando: &prompt.root; pkg_add -r AbiWord-gnome Se il pacchetto non è disponibile puoi recuperarlo dalla collezione dei port. La collezione dei port dovrebbe essere molto più aggiornata. Puoi fare come segue: &prompt.root; cd /usr/ports/editors/AbiWord &prompt.root; make install clean The GIMP The GIMP Per il disegno o il ritocco delle immagini, The GIMP è un programa di manipolazione immagini molto sofisticato. Può essere usato come un semplice programma di disegno o come un programma di fotoritocco professionale. Supporta un grande numero di plug-in, funzioni e un'interfaccia di scripting. The GIMP può leggere e scrivere una enorme quantità di formati di file. Supporto di interfacce per scanner o tavolette. Puoi installare il pacchetto inserendo il seguente comando: &prompt.root; pkg_add -r gimp Se il tuo sito FTP non ha il pacchetto, puoi usare la collezione dei ports. La directory graphics della collezione dei ports contiene anche The Gimp Manual. È riportato qui di seguito come installarli: &prompt.root; cd /usr/ports/graphics/gimp1 &prompt.root; make install clean &prompt.root; cd /usr/ports/graphics/gimp-manual-pdf &prompt.root; make install clean La directorygraphics della collezione dei ports contiene la versione development di The GIMP in graphics/gimp-devel. - Le versioni in formato HTML e PostScript di + Le versioni in formato HTML e &postscript; di The Gimp Manual sono in graphics/gimp-manual-html e graphics/gimp-manual-ps. OpenOffice.org OpenOffice.org suite per ufficio OpenOffice.org OpenOffice.org unisce tutte le applicazioni necessarie in un completo pacchetto office di produttività personale: un editor di testi, un foglio di calcolo, un software per le presentazioni e uno di disegno. La sua interfaccia utente è molto simile alle altre suiti di office, può inoltre importare ed esportare file in diversi popolari formati. È disponibile in un gran numero di differenti lingue comprendenti interfaccia, correttore ortografico, e dizionario. L'editor di testi di OpenOffice.org usa come formato di file nativo il formato XML per incrementare la portabilità e la flessibilità. Il foglio di calcolo elettronico incorpora un linguaggio per le macro che può essere interfacciato con un database esterno. OpenOffice.org è stabile e - e gira nativamente sotto windows, Solaris, Linux, FreeBSD, e - Mac OS X. Altre informazioni riguardo + e gira nativamente sotto &windows;, &solaris;, Linux, FreeBSD, e + &macos; X. Altre informazioni riguardo OpenOffice.org possono essere trovate sul sito web di OpenOffice. Per informazioni specifiche su FreeBSD, e per scaricare direttamente i package usa il sito web del FreeBSD OpenOffice Porting Team. Per installare OpenOffice.org, do: &prompt.root; pkg_add -r openoffice Una volta installato il pacchetto, devi avviare il programma di setup e scegliere una . Eseguire questo comando come utente che userà OpenOffice.org OpenOffice.org: &prompt.user; openoffice-setup Se il pacchetto OpenOffice.org non è disponibile hai ancora la possibilità di compilare il port. Come sempre, devi tenere presente che necessiterai di molto spazio nel tuo hard disk e di molto tempo per la compilazione. &prompt.root; cd /usr/ports/editors/openoffice &prompt.root; make install clean Una volta installato il pacchetto, devi avviare il programma di setup di OpenOffice.org e scegliere con: &prompt.user; cd /usr/ports/editors/openoffice &prompt.user; make install-user Se vuoi usare una versione in una lingua differente qui di seguito - sono presenti i ports disponibili : + sono presenti i ports disponibili: + + + Lingua Port Arabo editors/openoffice-ar Coreano korean/openoffice Danese editors/openoffice-dk Francese french/openoffice Giapponese japanese/openoffice Greco editors/openoffice-gr Italiano editors/openoffice-it Olandese editors/openoffice-nl Polacco editors/openoffice-pl + role="package">polish/openoffice Portoghese portuguese/openoffice Russo russian/openoffice Spagnolo editors/openoffice-es Svedese editors/openoffice-se Tedesco german/openoffice Turco editors/openoffice-tr Document viewers Alcuni nuovi formati di documenti hanno recentemente guadagnato popolarità. I visualizzatori standard che richiedono potrebbero non essere inclusi nel sistema base. Vedremo come installarli in questa sezione. Questa sezione riguarda le seguenti applicazioni: Nome dell'applicazone Livello di risorse necessarie Installazione dai ports Maggiori dipendenze - Acrobat Reader + &acrobat.reader; leggero leggero Supporto per la compatibilità per i binari Linux gv leggero leggero Xaw3d Xpdf leggero leggero FreeType GQview leggero leggero Gtk+ o GNOME - Acrobat Reader + &acrobat.reader; Acrobat Reader PDF visualizzatore Molti documenti sono ora distribuiti come documenti in PDF, che stà per Portable Document Format. Uno dei visualizzatori raccomandati per files di questo tipo è - Acrobat Reader, rilasciato da Adobe + &acrobat.reader;, rilasciato da Adobe per Linux. Visto che FreeBSD può eseguire binari per Linux, è disponibile anche per FreeBSD. - Per installare il pacchetto Acrobat Reader + Per installare il pacchetto &acrobat.reader; 5 fare: &prompt.root; pkg_add -r acroread5 Come sempre se il pacchetto non è disponibilie o se vuoi l'ultima versione, anche puoi utilizzare la collezione dei ports: &prompt.root; cd /usr/ports/print/acroread5 &prompt.root; make install clean - Acrobat Reader è - disponibile in molte versioni differenti. Al momento della scrittura di - questo documento, sono presenti: - print/acroread (versione 3.0.2), - print/acroread4 (versione 4.0.5), e - print/acroread5 (versione 5.0.6). - Portebbeno non essere disponibili tutti i paccheti per la tua versione - di FreeBSD. La collezione dei ports conterrà in ogni caso - l'ultima versione. + + &acrobat.reader; è + disponibile in molte versioni differenti. Al momento della scrittura di + questo documento, sono presenti: + print/acroread (versione 3.0.2), + print/acroread4 (versione 4.0.5), + e print/acroread5 (versione + 5.0.6). + Portebbeno non essere disponibili tutti i paccheti per la tua versione + di FreeBSD. La collezione dei ports conterrà in ogni caso + l'ultima versione. gv gv PDF visualizzatore PostScript visualizzatore - gv è un visualizzatore per files - PostScript e PDF. Era origibariamente basato su + gv è un visualizzatore per file + &postscript; e PDF. Era origibariamente basato su ghostview ma ha un look più gradevole grazie alle librerie Xaw3d. È veloce e l'interfaccia è pulita. gv ha molte funzioni come: orientamento, dimensione del foglio, scala, o antialias. Molte possono essere esuguite sia dalla tastiera che dal mouse. Per installare gv come un pacchetto, fare: &prompt.root; pkg_add -r gv Se non puoi ricevere il pacchetto puoi utilizzare la collezione dei ports: &prompt.root; cd /usr/ports/print/gv &prompt.root; make install clean Xpdf Xpdf PDF visualizzatore Se vuoi un piccolo visualizzatore di PDF per FreeBSD, Xpdf è un leggero ed efficente visualizzatore. Ha bisogno di veramente poche risorse ed è molto stabile. Usa i font standard di X e non ha bisogno di - Motif o di altri toolkit di X. + &motif; o di altri toolkit di X. Per installare il pacchetto Xpdf inserire questo comando: &prompt.root; pkg_add -r xpdf Se il pacchetto non è disponibile o preferisci usare la collezione dei ports fai: &prompt.root; cd /usr/ports/graphics/xpdf &prompt.root; make install clean Una volta completata l'installazione, puoi avviare Xpdf e puoi usare il tasto destro del mouse per visualizzare il menù. GQview GQview GQview è un manager di immagini. Puoi visualizzare un file con un solo click, avviare un editor esterno, visualizzare l'anteprima e molto altro. Consente inoltre di visualizzare l'anteprima delle immagini come diapositive. Puoi gestire le tue collezioni di immagini e trovare facilmente i duplicati. GQview può lavorare in modalità full-screen e ha il supporto internazionale. Se vuoi installare il pacchetto GQviewfai: &prompt.root; pkg_add -r gqview Se il pacchetto non è disponibile o preferisci usare la collezione di port fai: &prompt.root; cd /usr/ports/graphics/gqview &prompt.root; make install clean Bilancio Se per qualsiasi ragione vorresti gestire il tuo bilancio personale sul tuo desktop FreeBSD, ci sono alcune applicazioni potenti e facili da usare pronti per essere installati. Alcuni di questi sono compatibili con i formati di file più utilizzati come ad esempio - i documenti di Quicken o + i documenti di Quicken o Excel. Questa sezione riguarda le seguenti applicazioni: Nome dell'applicazione Livello di risorse necessarie Installazione dai ports Maggiori dipendenze GnuCash leggero pesante GNOME Gnumeric leggero pesante GNOME Abacus leggero leggero Tcl/Tk GnuCash GnuCash GnuCash è prodotto dagli sforzi da parte degli sviluppatori di GNOME per mettere a disposizione degli utenti finali applicazioni facili da usare e potenti. Con GnuCash, puoi tenere traccie delle tue spese e dei tuoi guadagni, del conto bancario, o della tua attività. Dispone di una interfaccia intuitiva pur rimanendo molto professionale. GnuCash Dispone di un ottimo registro, un sistema di accounts gerarchico, molte combinazioni di scelta rapida e tecniche di autocompletamento. Può dividere una transazione singola in molte parti più dettagliate. GnuCash può importare e unire i file QIF di Quicken. Gestisce inoltre diversi formati esteri di valuta e data. Per installare GnuCash nel tuo sistema, fai: &prompt.root; pkg_add -r gnucash Se il pacchetto non è disponibile, puoi usare la collezione dei ports: &prompt.root; cd /usr/ports/finance/gnucash &prompt.root; make install clean Gnumeric Gnumeric foglio di calcolo Gnumeric Gnumeric è un foglio di calcolo elettronico, fa parte dell'ambiente desktop GNOME. Dispone di molti automatismi utili, aucompletamento in base al formato della cella e un sistema di formattazione automatica per molte operazioni. Può esportare i files in un gran numero di formati popolari come quelli di Excel, Lotus 1-2-3, o Quattro Pro. Gnumeric supporta l'utilizzo di grafici attraverso il programma di grafica math/guppi. Ha un gran numero di funzioni e permette l'utilizzo di celle formattate come ad esempio nel formato data, valuta, numero, ora, e molti altri. Per installare Gnumeric come un un pacchetto, digitare: &prompt.root; pkg_add -r gnumeric Se il pacchetto non risulta disponibile puoi usare la collezione dei ports con: &prompt.root; cd /usr/ports/math/gnumeric &prompt.root; make install clean Abacus Abacus foglio di calcolo Abacus Abacus è un foglio di calcolo leggero e facile da usare. Include molte funzioni utili in molti campi diversi come ad esempio in statistica, finanza, e matematica. Può importare ed esportare i file in formato Excel. Abacus - può esportare anche in formato PostScript. + può esportare anche in formato &postscript;. Per installare Abacus dal pacchetto digitare: &prompt.root; pkg_add -r abacus Se il pacchetto non è disponibile puoi utilizzare la collezione dei ports digitando: &prompt.root; cd /usr/ports/deskutils/abacus &prompt.root; make install clean Sommario Anche se FreeBSD è molto popolare tra gli ISP per le sue performance e la sua stabilità, FreeBSD è completamente pronto ad essere usato come desktop per l'utilizzo quotidiano. Con diverse migliaia di applicazioni disponibili sotto forma di pacchetti o ports, puoi avere un desktop perfetto che soddisfi tutte le tue necessità. Una volta completata l'installazione del tuo desktop, potresti volere fare un passo in più con misc/instant-workstation. Questo meta-port ti permette di creare un insieme tipico di di ports per una workstation. Puoi personalizzarlo editando il file /usr/ports/misc/instant-workstation/Makefile. Segui la sintassi di default per aggiungere o rimuovere ports, e poi utilizza la procedura indicata per creare l'insieme. Così facendo sarai capace di creare un grosso pacchetto che corrisponde al tuo desktop personale e di installarlo nelle altre workstation! Qui di seguito un piccolo riassunto delle applicazioni trattate in questo capitolo: Nome dell'applicazione Nome del pacchetto Nome del ports Mozilla mozilla www/mozilla - Netscape + &netscape; linux-netscape7 www/linux-netscape7 Opera linux-opera www/linux-opera KOffice koffice-kde3 editors/koffice-kde3 AbiWord AbiWord-gnome editors/AbiWord The GIMP gimp graphics/gimp1 OpenOffice.org openoffice editors/openoffice - Acrobat Reader + &acrobat.reader; acroread5 print/acroread5 gv gv print/gv Xpdf xpdf graphics/xpdf GQview gqview graphics/gqview GnuCash gnucash finance/gnucash Gnumeric gnumeric math/gnumeric Abacus abacus deskutils/abacus diff --git a/it_IT.ISO8859-15/books/handbook/eresources/chapter.sgml b/it_IT.ISO8859-15/books/handbook/eresources/chapter.sgml index 198d1c4435..fcfb0d4d19 100644 --- a/it_IT.ISO8859-15/books/handbook/eresources/chapter.sgml +++ b/it_IT.ISO8859-15/books/handbook/eresources/chapter.sgml @@ -1,2147 +1,1671 @@ Risorse su Internet Il rapido sviluppo di FreeBSD rende la carta stampata un mezzo non pratico per poterne seguire l'evoluzione. Le risorse in rete sono il migliore, se non l'unico, modo per tenersi informati sulle novità di questo sistema. Dal momento che FreeBSD è il prodotto del lavoro di volontari, la comunità degli utenti generalmente si presta anche ad una funzione di supporto tecnico di varia natura, con l'email e le news USENET come il mezzo più efficace per entrare in contatto con queste comunità. I più frequentati punti di ritrovo della comunità FreeBSD sono esposti di seguito. Se aveste conoscenza di altre risorse non menzionate in questa sede, vi preghiamo di darne informazione a &a.doc; cosicchè possano essere incluse. Mailing Lists Anche se molti sviluppatori di FreeBSD leggono USENET, non può esservi garanzia di ottenere risposta alle proprie domande in tempi brevi (e in generale non può esservi garanzia di ottenere alcuna risposta) semplicemente scrivendo ad uno dei mail-group di comp.unix.bsd.freebsd.*. Indirizzando i propri messaggi alla mailing list appropriata si raggiungerà una audience più concentrata ed informata, permettendo risposte più precise (o quanto meno più sollecite). Gli argomenti delle varie liste sono elencati all'inizio del documento. Si prega di leggere gli argomenti prima di unirsi o scrivere ad una lista. La maggior parte dei sottoscrittori di liste ricevono ogni giorno svariate centinaia di messaggi, e mantenendo argomenti e regole di comportamento cerchiamo di tenere alto il rapporto segnale/rumore della lista. Venir meno a queste regole vorrebbe dire il fallimento della mailing list come mezzo efficace di comunicazione per il progetto. Vengono tenuti archivi per tutte le mailing list, e questi possono essere esplorati usando il FreeBSD World Wide Web server. L'archivio esplorabile per parole chiave costituisce un mezzo eccellente per trovare risposte a domande poste di frequente e dovrebbe essere consultato prima di spedire una domanda. Sommario delle liste Liste generiche: Le seguenti sono liste generiche a cui tutti sono invitati (e incoraggiati) a partecipare: Lista Argomento &a.cvsall.name; Cambiamenti apportati all'albero dei sorgenti di FreeBSD &a.advocacy.name; Evangelismo FreeBSD &a.announce.name; Eventi importanti e annunci di progetti &a.arch.name; Discussioni sull'architettura ed il design &a.bugbusters.name; Discussioni incentrate sul mantenimento del database dei report dei problemi di FreeBSD e progetti correlati &a.bugs.name; Report sui bug &a.chat.name; Argomenti non-tecnici di interesse della comunità FreeBSD &a.config.name; Sviluppo del processo di installazione e configurazione di FreeBSD &a.current.name; Discussioni sull'utilizzo di &os.current; &a.isp.name; Argomenti di interesse degli Internet Service Providers che usano FreeBSD &a.jobs.name; Opportunità di lavoro e consulenza relative a FreeBSD &a.newbies.name; Discussioni ed attività dei nuovi utenti FreeBSD &a.policy.name; Le decisioni sulla politica da adottare del core degli sviluppatori FreeBSD. Toni pacati e sola lettura &a.questions.name; Domande degli utenti e assistenza tecnica &a.security-notifications.name; Notifiche sulla sicurezza &a.stable.name; Discussioni sull'uso di &os.stable; &a.test.name; Dove spedire i tuoi messaggi di test, lasciando in pace le altre liste Liste tecniche: le seguenti liste sono a carattere tecnico. Dovreste leggere attentamente gli argomenti elencati di seguito prima di unirvi o spedirvi mail, poichè ci sono strette linee di condotta per il loro uso ed il loro contenuto. Lista Argomento &a.afs.name; Il porting di AFS su FreeBSD &a.aic7xxx.name; - Sviluppare drivers per Adaptec AIC 7xxx + Sviluppare drivers per &adaptec; AIC 7xxx &a.alpha.name; Il porting di FreeBSD su Alpha - - - - &a.amd64.name; + + + + &a.amd64.name; - Il porting di FreeBSD sui sistemi AMD64 + Il porting di FreeBSD sui sistemi AMD64 &a.arm.name; - Il porting di FreeBSD su processori ARM + Il porting di FreeBSD su processori &arm; &a.atm.name; Usare reti ATM con FreeBSD &a.audit.name; Il progetto di audit del codice sorgente &a.binup.name; Il design e lo sviluppo del sistema di aggiornamento dei binari &a.cluster.name; Usare FreeBSD in cluster &a.cvsweb.name; Il mantenimento di CVSweb &a.database.name; Discussioni sull'uso e lo sviluppo di database sotto FreeBSD &a.doc.name; Creare documenti su FreeBSD &a.emulation.name; L'emulazione di altri sistemi operativi come - Linux/DOS/Windows + Linux/DOS/&windows; &a.firewire.name; - Discussioni tecniche sui FreeBSD Firewire + Discussioni tecniche sui FreeBSD &firewire; (iLink, IEEE 1394) &a.fs.name; I file system &a.gnome.name; Il porting di GNOME e delle applicazioni GNOME &a.hackers.name; Discussioni tecniche generiche &a.hardware.name; Discussioni tecniche generiche sull'hardware e FreeBSD &a.i18n.name; L'internazionalizzazione di FreeBSD &a.ia32.name; - FreeBSD sulla piattaforma IA-32 (Intel x86) + FreeBSD sulla piattaforma IA-32 (&intel; x86) &a.ia64.name; Il porting di FreeBSD ai futuri sistemi Intel IA64 &a.ipfw.name; Discussioni tecniche sul redesign del codice del firewall &a.isdn.name; Sviluppatori ISDN &a.java.name; - Sviluppatori Java e sviluppatori coinvolti nel porting - della JDK sotto FreeBSD + Sviluppatori &java; e persone coinvolte nel port + delle &jdk; sotto FreeBSD &a.kde.name; Il porting di KDE e delle applicazioni KDE &a.lfs.name; Il porting di LFS sotto FreeBSD &a.libh.name; Il sistema di installazione e di gestione dei pacchetti di seconda generazione &a.mips.name; - Il porting di FreeBSD su MIPS + Il porting di FreeBSD su &mips; &a.mobile.name; Discussioni sui portatili &a.mozilla.name; Il porting di Mozilla sotto FreeBSD &a.multimedia.name; Applicazioni multimediali &a.newbus.name; Discussioni tecniche sull'architettura bus &a.net.name; Discussione sul networking e codice sorgente TCP/IP &a.openoffice.name; Il porting di OpenOffice.org e - StarOffice su FreeBSD + &staroffice; su FreeBSD &a.performance.name; Questioni relative alla calibrazione delle prestazioni per installazioni a ad alta performance o carico elevato &a.platforms.name; Riguardo al porting di FreeBSD su architetture non Intel &a.ports.name; Discussione sulla collezione dei port &a.ports-bugs.name; Discussione sui bug/PR relativi ai port &a.ppc.name; - Il porting di FreeBSD su PowerPC + Il porting di FreeBSD su &powerpc; &a.qa.name; Discussione su certificati di qualità, solitamente sotto una release &a.realtime.name; Sviluppo di estensioni realtime su FreeBSD &a.scsi.name; Il sottosistema SCSI &a.security.name; Questioni relative alla sicurezza di FreeBSD &a.small.name; L'uso di FreeBSD in applicazioni embedded &a.smp.name; Discussioni di design per sistemi a multiprocessore [a]simmetrico &a.sparc.name; - Il porting di FreeBSD su architetture SPARC + Il porting di FreeBSD su architetture &sparc; &a.standards.name; - La coerenza di FreeBSD agli standards C99 e POSIX + La coerenza di FreeBSD agli standards C99 e &posix; &a.testing.name; Test di stabilitą e performance di FreeBSD &a.threads.name; Threading in FreeBSD &a.tokenring.name; Supporto per il token-ring in FreeBSD + + + &a.x11.name; + + Mantenimento e supporto di X11 su FreeBSD + Liste limitate: Le seguenti liste sono adatte ad un audience più specializzata (ed esigente) e probabilmente non sono di interesse del pubblico generico. È inoltre buona norma frequentare le liste tecniche prima di unirsi ad una di queste liste così da comprendere l'etichetta di comunicazione richiesta. Lista Argomento &a.hubs.name; Per coloro che gestiscono mirrors (supporto infrastrutturale) &a.usergroups.name; Coordinamento dei gruppi utenti &a.vendors.name; Coordinamento dei venditori pre-release &a.www.name; Coloro che mantengono il sito www.FreeBSD.org Liste digest: Tutte le liste sopracitate sono anche consultabili come digest. Una volta iscritto a una lista, puoi cambiare le tue opzioni digest nella sezione delle opzioni del tuo account. Liste CVS: Le liste seguenti sono per le persone interessate a vedere i messaggi di log delle modifiche alle varie aree dell'albero dei sorgenti. Sono liste a Sola Lettura e non si dovrebbero inviare messaggi ad esse. Lista Area dei sorgenti Descrizione dell'area &a.cvsall.name; /usr/(CVSROOT|doc|ports|projects|src) Tutte le modifiche in ogni parte dell'albero (unione di tutte le altre liste di commit cvs) &a.cvs-doc.name; /usr/doc Tutte le modifiche all'albero doc &a.cvs-ports.name; /usr/ports Tutte le modifiche all'albero ports &a.cvs-projects.name; /usr/projects Tutte le modifiche all'albero projects &a.cvs-src.name; /usr/src Tutte le modifiche all'albero src Come iscriversi Per iscriverti ad una lista, clicca sul nome della lista qui sopra o vai su &a.mailman.lists.link; e clicca sulla lista a cui sei interessato. La pagina delle liste dovrebbe contenere tutte le informazioni necessarie all'iscrizione. Per mandare un messaggio ad una lista basta inviare una mail a <listname@FreeBSD.org>. Sarà poi redisribuita a tutti i membri della lista. Per disiscriverti da una lista, clicca sull'URL che trovi in fondo a ogni email ricevuta dalla lista. È anche possibile inviare un'email a <freebsd-listname-unsubscribe@FreeBSD.org> per disiscriverti. A costo di ripeterci, vorremmo che i membri della lista tecnica tenessero la discussione su un tono tecnico. Se sei solo interessato ad annunci importanti, allora è preferibile che ti iscrivi alla &a.announce;, creata apposta per traffico non frequente. Argomenti delle liste Tutte le mailing list FreeBSD hanno alcune regole base che tutti gli utenti devono seguire. La mancata aderenza a queste regole comporterà due (2) avvisi scritti dal PostMaster FreeBSD postmaster@FreeBSD.org, dopo dei quali, ad una terza trasgressione, il membro sarà espulso da tutte le mailing list di FreeBSD e gli sarà impedita qualsiasi futura iscrizione. Siamo mortificati del fatto che queste regole e misure siano necessarie, ma al giorno d'oggi Internet è diventato, a quanto pare, un'ambiente alquanto disordinato, e molti paiono scordarsi di quanto siano fragili alcuni suoi meccanismi. Regole della strada: L'argomento di ogni messaaggio dovrebbe aderire all'argomento della lista a cui è inviato, ad esempio se la lista è a carattere tecnico, i vostri messaggi dovrebbero contenere discussioni tecniche. Chiacchiericci continui ed irrilevanti vanno a discapito del valore della lista per tutti i suoi membri e non saranno tollerati. Per discussioni libere senza restrizioni sull'argomento, la &a.chat; è liberamente fruibile e dovrebbe essere usata per questo. Non bisognerebbe scrivere a più di due mailing list, ed anche a due solo e soltanto se un motivo reale e concreto esiste. Per molte liste, esiste già un grande traffico di messaggi che si sovrappongono ed eccetto per i mix più esoterici (ad esempio -stable & -scsi), non c'è alcun motivo di scrivere a più di una lista alla volta. Se un messaggio è inviato in modo tale che molte mailing list appaiono nella linea Cc, allora la linea Cc dovrebbe essere suddivisa prima di inviare nuovi messaggi. Voi siete del tutto responsabili per i vostri messaggi inviati in modo errato, non importa di chi sia la causa. Attacchi personali ed insulti (nel contesto di una discussione) non sono permessi, e questa regola comprende membri e sviluppatori. Gravi violazioni della netiquette, come citare o inviare messaggi altrui quando il permesso a farlo non c'era e non sarebbe giunto sono altamente disapprovate ma non sanzionate direttamente. Comunque, ci sono pochissimi casi in cui questi messaggi sarebbero pertinenti all'argomento della lista, quindi tali comportamenti probabilmente otterrebbero un avviso (o un espulsione) del Postmaster, solo per quel motivo. Pubblicità di prodotti non-FreeBSD è altamente proibita e comportertà un'espulsione immediata se è chiaro che il trasgressore sta inviando pubblicità spam. Argomenti delle singole liste: &a.afs.name; Andrew File System Questa è la lista per le discussioni sul porting e l'uso dell' AFS da CMU/Transarc. &a.announce.name; Eventi importanti/pietre miliari Questa è la mailing list per le persone interessate soltanto in annunci occasionali di eventi significativi riguardanti FreeBSD. Contiene annunci riguardo snapshots e altre release. Contiene annunci su nuove potenzialità di FreeBSD. Può contenere richieste di volontari etc. È una mailing list dal poco traffico, strettamente regolata. &a.arch.name; Discussione sull'architettura e la progettazione Questa lista è per la discussione dell'architettura FreeBSD. I messaggi saranno mantenuti strettamente tecnici di natura. Esempi di possibili argomenti: Come modificare il processo di build per avere molti build personalizzati in funzione allo stesso tempo. Cosa deve essere modificato nel VFS per far funzionare i layers Heimann. Come modificare l'interfaccia dei device driver per poter usare gli stessi driver senza problemi su molti buses e architetture. Come scrivere un driver di rete. &a.audit.name; Progetto di audit del sorgente Questa è la mailing list per il progetto di audit del codice FreeBSD. Anche se in origine era intesa per cambiamenti relativi alla sicurezza, le sue caratteristiche sono state estese per includere ogni cambiamento al codice. Questa lista è piena di discussioni di patch, e probabilmente di non grandissimo interesse per l'utente medio FreeBSD. Discussioni sulla sicurezza non relative ad una particolare modifica del codice si tengono in FreeBSD-security. Nel frattempo tutti gli svilupatori sono incoraggiati a spedire le proprie patch a questa lista per correzioni, specialmente se toccano parte del sistema dove un bug può influenzare negativamente l'integrità del sistema. &a.binup.name; Aggiornamento dei binari FreeBSD Questa lista esiste per fornire un terreno di discussione per il sistema di aggiornamento dei binari, o binup. Sono consentite questioni di design, dettagli di implementazione, patch, report di bug, report di status, richieste di feature, log delle modifiche, e tutto ciò che riguardi binup. &a.bugbusters.name; Coordinamento dello sforzo di gestione dei Problem Report Lo scopo di questa lista è di servire come forum di coordinamento e discussione per il Bugmeister, i suoi Bugbuster, e ogni altra parte che abbia un genuino interesse nel database PR. Questa lista non è per la discussione di bug specifici, patch, o PR. &a.bugs.name; Report di bug Questa è la lista per i report dei bug di FreeBSD. Quando possibile, i bug dovrebbero essere indicati usando il comando &man.send-pr.1; o tramite la sua interfaccia WEB. &a.chat.name; Argomenti non tecnici relativi alla comunità FreeBSD Questa lista contiene ciò che resta dalle altre liste riguardo ad informazioni non tecniche, sociali. Include discussioni sul fatto che Jordan sembri o meno un toon ferret, se scrivere o meno in maiuscolo, chi sta bevendo troppo caffè, dove spillano la migliore birra, chi spilla birra in cantina, e così via. Annunci occasionali di eventi importanti (party a venire, celebrazioni di matrimoni, nascite, nuovi lavori etc.) possono essere fatti alle liste non tecniche, ma i suddetti argomenti dovrebbero essere diretti a questa lista. &a.core.name; Il core team di FreeBSD Questa è una lista interna ad uso dei membri core. Messaggi possono esservi spediti quando una seria questione relativa a FreeBSD richiede un arbitrato da un alto scrutinio. &a.current.name; Discussioni sull'uso di &os.current; Questa è la mailing list di discussione di &os.current;. Contiene avvertimenti su nuove features in arrivo in -CURRENT che toccheranno gli utenti, ed istruzioni su passi che devono restare -CURRENT. Chiunque usi CURRENT deve sottoscrivere questa lista. È una mailing list tecnica per la quale ci si attende materiale strettamente tecnico. &a.cvsweb.name; Progetto CVSweb di FreeBSD Discussioni tecniche sull'uso, sviluppo e mantenimento di FreeBSD-CVSweb &a.doc.name; Progetto di documentazione Questa mailing list è per la discussione di argomenti e progetti riguardanti la creazione della documentazione FreeBSD. I membri di questa mailing list sono noti in genere come The FreeBSD Documentation Project. È una lista aperta, sentitevi liberi di unirla e contribuirvi. &a.firewire.name; - Firewire (iLink, IEEE 1394) + &firewire; (iLink, IEEE 1394) Questa è la mailing list per la discussione del - design e l'implementazione di un sottosistema Firewire + design e l'implementazione di un sottosistema &firewire; (anche noto come IEEE 1394 o iLink) per FreeBSD. Argomenti rilevanti includono nello specifico gli standards, i bus devices, i loro protocolli, insiemi di adapter boards/cards/chips, e l'architettura e implementazione del codice per il loro pieno supporto. &a.fs.name; File system Discussioni riguardanti i file system FreeBSD. Questa è una lista dalle caratteristiche tecniche per la quale ci si attende contenuto strettamente tecnico. &a.gnome.name; GNOME Discussioni riguardanti The Gnome Desktop Environment per sistemi FreeBSD. Questa è una mailing list tecnica per la quale ci si attende materiale strettamente tecnico. &a.ipfw.name; Firewall IP Questo è il forum di discussione riguardante il redesign del codice IP firewall di FreeBSD. Questa è una mailing list tecnica per la quale ci si attende materiale strettamente tecnico. &a.ia64.name; Il porting di FreeBSD su IA64 Questa è una mailing list tecnica per individui impegnati attivamente nel porting di FreeBSD alla piattaforma IA-64 dall'Intel, nel sollevare problemi e nel proporre soluzioni. Individui interessati nel seguire le discussioni tecniche sono comunque benvenuti. &a.isdn.name; Sistema di comunicazione ISDN Questa è la mailing list per le persone che discutono lo sviluppo del supporto ISDN per FreeBSD. &a.java.name; - Sviluppo Java + Sviluppo &java; Questa è la mailing list per le persone impegnate - nello sviluppo di applicazioni significative per FreeBSD ed il - porting ed il mantenimento delle JDKs. + nello sviluppo di applicazioni &java; significative per FreeBSD + ed il porting ed il mantenimento delle &jdk;. &a.kde.name; KDE Discussioni concernenti KDE su sistemi FreeBSD. È una mailing list a carattere tecnico per la quale ci si attende materiale strettamente tecnico. &a.hackers.name; Discussioni tecniche Questo è un forum per discussioni tecniche relative a FreeBSD. Questa è la mailing list tecnica principale. È per individui che lavorano attivamente a FreeBSD per sollevare problemi o discutere soluzioni alternative. Individui interessati nel seguire le discussioni tecniche sono comunque benvenuti. È una mailing list tecnica per la quale ci si attende contenuto strettamente tecnico. &a.hardware.name; Discussione generale sull'hardware e FreeBSD Discussione generica sui vari tipi di hardware che FreeBSD supporta, vari problemi e suggerimenti riguardo a cosa convenga acquistare e cosa evitare. &a.hubs.name; Siti mirror Annunci e discussioni per persone che mantengono siti mirror FreeBSD. &a.isp.name; Questioni riguardanti gli Internet Service Provider Questa mailing list è per la discussione di argomenti riguardanti gli Internet Service Provider (ISP) che usano FreeBSD. È una mailing list tecnica per a quale ci si attende materiale strettamente tecnico. &a.newbies.name; Discussioni sulle attività dei nuovi adepti Copriamo ogni attività riguardante i nuovi utenti che non sia coperta altrove, inclusi: tecniche di apprendimento e soluzione dei problemi indipendenti, la ricerca e l'uso di risorse in rete e la richiesta di aiuto ad altri utenti, come usare mailing list e quali liste usare, chat generiche, gli errori, i pregi, la condivisione di idee, storie, supporto morale (ma non tecnico), e prendere parte attiva nella comunità FreeBSD. Prendiamo i nostri problemi e le richieste di supporto a freebsd-questions, e usiamo freebsd-newbies per incontrare altra gente che sia impegnata nelle stesse attività in quanto nuovo utente. &a.openoffice.name; OpenOffice.org Questione concernenti il porting ed il mantenimento di OpenOffice.org e - StarOffice. + &staroffice;. &a.performance.name; Discussioni riguardo la calibrazione o la velocizzazione di FreeBSD Questa mailing list esiste per procurare ad hackers, amministratori di sistema, e/o parti interessate un luogo dove discutere argomenti legati alla performance di FreeBSD. Argomenti accettabili includono installazioni di FreeBSD ad alto carico, con problemi di performance o che stanno spingendo ai limiti delle sue possibilità FreeBSD. Le parti interessate che sono disposte a lavorare per un miglioramento delle prestazioni di FreeBSD sono altamente incoraggiate a sottoscrivere questa lista. Questa è una lista estremamente tecnica, idealmente adatta per utenti FreeBSD esperti, hackers o amministratori intenzionati a mantenere FreeBSD veloce, robusto e scalabile. Questa lista non è una lista domanda-e-risposta che sostituisce l'uso della documentazione, quanto piuttosto un luogo dove apportare i propri contributi o porre domande che non hanno avuto risposta altrove riguardo a tematiche di prestazione. &a.platforms.name; Il porting sulle piattaforme non Intel Questione concernenti FreeBSD fra le varie piattaforme, discussioni generiche e proposte per ports ad architetture non Intel. È una maliling list tecnica per la quale ci si attende materiale strettamente tecnico. &a.policy.name; Le decisioni della politica del Core Team Questa è una mailing list a scarso traffico, di sola lettura, per le decisioni politiche del Core Team. &a.ports.name; Discussioni sui port Discussioni riguardanti la collezione dei port di FreeBSD (/usr/ports), l'infrastruttura dei port, e sforzi generali per la coordinazione dei port. È una mailing list a carattere tecnico per la quale ci si attende materiale strettamente tecnico. &a.ports-bugs.name; Discussione dei bug dei port Discussioni concernenti report di problemi sulla collezione dei port di FreeBSD (/usr/ports), proposte di nuovi port, o modifiche ai port. È una mailing list a carattere tecnico per la quale ci si attende materiale strettamente tecnico. &a.questions.name; Domande degli utenti Questa è una mailing list per domande riguardanti FreeBSD. Non dovreste porre domande del tipo how to alle liste tecniche a meno che stiate considerando le questioni come molto tecniche. &a.scsi.name; Sottosistema SCSI Questa è la mailing list per le persone impegnate nel sottosistema SCSI di FreeBSD. È una mailing list tecnica per la quale ci si attende materiale strettamente tecnico. &a.security.name; Questioni di sicurezza Argomenti relativi alla sicurezza dei sistemi FreeBSD (DES, Kerberos, buchi di sicurezza noti e fixes, etc.). Questa è una mailing list tecnica per la quale ci si attende materiale strettamente tecnico. Notate che questa non è una lista domanda e risposta, ma che i contributi (SIA domande SIA risposte) alle FAQ sono benvenute. &a.security-notifications.name; Notifiche riguardanti la sicurezza Notifiche riguardanti problemi di sicurezza di FreeBSD e fix. Non è una lista di discussione. La relativa lista di discussione è FreeBSD-security. &a.small.name; Utilizzo di FreeBSD in applicazioni embedded Questa lista discute argomenti relativi ad installazioni di FreeBSD su macchine dalle risorse estremamente limitate e sistemi embedded. &a.stable.name; Discussioni riguardo l'uso di &os.stable; Questa è la mailing list degli utenti di &os.stable;. Include avvertimenti su nuove caratteristiche in arrivo nella -STABLE che toccheranno gli utenti, e istruzioni sui passi da compiere per tenere aggiornata la -STABLE. Chiunque usi la STABLE dovrebbe sottoscrivere questa lista. È una lista di carattere tecnico per la quale ci si attende materiale strettamente tecnico. &a.standards.name; Rispetto degli standards C99 & POSIX Questo è un forum di discussioni tecniche relative al rispetto degli standards C99 e POSIX da parte di FreeBSD. &a.usergroups.name; Lista di coordinamento dei gruppi utenti Questa è la mailing list per i coordinatori di ogni Gruppo Utenti locale, in cui discutere questioni fra di loro e un membro designato del Core Team. Questa mailing list dovrebbe essere limitata a discussioni su meeting e coordinamento di progetti che riguardano molti Gruppi Utenti. &a.vendors.name; I venditori Discussioni di coordinamento fra il FreeBSD Project e venditori di software e hardware per FreeBSD. - - Filtraggio sulle mailing list - + + Filtraggio sulle Mailing List + Le mailing list di &os; sono filtrate in molti modi per evitare la distribuzione di spam, virus, e altre email non volute. Le azioni di filtraggio descritte in questa sezione non includono tutte quelle usate - per proteggere le mailing list. - + per proteggere le mailing list. + Solo certi tipi di allegati sono ammessi sulle mailing list. Tutti gli allegati con un tipo di contenuto MIME non presente nella lista seguente saranno eliminati prima che l'email sia distribuita sulla - mailing list. - - - - application/octet-stream - - - - application/pdf - - - - application/pgp-signature - - - - application/x-pkcs7-signature - - - - message/rfc822 - - - - multipart/alternative - - - - multipart/related - - - - multipart/signed - - - - text/html - - - - text/plain - - - - text/x-patch - - - - + mailing list. + + + + application/octet-stream + + + + application/pdf + + + + application/pgp-signature + + + + application/x-pkcs7-signature + + + + message/rfc822 + + + + multipart/alternative + + + + multipart/related + + + + multipart/signed + + + + text/html + + + + text/plain + + + + text/x-diff + + + + text/x-patch + + + + Alcune mailing list potrebbero ammettere allegati di altri tipi di contenuto MIME, ma la lista qui sopra dovrebbe essere corretta per - la maggior parte delle mailing list. - - - Se un'email contiene sia una versione HTML che una versione testo, + la maggior parte delle mailing list. + + + Se un'email contiene sia una versione HTML che una versione testo, quella HTML verrà rimossa. Se un'email contiene solo una - versione HTML, sarà convertita in semplice testo. - + versione HTML, sarà convertita in semplice testo. + Newsgroup Usenet Oltre ai due newsgroup specificamente designati per FreeBSD, ve ne sono molti altri in cui FreeBSD è discusso o che sono comunque rilevanti per gli utenti FreeBSD. Sono disponibili degli archivi interrogabili attraverso parole chiave su questi newsgroup per gentile concessione di Warren Toomey wkt@cs.adfa.edu.au. Newsgroup specifici BSD comp.unix.bsd.freebsd.announce comp.unix.bsd.freebsd.misc de.comp.os.unix.bsd (Tedesco) fr.comp.os.bsd (Francese) - Altri newsgroup Unix di interesse + Altri newsgroup &unix; di interesse comp.unix comp.unix.questions comp.unix.admin comp.unix.programmer comp.unix.shell comp.unix.user-friendly comp.security.unix comp.sources.unix comp.unix.advocacy comp.unix.misc comp.bugs.4bsd comp.bugs.4bsd.ucb-fixes comp.unix.bsd X Windows System comp.windows.x.i386unix comp.windows.x comp.windows.x.apps comp.windows.x.announce comp.windows.x.intrinsics comp.windows.x.motif comp.windows.x.pex comp.emulators.ms-windows.wine Server World Wide Web - - - — Server - Centrale. - - - - — - Armenia. - - - - — - Australia/1. - - - - — - Australia/2. - - - - — - Australia/3. - - - - — - Australia/4. - - - - — - Australia/5. - - - - — - Australia/6. - - - - — - Australia/7. - - - - — - Austria. - - - - — - Austria/2. - - - - — - Belgio. - - - - - — Brasile/1. - - - - - — Brasile/2. - - - - — - Brasile/3. - - - - — - Bulgaria. - - - - — - Canada. - - - - — - Cina. - - - - — - Corea/1. - - - - — - Corea/2. - - - - — - Corea/3. - - - - — - Danimarca. - - - - — - Danimarca/3. - - - - — - Estonia. - - - - — - Filippine. - - - - — - Finlandia. - - - - — - Finlandia/2. - - - - — - Francia. - - - - — - Germania/1. - - - - — - Germania/2. - - - - — - Germania/3. - - - - - — Giappone. - - - - — - Grecia. - - - - — - Hong Kong. - - - - — - Irlanda. - - - - — - Irlanda/2. - - - - — - Islanda. - - - - — - Israele. - - - - — - Italia. - - - - - — Italia/2. - - - - — - Lettonia. - - - - — - Lituania. - - - - — - Malesia. - - - - — - Norvegia. - - - - — - Norvegia/2. - - - - — - Nuova Zelanda. - - - - — - Olanda/1. - - - - — - Olanda/2. - - - - — - Polonia/1. - - - - — - Polonia/2. - - - - — - Portogallo/2. - - - - — - Portogallo/3. - - - - — - Portogallo/4. - - - - — - Regno Unito/1. - - - - — - Regno Unito/2. - - - - — - Regno Unito/3. - - - - — - Regno Unito/4. - - - - — - Repubblica Ceca. - - - - — - Repubblica Slovacca. - - - - — - Repubblica Slovacca/2. - - - - — - Romania. - - - - — - Romania/2. - - - - — - Romania/3. - - - - — - Romania/4. - - - - — - Russia/1. - - - - — - Russia/2. - - - - — - Russia/3. - - - - — - Russia/4. - - - - — - San Marino. - - - - — - Singapore. - - - - — - Singapore/2. - - - - — - Slovenia. - - - - — - Slovenia/2. - - - - — - Spagna. - - - - — - Spagna/2. - - - - — - Spagna/3. - - - - — - Sud Africa/1. - - - - — - Sud Africa/2. - - - - — - Svezia. - - - - — - Svezia/2. - - - - — - Svizzera. - - - - — - Svizzera/2. - - - - — - Taiwan. - - - - — - Taiwan/2. - - - - — - Taiwan/3. - - - - — - Taiwan/4. - - - - — - Turchia. - - - - — - Turchia/2. - - - - — - Turchia/3. - - - - - — Ucraina/1. - - - - — - Ucraina/2. - - - - — - Ucraina/Crimea. - - - - — - Ucraina/5. - - - - — - Ungheria. - - - - — - Ungheria/2. - - - - — - USA/3. - - - - — - USA/7. - - + &chap.eresources.www.inc; Indirizzi Email I seguenti Gruppi Utenti forniscono indirizzi email per i propri membri. Gli amministratori di lista si riservano il diritto di revocare l'indirizzo assegnato se in alcun modo se ne fa cattivo uso. Dominio Offerta Gruppo utente Amministratore ukug.uk.FreeBSD.org Solo forwarding freebsd-users@uk.FreeBSD.org Lee Johnston lee@uk.FreeBSD.org Shell Accounts I seguenti Gruppi utenti forniscono account di shell a persone che supportano attivamente il progetto FreeBSD. Gli amministratori elencati si riservano il diritto di cancellare l'account se viene in alcun modo usato male. Host Accesso Offerta Amministratore storm.uk.FreeBSD.org Solo SSH CVS a sola lettura, spazio web personale, email &a.brian; dogma.freebsd-uk.eu.org Telnet/FTP/SSH Email, spazio Web, FTP anonimo Lee Johnston lee@uk.FreeBSD.org diff --git a/it_IT.ISO8859-15/books/handbook/introduction/chapter.sgml b/it_IT.ISO8859-15/books/handbook/introduction/chapter.sgml index 00764ea4e5..4b139aaa6e 100644 --- a/it_IT.ISO8859-15/books/handbook/introduction/chapter.sgml +++ b/it_IT.ISO8859-15/books/handbook/introduction/chapter.sgml @@ -1,997 +1,1014 @@ Jim Mock Ristrutturato, riorganizzato, e in parte riscritto da Introduzione Sinossi Grazie per il tuo interesse per FreeBSD! Il seguente capitolo tratta vari aspetti del FreeBSD Project, come la sua storia, gli obiettivi, il modello di sviluppo e così via. Dopo aver letto questo capitolo, saprai: Come si relazione FreeBSD rispetto agli altri sistemi operativi per computer. La storia del FreeBSD Project. Gli obiettivi del FreeBSD Project. Le basi del modello di sviluppo open source di FreeBSD. E naturalmente: da dove deriva il nome FreeBSD. Benvenuto in FreeBSD! 4.4BSD-Lite FreeBSD è un sistema operativo basato su 4.4BSD-Lite per - architettura Intel (x86) e sistemi basati su DEC Alpha. Port verso altre - architetture sono stati avviati. Per una breve visione generale di - FreeBSD, guarda la prossima sezione. + computer Intel (x86), DEC Alpha, e Sun + &ultrasparc;. Port verso altre architetture sono stati avviati. Puoi anche leggere la storia di FreeBSD, o la release corrente. Se sei interessato a contribuire in qualche modo al progetto (codice, hardware, banconote non segnate), leggi l'articolo Contributing to FreeBSD. Cosa può fare FreeBSD? FreeBSD ha molte caratteristiche degne di nota. Alcune di queste sono: multitasking preemptive Multitasking preemptive con adattamento dinamico della priorità per assicurare una condivisione regolare ed equa del computer ad applicazioni e utenti, persino sotto i carichi più pesanti. facilities multiutente Facilities multiutente che permettono a molte persone di usare un sistema FreeBSD contemporaneamente per cose diverse. Questo significa, per esempio, che le periferiche di sistema come stampanti e unità a nastro sono correttamente condivise tra tutti gli utenti sul sistema o sulla rete e che possono essere posti limiti individuali ad utenti o gruppi di utenti sulla risorsa, proteggendo le risorse di sistema critiche dall'uso eccessivo. networking TCP/IP Un solido sistema di rete TCP/IP con supporto a standard industriali quali SLIP, PPP, NFS, DHCP e NIS. Questo significa che la tua macchina FreeBSD può interoperare facilmente con altri sistemi ed anche agire come server aziendale, fornendo funzioni vitali come NFS (accesso remoto ai file) e servizi e-mail oppure mettere la tua organizzazione su Internet con servizi WWW, FTP, routing e firewall (sicurezza). protezione della memoria La protezione della memoria assicura che le applicazioni (o gli utenti) non possano interferire l'una con l'altra. Una applicazione che andrà in crash non influirà sulle altre in alcun modo. FreeBSD è un sistema operativo a 32 - bit (64 bit su Alpha) ed è - stato progettato come tale sin dall'inizio. + bit (64 bit su Alpha e + &ultrasparc;) ed è stato progettato come tale sin + dall'inizio. X Window System XFree86 Lo standard industriale X Window System (X11R6) fornisce una interfaccia grafica utente (GUI) al costo di una comune scheda VGA ed un monitor e viene fornito con i sorgenti. compatibilità binaria Linux compatibilità binaria SCO compatibilità binaria SVR4 compatibilità binaria BSD/OS compatibilità binaria NetBSD Compatibilità binaria con molti programmi sviluppati per Linux, SCO, SVR4, BSDI e NetBSD. Nella collezione di port e package per FreeBSD sono disponibili migliaia di applicazioni pronte a partire. Perché cercare sulla rete quando puoi trovare qui tutto quello che ti serve? Su Internet sono disponibili migliaia di applicazioni aggiuntive e facili da portare. FreeBSD è compatibile a livello di codice sorgente con - la maggior parte dei sistemi Unix commerciali e così la + la maggior parte dei sistemi &unix; commerciali e così la maggior parte delle applicazioni richiedono poche modifiche per essere compilate, se non nessuna. memoria virtuale La memoria virtuale paginata su richiesta e il progetto con VM/buffer cache integrati soddisfa efficientemente le applicazioni con grandi appetiti di memoria mantenendo ancora la risposta interattiva per altri utenti. Symmetric Multi-Processing (SMP) Il supporto SMP per macchine con CPU multiple. compilatori C compilatori C++ compilatori FORTRAN una dotazione completa di strumenti di sviluppo per C, C++, Fortran, e Perl. Sono inoltre disponibili molti linguaggi aggiuntivi per ricerca avanzata e sviluppo nella collezione di port e package. codice sorgente Avere il codice sorgente dell'intero sistema significa avere un alto grado di controllo sull'ambiente. Perché essere vincolati ad una soluzione proprietaria alla mercé del tuo fornitore quando puoi avere un sistema veramente aperto? Estesa documentazione online. E molto altro! 4.4BSD-Lite Computer Systems Research Group (CSRG) U.C. Berkeley FreeBSD è basato sulla release 4.4BSD-Lite del Computer Systems Research Group (CSRG) dell'Università della California di Berkeley, e porta avanti l'inconfondibile tradizione di sviluppo dei sistemi BSD. In aggiunta all'ottimo lavoro fornito dal CSRG, il FreeBSD Project ha speso molte centinaia di ore nella fine regolazione del sistema per le massime prestazioni e affidabilità nelle situazioni di carico che si possono trovare nella vita reale. Mentre molti giganti commerciali hanno difficoltà nel campo dei sistemi operativi per PC con queste caratteristiche, prestazioni e affidabilità, FreeBSD le può offrire ora! Le applicazioni nelle quali FreeBSD può essere impiegato sono veramente limitate solo dalla tua immaginazione. Dallo sviluppo software all'automazione in fabbrica, dal controllo dell'inventario alla correzione dell'azimut delle antenne remote dei satelliti; se può - essere fatto con un prodotto UNIX commerciale allora è più - che probabile che puoi farlo anche con FreeBSD! FreeBSD beneficia - significativamente anche da letteralmente migliaia di applicazioni - di alta qualità sviluppate da centri di ricerca e + essere fatto con un prodotto &unix; commerciale allora è + più che probabile che puoi farlo anche con FreeBSD! + FreeBSD beneficia significativamente anche da letteralmente migliaia di + applicazioni di alta qualità sviluppate da centri di ricerca e università di tutto il mondo, spesso disponibili a poco prezzo o gratuite. Sono anche disponibili applicazioni commerciali e compaiono in numero maggiore ogni giorno. Poiché il codice sorgente dello stesso FreeBSD è normalmente disponibile, il sistema può anche essere personalizzato ad un livello inimmaginabile per applicazioni o progetti particolari, e in modi non generalmente possibili con i sistemi operativi della maggior parte dei produttori commerciali. Ecco solo alcuni esempi di alcune delle applicazioni nelle quali attualmente la gente sta usando FreeBSD: Servizi Internet: Il robusto sistema di rete TCP/IP di FreeBSD lo rende una piattaforma ideale per una varietà di servizi Internet quali: server FTP server FTP server web server World Wide Web (standard o sicuri [SSL]) firewall mascheramento dell'IP Firewall e gateway NAT (mascheramento dell'IP). posta elettronica server di Posta Elettronica USENET USENET News o Bulletin Board Systems E altro... Con FreeBSD, puoi facilmente partire in piccolo con un PC a buon mercato della classe 386 e aggiornare poi ad un quadriprocessore Xeon con dischi RAID se la tua azienda cresce. Insegnamento: Sei uno studente di informatica o legato al campo dell'ingegneria? Non c'è miglior modo di imparare i sistemi operativi, l'architettura dei computer e il networking che l'esperienza pratica e in profondità che FreeBSD può fornire. Il numero di pacchetti di CAD, di progettazione grafica e matematica disponibili gratuitamente lo rendono anche estremamente utile per coloro il cui interesse principale nei computer è vedere altro lavoro svolto! Ricerca: Con il codice sorgente disponibile per l'intero sistema, FreeBSD è una eccellente piattaforma per la ricerca nei sistemi operativi come pure per altre branche dell'informatica. La natura di libera circolazione di FreeBSD rende anche possibile a gruppi distanti di collaborare sulle idee o condividere lo sviluppo senza aver da preoccuparsi di accordi di licenza speciali o limitazioni su quello che può essere discusso in un forum pubblico. router server DNS Networking: Ti serve un nuovo router? Un server dei nomi (DNS)? Un firewall per tenere la gente fuori dalla tua rete interna? FreeBSD può facilmente tramutare quel 386 inutilizzato o quel PC 486 che giace nell'angolo in un router avanzato con sofisticate capacità di filtraggio dei pacchetti. Sistema X Window XFree86 Sistema X Window Accelerated-X Stazione di lavoro con X Window: FreeBSD è un'ottima scelta come soluzione per un terminale X - economico, sia usando il server XFree86 liberamente disponibile o - uno degli eccellenti server commerciali forniti da X Inside. + economico, sia usando il server &xfree86; liberamente disponibile o + uno degli eccellenti server commerciali forniti da Xi Graphics. Diversamente da un terminale X, FreeBSD permette a molte applicazioni di girare localmente se desiderato, sollevando così il carico da un server centrale. FreeBSD può anche partire senza disco, rendendo le stazioni individuali persino più economiche e facili da amministrare. GNU Compiler Collection Sviluppo Software: Di base FreeBSD arriva con un pieno complemento di strumenti di sviluppo incluso il rinnovato compilatore GNU C/C++ e il debugger. FreeBSD è disponibile sia in forma sorgente che binaria - su CDROM e via FTP anonimo. Guarda l' per + su CDROM, DVD e via FTP anonimo. Guarda l' per maggiori informazioni su come ottenere FreeBSD. - Chi usa FreeBSD? + Chi Usa FreeBSD? utenti Grandi siti dove gira FreeBSD FreeBSD è usato per far funzionare alcuni dei più grossi siti su Internet, inclusi: Yahoo! Yahoo! Apache Apache Blue Mountain Arts Blue Mountain Arts Pair Networks Pair Networks Sony Japan Sony Japan Netcraft Netcraft Weathernews Weathernews Supervalu Supervalu TELEHOUSE America TELEHOUSE America Sophos Anti-Virus Sophos Anti-Virus JMA Wired JMA Wired e molti altri. Informazioni sul FreeBSD Project La sezione seguente fornisce alcune informazioni relative al progetto, includendo una breve storia, gli obiettivi, e il modello di sviluppo. - + Jordan Hubbard Contributo di Breve storia di FreeBSD 386BSD Patchkit Hubbard, Jordan Williams, Nate Grimes, Rod FreeBSD Project storia Il FreeBSD Project ebbe la sua genesi nella prima parte del 1993, come una sorta di crescita oltremisura del Patchkit Non Ufficiale di 386BSD dagli ultimi tre coordinatori del patchkit: Nate Williams, Rod Grimes e me stesso. 386BSD Il nostro obiettivo originario era di produrre uno snapshot intermedio di 386BSD allo scopo di risolvere una serie di problemi che il meccanismo del patchkit non era semplicemente in grado di risolvere. Alcuni di voi potranno ricordare che il primo titolo funzionante per il progetto fu 386BSD 0.5 o 386BSD Interim in riferimento a quel fatto. Jolitz, Bill 386BSD era il sistema operativo di Bill Jolitz, che era arrivato a questo punto soffrendo piuttosto pesantemente di quasi un anno di disinteresse. Visto che il patchkit si gonfiava sempre più scomodamente con il passare dei giorni, fummo d'accordo all'unanimità che doveva essere fatto qualcosa e decidemmo di provare ad assistere Bill fornendo questo snapshot ad interim ripulito. Questi piani ebbero un brusco arresto quando Bill Jolitz improvvisamente decise di ritirare la sua approvazione al progetto senza nessuna chiara indicazione di cosa invece doveva essere fatto. Greenman, David Walnut Creek CDROM Non ci volle molto per decidere che l'obiettivo rimaneva utile, persino senza il supporto di Bill, e così adottammo il nome FreeBSD, coniato da David Greenman. I nostri obiettivi iniziali furono decisi dopo esserci consultati con gli utenti dell'epoca del sistema e, una volta che divenne chiaro che il progetto era sulla strada giusta e forse stava persino diventando una realtà, contattai la Walnut Creek CDROM con un occhio verso il miglioramento dei canali distributivi di FreeBSD per quei molti sfortunati che non avevano facile accesso a Internet. La Walnut Creek CDROM non solo supportò l'idea di distribuire FreeBSD su CD ma andò anche più lontano fornendo al progetto una macchina per lavorarci su e una connessione ad Internet veloce. Senza il grado di fiducia quasi senza precedenti della Walnut Creek CDROM in quello che era, a quel tempo, un progetto completamente sconosciuto, è abbastanza improbabile che FreeBSD sarebbe andato così lontano, così velocemente, come è oggi. 4.3BSD-Lite Net/2 U.C. Berkeley 386BSD Free Software Foundation La prima distribuzione su CDROM (e largamente disponibile sulla rete) fu FreeBSD 1.0, rilasciata nel dicembre del 1993. Questa era basata su un nastro della 4.3BSD-Lite (Net/2) della U.C. Berkeley, con molti componenti forniti anche da 386BSD e dalla Free Software Foundation. Fu un successo abbastanza ragionevole per una prima offerta, e lo seguimmo dal grande successo di FreeBSD release 1.1 nel maggio del 1994. Novell U.C. Berkeley Net/2 AT&T Circa in questo periodo si formarono all'orizzonte alcune nuvole temporalesche piuttosto inaspettate allorché Novell e U.C. Berkeley risolsero la loro lunga causa civile sullo stato legale del nastro di Berkeley Net/2. Una condizione di quell'accordo era la concessione di U.C. Berkeley che vaste parti di Net/2 erano codice ingombrante e di proprietà di Novell, che lo aveva infine acquistato da AT&T qualche tempo addietro. Quello che Berkeley ottenne in cambio fu la benedizione di Novell che la release 4.4BSD-Lite, quando fu finalmente rilasciata, fosse dichiarata non ingombrante e che tutti gli utenti Net/2 esistenti fossero fortemente incoraggiati a cambiare. Questo incluse FreeBSD, e al progetto fu dato tempo fino alla fine di luglio 1994 per fermare la spedizione del proprio prodotto basato su Net/2. Sotto i termini di quell'accordo, fu permesso al progetto un ultimo rilascio prima della scadenza, e quella release fu FreeBSD 1.1.5.1 FreeBSD allora si accinse nell'arduo compito di letteralmente reinventare se stesso da un insieme di bit di 4.4BSD-Lite completamente nuovo e piuttosto incompleto. Le release Lite erano light (leggere) in parte perché il CSRG di Berkeley aveva rimosso grandi sezioni di codice richiesto per costruire effettivamente un sistema funzionante in grado di partire (dovuto a varie richieste legali) e in parte al fatto che il port per Intel della 4.4 era altamente incompleto. Al progetto ci volle fino al novembre del 1994 per fare questa transizione; a quel punto rilasciò FreeBSD 2.0 sulla rete e su CDROM (nel tardo dicembre). A dispetto del fatto di essere ancora più che un po' ruvida ai bordi, la release fu un successo significativo e fu seguita dalla release FreeBSD 2.0.5 più robusta e semplice da installare nel giugno del 1995. Rilasciammo FreeBSD 2.1.5 nell'agosto del 1996, e parve essere abbastanza popolare tra gli ISP e le comunità commerciali tanto che si meritò un'altra release nel corso del ramo 2.1-STABLE. Questa era FreeBSD 2.1.7.1, rilasciata nel febbraio 1997 e apoteosi dello sviluppo principale sulla 2.1-STABLE. Attualmente in modalità di manutenzione, su questo ramo (RELENG_2_1_0) verranno sviluppati solo miglioramenti della sicurezza e correzioni degli errori. FreeBSD 2.2 fu derivato dallo sviluppo della linea principale (-CURRENT) nel novembre 1996 come ramo RELENG_2_2, e la prima release completa (2.2.1) fu rilasciata nell'aprile 1997. Furono rilasciate ulteriori release del ramo 2.2 nell'estate e nell'autunno del '97, l'ultima delle quali (2.2.8) apparve nel novembre 1998. La prima release 3.0 ufficiale apparve nell'ottobre 1998 e segnò l'inizio della fine per il ramo 2.2. L'albero si ramificò ancora il 20 gennaio 1999, dividendosi nei rami 4.0-CURRENT e 3.X-STABLE. Dalla 3.X-STABLE, la 3.1 fu rilasciata il 15 febbraio 1999, la 3.2 il 15 maggio 1999, la 3.3 il 16 settembre 1999, la 3.4 il 20 dicembre 1999 e la 3.5 il 24 giugno 2000, seguita pochi giorni dopo da un aggiornamento di punto inferiore alla release 3.5.1 per incorporare alcune correzioni dell'ultimo minuto a Kerberos sulla sicurezza. Questa sarà l'ultima release del ramo 3.X. Ci fu un'altra ramificazione il 13 marzo 2000, che vide l'apparizioni del ramo 4.X-STABLE, ora considerato essere il ramo -STABLE corrente. Ci sono state numerose release da - allora: la 4.0-RELEASE venne fuori nel marzo 2000, la 4.1 fu rilasciata - nel luglio 2000, la 4.2 nel novembre 2000, la 4.3 nell'aprile 2001, e la - 4.4 nel settembre 2001. Ci saranno più release nel corso del - ramo 4.X-STABLE (RELENG_4) per tutto il 2002. - - Lo sviluppo dei progetti a lungo termine continua ad aver luogo - nell'albero 5.0-CURRENT, e release SNAPshot della 5.0 su CDROM + allora: la 4.0-RELEASE fu introdotta nel marzo 2000, e la più + recente &rel2.current;-RELEASE venne fuori nel &rel2.current.date;. + Ci saranno release aggiuntive lungo il ramo 4.X-STABLE (RELENG_4) per + tutto il 2003. + + La tanto attesa 5.0-RELEASE è stata annunciata il 19 gennaio + 2003. Il culmine di quasi tre anni di lavoro, questa release ha + iniziato FreeBSD nel percorso del supporto avanzato al multiprocessore e + ai thread nelle applicazioni e ha introdotto il supporto per le + piattaforme &ultrasparc; e ia64. + Questa release è stata seguita + dalla 5.1 nel giugno del 2003. A parte un certo numero di nuove + funzionalità, le release 5.X contengono anche parecchi sviluppi + maggiori sull'architettura di sistema sottostante. Insieme a questi + vantaggi, tuttavia, arriva un sistema che incorpora una quantità + impressionante di codice nuovo e non completamente testato. Per questa + ragione, le release 5.X sono considerate release con Nuove + Tecnologie, mentre quelle della serie 4.X come release di + Produzione. Col tempo, la 5.X sarà dichiarata + stabile e comincerà il lavoro sul prossimo ramo di sviluppo, + 6.0-CURRENT. + + Per ora, lo sviluppo dei progetti a lungo termine continua ad aver + luogo nell'albero 5.X-CURRENT, e release SNAPshot della 5.X su CDROM (e, naturalmente, sulla rete) sono continuamente rese disponibili sul server snapshot mentre il lavoro procede. Jordan Hubbard Contributo di Obiettivi del FreeBSD Project FreeBSD Project obiettivi Gli obiettivi del FreeBSD Project sono di fornire software che può essere usato per qualunque scopo senza vincoli. Molti di noi hanno fatto un investimento significativo nel codice (e nel progetto) e certamente non dovrebbero essere interessati ad un piccolo compenso finanziario qua e là, ma non siamo sicuramente preparati ad insistere su questo. Noi crediamo che la nostra prima e prioritaria missione sia di fornire codice a tutti i partecipanti, presenti e futuri, e per qualunque scopo, così che il codice abbia un uso il più possibile ampio e fornisca i più ampi benefici. Questo è, io credo, uno degli obiettivi fondamentali del Software Libero (Free Software) e che noi supportiamo entusiasticamente. GNU General Public Licence (GPL) GNU Lesser General Public License (LGPL) Copyright BSD Quel codice nel nostro albero dei sorgenti che cade sotto la GNU General Public Licence (GPL) o la GNU Lesser General Public License (LGPL) ha un po' più di vincoli, sebbene almeno dal lato di rafforzare l'accesso piuttosto che l'opposto. Date le complessità aggiuntive che possono risultare dall'uso commerciale di software GPL noi preferiamo, tuttavia, software rilasciato sotto il più rilassato copyright BSD quando è una scelta ragionevole farlo. Satoshi Asami Contributo di Il Modello di Sviluppo di FreeBSD FreeBSD Project modello di sviluppo Lo sviluppo di FreeBSD è un processo molto aperto - e flessibile, essendo FreeBSD costruito dal contributo di centinaia + e flessibile, essendo costruito dal contributo di centinaia di persone di tutto il mondo, come puoi vedere dalla nostra lista dei - collaboratori. Siamo costantemente alla ricerca di nuovi + collaboratori. L'infrastruttura di sviluppo di FreeBSD + permette a queste centinaia di sviluppatori di collaborare su Internet. + Siamo costantemente alla ricerca di nuovi sviluppatori e idee, e quelli interessati a essere coinvolti maggiormente nel progetto devono semplicemente contattarci sulla &a.hackers;. La &a.announce; è anche disponibile a quelli che vogliono informare altri utenti FreeBSD delle principali aree di lavoro. Cose utili da sapere sul FreeBSD Project e il suo processo di sviluppo, sia lavorando in modo indipendente che in stretta cooperazione: Il repository CVS CVS repository Concurrent Versions System CVS L'albero centrale dei sorgenti FreeBSD è mantenuto tramite CVS (Concurrent Versions System, ovvero Sistema di Versioni Concorrenti), uno strumento di controllo dei codici sorgenti liberamente disponibile che viene distribuito con FreeBSD. Il principale repository CVS risiede su una macchina a Santa Clara CA, USA da dove è replicato su numerose macchine speculari in - tutto il mondo. L'albero CVS, come gli alberi -CURRENT e -STABLE che sono controllati da esso, + linkend="stable">-STABLE, possono essere facilmente replicati anche sulla tua macchina. Fai riferimento alla sezione Sincronizzazione dei Tuoi Sorgenti per maggiori informazioni su come fare. La lista dei committer committers I committer sono persone che hanno permesso di scrivere nell'albero CVS, e sono - così autorizzate ad apportare modifiche ai sorgenti di + autorizzate ad apportare modifiche ai sorgenti di FreeBSD (il termine committer viene dal comando commit di &man.cvs.1;, che è usato per portare i nuovi cambiamenti al repository CVS). Il modo migliore di sottoporre modifiche alla revisione da parte della lista dei - committer è usare il comando &man.send-pr.1;, ma se - qualcosa appare inceppato nel sistema allora puoi anche + committer è usare il comando &man.send-pr.1;. + Se qualcosa appare inceppato nel sistema, allora puoi anche raggiungerli mandando un messaggio alla &a.committers;. Il core team di FreeBSD core team Il core team di FreeBSD dovrebbe essere equivalente al consiglio dirigente se il FreeBSD Project fosse una azienda. Il compito principale del core team è assicurarsi che il progetto, nella sua interezza, sia in buona salute e sia diretto nella giusta direzione. Una delle funzioni del core team è invitare sviluppatori responsabili e dedicati a unirsi al nostro gruppo di committer come altri ne escono. L'attuale core team è stato eletto da un insieme di candidati committer nel giugno 2002. Le elezioni vengono tenute ogni 2 anni. Alcuni membri del core team hanno anche aree specifiche di responsabilità, significando che sono impegnati ad assicurare che grandi porzioni del sistema funzionino come annunciato. Per una lista completa degli sviluppatori di FreeBSD e le loro aree di responsabilità, guarda la Contributors List Molti membri del core team sono volontari per quanto riguarda lo sviluppo di FreeBSD e non beneficiano finanziariamente dal progetto, così pure l'impegno non dovrebbe essere frainteso come supporto garantito. Allo stesso modo; l'analogia - con il consiglio direttivo non è veramente + con il consiglio direttivo non è molto calzante, e può essere più corretto dire che queste sono persone che hanno rinunciato alle loro vite in favore di FreeBSD, contro il loro senso del giudizio! Collaboratori esterni collaboratori Non da ultimo, il più grande gruppo di sviluppatori sono gli stessi utenti che ci forniscono feedback e correzioni di bug quasi costantemente. Il modo principale di tenersi in contatto con lo sviluppo non centralizzato di FreeBSD è iscriversi alla &a.hackers; dove queste cose vengono discusse. Guarda il per maggiori informazioni sulle varie mailing list di FreeBSD. La Lista dei Collaboratori di FreeBSD è lunga e cresce continuamente, quindi perché non entri a far parte di essa contribuendo e dando tu qualcosa a FreeBSD? Fornire codice non è il solo modo di contribuire al progetto, per una lista completa di cose che serve fare, fai riferimento al sito web del FreeBSD Project. In conclusione, il nostro modello di sviluppo è organizzato come un insieme sciolto di cerchi concentrici. Il modello centralizzato è progettato per agevolare gli utenti di FreeBSD, ai quali viene fornito un modo semplice per tenere traccia di una base di codice centrale, non per tenere fuori potenziali collaboratori! È nostro desiderio presentare un sistema operativo stabile con un ampio insieme di programmi applicativi coerenti che gli utenti possono facilmente - installare ed usare, e questo modello funziona molto bene per realizzare - ciò. + installare ed usare — questo modello funziona molto bene per + realizzare ciò. Tutto quello che chiediamo a quelli che vogliono unirsi a noi come sviluppatori di FreeBSD è un po' della stessa dedizione che hanno le attuali persone al suo continuo successo! La Release Corrente di FreeBSD NetBSD OpenBSD 386BSD Free Software Foundation U.C. Berkeley Computer Systems Research Group (CSRG) FreeBSD è liberamente disponibile, è basato tutto su - sorgenti 4.4BSD-Lite, è rilasciato per computer Intel i386, i486, - Pentium, Pentium Pro, Celeron, Pentium II, Pentium III, - Pentium IV (o compatibili), Xeon, DEC Alpha e SPARC64. + sorgenti 4.4BSD-Lite, è rilasciato per computer Intel &i386;, + &i486;, &pentium;, &pentium; Pro, &celeron;, &pentium; II, + &pentium; III, &pentium; 4 (o compatibili), &xeon;, DEC + Alpha e Sun &ultrasparc;. È basato principalmente su software del gruppo CSRG della U.C. Berkeley, con alcuni miglioramenti presi da NetBSD, OpenBSD, 386BSD, e dalla Free Software Foundation. Dalla nostra release di FreeBSD 2.0 nel lontano '94, le prestazioni, l'insieme di caratteristiche, e la stabilità di FreeBSD sono migliorate notevolmente. Il più grande cambiamento è stato la riscrittura del sistema di memoria virtuale con una VM/file buffer cache integrata che non solo incrementa le prestazioni, ma anche riduce la richiesta di memoria di FreeBSD, rendendo una configurazione con 5 MB un minimo accettabile. Altri miglioramenti includono il completo supporto a client e server NIS, il supporto delle transazioni TCP, la chiamata-su-richiesta di PPP, il supporto integrato del DHCP, un sottosistema SCSI migliorato, il supporto ISDN, il supporto per ATM, FDDI, per gli adattatori Fast e Gigabit Ethernet (1000 Mbit), un - supporto migliorato degli ultimi controller Adaptec, e molte centinaia + supporto migliorato degli ultimi controller Adaptec, e molte migliaia di correzioni di bug. - Abbiamo anche preso a cuore i commenti e i suggerimenti di molti - dei nostri utenti e abbiamo tentato di fornire quello che speriamo sia - un processo di installazione più sensato e facile da capire. - Il tuo feedback su questo processo (in costante evoluzione) è - particolarmente ben accetto! - In aggiunta alla distribuzione di base, FreeBSD offre una collezione di software portato con migliaia di programmi comunemente cercati. Alla data di stampa, ci sono oltre &os.numports; port! La lista dei port comprende server http (WWW), giochi, linguaggi, editor e quasi tutto quello che sta in mezzo. L'intera collezione dei port richiede approssimativamente &ports.size; di spazio, essendo tutti i port espressi come delta dei loro sorgenti originari. Questo rende più facile per noi aggiornare i port, e riduce di molto la domanda di spazio su disco dalla vecchia collezione 1.0 dei port. Per compilare un port, vai semplicemente nella directory che vuoi installare, digita make install e lascia che il sistema faccia il resto. La distribuzione originale completa per ogni port che compili viene presa dinamicamente dal CDROM o da un sito FTP locale, così hai bisogno solo lo spazio su disco sufficiente per compilare il port che vuoi. Quasi ogni port viene fornito di un package precompilato che può essere installato con un semplice comando (pkg_add) - da coloro che non vogliono compilare i propri port dai sorgenti. + da coloro che non vogliono compilare i propri port dai sorgenti. + Maggiori informazioni sui package e sui port possono essere trovate + nel . Un numero di documenti aggiuntivi che puoi trovare molto utili nel processo di installazione e di utilizzo di FreeBSD ora può essere trovato anche nella directory /usr/share/doc su - ogni macchina dove gira FreeBSD 2.1 o superiore. Puoi vedere i + ogni recente macchina FreeBSD. Puoi vedere i manuali installati localmente con qualsiasi browser HTML usando i seguenti URL: Il Manuale di FreeBSD /usr/share/doc/handbook/index.html Domande Comuni su FreeBSD /usr/share/doc/faq/index.html Puoi vedere anche le copie originali (e aggiornate più frequentemente) su http://www.FreeBSD.org/. diff --git a/it_IT.ISO8859-15/books/handbook/l10n/chapter.sgml b/it_IT.ISO8859-15/books/handbook/l10n/chapter.sgml index aab308759b..56fd267825 100644 --- a/it_IT.ISO8859-15/books/handbook/l10n/chapter.sgml +++ b/it_IT.ISO8859-15/books/handbook/l10n/chapter.sgml @@ -1,1095 +1,1100 @@ Andrey A. Chernov Contributo di Michael C. Wu Revisione di Localizzazione - Uso e Impostazione dell'I18N/L10N Sinossi FreeBSD è un progetto di larga diffusione con utenti e collaboratori in ogni parte del mondo. Questo capitolo affronta quegli aspetti tipici di FreeBSD relativi all'internazionalizzazione e localizzazione del sistema che permettono agli utenti non di lingua inglese di operare in maniera più confortevole. Ci sono molti aspetti da considerare dell'implementazione I18N sia a livello utente che di sistema, perciò, ove necessario, si rinvierà il lettore a fonti di informazione più specifiche. Dopo aver letto questo capitolo, saprai: Come i vari linguaggi e nazioni sono codificati nei moderni sistemi operativi. Come impostare la localizzazione per la tua shell di login. Come configurare la tua console per una lingua che non sia l'inglese. Come usare concretamente X Windows con differenti lingue. Dove reperire ulteriori informazioni su come scrivere applicazioni I18N compatibili. Prima di leggere questo capitolo, dovresti: Sapere come installare applicazioni aggiuntive di terze parti (). Principi di Base Cosa significano le sigle I18N/L10N? internazionalizzazione localizzazione Gli sviluppatori hanno abbreviato la parola internationalization in I18N, contando il numero di lettere che costituiscono la parola internationalization, escludendo la prima e l'ultima. Lo stesso è stato fatto per l'acronimo L10N, che deriva appunto da localization. Combinando insieme i metodi, i protocolli e le applicazioni che rispettano gli standard I18N/L10N si permette agli utenti di utilizzare una qualsiasi lingua di propria scelta. Le applicazioni I18N sono realizzate mediante appositi kit, disponibili tramite specifiche librerie. Questo permette agli sviluppatori di scrivere in un normale file di testo i menù e i messaggi da visualizzare nel programma e di tradurlo poi nelle varie lingue. Si raccomandano vivamente i programmatori di seguire questa convenzione. Perché Dovrei Usare I18N/L10N? I18N/L10N è usato ogni qualvolta desideri visualizzare, immettere o processare dati in lingue diverse da quella inglese. Quali Lingue sono Disponibili nel Lavoro I18N? I18N e L10N non sono caratteristiche specifiche di FreeBSD. Al momento, è possibile scegliere fra la maggior parte delle lingue più diffuse nel mondo, tra le quali: cinese, tedesco, giapponese, francese, russo, italiano e altre ancora. Come Utilizzare la Localizzazione Vista la sua importanza, I18N non è specifico del sistema FreeBSD ed è una convenzione. Siete invitati ad aiutare il progetto FreeBSD per sostenere questa convenzione. locale Le impostazioni per la localizzazione o nazionalizzazione sono basate su tre termini principali: Codice Lingua, Codice Nazione e Codifica. I nomi che contraddistinguono una localizzazione sono formati utilizzando questi termini nel modo seguente: CodiceLingua_CodiceNazione.Codifica I Codici per la Lingua e la Nazione codici lingua codici nazione Al fine di localizzare un sistema FreeBSD (o qualsiasi altro sistema - UNIX che gestisca I18N) in una specifica lingua, l'utente deve + &unix; che gestisca I18N) in una specifica lingua, l'utente deve innanzitutto conoscere i codici della nazione e della lingua desiderati (i codici delle nazioni segnalano alle applicazioni quali convenzioni adottare all'interno di un dato linguaggio). Inoltre, i browser web, i server SMTP/POP, i server web, ecc. possono operare in base ad essi. I seguenti sono esempi di codici lingua/nazione: Codice Lingua/Nazione Descrizione en_US inglese - Stati Uniti d'America ru_RU russo - Russia zh_TW cinese tradizionale - Taiwan Codifiche codifiche ASCII Alcune lingue utilizzano codifiche non ASCII, cioè caratteri a 8 bit, estesi o multibyte, vedere &man.multibyte.3; per maggiori dettagli. Le applicazioni più vecchie, non riconoscendoli, li interpretano come caratteri di controllo. Quelle più recenti invece riconoscono di solito i caratteri a 8 bit. A seconda dell'implementazione, è possibile che gli utenti debbano ricompilare un'applicazione con il supporto ai caratteri estesi o multibyte, o debbano configurare l'applicazione in modo corretto. Per essere in grado di immettere e di elaborare caratteri estesi o multibyte, la FreeBSD Ports Collection fornisce vari programmi in differenti linguaggi. Si faccia riferimento alla relativa documentazione I18N del port di FreeBSD. Precisamente, l'utente deve consultare la documentazione propria dell'applicazione per conoscere come configurarla correttamente o come passare i giusti valori al configuratore/Makefile/compilatore. Alcune cose da tener presente sono: Gli insiemi di caratteri rappresentabili dal tipo char del linguaggio C, specifici della lingua (vedere &man.multibyte.3;), cioè, ISO-8859-1, ISO-8859-15, KOI8-R, CP437. Codifiche estese o multibyte, cioè EUC, Big5. Puoi consultare l'elenco corrente degli insiemi di caratteri nel Registro IANA. Con le versioni 4.5 o successive di FreeBSD si utilizzino le codifiche per la localizzazione compatibili con X11. Applicazioni I18N Nel sistema dei port e dei pacchetti precompilati di FreeBSD, le applicazioni I18N sono facilmente riconoscibili, perché il loro nome include la sigla I18N. Tuttavia, non sempre queste potrebbero supportare la lingua desiderata. Impostazione del Locale Di solito è sufficiente esportare il valore del nome del locale posto nella variabile LANG all'interno della shell di login. Questo può essere fatto utilizzando il file dell'utente ~/.login_conf oppure il file di configurazione della shell di login dell'utente (~/.profile, ~/.bashrc, ~/.cshrc). Non c'è bisogno di impostare le altre variabili del locale, come LC_CTYPE, LC_CTIME. Per maggiori informazioni si faccia riferimento alla documentazione di FreeBSD specifica per la data lingua. Puoi settare le due variabili d'ambiente seguenti nei tuoi file di configurazione: POSIX LANG per le funzioni appartenenti alla - famiglia POSIX, &man.setlocale.3; + famiglia &posix;, &man.setlocale.3; MIME MM_CHARSET per l'insieme dei caratteri che dovranno usare le applicazioni che supportano lo standard MIME Ciò va fatto per la configurazione della shell dell'utente, di un'applicazione specifica e per quella di X11. Metodi di Localizzazione locale classe di login Ci sono due metodi per impostare il locale, entrambi descritti qui di seguito. Il primo (raccomandato) consiste nell'impostare le variabili d'ambiente in una classe di login, mentre il secondo consiste nell'aggiungere i valori delle variabili d'ambiente al file d'avvio della shell di sistema. Metodo delle Classi di Login Questo metodo fa sì che le variabili d'ambiente necessarie per il nome del locale e per gli insiemi dei caratteri MIME vengano inizializzate una volta sola per ogni possibile shell di sistema invece di aggiungere specifici assegnamenti per ogni file d'avvio di shell. Il Setup a Livello Utente può essere fatto dall'utente stesso e il Setup a Livello Amministratore richiede i privilegi del superuser. Setup a Livello Utente Ecco un breve esempio di un file .login_conf posto nella directory home di un utente che ha entrambe le variabili impostate alla codifica Latin-1: me:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1: cinese tradizionale codifica BIG-5 Ecco invece un esempio di un file .login_conf che imposta le variabili per il cinese tradizionale con codifica BIG-5. Si noti che sono state impostate molte variabili perchè alcuni programmi non rispettano come dovrebbero le variabili di localizzazione per il cinese, giapponese e il coreano. #Gli utenti che non vogliono usare l'unità monetaria o i formati temporali #di Taiwan possono modificare manualmente ogni variabile me:\ lang=zh_TW.Big5:\ lc_all=zh_TW.Big:\ lc_collate=zh_TW.Big5:\ lc_ctype=zh_TW.Big5:\ lc_messages=zh_TW.Big5:\ lc_monetary=zh_TW.Big5:\ lc_numeric=zh_TW.Big5:\ lc_time=zh_TW.Big5:\ charset=big5:\ xmodifiers="@im=xcin": #Setta il XIM Input Server Vedere il paragrafo Setup a Livello Amministratore e &man.login.conf.5; per maggiori dettagli. Setup a Livello Amministratore Controlla che la classe di login dell'utente in /etc/login.conf selezioni la lingua corretta. Assicurati che queste impostazioni appaiano in /etc/login.conf: nome_lingua:titolo_account:\ :charset=MIME_charset:\ :lang=nome_locale:\ :tc=default: Ritornando quindi all'esempio di prima che utilizzava Latin-1, si dovrebbe avere una cosa simile a questa: tedesco:Account Utenti Tedeschi:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1:\ :tc=default: Modifica delle Classi di Login con &man.vipw.8; vipw Usa vipw per aggiungere nuovi utenti, e crea qualcosa di simile a quanto segue: utente:password:1111:11:lingua:0:0:Nome Utente:/home/user:/bin/sh Modifica delle Classi di Login con &man.adduser.8; adduser classe di login Usa adduser per aggiungere nuovi utenti, in questo modo: Imposta defaultclass = lingua in /etc/adduser.conf. Tieni presente che in questo modo dovrai inserire una classe default per tutti gli utenti di altre lingue. In alternativa si può specificare la lingua desiderata ogni volta che appare il prompt Enter login class: default []: durante l'esecuzione di &man.adduser.8; Un'altra alternativa è utilizzare il comando nel modo seguente per ogni utente di una diversa lingua che si desidera aggiungere: &prompt.root; adduser -class lingua Cambiare le Classi di Login con &man.pw.8; pw Se utilizzi il comando &man.pw.8; per aggiungere nuovi utenti, invocalo in questo modo: &prompt.root; pw useradd nome_utente -L lingua Metodo del File di Avvio della Shell Questo metodo è sconsigliato perché richiede una inizializzazione diversa per ogni possibile shell. Usa invece il Metodo delle Classi di Login. MIME locale Per aggiungere il nome del locale e l'insieme dei caratteri per lo standard MIME, bisogna semplicemente settare le due variabili d'ambiente mostrate di seguito nei file d'avvio della shell /etc/profile e/o /etc/csh.login. Nell'esempio che segue viene utilizzata la lingua tedesca: In /etc/profile: LANG=de_DE.ISO8859-1; export LANG MM_CHARSET=ISO8859-1; export MM_CHARSET Oppure in /etc/csh.login: setenv LANG de_DE.ISO8859-1 setenv MM_CHARSET ISO8859-1 Lo stesso risultato si ottiene aggiungendo i precedenti comandi al file /usr/share/skel/dot.profile (per i comandi usati in /etc/profile), oppure al file /usr/share/skel/dot.login (per quelli in /etc/csh.login). Per l'ambiente X11: Nel file $HOME/.xinitrc: LANG=de_DE.ISO8859-1; export LANG Oppure: setenv LANG de_DE.ISO8859-1 a seconda della shell utilizzata (vedi sopra). Settaggio della Console Per tutti gli insiemi di caratteri che sono rappresentabili con il tipo char in C, imposta i font della console adatti alla lingua prescelta in /etc/rc.conf: font8x16=nome_font font8x14=nome_font font8x8=nome_font nome_font è il nome di uno dei file di font presenti nella directory /usr/share/syscons/fonts, privato del suffisso .fnt. sysinstall keymap screenmap Assicurati anche di impostare la giusta mappatura della tastiera e del video per il proprio set di caratteri usando /stand/sysinstall. Una volta all'interno di sysinstall, seleziona Configure, quindi Console. In alternativa, aggiungi le seguenti righe in /etc/rc.conf: scrnmap=nome_screenmap keymap=nome_keymap keychange="numero_tasto_funzione sequenza" nome_screenmap viene preso dalla directory /usr/share/syscons/scrnmaps, privato del suffisso .scm. Una screenmap assieme ad una corrispondente mappa dei font è solitamente necessaria nel caso la scheda grafica non gestisca i font via software, ma li abbia codificati internamente; la screenmap serve appunto a rimappare tali font interni nel font prescelto. Se hai abilitato il demone moused inserendo la seguente riga in /etc/rc.conf: moused_enable="YES" allora leggi quanto riportato nel prossimo paragrafo sul cursore del mouse. moused Di default il cursore del mouse del driver &man.syscons.4; occupa l'intervallo da 0xd0 a 0xd3 nel set di caratteri in uso. Se la tua lingua utilizza tali caratteri, devi spostare l'intervallo occupato dal cursore. Per far questo con le versioni anteriori alla 5.0 di FreeBSD, inserisci la seguente riga nel tuo file di configurazione del kernel: options SC_MOUSE_CHAR=0x03 Per le versioni 4.4 e successive aggiungi la seguente riga al file /etc/rc.conf: mousechar_start=3 nome_keymap deve invece corrispondere a uno dei file presenti nella directory /usr/share/syscons/keymaps, privato del suffisso .kbd. Se sei indeciso su quale keymap scegliere, puoi usare il comando &man.kbdmap.1; per testare le varie mappature senza dover riavviare il sistema. La variabile keychange è di solito richiesta per programmare i tasti funzione in relazione al tipo di terminale in uso, poiché le sequenze generate da un tasto funzione non possono essere definite in una mappa di tasti. Assicurati inoltre di impostare il corretto tipo di terminale in /etc/ttys per tutte le voci del tipo ttyv*. Attualmente, le corrispondenze predefinite sono: Insieme di Caratteri Tipo di Terminale ISO-8859-1 o ISO-8859-15 cons25l1 ISO-8859-2 cons25l2 ISO-8859-7 cons25l7 KOI8-R cons25r KOI8-U cons25u CP437 (di default per VGA) cons25 US-ASCII cons25w Per i linguaggi che usano caratteri estesi o multibyte, è bene servirsi del corretto port di FreeBSD nella directory /usr/ports/linguaggio. Poichè alcuni port che si presentano come console sono riconosciuti dal sistema come terminali seriali virtuali (vtty), devi riservare abbastanza vtty sia per X11 che per la console pseudo-seriale. Ecco una lista parziale di applicazioni con cui si possono utilizzare altri linguaggi in console: Linguaggio Ubicazione cinese tradizionale (BIG-5) /usr/ports/chinese/big5con giapponese /usr/ports/japanese/ja-kon2-* oppure /usr/ports/japanese/Mule_Wnn coreano /usr/ports/korean/ko-han Impostazione di X11 Sebbene X11 non faccia parte del progetto FreeBSD, vengono qui fornite alcune informazioni per gli utenti di FreeBSD. Per maggiori dettagli, si faccia riferimento al sito web XFree86 o a quello del Server + url="http://www.xfree86.org/">&xfree86; o a quello del Server X11 utilizzato. Nel file ~/.Xresources, puoi mettere a punto le impostazioni per I18N specifiche di un'applicazione (ad esempio, i font, i menu, ecc.). Visualizzazione dei Font server font True Type per X11 - Installa il server True Type-Common di X11 (Installa il server &truetype; Common di X11 (x11-servers/XttXF86srv-common) e i - corrispondenti font truetype propri della lingua prescelta. + corrispondenti font &truetype; propri della lingua prescelta. L'impostazione del corretto locale dovrebbe permetterti di visualizzare tale lingua nei vari menu, ecc. Immissione di Caratteri Non Inglesi X11 Input Method (XIM) Il protocollo X11 Input Method (XIM) è un nuovo standard per tutti i client X11. Tutte le applicazioni X11 dovrebbero essere scritte come client XIM che ricevono l'input dai server XIM. Vi sono parecchi server XIM disponibili per le differenti lingue. Configurazione della Stampante Alcuni set di caratteri del tipo char del C sono solitamente codificati a livello hardware all'interno delle stampanti stesse. Gli insiemi di caratteri estesi o multibyte richiedono invece una speciale configurazione e si raccomanda l'utilizzo di apsfilter. Puoi anche convertire documenti - nei formati Postscript o PDF utilizzando convertitori specifici per una - data lingua. + nei formati &postscript; o PDF utilizzando convertitori specifici per + una data lingua. Il Kernel e i File System Il file system di FreeBSD FFS (Fast File System) è completamente a 8-bit, perciò può essere utilizzato con qualsiasi insieme di caratteri del tipo char del C (vedere &man.multibyte.3;), ma non vi è un nome particolare di un insieme di caratteri memorizzato nel file system; cioè, il file system è a 8 bit senza alcuna codifica interna e ignora un'eventuale codifica. Ufficialmente, FFS non supporta ancora alcuna forma degli insiemi di caratteri estesi o multibyte. Tuttavia, esistono per alcuni di questi delle patch indipendenti per il FFS che abilitano tale supporto. Sono solo soluzioni temporanee, non portabili ed si è deciso di non includerle nell'albero dei sorgenti. Si faccia riferimento ai rispettivi siti web della lingua desiderata per ulteriori informazioni e per i file di patch. DOS Unicode - Il supporto per il file system di MS-DOS in FreeBSD offre la + Il supporto per il file system di &ms-dos; in FreeBSD offre la possibilità di configurare la modalità di conversione tra - gli insiemi di caratteri MS-DOS, Unicode e quelli scelti per il + gli insiemi di caratteri &ms-dos;, Unicode e quelli scelti per il file system di FreeBSD. Consultare &man.mount.msdos.8; per i dettagli. Compilazione dei Programmi con Supporto I18N Molti dei port di FreeBSD includono il supporto I18N. Alcuni di essi sono contrassegnati dal suffisso -I18N nel loro nome. Questi e molti altri programmi hanno il supporto per I18N già incluso e non necessitano perciò di speciali considerazioni. MySQL Tuttavia, alcune applicazioni come ad esempio MySQL richiedono che venga specificato nel Makefile l'insieme dei caratteri che si utilizzeranno. Questa operazione viene fatta o modificando direttamente il suddetto file oppure passando un opportuno valore al programma configure nella directory dei sorgenti. Localizzazione di FreeBSD con Lingue Particolari Andrey A. Chernov Contributo originale di - Lingua Russa (codifica KOI8-R) + Lingua Russa (Codifica KOI8-R) localizzazione russo Per maggiori informazioni sulla codifica KOI8-R, si veda la fonte di riferimento per il KOI8-R (Russian Net Character Set). Impostazione del Locale Metti le seguenti righe nel tuo file ~/.login_conf: me:My Account:\ :charset=KOI8-R:\ :lang=ru_RU.KOI8-R: Si veda quanto esposto precedentemente in questo capitolo per degli esempi di impostazione del locale. Configurazione della Console Per le versioni di FreeBSD precedenti la 5.0 aggiungi la seguente opzione nel tuo file di configurazione del kernel: options SC_MOUSE_CHAR=0x03 Per le versioni 4.4 e seguenti inserisci la seguente riga nel file /etc/rc.conf: mousechar_start=3 Utilizza le seguenti impostazioni nel file /etc/rc.conf: keymap="ru.koi8-r" scrnmap="koi8-r2cp866" font8x16="cp866b-8x16" font8x14="cp866-8x14" font8x8="cp866-8x8" Per ogni voce ttyv* nel file /etc/ttys, usa cons25r come tipo di terminale. Si veda quanto esposto in precedenza in questo capitolo per degli esempi su come impostare la console. Configurazione della Stampante stampanti Dal momento che la maggior parte delle stampanti con caratteri russi hanno a livello hardware la codifica codepage CP866, è necessario utilizzare uno speciale filtro di conversione da KOI8-R a CP866. Tale filtro viene installato di default come /usr/libexec/lpr/ru/koi2alt. La voce per una stampante russa dovrebbe apparire perciò così in /etc/printcap: lp|Russian local line printer:\ :sh:of=/usr/libexec/lpr/ru/koi2alt:\ :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs: Si veda &man.printcap.5; per una spiegazione dettagliata del significato dei vari campi. - Nomi di File Russo e File System MS-DOS + Nomi di File Russo e File System &ms-dos; La seguente voce d'esempio di &man.fstab.5; abilita il supporto - per i nomi di file in russo su file system MS-DOS: + per i nomi di file in russo su file system &ms-dos;: /dev/ad0s2 /dos/c msdos rw,-W=koi2dos,-L=ru_RU.KOI8-R 0 0 - Vedere &man.mount.msdos.8; per una dettagliata descrizione - delle opzioni e . + L'opzione seleziona il nome locale usato, e + imposta la tabella di coversione dei caratteri. + Per usare l'opzione , assicurati di montare + /usr prima della partizione &ms-dos; + perché le tabelle di conversione sono posizionate in + /usr/libdata/msdosfs. Per maggiori informazioni, + guarda la pagina man di &man.mount.msdos.8;. Configurazione di X11 Segui innanzitutto la configurazione del locale in console come descritto in precedenza. Il locale russo KOI8-R potrebbe non funzionare con le vecchie versioni di - XFree86 (precedenti alla 3.3). - XFree86 4.X è ora la + &xfree86; (precedenti alla 3.3). + &xfree86; 4.X è ora la versione di default del sistema X Window in FreeBSD. Perciò non dovrebbe costituire più un problema a meno che non stai usando una versione piuttosto vecchia di FreeBSD. Vai nella directory /usr/ports/russian/X.language e dai il seguente comando: &prompt.root; make install Questo port installa l'ultima versione disponibile dei font - KOI8-R. XFree86 3.3 possiede + KOI8-R. &xfree86; 3.3 possiede già alcuni font KOI8-R, ma questi sono meglio dimensionati. Controlla la sezione "Files" nel tuo file /etc/XF86Config. Le seguenti righe devono essere aggiunte prima di qualsiasi altra voce FontPath: FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi" Se utilizzi una modalità video ad alta risoluzione, scambia le righe 75 dpi e 100 dpi. Per attivare la tastiera russa, aggiungi alla sezione "Keyboard" del tuo file XF86Config queste cose. - Per XFree86 v3.X: + Per &xfree86; v3.X: XkbLayout "ru" XkbOptions "grp:caps_toggle" - Per XFree86 v4.X: + Per &xfree86; v4.X: Option "XkbLayout" "ru" Option "XkbOptions" "grp:caps_toggle" Verifica inoltre che la riga XkbDisable sia commentata. Il tasto per passare dalla codifica russa (RUS) a quella dei caratteri latini (LAT) è CapsLock. La normale funzione del tasto CapsLock è ancora disponibile mediante la combinazione di tasti Shift - CapsLockCapsLock (solamente in modalità LAT). - Se hai i tasti Windows sulla tua tastiera, e + Se hai i tasti &windows; sulla tua tastiera, e noti che alcuni tasti non alfabetici sono mappati non correttamente in modalità RUS, aggiungi in XF86Config la seguente riga. - Per XFree86 v3.X: + Per &xfree86; v3.X: XkbVariant "winkeys" - Per XFree86 v4.X: + Per &xfree86; v4.X: Option "XkbVariant" "winkeys" La tastiera russa XKB potrebbe non funzionare con le vecchie - versioni di XFree86; vedere la + versioni di &xfree86;; vedere la nota precedente per ulteriori informazioni a riguardo. La tastiera russa XKB potrebbe anche presentare delle anomalie anche con applicazioni che non abbiamo il supporto per la localizzazione. Queste applicazioni dovrebbero come minimo effettuare all'avvio una chiamata alla funzione XtSetLanguageProc (NULL, NULL, NULL);. Vedere KOI8-R per X Window per più informazioni su come localizzare un'applicazione. Localizzazione del Cinese Tradizionale per Taiwan localizzazione cinese tradizionale Il FreeBSD-Taiwan Project fornisce un tutorial riguardo a I18N/L10N per FreeBSD all'indirizzo per l'utilizzo di gran parte delle applicazioni in cinese. L'autore del tutorial zh-l10n-tut è Clive Lin Clive@CirX.org. Puoi anche prelevare, utilizzando CVS, all'indirizzo freebsd.sinica.edu.tw le seguenti raccolte: Collezione Descrizione outta-port tag=. Collezione dei port beta per il cinese zh-l10n-tut tag=. Tutorial sulla localizzazione di FreeBSD in cinese tradizionale, codifica BIG-5 zh-doc tag=. Traduzione della documentazione di FreeBSD in cinese tradizionale BIG-5 Chuan-Hsing Shen s874070@mail.yzu.edu.tw ha creato la Chinese FreeBSD Collection (CFC) utilizzando zh-l10n-tut del FreeBSD-Taiwan Project. I pacchetti e i file di script sono disponibili all'url . Localizzazione della Lingua Tedesca (per Tutte le Lingue ISO 8859-1) localizzazione tedesco Slaven Rezic eserte@cs.tu-berlin.de ha scritto un tutorial su come utilizzare le lettere con l'umlaut su una macchina FreeBSD. Il tutorial è scritto in tedesco e disponibile all'indirizzo . Localizzazione della Lingua Giapponese e Coreana localizzazione giapponese localizzazione coreano Per il giapponese, vedere l'url , per il coreano, l'url . Documentazione Non Inglese per FreeBSD Alcuni volontari hanno tradotto parte della documentazione di FreeBSD in altre lingue. Questo materiale è raggiungibile seguendo i link segnalati sul sito ufficiale di FreeBSD oppure sotto la directory /usr/share/doc. diff --git a/it_IT.ISO8859-15/books/handbook/mail/chapter.sgml b/it_IT.ISO8859-15/books/handbook/mail/chapter.sgml index e479fe071c..40d2701b46 100644 --- a/it_IT.ISO8859-15/books/handbook/mail/chapter.sgml +++ b/it_IT.ISO8859-15/books/handbook/mail/chapter.sgml @@ -1,1329 +1,1570 @@ Bill Lloyd Lavoro originale di Jim Mock Rielaborato da Posta Elettronica Sinossi email posta elettronica La Posta Elettronica, meglio conosciuta come email, è una delle forme di comunicazione maggiormente utilizzate tutt'oggi. Questo capitolo fornisce un'introduzione di base per eseguire un server di posta su FreeBSD. Comunque, questo non è un riferimento completo e infatti molte considerazioni importanti sono omesse. Per coprire questo argomento in modo più completo, si rimanda il lettore alla moltitudine di eccellenti libri elencati nell'. Dopo aver letto questo capitolo, saprai: Quali componenti software vengono coinvolti nell'invio e nella ricezione della posta elettronica. Dove sono collocati in FreeBSD i file di configurazione fondamentali di sendmail. Come impedire agli spammer di usare illegalmente il tuo server di posta come un relay. Come installare e configurare un mail transfer agent alternativo sul tuo sistema, sostituendo sendmail. Come risolvere i problemi più frequenti legati al server di posta. - + + + Come usare SMTP con UCCP. + + + + Come usare la posta con una connessione dialup. + + Come configurare l'Autenticazione SMTP per aumentare la sicurezza. Prima di leggere questo capitolo, dovresti: Aver configurato correttamente la tua connessione di rete (). Aver configurato correttamente le informazioni DNS relative alla tua macchina server di posta (). Sapere come installare software aggiuntivo di terze parti (). Utilizzo della Posta Elettronica POP IMAP DNS Ci sono cinque parti principali impegnate in uno scambio di email. Queste sono: il programma client, quello server, il DNS, un demone POP o IMAP, e naturalmente la macchina server di posta. Il Programma Client Questo include programmi a riga di comando quali mutt, pine, elm, e mail, e programmi con un'interfaccia grafica (GUI) quali balsa, xfmail per citarne alcuni, e qualcosa di più raffinato simile a un browser WWW. Questi programmi semplicemente fanno passare le transazioni email alla macchina server di posta locale, chiamando uno dei programmi server disponibili o inoltrando queste transazioni via TCP. Il Programma Server server di posta sendmail server di posta postfix server di posta qmail server di posta exim Questo è solitamente sendmail (di default su FreeBSD) o uno degli altri server di posta come qmail, postfix, o exim. Ne esistono altri, ma questi sono i più usati. Di solito il programma server svolge due funzioni—si occupa di ricevere la posta in arrivo e di consegnare quella in partenza. Non puoi connetterti al programma server via POP o IMAP per leggere la tua posta. Per far questo hai bisogno di un altro demone. Devi sapere che alcune vecchie versioni di sendmail hanno alcuni seri problemi di sicurezza, comunque finché eseguirai l'ultima versione di sendmail non dovresti avere problemi. Come sempre, è una buona idea mantenere aggiornato il software che usi. Email e DNS Il DNS (Domain Name System) e il suo demone named giocano un ruolo fondamentale nella consegna della posta. Per consegnare la posta dal tuo host a un altro, il programma server cercherà l'host nel DNS per determinare la macchina server che riceverà la posta per il destinatario. Viene utilizzato lo stesso meccanismo quando si riceve la propria posta. Il DNS contiene il database per mappare un nome host in un indirizzo IP, e un nome host in una macchina server di posta. L'indirizzo IP è specificato in un record A. Il record MX (Mail eXchanger) specifica la macchina server che riceverà la tua posta. Se non hai un record MX per il tuo nome host, la posta sarà consegnata direttamente al tuo host. Ricezione della Posta email ricezione La ricezione della posta per il tuo dominio viene realizzata dalla macchina server di posta. Questa raccoglierà la posta indirizzata a te e la salverà per una successiva lettura o scaricamento. Per scaricare la posta salvata, dovrai collegarti al server di posta. Questo può essere fatto usando POP o IMAP. Se desideri leggere la posta direttamente sulla macchina server, allora il server POP o IMAP non è necessario. POP IMAP Se vuoi eseguire un server POP o IMAP, ci sono due cose che devi fare: Prendere un demone POP o IMAP dalla collezione di port e installarlo sul tuo sistema. Modificare /etc/inetd.conf per caricare il server POP o IMAP. La Macchina Server di Posta macchina server di posta La macchina server di posta è il nome del server che è responsabile della consegna e del ricevimento della posta per il tuo host, ed eventualmente per la tua rete. Christopher Shumway Contributo di Configurazione di <application>sendmail</application> sendmail &man.sendmail.8; è il Mail Transfer Agent (MTA) di default su FreeBSD. Il compito di sendmail è di accettare posta dai Mail User Agent (MUA), e consegnarla al server di posta appropriato come definito nel suo file di configurazione. Inoltre sendmail può accettare connessioni via rete e consegnare i messaggi a caselle di posta locali o ad un altro programma. sendmail utilizza i seguenti file di configurazione: /etc/mail/access /etc/mail/aliases /etc/mail/local-host-names /etc/mail/mailer.conf /etc/mail/mailertable /etc/mail/sendmail.cf /etc/mail/virtusertable File Funzione /etc/mail/access File database di accesso di sendmail /etc/mail/aliases Alias delle caselle di posta /etc/mail/local-host-names Lista di host per i quali sendmail accetta posta /etc/mail/mailer.conf File di configurazione del programma di posta /etc/mail/mailertable Tabella di consegna del programma di posta /etc/mail/sendmail.cf File di configurazione principale di sendmail /etc/mail/virtusertable Tabelle degli utenti e dei domini virtuali <filename>/etc/mail/access</filename> Il database di accesso definisce quali host o indirizzi IP hanno accesso al server di posta locale e quale tipo di accesso hanno. Gli host possono essere catalogati come , , o possono semplicemente essere passati alla procedura di gestione degli errori di sendmail con un preciso errore. Gli host che sono definiti , che è il valore di default, possono spedire posta a questo host sempre che la destinazione finale della posta sia la macchina locale. Gli host che sono definiti vengono rifiutati per qualsiasi connessione di posta. Gli host che hanno l'opzione per i loro nomi host possono utilizzare questo server per spedire posta verso qualsiasi destinazione. Configurazione del Database di Accesso di <application>sendmail</application> cyberspammer.com 550 Non accettiamo posta dagli spammer FREE.STEALTH.MAILER@ 550 Non accettiamo posta dagli spammer altra.sorgente.di.spam REJECT okay.cyberspammer.com OK 128.32 RELAY In questo esempio abbiamo cinque elementi. Gli host mittenti che corrispondono a quelli posti sul lato sinistro della tabella sono condizionati dall'azione posta sul lato destro della tabella. I primi due esempi passano un codice di errore alla procedura di sendmail che gestisce gli errori. Il messaggio viene restituito all'host remoto quando viene trovata una corrispondenza sul lato sinistro della tabella. Il terzo esempio rifiuta la posta da un host specifico su Internet, altra.sorgente.di.spam. Il quarto esempio accetta connessioni di posta da un host, okay.cyberspammer.com, che è più preciso rispetto a cyberspammer.com della prima linea. Le corrispondenze più precise sovrascrivono quelle meno precise. L'ultimo esempio permette il relay della posta elettronica agli host che hanno un indirizzo IP che inizia con 128.32. Questi host possono spedire messaggi destinati ad altri server di posta attraverso questo server. Quando modifichi questo file, devi eseguire make in /etc/mail/ per aggiornare il database. <filename>/etc/mail/aliases</filename> Il database degli alias contiene una lista di caselle di posta virtuali che sono espanse in altri utenti, file, programmi o in altri alias. Seguono alcuni esempi che possono essere usati in /etc/mail/aliases: Alias di Posta root: utentelocale ftp-bugs: joe,eric,paul bit.bucket: /dev/null procmail: "|/usr/local/bin/procmail" Il formato del file è semplice: il nome della casella di posta che si trova a sinistra dei due punti viene espanso negli elementi posti a destra dei due punti. Il primo esempio semplicemente espande la casella di posta root nella casella di posta utentelocale, che è di nuovo ricercata nel database degli alias. Se non viene trovata, allora il messaggio viene consegnato all'utente locale utentelocale. L'esempio successivo mostra una mailing list. La posta indirizzata alla casella di posta ftp-bugs viene espansa nelle tre caselle di posta locali joe, eric, e paul. Nota che una casella di posta remota può essere specificata come user@example.com. Il terzo esempio mostra come scrivere la posta su un file, in questo caso /dev/null. L'ultimo esempio mostra come mandare la posta a un programma, in questo caso il messaggio di posta diventa lo standard input di /usr/local/bin/procmail - tramite una pipe Unix. + tramite una pipe &unix;. Quando modifichi questo file, devi eseguire make in /etc/mail/ per aggiornare il database. <filename>/etc/mail/local-host-names</filename> Questo file è una lista di nomi host che &man.sendmail.8; accetta come se fossero l'host locale. Metti i domini o gli host per i quali sendmail deve ricevere posta. Per esempio, se questo server di posta dovesse essere in grado di accettare posta per il dominio example.com e per l'host mail.example.com, il suo local-host-names potrebbe assomigliare a questo: example.com mail.example.com Quando modifichi questo file, devi riavviare &man.sendmail.8; per attivare i cambiamenti. <filename>/etc/mail/sendmail.cf</filename> Il file di configurazione principale di sendmail, sendmail.cf controlla l'intero comportamento di sendmail, inclusa ogni cosa, dalla rielaborazione degli indirizzi e-mail alla stampa del messaggio di rifiuto per i server di posta remoti. Naturalmente, avendo svariati compiti, questo file di configurazione è alquanto complesso e i suoi dettagli vanno oltre lo scopo di questa sezione. Fortunatamente, questo file necessita raramente di essere modificato per server di posta standard. Il file di configurazione principale di sendmail può essere costruito a partire da macro &man.m4.1; che definiscono le caratteristiche e il comportamento di sendmail. Guarda /usr/src/contrib/sendmail/cf/README per ulteriori dettagli. Quando modifichi questo file, devi riavviare &man.sendmail.8; per attivare i cambiamenti. <filename>/etc/mail/virtusertable</filename> Il file virtusertable mappa indirizzi di posta relativi a domini e caselle di posta virtuali in caselle di posta reali. Queste caselle di posta possono essere locali, remote, alias definiti in /etc/mail/aliases o file. Esempio di Mappatura per la Posta di un Dominio Virtuale root@example.com root postmaster@example.com postmaster@noc.example.net @example.com joe Nell'esempio precedente, abbiamo una mappatura per il dominio example.com. Questo file viene processato dall'alto verso il basso fermandosi alla prima corrispondenza trovata. Il primo elemento mappa root@example.com nella casella di posta locale root. Il secondo elemento mappa postmaster@example.com nella casella di posta postmaster sull'host noc.example.net. Infine, se non sono state trovate corrispondenze per example.com fino a questo punto, verrà verificata l'ultima mappatura, che corrisponde a tutti gli altri messaggi di posta indirizzati a qualche utente di example.com. Questo verrà mappato nella casella di posta locale joe. Andrew Boothman Scritto da Gregory Neil Shapiro Informazioni prese da e-mail scritte da Sostituzione del proprio Mail Transfer Agent email cambiare mta Come già menzionato, l'MTA (Mail Transfer Agent, agente di trasferimento della posta elettronica) installato di default su FreeBSD è sendmail. Di conseguenza sendmail è responsabile della tua posta in partenza e di quella in arrivo. Comunque, per vari motivi, alcuni amministratori necessitano di cambiare l'MTA dei loro sistemi. Questi motivi spaziano dal voler semplicemente provare un altro MTA all'aver bisogno di una caratteristica o di un pacchetto specifico ritrovabile in un altro MTA. Fortunatamente, per qualsiasi motivo, FreeBSD semplifica il processo di sostituzione. Installazione di un nuovo MTA Hai un'ampia scelta di MTA utilizzabili. Un buon punto di partenza è la FreeBSD Ports Collection dove puoi trovarne molti. Naturalmente sei libero di usare qualunque MTA proveniente da qualche sito, a condizione che tu riesca ad eseguirlo sotto FreeBSD. Inizia installando il tuo nuovo MTA. Una volta installato devi valutare se realmente soddisfa le tue necessità, inoltre devi avere la possibilità di configurare il tuo nuovo programma prima che subentri a sendmail. Valutato questo, devi essere sicuro che durante l'installazione del nuovo programma non ci siano stati tentativi di sovrascrivere binari di sistema come /usr/bin/sendmail. Altrimenti, il tuo nuovo programma di posta è stato essenzialmente messo in attività prima che tu l'abbia configurato. Per cortesia fai riferimento alla documentazione dell'MTA che hai scelto per informazioni su come configurarlo. Disabilitazione di <application>sendmail</application> La procedura usata per avviare sendmail cambia significativamente tra la 4.5-RELEASE e la 4.6-RELEASE. Di conseguenza, la procedura usata per disabilitarlo è leggermente differente a seconda della versione di FreeBSD utilizzata. FreeBSD 4.5-STABLE prima del 4/4/2002 e precedenti (inclusa 4.5-RELEASE e precedenti) Metti: sendmail_enable="NO" in /etc/rc.conf. In questo modo si disabiliterà il servizio di ricezione della posta di sendmail, ma se /etc/mail/mailer.conf (vedi sotto) non viene modificato, sendmail verrà ancora usato per spedire e-mail. FreeBSD 4.5-STABLE dopo il 4/4/2002 (inclusa 4.6-RELEASE e successive) Per disabilitare completamente sendmail devi mettere sendmail_enable="NONE" in /etc/rc.conf. Se disabiliti il servizio di consegna della posta di sendmail in questo modo, è importante che questo venga rimpiazzato con un altro sistema di consegna della posta perfettamente funzionante. Se non lo farai, le funzioni di sistema come &man.periodic.8; saranno incapaci di inviare i loro risultati tramite e-mail come normalmente prevedono di fare. Molte parti del tuo sistema potrebbero presupporre di avere un sistema funzionante compatibile con sendmail. Se le applicazioni continuano a usare i binari di sendmail per tentare di spedire e-mail dopo che tu l'hai disabilitato, la posta potrebbe finire in una coda inattiva di sendmail, senza che venga mai consegnata. Se vuoi solamente disabilitare il servizio di ricezione della posta di sendmail, devi mettere sendmail_enable="NO" in /etc/rc.conf. Molte informazioni sulle opzioni di avvio di sendmail sono disponibili nella pagina man di &man.rc.sendmail.8;. Esecuzione del nuovo MTA all'avvio Hai due possibili metodi per eseguire il tuo nuovo MTA all'avvio, a seconda della versione di FreeBSD utilizzata. FreeBSD 4.5-STABLE prima del 11/4/2002 (inclusa 4.5-RELEASE e precedenti) Posiziona uno script in /usr/local/etc/rc.d/ con estensione .sh ed eseguibile da root. Lo script deve accettare i parametri start e stop. Nella fase di avvio di FreeBSD gli script di sistema eseguiranno il comando /usr/local/etc/rc.d/supermailer.sh start che puoi anche usare per avviare manualmente il server. Nella fase di chiusura di FreeBSD, gli script di sistema useranno l'opzione stop, eseguendo il comando /usr/local/etc/rc.d/supermailer.sh stop che puoi anche usare per arrestare manualmente il server mentre il sistema è in funzione. FreeBSD 4.5-STABLE dopo il 11/4/2002 (inclusa 4.6-RELEASE e successive) Con le versioni recenti di FreeBSD, puoi usare il metodo precedente oppure puoi mettere mta_start_script="nomefile" in /etc/rc.conf, dove nomefile è il nome dello script che vuoi eseguire all'avvio per avviare il tuo MTA. Sostituzione di <application>sendmail</application> come programma di posta di default del sistema sendmail è così - onnipresente come programma standard su sistemi Unix che alcuni + onnipresente come programma standard su sistemi &unix; che alcuni programmi lo suppongono già installato e configurato. Per questa ragione, molti degli altri MTA forniscono la loro compatibile implementazione dell'interfaccia a riga di comando di sendmail; questo agevola il loro utilizzo come sostituti drop-in di sendmail. Quindi, se usi un altro programma di posta, dovrai assicurarti che i programmi che tentano di eseguire i binari standard di sendmail come /usr/bin/sendmail in realtà eseguano il programma di posta da te scelto. Fortunatamente, FreeBSD fornisce un meccanismo chiamato &man.mailwrapper.8; che fa questo lavoro per te. Quando sendmail è operativo, dovresti vedere in /etc/mail/mailer.conf qualcosa di simile a questo: sendmail /usr/libexec/sendmail/sendmail send-mail /usr/libexec/sendmail/sendmail mailq /usr/libexec/sendmail/sendmail newaliases /usr/libexec/sendmail/sendmail hoststat /usr/libexec/sendmail/sendmail purgestat /usr/libexec/sendmail/sendmail Questo significa che quando uno di questi comandi (come sendmail stesso) viene eseguito, in realtà il sistema invoca una copia di mailwrapper di nome sendmail, la quale esamina mailer.conf ed esegue /usr/libexec/sendmail/sendmail. Questo meccanismo facilita la sostituzione dei binari che sono realmente eseguiti quando vengono invocate queste funzioni di default di sendmail. Quindi se vuoi che /usr/local/supermailer/bin/sendmail-compat sia eseguito al posto di sendmail, devi modificare /etc/mail/mailer.conf in questo modo: sendmail /usr/local/supermailer/bin/sendmail-compat send-mail /usr/local/supermailer/bin/sendmail-compat mailq /usr/local/supermailer/bin/mailq-compat newaliases /usr/local/supermailer/bin/newaliases-compat hoststat /usr/local/supermailer/bin/hoststat-compat purgestat /usr/local/supermailer/bin/purgestat-compat Conclusione Una volta che hai configurato ogni cosa a tuo piacimento, devi terminare i processi di sendmail di cui non hai più bisogno e avviare i processi appartenenti al tuo nuovo programma, oppure puoi semplicemente riavviare il sistema. Riavviando il sistema avrai la possibilità di verificare se il sistema sia stato configurato correttamente per eseguire il tuo nuovo MTA in modo automatico all'avvio. Risoluzione dei Problemi email risoluzione dei problemi Perché devo usare nomi di dominio completi (FQDN) per gli host del mio dominio? Probabilmente ti accorgerai che l'host è effettivamente in un dominio differente; per esempio, se sei in foo.bar.edu e desideri raggiungere un host chiamato mumble appartenente al dominio bar.edu, dovrai riferirti a questo tramite un nome di dominio completo, mumble.bar.edu, invece del solo mumble. BIND Tradizionalmente, questo era permesso dai resolver BIND di BSD. Tuttavia la versione corrente di BIND equipaggiata con FreeBSD non prevede più l'abbreviazione di default per nomi di dominio non completi all'infuori del dominio in cui sei. Quindi l'host mumble sarà giudicato come mumble.foo.bar.edu, oppure sarà ricercato per il dominio radice. Questo differisce dal comportamento precedente, dove la ricerca continuava attraverso mumble.bar.edu, e mumble.edu. Dai un'occhiata all'RFC 1535 per i motivi per cui questa sia considerata una cattiva pratica, o persino un buco di sicurezza. Come buona soluzione al problema, puoi mettere la linea: search foo.bar.edu bar.edu al posto della precedente: domain foo.bar.edu nel tuo /etc/resolv.conf. Comunque, assicurati che l'ordine di ricerca non oltrepassi il confine tra amministrazione locale e pubblica, come definito nell'RFC 1535. sendmail riporta l'errore mail loops back to myself La risposta è contenuta nelle FAQ di sendmail come segue: Ottengo messaggi di Local configuration error, come questo: 553 relay.domain.net config error: mail loops back to myself 554 <user@domain.net>... Local configuration error Come posso risolvere questo problema? Hai chiesto che la posta per il dominio (es., domain.net) sia inoltrata a un host specifico (in questo caso, relay.domain.net) attraverso l'uso di un record MX, ma la macchina di inoltro non si riconosce appartenente a domain.net. Aggiungi domain.net in /etc/mail/local-host-names (se stai usando FEATURE(use_cw_file)) oppure aggiungi Cw domain.net in /etc/mail/sendmail.cf. Le FAQ di sendmail possono essere trovate su ed è raccomandato leggerle se vuoi perfezionare la tua configurazione di posta. PPP - Come posso eseguire un server di posta su un host connesso ad - Internet tramite PPP? + Come posso eseguire un server di posta su un host connesso in + dial-up tramite PPP? Vuoi collegare ad Internet una macchina FreeBSD posta sulla tua LAN. La macchina FreeBSD sarà un gateway di posta per la LAN. La connessione PPP non è molto indicata per questo scopo. UUCP Esistono almeno due modi per far questo. Un modo è usare UUCP. L'altro è trovare un server Internet a tempo pieno che fornisca un servizio MX secondario per il tuo dominio. Per esempio, se il dominio della tua società è example.com e il tuo fornitore di servizi Internet ha attivato example.net per fornire il servizio - MX secondario al tuo dominio: + MX secondario al tuo dominio, allora: example.com. MX 10 example.com. MX 20 example.net. Solo un host deve essere specificato come ultimo ricevente (aggiungi Cw example.com in /etc/mail/sendmail.cf su example.com). Quando sendmail tenterà di consegnare la posta proverà a connettersi alla tua connessione modem (example.com). Molto probabilmente finirà in time out poiché non sei online. In modo automatico sendmail consegnerà la posta al server MX secondario, ad esempio il tuo provider Internet (example.net). Il server MX secondario tenterà periodicamente di collegarsi al tuo host per consegnare la posta all'host MX primario (example.com). Come script di login potresti usare qualcosa di simile a questo: #!/bin/sh # Mettimi in /usr/local/bin/pppmyisp ( sleep 60 ; /usr/sbin/sendmail -q ) & /usr/sbin/ppp -direct pppmyisp Se hai intenzione di creare uno script di login separato per un utente potresti usare sendmail -qRexample.com nello script precedente. Questo forzerà a processare immediatamente tutta la posta per example.com situata nella tua coda. Segue un'ulteriore sottigliezza della situazione: Messaggio rubato dalla &a.isp;. > forniamo l'MX secondario per un cliente. Il cliente si connette > automaticamente ai nostri servizi molte volte al giorno per ottenere la > posta per il suo MX primario (non chiamiamo il suo server quando arriva > posta per il suo dominio). Il nostro sendmail processa la posta in coda > ogni 30 minuti. Attualmente il cliente sta 30 minuti online per assicurarsi > che tutta la posta vada all'MX primario. > > Esiste un comando che permetta di configurare sendmail in modo tale da > spedire tutta la posta in quel momento? Naturalmente l'utente non ha > privilegi di root sulla nostra macchina. Nella sezione privacy flags di sendmail.cf, c'è una definizione Opgoaway,restrictqrun Rimuovi restrictqrun per permettere a utenti non root di avviare l'elaborazione della coda. Inoltre potresti risistemare gli MX. Noi siamo l'MX primario per i nostri clienti come questo, e abbiamo definito: # Se siamo il miglior MX per un host, prova direttamente invece di generare # errori di configurazione locale. OwTrue In questo modo un server remoto consegnerà direttamente a te, senza tentare di connettersi al cliente. Dopodiché tu spedisci al tuo cliente. Funziona solamente con gli host, quindi hai bisogno che il tuo cliente chiami la sua macchina di posta customer.com così come nomehost.customer.com nel DNS. Basta mettere un record A nel DNS per customer.com. Perché continuo a ottenere l'errore Relaying Denied quando spedisco posta da altri host? Con l'installazione di default di FreeBSD, sendmail viene configurato in modo tale da permettere di spedire posta solamente dall'host sul quale è in esecuzione. Per esempio, se c'è installato un server POP3, allora gli utenti saranno in grado di controllare la posta da scuola, dal lavoro, o da altre postazioni remote ma tuttavia non potranno inviare messaggi di posta all'esterno da postazioni esterne. Tipicamente, pochi istanti dopo il tentativo, verrà spedita una email da MAILER-DAEMON con il messaggio di errore 5.7 Relaying Denied. Esistono diversi modi per aggirare questo problema. La soluzione più semplice è mettere il proprio indirizzo assegnato dall'ISP nel file che contiene i domini a cui viene permesso di effettuare il relay, /etc/mail/relay-domains. Un modo veloce per far questo può essere: &prompt.root; echo "your.isp.example.com" > /etc/mail/relay-domains Dopo aver creato o modificato questo file devi riavviare sendmail. Questa soluzione è ideale se sei un amministratore del server e non desideri spedire posta localmente, o se vorresti usare un client/sistema punta e clicca su un'altra macchina o perfino su un altro ISP. Inoltre è molto utile se hai solo uno o due account di posta configurati. Se ci sono molti indirizzi da aggiungere, puoi semplicemente aprire questo file con il tuo editor di testo preferito e aggiungere i domini, uno per riga: your.isp.example.com other.isp.example.net users-isp.example.org www.example.org Ora l'invio della posta tramite il tuo sistema, da parte di qualche host in lista (a condizione che l'utente abbia un account sul tuo sistema), avrà successo. Questo è un buon metodo per permettere agli utenti di spedire posta dal tuo sistema in modo remoto senza dare la possibilità a qualcuno di spedire SPAM tramite il tuo sistema. Argomenti Avanzati La seguente sezione tratta argomenti più complicati come l'organizzazione e la configurazione della posta per tutto il tuo dominio. Configurazione di Base email configurazione Dalla macchina FreeBSD, dovresti essere in grado di spedire posta a host esterni a condizione di aver sistemato /etc/resolv.conf o di avere in esecuzione un proprio server dei nomi. Se vuoi che la posta per il tuo host sia consegnata all'MTA (es., sendmail) in esecuzione sul tuo host FreeBSD, esistono due metodi per farlo: Eseguire un proprio server dei nomi e avere un proprio dominio. Per esempio, FreeBSD.org Ricevere la posta direttamente sul tuo host. Questo viene fatto consegnando la posta direttamente al nome DNS corrente della tua macchina. Per esempio, example.FreeBSD.org. SMTP Indipendentemente dal metodo scelto, affinché la posta possa essere consegnata direttamente al tuo host, devi avere un indirizzo IP statico permanente (non un indirizzo dinamico, come avviene - nella maggior parte delle configurazioni di connessioni PPP). Se sei + nella maggior parte delle configurazioni dial-up di PPP). Se sei dietro a un firewall, devi abilitare il traffico SMTP in entrata. Se vuoi ricevere la posta direttamente sul tuo host, devi verificare una di queste due cose: record MX Assicurati che il record MX (con il numero più basso) relativo al tuo host nel tuo DNS punti all'indirizzo IP del tuo host. Assicurati che non ci siano record MX nel tuo DNS per il tuo host. Entrambi questi due metodi ti permettono di ricevere posta direttamente sul tuo host. Prova questi comandi: &prompt.root; hostname example.FreeBSD.org &prompt.root; host example.FreeBSD.org example.FreeBSD.org has address 204.216.27.XX Se ottieni un risultato simile, l'invio diretto a yourlogin@example.FreeBSD.org dovrebbe funzionare senza problemi (assumendo che sendmail sia correttamente in esecuzione su example.FreeBSD.org). Se invece vedi qualcosa di simile a questo: &prompt.root; host example.FreeBSD.org example.FreeBSD.org has address 204.216.27.XX example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org Tutta la posta spedita al tuo host (example.FreeBSD.org) finirà per essere raccolta su hub sotto lo stesso nome utente invece di essere spedita direttamente al tuo host. L'informazione precedente viene gestita dal tuo server DNS. Il record DNS che riporta l'informazione di instradamento della posta è l'elemento Mail eXchange. Se non esistono record MX, la posta sarà consegnata direttamente all'host attraverso il suo indirizzo IP. L'elemento MX per freefall.FreeBSD.org in passato assomigliava a questo: freefall MX 30 mail.crl.net freefall MX 40 agora.rdrop.com freefall MX 10 freefall.FreeBSD.org freefall MX 20 who.cdrom.com Come puoi vedere, freefall aveva molti elementi MX. Il numero MX più basso è l'host che, se disponibile, riceve direttamente la posta; se per qualche ragione questo non è accessibile, gli altri (qualche volta chiamati MX di backup) accettano i messaggi temporaneamente, e li passano all'host attivo con numero inferiore, fino all'host con il numero più basso. I server MX alternativi dovrebbero avere connessioni Internet indipendenti dalla propria al fine di risultare più utili. Il tuo ISP o un tuo amico non dovrebbero avere problemi a darti questo servizio. Posta per il Tuo Dominio Per organizzare un server di posta hai bisogno che la posta inviata alle stazioni di lavoro sia ricevuta direttamente sul server di posta. Sostanzialmente, hai bisogno di richiedere che la posta per i nomi host del tuo dominio (in questo caso *.FreeBSD.org) sia deviata al server di posta in modo tale che i tuoi utenti possono raccogliere la loro posta sul server di posta principale. DNS Per rendere la vita più facile, dovrebbe esistere su entrambe le macchine un account utente con lo stesso nome utente. Usa &man.adduser.8; per farlo. La macchina server di posta che utilizzerai deve essere designata come la macchina che scambia la posta per tutte le postazioni sulla rete. Questo viene realizzato attraverso la configurazione del DNS in modo simile a quanto segue: example.FreeBSD.org A 204.216.27.XX ; Stazione di lavoro MX 10 hub.FreeBSD.org ; Server di posta In questo modo la posta per la stazione di lavoro sarà reindirizzata al server di posta senza preoccuparsi dove punti il record A. La posta viene inviata all'host MX. Non puoi effettuare queste modifiche da solo a meno che non hai in esecuzione un tuo server DNS. Se non puoi eseguire un server DNS, consulta il tuo ISP o chiunque ti fornisca il servizio DNS. Se stai facendo dell'hosting di posta elettronica virtuale, le seguenti informazioni ti torneranno utili. In questo esempio, assumiamo che hai un cliente con un proprio dominio, in questo caso customer1.org, e vuoi che tutta la posta per customer1.org sia spedita alla tua macchina server di posta mail.myhost.com. L'elemento nel tuo DNS dovrebbe assomigliare a questo: customer1.org MX 10 mail.myhost.com Non hai bisogno di un record A per customer1.org se vuoi solamente gestire la posta per tale dominio Sii consapevole che un ping su customer1.org non funzionerà se non esiste un record A per tale dominio. L'ultima cosa che devi fare è indicare a sendmail, posto sulla tua macchina server, per quali domini e/o host deve accettare posta. Esistono differenti modi per farlo. I seguenti due funzionano entrambi: Se usi FEATURE(use_cw_file) aggiungi gli host al tuo file /etc/mail/local-host-names. Se usi una versione di sendmail precedente alla 8.10, il file da usare è /etc/sendmail.cw. Se usi la versione di sendmail 8.10 o superiore aggiungi la riga Cwyour.host.com al tuo /etc/sendmail.cf o /etc/mail/sendmail.cf. - + + + SMTP con UUCP + + La configurazione di sendmail di default + su FreeBSD è designata per siti che si collegano direttamente a + Internet. I siti che vogliono scambiarsi lo loro posta tramite + UUCP devono installare un altro file di configurazione di + sendmail. + + Editare a mano il file /etc/mail/sendmail.cf + è materia da esperti. La versione 8 di + sendmail genera file di configurazione tramite + la preelaborazione di &man.m4.1;, dove l'attuale configurazione avviene + su un livello di astrazione più alto. I file di configurazione + di &man.m4.1; possono essere trovati sotto + /usr/src/usr.sbin/sendmail/cf. + + Se non hai installato un completo albero dei sorgenti sul tuo sistema, + non importa, il materiale di configurazione di + sendmail è stato diviso in un separato + tarball di sorgenti. Assumendo che tu abbia il tuo CDROM dei sorgenti di + FreeBSD montato, esegui: + + &prompt.root; cd /cdrom/src +&prompt.root; cat scontrib.?? | tar xzf - -C /usr/src/contrib/sendmail + + Questo estrae solo alcune centinaia di kilobytes. Il file + README nella directory cf + può servire come introduzione di base alla configurazione + di &man.m4.1;. + + Il miglior modo per supportare la consegna UUCP è usare la + caratteristica mailertable. Questa crea un database + che sendmail può usare per prendere le + decisioni di instradamento. + + Prima di tutto, devi creare il tuo file .mc. + La directory /usr/src/usr.sbin/sendmail/cf/cf + contiene alcuni esempi. Assumendo che tu abbia chiamato il tuo file + foo.mc, tutto quello che devi fare per convertirlo + in un valido sendmail.cf è: + + &prompt.root; cd /usr/src/usr.sbin/sendmail/cf/cf +&prompt.root; make foo.cf +&prompt.root; cp foo.cf /etc/mail/sendmail.cf + + Un tipico file .mc potrebbe assomigliare a + questo: + + VERSIONID(`Il tuo numero di versione') OSTYPE(bsd4.4) + +FEATURE(accept_unresolvable_domains) +FEATURE(nocanonify) +FEATURE(mailertable, `hash -o /etc/mail/mailertable') + +define(`UUCP_RELAY', il.tuo.relay.uucp) +define(`UUCP_MAX_SIZE', 200000) +define(`confDONT_PROBE_INTERFACES') + +MAILER(local) +MAILER(smtp) +MAILER(uucp) + +Cw il.tuo.nome.host.alias +Cw iltuonodouucp.UUCP + + Le righe contenenti le caratteristiche + accept_unresolvable_domains, + nocanonify, and + confDONT_PROBE_INTERFACES impediscono l'uso del DNS + durante la consegna della posta. La clausola + UUCP_RELAY è necessaria per supportare la + consegna UUCP. Metti semplicemente un nome host di Internet che è + in grado di gestire indirizzi di pseudo-domini .UUCP; molto + probabilmente, metterai il relay del tuo ISP. + + Una volta fatto questo, hai bisogno del file + /etc/mail/mailertable. Se hai solo un collegamento + per l'esterno che viene usato per tutta la tua posta, la seguente riga + sarà sufficiente: + + # +# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable +. uucp-dom:il.tuo.relay.uucp + + Un esempio più complesso potrebbe essere simile a + questo: + + # +# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable +# +horus.interface-business.de uucp-dom:horus +.interface-business.de uucp-dom:if-bus +interface-business.de uucp-dom:if-bus +.heep.sax.de smtp8:%1 +horus.UUCP uucp-dom:horus +if-bus.UUCP uucp-dom:if-bus +. uucp-dom: + + Le prime tre righe gestiscono dei casi speciali dove la posta + indirizzata a quel dominio non dovrebbe essere spedita tramite + l'instradamento di default, ma piuttosto tramite alcuni UUCP di confine + al fine di accorciare il percorso di consegna. La quarta + riga gestisce la posta per il dominio Ethernet locale la quale può + essere consegnata usando SMTP. Infine, gli UUCP di confine sono + menzionati con la notazione a pseudo-dominio .UUCP, per permettere a un + uucp-diconfine + !destinatario + di sovrascrivere le regole di default. L'ultima riga è sempre un + singolo punto, a cui corrisponde ogni altra cosa e che rappresenta la + consegna UUCP tramite l'UUCP di confine che viene usato come il tuo + gateway di posta universale verso il mondo. Tutti i nomi dei nodi dietro + alla parola uucp-dom: devono essere validi UUCP di + confine, come puoi verificare usando il comando + uuname. + + Si ricorda che questo file deve essere convertito in un file database + DBM prima di essere usato. La riga di comando che realizza ciò + è messa come un commento in cima al file + mailertable. + Devi sempre eseguire quel comando ogni volta che modifichi il file + mailertable. + + Ultimo suggerimento: se non sei sicuro che alcuni instradamenti di + posta potrebbero funzionare, ricordati l'opzione + di sendmail. Questa avvia + sendmail in modalità test + indirizzo; digita semplicemente 3,0, + seguito dall'indirizzo su cui vuoi verificare l'instradamento della posta. + L'ultima riga ti informa quale agente di posta interno è stato + utilizzato, quale host di destinazione questo agente contatterà, e + l'indirizzo (molto probabilmente tradotto). Lascia questa modalità + digitando + Ctrl + D + . + + &prompt.user; sendmail -bt +ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) +Enter <ruleset> <address> +> 3,0 foo@example.com +canonify input: foo @ example . com +... +parse returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . > +> ^D + + + + Uso della Posta con una Connessione Dialup + + Se hai un indirizzo IP statico, non hai bisogno di adattare nulla alla + configurazione di default. Imposta come nome host il nome Internet che + ti è stato assegnato e sendmail + farà il resto. + + Se hai un indirizzo IP assegnato in modo dinamico e usi una + connessione PPP dialup per Internet, allora probabilmente avrai una + casella di posta sul server di posta del tuo ISP. Assumiamo che il + dominio del tuo ISP sia example.net, + che il tuo nome utente sia user, che hai chiamato + la tua macchina bsd.home, e che il tuo ISP + ti ha detto che puoi usare relay.example.net come relay per la posta. + + Per ricevere la posta dalla tua casella, devi installare un agente + di ricupero. L'utility fetchmail è + una buona scelta poichè supporta diversi tipi di protocolli. + Questo programma è disponibile come package o dalla collezione dei + port (mail/fetchmail). + Di solito, il tuo ISP fornirà POP3. Se stai usando PPP a livello + utente, puoi prelevare automaticamente la tua posta quando viene stabilita + una connessione a Internet mettendo la seguente riga in + /etc/ppp/ppp.linkup: + + MYADDR: +!bg su user -c fetchmail + + Se stai usando sendmail (come mostrato + sotto) per consegnare posta ad account non locali, probabilmente vorrai + che sendmail processi la tua coda di posta + non appena viene stabilita una connessione ad Internet. Per far questo, + metti il seguente comando dopo il comando fetchmail in + /etc/ppp/ppp.linkup. + + !bg su user -c "sendmail -q" + + Assumiamo che tu abbia un account per user su + bsd.home. Nella directory home di + user su bsd.home, crea + il file .fetchmailrc così composto: + + poll example.net protocol pop3 fetchall pass MySecret + + Questo file non dovrebbe essere leggibile da nessuno ad eccezione di + user poichè contiene la password + MySecret. + + Per spedire la posta con il corretto header from:, + devi indicare a sendmail di usare + user@example.net piuttosto che + user@bsd.home. Inoltre vorrai indicare a + sendmail di spedire tutta la posta tramite + relay.example.net, permettendo una veloce + trasmissione della posta. + + Il seguente file .mc dovrebbe essere + sufficiente: + + VERSIONID(`bsd.home.mc version 1.0') +OSTYPE(bsd4.4)dnl +FEATURE(nouucp)dnl +MAILER(local)dnl +MAILER(smtp)dnl +Cwlocalhost +Cwbsd.home +MASQUERADE_AS(`example.net')dnl +FEATURE(allmasquerade)dnl +FEATURE(masquerade_envelope)dnl +FEATURE(nocanonify)dnl +FEATURE(nodns)dnl +define(`SMART_HOST', `relay.example.net') +Dmbsd.home +define(`confDOMAIN_NAME',`bsd.home')dnl +define(`confDELIVERY_MODE',`deferred')dnl + + Fai riferimento alla precedente sezione per i dettagli su come + trasformare questo file .mc nel file + sendmail.cf. Inoltre, non dimenticarti di riavviare + sendmail dopo aver aggiornato il file + sendmail.cf. + + Autenticazione SMTP - + Avere un'Autenticazione SMTP operativa sul tuo server di posta porta numerosi benefici. L'Autenticazione SMTP aggiunge un ulteriore strato di sicurezza a sendmail, e ha il vantaggio di dare agli utenti mobili che cambiano host la possibilità di usare lo stesso server di posta senza avere la necessità di riconfigurare ogni volta i settaggi dei loro programmi client di posta. Installa dai port security/cyrus-sasl. Puoi trovare questo port in security/cyrus-sasl. In fase di compilazione security/cyrus-sasl permette di scegliere molte opzioni e, per il nostro scopo, assicurati di selezionare l'opzione . Dopo aver installato security/cyrus-sasl, edita /usr/local/lib/sasl/Sendmail.conf (o crealo se non esiste) e aggiungi la seguente riga: pwcheck_method: passwd In questo modo si permetterà a sendmail di autenticare gli utenti tramite il proprio database passwd di FreeBSD. Questo procedimento evita di creare un nuovo set di nomi utenti e password per ogni utente che necessita di usare l'autenticazione SMTP, mantenendo la password di login uguale alla password di posta. Ora aggiungi le seguenti righe in /etc/make.conf: + SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL SENDMAIL_LDFLAGS=-L/usr/local/lib SENDMAIL_LDADD=-lsasl Queste righe daranno, in fase di compilazione di sendmail, le giuste opzioni di configurazione per linkare a cyrus-sasl. Assicurati che cyrus-sasl sia installato prima di ricompilare sendmail. Ricompila sendmail eseguendo i seguenti comandi: &prompt.root; cd /usr/src/usr.sbin/sendmail &prompt.root; make cleandir &prompt.root; make obj &prompt.root; make &prompt.root; make install Se /usr/src non ha subito enormi cambiamenti e se le librerie condivise di cui si ha bisogno sono disponibili, la compilazione di sendmail non dovrebbe avere problemi. Dopo aver compilato e reinstallato sendmail, edita il tuo file /etc/mail/freebsd.mc (o qualunque altro file che usi come file .mc. Molti amministratori preferiscono usare, per unicità, l'output di &man.hostname.1; come nome del file .mc). Aggiungi le seguenti righe: dnl set SASL options TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnl Queste opzioni configurano i vari metodi che sendmail ha a disposizione per autenticare gli utenti. Se vuoi usare un metodo diverso da pwcheck, guarda la documentazione inclusa nel package. Per finire, esegui &man.make.1; in /etc/mail. Questo eseguirà il tuo nuovo file .mc e creerà un file .cf di nome freebsd.cf (o con il nome che hai usato per il file .mc). Quindi esegui il comando make install restart, che copierà il file in sendmail.cf, e riavvierà correttamente sendmail. Per maggiori informazioni su questa procedura, dovresti prendere come riferimento /etc/mail/Makefile. - Se tutto è andato per il verso giusto, inserisci le tue - informazioni di login nel programma client di posta ed invia un messaggio - di prova. Per ulteriori indagini, setta il di - sendmail a 13 e guarda - il file /var/log/maillog per eventuali + Se tutto è andato per il verso giusto, dovresti essere in grado + di inviare un messaggio di prova dopo aver inserito le informazioni di + login nel programma client di posta. Per ulteriori indagini, setta il + di sendmail a 13 e + guarda il file /var/log/maillog per eventuali errori. - + Potresti voler aggiungere le seguenti righe in /etc/rc.conf in modo che questo servizio sia - attivo dopo ogni avvio del sistema: - - sasl_pwcheck_enable="YES" -sasl_pwcheck_program="/usr/local/sbin/pwcheck" - + attivo dopo ogni avvio del sistema: + + sasl_pwcheck_enable="YES" +sasl_pwcheck_program="/usr/local/sbin/pwcheck" + Questo assicurerà l'inizializzazione - dell'SMTP_AUTH all'avvio del sistema. + dell'SMTP_AUTH all'avvio del sistema. Per ulteriori informazioni, guarda la pagina riguardante l'autenticazione SMTP di sendmail. +--> \ No newline at end of file diff --git a/it_IT.ISO8859-15/books/handbook/mirrors/chapter.sgml b/it_IT.ISO8859-15/books/handbook/mirrors/chapter.sgml index ece8ad100c..ea54fb194c 100644 --- a/it_IT.ISO8859-15/books/handbook/mirrors/chapter.sgml +++ b/it_IT.ISO8859-15/books/handbook/mirrors/chapter.sgml @@ -1,1606 +1,2711 @@ Ottenere FreeBSD Editori di CDROM e DVD - Prodotti Retail + Prodotti al Dettaglio Confezionati - FreeBSD è disponibile come prodotto inscatolato (i CD di - FreeBSD, del software aggiuntivo e la documentazione stampata) da - svariati rivenditori: + FreeBSD è disponibile in confezioni (i CD di FreeBSD, del + software aggiuntivo, e la documentazione cartacea) presso svariati + rivenditori:
CompUSA WWW: http://www.compusa.com/ + url="http://www.compusa.com/">
Frys Electronics WWW: http://www.frys.com/ + url="http://www.frys.com/">
Set di CD e DVD - I set di CD e DVD di FreeBSD sono disponibili da molti rivenditori - online: + I set di CD e DVD di FreeBSD sono disponibili presso molti + rivenditori on-line:
Daemon News Mall 560 South State Street, Suite A2 Orem, UT 84058 - USA + Stati Uniti d'America Telefono: +1 800 407-5170 Fax: +1 1 801 765-0877 Email: sales@bsdmall.com WWW: http://www.bsdmall.com/ + url="http://www.bsdmall.com/freebsd1.html">
FreeBSD Mall, Inc. 3623 Sanford Street Concord, CA 94520-1405 - USA + Stati Uniti d'America Telefono: +1 925 674-0783 Fax: +1 925 674-0821 Email: info@freebsdmall.com WWW: http://www.freebsdmall.com/ + url="http://www.freebsdmall.com/">
FreeBSD Services Ltd 11 Lapwing Close Bicester OX26 6XR - United Kingdom - WWW: http://www.freebsd-services.com/ + Regno Unito + WWW:
Hinner EDV St. Augustinus-Str. 10 D-81825 München - Germany + Germania Telefono: (089) 428 419 WWW: http://www.hinner.de/linux/freebsd.html + url="http://www.hinner.de/linux/freebsd.html"> +
+
+ + +
+ Ikarios + 22-24 rue Voltaire + 92000 Nanterre + Francia + WWW:
Ingram Micro 1600 E. St. Andrew Place Santa Ana, CA 92705-4926 - USA + Stati Uniti d'America Telefono: 1 (800) 456-8000 WWW: http://www.ingrammicro.com/ + url="http://www.ingrammicro.com/"> +
+
+ + +
+ JMC Software + Irlanda + Telefono: 353 1 6291282 + WWW:
The Linux Emporium Hilliard House, Lester Way Wallingford OX10 9TA - United Kingdom + Regno Unito Telefono: +44 1491 837010 Fax: +44 1491 837016 WWW: http://www.linuxemporium.co.uk/bsd.html + url="http://www.linuxemporium.co.uk/bsd.html#FreeBSD"> +
+
+ + +
+ Linux System Labs Australia + 21 Ray Drive + Balwyn North + VIC - 3104 + Australia + Telefono: +61 3 9857 5918 + Fax: +61 3 9857 8974 + WWW: +
+
+ + +
+ UNIXDVD.COM LTD + 57 Primrose Avenue + Sheffield + S5 6FS + Regno Unito + WWW:
Distributori - Se sei un rivenditore e vuoi vendere i CDROM FreeBSD, contatta uno - dei distributori: + Se sei un rivenditore e vuoi vendere i CDROM di FreeBSD, contatta + uno dei distributori seguenti:
Cylogistics 2672 Bayshore Parkway, Suite 610 Mountain View, CA 94043 - USA + Stati Uniti d'America Telefono: +1 650 694-4949 Fax: +1 650 694-4953 Email: sales@cylogistics.com WWW: http://www.cylogistics.com/ + url="http://www.cylogistics.com/">
FreeBSD Services Ltd 11 Lapwing Close Bicester OX26 6XR - United Kingdom - WWW: http://www.freebsd-services.com/ + Regno Unito + WWW:
Kudzu, LLC 7375 Washington Ave. S. Edina, MN 55439 - USA + Stati Uniti d'America Telefono: +1 952 947-0822 Fax: +1 952 947-0876 Email: sales@kudzuenterprises.com
Navarre Corp 7400 49th Ave South New Hope, MN 55428 - USA + Stati Uniti d'America Telefono: +1 763 535-8333 Fax: +1 763 535-0341 WWW: http://www.navarre.com/ + url="http://www.navarre.com/">
Siti FTP - I sorgenti ufficiali FreeBSD sono disponibili dal seguente FTP - anonimo:
- ftp://ftp.FreeBSD.org/pub/FreeBSD/. -
- - Il database del sito dei mirror - FreeBSD è più preciso della lista contenuta in - questo Manuale, dato che ottiene le informazioni direttamente dal DNS - anziché affidarsi a una lista statica di host. - - FreeBSD è disponibile in FTP anonimo dai seguenti siti mirror. - Se decidi di ottenere FreeBSD in FTP anonimo, usa per favore un sito che - vicino a te. - - Arabia Saudita, - Argentina, - Australia, - Austria, - Brasile, - Bulgaria, - Canada, - Cina, - Corea, - Danimarca, - Estonia, - Finlandia, - Francia, - Germania, - Giappone, - Grecia, - Hong Kong, - Irlanda, - Islanda, - Italia, - Lituania, - Norvegia, - Nuova Zelanda, - Olanda, - Polonia, - Portogallo, - Regno Unito, - Repubblica Ceca, - Repubblica Slovacca, - Romania, - Russia, - Singapore, - Slovenia, - Spagna, - Stati Uniti d'America - Sud Africa, - Svezia, - Svizzera, - Tailandia, - Taiwan, - Ucraina, - Ungaria. + I sorgenti ufficiali di FreeBSD sono disponibili via FTP anonimo da + una serie di siti mirror sparsi in tutto il mondo. Il sito è ben gestito + e permette un gran numero di connessioni, ma ti conviene probabilmente + trovare un sito mirror a te più vicino (soprattutto + se decidi di configurare una sorta di sito mirror). + + Il database dei siti + mirror di FreeBSD è più preciso della lista + contenuta in questo manuale, poichè ottiene le informazioni + direttamente dal DNS anziché affidarsi a una lista statica di + host. + + Inoltre, FreeBSD è disponibile via FTP anonimo dai seguenti + siti mirror. Se decidi di procurarti FreeBSD via FTP anonimo, usa per + favore un sito a te vicino. I siti mirror elencati come Siti + Mirror Primari hanno tipicamente l'intero archivio di + FreeBSD (tutte le versioni oggi disponibili per ognuna delle architetture) + ma probabilmente scaricherai più veloce da un sito che è nel + tuo stato. I siti di ogni stato contengono le versioni più recenti + per le architetture più popolari ma potrebbero non contenere + l'intero archivio di FreeBSD. Tutti i siti permettono l'accesso tramite + FTP anonimo e alcuni permettono l'accesso anche con altri metodi. + I metodi di accesso disponibili per ogni sito sono elencati per i siti di + ogni stato. + + &chap.mirrors.ftp.inc; +
- - - Arabia Saudita + + CVS Anonimo - - In caso di problemi, contatta - ftpadmin@isu.net.sa + + <anchor id="anoncvs-intro">Introduzione - - - ftp://ftp.isu.net.sa/pub/mirrors/ftp.freebsd.org/ - - - - + Il CVS Anonimo (anche conosciuto come anoncvs) + è una caratteristica del programma di utilità CVS + contenuto in FreeBSD che serve per sincronizzarsi con un deposito CVS + remoto (in gergo repository CVS). Tra le altre cose, permette agli + utenti di FreeBSD di realizzare, senza avere particolari permessi, + operazioni CVS in sola lettura su uno dei server anoncvs ufficiali del + progetto FreeBSD. Per utilizzarlo è sufficiente impostare la + variabile di ambiente CVSROOT facendola puntare al server + anoncvs appropriato, immettere la password anoncvs con il + comando cvs login, e poi usare il comando &man.cvs.1 + per accederci come se fosse un deposito locale. - - Argentina + + Il comando cvs login memorizza le password + utilizzate per l'autenticazione con il server CVS in un file + chiamato .cvspass nella tua directory + HOME. Se questo file non esiste, potresti ricevere + un errore alla prima esecuzione di cvs login. + Crea un file .cvspass vuoto e riprova il + login. + - - In caso di problemi contatta l'hostmaster - hostmaster@ar.FreeBSD.org di questo dominio. + Benché si possa dire che i servizi CVSup e anoncvs realizzino + sostanzialmente le stesse funzioni, ci sono vari particolari che possono + influenzare la scelta di un metodo di sincronizzazione piuttosto + dell'altro. Per dirla in breve, CVSup + è più efficiente nell'uso delle risorse di rete ed + è il più avanzato tecnicamente tra i due, ma tutto questo + ha un prezzo. Per usare CVSup, bisogna + installare e configurare un client speciale prima di poter scaricare + qualcosa, e si può scaricare solo blocchi piuttosto grossi che + CVSup chiama + collezioni. - - - ftp://ftp.ar.FreeBSD.org/pub/FreeBSD/ - - - - + Anoncvs, al contrario, può essere + usato per esaminare qualunque cosa a partire da un singolo file fino a + uno specifico programma (come ls o + grep) specificando il nome del modulo CVS. + Ovviamente, anoncvs è adatto solo per + operazioni di sola lettura sul deposito CVS, quindi se hai intenzione + di supportare lo sviluppo locale in uno dei depositi condivisi del + progetto FreeBSD allora CVSup è in + realtà l'unica opzione. + - - Australia + + <anchor id="anoncvs-usage">Uso del CVS Anonimo + + La configurazione di &man.cvs.1; per usare un deposito CVS Anonimo + è semplicemente una questione di impostare la variable di + ambiente CVSROOT affinché punti a uno dei server + anoncvs del progetto FreeBSD. Al momento della + stesura di questo testo sono disponibili i seguenti server: + - In caso di problemi contatta l'hostmaster - hostmaster@au.FreeBSD.org di questo dominio. + Stati Uniti d'America: + :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs + (Usa cvs login ed inserisci la password + anoncvs quando richiesta.) + - - - ftp://ftp.au.FreeBSD.org/pub/FreeBSD/ - + + Germania: + :pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs + (Usa cvs login ed inserisci la password + anoncvs quando richiesta.) + - - ftp://ftp2.au.FreeBSD.org/pub/FreeBSD/ - + + Germania: + :pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs + (rsh, pserver, ssh, ssh/2022) + - - ftp://ftp3.au.FreeBSD.org/pub/FreeBSD/ - + + Giappone: + :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs + (Usa cvs login ed inserisci la password + anoncvs quando richiesta.) + - - ftp://ftp4.au.FreeBSD.org/pub/FreeBSD/ - + + Austria: + :pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs + (Usa cvs login ed inserisci una password + qualunque quando richiesta.) + + - - ftp://ftp5.au.FreeBSD.org/pub/FreeBSD/ - + Dato che CVS permette di estrarre (nel suo gergo: check + out) qualsiasi versione dei sorgenti di FreeBSD che sia mai + esistita (o, in alcuni casi, che esisterà), è bene + familiarizzare con il parametro revisione () di + &man.cvs.1; e sapere quali valori può assumere nel deposito + del progetto FreeBSD. - - ftp://ftp6.au.FreeBSD.org/pub/FreeBSD/ - - - - + Ci sono due tipi di tag, i tag di revisione e i tag di ramo. Un tag + di revisione fa riferimento ad una revisione specifica. Il suo + significato rimane lo stesso di giorno in giorno. Un tag di ramo, + d'altro canto, si riferisce sempre all'ultima revisione relativa a una + specifica linea di sviluppo. Dato che un tag di ramo non si riferisce + ad una revisione specifica, esso potrebbe avere un significato diverso + da un giorno con l'altro. + + La contiene i tag di revisione che possono + essere interessanti per gli utenti. Tuttavia, nessuno di questi tag + è valido per la collezione dei port poichè questa non ha + revisioni multiple. + + Quando specifichi un tag di ramo, normalmente ricevi l'ultima + versione dei file relativa a quella linea di sviluppo. Se vuoi ricevere + una versione precedente, puoi farlo specificando la data con il + parametro . Si rimanda alla pagina man di + &man.cvs.1; per ulteriori dettagli. + - - Austria + + Esempi - - In caso di problemi contatta l'hostmaster - hostmaster@at.FreeBSD.org di questo dominio. + Benché sia consigliata un'attenta lettura della pagina man di + &man.cvs.1; prima di fare qualsiasi cosa, seguono alcuni veloci esempi + che spiegano in modo essenziale l'uso del CVS Anonimo: - - - ftp://ftp.at.FreeBSD.org/pub/FreeBSD/ - + + Estrazione di Qualcosa dalla -CURRENT (&man.ls.1;) e poi + Cancellazione della Stessa: - - ftp://ftp2.at.FreeBSD.org/pub/FreeBSD/ - - - - + &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs +&prompt.user; cvs login +Alla richiesta, inserire la password anoncvs. +&prompt.user; cvs co ls +&prompt.user; cvs release -d ls +&prompt.user; cvs logout + - - Brasile + + Estrazione della Versione di &man.ls.1; dal Ramo + 3.X-STABLE: - - In caso di problemi contatta l'hostmaster - hostmaster@br.FreeBSD.org di questo dominio. + &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs +&prompt.user; cvs login +Alla richiesta, inserire la password anoncvs. +&prompt.user; cvs co -rRELENG_3 ls +&prompt.user; cvs release -d ls +&prompt.user; cvs logout + - - - ftp://ftp.br.FreeBSD.org/pub/FreeBSD/ - + + Creazione di una Lista di Cambiamenti (come Diff Unificate) di + &man.ls.1; - - ftp://ftp2.br.FreeBSD.org/pub/FreeBSD/ - + &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs +&prompt.user; cvs login +Alla richiesta, inserire la password anoncvs. +&prompt.user; cvs rdiff -u -rRELENG_3_0_0_RELEASE -rRELENG_3_4_0_RELEASE ls +&prompt.user; cvs logout + - - ftp://ftp3.br.FreeBSD.org/pub/FreeBSD/ - + + Scoperta di Quali Altri Nomi di Moduli Possono Essere Usati: - - ftp://ftp4.br.FreeBSD.org/pub/FreeBSD/ - + &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs +&prompt.user; cvs login +Alla richiesta, inserire la password anoncvs. +&prompt.user; cvs co modules +&prompt.user; more modules/modules +&prompt.user; cvs release -d modules +&prompt.user; cvs logout + + - - ftp://ftp5.br.FreeBSD.org/pub/FreeBSD/ - + + Altre Risorse - - ftp://ftp6.br.FreeBSD.org/pub/FreeBSD/ - + Le seguenti risorse addizionali possono essere utili + nell'apprendimento del CVS: - - ftp://ftp7.br.FreeBSD.org/pub/FreeBSD/ - - + + + CVS + Tutorial dal Cal Poly. - - - - Bulgaria - In caso di problemi contatta l'hostmaster - hostmaster@bg.FreeBSD.org di questo dominio. + CVS Home, + la comunità di sviluppo e supporto del CVS. + - - - ftp://ftp.bg.FreeBSD.org/pub/FreeBSD/ - - + + CVSWeb + è l'interfaccia web di CVS relativa al progetto + FreeBSD. - + + + - - Canada + + Uso di CTM - - In caso di problemi contatta l'hostmaster - hostmaster@ca.FreeBSD.org di questo dominio. + CTM è un metodo per mantenere + sincronizzati un albero di directory remoto e uno centralizzato. È + stato sviluppato per l'albero dei sorgenti di FreeBSD, anche se con il + passare del tempo, altre persone lo hanno trovano utile per altri scopi. + A tutt'oggi esiste pochissima documentazione sul processo della creazione + delle delta, quindi contattate &a.phk; per avere più informazioni + nel caso voleste usare CTM per altri + scopi. - - - ftp://ftp.ca.FreeBSD.org/pub/FreeBSD/ - + + Perché Dovrei Usare <application>CTM</application>? + + CTM fornisce una copia locale dell'albero + dei sorgenti di FreeBSD. Ci sono molte varietà di + alberi disponibili. Che tu voglia seguire l'intero albero CVS o solo + uno dei rami, CTM può fornirti i dati + che ti servono. Se sei uno sviluppatore attivo di FreeBSD, ma hai una + connettività TCP/IP di bassa qualità o non esistente, o + semplicemente desideri ricevere le modifiche in modo automatico, + CTM fa al caso tuo. Riceverai fino a tre + delta giornaliere per i rami più attivi. Tuttavia, puoi + considerare che li puoi avere attraverso l'invio automatico di email. + Le dimensioni degli aggiornamenti sono sempre più piccole + possibile. Questi sono in genere meno di 5K, con occasionali (uno su + dieci) aggiornamenti da 10-50K e qualcuno più grande (100K o + più) di tanto in tanto. + + Devi anche essere cosciente delle varie insidie relativi all'uso di + sorgenti in via di sviluppo e non provenienti da release pronte. Questo + è vero in particolare per i sorgenti current + (correnti). È raccomandata la lettura di Restare in current con + FreeBSD. + - - ftp://ftp2.ca.FreeBSD.org/pub/FreeBSD/ - - - - + + Cosa Serve per l'Uso di <application>CTM</application>? - - Cina + Ti servono due cose: il programma CTM, e + le delta iniziali da dargli in pasto (per arrivare ai livelli della + current). - - In caso di problemi contatta l'hostmaster - phj@cn.FreeBSD.org di questo dominio. + Il programma CTM fa parte di FreeBSD fin + dalla release della versione 2.0 e, se hai una copia dei sorgenti + disponibile, risiede in + /usr/src/usr.sbin/ctm. - - - ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/ - + Se stai usando una versione di FreeBSD precedente alla release 2.0, + puoi recuperare i sorgenti attuali di CTM + direttamente da: - - ftp://ftp2.cn.FreeBSD.org/pub/FreeBSD/ - + - - ftp://ftp3.cn.FreeBSD.org/pub/FreeBSD/ - - - - + Le delta da dare in pasto a + CTM si possono avere in due modi: tramite FTP + o email. Se puoi utilizzare FTP via Internet allora i seguenti siti + supportano l'accesso a CTM: - - Corea + - - In caso di problemi contatta l'hostmaster - hostmaster@kr.FreeBSD.org di questo dominio. + vedi anche la sezione mirror. - - - ftp://ftp.kr.FreeBSD.org/pub/FreeBSD/ - + Entra via FTP nella directory giusta e, da lì, inizia col + trasferire il file README. - - ftp://ftp2.kr.FreeBSD.org/pub/FreeBSD/ - + Se invece desideri ricevere le delta per email: - - ftp://ftp3.kr.FreeBSD.org/pub/FreeBSD/ - + Iscriviti ad una delle liste di distribuzione di + CTM. &a.ctm-cvs-cur.name; supporta l'interno + albero CVS. &a.ctm-src-cur.name; supporta il ramo di sviluppo current. + &a.ctm-src-4.name; supporta il ramo della release 4.X, ecc. (Se non sai + come iscriverti a una lista, clicca sul nome della lista o raggiungi la + pagina &a.mailman.lists.link; e clicca sulla lista a cui ti vuoi + iscrivere. La pagina della lista dovrebbe contenere tutte le + informazioni necessarie per l'iscrizione.) - - ftp://ftp4.kr.FreeBSD.org/pub/FreeBSD/ - + Quando inizierai a ricevere gli aggiornamenti + CTM via email, puoi usare il programma + ctm_rmail per scompattarli e per applicarli. In + realtà, se vuoi avere un processo completamente automizzato, + puoi usare il programma ctm_rmail direttamente in un + elemento di /etc/aliases. Esamina la pagina man di + ctm_rmail per maggiori dettagli. - - ftp://ftp5.kr.FreeBSD.org/pub/FreeBSD/ - + + Indipendentemente dal metodo che utilizzi per ricevere le delta di + CTM, dovresti iscriverti alla mailing list + &a.ctm-announce.name;. In futuro, questo sarà l'unico posto + dove saranno postati gli annunci riguardanti il funzionamento del + sistema CTM. Clicca sul nome della lista + e segui le istruzioni per iscriverti. + + - - ftp://ftp6.kr.FreeBSD.org/pub/FreeBSD/ - + + Uso di <application>CTM</application> per la Prima Volta + + Prima che tu possa servirti delle delta di + CTM, hai bisogno di un punto di partenza dal + quale successivamente costruire le delta. + + Innanzitutto dovresti determinare ciò che hai. Si può + iniziare da un directory vuota. Devi usare una delta + iniziale Empty per iniziare il tuo albero + CTM. Qualche volta può succedere che + una di queste delta iniziali sia distribuita su un CD + per tua convenienza, ma comunque, questo generalmente non + avviene. + + Poichè gli alberi sono molte decine di megabyte, puoi + iniziare da qualcosa che hai a portata di mano. Se hai un CD + di una release, puoi copiare o estrarre i sorgenti da lì. Questo + salverà un significativo trasferimento di dati. + + Puoi riconoscere queste delta iniziali dalla lettera + X preceduta da un numero (per esempio + src-cur.3210XEmpty.gz). Il nome che segue la + lettera X corrisponde all'origine del tuo + seme iniziale. Empty è una + directory vuota. Di solito una transizione base a partire da + Empty è prodotta ogni 100 delta. Strada + facendo, queste avranno grandi dimensioni! Le dimensioni comuni per le + delta XEmpty vanno dai 70 a 80 Megabyte di dati + compressi con gzip. + + Una volta che ti sei procurato una delta base come punto di + partenza, avrai bisogno anche di tutte le delta successive aventi un + numero maggiore. + - - ftp://ftp7.kr.FreeBSD.org/pub/FreeBSD/ - - - - + + Uso di <application>CTM</application> nella Tua Vita + Quotidiana - - Danimarca + Per applicare le delta, fai come segue: - - In caso di problemi contatta l'hostmaster - hostmaster@dk.FreeBSD.org di questo dominio. + &prompt.root; cd /where/ever/you/want/the/stuff +&prompt.root; ctm -v -v /where/you/store/your/deltas/src-xxx.* - - - ftp://ftp.dk.FreeBSD.org/pub/FreeBSD/ - + CTM decifra le delta compresse tramite + il comando gzip, quindi non hai bisogno di + decomprimerle con gunzip, e ciò salva spazio + su disco. - - ftp://ftp2.dk.FreeBSD.org/pub/FreeBSD/ - - - - + Tranne in alcune circostanze, CTM non + toccherà il tuo albero. Per verificare una delta puoi usare + l'opzione e di fatto CTM + non toccherà il tuo albero; verificherà soltanto + l'integrità della delta e se questa può essere applicata + in modo pulito al tuo albero attuale. - - Estonia + Ci sono altre opzioni di CTM, guarda + la pagina man o ispeziona i sorgenti per maggiori dettagli. - - In caso di problemi contatta l'hostmaster - hostmaster@ee.FreeBSD.org di questo dominio. + Questo è davvero tutto ciò che devi sapere. Ogni + volta che ottieni una delta, esegui CTM per + aggiornare i tuoi sorgenti. - - - ftp://ftp.ee.FreeBSD.org/pub/FreeBSD/ - - - - - - - Finlandia + È meglio non rimuovere le delta che richiedono grandi tempi + di scaricamento. Nel caso succeda qualche disgrazia non dovrai + riscaricarle. Anche se hai solo dischetti floppy, considera l'uso di + fdwrite per crearne una copia. + - - In caso di problemi contatta l'hostmaster - hostmaster@fi.FreeBSD.org di questo dominio. + + Mantenimento delle Tue Modifiche Locali + + Allo stesso modo di uno sviluppatore potresti voler sperimentare + delle modifiche nell'albero dei sorgenti. + CTM supporta le modifiche locali in modo + limitato: prima di verificare la presenza di un file + foo, esso cerca foo.ctm. Se + questo file esiste, CTM opererà su di + esso piuttosto che su foo. + + Questo comportamento offre un semplice modo per mantenere le + modifiche locali: copia semplicemente il file che desideri modificare in + un file con lo stesso nome e suffisso .ctm. + Quindi puoi liberamente hackerare il codice, e + CTM manterrà aggiornato il file + .ctm. + - - - ftp://ftp.fi.FreeBSD.org/pub/FreeBSD/ - + + Altre Opzioni Interessanti di + <application>CTM</application> + + + Scoprire con Precisione Ciò che Dovrebbe Essere + Aggiornato + + Puoi determinare la lista delle modifiche che + CTM apporterà ai tuoi sorgenti + usando l'opzione di + CTM. + + Questo è utile se vuoi mantenere dei log delle modifiche, + prima o dopo aver modificato in qualche modo i file, o solo + perchè ti senti un pò paranoico. + + + + Creare dei Backup Prima di Aggiornare + + Qualche volta potresti voler creare dei backup di tutti i file + che saranno modificati da un aggiornamento di + CTM. + + Specificando l'opzione , + CTM effettuerà il backup di tutti i + file che saranno modificati da una certa delta + CTM nel file + backup-file. + + + + Limitare i File che Devono Essere Aggiornati + + Qualche volta potresti volere restringere la portata di un certo + aggiornamento CTM, o potresti essere + interessato ad estrarre solo pochi file da una serie di delta. + + Puoi controllare la lista dei file sui quali + CTM opererà specificando + un'espressione regolare usando le opzioni e + . + + Per esempio, per estrarre una copia aggiornata del file + lib/libc/Makefile dalla tua collezione di delta + CTM, esegui i comandi seguenti: + + &prompt.root; cd /dove/vuoi/estrarre/ +&prompt.root; ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.* + + Per ogni file specificato in una delta + CTM, le opzioni e + sono applicate nello stesso ordine in cui + compaiono sulla riga di comando. Il file è processato da + CTM solo se risulta idoneo a tutte le + opzioni e ad esso + applicate. + + - - ftp://ftp3.fi.FreeBSD.org/pub/FreeBSD/ - - - - + + Piani Futuri per <application>CTM</application> - - Francia + I più importanti: + - In caso di problemi contatta l'hostmaster - hostmaster@fr.FreeBSD.org di questo dominio. + Usare qualche tipo di autenticazione nel sistema + CTM, in modo tale da permette + l'identificazione di aggiornamenti CTM + contraffatti. + - - - ftp://ftp.fr.FreeBSD.org/pub/FreeBSD/ - + + Ripulire le opzioni di CTM, che + confondono e sono tutt'altro che intuitive. + + + - - ftp://ftp2.fr.FreeBSD.org/pub/FreeBSD/ - + + Materiale Vario - - ftp://ftp3.fr.FreeBSD.org/pub/FreeBSD/ - + Esiste una serie di delta per la collezione dei + ports, ma è ancora di poco interesse. + - - ftp://ftp5.fr.FreeBSD.org/pub/FreeBSD/ - + + Mirror CTM - - ftp://ftp6.fr.FreeBSD.org/pub/FreeBSD/ - + CTM/FreeBSD è disponibile via FTP + anonimo dai siti mirror seguenti. Se decidi di procurarti + CTM via FTP anonimo, per favore usa un sito + a te vicino. - - ftp://ftp8.fr.FreeBSD.org/pub/FreeBSD/ - + In caso di problemi, contatta &a.phk;. - - - + + + California, Bay Area, sorgenti ufficiali - - Germania + + + + + + + + - - In caso di problemi contatta gli amministratori del mirror - de-bsd-hubs@de.FreeBSD.org di questo dominio. + + Sudafrica, server di backup per vecchie delta - - - ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ - + + + + + + + + - - ftp://ftp2.de.FreeBSD.org/pub/FreeBSD/ - + + Taiwan/R.O.C. - - ftp://ftp3.de.FreeBSD.org/pub/FreeBSD/ - + + + + + - - ftp://ftp4.de.FreeBSD.org/pub/FreeBSD/ - + + + - - ftp://ftp5.de.FreeBSD.org/pub/FreeBSD/ - + + + + + + + + + Se non trovi un mirror a te vicino o se il mirror è + incompleto, prova ad usare qualche motore di ricerca come alltheweb. + + - - ftp://ftp6.de.FreeBSD.org/pub/FreeBSD/ - + + Uso di CVSup + + + Introduzione + + CVSup è un pacchetto di software + per distribuire ed aggiornare alberi di sorgenti da un deposito centrale + CVS posto su un server remoto. I sorgenti di FreeBSD sono mantenuti in + un deposito CVS su una macchina centrale di sviluppo situata in + California. Con CVSup, gli utenti di FreeBSD + possono facilmente mantenere aggiornati i loro alberi di + sorgenti. + + CVSup usa il cosiddetto modello ad + estrazione per aggiornare. In questo modello, + è compito del client chiedere al server gli aggiornamenti. + Il server attente passivamente le richieste di aggiornamento dai suoi + client. In questo modo tutti gli aggiornamenti sono incitati dal + client. Il server non invia mai degli aggiornamenti che non sono stati + richiesti. Gli utenti devono eseguire il client + CVSup manualmente per ottenere un + aggiornamento, oppure possono usare cron per eseguire + automaticamente queste operazioni secondo stabilite regole. + + Il termine CVSup, scritto in quel modo, + si riferisce all'intero pacchetto di software. I suoi componenti + principali sono il client cvsup che viene eseguito + su ogni macchina degli utenti, e il server cvsupd che + viene eseguito su ogni sito mirror di FreeBSD. + + Leggendo la documentazione di FreeBSD e le mailling list, potresti + notare dei riferimenti a sup. + Sup è il predecessore di + CVSup, e serviva per un simile scopo. + CVSup sostanzialmente è usato allo + stesso modo di sup e, di fatto, i suoi file + di configurazione sono compatibili con sup. + Sup non viene più utilizzato nel + progetto FreeBSD, poichè CVSup + è più veloce e più flessibile. + - - ftp://ftp7.de.FreeBSD.org/pub/FreeBSD/ - - - - + + Installazione + + Il modo più semplice per installare + CVSup è usare il package precompilato + net/cvsup della collezione dei package di FreeBSD. + Se preferisci costruire CVSup partendo dal + sorgente, allora puoi usare il port net/cvsup. Ma sei avvisato: il port + net/cvsup dipende dal sistema + Modula-3, che richiede una consistente quantità di tempo e di + spazio su disco per scaricarlo e costruirlo. - - Giappone + + Se hai intenzione di usare CVSup su una + macchina sulla quale non sarà installato + &xfree86;, come su un server, assicurati di + usare il port che non include la GUI di + CVSup, ossia net/cvsup-without-gui. + + - - In caso di problemi contatta l'hostmaster - hostmaster@jp.FreeBSD.org di questo dominio. + + Configurazione di CVSup - - - ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/ - + Il funzionamento di CVSup è + controllato da un file di configurazione chiamato + supfile. Esistono alcuni esempi di + supfile nella directory /usr/share/examples/cvsup/. - - ftp://ftp2.jp.FreeBSD.org/pub/FreeBSD/ - + Le informazioni contenute in un supfile + rispondono alle seguenti questioni relative a + CVSup: - - ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/ - + + + Quali file vuoi + ricevere? + - - ftp://ftp4.jp.FreeBSD.org/pub/FreeBSD/ - + + Quali versioni dei file + vuoi? + - - ftp://ftp5.jp.FreeBSD.org/pub/FreeBSD/ - + + Da dove li vuoi + prelevare? + - - ftp://ftp6.jp.FreeBSD.org/pub/FreeBSD/ - + + Dove li vuoi mettere sulla tua + macchina? + - - ftp://ftp7.jp.FreeBSD.org/pub/FreeBSD/ - - + + Dove vuoi memorizzare + gli stati dei file? - + - - Grecia + Nelle seguenti sezioni, costruiremo un tipico + supfile per rispondere a turno ad ognuna di queste + questioni. Incominciamo però col descrivere la struttura + globale di un supfile. + + Un supfile è un file di testo. I + commenti iniziano con un # e si estendono fino alle + fine della riga. Le righe bianche e le righe che contengono solo + commenti sono ignorate. + + Ogni altra riga descrive un insieme di file che l'utente vuole + ricevere. Una riga inizia con il nome di una collezione, + un nome di un gruppo logico di file definiti dal server. Il nome della + collezione indica al server i file che vuoi ricevere. Dopo il nome + della collezione seguono zero o più campi, separati da spazi + bianchi. Questi campi rispondono alle questioni citate in precedenza. + Ci sono due tipi di campi: campo opzione e campo valore. Un campo + opzione consiste di una parola chiave a se stante, es. + delete o compress. Anche un campo + valore inizia con una parola chiave, ma questa è seguita dal + simbolo =, senza spazi bianchi intermedi, e da un + seconda parola. Ad esempio, release=cvs è un + campo valore. + + Un supfile tipicamente specifica più di + un'unica collezione da ricevere. Un modo di strutturare un + supfile è specificare esplicitamente tutti i + campi rilevanti per ogni collezione. Tuttavia, ciò tende a + creare supfile troppo lunghi, e ciò è + scomodo poichè in un supfile la maggior + parte dei campi sono gli stessi per tutte le collezioni. + CVSup fornisce un meccanismo per aggirare + questi problemi. Le linee che iniziano con il nome speciale di + pseudo-collezione *default possono essere usate per + inizializzare opzioni e valori che saranno utilizzati come default per + le successive collezioni definite nel supfile. + Un valore di default può essere sovrascritto da una singola + collezione, specificando un valore diverso per la collezione stessa. + Inoltre i valori di default possono essere modificati in mezzo al + supfile tramite linee *default aggiuntive. + + Con queste conoscenze, possiamo ora procedere alla costruzione + di un supfile per ricevere ed aggiornare l'albero + dei sorgenti della FreeBSD-CURRENT. + - In caso di problemi contatta l'hostmaster - hostmaster@gr.FreeBSD.org di questo dominio. - - - - ftp://ftp.gr.FreeBSD.org/pub/FreeBSD/ - + Quali file vuoi ricevere? + + I file disponibili via CVSup sono + organizzati in gruppi chiamati collezioni. + Le collezioni che sono disponibili sono descritte nella + prossima sezione. In questo + esempio, desideriamo ricevere per intero l'albero corrente dei + sorgenti del sistema FreeBSD. C'è un'unica e vasta + collezione src-all che ci permette di ricevere + tutto ciò. Come prima fase nella costruzione del nostro + supfile, dobbiamo semplicemente elencare le + collezioni, una per riga (in questo caso, c'è un'unica + riga): + + src-all + - - ftp://ftp2.gr.FreeBSD.org/pub/FreeBSD/ - - + + Quali versioni dei file + vuoi? + + Con CVSup, hai la possibilità + di ricevere qualsiasi versione dei sorgenti che sia mai esistita. + Questo è possibile poichè il server + cvsupd lavora direttamente sul deposito + CVS, che contiene tutte le versioni. Puoi specificare la versione + che vuoi usando i campi valori tag= e + . + + + Stai molto attento a specificare i campi + tag= in modo corretto. Alcuni tag sono validi + solo per certe collezioni di file. Se specifichi un tag non + corretto, CVSup cancellerà file + che tu non vorresti eliminare. In particolare, usa + solamente tag=. per le + collezioni ports-*. + + + Il campo tag= richiama un tag simbolico nel + deposito. Ci sono due tipi di tag, i tag di revisione e i tag di + ramo. Un tag di revisione fa riferimento ad una revisione + specifica. Il suo significato rimane lo stesso di giorno in giorno. + Un tag di ramo, d'altro canto, si riferisce sempre all'ultima + revisione relativa ad una specifica linea di sviluppo. Dato che un + tag di ramo non si riferisce ad una revisione specifica, esso + potrebbe avere un significato diverso da un giorno con + l'altro. + + La contiene tag di ramo che potrebbero + interessare gli utenti. Quando si specifica un tag in un file di + configurazione di CVSup, esso dovrebbe + essere preceduto da tag= + (RELENG_4 diviene + tag=RELENG_4). Tieni presente che per la + collezione dei port è rilevante solo + tag=.. + + + Sii molto attento a digitare il nome del tag nel modo esatto. + CVSup non è in grado di + riconoscere tag errati. Se digiti in modo sbagliato un tag, + CVSup si comporterà come se tu + avessi specificato un tag valido che non riguarda nessun file. + In questo caso i tuoi sorgenti saranno eliminati. + + + Quando specifichi un tag di ramo, normalmente ricevi le ultime + versioni dei file di quella linea di sviluppo. Se vuoi ricevere + versioni precedenti, puoi specificare una data con il campo valore + . La pagina man di &man.cvsup.1; spiega come + farlo. + + Nel nostro esempio, desideriamo ricevere FreeBSD-CURRENT. + Aggiungiamo questa riga all'inizio del nostro + supfile: + + *default tag=. + + C'è un importante caso speciale che entra in gioco se + non specifichi ne un campo tag= ne un campo + date=. In questo caso, ricevi i file RCS attuali + direttamente dal deposito CVS del server, invece di ricevere una + versione particolare. Gli sviluppatori in genere preferiscono + questa modalità di funzionamento. Mantenendo una copia del + deposito stesso sui loro sistemi, essi sono in grado di navigare + attraverso la storia delle revisioni e di esaminare le versioni + precedenti dei file. Comunque questo vantaggio è + realizzabile al costo di un ingente quantità di spazio su + disco. - - - Hong Kong + + Da dove li vuoi + prelevare? + + Il campo host= indica a + cvsup da dove prelevare i suoi aggiornamenti. + Va bene uno qualunque dei siti mirror + di CVSup, anche se dovresti provare a selezionarne uno che + sia a te vicino nel ciberspazio. In questo esempio useremo un sito + di distribuzione di FreeBSD fittizio, cvsup666.FreeBSD.org: + + *default host=cvsup666.FreeBSD.org + + Devi cambiare l'host in uno che esiste realmente prima di + eseguire CVSup. Il settaggio dell'host + può essere sovrascritto su riga di comando eseguendo + cvsup con l'opzione . + - + Dove li vuoi mettere sulla tua + macchina? + + Il campo prefix= indica a + cvsup dove mettere i file che riceve. In questo + esempio, metteremo i file sorgenti direttamente nel nostro albero + dei sorgenti, /usr/src. La directory + src è già implicita nelle + collezioni che vogliamo ricevere, quindi la corretta specifica + è questa: + + *default prefix=/usr + - - ftp://ftp.hk.FreeBSD.org/pub/FreeBSD/ - - + + Dove cvsup + dovrebbe mantenere i suoi file di stato? + + Il client di CVSup mantiene certi + file di stato in ciò che è chiamata directory + base. Questi file aiutano + CVSup a lavorare in modo più + efficace, mantenendo traccia di quali aggiornamenti sono stati + già ricevuti. Useremo la directory base standard, + /usr/local/etc/cvsup: + + *default base=/usr/local/etc/cvsup + + Questo settaggio è utilizzato di default se non viene + specificato nel supfile, e quindi in + realtà non abbiamo bisogno di inserire la riga + precedente. + + Se la tua directory base non esiste, potrebbe essere una buona + idea crearla subito. Il client cvsup interrompe + l'esecuzione se la tua directory base non esiste. - - - Irlanda + + Settaggi vari di supfile: + + C'è un altro settaggio che normalmente deve essere + presente in un supfile: + + *default release=cvs delete use-rel-suffix compress + + release=cvs indica che il server dovrebbe + prendere le sue informazioni dal deposito CVS principale di FreeBSD. + In genere questa è la normalità, ma esistono altre + possibilità che vanno oltre lo scopo di questa + sezione. + + delete dà a + CVSup il permesso di cancellare file. + Dovresti sempre specificare questa opzione, in modo che + CVSup possa mantenere il tuo albero dei + sorgenti del tutto aggiornato. CVSup + è attento nel cancellare solamente quei file dei quali + è responsabile. Altri file extra verranno lasciati + intatti. + + use-rel-suffix è ... arcano. Se vuoi + realmente saperne di più, guarda la pagina man di + &man.cvsup.1;. Altrimenti, specificala senza preoccupartene + troppo. + + compress abilita l'uso di una compressione + stile gzip sul canale di comunicazione. Se hai una connessione T1 o + più veloce, non dovresti usare la compressione. + Diversamente, può essere veramente d'aiuto. + - In caso di problemi contatta l'hostmaster - hostmaster@ie.FreeBSD.org di questo dominio. + Ricapitolazione di tutti settaggi: - - - ftp://ftp.ie.FreeBSD.org/pub/FreeBSD/ - + Il supfile completo per il nostro esempio + è il seguente: - - ftp://ftp2.ie.FreeBSD.org/pub/FreeBSD/ - + *default tag=. +*default host=cvsup666.FreeBSD.org +*default prefix=/usr +*default base=/usr/local/etc/cvsup +*default release=cvs delete use-rel-suffix compress - - ftp://ftp3.ie.FreeBSD.org/pub/FreeBSD/ - - +src-all - + - - Islanda + + Il File <filename>refuse</filename> + + Come menzionato in precedenza, CVSup + usa un modello ad estrazione. Sostanzialmente, + questo significa che ti connetti al server + CVSup, lui dice, Ecco ciò che + puoi scaricare ..., ed il tuo client risponde OK, + prenderò questo, questo, questo e questo. Nella + configurazione di default, il client CVSup + prenderà ogni file associato alla collezione e al tag che + hai specificato nel file di configurazione. Tuttavia, questo non + è sempre ciò che vuoi, specialmente se stai + sincronizzando gli alberi doc, + ports, o www — molte + persone non sono in grado di leggere quattro o cinque lingue, e quindi + esse non hanno bisogno di scaricare i file di certe lingue. Se + stai sincronizzando con CVSup la collezione + dei port, puoi specificare collezioni individuali (es., + ports-astrology, + ports-biology, ecc. invece di specificare + semplicemente ports-all). Tuttavia, + poichè gli alberi doc e + www non hanno collezioni per specifiche lingue, + devi usare una delle molte abili caratteristiche di + CVSup: il file + refuse. + + Il file refuse sostanzialmente indica a + CVSup che non dovrebbe prendere ogni + singolo file da una collezione; in altre parole, esso dice al client + di rifiutare certi file dal server. Il file + refuse può essere trovato (o, se non ne + hai ancora uno, dovrebbe essere messo) in + base/sup/. + base è definita nel tuo + supfile; di default, + base è + /usr/local/etc/cvsup, e quindi di default il file + refuse è + /usr/local/etc/cvsup/sup/refuse. + + Il file refuse ha veramente un formato molto + semplice; esso contiene semplicemente i nomi dei file o delle + directory che non desideri scaricare. Per esempio, se non parli altre + lingue oltre all'inglese e al tedesco, e non hai la necessità + di usare le applicazioni in lingua tedesca (e le applicazioni in altre + lingue, eccetto quella inglese), puoi mettere le seguenti righe nel + tuo file refuse: + + ports/chinese +ports/french +ports/german +ports/hebrew +ports/hungarian +ports/japanese +ports/korean +ports/polish +ports/portuguese +ports/russian +ports/ukrainian +ports/vietnamese +doc/da_* +doc/de_* +doc/el_* +doc/es_* +doc/fr_* +doc/it_* +doc/ja_* +doc/nl_* +doc/no_* +doc/pl_* +doc/pt_* +doc/ru_* +doc/sr_* +doc/zh_* + + e così via per altre lingue (puoi ottenere la lista + completa esplorando il deposito CVS di + FreeBSD). + + Con questa utile funzionalità, quegli utenti che hanno + una connessione lenta o pagano ogni minuto di connessione Internet + potranno risparmiare tempo prezioso poichè non dovranno + più scaricare file che non usano mai. Per maggiori dettagli + sul file refuse e su altre utili caratteristiche + di CVSup, guarda la sua pagina man. + + - - In caso di problemi contatta l'hostmaster - hostmaster@is.FreeBSD.org di questo dominio. + + Eseguire <application>CVSup</application> + + Sei ora pronto per provare un aggiornamento. La riga di comando + per farlo è molto semplice: + + &prompt.root; cvsup supfile + + dove supfile + è naturalmente il nome del supfile che hai + creato. Assumendo che stai lavorando sotto X11, + cvsup visualizzarà una GUI con alcuni bottoni + adibiti ad operazioni usuali. Premi il bottone + go, e stai a guardare l'esecuzione. + + Poichè in questo esempio stai aggiornando il tuo albero dei + sorgenti /usr/src, avrai bisogno di eseguire il + programma come root affinchè + cvsup abbia i permessi necessari per aggiornare i + tuoi file. Avendo appena creato il tuo file di configurazione, e non + avendo mai usato questo programma prima ad ora, tutto ciò + potrebbe renderti un pò nervoso. Esiste un semplice modo per + provare la sincronizzazione senza toccare i tuoi preziosi file. Crea + una directory vuota in qualche posto, e richiamala come argomento sulla + riga di comando: + + &prompt.root; mkdir /var/tmp/dest +&prompt.root; cvsup supfile /var/tmp/dest + + La directory che hai specificato sarà usata come directory + di destinazione per tutti gli aggiornamenti dei file. + CVSup esaminerà i tuoi file usuali in + /usr/src, ma non modificherà o + cencellerà alcuno di essi. Gli aggiornamenti dei file finiranno + invece in /var/tmp/dest/usr/src. + Inoltre CVSup lascerà intatta la sua + directory base contenente gli stati dei file quando viene eseguito in + questo modo. Le nuove versioni di questi file saranno scritte nella + directory specificata. A condizione che tu abbia l'accesso di lettura + in /usr/src, non hai bisogno di essere + root per realizzare questo tipo di giro di + prova. + + Se non stai utilizzando X11 o se non ti piacciono le GUI, + dovresti aggiungere un paio di opzioni alla riga di comando quando + esegui cvsup: + + &prompt.root; cvsup -g -L 2 supfile + + L'opzione indica a + CVSup di non usare la sua GUI. Ciò + è automatico se non stai utilizzando X11, ma se lo stai facendo + allora la devi specificare. + + L'opzione indica a + CVSup di visualizzare i dettagli di tutti + gli aggiornamenti dei file che avvengono. Esistono tre livelli + di verbosità, da a . + Il default è 0, che significa silenzio totale eccetto per + i messaggi di errore. + + Ci sono molte altre opzione disponibili. Per una breve lista di + esse, digita cvsup -H. Per una descrizione + più dettagliata, guarda la relativa pagina man. + + Una volta che sei soddisfatto di come avvengono gli aggiornamenti, + puoi organizzare esecuzioni regolari di CVSup + usando &man.cron.8;. Ovviamente, non dovresti lasciare che + CVSup usi la sua GUI quando lo esegui tramite + &man.cron.8;. + - - - ftp://ftp.is.FreeBSD.org/pub/FreeBSD/ - - - - + + Collezioni di File di <application>CVSup</application> - - Italia + Le collezioni di file disponibili via + CVSup sono organizzate gerarchicamente. + Ci sono poche collezioni grandi, le quali sono divise in piccole + sotto-collezioni. Ricevere una grande collezione è equivalente + a ricevere ogni sua sotto-collezione. Le relazioni gerarchiche tra le + collezioni riflettono l'uso dell'identazione nella lista qui + sotto. - - In caso di problemi contatta l'hostmaster - hostmaster@it.FreeBSD.org di questo dominio. + Le collezioni maggiormente usate sono src-all, e + ports-all. Le altre collezioni sono usate solo + da piccoli gruppi di persone per scopi speciali, e alcuni siti mirror + potrebbero non contenerle tutte. - - - ftp://ftp.it.FreeBSD.org/pub/FreeBSD/ - - - - + + + cvs-all release=cvs - - Lituania - In caso di problemi contatta l'hostmaster - hostmaster@lt.FreeBSD.org di questo dominio. + Il deposito CVS maestro di FreeBSD, incluso il codice di + crittografia. + + + + distrib release=cvs + + + File relativi alla distribuzione e al mirroring di + FreeBSD. + + + + + doc-all release=cvs + + + Sorgenti del Manuale di FreeBSD e altra documentazione. + Questa collezione non include i file per il sito web di + FreeBSD. + + + + + ports-all release=cvs + + + La FreeBSD Ports Collection. + + + Se non vuoi aggiornare per intero + ports-all (l'interno albero dei port), + ma usare una delle sotto-collezioni listate qui sotto, + assicurati di aggiornare sempre la + sotto-collezione ports-base! + Ogni volta che qualcosa cambia nell'infrastruttura della + costruzione dei port rappresentata da + ports-base, è praticamente certo + che quei cambiamenti saranno usati dai port + reali in un brevissimo arco di tempo. + Quindi, se aggiorni solo i port reali e + questi usano alcune delle nuove caratteristiche, + c'è un'alta probabilità che la loro + costruzione fallirà con alcuni misteriosi messaggi + di errore. La primissima cosa da + fare in questi casi è assicurarsi che la propria + sotto-collezione ports-base sia + aggiornata. + + + + + ports-archivers + release=cvs + + + Applicazioni per l'archiviazione. + + + + + ports-astro release=cvs + + + Applicazioni riguardanti l'astronomia. + + + + + ports-audio release=cvs + + + Applicazioni di supporto all'audio. + + + + + ports-base release=cvs + + + L'infrastruttura della costruzione della + collezione dei port - vari file posti nelle + sottodirectory Mk/ e + Tools/ della directory + /usr/ports. + + + Per favore vedi l'importante + avvertimento qui sopra: dovresti + sempre aggiornare questa + sotto-collezione ogni volta che aggiorni qualche + pezzo della FreeBSD Ports Collection! + + + + + + ports-benchmarks + release=cvs + + + Benchmark (applicazioni per valutare le + prestazioni del computer). + + + + + ports-biology release=cvs + + + Biologia. + + + + + ports-cad release=cvs + + + Applicazioni per la grafica computerizzata. + + + + + ports-chinese release=cvs + + + Supporto alla lingua cinese. + + + + + ports-comms release=cvs + + + Software per la comunicazione. + + + + + ports-converters + release=cvs + + + Convertitori di codici di caratteri. + + + + + ports-databases + release=cvs + + + Database. + + + + + ports-deskutils + release=cvs + + + Cose che erano utilizzate sulla scrivania prima + che i computer furono inventati. + + + + + ports-devel release=cvs + + + Utility per il development. + + + + + ports-dns release=cvs + + + Software relativo al DNS. + + + + + ports-editors release=cvs + + + Editor. + + + + + ports-emulators + release=cvs + + + Emulatori per altri sistemi operativi. + + + + + ports-finance release=cvs + + + Applicazioni finanziarie, di gestione delle spese + e simili. + + + + + ports-ftp release=cvs + + + Server e client FTP. + + + + + ports-games release=cvs + + + Giochi. + + + + + ports-german release=cvs + + + Supporto alla lingua tedesca. + + + + + ports-graphics release=cvs + + + Utilità per la grafica. + + + + + ports-hungarian + release=cvs + + + Supporto alla lingua ungherese. + + + + + ports-irc release=cvs + + + Utilità IRC (Internet Relay Chat). + + + + + ports-japanese release=cvs + + + Supporto alla lingua giapponese. + + + + + ports-java release=cvs + + + Utility &java;. + + + + + ports-korean release=cvs + + + Supporto alla lingua coreana. + + + + + ports-lang release=cvs + + + Linguaggi di programmazione. + + + + + ports-mail release=cvs + + + Software di posta. + + + + + ports-math release=cvs + + + Software per la computazione numerica. + + + + + ports-mbone release=cvs - - - ftp://ftp.lt.FreeBSD.org/pub/FreeBSD/ - - - - + + Applicazioni MBone. + + + + + ports-misc release=cvs - - Olanda + + Utility varie. + + + + + ports-multimedia + release=cvs + + + Software multimediale. + + + + + ports-net release=cvs + + + Software di rete. + + + + + ports-news release=cvs + + + Software per USENET. + + + + + ports-palm release=cvs + + + Software di supporto per i vari + Palm. + + + + + ports-polish release=cvs + + + Supporto alla lingua polacca. + + + + + ports-portuguese + release=cvs + + + Supporto alla lingua portoghese. + + + + + ports-print release=cvs + + + Software per la stampa. + + + + + ports-russian release=cvs + + + Supporto alla lingua russa. + + + + + ports-security release=cvs + + + Utility per la sicurezza. + + + + + ports-shells release=cvs + + + Shell a riga di comando. + + + + + ports-sysutils release=cvs + + + Utility di sistema. + + + + + ports-textproc release=cvs + + + Utility per la manipolazione del testo (non + include utility per la pubblicazione + computerizzata). + + + + + ports-vietnamese + release=cvs + + + Supporto alla lingua vietnamite. + + + + + ports-www release=cvs + + + Software relativo al World Wide Web. + + + + + ports-x11 release=cvs + + + Port per il supporto al sistema a finestre + X. + + + + + ports-x11-clocks + release=cvs + + + Orologi per X11. + + + + + ports-x11-fm release=cvs + + + Gestori di file per X11. + + + + + ports-x11-fonts + release=cvs + + + Font per X11 e relative utility. + + + + + ports-x11-toolkits + release=cvs + + + Cassette degli attrezzi per X11. + + + + + ports-x11-servers + + + Server X11. + + + + + ports-x11-wm + + + Gestori di finestre per X11. + + + + + + + + src-all release=cvs + + + I sorgenti correnti di FreeBSD, incluso il codice di + crittografia. + + + + src-base release=cvs + + + Vari file posti in + /usr/src. + + + + + src-bin release=cvs + + + Utility per l'utente in ambiente mono-utente + (/usr/src/bin). + + + + + src-contrib release=cvs + + + Utility e librerie al di fuori del progetto + FreeBSD, sostanzialmente utilizzati senza modifiche + (/usr/src/contrib). + + + + + src-crypto release=cvs + + + Utility e librerie per la crittografia al di fuori + del progetto FreeBSD, sostanzialmente utilizzati senza + modifiche + (/usr/src/crypto). + + + + + src-eBones release=cvs + + + Kerberos e DES + (/usr/src/eBones). + Non usati nell'attuale release di FreeBSD. + + + + + src-etc release=cvs + + + File di configurazione del sistema + (/usr/src/etc). + + + + + src-games release=cvs + + + Giochi + (/usr/src/games). + + + + + src-gnu release=cvs + + + Utility protette dalla licenza pubblica di GNU + (/usr/src/gnu). + + + + + src-include release=cvs + + + File header + (/usr/src/include). + + + + + src-kerberos5 release=cvs + + + Pacchetto di sicurezza Kerberos5 + (/usr/src/kerberos5). + + + + + src-kerberosIV release=cvs + + + Pacchetto di sicurezza KerberosIV + (/usr/src/kerberosIV). + + + + + src-lib release=cvs + + + Librerie + (/usr/src/lib). + + + + + src-libexec release=cvs + + + Programmi di sistema normalmente eseguiti da altri + programmi + (/usr/src/libexec). + + + + + src-release release=cvs + + + File richiesti per produrre una release di FreeBSD + (/usr/src/release). + + + + + src-sbin release=cvs + + + Utility di sistema per la modalità + mono-utente + (/usr/src/sbin). + + + + + src-secure release=cvs + + + Librerie e comandi per la crittografia + (/usr/src/secure). + + + + + src-share release=cvs + + + File che possono essere condivisi tra sistemi + multipli (/usr/src/share). + + + + + src-sys release=cvs + + + Il kernel + (/usr/src/sys). + + + + + src-sys-crypto release=cvs + + + Codice di crittografia del kernel + (/usr/src/sys/crypto). + + + + + src-tools release=cvs + + + Vari strumenti per il mantenimento di FreeBSD + (/usr/src/tools). + + + + + src-usrbin release=cvs + + + Utility per l'utente + (/usr/src/usr.bin). + + + + + src-usrsbin release=cvs + + + Utility di sistema + (/usr/src/usr.sbin). + + + + + + + + www release=cvs + + + I sorgenti per il sito web di FreeBSD. + + + + + + + + distrib release=self - - In caso di problemi contatta l'hostmaster - hostmaster@nl.FreeBSD.org di questo dominio. + + I file di configurazione del server + CVSup. Usati dai siti mirror + CVSup. + + - - - ftp://ftp.nl.FreeBSD.org/pub/FreeBSD/ - + + gnats release=current - - ftp://ftp2.nl.FreeBSD.org/pub/FreeBSD/ - - - - + + Il database GNATS per tener traccia dei bug. + + - - Norvegia + + mail-archive release=current - - In caso di problemi contatta l'hostmaster - hostmaster@no.FreeBSD.org di questo dominio. + + Archivio delle mailing list di FreeBSD. + + - - - ftp://ftp.no.FreeBSD.org/pub/FreeBSD/ - + + www release=current - - ftp://ftp3.no.FreeBSD.org/pub/FreeBSD/ - - - - + + I file pre-processati del sito web di FreeBSD (non i file + sorgenti). Usati dai siti mirror WWW. + + + + - - Nuova Zelanda + + Per Maggiori Informazioni - - In caso di problemi contatta l'hostmaster - hostmaster@nz.FreeBSD.org di questo dominio. + Per le FAQ ed altre informazioni di CVSup + vedere la pagina home + di CVSup. - - - ftp://ftp.nz.FreeBSD.org/pub/FreeBSD/ - - - - + La maggior parte delle discussioni su + CVSup inerenti a FreeBSD si svolgono sulla + &a.hackers;. In questa mailling list inoltre sono anche annunciate + nuove versioni del software, come pure sulla &a.announce;. - - Polonia + Questioni e resoconti di bug dovrebbero essere indirizzati + all'autore del programma cvsup-bugs@polstra.com. + - - In caso di problemi contatta l'hostmaster - hostmaster@pl.FreeBSD.org di questo dominio. + + Siti CVSup - - - ftp://ftp.pl.FreeBSD.org/pub/FreeBSD/ - + I server CVSup per FreeBSD si trovano + ai seguenti siti: - - ftp://ftp2.pl.FreeBSD.org/pub/FreeBSD/ - + &chap.mirrors.cvsup.inc; + + - - ftp://ftp3.pl.FreeBSD.org/pub/FreeBSD/ - - - - + + Tag CVS - - Portogallo + Quando ricevi o aggiorni dei sorgenti usando + cvs o CVSup devi + specificare un tag di revisione (un riferimento a una data). - - In caso di problemi contatta l'hostmaster - hostmaster@pt.FreeBSD.org di questo dominio. + Un tag di revisione si riferisce sia ad una particolare linea di + sviluppo di FreeBSD, sia ad un specifico periodo di tempo. I primi tipi + sono chiamati tag di ramo, i secondi tag di + release. - - - ftp://ftp2.pt.FreeBSD.org/pub/FreeBSD/ - + + Tag di Ramo - - ftp://ftp3.pt.FreeBSD.org/pub/FreeBSD/ - - - - + Tutti, con l'eccezione di HEAD (che è + sempre un valido tag), sono relativi all'albero + src/. Gli alberi ports/, + doc/, e www/ non sono + ramificati. - - Regno Unito + + + HEAD - - In caso di problemi contatta l'hostmaster - hostmaster@uk.FreeBSD.org di questo dominio. + + Nome simbolico per la linea di sviluppo corrente, + FreeBSD-CURRENT. È anche il tag di default se nessun tag + di revisione è specificato. + + In CVSup, questo tag è + rappresentato dal simbolo .. + + + In CVS, questo è il settaggio di default se nessun + tag di revisione è stato specificato. In genere + non è una buona idea aggiornare i + sorgenti a CURRENT su una macchina STABLE, a meno che sai cosa + stai facendo. + + + + + + RELENG_5_1 - - - ftp://ftp.uk.FreeBSD.org/pub/FreeBSD/ - + + Il ramo di release per FreeBSD-5.1, usato solo per + aggiornamenti relativi alla sicurezza e per altri fix seri e + cruciali. + + - - ftp://ftp2.uk.FreeBSD.org/pub/FreeBSD/ - + + RELENG_5_0 - - ftp://ftp3.uk.FreeBSD.org/pub/FreeBSD/ - + + Il ramo di release per FreeBSD-5.0, usato solo per + aggiornamenti relativi alla sicurezza e per altri fix seri e + cruciali. + + - - ftp://ftp4.uk.FreeBSD.org/pub/FreeBSD/ - + + RELENG_4 - - ftp://ftp5.uk.FreeBSD.org/pub/FreeBSD/ - + + La linea di sviluppo per FreeBSD-4.X, anche conosciuta come + FreeBSD-STABLE. + + - - ftp://ftp6.uk.FreeBSD.org/pub/FreeBSD/ - - - - + + RELENG_4_9 - - Repubblica Ceca + + Il ramo di release per FreeBSD-4.9, usato solo per + aggiornamenti relativi alla sicurezza e per altri fix seri e + cruciali. + + - - In caso di problemi contatta l'hostmaster - hostmaster@cz.FreeBSD.org di questo dominio. + + RELENG_4_8 - - - ftp://ftp.cz.FreeBSD.org/pub/FreeBSD/ Contatto: calda@dzungle.ms.mff.cuni.cz - - - - + + Il ramo di release per FreeBSD-4.8, usato solo per + aggiornamenti relativi alla sicurezza e per altri fix seri e + cruciali. + + - - Repubblica Slovacca + + RELENG_4_7 - - In caso di problemi contatta l'hostmaster - hostmaster@sk.FreeBSD.org di questo dominio. + + Il ramo di release per FreeBSD-4.7, usato solo per + aggiornamenti relativi alla sicurezza e per altri fix seri e + cruciali. + + - - - ftp://ftp.sk.FreeBSD.org/pub/FreeBSD/ - + + RELENG_4_6 - - ftp://ftp2.sk.FreeBSD.org/pub/FreeBSD/ - - - - + + Il ramo di release per FreeBSD-4.6 e FreeBSD-4.6.2, usato solo + per aggiornamenti relativi alla sicurezza e per altri fix seri e + cruciali. + + - - Romania + + RELENG_4_5 - - In caso di problemi contatta l'hostmaster - hostmaster@ro.FreeBSD.org di questo dominio. + + Il ramo di release per FreeBSD-4.5, usato solo per + aggiornamenti relativi alla sicurezza e per altri fix seri e + cruciali. + + - - - ftp://ftp.ro.FreeBSD.org/pub/FreeBSD/ - - - - + + RELENG_4_4 - - Russia + + Il ramo di release per FreeBSD-4.4, usato solo per + aggiornamenti relativi alla sicurezza e per altri fix seri e + cruciali. + + - - In caso di problemi contatta l'hostmaster - hostmaster@ru.FreeBSD.org di questo dominio. + + RELENG_4_3 - - - ftp://ftp.ru.FreeBSD.org/pub/FreeBSD/ - + + Il ramo di release per FreeBSD-4.3, usato solo per + aggiornamenti relativi alla sicurezza e per altri fix seri e + cruciali. + + - - ftp://ftp2.ru.FreeBSD.org/pub/FreeBSD/ - + + RELENG_3 - - ftp://ftp3.ru.FreeBSD.org/pub/FreeBSD/ - + + La line di sviluppo per FreeBSD-3.X, anche conosciuta come + 3.X-STABLE. + + - - ftp://ftp4.ru.FreeBSD.org/pub/FreeBSD/ - - - - + + RELENG_2_2 - Slovenia + + La linea di sviluppo per FreeBSD-2.2.X, anche conosciuta come + 2.2-STABLE. Questo ramo è per la maggior parte + obsoleto. + + + + - - In caso di problemi contatta l'hostmaster - hostmaster@si.FreeBSD.org di questo dominio. + + Tag di Release - - - ftp://ftp2.si.FreeBSD.org/pub/FreeBSD/ - - - - + Questi tag sono relativi all'albero di FreeBSD + src/ (e agli alberi ports/, + doc/, e www/) in un + determinato periodo, quando è stata rilasciata una certa + versione di FreeBSD. - - Spagna + + + RELENG_4_9_0_RELEASE - - In caso di problemi contatta l'hostmaster - hostmaster@es.FreeBSD.org di questo dominio. + + FreeBSD 4.9 + + - - - ftp://ftp.es.FreeBSD.org/pub/FreeBSD/ - + + RELENG_5_1_0_RELEASE - - ftp://ftp2.es.FreeBSD.org/pub/FreeBSD/ - + + FreeBSD 5.1 + + - - ftp://ftp3.es.FreeBSD.org/pub/FreeBSD/ - - - - + + RELENG_4_8_0_RELEASE - - Stati Uniti d'America + + FreeBSD 4.8 + + - - In caso di problemi contatta l'hostmaster - hostmaster@FreeBSD.org di questo dominio. + + RELENG_5_0_0_RELEASE - - - ftp://ftp1.FreeBSD.org/pub/FreeBSD/ - + + FreeBSD 5.0 + + - - ftp://ftp2.FreeBSD.org/pub/FreeBSD/ - + + RELENG_4_7_0_RELEASE - - ftp://ftp3.FreeBSD.org/pub/FreeBSD/ - + + FreeBSD 4.7 + + - - ftp://ftp4.FreeBSD.org/pub/FreeBSD/ - + + RELENG_4_6_2_RELEASE - - ftp://ftp5.FreeBSD.org/pub/FreeBSD/ - + + FreeBSD 4.6.2 + + - - ftp://ftp6.FreeBSD.org/pub/FreeBSD/ - + + RELENG_4_6_1_RELEASE - - ftp://ftp7.FreeBSD.org/pub/FreeBSD/ - + + FreeBSD 4.6.1 + + - - ftp://ftp8.FreeBSD.org/pub/FreeBSD/ - + + RELENG_4_6_0_RELEASE + + + FreeBSD 4.6 + + + + + RELENG_4_5_0_RELEASE + + + FreeBSD 4.5 + + + + + RELENG_4_4_0_RELEASE + + + FreeBSD 4.4 + + + + + RELENG_4_3_0_RELEASE + + + FreeBSD 4.3 + + + + + RELENG_4_2_0_RELEASE + + + FreeBSD 4.2 + + + + + RELENG_4_1_1_RELEASE + + + FreeBSD 4.1.1 + + + + + RELENG_4_1_0_RELEASE + + + FreeBSD 4.1 + + + + + RELENG_4_0_0_RELEASE + + + FreeBSD 4.0 + + + + + RELENG_3_5_0_RELEASE + + + FreeBSD-3.5 + + + + + RELENG_3_4_0_RELEASE + + + FreeBSD-3.4 + + + + + RELENG_3_3_0_RELEASE + + + FreeBSD-3.3 + + + + + RELENG_3_2_0_RELEASE + + + FreeBSD-3.2 + + + + + RELENG_3_1_0_RELEASE + + + FreeBSD-3.1 + + + + + RELENG_3_0_0_RELEASE + + + FreeBSD-3.0 + + + + + RELENG_2_2_8_RELEASE + + + FreeBSD-2.2.8 + + + + + RELENG_2_2_7_RELEASE + + + FreeBSD-2.2.7 + + + + + RELENG_2_2_6_RELEASE + + + FreeBSD-2.2.6 + + - - ftp://ftp9.FreeBSD.org/pub/os/FreeBSD/ - + + RELENG_2_2_5_RELEASE - - ftp://ftp10.FreeBSD.org/pub/FreeBSD/ - + + FreeBSD-2.2.5 + + - - ftp://ftp11.FreeBSD.org/pub/FreeBSD/ - + + RELENG_2_2_2_RELEASE - - ftp://ftp12.FreeBSD.org/pub/FreeBSD/ - + + FreeBSD-2.2.2 + + - - ftp://ftp13.FreeBSD.org/pub/FreeBSD/ - + + RELENG_2_2_1_RELEASE - - ftp://ftp14.FreeBSD.org/pub/FreeBSD/ - - - - + + FreeBSD-2.2.1 + + - - Singapore + + RELENG_2_2_0_RELEASE - - In caso di problemi contatta l'hostmaster - hostmaster@sg.FreeBSD.org di questo dominio. + + FreeBSD-2.2.0 + + + + + - - - ftp://ftp.sg.FreeBSD.org/pub/FreeBSD/ - - - - + + Siti AFS + I server AFS per FreeBSD sono in esecuzione nei seguenti siti: + + - Sud Africa + Svezia - In caso di problemi contatta l'hostmaster - hostmaster@za.FreeBSD.org di questo dominio. + Il percorso dei file è: + /afs/stacken.kth.se/ftp/pub/FreeBSD/ - - - ftp://ftp.za.FreeBSD.org/pub/FreeBSD/ - - - - ftp://ftp2.za.FreeBSD.org/pub/FreeBSD/ - - - - ftp://ftp3.za.FreeBSD.org/pub/FreeBSD/ - + stacken.kth.se # Stacken Computer Club, KTH, Svezia +130.237.234.43 #hot.stacken.kth.se +130.237.237.230 #fishburger.stacken.kth.se +130.237.234.3 #milko.stacken.kth.se - - ftp://ftp4.za.FreeBSD.org/pub/FreeBSD/ - - + Il maintainer ftp@stacken.kth.se + + + + + Siti rsync + + I seguenti siti rendono disponibile FreeBSD tramite il protocollo + rsync. L'utility rsync lavora nello stesso + modo del comando &man.rcp.1;, ma ha più opzioni e usa il protocollo + rsync per aggiornamenti remoti il quale trasferisce solo le differenze tra + i due set di file, e di conseguenza accelera fortemente la + sincronizzazione su rete. Questo è molto utile se hai un sito + mirror del server FTP di FreeBSD, o del deposito CVS. La suite + rsync è disponibile per molti sistemi + operativi e, su FreeBSD, puoi usare il port net/rsync o il rispettivo package. + - Svezia + Repubblica Ceca - In caso di problemi contatta l'hostmaster - hostmaster@se.FreeBSD.org di questo dominio. - - - - ftp://ftp.se.FreeBSD.org/pub/FreeBSD/ - + rsync://ftp.cz.FreeBSD.org/ - - ftp://ftp2.se.FreeBSD.org/pub/FreeBSD/ - + Collezioni disponibili: + - ftp://ftp3.se.FreeBSD.org/pub/FreeBSD/ + ftp: Un mirror parziale del server FTP di FreeBSD. - ftp://ftp5.se.FreeBSD.org/pub/FreeBSD/ + FreeBSD: Un mirror completo del server FTP di + FreeBSD. - Svizzera + Germania - In caso di problemi contatta l'hostmaster - hostmaster@ch.FreeBSD.org di questo dominio. + rsync://grappa.unix-ag.uni-kl.de/ + + Collezioni disponibili: - ftp://ftp.ch.FreeBSD.org/pub/FreeBSD/ + freebsd-cvs: Il completo deposito CVS di FreeBSD. + + Questa macchina fa da mirror anche per il deposito CVS dei + progetti NetBSD e OpenBSD, tra gli altri. - Tailandia + Olanda + rsync://ftp.nl.FreeBSD.org/ + + Collezioni disponibili: + - ftp://ftp.nectec.or.th/pub/FreeBSD/ Contatto: ftpadmin@ftp.nectec.or.th. + vol/3/freebsd-core: Un completo mirror del server FTP di + FreeBSD. - Taiwan + Regno Unito - In caso di problemi contatta l'hostmaster - hostmaster@tw.FreeBSD.org di questo dominio. - - - - ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/ - + rsync://rsync.mirror.ac.uk/ - - ftp://ftp2.tw.FreeBSD.org/pub/FreeBSD/ - - - - ftp://ftp3.tw.FreeBSD.org/pub/FreeBSD/ - - - - ftp://ftp4.tw.FreeBSD.org/pub/FreeBSD/ - - - - ftp://ftp5.tw.FreeBSD.org/pub/FreeBSD/ - - - - ftp://ftp6.tw.FreeBSD.org/pub/FreeBSD/ - - - - ftp://ftp7.tw.FreeBSD.org/pub/FreeBSD/ - - - - ftp://ftp8.tw.FreeBSD.org/pub/FreeBSD/ - + Collezioni disponibili: + - ftp://ftp9.tw.FreeBSD.org/pub/FreeBSD/ + ftp.FreeBSD.org: Un completo mirror del server FTP di + FreeBSD. - Ucraina + Stati Uniti d'America - - - ftp://ftp.ua.FreeBSD.org/pub/FreeBSD/ Contatto: freebsd-mnt@lucky.net. - + rsync://ftp-master.FreeBSD.org/ - - ftp://ftp2.ua.FreeBSD.org/pub/FreeBSD/ - - - - ftp://ftp3.ua.FreeBSD.org/pub/FreeBSD/ - + Questo server può essere usato solo dai siti mirror + primari di FreeBSD. - - ftp://ftp5.ua.FreeBSD.org/pub/FreeBSD/ - + Collezioni disponibili: + - ftp://ftp6.ua.FreeBSD.org/pub/FreeBSD/ + FreeBSD: L'archivio master del server FTP di FreeBSD. - ftp://ftp7.ua.FreeBSD.org/pub/FreeBSD/ + acl: La lista master delle ACL di FreeBSD. - - - - Ungaria - - In caso di problemi contatta l'hostmaster - mohacsi@ik.bme.hu di questo dominio. + rsync://ftp13.FreeBSD.org/ + + Collezioni disponibili: - ftp://ftp.hu.FreeBSD.org/pub/FreeBSD/ + FreeBSD: Un completo mirror del server FTP di + FreeBSD. - - - CVS Anonimo - - - <anchor id="anoncvs-intro">Introduzione - - Il CVS Anonimo (conosciuto anche come - anoncvs) è una caratteristica del - programma di utilità CVS contenuto in FreeBSD che serve per - sincronizzarsi con un repository (l'archivio centrale contenete i - file, in gergo CVS) remoto. Tra le altre cose uqesto permette agli - utenti FreeBSD, senza avere particlari previlegi, accesso CVS in sola - lettura su ogni server ufficiale anoncvs del progetto FreeBSD. - Per utilizzarlo è sufficente impostare la variabile di ambiente - CVSROOT facendola puntare al server anoncvs - appropriato, immettere la password anoncvs con il - comando cvs login e poi usare il comando &man.cvs.1 - per accederci come se fosse un repository locale. - - - Il comando cvs login immagazzina la password - utilizzata per l'autenticazione con il server CVS in un file - chiamato .cvspass nella cartella - HOME. Se questo file non esiste, potresti ottenere - un'errore alla prima esecuzione di cvs login. - Crea un file .cvspass vuoto e riprova il - login. - - - Benché si possa dire che i servizi - CVSup e anoncvs - offrano sostanzialmente le stesse funzioni ci sono vari particolari - chepossono influenzare la scelta di un metodo di - sincronizzazionepiuttosto di un altro. Per dirla in - breve CVSup è più - efficente nell'uso delle risorse di rete ed è il più - avanzato tecnicamente tra i due, ma tutto questo ha un prezzo. Per - usare CVSup bisogna installare e configurare - un client speciale prima di poter scaricare qualcosa, che - comunque è suddiviso in blocchi piuttosto grossi - che CVSup - chiama collections (collezioni). - - Anoncvs, al contrario, può essere - usato per esaminare qualunque cosa a partire da un singolo file fino a - uno specifico programma (ad esempio ls o - grep) con il riferimento del nome del suo modulo CVS. - Ovviamente anoncvs è adatto solo per - operazioni di sola lettura dal repository (archivio) CVS quindi se - l'intenzione è di permettere lo sviluppo locale in un repository - condiviso del FreeBSD Project allora CVSup - è in realtà l'unica opzione. - - - - <anchor id="anoncvs-usage">Uso del CVS Anonimo - - Configurare &man.cvs.1; per usare un repository CVS Anonimo - è semplice come impostare la variable di ambiente - CVSROOT affinché punti a uno dei server - anoncvs del progetto FreeBSD. Al momento della - stesura di questo testo sono disponibili i seguenti server: - - - - USA: - :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs - (Usa cvs login ed inserisci la password - anoncvs quando richiesta.) - - - - Germania: - :pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs - (Usa cvs login ed inserisci la password - anoncvs quando richiesta.) - - - - Germania: - :pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs - (rsh, pserver, ssh, ssh/2022) - - - - - Giappone: - :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs - (Usa cvs login ed inserisci la password - anoncvs quando richiesta.) - - - - Dato che CVS permette di estrarre (nel suo gergo: check - out) ogni versione dei sorgenti di FreeBSD che sia mai esistita - (o, in alcuni casi, che esisterà), è necessario essere - familiari con il parametro 'revisione' () di - &man.cvs.1; e quali valori sono permessi nel repository del FreeBSD - Project. - - Ci sono due tipi di tag, i tag di revisione e i tag di ramo. Un tag - di revisione fa riferimento ad una versione specifica. Il suo - significato rimane lo stesso di giorno in giorno. Un tag di ramo, - d'altro canto, si riferisce di giorno in giorno all'ultima revisione di - una specifica linea di sviluppo (chiamata ramo in gergo - CVS). Dato che un tag di ramo non si riferisce ad una revisione - specifica, domani può avere un significato diverso da quello che - ha oggi. - - contiene i tag di revisione che possono - essere interessanti per gli utenti. Nessuno di questi tag è - valido per i ports dato che i ports non hanno revisioni multiple. - - Quando specifichi un tag di ramo normalmente ricevi l'ultima - versione dei files su quella linea di sviluppo. Se vuoi ricevere una - versione precedente puoi farlo specifciando la data con il parametro - . Riferitevi a &man.cvs.1; per ulteriori - dettagli. - - - - Esempi - - Benché sia consigliata l'attenta lettura del manuale - &man.cvs.1; prima di fare qualsiasi cosa, seguono alcuni veloci esempi - che spiegano in modo essenziale l'uso del CVS Anonimo: - - - Estrazione di Qualcosa dalla -CURRENT (&man.ls.1;) e Poi Cancellazione: - - &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs -&prompt.user; cvs login -Alla richiesta, inserire la password anoncvs. -&prompt.user; cvs co ls -&prompt.user; cvs release -d ls -&prompt.user; cvs logout - - - - Estrazione della Versione di &man.ls.1; dal Ramo 3.X-STABLE: - - &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs -&prompt.user; cvs login -Alla richiesta, inserire la password anoncvs. -&prompt.user; cvs co -rRELENG_3 ls -&prompt.user; cvs release -d ls -&prompt.user; cvs logout - - - - Crazione di una Lista di Cambiamenti (come diff unificata) di &man.ls.1; - - &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs -&prompt.user; cvs login -Alla richiesta, inserire la password anoncvs. -&prompt.user; cvs rdiff -u -rRELENG_3_0_0_RELEASE -rRELENG_3_4_0_RELEASE ls -&prompt.user; cvs logout - - - - Scoperta di Quali Altri Nomi di Moduli Possono Essere Usati: - - &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs -&prompt.user; cvs login -Alla richiesta, inserire la password anoncvs. -&prompt.user; cvs co modules -&prompt.user; more modules/modules -&prompt.user; cvs release -d modules -&prompt.user; cvs logout - - - - - Altre Risorse - - Le seguenti risorse addizionali possono essere utili - nell'apprendimento del CVS: - - - - CVS Tutorial dal Cal Poly. - - - - CVS Home, - la comunitą di sviluppo e supporto del CVS. - - - - CVSWeb - è il progetto FreeBSD di interfaccia web per CVS. - - - - - - - Using CTM - - Traduzione in corso - - - - Using CVSup - - - Installation - - Traduzione in corso - - - - CVSup Sites - - Traduzione in corso - - - - - CVS Tags - - Traduzione in corso - - - - AFS Sites - - Traduzione in corso - - - - rsync sites - - Traduzione in corso -
+ diff --git a/it_IT.ISO8859-15/books/handbook/multimedia/chapter.sgml b/it_IT.ISO8859-15/books/handbook/multimedia/chapter.sgml index 8803a7b257..a3cb432ca1 100644 --- a/it_IT.ISO8859-15/books/handbook/multimedia/chapter.sgml +++ b/it_IT.ISO8859-15/books/handbook/multimedia/chapter.sgml @@ -1,1525 +1,1544 @@ Ross Lippert Scritto da Multimedia Sinossi FreeBSD supporta una grande varietà di schede audio, permettendoti di apprezzare un output di alta fedeltà dal tuo computer. Questo include l'abilità di registrare e riprodurre suoni nei formati MPEG Audio Layer 3 (MP3), WAV, ed Ogg Vorbis così come in molti altri formati. La FreeBSD Ports Collection contiene inoltre applicazioni che ti permettono di modificare l'audio registrato, aggiungere effetti sonori, e controllare i dispositivi MIDI collegati. Con un po' di buona volontà nello sperimentare, FreeBSD può supportare la riproduzione di file video e DVD. Il numero di applicazioni per codificare, convertire, e riprodurre i vari formati video è più limitato del numero delle applicazioni audio. Per esempio nel momento in cui sto scrivendo, non esiste nella FreeBSD Ports Collection una buona applicazione per ricodificare, che potrebbe essere usata per la conversione tra diversi formati, come c'è con audio/sox. Tuttavia, il panorama software in quest'area sta rapidamente cambiando. Questo capitolo descriverà i passi necessari per configurare la tua scheda audio. La configurazione e l'installazione di - XFree86 () si sono + &xfree86; () si sono già prese cura dei problemi hardware della tua scheda video, sebbene ci possano essere delle ottimizzazioni da applicare per una migliore riproduzione. Dopo aver letto questo capitolo, saprai: Come configurare il sistema in modo che la scheda audio venga riconosciuta. Metodi per verificare che la tua scheda funzioni, usando applicazioni di esempio. Come risolvere i problemi di configurazione audio. Come riprodurre e codificare file MP3. Come sono supportate le applicazioni video da - XFree86. + &xfree86;. Alcuni port per riprodurre/codificare filmati che danno buoni risultati. Come riprodurre i DVD e i file .mpg e .avi. Come estrarre le informazioni da CD e DVD su file. Prima di leggere questo capitolo, dovresti: Sapere come configurare e installare un nuovo kernel (). - Per le sezioni sul video, si assume che XFree86 + Per le sezioni sul video, si assume che &xfree86; 4.X (x11/XFree86-4) sia - stato installato. XFree86 3.X può + stato installato. &xfree86; 3.X può funzionare, ma non è stato testato con quello che è descritto in questo capitolo. Se scopri che qualcosa descritto qui non - funziona con XFree86 3.X faccelo sapere. + funziona con &xfree86; 3.X faccelo + sapere. Provare a montare un CD audio o un DVD video con il comando &man.mount.8; produrrà un errore, come minimo, o un kernel panic, alla peggio. Questi formati hanno codifiche particolari che differiscono dal comune file system ISO. Moses Moore Contributo di Configurazione della Scheda Audio Riconoscimento del Proprio Dispositivo PCI ISA schede audio Prima di iniziare, dovresti conoscere il modello della scheda che possiedi, il chip che utilizza, e se è una scheda PCI o ISA. FreeBSD supporta una grande varietà di schede sia PCI che ISA. Se non vedi la tua scheda nella lista seguente, controlla la pagina man di &man.pcm.4;. Questa non è una lista completa; tuttavia, comprende le schede più comuni. Crystal 4237, 4236, 4232, 4231 Yamaha OPL-SAx OPTi931 Ensoniq AudioPCI 1370/1371 ESS Solo-1/1E NeoMagic 256AV/ZX - Sound Blaster Pro, 16, 32, AWE64, AWE128, Live + &soundblaster; Pro, 16, 32, AWE64, AWE128, Live Creative ViBRA16 Advance Asound 100, 110, e Logic ALS120 ES 1868, 1869, 1879, 1888 Gravis UltraSound Aureal Vortex 1 o 2 kernel configurazione Per usare il tuo dispositivo audio, dovrai caricare i driver corretti. Questo può essere fatto in due modi. Il metodo più semplice consiste semplicemente nel caricare un modulo nel - kernel per la tua scheda audio con &man.kldload.8;. Alternativamente, + kernel per la tua scheda audio con &man.kldload.8; che può + essere fatto sia da linea di comando: + + &prompt.root; kldload snd_emu10k1.ko + + sia aggiungendo la riga appropriata al file + /boot/defaults/loader.conf come questa: + + snd_emu10k1_load="YES" + + Questi esempi sono per la scheda audio Creative &soundblaster; + Live!. Altri moduli sonori disponibili sono elencati in + /boot/loader.conf. + + Alternativamente, puoi compilare staticamente il supporto per la tua scheda audio nel kernel. Le sezioni seguenti forniscono le informazioni di cui hai bisogno per aggiungere il supporto al tuo hardware con questo metodo. Per informazioni aggiuntive su come ricompilare il kernel, guarda il . Schede Audio Creative, Advance, e ESS Se hai una delle suddette schede, dovrai aggiungere: device pcm al file di configurazione del kernel. Se hai una scheda ISA PnP, dovrai aggiungere inoltre: device sbc Per una scheda ISA non PnP, aggiungi: device pcm device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15 al file di configurazione del kernel. Le impostazioni appena viste sono quelle di default. Potresti aver bisogno di cambiare IRQ o altre impostazioni per identificare la tua scheda. Guarda la pagina man di &man.sbc.4; per ulteriori informazioni. La Sound Blaster Live non è supportata sotto FreeBSD 4.0 senza l'uso di una patch, di cui questa sezione non si occuperà. È consigliato l'aggiornamento all'ultima -STABLE prima di provare ad usare questa scheda. Schede Gravis UltraSound Per una scheda ISA PnP, dovrai aggiungere: device pcm device gusc al file di configurazione del kernel. Se hai una scheda ISA non PnP, dovrai aggiungere: device pcm device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13 al file di configurazione del kernel. Potresti aver bisogno di cambiare IRQ o altre impostazioni per identificare la tua scheda. Guarda la pagina man di &man.gusc.4; per ulteriori informazioni. Schede Crystal Sound Per le schede Crystal, dovrai aggiungere: device pcm device csa al file di configurazione del kernel. Supporto Generico Per schede ISA o PCI PnP, dovrai aggiungere: device pcm al file di configurazione del kernel. Se hai una scheda audio ISA non PnP che non ha un driver bridge, dovrai aggiungere: device pcm0 at isa? irq 10 drq 1 flags 0x0 al file di configurazione del kernel. Potresti aver bisogno di cambiare IRQ o altre impostazioni per identificare la tua scheda. Sonoro Integrato Qualche sistema con dispositivi audio integrati nella scheda madre può richiedere l'opzione seguente nella configurazione del kernel: options PNPBIOS Creazione e Test dei Dispositivi dispositivi Dopo aver riavviato, loggati e cerca il dispositivo nel file /var/run/dmesg.boot, come mostrato qui sotto: &prompt.root; grep pcm /var/run/dmesg.boot pcm0: <SB16 DSP 4.11> on sbc0 L'output del tuo sistema può essere differente. Se non appare nessun dispositivo pcm, qualcosa è andato storto in precedenza. Se questo accade, riguarda il file di configurazione del kernel e assicurati di aver scelto il dispositivo corretto. I problemi più comuni sono elencati nella . Se stai usando FreeBSD 5.0 o seguenti, puoi tranquillamente saltare il resto di questa sezione. Queste versioni usano &man.devfs.5; per creare automaticamente i dispositivi. Se il precedente comando ha restituito pcm0, dovrai eseguire il seguente come root: &prompt.root; cd /dev &prompt.root; sh MAKEDEV snd0 Se il comando ha restituito pcm1, segui gli stessi passi mostrati qui sopra, sostituendo snd0 con snd1. I suddetti comandi non creeranno un dispositivo /dev/snd! MAKEDEV creerà un gruppo di dispositivi, comprendente: Dispositivo Descrizione /dev/audio - Dispositivo audio compatibile SPARC + Dispositivo audio compatibile &sparc; /dev/dsp Dispositivo per la voce digitalizzata /dev/dspW Come /dev/dsp, ma con 16 bit per canale /dev/midi Dispositivo per l'accesso midi in modalità diretta /dev/mixer Dispositivo per il controllo del mixer /dev/music Interfaccia di secondo livello al sequenziatore /dev/sequencer Sequenziatore /dev/pss Interfaccia di dispositivo programmabile Se tutto va bene, ora dovresti avere una scheda audio funzionante. Se il tuo drive CD-ROM o DVD-ROM è collegato correttamente alla scheda audio, puoi inserire un CD nel drive e riprodurlo con &man.cdcontrol.1;: &prompt.user; cdcontrol -f /dev/acd0c play 1 Varie applicazioni, come audio/workman offrono una migliore interfaccia. Potresti voler installare una applicazione come audio/mpg123 per ascoltare i file audio MP3. Problemi Comuni + dispositivi + I/O port + IRQ + DSP + Errore Soluzione - dispositivi - unsupported subdevice XX Non è stato creato correttamente qualche dispositivo. Ripeti i precedenti passi. - I/O port - sb_dspwr(XX) timed out Non è stata impostata correttamente la porta di I/O. - IRQ - bad irq XX È stato configurato erroneamente l'IRQ. Assicurati che l'IRQ impostato e quello della scheda siano gli stessi. xxx: gus pcm not attached, out of memory Non c'è abbastanza memoria disponibile per usare il dispositivo. - DSP - xxx: can't open /dev/dsp! Controlla con fstat | grep dsp se un'altra applicazione sta usando il dispositivo. Esound e il supporto audio di KDE sono famosi per creare problemi. Munish Chopra Contributo di Utilizzo di Sorgenti Audio Multiple È spesso desiderabile avere più sorgenti di audio che siano in grado di suonare contemporaneamente, per esempio quando esound o artsd non supportano la condivisione del dispositivo audio con una certa applicazione. FreeBSD ti permette di fare questo attraverso i Virtual Sound Channels, che possono essere impostati con &man.sysctl.8;. I canali virtuali permettono di multiplexare i canali di riproduzione della tua scheda audio mixando l'audio nel kernel. Per impostare il numero dei canali virtuali, ci sono due variabili sysctl che, se sei l'utente root, possono essere impostate così: &prompt.root; sysctl hw.snd.pcm0.vchans=4 &prompt.root; sysctl hw.snd.maxautovchans=4 L'esempio qui sopra alloca quattro canali viruali, che è un numero adatto all'uso di ogni giorno. hw.snd.pcm0.vchans è il numero dei canali virtuali che ha pcm0, ed è configurabile una volta che il dispositivo è collegato. hw.snd.maxautovchans è il numero dei canali virtuali che vengono dati a un nuovo dispositivo audio quando viene collegato tramite &man.kldload.8;. Visto che il modulo pcm può essere caricato indipendentemente dai driver dell'hardware, hw.snd.maxautovchans può contenere tanti canali virtuali quanti ne verranno allocati successivamente ad ogni dispositivo collegato. Se non stai usando &man.devfs.5;, dovrai indirizzare la tua applicazione su /dev/dsp0.x, dove x va da 0 a 3 se hw.snd.pcm.0.vchans è impostato a 4 come nel precedente esempio. Su un sistema che usa &man.devfs.5;, questo verrà fatto automaticamente in modo trasparente per l'utente. Chern Lee Contributo di Audio MP3 Il formato MP3 (Audio MPEG Livello 3) raggiunge una qualità audio vicino a quella dei CD, non lasciandoti motivi per non utilizzarlo sulla tua workstation FreeBSD. Lettori MP3 Da tempo, il più famoso lettore MP3 per - XFree86 MP3 è + &xfree86; MP3 è XMMS (X Multimedia System). Le skin per Winamp possono essere usate con XMMS visto che la GUI è praticamente identica a quella di Winamp della Nullsoft. XMMS ha inoltre supporto nativo ai plug-in. XMMS può essere installato dal port o dal package multimedia/xmms. L'interfaccia di XMMS è intuitiva, comprende una lista di brani da eseguire, un equalizzatore grafico, ed altro. Coloro che sono familiari con Winamp troveranno XMMS semplice da usare. Il port audio/mpg123 è un lettore MP3 alternativo, da riga di comando. mpg123 può essere eseguito specificando il dispositivo audio e il nome del file MP3 sulla riga di comando, come mostrato qui sotto: &prompt.root; mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3 High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3. Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp. Uses code from various people. See 'README' for more! THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK! -Playing MPEG stream from BT - Foobar-GreastHits.mp3 ... +Playing MPEG stream from Foobar-GreatestHits.mp3 ... MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo /dev/dsp1.0 deve essere sostituito con il dispositivo dsp presente sul tuo sistema. Estrazione delle Tracce Audio dei CD Prima di codificare un CD o una traccia di CD in MP3, i dati audio sul CD devono essere estratti sul disco fisso. Questo avviene copiando direttamente i dati CDDA (CD Digital Audio) in file WAV. Il tool cdda2wav, che fa parte della suite sysutils/cdrtools, viene usato per estrarre le informazioni audio dai CD e i dati associati. Mentre il CD audio è nel lettore, può essere eseguito il seguente comando (come root) per estrarre un intero CD in singoli (per traccia) file WAV: &prompt.root; cdda2wav -D 0,1,0 -B cdda2wav supporta anche i lettori CDROM ATAPI (IDE). Per estrarre da un lettore IDE, specifica il nome del dispositivo al posto nel numero dell'unità SCSI. Ad esempio, per estrarre la traccia 7 dal lettore IDE: &prompt.root; cdda2wav -D /dev/acd0a -t 7 Il indica il dispositivo SCSI 0,1,0, che corrisponde all'output di cdrecord -scanbus. Per estrarre tracce singole, usa l'opzione come mostrato: &prompt.root; cdda2wav -D 0,1,0 -t 7 Questo esempio estrae la settima traccia del CD audio. Per estrarre una serie di tracce, per esempio dalla traccia uno alla sette, specifica un intervallo: &prompt.root; cdda2wav -D 0,1,0 -t 1+7 L'utility &man.dd.1; può anche essere usata per estrarre le tracce audio dai drive ATAPI, leggi per maggiori informazioni su questa possibilità. Codifica in MP3 Al giorno d'oggi, il programma di codifica in mp3 da scegliere è lame. Lame può essere trovato in audio/lame nell'albero dei port. Usando i file WAV estratti, il seguente comando convertirà audio01.wav in audio01.mp3: &prompt.root; lame -h -b 128 \ --tt "Titolo" \ --ta "Artista" \ --tl "Album" \ --ty "2002" \ --tc "Estratto e codificato da Blah" \ --tg "Genere" \ audio01.wav audio01.mp3 128 kbits sembra essere il bitrate standard in uso per gli MP3. Molti preferiscono la qualità maggiore dei 160, o 192. Più alto è il bitrate, più spazio consumerà l'MP3 risultante--ma la qualità sarà maggiore. L'opzione attiva il modo qualità migliore ma un po' più lento". Le opzioni che iniziano con indicano i tag ID3, che solitamente contengono le informazioni sulla canzone, da inserire all'interno del file MP3. Ulteriori opzioni di codifica possono essere trovate consultando la pagina man di lame. Decodifica da MP3 Per masterizzare un CD audio partendo dagli MP3, questi ultimi devono essere convertiti in un formato WAV non compresso. Sia XMMS che mpg123 supportano l'output di un MP3 in un formato non compresso. Scrittura su Disco con XMMS: Avvia XMMS. Clicca con il tasto destro sulla finestra per far comparire il menu di XMMS. Seleziona Preference sotto Options. Cambia l'Output Plugin in Disk Writer Plugin. Premi Configure. Inserisci (o scegli browse) la directory in cui salvare i file decompressi. Carica il file MP3 in XMMS come al solito, con il volume al 100% e le impostazioni dell'equalizzatore disattivate. Premi PlayXMMS apparirà come se stesse riproducendo l'MP3, ma non si sentirà nessuna musica. Sta riproducendo la musica su un file. Assicurati di reimpostare l'Output Plugin di default come prima per ascoltare nuovamente gli MP3. Scrittura su stdout con mpg123: Esegui mpg123 -s audio01.mp3 > audio01.pcm XMMS scrive un file nel formato WAV, mentre mpg123 converte l'MP3 direttamente in dati audio PCM. Entrambi questi formati possono essere usati con cdrecord per creare CD audio. Devi utilizzare PCM con &man.burncd.8;. Se usi file WAV, noterai un breve ticchettio all'inizio di ogni traccia, questo suono è l'intestazione del file WAV. Puoi semplicemente rimuovere l'intestazione del file WAV con l'utility SoX (può essere installata dal port o dal package audio/sox): &prompt.user; sox -t wav -r 44100 -s -w -c 2 track.wav track.raw Leggi per ulteriori informazioni su come usare un masterizzatore con FreeBSD. Ross Lippert Contributo di Riproduzione Video La riproduzione video è un'area applicativa molto recente e in rapido sviluppo. Sii paziente. Non tutto funzionerà così facilmente come è stato per l'audio. Prima di iniziare, dovresti conoscere il modello della scheda video che possiedi e il chip che usa. Sebbene - XFree86 supporti una vasta varietà di + &xfree86; supporti una vasta varietà di schede video, poche offrono buone prestazioni in riproduzione. Per ottenere una lista di estensioni supportate dall'X server con la tua scheda usa il comando &man.xdpyinfo.1; mentre X11 sta girando. È una buona idea avere un piccolo file MPEG che possa essere trattato come un file di test per la valutazione di vari riproduttori e opzioni. Visto che alcuni riproduttori di DVD cercheranno di default i DVD in /dev/dvd, o hanno questo nome di dispositivo codificato permanentemente al loro interno, potresti trovare utile creare dei link simbolici al dispositivo corretto: - &prompt.root; ln -sf /dev/acd0c /dev/dvd -&prompt.root; ln -sf /dev/racd0c /dev/rdvd + &prompt.root; ln -sf /dev/acd0 /dev/dvd +&prompt.root; ln -sf /dev/acd0 /dev/rdvd + + Nota che, data la natura del &man.devfs.5;, i collegamenti creati a + mano come questi non rimarranno se riavvii il sistema. Per creare i + collegamenti simbolici automaticamente quando avvii il sistema, aggiungi + le seguenti righe in /etc/devfs.conf: + + link acd0 dvd +link acd0 rdvd Su FreeBSD 5.X, che usa &man.devfs.5; c'è un insieme di link raccomandati leggermente diverso: &prompt.root; ln -sf /dev/acd0c /dev/dvd &prompt.root; ln -sf /dev/acd0c /dev/rdvd In aggiunta, la decrittazione dei DVD, che richiede l'invocazione di speciali funzioni dei DVD-ROM, richiede il permesso in scrittura sui dispositivi DVD. opzioni del kernel options CPU_ENABLE_SSE opzioni del kernel options USER_LDT Alcuni dei port discussi si basano sulle seguenti opzioni del kernel per compilarsi correttamente. Prima di provare a compilarli, aggiungi queste opzioni al file di configurazione del kernel, compila un nuovo kernel, e riavvia: option CPU_ENABLE_SSE option USER_LDT + + option USER_LDT non esiste su + &os; 5.X. + + Per migliorare l'interfaccia della memoria condivisa di X11, è consigliabile incrementare i valori di alcune variabili &man.sysctl.8;: kern.ipc.shmmax=67108864 kern.ipc.shmall=32768 Determinazione delle Capacità Video XVideo SDL DGA Ci sono molti modi possibili per visualizzare immagini e filmati con X11. Quello che funzionerà meglio in pratica dipende in gran parte dal tuo hardware. Ogni metodo descritto qui sotto avrà una qualità variabile su hardware differente. In secondo luogo, il rendering video in X11 è un argomento che sta ricevendo un sacco di attenzione ultimamente, e con ogni nuova versione di - XFree86 ci possono essere notevoli + &xfree86; ci possono essere notevoli miglioramenti. Una lista di interfacce video comuni: X11: normale output di X11 che usa la memoria condivisa. XVideo: un'estensione all'interfaccia X11 che supporta grafica e filmati in ogni oggetto X11 disegnabile. SDL: Simple Directmedia Layer. DGA: Direct Graphics Access. SVGAlib: interfaccia di basso livello per la grafica da console. XVideo - XFree86 4.X ha un'estensione chiamata + &xfree86; 4.X ha un'estensione chiamata XVideo (aka Xvideo, aka Xv, aka xv) che permette di visualizzare grafica e filmati direttamente negli oggetti disegnabili attraverso una speciale accelerazione. Questa estensione fornisce una riproduzione di ottima qualità anche su macchine poco potenti (per esempio sul mio portatile PIII 400 Mhz). Sfortunatamente, la lista di schede che supportano questa caratteristica out of the box è attualmente: 3DFX Voodoo 3 - Intel i810 e i815 + &intel; i810 e i815 alcuni chip S3 (come il Savage/IX e il Savage/MX) Se la tua scheda non è fra queste, non disperarti ancora. - XFree86 4.X aggiunge il supporto a nuove + &xfree86; 4.X aggiunge il supporto a nuove schede con ogni release Una nota famiglia di schede video con ottime prestazioni in - XFree86, nVidia, deve ancora + &xfree86;, nVidia, deve ancora rilasciare le proprie specifiche sul supporto XVideo al team - XFree86. Potrà passare un po' - di tempo prima che XFree86 + &xfree86;. Potrà passare un po' + di tempo prima che &xfree86; supporterà completamente XVideo per queste schede. . Per controllare se l'estensione sta girando, usa xvinfo: &prompt.user; xvinfo XVideo è supportato dalla tua scheda se il risultato è simile a: X-Video Extension version 2.2 screen #0 Adaptor #0: "Savage Streams Engine" number of ports: 1 port base: 43 operations supported: PutImage supported visuals: depth 16, visualID 0x22 depth 16, visualID 0x23 number of attributes: 5 "XV_COLORKEY" (range 0 to 16777215) client settable attribute client gettable attribute (current value is 2110) "XV_BRIGHTNESS" (range -128 to 127) client settable attribute client gettable attribute (current value is 0) "XV_CONTRAST" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) "XV_SATURATION" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) "XV_HUE" (range -180 to 180) client settable attribute client gettable attribute (current value is 0) maximum XvImage size: 1024 x 1024 Number of image formats: 7 id: 0x32595559 (YUY2) guid: 59555932-0000-0010-8000-00aa00389b71 bits per pixel: 16 number of planes: 1 type: YUV (packed) id: 0x32315659 (YV12) guid: 59563132-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x30323449 (I420) guid: 49343230-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x36315652 (RV16) guid: 52563135-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x3e0, 0x7c00 id: 0x35315652 (RV15) guid: 52563136-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x7e0, 0xf800 id: 0x31313259 (Y211) guid: 59323131-0000-0010-8000-00aa00389b71 bits per pixel: 6 number of planes: 3 type: YUV (packed) id: 0x0 guid: 00000000-0000-0000-0000-000000000000 bits per pixel: 0 number of planes: 0 type: RGB (packed) depth: 1 red, green, blue masks: 0x0, 0x0, 0x0 Inoltre tieni presente che i formati elencati (YUV2, YUV12, ecc) non sono presenti in tutte le implementazioni di XVideo e la loro assenza può ostacolare alcuni programmi. Se il risultato è: X-Video Extension version 2.2 screen #0 no adaptors present Allora XVideo probabilmente non è supportato per la tua scheda. Se XVideo non è supportato per la tua scheda, questo vuol dire solamente che sarà più difficile soddisfare le richieste computazionali per il rendering video. A seconda della tua scheda video e del tuo processore, comunque, potresti essere ancora in grado di avere un'esperienza soddisfacente. Dovrai probabilmente dare un occhio ai modi per migliorare le prestazioni nella lettura avanzata . Simple Directmedia Layer Il Simple Directmedia Layer, SDL, vuole essere un'interfaccia di - portabilità tra Microsoft Windows, BeOS, e Unix, che possa + portabilità tra µsoft; Windows, BeOS, e &unix;, che possa permettere di sviluppare applicazioni multi-piattaforma che facciano buon uso di suoni e grafica. L'interfaccia SDL fornisce una astrazione di basso livello all'hardware che può a volte essere più efficiente dell'interfaccia X11. L'SDL può essere trovata in devel/sdl12 Direct Graphics Access Direct Graphics Access è un'estensione - XFree86 che permette a un programma di + &xfree86; che permette a un programma di evitare il server X ed alterare direttamente il buffer video. Siccome si basa su una mappatura di memoria a basso livello per effettuare questa condivisione, i programmi che la usano devono essere avviati da root. L'estensione DGA può essere testata con &man.dga.1;. Quando dga è in esecuzione, cambia i colori del display ogni volta che viene premuto un tasto. Per uscire, premi q. Port e Package che Riguardano il Video port video package video In questa sezione si discuterà del software disponibile nella FreeBSD Port Collection che possono essere usati per la riproduzione video. La sezione software sulla riproduzione video è in continuo sviluppo, per cui le caratteristiche delle varie applicazioni sono destinate a differire dalla descrizione che segue. - In primo luogo, è importante sapere che la maggior parte - degli applicativi che girano su FreeBSD sono stati sviluppati come - applicazioni Linux, nate negli anni passati. Per questo motivo, - sono da considerare sperimentali e fatti di Linuxismi il che - può precludere il funzionamento al pieno dell'efficenza - su FreeBSD. - - Per sperimentali, intendo dire che applicativi - quali ricodificatori, riproduttori e decodificatori DVD possano avere - grossi bug o problemi di interazione con altri programmi. Di seguito - una lista delle problematiche cui mi riferisco: + In primo luogo, è importante sapere che molte delle + applicazioni video che girano su FreeBSD sono stati sviluppate come + applicazioni Linux. Molte di queste applicazioni sono ancora in fase + beta. Alcuni dei problemi che puoi incontrare con i package video su + FreeBSD comprendono: Un'applicazione non riesce a riprodurre un file generato da un'altra applicazione. Un'applicazione non riesce a riprodurre un file che lei stessa ha prodotto. Lo stesso applicativo posto su due computer diversi, ricompilato su ognuno dei due computer, riproduce lo stesso file in modo diverso. Da un filtro apparentemente banale quale il ridimensionamento di un'immagine si ottenga un pessimo risultato derivato da una routine di ridimensionamento bacata. - Un'applicativo che genera di continuo file + Un'applicazione che genera frequentemente file core. La documentazione non viene installata con il port e può - essere trovata sul web o nel percorso - PORTPATH/work/. + essere trovata sul web o nella directory work del port. - Per Linuxismi, intendo dire che ci sono punti in - questione riguardo il modo in cui le librerie standard sono state - implementate nelle distribuzioni di Linux, o alcune modifiche al + Molte di queste applicazioni possono anche esibire + Linuxismi. Ovvero, ci possono essere problemi risultanti + dal modo in cui le librerie standard sono state implementate nelle + distribuzioni Linux, o alcune modifiche al kernel di Linux che sono state apportate dagli autori delle - applicazioni, perchè questo era quanto gli autori stavano - prevalentemente sviluppando. Questi problemi possono non essere stati - notati e aggirati dal mantainer del port e possono + applicazioni. Questi problemi possono non essere stati + notati e aggirati dal mantainer del port, e possono portare comunque a problemi come questi: L'uso di /proc/cpuinfo per riconoscere le caratteristiche del processore. Un uso errato dei thread che può portare un programma a bloccare la propria esecuzione piuttosto che terminare correttamente. Software non ancora presente nella collezione dei port di FreeBSD che è comunemente usato unitamente all'applicazione. A questo punto, gli sviluppatori di queste applicazioni sono stati collaborativi con i maintainer dei port al fine di minimizzare la ricerca di soluzioni necessarie al processo di porting. MPlayer MPlayer è stata sviluppata di recente ed è un player in rapida evoluzione. Gli obbiettivi degli sviluppatori di MPlayer sono la velocità e la flessibilità su Linux e le altre famiglie - di Unix. Il progetto è partito non appena il fondatore del + di &unix;. Il progetto è partito non appena il fondatore del gruppo si stancò delle prestazioni degli altri riproduttori. - C'è chi dice che l'interfaccia sia stata sacrificata con - design essenziale, ma una volta che si sono imparate perfettamente le - opzioni da riga di comando e le scorciatoie, funziona decisamente - bene. + C'è chi dice che l'interfaccia grafica sia stata sacrificata + per un design essenziale. Tuttavia, una volta che si sono imparate + perfettamente le opzioni da riga di comando e le scorciatoie, + funziona decisamente bene. Compilazione di MPlayer MPlayer compilazione MPlayer è reperibile sotto multimedia/mplayer. MPlayer effettua una serie di controlli sull'hardware durante il processo di compilazione, che ha come risultato un binario che non potrà essere considerato portabile da una piattaforma ad un'altra. Questo è il motivo per cui risulta importante compilarlo usando il port piuttosto che il pacchetto contenente il binario. - Inoltre, ulteriori opzioni possono essere specificate a - make che mostra all'inizio della + Inoltre, ulteriori opzioni possono essere specificate nella riga di + comando di make, come descritto all'inizio della compilazione. &prompt.root; cd /usr/ports/multimedia/mplayer &prompt.root; make You can enable additional compilation optimizations by defining WITH_OPTIMIZED_CFLAGS You can enable GTK GUI by defining WITH_GUI. You can enable DVD support by defining WITH_DVD. You can enable SVGALIB support by defining WITH_SVGALIB. You can enable VORBIS sound support by defining WITH_VORBIS. You can enable XAnim DLL support by defining WITH_XANIM. Se hai installato x11-toolkits/gtk12, a questo punto si potrà abilitare la compilazione della GUI. Altrimenti, non vale la pena la fatica. Se si ha intenzione di vedere DVD (possibilmente codificati in CSS) con MPlayer si sarà costretti ad abilitare l'opzione per il supporto DVD qui La riproduzione non autorizzata di DVD è un grave atto criminale in alcuni paesi. Controlla le leggi locali prima di abilitare questa opzione. . Alcune opzioni utili sono: &prompt.root; make WITH_DVD=yes WITH_SVGALIB=yes Al momento, il port MPlayer creerà la sua documentazione in HTML e l'eseguibile mplayer. Sarà anche possibile compilare un codificatore, mencoder, uno strumento utile per ricodificare i video. Una modifica al Makefile lo rende disponibile. È possibile che venga abilitato di default nelle versioni successive del port. La documentazione HTML di MPlayer è molto istruttiva. - Qualora il lettore cercasse informazioni mancanti nel capitolo - sull'hardware video e le interfacce, la documentazione di - MPlayer risulta essere un'ottima - alternativa. + Qualora il lettore trovasse le informazioni sull'hardware e le + interfacce video in questo capitolo scarne, la documentazione di + MPlayer risulta essere un ottimo + supplemento. Se si stanno cercando informazioni riguardo il supporto video sotto - Unix, sarebbe utile trovare il tempo di leggere in modo preciso + &unix;, sarebbe utile trovare il tempo di leggere in modo preciso la documentazione di MPlayer. Utilizzo di MPlayer MPlayer utilizzo Ogni utente che voglia usare MPlayer deve creare la directory .mplayer sotto - la propria home. Per creare questa directory necessaria, si - può usare il seguente comando: + la propria home. Per creare questa directory necessaria, puoi + digitare il seguente comando: &prompt.user; cd /usr/ports/multimedia/mplayer &prompt.user; make install-user Le opzioni del comando mplayer sono elencate nella pagina del manuale. Per qualunque altro dettaglio consulta - la documentazione HTML. In questo capitolo, elencheremo solo alcuni - degli usi più comuni. + la documentazione HTML. In questa sezione, descriveremo solamente + alcuni degli usi più comuni. Per riprodurre un file, ad esempio - testfile.avi usando una delle varie interfacce - video usa l'opzione : + testfile.avi, usando + una delle varie interfacce video usa l'opzione + : &prompt.user; mplayer -vo xv testfile.avi &prompt.user; mplayer -vo sdl testfile.avi &prompt.user; mplayer -vo x11 testfile.avi &prompt.root; mplayer -vo dga testfile.avi &prompt.root; mplayer -vo 'sdl:dga' testfile.avi È utile provare tutte queste opzioni, considerando che le prestazioni dipendono da svariati fattori e variano in modo considerevole a seconda dell'hardware. Per riprodurre un DVD, sostituisci testfile.avi con l'opzione dove <N> corrisponde al numero del titolo da riprodurre e DISPOSITIVO al dispositivo che identifica il DVD-ROM. Per esempio, per riprodurre il terzo titolo da /dev/dvd: &prompt.root; mplayer -vo dga -dvd 2 /dev/dvd Per interrompere, mettere in pausa, andare avanti e così via, leggi l'elenco delle associazioni dei tasti, che vengono elencati eseguendo mplayer -h o consulta la pagina man. Ulteriori opzioni utili per la riproduzione sono: che abilita la modalità schermo intero e che aiuta le prestazioni. Perchè la riga di comando di mplayer non diventi eccessivamente lunga, l'utente può creare il file .mplayer/config ed impostare lì i valori predefiniti: vo=xv fs=yes zoom=yes In ultimo, è possibile usare mplayer - per estrarre una traccia DVD in file .vob. - Per estrarre la traccia 2 dal DVD usare: + per estrarre una traccia DVD in un file .vob. + Per estrarre la seconda traccia dal DVD, digita questo: &prompt.root; mplayer -dumpstream -dumpfile out.vob -dvd 2 /dev/dvd Il file ottenuto, out.vob, sarà in formato MPEG e potrà manipolato da un'altro programma descritto in questa sezione. mencoder mencoder - Se hai scelto di installare mencoder - in fase di compilazione, ricordati che è ancora in - fase sperimentale. - - Per usare mencoder è una buona + Se hai scelto di installare mencoder quando + hai compilato MPlayer, sei avvisato che + è ancora un componente sperimentale. Prima di usare + mencoder è una buona idea familiarizzare con le opzioni contenute nella - documentazione HTML. Esiste anche una pagina man, - ma non è utile senza il testo HTML. Esiste un numero + documentazione HTML. Esiste anche una pagina man, ma non + è utile senza la documentazione HTML. Esiste un numero considerevole di modi per migliorare la qualità, un bitrate più basso, cambiare codifica ed alcuni di questi trucchi può fare la differenza tra prestazioni più o meno accettabili. Di seguito un paio di esempi per cominciare. Prima di tutto, una semplice copia: &prompt.user; mencoder input.avi -oac copy -ovc copy -o output.avi - È facile trovare esempi in cui il risultato non - è riproducibile nemmeno con mplayer. + Combinazioni errate di opzioni da riga di comando possono + portare a file di output irriproducibili perfino con + mplayer. Di conseguenza, se si vuole semplicemente estrarre una traccia, usare l'opzione eseguendo in mplayer. Per convertire il file input.avi in formato MPEG4 con l'audio codificato in MPEG3 (è necessario audio/lame): &prompt.user; mencoder input.avi -oac mp3lame -lameopts br=192 \ -ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi Questo comando ha creato un file riproducibile con mplayer e xine. Il parametro input.avi può essere sostituito con ed eseguire il comando come root per ricodificare il capitolo DVD direttamente. Poichè si sarà certamente poco soddisfatti del risultato la prima volta, è consigliato eseguire il dump del capitolo e lavorare direttamente sul file. + Il Riproduttore Video xine Il riproduttore video xine è un progetto dagli ampi obiettivi e non solo l'essere una soluzione unica per la riproduzione, ma anche una libreria di base riutilizzabile ed un eseguibile modulare che possa essere esteso con i plugin. È disponibile sia come pacchetto che come port, sotto multimedia/xine. - La buona notizia è che quanto appena detto risulta - abbastanza vero. xine + xine è ancora un pò rozzo, ma è chiaramente un buon inizio. In pratica, xine necessita sia di una CPU veloce che di una scheda video veloce o il supporto per l'estensione XVideo. L'interfaccia grafica è utilizzabile, ma ancora mal disegnata. Allo stato attuale, non ci sono moduli distribuiti con xine che possano riprodurre DVD codificati in CSS. Esistono distribuzioni di terze parti che hanno moduli di questo genere già compilati, ma nessuno di questi esiste nella FreeBSD Ports Collection. - Confrontandolo con MPlayer, + Comparato con MPlayer, xine offre maggiori caratteristiche all'utente ma, allo stesso tempo, non rende disponibile - all'utente un controllo più accurato. - xine può commettere parecchi - errori su interfacce diverse da XVideo ed ha davvero ben poche - alternative a quest'ultimo. - Le FAQ di xine consigliano caldamente - di avere una scheda video che lo supporti. + all'utente un controllo più accurato. Il riproduttore video + xine funziona molto meglio sulle interfacce + XVideo. - L'applicazione xine può - essere eseguita direttamente: + Di default, xine si avvierà con + un'interfaccia grafica. Si possono quindi usare i menu per aprire + per aprire un file specifico: &prompt.user; xine - I menu disponibili possono essere utilizzati per aprire un - file o può essere avviato per riprodurre un file senza - l'interfaccia grafica con il comando: + Alternativamente, può essere invocato per aprire + firettamente un file senza l'interfaccia GUI, con il comando: &prompt.user; xine -g -p mymovie.avi - Le utility transcode + Le Utility transcode Il software transcode non è un riproduttore, piuttosto un insieme di strumenti per ricodificare file .avi e .mpg. Con transcode, si ha la possibilità di unire file video, riparare file corrotti ed utilizzare strumenti da riga di comando con interfaccie che utilizzano i flussi stdin/stdout. Così come MPlayer, anche transcode è un software in fase sperimentale che deve essere compilato usando il port - graphics/transcode. Sono + multimedia/transcode. Sono disponibili parecchie opzioni da passare a make. Io consiglio: &prompt.root; make WITH_LIBMPEG2=yes Se hai intenzione di installare multimedia/avifile, allora aggiungi l'opzione WITH_AVIFILE alla riga di comando di make, così come di seguito: &prompt.root; make WITH_AVIFILE=yes WITH_LIBMPEG2=yes Ecco due esempi di come usare transcode per la conversione video che produce un output ridimensionato. Il primo, codifica il risultato come un file openDIVX AVI, mentre il secondo codifica nel formato MPEG, più portabile. &prompt.user; transcode -i input.vob -x vob -V -Z 320x240 \ -y opendivx -N 0x55 -o output.avi &prompt.user; transcode -i input.vob -x vob -V -Z 320x240 \ -y mpeg -N 0x55 -o output.tmp &prompt.user; tcmplex -o output.mpg -i output.tmp.m1v -p output.tmp.mpa -m 1 Esiste una pagina man per transcode, - ma per la maggior parte delle utility tc* (come per - esempio tcmplex) che vengono installate, - c'è solo il breve output dell'opzione - . + ma c'è poca documentazione sulle utility tc* + (come per esempio tcmplex) che vengono installate. + Tuttavia, l'opzione a riga di comando può + sempre essere usata per avere delle brevi istruzioni d'uso del + comando. In confronto, transcode gira molto più lentamente rispetto a mencoder, ma risulta essere un'ottima alternativa per produrre file in - formati più vari. Per esempio, io riesco a riprodurre - MPEG con transcode vecchie copie di file - Windows Media Player e - Quicktime di Apple. + formati più vari. + Si sa che gli MPEG creati con transcode funzionano + con &windows.media; Player ed Apple + &quicktime;, ad esempio. Ulteriori Letture - Non ho dubbi che entro un anno, la maggior parte di questo - capitolo divenga obsoleta. Sarà proabilmente molto meno - difficile far funzionare bene il supporto video ed esisterà - un port nella collezione che trasformerà FreeBSD in un - riproduttore DVD, PVR e studio virtuale A/V. Fintanto che quel - giorno arrivi, chiunque voglia ottenere il massimo dalle + I vari package di applicazioni video per FreeBSD si stanno + evolvendo rapidamente. È abbastanza possibile che in un futuro + vicino molti dei problemi discussi qui saranno risolti. Nel frattempo, + chiunque voglia ottenere il massimo dalle capacità A/V di FreeBSD, dovrà unire alla meglio la - conoscenza che deriva dalle svariate FAQ e guide e l'uso delle - poche applicazioni diverse. - - Questa sezione esiste per fornire al lettore alcuni link per - imparare maggiormente nel caso in cui questo capitolo risultasse - abbastanza utile. + conoscenza che deriva dalle svariate FAQ e guide con l'uso di queste + poche applicazioni. Questa sezione esiste per fornire al lettore + indicazioni a queste informazioni aggiuntive. La Documentazione di MPlayer è molto istruttiva sul piano tecnico. Questa documentazione, probabilmente, dovrà essere consultata da chiunque voglia ottenere un alto grado di conoscenza del video - sotto Unix. La mailing list di MPlayer + sotto &unix;. La mailing list di MPlayer risulta abbastanza ostile a chiunque non si sia preoccupato di leggere la documentazione, se si ha intenzione di segnalar loro un bug, RTFM. L'HOWTO di xine contiene un capitolo su come aumentare le prestazioni che è comune a tutti i riproduttori. In ultimo, ci sono alcuni applicativi promettenti che il lettore può provare: Avifile che è anche un port multimedia/avifile. Ogle che è anche un port multimedia/ogle. Xtheater + + + multimedia/dvdauthor, un package open + source per la creazione di DVD. + diff --git a/it_IT.ISO8859-15/books/handbook/pgpkeys/chapter.sgml b/it_IT.ISO8859-15/books/handbook/pgpkeys/chapter.sgml index ca396e1d7a..6b5f056c5f 100644 --- a/it_IT.ISO8859-15/books/handbook/pgpkeys/chapter.sgml +++ b/it_IT.ISO8859-15/books/handbook/pgpkeys/chapter.sgml @@ -1,656 +1,696 @@ Chiavi PGP chiavi pgp Nel caso tu debba verificare una firma o inviare un messaggio cifrato a una delle cariche ufficiali o a uno degli sviluppatori, qui puoi trovare per tua comodità una serie di chiavi. Un keyring completo degli utenti FreeBSD.org è disponibile per il download da http://www.FreeBSD.org/doc/pgpkeyring.txt. Cariche Ufficiali &a.security-officer; &pgpkey.security-officer; &a.core-secretary; &pgpkey.core-secretary; Membri del Core Team &a.imp; &pgpkey.imp; &a.kuriyama; &pgpkey.kuriyama; &a.murray; &pgpkey.murray; &a.peter; &pgpkey.peter; &a.wes; &pgpkey.wes; Sviluppatori &a.will; &pgpkey.will; + + &a.mat; + &pgpkey.mat; + + &a.asami; &pgpkey.asami; &a.dougb; &pgpkey.dougb; &a.tobez; &pgpkey.tobez; &a.mbr; &pgpkey.mbr; &a.harti; &pgpkey.harti; &a.obraun; &pgpkey.obraun; &a.jmb; &pgpkey.jmb; &a.brueffer; &pgpkey.brueffer; &a.wilko; &pgpkey.wilko; &a.jon; &pgpkey.jon; &a.luoqi; &pgpkey.luoqi; &a.ache; &pgpkey.ache; &a.seanc; &pgpkey.seanc; &a.cjh; &pgpkey.cjh; &a.cjc; &pgpkey.cjc; &a.marcus; &pgpkey.marcus; &a.nik; &pgpkey.nik; &a.ceri; &pgpkey.ceri; &a.brooks; &pgpkey.brooks; &a.bsd; &pgpkey.bsd; &a.dd; &pgpkey.dd; &a.ue; &pgpkey.ue; &a.ru; &pgpkey.ru; &a.jedgar; &pgpkey.jedgar; &a.green; &pgpkey.green; &a.lioux; &pgpkey.lioux; &a.fanf; &pgpkey.fanf; &a.blackend; &pgpkey.blackend; &a.petef; &pgpkey.petef; &a.billf; &pgpkey.billf; &a.patrick; &pgpkey.patrick; &a.gioria; &pgpkey.gioria; &a.jmg; &pgpkey.jmg; &a.dannyboy; &pgpkey.dannyboy; &a.jhay; &pgpkey.jhay; &a.sheldonh; &pgpkey.sheldonh; &a.mikeh; &pgpkey.mikeh; &a.ghelmer; &pgpkey.ghelmer; &a.mux; &pgpkey.mux; &a.mich; &pgpkey.mich; &a.foxfair; &pgpkey.foxfair; &a.jkh; &pgpkey.jkh; &a.trevor; &pgpkey.trevor; &a.phk; &pgpkey.phk; &a.joe; &pgpkey.joe; &a.kris; &pgpkey.kris; &a.keramida; &pgpkey.keramida; &a.fjoe; &pgpkey.fjoe; &a.andreas; &pgpkey.andreas; + + &a.sergei; + &pgpkey.sergei; + + &a.maxim; &pgpkey.maxim; - + &a.jkoshy; &pgpkey.jkoshy; &a.rushani; &pgpkey.rushani; &a.alex; &pgpkey.alex; - - - - &a.erwin; - &pgpkey.erwin; + + + + &a.erwin; + &pgpkey.erwin; &a.leeym; &pgpkey.leeym; &a.netchild; &pgpkey.netchild; &a.ijliao; &pgpkey.ijliao; &a.clive; &pgpkey.clive; &a.arved; &pgpkey.arved; &a.scottl; &pgpkey.scottl; + + &a.pav; + &pgpkey.pav; + + &a.bmah; &pgpkey.bmah; &a.mtm; &pgpkey.mtm; &a.dwmalone; &pgpkey.dwmalone; &a.matusita; &pgpkey.matusita; &a.ken; &pgpkey.ken; &a.dinoex; &pgpkey.dinoex; &a.sanpei; &pgpkey.sanpei; &a.jim; &pgpkey.jim; &a.marcel; &pgpkey.marcel; &a.tmm; &pgpkey.tmm; &a.rich; &pgpkey.rich; &a.knu; &pgpkey.knu; &a.max; &pgpkey.max; &a.yoichi; &pgpkey.yoichi; + + &a.bland; + &pgpkey.bland; + + + + &a.simon; + &pgpkey.simon; + + &a.anders; &pgpkey.anders; &a.obrien; &pgpkey.obrien; &a.mp; &pgpkey.mp; &a.roam; &pgpkey.roam; + + &a.den; + &pgpkey.den; + + &a.pirzyk; &pgpkey.pirzyk; &a.jdp; &pgpkey.jdp; + + &a.krion; + &pgpkey.krion; + + &a.markp; &pgpkey.markp; &a.thomas; &pgpkey.thomas; &a.dfr; &pgpkey.dfr; - + &a.trhodes; &pgpkey.trhodes; &a.benno; &pgpkey.benno; &a.paul; &pgpkey.paul; &a.roberto; &pgpkey.roberto; &a.guido; &pgpkey.guido; &a.hrs; &pgpkey.hrs; &a.wosch; &pgpkey.wosch; &a.das; &pgpkey.das; &a.schweikh; &pgpkey.schweikh; &a.gshapiro; &pgpkey.gshapiro; &a.arun; &pgpkey.arun; &a.vanilla; &pgpkey.vanilla; &a.cshumway; &pgpkey.cshumway; &a.demon; &pgpkey.demon; &a.jesper; &pgpkey.jesper; &a.scop; &pgpkey.scop; + + &a.kensmith; + &pgpkey.kensmith; + + &a.ben; &pgpkey.ben; &a.des; &pgpkey.des; &a.sobomax; &pgpkey.sobomax; &a.dcs; &pgpkey.dcs; &a.brian; &pgpkey.brian; &a.nsouch; &pgpkey.nsouch; &a.gsutter; &pgpkey.gsutter; &a.nyan; &pgpkey.nyan; &a.mi; &pgpkey.mi; &a.gordon; &pgpkey.gordon; &a.nectar; &pgpkey.nectar; &a.adamw; &pgpkey.adamw; &a.nate; &pgpkey.nate; &a.wollman; &pgpkey.wollman; &a.joerg; &pgpkey.joerg; &a.phantom; &pgpkey.phantom; diff --git a/it_IT.ISO8859-15/books/handbook/ports/chapter.sgml b/it_IT.ISO8859-15/books/handbook/ports/chapter.sgml index 56518dcda2..d6777663d2 100644 --- a/it_IT.ISO8859-15/books/handbook/ports/chapter.sgml +++ b/it_IT.ISO8859-15/books/handbook/ports/chapter.sgml @@ -1,1620 +1,1235 @@ Installazione delle Applicazioni: Port e Package Sinossi port package FreeBSD è distribuito con una ricca collezione di strumenti di sistema come parte base del sistema. Comunque, c'è molto che si può fare prima che sia necessario installare un'applicazione aggiuntiva di terze parti. FreeBSD fornisce due tecnologie complementari per installare software di terze parti sul tuo sistema: la FreeBSD Port Collection, ed i packages contenenti i binari del software. Puoi usare entrambi questi sistemi per installare l'ultima versione della tua - applicazione preferita dal CDROM o direttamente dalla rete. + applicazione preferita dai dispositivi locali o direttamente dalla + rete. Dopo aver letto questo capitolo, saprai: Come installare i package contenenti i binari delle applicazioni di terze parti. Come compilare le applicazioni di terze parti dalla collezione dei port. Come rimuovere i package o i port installati in precedenza. + + + Come modificare i valori di default utilizzati dalla collezione + dei port. + + + + Come aggiornare i tuoi port. + Uno Sguardo all'Installazione del Software - Se hai già usato un sistema Unix prima d'ora saprai che la + Se hai già usato un sistema &unix; prima d'ora saprai che la procedura tipica per installare software di terze parti è simile a questa: Scaricare il software, che potrebbe essere distribuito sotto forma di codice sorgente, o come binario. Scompattare il software dal suo formato di distribuzione - (tipicamente un tarball compresso con &man.compress.1; o con - &man.gzip.1;). + (tipicamente un tarball compresso con &man.compress.1;, &man.gzip.1;, + o con &man.bzip2.1;). Individuare la documentazione (probabilmente un file INSTALL o un file README, o qualche file nella sottodirectory doc/) e leggere come installare il software. Se il software è stato distribuito sotto forma di sorgente, compilarlo. Questa fase può coinvolgere la modifica di un Makefile, oppure l'esecuzione di uno script configure, e qualche altro lavoro. Installare e testare il software. E questo se tutto va bene. Se stai installando del software di cui non è stato deliberatamente effettuato il porting in FreeBSD potresti perfino dover modificare il codice per farlo funzionare correttamente. Se vuoi, puoi continuare ad installare il software su FreeBSD nel modo tradizionale. Comunque, FreeBSD fornisce due tecnologie che possono farti risparmiare molti sforzi: i package e i port. Nel momento in cui scrivo, sono disponibili più di &os.numports; applicazioni di terze parti tramite questi due metodi. - Per ogni applicazione data, il package di FreeBSD per quella - applicazione consiste in un singolo file che devi scaricare. Il package - contiene una copia pre-compilata di tutti i comandi dell'applicazione, - così come i file di configurazione e di documentazione. Una volta - scaricato il package questo può essere manipolato con i comandi - di gestione dei package di FreeBSD, come &man.pkg.add.1;, - &man.pkg.delete.1;, &man.pkg.info.1;, e così via. - - L'installazione di una nuova applicazione può essere fatta - con un singolo comando. + Per ogni applicazione, il package di FreeBSD per quella applicazione + consiste in un singolo file che devi scaricare. Il package contiene una + copia pre-compilata di tutti i comandi dell'applicazione, così + come i file di configurazione e di documentazione. Una volta scaricato il + package, questo può essere manipolato con i comandi di gestione + dei package di FreeBSD, come &man.pkg.add.1;, &man.pkg.delete.1;, + &man.pkg.info.1;, e così via. L'installazione di una nuova + applicazione può essere fatta con un singolo comando. In FreeBSD un port di un'applicazione è un insieme di file predisposti per automatizzare il processo di compilazione dell'applicazione partendo dal codice sorgente. Ricorda che ci sono molte fasi che normalmente devi eseguire se vuoi - compilare un programma (scaricare, scompattare, correggere, compilare, - installare). I file che costituiscono un port contengono tutte + compilare un programma autonomamemte (scaricare, scompattare, correggere, + compilare, installare). I file che costituiscono un port contengono tutte le informazioni necessarie per permettere al sistema di fare questo lavoro al posto tuo. Tu esegui una manciata di semplici comandi e il codice sorgente dell'applicazione viene automaticamente scaricato, estratto, - corretto, compilato, e installato. + corretto, compilato, ed installato. Di fatto, il sistema dei port può anche essere usato per generare package che possono essere successivamente manipolati con pkg_add ed altri comandi di gestione dei package che saranno presentati tra poco. Sia i package che i port comprendono il meccanismo delle dipendenze. Supponiamo che tu voglia installare un'applicazione che dipende da un specifica libreria. Sia l'applicazione che la libreria sono disponibili in FreeBSD come port o come package. Se usi il comando pkg_add o il sistema dei port per installare l'applicazione, entrambi noteranno che la libreria non è installata, e automaticamente la installeranno per prima. Dato che le due tecnologie sono abbastanza simili, probabilmente vorrai sapere perché FreeBSD le usa entrambe. I package e i port hanno i loro punti forte, e l'utilizzo dell'uno o dell'altro dipende dalle proprie preferenze personali. Benefici dei Package Il tarball compresso di un package è tipicamente più piccolo del tarball compresso contenente il codice sorgente della stessa applicazione. I package non richiedono alcuna compilazione aggiuntiva. Per grandi applicazioni, come Mozilla, KDE, oppure GNOME questo può essere importante, sopra tutto se usi un sistema lento. I package non richiedono la conoscenza del processo di compilazione del software su FreeBSD. Benefici dei Port I package sono normalmente compilati con opzioni conservative, poiché devono poter funzionare su un parco macchine il più ampio possibile. Con l'installazione dai port, puoi aggiustare le opzioni di compilazione per produrre (per esempio) del - codice che sia specifico per un Pentium III o un processore + codice che sia specifico per un Pentium IV o un processore Athlon. Alcune applicazioni hanno delle opzioni attivabili al tempo di compilazione che permettono di modificare il comportamento delle applicazioni stesse. Per esempio, Apache può essere configurato con un'ampia varietà di differenti opzioni built-in. Effettuando la compilazione dal port non sei costretto ad accettare le opzioni di default, e puoi settarle tu stesso. In alcuni casi, ci possono essere più package per la stessa applicazione a seconda dei settaggi ivi contenuti. Per esempio, Ghostscript è disponibile come package ghostscript e come package ghostscript-nox11, a seconda che tu abbia o meno installato un server X11. Questa sorta di adattamento è possibile con i package, ma diviene impossibile nel caso in cui un'applicazione ha più di una o due diverse opzioni che si possono dare al tempo di compilazione. Le condizioni di licenza di alcune distribuzioni di software proibiscono la distribuzione dei binari. Tali software devono essere distribuiti come codice sorgente. Alcune persone non si fidano della distribuzione dei binari. Con il codice sorgente, puoi (in teoria) controllare il codice e cercare i suoi potenziali problemi. Se hai delle patch, hai bisogno del sorgente per applicarle. Ad alcune persone piace avere il codice sorgente, in modo tale da poterlo leggerlo se sono annoiati, hackerarlo, prenderne in prestito delle parti (licenza permettendo, naturalmente), e così via. Per tenersi al corrente sugli aggiornamenti dei port, iscriviti alla &a.ports; e alla &a.ports-bugs;. Il resto del capitolo spiegherà come usare i package ed i port per installare e gestire il software di terze parti su FreeBSD. Ricerca della Propria Applicazione Prima di poter installare delle applicazioni devi sapere quale applicazione ti serve, e come viene chiamata. La lista delle applicazioni disponibili su FreeBSD cresce continuamente. Fortunatamente, ci sono diversi sistemi per trovare quello che ti serve: Il sito web di FreeBSD mantiene all'indirizzo http://www.FreeBSD.org/ports/ una lista aggiornata in cui puoi cercare tutte le applicazioni correntemente disponibili. I port sono divisi in categorie, e puoi sia cercare un'applicazione in base al nome (se lo conosci), sia visionare tutte le applicazioni disponibili in una data categoria. FreshPort Dan Langille mantiene FreshPort, all'indirizzo . FreshPort segue in tempo reale i cambiamenti delle applicazioni nell'albero dei port, permettendoti di controllare uno o più port, e dandoti la possibilità di essere avvisato tramite email quando questi vengono aggiornati. FreshMeat Se non conosci il nome dell'applicazione che desideri, prova ad usare un sito come FreshMeat () per trovare l'applicazione, quindi controlla sul sito di FreeBSD per vedere se è già stato effettuato il porting. Chern Lee Contributo di Utilizzo del Sistema dei Package Installazione di un Package package installazione pkg_add Puoi usare l'utility &man.pkg.add.1; per installare un package di FreeBSD da un file locale o da un server sulla rete. Scaricare un Package Manualmente e Installarlo da Locale &prompt.root; ftp -a ftp2.FreeBSD.org Connected to ftp2.FreeBSD.org. 220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail freebsd@vienna.verio.net. 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /pub/FreeBSD/ports/packages/sysutils/ 250 CWD command successful. ftp> get lsof-4.56.4.tgz local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s) ftp> exit &prompt.root; pkg_add lsof-4.56.4.tgz Se non hai una raccolta di package locale (per esempio il set dei CDROM di FreeBSD) allora probabilmente ti risulterà più facile usare &man.pkg.add.1; con l'opzione . In questo modo &man.pkg.add.1; determina automaticamente la corretta release e il giusto formato dell'oggetto, quindi scarica il package da un sito FTP e lo installa. pkg_add &prompt.root; pkg_add -r lsof L'esempio qui sopra scarica il giusto package e lo installa senza nessun ulteriore intervento. &man.pkg.add.1; usa &man.fetch.3; per scaricare i file, il quale rispetta varie variabili d'ambiente, incluse FTP_PASSIVE_MODE, FTP_PROXY, e FTP_PASSWORD. Puoi aver bisogno di settarne qualcuna se la tua macchina è dietro un firewall, o se utilizzi un proxy FTP/HTTP. Leggi &man.fetch.3; per la lista completa. Nell'esempio precedente si può anche notare che viene usato lsof al posto di lsof-4.56.4. Quando viene usata la modalità di prelevamento da remoto, il numero di versione del package non deve essere specificato. &man.pkg.add.1; prenderà automaticamente l'ultima versione dell'applicazione. I file dei package sono distribuiti nel formato .tgz. Puoi trovarli in , oppure sui CDROM della distribuzione di FreeBSD. Ogni CD contenuto nel set dei quattro CD (e nel PowerPak, ecc.) contiene i package nella directory /packages. La disposizione dei package è simile a quella dell'albero /usr/ports. Ogni categoria ha la propria directory, ed ogni package può essere trovato dentro la directory All. La struttura delle directory del sistema dei package eguaglia quella dei port; questi due sistemi lavorano l'uno con l'altro per formare l'intero sistema dei package/port. Gestione dei Package package gestione L'utility &man.pkg.info.1; elenca e descrive i vari package installati. pkg_info &prompt.root; pkg_info cvsup-16.1 Un comune sistema di distribuzione dei file in rete ottimizato per CVS docbook-1.2 Meta-port delle varie versioni del DTD DocBook ... L'utility &man.pkg.version.1; riassume le versioni di tutti i package installati. Paragona le versioni dei package con le versioni correnti trovate nell'albero dei port. pkg_version &prompt.root; pkg_version cvsup = docbook = ... I simboli nella seconda colonna indicano il risultato del confronto tra la versione installata e quella disponibile in locale nell'albero dei port. Simbolo Significato = Le versioni del package installato e di quello disponibile in locale nell'albero dei port sono uguali. < La versione installata è precedente a quella disponibile nell'albero dei port. > La versione installata è più aggiornata di quella trovata in locale nell'albero dei port. (L'albero dei port locale è probabilmente da aggiornare) ? Il package installato non può essere trovato - nell'indice dei port. + nell'indice dei port. (Questo può succedere, per esempio, + se un port installato viene rimosso dalla collezione dei port + oppure viene rinominato.) * Ci sono più versioni del package. Cancellazione di un Package pkg_delete package cancellare Per rimuovere un package installato in precedenza, usa l'utility &man.pkg.delete.1;. &prompt.root; pkg_delete xchat-1.7.1 Miscellanea Tutte le informazioni sui package sono memorizzate nella directory /var/db/pkg. La lista dei file installati e le descrizioni di ogni package possono essere trovate all'interno dei file di questa directory. Utilizzo della Collezione dei Port Le sezioni seguenti forniscono le istruzioni basilari sull'uso della collezione dei port per installare e rimuovere programmi dal tuo sistema. Ottenimento della Collezione dei Port Prima che tu possa installare i port, devi procurarti la collezione dei port—che essenzialmente è un set di Makefiles, patch, e file di descrizione collocati in /usr/ports. Durante l'installazione del tuo sistema FreeBSD, - Sysinstall ti ha chiesto se vuoi installare + Sysinstall ti ha chiesto se volevi installare la collezione dei port. Se hai rifiutato, puoi seguire queste istruzioni per ottenerla: Il Metodo Sysinstall Questo metodo richiede ancora l'uso di sysinstall per installare manualmente la collezione dei port. Esegui da root /stand/sysinstall come mostrato qui sotto: - &prompt.root; /stand/sysinstall + &prompt.root; /stand/sysinstall Scorri verso il basso e seleziona Configure, premi Invio. Scorri verso il basso e seleziona Distributions, premi Invio. Scorri verso il basso fino a ports, premi Spazio. Scorri verso l'alto fino a Exit, premi Invio. Seleziona il modo di installazione desiderato, come CDROM, FTP, e così via. Scorri verso l'alto fino a Exit e premi Invio. Premi X per uscire da sysinstall. Un'altro metodo per ottenere la tua collezione dei port e per mantenerla aggiornata consiste nell'utilizzo di CVSup. Dai un'occhiata al file di CVSup riguardante i port, /usr/share/examples/cvsup/ports-supfile. Guarda Usare CVSup () per maggiori informazioni sull'uso di CVSup e del file menzionato. Il Metodo CVSup Questo è un rapido metodo che utilizza CVSup per ottenere la collezione dei port. Se vuoi mantenere il tuo albero dei port aggiornato, o imparare di più su CVSup, leggi la sezione menzionata in precedenza. Installa il port net/cvsup. Guarda Installazione di CVSup () per maggiori dettagli. Da root, copia il file /usr/share/examples/cvsup/ports-supfile in un nuovo posto, come in /root o nella tua directory home. Edita ports-supfile. Cambia CHANGE_THIS.FreeBSD.org in un server CVSup vicino a te. Guarda Mirror CVSup () per una lista completa dei siti mirror. Esegui cvsup: - &prompt.root; cvsup -g -L 2 /root/ports-supfile + &prompt.root; cvsup -g -L 2 /root/ports-supfile Poco dopo aver eseguito questo comando verranno scaricate e applicate alla tua collezione dei port tutte le modifiche recenti, anche se di fatto i port già compilati sul tuo sistema non verranno aggiornati. Installazione dei Port port installazione La prima cosa che dovrebbe essere chiara quando si ha a che fare con la collezione dei port è l'effettivo significato di scheletro di un port. Brevemente, lo scheletro di un port è un insieme minimo di file che dice al tuo sistema FreeBSD come compilare ed installare un programma in modo pulito. Ogni scheletro di un port include: Un Makefile. Il Makefile contiene varie espressioni che specificano come l'applicazione deve essere compilata e dove deve essere installata sul tuo sistema. Un file distinfo. Questo file contiene informazioni sui file che devono essere scaricati per la compilazione del port e sui loro checksum (somme di controllo), utilizzati per verificare che quei file non siano stati corrotti durante il download. Una directory files. Questa directory contiene le patch utilizzate per la compilazione e per l'installazione del programma sul tuo sistema FreeBSD. Le patch sono sostanzialmente piccoli file che specificano come modificare alcuni file. Sono in puro formato di testo, e in modo grossolano dicono Rimuovi la riga 10 o Cambia la riga 26 in .... Le patch sono anche conosciute con il termine diff poichè sono generate dal programma &man.diff.1;. Questa directory può anche contenere altri file - utilizzati per la compilazione del port. + utilizzati per la costruzione del port. Un file pkg-descr. Questo file contiene una descrizione del programma più dettagliata, spesso su più righe di testo. Un file pkg-plist. Questo file contiene l'elenco di tutti i file che saranno installati dal port. Dice anche al sistema dei port quale file rimuovere durante la disinstallazione. Alcuni port hanno altri file, come pkg-message. Il sistema dei port li usa per affrontare speciali situazioni. Se vuoi maggiori dettagli su questi file, e sui port in generale, leggi attentamente il Manuale del Porter di FreeBSD. Ora che hai acquisito abbastanza informazioni sull'utilizzo della collezione dei port, sei pronto per installare il tuo primo port. Ci sono due modi per installare un port, entrambi spiegati qui sotto. Comunque, prima di addentrarci in questi due metodi, devi decidere quale port installare. Ci sono vari modi per farlo, e quello più semplice è consultare la lista dei port sul sito web di FreeBSD. Puoi sia navigare tra i port ivi elencati sia usare - la funzione di ricerca del sito. - Ogni port include anche una breve descrizione che puoi leggere prima - di decidere se installarlo o meno. + la funzione di ricerca del sito. Ogni port include anche una breve + descrizione che puoi leggere prima di decidere se installarlo o + meno. Un'altro metodo è quello di usare il comando &man.whereis.1;. Semplicemente digita whereis file, dove file è il programma che vuoi installare. Se viene trovato sul tuo sistema, ti verrà indicato dove si trova, in modo simile a quanto segue: &prompt.root; whereis lsof lsof: /usr/ports/sysutils/lsof Questo ci dice che lsof (un'utility di sistema) si trova nella directory /usr/ports/sysutils/lsof. Un'altro modo per trovare un determinato port è quello di usare il meccanismo di ricerca contenuto nella collezione dei port. Per usare questo servizio di ricerca, devi posizionarti nella directory /usr/ports. Una volta in quella directory, lancia make search name=nome-programma dove nome-programma è il nome del programma che vuoi cercare. Per esempio, se vuoi cercare lsof: &prompt.root; cd /usr/ports &prompt.root; make search name=lsof Port: lsof-4.56.4 Path: /usr/ports/sysutils/lsof Info: Elenca informazioni sui file aperti (simile a fstat(1)) Maint: obrien@FreeBSD.org Index: sysutils B-deps: R-deps: La parte di output sulla quale devi porre particolare attenzione è la riga Path:, che ti dice dove puoi trovare il port. Le altre informazioni riportate non sono necessarie per installare il port, e quindi non saranno trattate in questa sede. Inoltre per una ricerca più complessa puoi usare make search key=stringa dove stringa fa parte del testo da cercare. Questo ricerca nei nomi dei port, nei commenti, nelle descrizioni e nelle dipendenze e può essere usato per cercare port che si riferiscono ad un argomento particolare anche se non conosci il nome del programma che stai cercando. In entrambi i casi, la stringa di ricerca è case-insensitive. La ricerca per LSOF produrrà gli stessi risultati della ricerca per lsof. Devi essere root per installare i port. Ora che hai trovato un port da installare, sei pronto per l'installazione vera e propria. Il port include istruzioni su come compilare il codice sorgente, ma non include il codice sorgente stesso. Devi prendere il codice sorgente da un CDROM o da Internet. L'autore del codice sorgente può distribuirlo come desidera. Quasi sempre è un file di archivio tar compresso con gzip, ma potrebbe essere stato compresso con un'altro tool o perfino potrebbe essere non compresso. Il codice sorgente del programma, in qualsiasi forma sia, è chiamato con il termine distfile. Puoi ottenere questo distfile da un CDROM o da Internet. Installazione dei Port dal CDROM port installazione da CDROM Le immagini ufficiali su CDROM del progetto FreeBSD non includono più i distfile. Occupano molto spazio che è meglio utilizzato per i package precompilati. I prodotti su CDROM come il FreeBSD PowerPak includono i distfile, e puoi ordinare questi set da un venditore come FreeBSD Mall. Questa sezione presuppone che tu abbia un simile set di CDROM di FreeBSD. Metti il tuo CDROM di FreeBSD nell'apposito lettore. Montalo su /cdrom. (Se usi un punto di mount differente, l'installazione non funzionerà.) Per prima cosa, vai nella directory del port che vuoi installare: &prompt.root; cd /usr/ports/sysutils/lsof Una volta dentro la directory lsof, vedrai lo scheletro del port. Il prossimo passo riguarda la compilazione, o costruzione, del port. Questo viene fatto semplicemente digitando make al prompt. Una volta che hai fatto questo, dovresti vedere qualcosa simile a quanto segue: &prompt.root; make >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from file:/cdrom/ports/distfiles/. ===> Extracting for lsof-4.57 ... [l'output dell'estrazione è stato tagliato] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [l'output della configurazione è stato tagliato] ... ===> Building for lsof-4.57 ... [l'output della compilazione è stato tagliato] ... &prompt.root; Nota che una volta terminata la compilazione ritornerai al tuo prompt. Il prossimo passo riguarda l'installazione del port. Per installarlo, devi semplicemente affiancare una parola al comando make, e questa parola è install: &prompt.root; make install ===> Installing for lsof-4.57 ... [l'output dell'installazione è stato tagliato] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: I binari di questo port richiedono l'esecuzione con alti privilegi. &prompt.root; Quando ritornerai al tuo prompt, dovresti essere in grado di eseguire l'applicazione che hai appena installato. Siccome lsof è un programma che lavora con alti privilegi, viene mostrato un avvertimento di sicurezza. Durante la compilazione e l'installazione dei port, dovresti fare attenzione ad ogni avvertimento che appare. Potresti anche evitare un passaggio lanciando solamente make install invece dei due passi separati make e make install. Alcune shell mantengono una cache dei comandi che sono disponibili nelle directory elencate nella variabile d'ambiente PATH, per velocizzare le operazioni di ricerca dei file eseguibili di questi comandi. Se stai usando una di queste shell, potresti dover usare il comando rehash dopo l'installazione di un port, prima di poter usare il nuovo comando. Questo succede sia per le shell che fanno parte del sistema base (come tcsh) sia per le shell che sono disponibili dai port (per esempio, shells/zsh). Per cortesia sii consapevole che le licenze di alcuni port non permettono l'inclusione degli stessi sul CDROM. Questa limitazione potrebbe essere dovuta dalla necessità di compilare un form di registrazione prima di scaricare il software, o perché la ridistribuzione non è permessa, o per altre ragioni. Se desideri installare un port non incluso nel CDROM, dovrai essere collegato ad Internet per farlo (vedi la prossima sezione). Installazione dei Port da Internet Questa sezione presuppone che tu abbia una connessione ad Internet funzionante. Se non ce l'hai, dovrai utilizzare l'installazione da CDROM, oppure dovrai copiare manualmente il distfile in /usr/ports/distfiles. L'installazione di un port da Internet viene fatta nello stesso modo con cui viene fatta l'installazione da CDROM. L'unica differenza tra i due modi è che il distfile del port viene preso da Internet invece che dal CDROM. I passi richiesti sono gli stessi: &prompt.root; make install >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/. Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100% 439860 bytes transferred in 18.0 seconds (23.90 kBps) ===> Extracting for lsof-4.57 ... [l'output dell'estrazione è stato tagliato] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [l'output della configurazione è stato tagliato] ... ===> Building for lsof-4.57 ... [l'output della compilazione è stato tagliato] ... ===> Installing for lsof-4.57 ... [l'output dell'installazione è stato tagliato] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: I binari di questo port richiedono l'esecuzione con alti privilegi. &prompt.root; Come puoi vedere, la sola differenza sta nella riga che dice da dove il sistema sta ottenendo il distfile del port. Il sistema dei port usa &man.fetch.1; per scaricare i file, il quale rispetta varie variabili d'ambiente, incluse FTP_PASSIVE_MODE, FTP_PROXY, e FTP_PASSWORD. Puoi aver bisogno di settarne qualcuna se sei dietro a un firewall, o se usi un proxy FTP/HTTP. Guarda &man.fetch.3; per la lista completa. + + Gli utenti che non possono essere sempre connessi ad Internet + possono usare l'opzione make + fetch. Esegui tale comando in + cima alla directory (/usr/ports) e i file + richiesti saranno scaricati. Questo comando funziona anche nelle + categorie di livello inferiore, per esempio: + /usr/ports/net. Nota che se un port dipende + da una libreria o da altri port quel comando non + preleverà anche i distfile di questi port. Sostituisci + fetch con + fetch-recursive se vuoi prelevare anche + tutte le dipendenze di un port. + + Puoi compilare tutti i port di una categoria o perfino tutti + i port eseguendo make in cima alla directory, + giusto come il suddetto metodo make + fetch. Comunque questo è + rischioso poichè alcuni port non possono coesistere. Inoltre, + alcuni port potrebbero richiedere di installare due diversi file con + lo stesso nome. + + In alcuni casi rari, gli utenti potrebbero voler acquisire i + tarball da un sito che non sia il MASTER_SITES + (la locazione di default dove i file sono scaricati). Puoi + sovrascrivere l'opzione MASTER_SITES con il comando + sequente: + + &prompt.root; cd /usr/ports/directory + + &prompt.root; make MASTER_SITE_OVERRIDE= \ + ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch + + In questo esempio abbiamo settato l'opzione + MASTER_SITES a ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/. + + Alcuni port permettono (o perfino richiedono) l'impostazione + di alcune opzioni di compilazione che abilitano/disabilitano parti + dell'applicazione opzionali, settaggi di sicurezza, e altre + personalizzazioni. Alcune applicazioni che mi vengono in mente sono + www/mozilla, security/gpgme, e mail/sylpheed-claws. Quando sono + disponibili simili opzioni viene visualizzato un + messaggio. + + + + Cambiare le Directory dei Port di Default + + Qualche volta è utile (o necessario) utilizzare + directory per i distfile e i port diverse da quelle di default. Le + variabili PORTSDIR e PREFIX + possono sovrascrivere le directory di default. Per esempio: + + &prompt.root; make PORTSDIR=/usr/home/example/ports install + + compilerà il port in + /usr/home/example/ports e installerà ogni + cosa sotto /usr/local. + + &prompt.root; make PREFIX=/usr/home/example/local install + + compilerà in /usr/ports ed + installerà in + /usr/home/example/local. + + E naturalmente, + + &prompt.root; make PORTSDIR=../ports PREFIX=../local install + + è una combinazione dei due (è troppo lungo da + scrivere per intero su questa pagina, ma dovrebbe darti lo stesso + un'idea generale). + + Alternativamente, queste variabili potrebbero essere settate nel + tuo ambiente. Leggi la pagina man della tua shell per sapere come + fare. + + + + Avere a che Fare con <command>imake</command> + + Alcuni port che usano imake (una parte del + sistema a finestre X) non funzionano bene con + PREFIX, e si ostinano ad installarsi sotto + /usr/X11R6. In modo analogo, alcuni port di Perl + ignorano PREFIX e si installano nell'albero del + Perl. Far rispettare a queti port PREFIX è + spesso un lavoro difficile o persino impossibile. Rimozione dei Port Installati port rimozione Ora che sai come installare i port, probabilmente ti chiederai come rimuoverli, caso mai ne installassi uno e successivamente ti accorgessi che hai installato il port sbagliato. Rimuoveremo il port utilizzato nel nostro esempio precedente (che era lsof se non sei stato attento). Come con l'installazione dei port, la prima cosa che devi fare è andare nella directory del port, /usr/ports/sysutils/lsof. Dopo aver cambiato directory, sei pronto per disinstallare lsof. Questo viene fatto con il comando make deinstall: &prompt.root; cd /usr/ports/sysutils/lsof &prompt.root; make deinstall ===> Deinstalling for lsof-4.57 È stato abbastanza facile. In questo modo hai rimosso lsof dal tuo sistema. Se volessi reinstallarlo, puoi farlo lanciando make reinstall dalla directory /usr/ports/sysutils/lsof. Le sequenze make deinstall e make reinstall non funzionano più una volta che hai dato un make clean. Se vuoi disinstallare un port dopo un make clean, usa &man.pkg.delete.1; come discusso nella sezione del Manuale - riguardante i Package. + riguardante i Package. + + + + Port e Spazio su Disco + + + port + spazio su disco + + + Usando la collezione dei port puoi facilmente esaurire lo spazio del + tuo disco. Per questa ragione dovresti sempre ricordarti di ripulire + le directory di lavoro usando l'opzione make + clean. Questo rimuoverà la + directory work usata per compilare ed installare il + port. Inoltre puoi rimuovere i file tar dalla directory + distfiles, e rimuovere i port installati che non + sono più utilizzati. + + Alcuni utenti limitano le categorie dei port mettendo un elemento + nel file refuse. In questo modo, quando viene + eseguita l'applicazione CVSup, questa non + scaricherà i file delle categorie specificate nel file + refuse. + + + + Aggiornamento dei Port + + + portupgrade + + + + port + aggiornamento + + + Mantenere i tuoi port aggiornati può essere un lavoro noioso. + Per esempio, per aggiornare dovresti andare nella directory del port, + compilare il port, disinstallare il vecchio port, installare quello + nuovo, e quindi ripulire la directory di lavoro. Immagina di fare + tutto ciò per cinque port, noioso vero? Questo era uno dei + maggiori problemi per gli amministratori di sistema, e ora abbiamo + utilità che fanno questo lavoro per noi. Per esempio l'utility + sysutils/portupgrade fa tutto questo! + Installalo come qualsiasi altro port, usando il comando + make install clean command. + + Fatto ciò crea un database con il comando + pkgdb -F. Verrà letta la lista dei port + installati e verrà creato un file database nella directory + /var/db/pkg. D'ora in avanti, quando esegui + portupgrade -a, questo leggerà il database e + il file dei port INDEX. Infine, + portupgrade incomincerà a scaricare, + compilare, effettuare backup, installare, e ripulire i port che devono + essere aggiornati. Esistono altre utility che fanno simili lavori, + controlla la directory ports/sysutils e guarda se + ti viene qualche idea. - Attività del dopo installazione + Attività del Dopo Installazione Di solito dopo aver installato una nuova applicazione dovresti leggere la documentazione che potrebbe essere stata inclusa, modificare qualche file di configurazione, assicurarti che l'applicazione parta nella fase di avvio (se è un demone), e così via;. I passi precisi che devi seguire per configurare un'applicazione sono ovviamente diversi da applicazione a applicazione. Comunque, se hai appena installato una nuova applicazione e ti stai chiedendo Cosa faccio ora? questi consigli potrebbero aiutarti: Usa &man.pkg.info.1; per scoprire quali file sono stati installati, e dove sono stati installati. Per esempio, se hai appena installato la versione 1.0.0 di FooPackage, allora questo comando &prompt.root; pkg_info -L foopackage-1.0.0 | less mostrerà tutti i file installati dal package. Fai molta attenzione ai file nelle directory man/, che sono le pagine man, a quelli nella directory etc/, che sono i file di configurazione, e a quelli in doc/, che forniscono una documentazione più esauriente. Se non sei sicuro della versione dell'applicazione che hai appena installato, questo comando &prompt.root; pkg_info | grep foopackage troverà tutti i package installati che contengono nel nome foopackage. Rimpiazza - foopackage nella tua linea di comando a + foopackage nella tua riga di comando a seconda delle tue necessità. Una volta che hai scoperto dove sono state posizionate le pagine man dell'applicazione, esaminale usando &man.man.1;. Analogamente, esamina i file di configurazione d'esempio, ed ogni ulteriore documentazione che può essere stata fornita. Se l'applicazione ha un sito web, cerca della documentazione aggiuntiva, le domande più frequenti (FAQ), ed altro ancora. Se non sei sicuro dell'indirizzo del sito web questo potrebbe essere presente nell'output di &prompt.root; pkg_info foopackage-1.0.0 Una riga contenete WWW:, se presente, dovrebbe fornire l'URL del sito dell'applicazione. + + + I port che dovrebbero avviarsi in fase di avvio (come dei server + Internet) di solito installano uno script di esempio in + /usr/local/etc/rc.d. Dovresti verificare questo + script ed eventualmente modificarlo o rinominarlo. Vedi Avvio dei Servizi + per maggiori informazioni. + - - Risoluzione dei Problemi - - La sezione seguente copre alcune delle domande più frequenti - sulla collezione dei port e sulle tecniche di base per la risoluzione - dei problemi, e spiega cosa fare se un port è guasto. - - - Alcune Domande e Risposte - - - - - Pensavo che questa fosse una discussione sui modem!!? - - - - Ah, sicuramente stavi pensando alle porte seriali sul retro - del tuo computer. Qui usiamo il termine port per - indicare il porting di un programma da un sistema - operativo ad un'altro. - - - - - - Cos'è una patch? - - - - Una patch è un piccolo file che specifica come passare - da una versione di un file ad un'altra. Contiene del puro testo, - e sostanzialmente dice cose come cancella la riga - 23, aggiungi queste due righe dopo la riga - 468, o cambia la riga 197 con - quest'altra. Le patch sono anche conosciute con il - termine diff poichè sono generate dal programma - &man.diff.1;. - - - - tarball - - - - Cosa sono le tarball? - - - - Una tarball è un file che termina in - .tar, o con delle varianti come - .tar.gz, .tar.Z, - .tar.bz2, e perfino - .tgz. - - In sostanza, è un albero di directory che è - stato archiviato in un unico file (.tar) e - opzionalmente compresso (.gz). Questa - tecnica era originariamente usata per gli archivi a nastro - (Tape ARchive da cui il - nome tar), ma ora è un sistema - largamente usato per distribuire il codice sorgente attraverso - Internet. - - Il comando standard di Unix &man.tar.1;, che è incluso - nel sistema base di FreeBSD, ti permette di vedere quali file si - trovano in una tarball ed eventualmente ti permette di estrarli, - in questo modo: - - &prompt.user; tar tvzf foobar.tar.gz -&prompt.user; tar xzvf foobar.tar.gz -&prompt.user; tar tvf foobar.tar -&prompt.user; tar xvf foobar.tar - - - - checksum - - - - Ed i checksum? - - - - È un numero generato dall'addizione di tutti i dati - di un file che vuoi verificare. Se anche un solo carattere - cambia, il checksum non sarà più uguale al totale, - così un semplice confronto ti permetterà di - individuarne la diversità. - - - - - - Ho fatto ciò che hai detto per compilare i port dal - CDROM e ha funzionato bene fino a quando ho provato ad installare - il port di Kermit. - - &prompt.root; make install ->> cku190.tar.gz doesn't seem to exist on this system. ->> Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/. - - Perché non può essere trovato? Ho un CDROM - falso? - - - - Come spiegato nella sezione installare i port dal CDROM, alcuni - port non possono essere inseriti nel set dei CDROM per via di - alcune restrizioni contenute nelle licenze. - Kermit ne è un esempio. - I termini di licenza per Kermit non ci - permettono di mettere il suo tarball nel CDROM, così - dovrai procurartelo a mano—scusaci! - - La ragione per cui ottenevi tutti quei messaggi di errore era - dovuta al fatto che non eri connesso ad Internet in quel momento. - Una volta che l'hai scaricato da uno dei - MASTER_SITES (elencati nel - Makefile), puoi riprendere il processo - di installazione. - - - - - - L'ho fatto, ma quando provo a metterlo dentro - /usr/ports/distfiles ottengo degli errori - che dicono che non ho il permesso di farlo. - - - - Il meccanismo dei port scarica i tarball delle - distribuzioni dentro /usr/ports/distfiles, - ma molti amministratori di sistema associano a questa directory un - link simbolico verso un file server remoto o verso un CDROM - locale. In questo caso, devi specificare una diversa directory - nella quale memorizzare i distfile con il seguente comando: - - &prompt.root; make DISTDIR=/directory/locale/con/permesso/di/scrittura install - - - - - - Lo schema dei port funziona solamente se si ha tutto - in /usr/ports? Il mio amministratore di - sistema dice che devo mettere ogni cosa sotto - /u/people/guests/wurzburger, ma - non sembra funzionare. - - - - Puoi usare le variabili PORTSDIR e - PREFIX per dire al meccanismo dei port - di usare delle directory diverse. In questo caso, - - &prompt.root; make PORTSDIR=/u/people/guests/wurzburger/ports install - - compilerà il port in - /u/people/guests/wurzburger/ports ed - installerà ogni cosa sotto - /usr/local. - - &prompt.root; make PREFIX=/u/people/guests/wurzburger/local install - - lo compilerà in /usr/ports e - lo installerà in - /u/people/guests/wurzburger/local. - - E naturalmente, - - &prompt.root; make PORTSDIR=../ports PREFIX=../local install - - combinerà entrambi (è troppo lungo per scriverlo - nella pagina, ma dovrebbe essere chiaro). - - imake - - Alcuni port che usano &man.imake.1; (una parte dell'X Windows - System) non funzionano bene con PREFIX, e - insistono ad installarsi sotto /usr/X11R6. - In modo simile, alcuni port relativi al Perl ignorano - PREFIX e si installano nell'albero del Perl. - Far rispettare PREFIX a questi port risulta un - lavoro difficile e alcune volte impossibile. - - Se non vuoi digitare tutto quel comando ogni volta che - installi un port, puoi inserire queste variabili nel tuo ambiente. - Troverai istruzioni su come farlo nella pagina man della tua - shell. - - - - - - Non ho un CDROM di FreeBSD, ma mi piacerebbe avere - tutti i tarball sottomano sul mio sistema così da non - dover aspettare per il download ogni volta che installo un port. - Esiste un modo per ottenerli tutti in una volta? - - - - Per ottenere ogni singolo tarball della collezione dei port, - digita: - - &prompt.root; cd /usr/ports -&prompt.root; make fetch - - Per tutti i tarball relativi a una singola directory dei - port, digita: - - &prompt.root; cd /usr/ports/directory -&prompt.root; make fetch - - e per solo un port—bene, probabilmente avrai già - indovinato. - - - - - - Immagino che scaricare i tarball da uno dei mirror di - FreeBSD vicino a me sia probabilmente il metodo più veloce. - Esiste un modo per dire al meccanismo dei port di prelevare i - tarball da server non elencati in - MASTER_SITES? - - - - Si. Se tu sai, per esempio, che ftp.FreeBSD.org è il server a te - più vicino rispetto ai siti elencati in - MASTER_SITES, fai come segue: - - &prompt.root; cd /usr/ports/directory -&prompt.root; make MASTER_SITE_OVERRIDE= \ -ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch - - - - - - Voglio sapere di quali file make ha - bisogno prima che esso provi a scaricarli. - - - - make fetch-list mostrerà una lista - dei file necessari per il port. - - - - - - C'è un modo per impedire la compilazione di un port? - Voglio hackerare il sorgente prima di installarlo, ma è un - poco noioso guardarlo e premere ogni volta - - Ctrl - C - . - - - - Dando make extract il processo si - fermerà dopo aver scaricato ed estratto il codice - sorgente. - - - - - - Sto provando a fare il mio port personale e vorrei essere - in grado di impedire la sua compilazione fino a quando sarò - certo che le mie patch funzionano bene. Esiste qualcosa come - make extract, ma per le patch? - - - - Si, make patch è quello che cerchi. - Probabilmente troverai utile l'opzione - PATCH_DEBUG. E comunque, grazie per i tuoi - sforzi! - - - - - - Ho sentito che alcune opzioni del compilatore possono causare - bug. È vero? Come posso essere sicuro di compilare i port - con i giusti settaggi? - - - - Si, con la versione 2.6.3 di gcc (la - versione che si trova su FreeBSD 2.1.0 e 2.1.5), l'opzione - può restituire del codice buggato - a meno che non usi anche l'opzione - . (La maggior parte dei port - non usa ). Puoi - specificare le opzioni in fase di compilazione usando qualcosa del - genere: - - &prompt.root; make CFLAGS='-O2 -fno-strength-reduce' install - - o editando /etc/make.conf, ma - sfortunatamente non tutti i port lo rispettano. Il modo - più sicuro è dare un make - configure, quindi andare nella directory del sorgente - ed ispezionare il Makefile a mano, ma - può risultare noioso nel caso in cui il sorgente avesse - molte sotto directory, ognuna con il suo - Makefile. - - Le opzioni di default del compilatore su FreeBSD sono - abbastanza conservative, pertanto anche se non le cambi non - dovresti avere problemi. - - - - - - Ci sono così tanti port che è difficile trovare - quello che voglio. Esiste una lista in qualche posto dei port - che sono disponibili? - - - - Dai un'occhiata al file INDEX in - /usr/ports. Puoi anche cercare nella - collezione dei port tramite una parola chiave. Per esempio, puoi - cercare port attinenti al linguaggio di programmazione LISP - usando: - - &prompt.user; cd /usr/ports -&prompt.user; make search key=lisp - - - - - - Ho tentato di installare il port foo ma - improvvisamente il sistema ne ha interrotto la compilazione e ha - iniziato a compilare il port bar. Cosa sta - succedendo? - - - - Il port foo necessita di qualcosa che - viene fornito con bar — per esempio, - se foo usa la grafica, bar - potrebbe avere una libreria di procedure utili per l'elaborazione - grafica. Oppure bar potrebbe essere un - elemento necessario per compilare il port foo. - Una volta compilato bar, il sistema riprende - in modo automatico la compilazione di - foo. - - - - - - Ho installato il programma - grizzle dai port e francamente ritengo che sia - un totale spreco di spazio su disco. Voglio cancellarlo ma non - conosco dove mette tutti i suoi file. Qualche indizio? - - - - Nessun problema, digita solamente: - - &prompt.root; pkg_delete grizzle-6.5 - - In alternativa, puoi digitare: - - &prompt.root; cd /usr/ports/somewhere/grizzle -&prompt.root; make deinstall - - - - - - Aspetta un attimo, devi conoscere il numero della versione - per usare quel comando. Non ti aspetterai seriamente che io - me la ricordi, vero? - - - - Niente affatto, la puoi scoprire digitando: - - &prompt.root; pkg_info -I 'grizzle*' -Information for grizzle-6.5: -grizzle-6.5 - un tutorial di piano forte, un'interprete di LOGO e un gioco -di azione arcade. - - Il numero della versione può essere trovato o usando - pkg_info o digitando: - ls /var/db/pkg - - - - - - Parlando di spazio su disco, la directory dei port sembra - occuparne molto. È prudente andarci dentro e cancellare - qualche cosa? - - - - Si, se hai installato un programma e sei del tutto - certo che non avrai più bisogno del sorgente, non - ha più senso tenerlo. Il modo più sicuro per - cancellarlo è: - - &prompt.root; cd /usr/ports -&prompt.root; make clean - - il quale attraverserà tutte le sotto directory dei port - cancellando ogni cosa eccetto lo scheletro di ogni port. - - - È possibile ottenere lo stesso effetto senza - chiamare ricorsivamente ogni Makefile. - Per esempio, puoi cancellare direttamente tutte le - sotto directory work/ con il seguente - comando: - &prompt.root; find /usr/ports -depth -name work -exec rm -rf {} \; - - - - - - - Ho provato ma ho notato che ha lasciato tutti i tarball o - come li vuoi chiamare nella directory - distfiles. Posso cancellare anche - loro? - - - - Si, se sei sicuro che non ti serviranno più, puoi - eliminare anche loro. Possono essere rimossi a mano, - oppure usando make distclean. - - - - - - Mi piace avere tantissimi programmi con cui giocare. - C'è un modo di installare tutti i port in una sola - volta? - - - - Digita: - - &prompt.root; cd /usr/ports -&prompt.root; make install - - Fai molta attenzione, alcuni port potrebbero installare file - con lo stesso nome. Se installi due port di grafica ed entrambi - installano /usr/local/bin/plot avrai - di certo dei problemi. - - - - - - OK, ho provato a farlo, ma pensavo che avrebbe richiesto molto - tempo così sono andato a letto e l'ho lasciato lavorare da - solo. Quando al mattino ho guardato il computer, aveva installato - solamente tre port e mezzo. Qualcosa non è andato per il - verso giusto? - - - - No, il problema è che alcuni port hanno bisogno di - farti della domande alle quali noi non possiamo rispondere per te - (ad esempio, Vuoi stampare in A4 o nel formato della carta - da lettere degli US?) e hanno bisogno che qualcuno - risponda loro. - - - - - - Non voglio certamente stare tutto il giorno a fissare il - monitor. Un'idea migliore? - - - - OK, digita questo prima di andare a letto/a lavoro/al - parco: - - &prompt.root; cd /usr/ports -&prompt.root; make -DBATCH install - - Questo installerà ogni port che - non richiede input da parte dell'utente. - Dopo, quando sarai tornato, digita: - - &prompt.root; cd /usr/ports -&prompt.root; make -DINTERACTIVE install - - per finire il lavoro. - - - - - - A lavoro, stiamo usando frobble, che si - trova nella vostra collezione dei port, ma lo abbiamo modificato - un pò per fargli fare quello di cui avevamo bisogno. - C'è un modo per fare un nostro package, così da - distribuirlo più facilmente sui nostri siti? - - - - Nessun problema, supponendo che tu sappia fare le patch per - le tue modifiche: - - &prompt.root; cd /usr/ports/somewhere/frobble -&prompt.root; make extract -&prompt.root; cd work/frobble-2.8 -[Applica le tue patch] -&prompt.root; cd ../.. -&prompt.root; make package - - - - - - Il sistema dei port è veramente intelligente. Mi - stò disperando per scoprire come avete fatto. - Qual'è il segreto? - - - - Non c'è nessun segreto, basta guardare i file - bsd.port.mk e - bsd.port.subdir.mk in - /usr/ports/Mk/. - - (Consigliamo ai lettori con un'antipatia per gli script di - shell intricati di non guardare i file in questa - directory.) - - - - - - - Aiuto! Questo Port non Funziona! + + Avere a che Fare con Port non Funzionanti - Se ti dovessi imbattere in un port che per te non funziona, ci - sono alcune cose che puoi fare, tra le quali: + Se ti dovessi imbattere in un port che per te non funziona, ci + sono alcune cose che puoi fare, tra le quali: - - - Aggiustarlo! Il Manuale del Porter - contiene informazioni dettagliate sull'infrastruttura dei "Port" - affinchè tu possa aggiustare quel port che occasionalmente - non funziona o perfino proporne uno tutto tuo! - + + + Aggiustarlo! Il Manuale del Porter + contiene informazioni dettagliate sull'infrastruttura dei + Ports affinchè tu possa aggiustare quel port che + occasionalmente non funziona o perfino proporne uno tutto tuo! + - - Brontolare—solo attraverso email! - Prima manda una email a colui che mantiene il port. - Digita make maintainer o leggi il - Makefile per trovare il suo indirizzo email. - Ricorda di includere nel messaggio il nome e la versione del port - (manda la riga $FreeBSD: del - Makefile) e l'output che descrive - l'errore. Se non ottieni risposta dal maintainer, puoi usare - &man.send-pr.1; per inoltrare il report del bug. - + + Brontolare—solo attraverso email! + Prima manda una email a colui che mantiene il port. + Digita make maintainer o leggi il + Makefile per trovare il suo indirizzo email. + Ricorda di includere nel messaggio il nome e la versione del port + (manda la riga $FreeBSD: del + Makefile) e l'output che descrive + l'errore. Se non ottieni risposta dal maintainer, puoi usare + &man.send-pr.1; per inoltrare il report del bug. + - - Prendi il package da un sito FTP vicino a te. La - principale collezione dei package è su ftp.FreeBSD.org nella directory - dei package, ma prima assicurati di - controllare il tuo mirror locale! È più probabile - che funzionino i package rispetto alla compilazione dal sorgente e - sono anche molto più sbrigativi. Usa il programma - &man.pkg.add.1; per installare i package sul tuo sistema. - - - + + Prendi il package da un sito FTP vicino a te. La + principale collezione dei package è su ftp.FreeBSD.org nella directory + dei package, ma prima assicurati di + controllare il tuo mirror locale! È più probabile + che funzionino i package rispetto alla compilazione dal sorgente e + sono anche molto più sbrigativi. Usa il programma + &man.pkg.add.1; per installare i package sul tuo sistema. + + diff --git a/it_IT.ISO8859-15/books/handbook/preface/preface.sgml b/it_IT.ISO8859-15/books/handbook/preface/preface.sgml index 83b4f8c95f..091863009c 100644 --- a/it_IT.ISO8859-15/books/handbook/preface/preface.sgml +++ b/it_IT.ISO8859-15/books/handbook/preface/preface.sgml @@ -1,690 +1,694 @@ Prefazione A chi si rivolge Chi si affaccia a FreeBSD scoprirà che la prima sezione di questo - libro guida l'utente attraverso il processo di installazione di FreeBSD, e - introduce delicatamente i concetti e le convenzioni su cui si basa Unix. + libro guida l'utente attraverso il processo di installazione di FreeBSD e + introduce delicatamente i concetti e le convenzioni su cui si basa &unix;. Affrontare questa sezione richiede poco più che il desiderio di esplorare, e l'abilità di far propri i nuovi concetti appena vengono introdotti. Una volta superata questa distanza, la seconda sezione, ben più grande, del Manuale è una guida di riferimento completa a tutti i tipi di argomenti di interesse per l'amministratore di un sistema FreeBSD. Alcuni di questi capitoli suggeriscono di effettuare prima la lettura di qualche testo, e questo è evidenziato nel sommario all'inizio di ogni capitolo. Per una lista di fonti di informazioni aggiuntive, guarda l'. Cambiamenti rispetto alla Seconda Edizione Inglese Questa edizione è il culmine di un anno di lavoro dei membri del FreeBSD Italian Documentation Project. I maggiori cambiamenti di questa edizione localizzata rispetto alla seconda edizione in lingua originale sono i seguenti: Tutte le figure ASCII sono state sostituite da diagrammi grafici. Tutti i capitoli sono stati aggiornati per rispecchiare le nuove caratteristiche presenti in FreeBSD 5.X ed evidenziare le differenze rispetto alle release precedenti. Il (Installazione di FreeBSD) è stato aggiornato all'attuale procedura di installazione. È stata aggiunta una nuova sezione sulle ACL al (Basi di - Unix). + &unix;). Il (Installazione delle Applicazioni) è stato ingrandito per contenere informazioni aggiuntive sulla gestione delle applicazioni installate. Sono state aggiunte due nuove sezioni al (Configurazione e Messa a Punto) su Soft Updates e Spazio di Swap. Il (La Procedura di Avvio di FreeBSD) è stato ingrandito per gli utenti Linux. È stata aggiunta una nuova sezione sulla configurazione delle interfacce di rete al (Configurazione e Messa a Punto). Il (Configurazione del Kernel di FreeBSD) è stato aggiornato. È stata aggiunta una nuova sezione sul sovraccarico e sull'ottimizzazione di IPFW al (Sicurezza). Sono state aggiunte molte nuove sezioni al (Archiviazione dei Dati) grazie al contributo di numerosi autori. Il (Multimedia) è stato creato partendo dal capitolo intitolato Audio e aggiungendo varie sezioni sulla riproduzione video. Il (PPP e SLIP) è stato sostanzialmente aggiornato per includere i vari metodi di connessione ADSL e una nuova sezione sul NAT. Sono state aggiunte molte nuove sezioni al (Networking Avanzato) grazie al contributo di numerosi autori. Il (Posta Elettronica) è stato ingrandito per includere una sezione sull'autenticazione SMTP e maggiori informazioni su come rimpiazzare sendmail come proprio mailer di default. Il (Lo Stato dell'Arte) è stato aggiornato ed è stata aggiunta una nuova sezione. Il (Compatibilità con i Binari di Linux) è stato sostanzialmente aggiornato. In questa edizione sono coperti i seguenti nuovi argomenti: Il Gestore di Volumi Vinum (). Applicazioni Desktop (). Note alla Edizione Italiana La traduzione di questo manuale sta vedendo impegnate numerose persone facenti parte del FreeBSD Italian Documentation Project. Il progetto è partito da una iniziativa del Gruppo Utenti FreeBSD Italia (GUFI) ed è coordinato da &a.it.alex;, con l'ausilio della mailing list traduzioni@gufi.org. Come puoi vedere, il lavoro di traduzione è ancora in corso ed è portato avanti esclusivamente da volontari. Le persone che hanno contribuito (o stanno contribuendo) alla realizzazione del progetto sono, in ordine sparso: &a.it.alex; &a.it.andrex; &a.it.carla; &a.it.claudio; &a.it.daniele; &a.it.ddan; &a.it.ferruccio; &a.it.gabriele; &a.it.gmarco; &a.it.inzet; &a.it.kaos; &a.it.lapo; &a.it.lcard; &a.it.mark; &a.it.matteo; &a.it.max; &a.it.nicola; &a.it.rodario; &a.it.rudy; &a.it.salvo; &a.it.sriva; &a.it.surrender; &a.it.valerio; Organizzazione di Questo Libro Questo libro è diviso in tre sezioni distinte logicamente. La prima sezione, Per Cominciare, copre l'installazione e l'uso basilare di FreeBSD. Ci si aspetta che il lettore segua questi capitoli in sequenza, possibilmente saltando i capitoli che trattano argomenti familiari. La seconda sezione, Amministrazione del Sistema, copre una vasta serie di argomenti che sono di interesse per utenti FreeBSD più avanzati. Ogni sezione inizia con un breve sommario che descrive quello che il capitolo tratta e quello che il lettore dovrebbe già sapere. Questo è fatto per permettere al lettore occasionale di sfogliare il libro per cercare i capitoli di suo interesse. La terza sezione contiene le appendici con le informazioni di riferimento. , Introduzione Introduce FreeBSD ai nuovi utenti. Descrive la storia del FreeBSD Project, gli obbiettivi e il modello di sviluppo. , Installazione Segue l'utente attraverso l'intera procedura di installazione. Alcuni argomenti avanzati di installazione, come l'installazione attraverso la console seriale, sono trattati. - , Basi di Unix + , Basi di &unix; Tratta i comandi e le funzionalità di base del sistema operativo FreeBSD. Se hai familiarità con Linux o con altri - tipi di Unix allora puoi probabilmente saltare questo capitolo. + tipi di &unix; allora puoi probabilmente saltare questo capitolo. , Installazione delle Applicazioni Copre l'installazione del software di terze parti sia con l'innovativo Ports Collection di FreeBSD che con i comuni pacchetti binari. , L'X Window System Descrive X Window System in generale e l'uso di - XFree86 su FreeBSD in particolare. + &xfree86; su FreeBSD in particolare. Inoltre tratta dei comuni ambienti desktop come KDE e GNOME. , Configurazione e Messa a Punto Descrive i parametri disponibili agli amministratori di sistema per ottimizzare le performance di un sistema FreeBSD. Inoltre descrive i vari file di configurazione usati in FreeBSD e dove trovarli. , La Procedura di Avvio Descrive la procedura di avvio di FreeBSD e spiega come controllare questo processo con le opzioni di configurazione. , Gestione degli Utenti e degli Account di Base Descrive la creazione e la manipolazione degli account degli utenti. Inoltre parla delle limitazioni delle risorse che possono essere impostate sugli utenti e di altri compiti di gestione degli account. , Configurazione del Kernel di FreeBSD Spiega perché potresti aver bisogno di configurare un nuovo kernel e fornisce istruzioni dettagliate per la configurazione, la creazione, e l'installazione di un kernel personalizzato. , Sicurezza Elenca vari tool disponibili per aiutarti a mantenere il tuo sistema FreeBSD sicuro, inclusi Kerberos, IPsec, OpenSSH, e firewall di rete. , Stampa Spiega come gestire le stampanti su FreeBSD, incluse informazioni sulle pagine banner, sull'accounting di stampa, e sulla configurazione iniziale. , Archiviazione dei Dati Descrive come gestire i dispositivi di archiviazione e i file system con FreeBSD. Questo include dischi fisici, array RAID, dispositivi ottici e a nastro, dischi di memoria, e file system di rete. , Il Gestore di Volumi Vinum Descrive come usare Vinum, un gestore di volumi che permette di creare dischi logici indipendenti dal dispositivo, con supporto RAID-0, RAID-1 e RAID-5 via software. , Localizzazione Descrive come usare FreeBSD in altre lingue oltre all'inglese. Copre la localizzazione a livello sia del sistema che applicativo. , Applicazioni Desktop Elenca le più comuni applicazioni desktop, come browser web e suite di produttività, e descrive come installarle su FreeBSD. , Multimedia Mostra come configurare il supporto audio/video per il sistema. Inoltre descrive alcune applicazioni di esempio. , Comunicazioni Seriali Spiega come connettere terminali e modem al tuo sistema FreeBSD sia per connessioni in ingresso che in uscita. , PPP e SLIP Descrive come usare PPP, SLIP, o PPP over Ethernet per connettersi a sistemi remoti con FreeBSD. , Networking Avanzato Descrive molti argomenti sul networking, incluso come condividere una connessione a Internet con altri computer sulla stessa LAN, come usare file system di rete, come condividere informazioni sugli account via NIS, come configurare un name server, e molto altro. , Posta Elettronica Spiega i differenti componenti di un mail server e introduce semplici configurazioni per il mail server più comune: sendmail. , Lo Stato dell'Arte Spiega le differenze tra &os.stable;, &os.current;, e le release FreeBSD. Descrive quali utenti possano trarre beneficio seguendo un sistema di sviluppo e spiega come effettuare questa procedura. , Compatibilità con i Binari di Linux Descrive le caratteristiche di compatibilità con Linux di FreeBSD. Inoltre fornisce dettagliate istruzioni sull'installazione di molte comuni applicazioni Linux come - Oracle, SAP/R3, - e Mathematica. + &oracle;, + &sap.r3;, + e &mathematica;. , Ottenere FreeBSD Elenca varie fonti per ottenere FreeBSD su CD-ROM o DVD così come vari siti su Internet che permettono di scaricare e installare FreeBSD. , Bibliografia Questo libro tocca svariati argomenti che possono lasciarti desideroso di spiegazioni più dettagliate. La bibliografia elenca molti ottimi libri che sono referenziati nel testo. , Risorse su Internet Elenca i numerosi forum disponibili per gli utenti FreeBSD dove poter inviare domande e intraprendere conversazioni tecniche su FreeBSD. , Chiavi PGP Elenca i fingerprint PGP di molti FreeBSD Developers. Convenzioni usate in questo libro Per fornire un testo consistente e facile da leggere, sono state seguite numerose convenzioni in tutto il libro. Convenzioni Tipografiche Italico Un font italico è per i nomi dei file, per gli URL, per il testo enfatizzato, e per il primo utilizzo dei termini tecnici. Monospazio Un font monospazio è usato per i messaggi di errore, i comandi, le variabili di ambiente, i nomi dei port, i nomi di host, i nomi degli utenti, i nomi dei gruppi, i nomi dei device, le variabili, e i frammenti di codice. Grassetto Un font in grassetto è per le applicazioni, i comandi, e i tasti. Input dell'Utente I tasti sono visualizzati in grassetto per differenziarli dal testo normale. Le combinazioni di tasti che devono essere digitate contemporaneamente sono visualizzate con un `+' tra i tasti, come: Ctrl Alt Del + Significa che l'utente deve premete i tasti Ctrl, + Alt, e Del nello stesso momento. + I tasti che devono essere digitati in sequenza saranno separati da virgole, come per esempio: Ctrl X , Ctrl S Vuol dire che l'utente deve digitare i tasti Ctrl e X contemporaneamente e poi i tasti Ctrl e S. Esempi Gli esempi che iniziano con E:\> indicano - un comando MS-DOS. A meno di note specifiche, questi comandi possono essere - eseguiti da una finestra Prompt dei comandi in un moderno - ambiente Microsoft Windows. + un comando &ms-dos;. A meno di note specifiche, questi comandi possono + essere eseguiti da una finestra Prompt dei comandi in un + moderno ambiente µsoft.windows;. E:\> tools\fdimage floppies\kern.flp A: Gli esempi che iniziano con &prompt.root; indicano un comando che deve essere invocato dal superuser in FreeBSD. Puoi effettuare il login come root per digitare il comando, o loggarti con il tuo normale account e usare &man.su.1; per acquisire i privilegi da superuser. &prompt.root; dd if=kern.flp of=/dev/fd0 Gli esempi che iniziano con &prompt.user; indicano un comando che deve essere eseguito da un normale utente. Dove non indicato, è usata la sintassi C-shell per impostare variabili di ambiente e altri comandi di shell. &prompt.user; top Riconoscimenti Il libro che stai leggendo rappresenta gli sforzi di molte centinaia di persone in tutto il mondo. Sia che abbiano inviato correzioni per errori di battitura, sia che abbiano inviato interi capitoli, tutti i contributi sono stati utili. Molte società hanno supportato lo sviluppo di questo documento pagando gli autori per lavorarci sopra a tempo pieno, pagando per la pubblicazione, ecc. In particolare BSDi (successivamente acquisita da Wind River Systems) ha pagato i membri del FreeBSD Documentation Project per lavorare a tempo pieno sul miglioramento di questo libro fino alla pubblicazione della prima edizione inglese stampata nel Marzo 2000 (ISBN 1-57176-241-8). Wind River Systems poi ha pagato numerosi autori aggiuntivi per fare una serie di miglioramenti all'infrastruttura di stampa e per aggiungere altri capitoli al testo. Questo lavoro è culminato nella pubblicazione della seconda edizione inglese stampata nel Novembre 2001 (ISBN 1-57176-303-1). diff --git a/it_IT.ISO8859-15/books/handbook/security/chapter.sgml b/it_IT.ISO8859-15/books/handbook/security/chapter.sgml index aebf4b67fa..313fed58f9 100644 --- a/it_IT.ISO8859-15/books/handbook/security/chapter.sgml +++ b/it_IT.ISO8859-15/books/handbook/security/chapter.sgml @@ -1,80 +1,158 @@ Sicurezza Sinossi - Traduzione in corso + Questo capitolo dà una introduzione di base sui concetti dei + sistemi di sicurezza, alcune buone regole di comportamento e alcuni + argomenti avanzati per &os;. Molti degli argomenti qua tratati possono + essere applicati anche ai sistemi e alla sicurezza su Internet in + generale. Internet non è più il luogo + amichevole dove ognuno vuole essere il tuo amichevole + vicino. Mettere in sicurezza il tuo ssitema è un imperativo per la + protezione dei tuoi dati, della tua proprietà intelletuale, il tuo + tempo e molto altro dalla mano di hackere simili. + + &os; dà un insieme di utility e di meccanismi per assicurare + l'integrità e la sicurezza del tuo sistema e della tua rete. + + Dopo la lettura di questo capitolo, conoscerai: + + + + Concetti di base dei sistemi di sicurezza, rispetto a &os;. + + + + Vari meccanismi di crittografia disponibili in &os;, + come DES e MD5. + + + + Come configurare l'autenticazione OTP (password a singolo + uso). + + + + Come configurare KerberosIV su release + &os; precedenti alla 5.0. + + + + Come configurare Kerberos5 su &os; 5.0 + o successive. + + + + Come creare firewall usando IPFW. + + + + Come configurare IPsec e creare una VPN tra + macchine &os;/&windows;. + + + + Come configurare e usare OpenSSH, + l'implementaizone SSH usata da &os;. + + + + Come configurare e caricare i moduli aggiuntivi per il controllo + degli accessi usando il Framework MAC di + TrustedBSD. + + + + Cosa sono le ACL del file system e come + usarle. + + + + Come utilizzare le pubblicazioni sugli avvisi di sicurezza di + &os;. + + + + Prima di leggere questo capitolo dovresti: + + + + Capire concetti base di &os; e Internet. + + Introduction Traduzione in corso - Securing FreeBSD + Securing &os; Traduzione in corso DES, MD5, and Crypt Traduzione in corso S/Key Traduzione in corso Kerberos Traduzione in corso Firewalls Traduzione in corso OpenSSL Traduzione in corso IPsec Traduzione in corso OpenSSH Traduzione in corso diff --git a/it_IT.ISO8859-15/books/handbook/serialcomms/chapter.sgml b/it_IT.ISO8859-15/books/handbook/serialcomms/chapter.sgml index 36666e192e..91a33e6d9e 100644 --- a/it_IT.ISO8859-15/books/handbook/serialcomms/chapter.sgml +++ b/it_IT.ISO8859-15/books/handbook/serialcomms/chapter.sgml @@ -1,2871 +1,2871 @@ Comunicazioni Seriali Sinossi comunicazioni seriali - Unix ha sempre avuto un supporto per le comunicazioni seriali. - In effetti, le prime vere macchine Unix si appoggiavano a linee seriali + &unix; ha sempre avuto un supporto per le comunicazioni seriali. + In effetti, le prime vere macchine &unix; si appoggiavano a linee seriali per l'input e l'output da e verso l'utente. Le cose sono cambiate molto dai giorni in cui un terminale consisteva in una stampante da 10 caratteri al secondo o in una tastiera. Questo capitolo coprirà alcuni dei modi nei quali FreeBSD usa le comunicazioni seriali. Dopo aver letto questo capitolo, saprai: Come connettere terminali al tuo sistema FreeBSD. Come usare un modem per collegarti telefonicamente ad una macchina remota. Come permettere a utenti remoti di effettuare login sul tuo sistema via modem. Come avviare il tuo sistema da una console seriale. Prima di leggere questo capitolo, dovresti: Sapere come configurare ed installare un nuovo kernel (). - Comprendere i permessi ed i processi Unix + Comprendere i permessi ed i processi &unix; (). Avere accesso al manuale tecnico per l'hardware seriale (modem o scheda multiporta) che vuoi usare con FreeBSD. Introduzione Terminologia bps bit per secondo Bits per Second (Bit per Secondo) — la frequenza alla quale vengono trasmessi i dati DTE DTE Data Terminal Equipment (Attrezzatura per il Terminale Dati) — ad esempio, il tuo computer DCE DCE Data Communications Equipment (Attrezzatura per le Comunicazioni Dati) — il tuo modem RS-232 cavi RS-232C Standard EIA per le comunicazioni tra hardware seriale Nel parlare della velocità di comunicazione, questa sezione non usa il termine baud. Il baud si riferisce al numero di transizioni degli stati elettrici che possono essere effettuati in un periodo di tempo, mentre i bps (bit per secondo) sono il termine corretto da usare (o almeno non sembra irritare troppo i perfezionisti). Cavi e Porte Per collegare un modem o un terminale alla tua macchina FreeBSD, avrai bisogno di una porta seriale sul tuo computer e del cavo appropriato per il tuo dispositivo seriale. Se sei già pratico con l'hardware ed i cavi necessari, puoi saltare tranquillamente questa sezione. Cavi Ci sono parecchi tipi diversi di cavi seriali. I due tipi più comuni per i nostri scopi sono i cavi null-modem ed i cavi standard (dritti) RS-232. La documentazione per il tuo hardware dovrebbe descrivere il tipo di cavi necessari. Cavi null-modem cavo null-modem Un cavo null-modem lascia passare alcuni segnali, come signal ground, direttamente, ma inverte altri segnali. Ad esempio, il pin send data in un estremo va sul pin receive data nell'altro. Se ti piace fare i cavi da solo, puoi costruire un cavo null-modem da usare con i terminali. Questa tabella mostra i nomi dei segnali RS-232C ed i numeri dei pin su un connettore DB-25. Segnale Pin # Pin # Segnale SG 7 si connette a 7 SG TxD 2 si connette a 3 RxD RxD 3 si connette a 2 TxD RTS 4 si connette a 5 CTS CTS 5 si connette a 4 RTS DTR 20 si connette a 6 DSR DCD 8 6 DSR DSR 6 si connette a 20 DTR Collega internamente al cappuccio del connettore Data Set Ready (DSR) e Data Carrier Detect (DCD), e quindi a Data Terminal Ready (DTR) in quello remoto. Cavi Standard RS-232C cavi RS-232C Un cavo seriale standard passa tutti i segnali RS-232C diretti. Cioè, il pin send data su un estremo del cavo va nel pin send data sull'altro estremo. Questo è il tipo di cavo da usare per collegare un modem al tuo sistema FreeBSD, ed è anche appropriato per alcuni terminali. Porte Le porte seriali sono i dispositivi attraverso i quali vengono trasferiti i dati tra il computer FreeBSD ed il terminale. Questa sezione descrive il tipo di porte che esistono e come vengono indicate in FreeBSD. Tipi di Porte Esistono parecchi tipi di porte seriali. Prima di comprare o costruire un cavo, avrai bisogno di assicurarti che sia adatto alle porte sul terminale e sul sistema FreeBSD. La maggior parte dei terminali avrà porte DB25. I personal computer, compresi i PC con FreeBSD, avranno porte DB25 o DB9. Se hai una scheda seriale multiporta nel tuo PC, potresti avere porte RJ-12 o RJ-45. Guarda la documentazione fornita con l'hardware per le specifiche del tipo di porta usata. Spesso basta anche un'ispezione visiva della porta. Nomi delle Porte In FreeBSD, si accede ad ogni porta seriale attraverso una voce nella directory /dev. Ci sono due differenti tipi di voci: Le porte di ingresso vengono dette /dev/ttydN dove N è il numero di porta, cominciando da zero. Generalmente, puoi usare la porta di ingresso per i terminali. Le porte di ingresso richiedono che la linea fornisca un segnale detto data carrier detect (DCD) per funzionare correttamente. Le porte di uscita vengono dette /dev/cuaaN. In genere non si usano porte di uscita per i terminali, ma solo per i modem. Puoi usare la porta di uscita se il cavo seriale o il terminale non supportano il segnale di carrier detect. Se hai connesso un terminale sulla prima porta seriale - (COM1 in MS-DOS), allora userai + (COM1 in &ms-dos;), allora userai /dev/ttyd0 per riferirti al terminale. Se il terminale è sulla seconda porta seriale (anche nota come COM2), usa /dev/ttyd1, e così via. Configurazione del Kernel FreeBSD supporta quattro porte seriali di default. Nel mondo - MS-DOS, queste sono note come COM1, + &ms-dos;, queste sono note come COM1, COM2, COM3, e COM4. FreeBSD attualmente supporta schede d'interfaccia seriale multiporta stupide, come le BocaBoard 1008 e 2016, così come le schede multiporta intelligenti come quelle fatte dalla Digiboard e dalla Stallion Technologies. Ad ogni modo, il kernel di default usa solo le porte COM standard. Per vedere se il tuo kernel riconosce una delle tue porte seriali, guarda i messaggi mentre il kernel viene avviato, o usa il comando /sbin/dmesg per far scorrere di nuovo i messaggi di avvio del kernel. In particolare, cerca dei messaggi che inizino con i caratteri sio. Per vedere solo i messaggi che hanno la parola sio, usa il comando: &prompt.root; /sbin/dmesg | grep 'sio' Ad esempio, su un sistema con quattro porte seriali, questi sono i messaggi dati dall'avvio del kernel specifici delle porte seriali: sio0 at 0x3f8-0x3ff irq 4 on isa sio0: type 16550A sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A sio2 at 0x3e8-0x3ef irq 5 on isa sio2: type 16550A sio3 at 0x2e8-0x2ef irq 9 on isa sio3: type 16550A Se il tuo kernel non riconosce tutte le tue porte seriali, probabilmente avrai bisogno di configurare un kernel FreeBSD adattato al tuo sistema. Per informazioni dettagliate sulla configurazione del kernel, vedi più avanti . Le linee rilevanti per i dispositivi nella tua configurazione del kernel dovrebbero apparire così, con FreeBSD 4.X: device sio0 at isa? port IO_COM1 irq 4 device sio1 at isa? port IO_COM2 irq 3 device sio2 at isa? port IO_COM3 irq 5 device sio3 at isa? port IO_COM4 irq 9 e così, con FreeBSD 5.X: device sio Puoi commentare o rimuovere completamente le linee per i dispositivi che non hai nel caso di FreeBSD 4.X; per FreeBSD 5.X devi modificare il file /boot/device.hints per configurare le porte seriali. Guarda la pagina man di &man.sio.4; per informazioni aggiuntive sulla configurazione delle porte seriali e delle schede multiporta. Stai attento se stai usando un file di configurazione già usato per una versione differente di FreeBSD, poiché i flag dei dispositivi e la sintassi sono cambiati tra una versione e l'altra. port IO_COM1 è una sostituzione per port 0x3f8, IO_COM2 è 0x2f8, IO_COM3 è 0x3e8, e IO_COM4 è 0x2e8, che sono indirizzi comuni per le rispettive porte seriali; gli interrupt 4, 3, 5, e 9 sono linee di richiesta di interrupt piuttosto comuni. Da notare anche che le normali porte seriali non possono condividere degli interrupt sui bus ISA dei PC (le schede multiporta hanno dell'elettronica integrata che permette a tutte le 16550A sulla scheda di condividere uno o due linee di richiesta dell'interrupt). File Speciali di Dispositivo Alla maggior parte dei dispositivi nel kernel si accede attraverso file speciali di dispositivo, che si trovano nella directory /dev. Ai dispositivi sio si accede attraverso i /dev/ttydN (ingresso) e /dev/cuaaN (uscita). FreeBSD fornisce anche dei dispositivi di inizializzazione (/dev/ttyidN e - /dev/cuai0N) e dei + /dev/cuaiaN) e dei dispositivi di blocco (/dev/ttyldN e - /dev/cual0N). I + /dev/cualaN). I dispositivi di inizializzazione vengono usati per inizializzare i parametri delle porte di comunicazione ogni volta che una porta viene aperta, come crtscts per i modem che usano le segnalazioni RTS/CTS per il controllo di flusso. I dispositivi di blocco vengono usati per fissare i flag sulle porte ed evitare che altri utenti o programmi cambino certi parametri; guarda le pagine man di &man.termios.4;, &man.sio.4;, e &man.stty.1; per maggiori informazioni sulle impostazioni dei terminali, sui dispositivi di blocco ed inizializzazione, e sull'impostazione delle opzioni del terminale, rispettivamente. Creazione dei File Speciali di Dispositivo FreeBSD 5.0 include il file system &man.devfs.5; che crea automaticamente nodi per i dispositivi necessari. Se stai usando una versione di FreeBSD con il devfs abilitato puoi saltare tranquillamente questa sezione. Uno script di shell di nome MAKEDEV nella directory /dev gestisce i file di dispositivo. Per usare MAKEDEV nella creazione del file di dispositivo per COM1 (porta 0), fai cd su /dev e dai il comando MAKEDEV ttyd0. Allo stesso modo, per creare il file di dispositivo per COM2 (porta 1), usa MAKEDEV ttyd1. MAKEDEV non crea solo i file speciali /dev/ttydN, ma anche i nodi /dev/cuaaN, /dev/cuaiaN, /dev/cualaN, /dev/ttyldN, e /dev/ttyidN. Dopo aver creato i nuovi file di dispositivo, fa attenzione nel controllare i permessi sui file (specialmente sui file /dev/cua*) per assicurarti che solo gli utenti che dovrebbero effettivamente avere accesso a questi dispositivi possano leggerli e scriverli — magari non vorrai permettere al tuo utente medio di usare il tuo modem per chiamare verso l'esterno. I permessi predefiniti su /dev/cua* dovrebbero essere adatti: crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cuaa1 crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuaia1 crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cuala1 Questi permessi permettono all'utente uucp e agli utenti nel gruppo dialer di usare i dispositivi di uscita. Configurazione della Porta Seriale ttyd cuaa Il dispositivo ttydN (o cuaaN) è il normale dispositivo che si apre per le proprie applicazioni. Quando un processo apre il dispositivo, avrà un insieme di impostazioni di I/O predefinite per il terminale. Puoi visualizzare queste impostazioni con il comando: &prompt.root; stty -a -f /dev/ttyd1 Quando cambi le impostazioni per questo dispositivo, queste rimangono efficaci finché il dispositivo non viene chiuso. Quando viene riaperto, ritorna all'insieme di default. Per effettuare dei cambiamenti all'insieme predefinito, modifica le impostazioni per il dispositivo di stato iniziale. Ad esempio, per attivare di default modalità , comunicazione a 8 bit, e controllo di flusso per ttyd5, scrivi: &prompt.root; stty -f /dev/ttyid5 clocal cs8 ixon ixoff file rc rc.serial Le inizializzazioni di sistema per i dispositivi seriali sono controllate in /etc/rc.serial. Questo file influisce sui valori predefiniti dei dispositivi seriali. Per evitare cambiamenti da parte di qualche applicazione, modifica il dispositivo di blocco dello stato. Ad esempio, per bloccare la velocità di ttyd5 a 57600 bps, scrivi: &prompt.root; stty -f /dev/ttyld5 57600 Ora, un applicazione che apra ttyd5 e cerchi di cambiare la velocità della porta resterà bloccata a 57600 bps. MAKEDEV Naturalmente, dovresti rendere i dispositivi di stato iniziale e stato di blocco scrivibili solo da root. Sean Kelly Contributo di Terminali terminali I terminali forniscono un sistema di accesso conveniente ed a basso costo al tuo sistema FreeBSD quando non sei davanti alla console del computer o connesso ad una rete. Questa sezione descrive l'uso dei terminali con FreeBSD. Uso e Tipi di Terminali - I sistemi Unix originali non avevano console. Invece, la gente + I sistemi &unix; originali non avevano console. Invece, la gente effettuava il login ed avviava programmi attraverso terminali connessi alle porte seriali del computer. Ciò era abbastanza simile all'uso di modem e programmi terminale per collegarsi telefonicamente ad un sistema remoto e lavorare da riga di comando. I PC di oggi hanno console capaci di grafica di alta qualità, ma l'abilità di stabilire una sessione di login su una porta - seriale esiste ancora in quasi ogni sistema operativo in stile Unix di + seriale esiste ancora in quasi ogni sistema operativo in stile &unix; di oggi; FreeBSD non fa eccezione. Usando un terminale attaccato ad una porta seriale inutilizzata, puoi effettuare il login ed eseguire qualsiasi programma testuale che potresti lanciare normalmente dalla console o da una finestra xterm in X Window. Un utente aziendale può connettere molti terminali ad un sistema FreeBSD e porli sulle scrivanie dei propri impiegati. Un utente casalingo può usare qualcosa come un vecchio PC IBM o un - Macintosh come terminale connesso a un computer più potente che + &macintosh; come terminale connesso a un computer più potente che faccia girare FreeBSD. Puoi anche trasformare quello che sarebbe un computer singolo utente in un potente sistema per utenti multipli. Per FreeBSD, esistono tre tipi di terminali: terminali stupidi PC che interpretano terminali terminali X Le sottosezioni rimanenti descrivono ognuno di questi tipi. Terminali <quote>Stupidi</quote> Questi terminali sono oggetti hardware specializzati che permettono di connettere dei computer tramite linee seriali. Essi vengono detti stupidi poiché hanno solo la potenza di calcolo necessaria per mostrare, inviare, e ricevere testo. Non potete eseguire nessun programma su di essi. È il computer al quale vi collegate che ha la potenza per eseguire editor di testo, compilatori, email, giochi, e così via. Ci sono centinaia di tipi di terminali di questo tipo, venduti da molti produttori, incluso il VT-100 della Digital Equipment Corporation e il WY-75 della Wyse. Quasi tutti funzioneranno con FreeBSD. Alcuni terminali di alto livello possono anche mostrare della grafica, ma solo alcuni pacchetti software possono avvalersi di queste caratteristiche. I terminali stupidi sono popolari negli ambienti di lavoro nei quali i lavoratori non hanno bisogno di accedere ad applicazioni grafiche come quelle fornite dal sistema X Window. PC che Emulano Terminali Se un terminale stupido ha appena le capacità per mostrare, inviare, e ricevere testo, allora di certo un qualunque personal computer può funzionare come un terminale stupido. Tutto ciò di cui hai bisogno è il cavo appropriato ed un qualche programma per l'emulazione di terminale sul tuo computer. Una simile configurazione è comune in molte case. Ad esempio, se il tuo coniuge sta lavorando alla console del sistema FreeBSD, tu puoi fare del lavoro testuale allo stesso momento da un PC meno potente connesso come terminale al sistema FreeBSD. Terminali X I terminali X sono i terminali più sofisticati tra quelli disponibili. Invece di collegarsi alla porta seriale, in genere ci si collega ad essi tramite un rete come Ethernet. Invece di essere relegati alle applicazioni testuali, essi possono mostrare applicazioni X. Introduciamo i terminali X solo per una questione di completezza. Ad ogni modo, questo capitolo non affronta in modo completo l'installazione, la configurazione, o l'uso dei terminali X. Configurazione Questa sezione descrive quello che hai bisogno di configurare sul tuo sistema FreeBSD per abilitare una sessione di login via terminale. Si assume che tu abbia già configurato il kernel con il supporto per la porta seriale alla quale è connesso il terminale — e che questo sia già connesso. Dovresti ricordare dal che il processo init è responsabile del controllo di tutti i processi e dell'inizializzazione del sistema all'avvio. Uno dei compiti svolti da init è la lettura del file /etc/ttys e l'avvio di un processo getty sui terminali disponibili. Il processo getty è responsabile della lettura di un nome di login e dell'avvio del programma login. Dunque, per configurare i terminali per il tuo sistema FreeBSD devono essere effettuati come root i seguenti passi: Aggiungi una linea a /etc/ttys relativa al file in /dev per la porta seriale, se non è già presente. Specifica che /usr/libexec/getty deve essere eseguito sulla porta, e specifica il tipo appropriato di getty dal file /etc/gettytab. Specifica il tipo di terminale predefinito. Imposta la porta su on. Specifica se la porta deve essere sicura. Forza init alla rilettura del file /etc/ttys. Come passo opzionale, potresti desiderare di creare un tipo di getty personale da usare nel secondo passo aggiungendo una linea in /etc/gettytab. Questo capitolo non spiega come fare ciò; sei incoraggiato a leggere le pagine man di &man.gettytab.5; e &man.getty.8; per maggiori informazioni. Aggiunta di un Elemento in <filename>/etc/ttys</filename> Il file /etc/ttys elenca tutte le porte del tuo sistema FreeBSD dalle quali vuoi permettere un login. Ad esempio, la prima console virtuale ttyv0 è elencata in questo file. Si può accedere al sistema dalla console grazie a questa voce. Questo file contiene anche delle voci per altre console virtuali, porte seriali, e pseudo-tty. Per un terminale connesso fisicamente, basta copiare l'elenco delle porte seriali in /dev senza la parte /dev (ad esempio, /dev/ttyv0 verrà scritta come ttyv0). Un'installazione predefinita di FreeBSD include un file /etc/ttys con supporto per le prime quattro porte seriali: da ttyd0 a ttyd3. Se vuoi collegare un terminale a una di queste porte, non hai bisogno di aggiungere un'altra voce. Aggiunta di Voci per Altri Terminali a <filename>/etc/ttys</filename> Supponiamo che si vogliano collegare due terminali ad un sistema: un Wyse-50 ed un vecchio PC IBM 286 con Procomm come programma di emulazione di terminale VT-100. Colleghiamo il Wyse alla seconda porta seriale ed il 286 alla sesta (una porta su scheda seriale multiporta). Le voci corrispondenti nel file /etc/ttys apparirebbero così: ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure Il primo campo in genere specifica il nome del file speciale per il terminale, come si trova in /dev. Il secondo campo è il comando da eseguire per questa linea, generalmente &man.getty.8;. getty inizializza ed apre la linea, imposta la velocità, richiede all'utente un nome di login e poi esegue il programma &man.login.1;. Il programma getty accetta un parametro (opzionale) da riga di comando, il tipo di getty. Un tipo di getty configura le caratteristiche della linea del terminale, come la frequenza di bit per secondo e la parità. Il programma getty legge questa caratteristiche dal file /etc/gettytab. Il file /etc/gettytab contiene molte voci per le linee di terminale sia vecchie che nuove. In quasi tutti i casi, le voci che cominciano per std funzioneranno con i terminali connessi fisicamente. Queste voci ignorano la parità. C'è una voce std per ogni frequenza di bps da 110 a 115200. Naturalmente, puoi aggiungere le tue voci a questo file. La pagina man di &man.gettytab.5; fornisce maggiori informazioni. Nell'impostare il tipo di getty nel file /etc/ttys, assicurati che le impostazioni di comunicazione sul terminale corrispondano. Nel nostro esempio, il Wyse-50 non usa parità e si connette a 38400 bps. Il PC 286 non usa parità e si connette a 19200 bps. Il terzo campo è il tipo di terminale generalmente collegato alla linea tty. Per le porte dial-up, viene usato tipicamente unknown o dialup poiché gli utenti possono collegarsi con praticamente qualunque tipo di terminale o programma. Per i terminali connessi direttamente, il tipo di terminale non cambia, quindi puoi mettere un vero tipo di terminale preso dal file database di &man.termcap.5; in questo campo. Per il nostro esempio, il Wyse-50 usa il tipo per il vero terminale mentre il PC 286 con Procomm in esecuzione verrà impostato per emulare un VT-100. Il quarto campo specifica se la porta deve essere abilitata. Scrivere on qui farà sì che il processo init avvii il programma nel secondo campo, getty. Se metti off in questo campo, non ci sarà nessun getty, e dunque nessun login sulla porta. Il campo finale è usato per specificare se la porta è sicura. Segnare una porta come sicura significa confidare nel fatto che non ci sia rischio nel permettere all'account di root (o ad un altro con user ID uguale a 0) di effettuare il login da quella porta. Porte insicure non permettono il login a root. Su una porta insicura, gli utenti devono effettuare un login con accesso non privilegiato, e poi usare &man.su.1; o un meccanismo simile per ottenere privilegi superiori. È fortemente consigliato l'uso di insecure anche per i terminali che si trovano dietro porte chiuse a chiave. È abbastanza semplice effettuare il login e usare su se si ha bisogno di privilegi da superutente. Come Forzare <command>init</command> a Rileggere <filename>/etc/ttys</filename> Dopo aver effettuato i cambiamenti necessari al file /etc/ttys si deve mandare un segnale SIGHUP (hangup) al processo init affinché sia costretto a rileggere il suo file di configurazione. Ad esempio: &prompt.root; kill -HUP 1 init è sempre il primo processo eseguito su un sistema dunque avrà sempre PID 1. Se tutto è stato impostato correttamente, tutti i cavi sono collegati, ed i terminali sono accesi, allora un processo getty dovrebbe essere in esecuzione su ogni terminale e a questo punto dovresti vedere dei prompt per il login sui tuoi terminali. Risoluzione dei Problemi di Connessione Anche con la più meticolosa attenzione ai dettagli, qualcosa potrebbe comunque andare storto nell'impostazione di un terminale. Questa è una lista dei sintomi e di alcuni suggerimenti per risolverli. Non Appare Nessun Prompt per il Login Assicurati che il terminale sia connesso e acceso. Se è un personal computer che funziona da terminale, assicurati che il programma di emulazione di terminale sia attivo sulla porta seriale giusta. Assicurati che il cavo sia ben connesso sia al terminale che al computer FreeBSD. Assicurati che sia il giusto tipo di cavo. Assicurati che il terminale e FreeBSD siano concordi sul valore di bps e sulle impostazioni di parità. Se hai un terminale con un display video, assicurati che il contrasto e la luminosità siano giusti. Se è un terminale di stampa, assicurati che ci siano carta e inchiostro sufficienti. Assicurati che il processo getty sia attivo per quel terminale. Ad esempio, per avere una lista dei processi getty con ps, scrivi: &prompt.root; ps -axww | grep getty dovresti vedere una voce per il terminale. Ad esempio, la schermata seguente mostra che getty è in esecuzione sulla seconda porta seriale ttyd1 e sta usando la voce std.38400 in /etc/gettytab: 22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1 Se non c'è nessun processo getty in esecuzione, assicurati di aver abilitato la porta in /etc/ttys. Ricordati anche di eseguire kill -HUP 1 dopo aver modificato il file ttys. Se il processo getty è attivo ma il terminale non mostra ancora un prompt di login, o se mostra un prompt ma non ti permette di digitare nulla, il tuo terminale o il tuo cavo potrebbero non supportare la transazione hardware. Prova a cambiare il valore in /etc/ttys da std.38400 a 3wire.38400 (e ricordati di dare un kill -HUP 1 dopo aver modificato /etc/ttys). La voce 3wire è simile a std, ma ignora l'handshake hardware. Potresti aver bisogno di ridurre i baud o di abilitare un controllo di flusso software usando 3wire per evitare dei buffer overflow. Compaiono Caratteri Strani Invece di un Prompt di Login Assicurati che il terminale e FreeBSD siano concordi sui bps e sulle impostazioni di parità. Verifica i processi getty per assicurarti che sia in funzione il tipo corretto di getty. Se non è così, modifica /etc/ttys ed esegui kill -HUP 1. I Caratteri Appaiono Duplicati; la Password Viene Visualizzata Quando la Scrivo Cambia l'impostazione del terminale (o del programma di emulazione) da half duplex o local echo a full duplex. Guy Helmer Contributo di Sean Kelly Aggiunte di Servizio di Ricezione Chiamate servizio di ricezione chiamate La configurazione del sistema FreeBSD per il servizio di ricezione chiamate è molto simile alla connessione di terminali tranne per il fatto che si ha a che fare con dei modem invece che con dei terminali. Modem Esterni contro Modem Interni I modem esterni sembrerebbero migliori per chiamare, poiché i modem esterni spesso possono essere configurati in maniera semipermanente tramite dei parametri immagazzinati in RAM non volatile e generalmente forniscono degli indicatori luminosi che mostrano lo stato degli importanti segnali RS-232. Le lucine lampeggianti impressionano gli ospiti, ma sono anche molto utili per vedere se un modem sta funzionando in maniera appropriata. I modem interni in genere mancano della RAM non-volatile, quindi la loro configurazione può essere limitata solo impostando i DIP switch. Se il tuo modem interno ha delle luci indicatrici di segnale, probabilmente è difficile vederle quando il case del sistema è al suo posto. Modem e Cavi modem Se stai usando un modem esterno, allora avrai bisogno del cavo appropriato. Un cavo seriale standard RS-232C dovrebbe essere sufficiente, posto che tutti i normali segnali siano connessi: Sent Data (SD) Received Data (RD) Request to Send (RTS) Clear to Send (CTS) Data Set Ready (DSR) Data Terminal Ready (DTR) Carrier Detect (CD) Signal Ground (SG) FreeBSD necessita dei segnali RTS e CTS per il controllo di flusso a velocità superiori a 2400 bps, del segnale CD per identificare quando c'è stata una risposta alla chiamata o quando una linea è stata scollegata, e del segnale DTR per dare il reset al modem dopo che una sessione è terminata. Alcuni cavi sono connessi senza alcuni dei segnali necessari, dunque se hai dei problemi, come una sessione di login che non scompare quando la linea è sconnessa, potresti avere un problema col cavo. - Come altri sistemi operativi Unix, FreeBSD usa i segnali + Come altri sistemi operativi &unix;, FreeBSD usa i segnali hardware per scoprire quando una chiamata è stata accettata o quando una linea è stata scollegata e per scollegare e resettare il modem dopo una chiamata. FreeBSD evita di mandare comandi al modem o di leggere i valori riportati dal modem. Se hai familiarità con la connessione dei modem a BBS di PC, questo potrebbe sembrarti scomodo. Considerazioni sull'Interfaccia Seriale FreeBSD supporta interfacce di comunicazione EIA RS-232C (CCITT V.24) basate su NS8250, NS16450, NS16550, e NS16550A. I dispositivi 8250 e 16450 hanno buffer di un singolo carattere. Il dispositivo 16550 fornisce un buffer di 16 caratteri, che permette prestazioni del sistema migliori. (Dei bug nel normale 16550 impediscono l'uso del buffer di 16 caratteri, quindi usate 16550A se possibile). A causa del buffer a singolo carattere questi dispositivi richiedono un lavoro maggiore da parte del sistema operativo rispetto ai dispositivi a 16 caratteri di buffer, le schede d'interfaccia seriale basate su 16550A sono preferibili. Se il sistema ha molte porte seriali attive o dovrà sopportare un grosso carico, le schede basate su 16550A sono migliori per comunicazioni a basso tasso d'errore. Breve Panoramica getty Come con i terminali, init lancia un processo getty per ogni porta seriale configurata per connessioni in ingresso. Ad esempio, se un modem è connesso a /dev/ttyd0, il comando ps ax mostrerà questo: 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0 Quando un utente chiama la linea del modem e questo si collega, il modem riporterà la linea CD (Carrier Detect). Il kernel nota che la portante è stata rilevata e completa l'apertura della porta con getty. getty invia un prompt login: alla velocità iniziale di linea specificata. getty aspetta per verificare che vengano ricevuti caratteri legittimi, e, in una tipica configurazione, se trova dei caratteri strani (probabilmente perché la velocità del modem è differente da quella di getty), getty cerca di calibrare la velocità di linea fino a ricevere dei caratteri ragionevoli. /usr/bin/login Dopo che l'utente ha inserito il suo nome di login, getty esegue /usr/bin/login, che completa il login richiedendo la password per l'utente ed avviandone la shell. File di Configurazione Ci sono tre file di configurazione di sistema nella directory /etc che avrai probabilmente bisogno di modificare per permettere chiamate in ingresso sul tuo sistema FreeBSD. Il primo, /etc/gettytab, contiene le informazioni di configurazione per il demone /usr/libexec/getty. Il secondo, /etc/ttys contiene le informazioni che dicono a /sbin/init quali dispositivi tty devono avere processi getty in esecuzione. Infine, si possono mettere comandi di inizializzazione nello script /etc/rc.serial. - Ci sono due scuole di pensiero riguardo i modem su Unix. + Ci sono due scuole di pensiero riguardo i modem su &unix;. Un gruppo preferisce configurare i propri modem in maniera che qualunque sia la velocità con la quale un utente remoto si collega, l'interfaccia locale RS-232 computer-modem funzioni ad una velocità fissa. Il beneficio di questa configurazione è che l'utente remoto vede sempre un prompt di login immediato. Il lato negativo è che il sistema non sa quale sia la vera velocità di trasmissione dati di un utente, quindi programmi a tutto schermo come Emacs non modificheranno i loro metodi di rappresentazione dello schermo per ottimizzare la risposta su connessioni lente. L'altra scuola di pensiero configura le proprie interfacce RS-232 verso il modem per variare la propria velocità rispetto a quella di connessione dell'utente remoto. Ad esempio, le connessioni V.32bis (14.4 Kbps) faranno sì che il modem faccia funzionare la propria interfaccia RS-232 a 19.2 Kbps, mentre le connessioni a 2400 bps faranno sì che funzioni a 2400 bps. Poiché getty non comprende nessun valore restituito dal modem riguardo la velocità di connessione, getty darà un messaggio login: ad una velocità iniziale fissata e aspetterà i caratteri in risposta. Se l'utente vede caratteri strani, si assume che sappia che dovrà premere Invio finché non vedrà un prompt riconoscibile. Se le frequenze di trasmissione non concordano, getty vedrà tutto ciò che l'utente preme come spazzatura, cercherà di passare alla velocità seguente e invierà il prompt login: di nuovo. Questa procedura potrebbe continuare ad nauseam, ma normalmente ci vogliono solo una o due pressioni sui tasti prima che l'utente veda un buon prompt. Ovviamente, questa sequenza di login non è pulita come la precedente a velocità fissata, ma un utente su una connessione a bassa velocità dovrebbe ricevere una risposta interattiva migliore da programmi a tutto schermo. Questa sezione cercherà di fornire informazioni di configurazione bilanciate, ma è indirizzata verso l'approccio di avere la frequenza di trasmissione del modem che segue la velocità della connessione. <filename>/etc/gettytab</filename> /etc/gettytab /etc/gettytab è un file di configurazione sul modello di &man.termcap.5; per &man.getty.8;. Si prega di vedere la pagina man di &man.gettytab.5; per le informazioni complete sul formato del file e la lista delle sue possibilità. Configurazione a Velocità Fissa Se stai fissando la frequenza di comunicazione del modem ad una velocità particolare, probabilmente non avrai bisogno di effettuare nessun cambiamento a /etc/gettytab. Configurazione a Velocità Concordata C'è bisogno di impostare una voce in /etc/gettytab per dare a getty le informazioni sulla velocità che si vuole usare per il modem. Se si possiede un modem a 2400 bps, probabilmente è possibile usare la voce D2400 già esistente. # # Terminali chiamanti veloci, a rotazione 2400/1200/300 # (può impostarsi in tutti i modi) # D2400|d2400|Fast-Dial-2400:\ :nx=D1200:tc=2400-baud: 3|D1200|Fast-Dial-1200:\ :nx=D300:tc=1200-baud: 5|D300|Fast-Dial-300:\ :nx=D2400:tc=300-baud: Se si possiede un modem con velocità maggiore, probabilmente sarà necessario aggiungere una voce in /etc/gettytab; qui c'è un esempio per modem a 14.4 Kbps modem con una velocità massima d'interfaccia di 19.2 Kbps: # # Aggiunte per un modem V.32bis # um|V300|High Speed Modem at 300,8-bit:\ :nx=V19200:tc=std.300: un|V1200|High Speed Modem at 1200,8-bit:\ :nx=V300:tc=std.1200: uo|V2400|High Speed Modem at 2400,8-bit:\ :nx=V1200:tc=std.2400: up|V9600|High Speed Modem at 9600,8-bit:\ :nx=V2400:tc=std.9600: uq|V19200|High Speed Modem at 19200,8-bit:\ :nx=V9600:tc=std.19200: Questo risulterà in una connessione a 8-bit, senza parità. L'esempio precedente avvia la comunicazione a 19.2 Kbps (per una connessione V.32bis), poi cicla tra 9600 bps (per V.32), 2400 bps, 1200 bps, 300 bps, e poi ancora a 19.2 Kbps. Il ciclo sulle frequenze di comunicazione è implementato con nx= (next table). Ogni linea usa una voce tc= (table continuation) per continuare a leggere le impostazioni standard per una frequenza particolare. Se hai un modem a 28.8 Kbps e/o vuoi avvantaggiarti della compressione su un modem a 14.4 Kbps, hai bisogno di usare una frequenza di comunicazione più alta di 19.2 Kbps. Qui c'è un esempio di voce per gettytab che imposta la velocità a 57.6 Kbps: # # Aggiunte per modem V.32bis o V.34 Modem # Impostazione a 57.6 Kbps # vm|VH300|Very High Speed Modem at 300,8-bit:\ :nx=VH57600:tc=std.300: vn|VH1200|Very High Speed Modem at 1200,8-bit:\ :nx=VH300:tc=std.1200: vo|VH2400|Very High Speed Modem at 2400,8-bit:\ :nx=VH1200:tc=std.2400: vp|VH9600|Very High Speed Modem at 9600,8-bit:\ :nx=VH2400:tc=std.9600: vq|VH57600|Very High Speed Modem at 57600,8-bit:\ :nx=VH9600:tc=std.57600: Se hai una CPU lenta o un carico di sistema pesante e non hai porte seriale 16550A, potresti ricevere errori sio silo a 57.6 Kbps. <filename>/etc/ttys</filename> /etc/ttys La configurazione del file /etc/ttys è stata affrontata nella . La configurazione dei modem è simile ma dobbiamo passare un argomento differente a getty e specificare un tipo di terminale differente. Il formato generale per la configurazione sia a velocità fissata che per quella concordata è: ttyd0 "/usr/libexec/getty xxx" dialup on Il primo elemento nella linea precedente è il file di dispositivo per questa voce — ttyd0 significa che /dev/ttyd0 è il file che verrà tenuto d'occhio da getty. Il secondo elemento, "/usr/libexec/getty xxx" (xxx verrà rimpiazzato dalla capacità iniziale di gettytab) è il processo che init eseguirà sul dispositivo. Il terzo elemento, dialup, è il tipo predefinito di terminale. Il quarto parametro, on, indica a init che quella linea è operativa. Potrebbe esserci un quinto parametro, secure, ma dovrebbe essere usato solo per i terminali che siano fisicamente sicuri (come la console di sistema). Il tipo di terminale predefinito (dialup nell'esempio precedente) potrebbe dipendere dalle preferenze locali. dialup è il terminale tradizionale predefinito sulle linee di ingresso in maniera che gli utenti possano personalizzare i loro script di login per notare quando il terminale è dialup e modificare automaticamente il loro tipo di terminale. Ad ogni modo, l'autore ritiene più semplice specificare vt102 come tipo di terminale predefinito, poiché l'utente può usare semplicemente un'emulazione VT102 sul suo sistema remoto. Dopo aver effettuato i cambiamenti a /etc/ttys, puoi inviare un segnale HUP a init per fargli rileggere il file. Puoi usare il comando &prompt.root; kill -HUP 1 per inviare il segnale. Se questa è la prima volta che cambi le impostazioni del sistema, puoi aspettare finché il modem non sia configurato in maniera appropriata e connesso, prima di inviare il segnale a init. Configurazione a Velocità Fissa Per una configurazione a velocità fissa, la voce in ttys ha bisogno di una voce che gestisca la velocità fissa anche per getty. Per un modem la cui velocità sulla porta sia bloccata a 19.2 Kbps, la voce in ttys potrebbe essere così: ttyd0 "/usr/libexec/getty std.19200" dialup on Se il tuo modem è bloccato su una frequenza di trasmissione differente, sostituisci il valore appropriato per std.velocità al posto di std.19200. Assicurati di usare un tipo valido elencato in /etc/gettytab. Configurazione a Velocità Concordata In una configurazione a velocità concordata, la voce in ttys deve fare riferimento alla voce iniziale auto-baud (sic) in /etc/gettytab. Ad esempio, se hai aggiunto la riga suggerita precedentemente per un modem con velocità variabile che inizi a 19.2 Kbps (la riga in gettytab contenente il punto d'avvio V19200), la riga in ttys potrebbe essere questa: ttyd0 "/usr/libexec/getty V19200" dialup on <filename>/etc/rc.serial</filename> file rc rc.serial I modem ad alta velocità, come i V.32, i V.32bis, e i V.34, necessitano di un controllo di flusso hardware (RTS/CTS). Puoi aggiungere dei comandi stty al file /etc/rc.serial per impostare i flag di controllo di flusso nel kernel FreeBSD per le porte del modem. Ad esempio per impostare il flag termios crtscts sui dispositivi di inizializzazione di ingresso e uscita della porta seriale numero 1 (COM2), si possono aggiungere le seguenti linee a /etc/rc.serial: # Configurazione iniziale della porta seriale stty -f /dev/ttyid1 crtscts -stty -f /dev/cuai01 crtscts +stty -f /dev/cuaia1 crtscts Impostazioni del Modem Se hai uno di quei modem i cui parametri possono essere impostati in maniera permanente in RAM non volatile, avrai bisogno di usare un - programma terminale (come Telix su MS-DOS o tip sotto - FreeBSD) per impostare i parametri. Collegati al modem usando le stesse - velocità iniziali e di comunicazione + programma terminale (come Telix su &ms-dos; o tip + sotto FreeBSD) per impostare i parametri. Collegati al modem usando le + stesse velocità iniziali e di comunicazione che userebbe getty e configura la RAM non volatile secondo queste necessità: CD attivo per la connessione DTR attivo per l'operazione; l'assenza del DTR porta allo scollegamento della linea e al reset del modem CTS controllo di flusso dei dati trasmessi Disabilita il controllo di flusso XON/XOFF RTS controllo di flusso dei dati ricevuti Modalità silenziosa (nessun codice di risposta) Nessun echo dei comandi Leggi la documentazione del tuo modem per capire quali comandi e/o impostazioni per i DIP switch sia necessario fornirgli. - Ad esempio, per impostare i parametri precedenti su un USRobotics - Sportster 14.400 esterno, si potrebbero dare questi comandi + Ad esempio, per impostare i parametri precedenti su un &usrobotics; + &sportster; 14.400 esterno, si potrebbero dare questi comandi al modem: ATZ AT&C1&D2&H1&I0&R2&W Potresti anche sfruttare questa opportunità per raffinare le impostazioni del modem, ad esempio per decidere se dovrà usare V.42bis e/o la compressione MNP5. - Il modem esterno USR Sportster 14.400 ha anche dei DIP switch - che devono essere impostati; per altri modem, forse potrai usare queste - impostazioni come esempio: + Il modem esterno &usrobotics; &sportster; 14.400 ha anche dei DIP + switch che devono essere impostati; per altri modem, forse potrai usare + queste impostazioni come esempio: Switch 1: SU — DTR Normale Switch 2: N/D (Codici di Risposta Verbali/Codici di Risposta Numerici Switch 3: SU — Sopprime i Codici di Risposta Switch 4: GIÙ — Nessun echo, comandi offline Switch 5: SU — Auto risposta Switch 6: SU — Carrier Detect Normale Switch 7: SU — Carica i valori predefiniti dall'NVRAM Switch 8: N/D (Modalità intelligente/modalità stupida) I codici di risposta dovrebbero essere disabilitati/soppressi per i modem chiamanti per evitare i problemi che possono capitare se getty dà incidentalmente un prompt login: ad un modem che si trova in modalità di comando ed il modem restituisce l'eco del comando o un codice di risposta. Questa sequenza può portare ad una lunga, stupida conversazione tra getty ed il modem. Configurazione a Velocità Fissa Per una configurazione a velocità fissa, avrai bisogno di configurare il modem affinché mantenga una frequenza dati da modem a computer indipendente dalla frequenza di comunicazione. - Su un modem esterno USR Sportster 14.400 + Su un modem esterno &usrobotics; &sportster; 14.400 questi comandi bloccheranno la velocità dati tra modem e computer alla velocità con la quale i comandi sono stati inviati: ATZ AT&B1&W Configurazione a Velocità Concordata Per una configurazione a velocità concordata, sarà necessario configurare il modem affinché modifichi la frequenza dei dati della porta seriale relativamente alla velocità di - arrivo. Su un modem esterno USR Sportster 14.400, questi comandi - causeranno il blocco della frequenza di trasmissione dati con + arrivo. Su un modem esterno &usrobotics; &sportster; 14.400, questi + comandi causeranno il blocco della frequenza di trasmissione dati con correzione d'errore del modem sulla velocità con il quale è stato inviato il comando, ma permetteranno variazioni della velocità della porta seriale per le connessioni senza correzione d'errore: ATZ AT&B2&W Verifica della Configurazione del Modem La maggior parte dei modem ad alta velocità fornisce comandi per verificare i parametri funzionali usati dal modem in maniera più o meno comprensibile. - Sui modem esterni USR Sportster 14.400, il comando + Sui modem esterni &usrobotics; &sportster; 14.400, il comando ATI5 mostra le impostazioni che sono immagazzinate nella RAM non volatile. Per vedere i veri parametri operativi del - modem (così come vengono influenzati dai DIP switch dell'USR), + modem (così come vengono influenzati dai DIP switch del modem), usa i comandi ATZ e ATI4. Se hai modem di marche differenti, verifica il manuale del tuo modem per vedere come sia possibile un ulteriore controllo sui parametri di configurazione del modem. Risoluzione dei Problemi Questi sono un po' di passi che è possibile seguire per verificare il funzionamento del modem sul tuo sistema. Verifica del Sistema FreeBSD Collega il modem al sistema FreeBSD, avvia il sistema, e, se il tuo modem ha luci di indicazione dello stato, guarda se la luce DTR del modem si accende quando appare il prompt login: sulla console del sistema — se si accende, dovrebbe significare che FreeBSD ha avviato un processo getty sulla porta di comunicazione appropriata e sta aspettando una chiamata dal modem. Se l'indicatore DTR non lampeggia, effettua il login sul sistema FreeBSD dalla console e dai il comando ps ax per verificare se FreeBSD sta cercando di eseguire un processo getty sulla porta corretta. Dovresti vedere linee come queste tra i processi mostrati: 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0 115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1 Se vedi qualcosa di diverso, come questo: 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0 ed il modem non ha ancora accettato chiamate, ciò significa che getty ha completato l'apertura della porta di comunicazione. Questo potrebbe indicare un problema nei cavi o un modem mal configurato, poiché getty non dovrebbe completare l'apertura della porta fino al rilevamento del segnale CD (carrier detect). Se non vedi nessun processo getty in attesa sulla porta ttydN scelta, ricontrolla le voci in /etc/ttys per vedere se ci sono errori lì. Inoltre, controlla il file di log /var/log/messages per vedere se ci sono messaggi di init o getty riguardo i loro problemi. Se ci sono messaggi, ri-ricontrolla i file di configurazione /etc/ttys e /etc/gettytab, ed anche i file speciali di dispositivo /dev/ttydN, cercando ogni errore, voce mancante, o file di dispositivo mancante. Tentativo di Connessione in Ingresso Cerca di collegarti dall'esterno al sistema; assicurati di usare 8 bit, nessuna parità, e 1 bit di stop sul sistema remoto. Se non ottieni un prompt, o vengono visualizzati caratteri strani, prova a premere Invio circa una volta per secondo. Se dopo un po' ancora non vedi un prompt login:, prova inviare un'INTERRUZIONE. Se stai usando un modem ad alta velocità per effettuare la chiamata, prova a richiamare dopo aver bloccato la velocità dell'interfaccia del - modem (tramite AT&B1 su un USR - Sportster, ad esempio). + modem (tramite AT&B1 su un &usrobotics; + &sportster;, ad esempio). Se ancora non ottieni alcun prompt login:, verifica /etc/gettytab ancora e ricontrolla che: La capacità iniziale specificata in /etc/ttys per quella linea corrisponda a quella in /etc/gettytab Ogni campo nx= corrisponda ad un valore in gettytab Ogni campo tc= corrisponda a un altro nome di capacità in gettytab Se chiami ma il modem su FreeBSD non risponde, assicurati che il modem sia configurato per rispondere alla chiamata quando viene fornito un segnale DTR. Se il modem sembra essere configurato correttamente, verifica che la linea DTR sia attiva controllando gli indicatori luminosi del modem (se ne ha). Se hai già controllato tutto quanto più volte ed ancora non funziona, fai una pausa e riprova in seguito. Se ancora non funziona puoi provare a inviare un messaggio di posta elettronica alla &a.questions; descrivendo il tuo modem ed il tuo problema, e i bravi ragazzi della lista cercheranno di darti una mano. Servizio di Effettuazione Chiamate servizio di effettuazione chiamate I seguenti sono consigli per far sì che la tua macchina sia in grado di connettersi tramite modem ad un altro computer. Questo è appropriato per stabilire una sessione terminale con un host remoto. Questo è utile per collegarsi ad una BBS. Questo tipo di connessione può essere estremamente utile per ottenere un file da Internet se hai problemi con il PPP. Se hai bisogno di usare l'FTP ed il PPP non funziona, usa la sessione terminale per eseguire l'FTP. Poi usa zmodem per trasferire il file sulla tua macchina. Il Mio Modem Hayes Stock Non È Supportato, Cosa Posso Fare? Effettivamente, la pagina man di tip è un po' datata. C'è un compositore Hayes generico già integrato. Usa semplicemente at=hayes nel tuo /etc/remote file. Il driver Hayes non è abbastanza intelligente da riconoscere alcune delle caratteristiche avanzate dei nuovi modem—messaggi come BUSY, NO DIALTONE, o CONNECT 115200 lo confonderanno e basta. Dovrai disattivare questi messaggi quando usate tip (usando ATX0&W). Inoltre, il timeout di composizione per tip è di 60 secondi. Il tuo modem dovrebbe usare qualcosa di meno, altrimenti tip penserà che ci sia un problema di comunicazione. Prova ATS7=45&W. Come viene fornito, tip non supporta ancora i modem Hayes completamente. La soluzione è modificare il file tipconf.h nella directory /usr/src/usr.bin/tip/tip. Ovviamente avrai bisogno della distribuzione con i sorgenti per fare ciò. Modifica la linea #define HAYES 0 a #define HAYES 1. Poi dai i comandi make e make install. Tutto funziona bene dopo aver fatto questo. Come Dovrei Inserire Questi Comandi AT? /etc/remote Inserisci quella che viene definita una voce diretta nel file /etc/remote. Ad esempio, se il tuo modem è collegato alla prima porta seriale, /dev/cuaa0, allora inserisci la riga seguente: cuaa0:dv=/dev/cuaa0:br#19200:pa=none Usa la frequenza di bps più alta supportata dal tuo modem per il valore di br. Poi, digita tip cuaa0 e verrai connesso al tuo modem. Se non c'è nessuna /dev/cuaa0 sul tuo sistema, fai questo: &prompt.root; cd /dev &prompt.root; sh MAKEDEV cuaa0 O usa cu come root con il seguente comando: &prompt.root; cu -llinea -s velocità linea è la porta seriale (es. /dev/cuaa0) e velocità è la velocità (es. 57600). Quando hai finito di inserire i comandi AT premi ~. per uscire. Il Simbolo <literal>@</literal> per il Valore pn Non Funziona! Il simbolo @ come valore del numero telefonico dice a tip di andare a cercare un numero telefonico in /etc/phones. Ma il segno @ è anche un carattere speciale nei file come /etc/remote. Devi farne l'escape con un backslash: pn=\@ Come Posso Chiamare Un Numero Telefonico Da Riga di Comando? Metti una cosiddetta voce generica in /etc/remote. Ad Esempio: tip115200|Chiama un qualunque numero a 115200 bps:\ :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du: tip57600|Chiama un qualunque numero a 57600 bps:\ :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du: Poi puoi fare una cosa simile: &prompt.root; tip -115200 5551234 Se preferisci cu a tip, usa una voce generica per cu: cu115200|Usa cu per chiamare un numero qualsiasi a 115200bps:\ :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du: e digita: &prompt.root; cu 5551234 -s 115200 Devo Digitare La Frequenza di bps Ogni Volta Che lo Faccio? Metti una voce per tip1200 o cu1200, ma vai avanti e inserisci una qualunque frequenza di bps appropriata per il valore di br. tip pensa che un buon valore predefinito sia 1200 bps, motivo per cui cerca una voce per tip1200. Non sei obbligato a usare 1200 bps, comunque. Accedo ad un Grande Numero di Host attraverso un Server di Terminali Invece di aspettare fino ad essere connesso e poi digitare CONNECT <host> ogni volta, usa la funzionalità cm di tip. Ad esempio, queste voci in /etc/remote: pain|pain.deep13.com|La macchina di Forrester:\ :cm=CONNECT pain\n:tc=deep13: muffin|muffin.deep13.com|La macchina di Frank:\ :cm=CONNECT muffin\n:tc=deep13: deep13:Server di terminali del Gizmonics Institute:\ :dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234: ti permetteranno di digitare tip pain o tip muffin per collegarti agli host pain o muffin, e tip deep13 per il server di terminali. Tip Può Provare Più di una Linea per ogni Sito? Questo è spesso un problema quando una università ha molte linee di modem e molte migliaia di studenti cercano di usarle. Inserisci una voce per la tua università in /etc/remote e usa @ per il campo pn: big-university:\ :pn=\@:tc=dialout dialout:\ :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none: Poi, elenca i numeri di telefono dell'università in /etc/phones: big-university 5551111 big-university 5551112 big-university 5551113 big-university 5551114 tip proverà ognuno di questi secondo l'ordine, poi smetterà. Se vuoi continuare a riprovare, esegui tip in un ciclo while. Perché Devo Premere <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>P</keycap> </keycombo> Due Volte per Inviare Un Solo <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>P</keycap> </keycombo>? Ctrl P è il carattere predefinito per forzare, usato per dire a tip che il prossimo carattere è un dato letterale. Puoi impostare il carattere per forzare a qualsiasi altro carattere con il comando di escape ~s, che significa imposta una variabile. Digita ~sforce=singolo-carattere seguito da un ritorno a capo. singolo-carattere è un qualsiasi carattere singolo. Se non date nessun singolo-carattere, allora il carattere per forzare sarà il carattere nullo, che è possibile ottenere premendo Ctrl 2 o Ctrl Spazio . Un valore abbastanza buono per il singolo-carattere è Shift Ctrl 6 , che è usato solo da alcuni server di terminali. Potete far sì che il carattere per forzare sia un qualsiasi carattere vogliate specificando la riga seguente nel file $HOME/.tiprc: force=<singolo-carattere> Improvvisamente Tutto Quello che Digito È in - MAIUSCOLO?? + Maiuscolo?? Devi aver premuto Ctrl A , il raise character, di tip progettato specificamente per le persone con il tasto caps-lock rotto. Usa ~s come mostrato prima per impostare la variabile raisechar a qualcosa di ragionevole. In pratica, puoi impostarla allo stesso valore del carattere per forzare, se pensi di non usare mai queste due caratteristiche. Qui c'è un file .tiprc di esempio per gli utenti Emacs che hanno bisogno di premere Ctrl 2 e Ctrl A molto spesso: force=^^ raisechar=^^ Il carattere ^^ è Shift Ctrl 6 . Come Posso Trasferire File con <command>tip</command>? - Se stai parlando ad altri sistemi Unix, puoi mandare e ricevere file - con ~p (put) e + Se stai parlando ad altri sistemi &unix;, puoi mandare e ricevere + file con ~p (put) e ~t (take). Questi comandi eseguono cat ed echo sul sistema remoto per accettare e inviare file. La sintassi è: ~p file-locale file-remoto ~t file-remoto file-locale non c'è controllo d'errore, quindi probabilmente dovresti usare un altro protocollo, come zmodem. Come Posso Eseguire zmodem con <command>tip</command>? Per ricevere file, avvia il programma di invio sul lato remoto. Poi, digita ~C rz per iniziare a ricevere in locale. Per inviare file, avvia il programma di ricezione sul lato remoto. Poi, digita ~C sz files per inviarli sul sistema remoto. Kazutaka YOKOTA Contributo di Bill Paul Basato su un documento di Impostazione della Console Seriale console seriale Introduzione FreeBSD ha la capacità di avviare un sistema con soltanto un terminale stupido su porta seriale come console. Una configurazione simile dovrebbe essere utile per due tipi di persone: amministratori di sistema che desiderano installare FreeBSD su macchine che non hanno tastiera o monitor connesso, e sviluppatori che vogliono effettuare il debug del kernel o dei driver. Come descritto nel , FreeBSD implementa un avviamento composto da tre stadi. I primi due stadi sono nel blocco di avvio che viene immagazzinato all'inizio della slice di FreeBSD sul disco d'avvio. Il blocco di avvio poi carica ed avvia il loader (/boot/loader) come terzo stadio. Per poter impostare la console seriale devi configurare il codice del blocco di avvio, il codice del loader ed il kernel. Configurazione della Console Seriale Preparazione di un cavo seriale. cavo null-modem Avrai bisogno di un cavo null-modem o di un cavo seriale standard ed un adattatore null-modem. Guarda per una discussione sui cavi seriali. Scollegamento della tastiera. La maggior parte dei sistemi PC verifica la presenza di una tastiera durante il Power-On Self-Test (POST) e dà un errore se la tastiera non viene rilevata. Alcune macchine si lamentano parecchio per la mancanza della tastiera e non proseguono l'avvio finché non viene collegata. Se il tuo computer si lamenta per questo errore, ma si avvia lo stesso, allora non devi fare nulla di speciale. (Alcune macchine con BIOS Phoenix semplicemente dicono Keyboard failed e continuano ad avviarsi normalmente). Se il tuo computer rifiuta di avviarsi senza la tastiera allora dovrai configurare il BIOS affinché ignori questo errore (se possibile). Consulta il manuale della tua scheda madre per maggiori dettagli su come fare ciò. Impostare la tastiera su Non installata nel setup del BIOS non significa che non potrai usare la tastiera. Tutto quel che fa è dire al BIOS di non verificare la presenza di una tastiera all'accensione, in modo che non segnali che la tastiera non è collegata. Puoi lasciare la tastiera collegata anche con questa opzione impostata a Non installata e la tastiera funzionerà lo stesso. - Se il tuo sistema ha un mouse PS/2, le possibilità di + Se il tuo sistema ha un mouse &ps2;, le possibilità di dover scollegare il mouse allo stesso modo della tastiera sono alte. - Questo perché i mouse PS/2 condividono dell'hardware + Questo perché i mouse &ps2; condividono dell'hardware con la tastiera e lasciando il mouse collegato potresti ingannare la verifica della tastiera facendogli credere che sia ancora presente. Si dice che il sistema Gateway 2000 Pentium 90 MHz con BIOS AMI funzioni così. In generale, questo non è un problema perché il mouse non è comunque particolarmente utile senza la tastiera. Collegamento di un terminale stupido alla COM1 (sio0). Se non possiedi un terminale stupido, puoi usare un vecchio PC/XT con un programma per modem, o la porta seriale di un - altra macchina Unix. Se non hai una COM1 + altra macchina &unix;. Se non hai una COM1 (sio0), trovane una. Attualmente, non c'è altro modo di scegliere una porta diversa dalla COM1 per i blocco di avvio senza doverlo ricompilare. Se stai già usando la COM1 per un altro dispositivo, dovrai rimuoverlo temporaneamente ed installare un nuovo blocco di avvio ed un nuovo kernel una volta che FreeBSD sia funzionante. (Si assume che la COM1 sia sempre disponibile su un server di file/calcolo/terminali; se davvero hai bisogno della COM1 per qualcos'altro (e non puoi passare quel qualcosa alla COM2 (sio1)), allora probabilmente non dovresti nemmeno avere a che fare con tutto questo in primo luogo). Assicurati che il file di configurazione del tuo kernel abbia i parametri appropriati impostati per la COM1 (sio0). I parametri rilevanti sono: 0x10 Abilita il supporto alla console per questa unità. Gli altri parametri di console sono ignorati se non è fissato questo. Attualmente, al massimo un'unità può avere il supporto alla console; verrà preferita la prima (secondo l'ordine nel file di configurazione) con questo parametro. Questa opzione non renderà la porta seriale la console. Imposta il parametro seguente o usa l'opzione descritta più in basso, insieme a questa impostazione. 0x20 Forza questa unità ad essere la console (a meno che sia presente un'altra console con priorità più alta), trascurando l'opzione discussa precedentemente. Questo parametro rimpiazza l'opzione COMCONSOLE in FreeBSD versione 2.X. Il parametro 0x20 deve essere usato insieme al . 0x40 Riserva questa unità (insieme a 0x10) e rende l'unità indisponibile per l'accesso normale. Non dovresti impostare questo parametro sull'unità della porta seriale che desideri usare come console seriale. L'unico uso di questo parametro è per designare l'unità per il debug remoto del kernel. Guarda il Developer's Handbook per maggiori informazioni sul debugging remoto. In FreeBSD 4.0 o successivo, la semantica del parametro 0x40 è leggermente differente e c'è un altro parametro per specificare una porta seriale per il debug remoto. Esempio: device sio0 at isa? port IO_COM1 flags 0x10 irq 4 Guarda la pagina man &man.sio.4; per maggiori dettagli. Se i parametri non sono stati impostati, sarà necessario eseguire UserConfig (su una console differente) o ricompilare il kernel. Creazione di boot.config nella directory radice della partizione a nel disco di avvio. Questo file istruirà il codice del blocco di avvio su come vuoi avviare il sistema. Per poter attivare la console seriale, avrai bisogno di una o più delle seguenti opzioni—se vuoi opzioni multiple, includile tutte sulla stessa linea: Passa dalla console interna a quella seriale. Puoi usarla per cambiare i dispositivi console. Ad esempio, se avvii dalla console interna (video), puoi usare per dirigere il loader ed il kernel in modo che usino la porta seriale come dispositivo per la console. Alternativamente, se avvii da porta seriale, puoi usare l'opzione per dire al loader ed al kernel di usare lo schermo come console. Passa da una configurazione singola a una duplice. Nella configurazione singola la console sarà o quella interna (il display video) o la porta seriale, a seconda dello stato dell'opzione già descritta. Nella configurazione duplice, sia il display video che la porta seriale diventeranno la console allo stesso momento, senza curarsi dello stato dell'opzione . Ad ogni modo, nota che questa configurazione duplice ha effetto solo durante l'esecuzione del blocco di avvio. Una volta che il loader ha assunto il controllo, la console specificata da diventa l'unica. Fa sì che il blocco di avvio verifichi la presenza della tastiera. Se non ne viene rilevata nessuna, le opzioni e vengono impostate automaticamente. A causa delle costrizioni relative allo spazio nelle versioni attuali del blocco di avvio, l'opzione è in grado di riconoscere solo le tastiere estese. Le tastiere con meno di 101 tasti (e senza i tasti F11 e F12) potrebbero non essere rilevate. Le tastiere su alcuni computer portatili potrebbero non essere rilevate a causa di questa limitazione. Se questo è il caso del tuo sistema, devi abbandonare l'opzione . Sfortunatamente non c'è nessun metodo per aggirare questo problema. Usa l'opzione per selezionare la console automaticamente, o l'opzione per attivare la console seriale. Puoi includere altre opzioni come descritte in &man.boot.8;. Le opzioni, eccetto , verranno passate al loader (/boot/loader). Il loader determinerà quale tra il video interno o la console seriale debba diventare la console esaminando lo stato dell'opzione . Ciò significa che se specifichi l'opzione ma non la in /boot.config, puoi usare la porta seriale come console soltanto durante l'esecuzione del blocco di avvio; il loader userà il video interno come console. Avviamento della macchina. Quando avvii la tua macchina FreeBSD, il blocco di avvio scriverà il contenuto di /boot.config sulla console. Ad esempio: /boot.config: -P Keyboard: no La seconda linea appare solo se metti l'opzione in /boot.config ed indichi la presenza/assenza della tastiera. Questo messaggio va alla console seriale o a quella interna, o a entrambe, a seconda dell'opzione in /boot.config. Opzioni I messaggi vanno a nessuna console interna console seriale console seriale ed interna console seriale ed interna , tastiera presente console interna , tastiera assente console seriale Dopo i messaggi precedenti, ci sarà una piccola pausa prima che il blocco di avvio continui nel caricamento del loader e prima che ulteriori messaggi vengano scritti sulla console. In circostanze normali, non hai necessità di interrompere il blocco di avvio, ma potresti volerlo fare per verificare che tutto sia impostato correttamente. Premi un tasto qualsiasi, differente da Invio, alla console per interrompere il processo di avvio. Il blocco di avvio aspetterà ulteriori azioni. Dovresti vedere qualcosa del genere: >> FreeBSD/i386 BOOT -Default: 0:wd(0,a)/boot/loader +Default: 0:ad(0,a)/boot/loader boot: Verifica se il messaggio precedente appare sulla console seriale o su quella interna o su entrambe, secondo le opzioni poste in /boot.config. Se il messaggio appare nella console corretta, premi Invio per continuare il processo di avvio. Se vuoi la console seriale ma non riesci a vedere il prompt sul terminale seriale, qualcosa è sbagliato nelle tue impostazioni. Nel frattempo, scrivi e premi Invio (se possibile) per dire al blocco di avvio (e al loader e al kernel) di scegliere la porta seriale per la console. Una volta che il sistema è attivo, torna indietro e verifica cosa è andato storto. Dopo che il loader è stato caricato e ti trovi nel terzo stadio del processo di avvio puoi ancora passare dalla console interna alla console seriale impostando le variabili d'ambiente appropriate nel loader. Guarda la . Sommario Qui c'è il sommario delle varie impostazioni discusse in questa sezione e la console eventualmente selezionata. - Caso 1: Imposti il flag 0x10 per + <title>Caso 1: Imposti il Flag 0x10 per <devicename>sio0</devicename> device sio0 at isa? port IO_COM1 flags 0x10 irq 4 Opzioni in /boot.config Console durante i blocco di avvio Console durante il loader Console nel kernel niente interna interna interna seriale seriale seriale seriale ed interna interna interna seriale ed interna seriale seriale , tastiera presente interna interna interna , tastiera assente seriale ed interna seriale seriale - Caso 2: Imposti il flag 0x30 per sio0 + Caso 2: Imposti il Flag 0x30 per sio0 device sio0 at isa? port IO_COM1 flags 0x30 irq 4 Opzioni in /boot.config Console durante i blocco di avvio Console durante il loader Console nel kernel niente interna interna seriale seriale seriale seriale seriale ed interna interna seriale seriale ed interna seriale seriale , tastiera presente interna interna seriale , tastiera assente seriale ed interna seriale seriale Consigli per una Console Seriale Impostazione di una Velocità Maggiore della Porta Seriale Di default, le impostazioni della porta seriale sono: 9600 baud, 8 bit, nessuna parità, ed 1 bit di stop. Se desideri cambiare la velocità, avrai bisogno di ricompilare almeno il blocco di avvio. Aggiungi la linea seguente a /etc/make.conf e compila il nuovo blocco di avvio: BOOT_COMCONSOLE_SPEED=19200 Se la console seriale è configurata in qualche altra maniera invece di essere selezionata all'avvio con , o se la console seriale usata dal kernel è differente da quella usata dal blocco di avvio, allora dovrai aggiungere anche le opzioni seguenti al file di configurazione del kernel e compilare un nuovo kernel: options CONSPEED=19200 Utilizzo di una Porta Seriale Differente da <devicename>sio0</devicename> per la Console Usare una porta seriale differente da sio0 come console richiede un po' di ricompilazione. Se vuoi usare un'altra porta seriale per qualche motivo, ricompila il blocco di avvio, il loader ed il kernel come segue. Ottieni i sorgenti del kernel. (Guarda il ) Modifica /etc/make.conf e imposta BOOT_COMCONSOLE_PORT all'indirizzo della porta che vuoi usare (0x3F8, 0x2F8, 0x3E8 o 0x2E8). Solo i dispositivi da sio0 a sio3 (COM1 a COM4) possono essere usati; le schede seriali multiporta non funzioneranno. Non sono necessarie impostazioni per gli interrupt. Crea un file di configurazione del kernel personalizzato e aggiungi i flag appropriati per la porta seriale che intendi usare. Ad esempio, se vuoi fare di sio1 (COM2) la console: device sio1 at isa? port IO_COM2 flags 0x10 irq 3 o device sio1 at isa? port IO_COM2 flags 0x30 irq 3 I flag di console per le altre porte seriali non dovrebbero essere impostati. Ricompila ed installa il blocco di avvio ed il loader: &prompt.root; cd /sys/boot &prompt.root; make &prompt.root; make install Ricompila ed installa il kernel. Scrivi il blocco di avvio sul disco di avvio con &man.disklabel.8; ed avvia con il nuovo kernel. Accesso al Debugger DDB dalla Linea Seriale Se desideri entrare nel debugger del kernel dalla console seriale (utile per diagnostiche remote, ma anche molto pericoloso se generi un BREAK spurio sulla porta seriale!) allora dovrai compilare il tuo kernel con le opzioni seguenti: options BREAK_TO_DEBUGGER options DDB Come Ottenere un Prompt di Login sulla Console Seriale Anche se questo non è necessario, potresti desiderare un prompt di login sulla linea seriale, ora che puoi vedere i messaggi di avvio e puoi accedere a sessioni di debug del kernel attraverso la console seriale. Qui è spiegato come fare. Apri il file /etc/ttys con un editor e trova queste linee: ttyd0 "/usr/libexec/getty std.9600" unknown off secure ttyd1 "/usr/libexec/getty std.9600" unknown off secure ttyd2 "/usr/libexec/getty std.9600" unknown off secure ttyd3 "/usr/libexec/getty std.9600" unknown off secure I dispositivi da ttyd0 a ttyd3 corrispondono a COM1 fino a COM4. Cambia off a on per la porta desiderata. Se hai cambiato la velocità della porta seriale, dovrai cambiare std.9600 affinché corrisponda all'impostazione corrente, ad es. std.19200. Potresti anche desiderare cambiare il tipo di terminale da unknown al tipo effettivo del tuo terminale seriale. Dopo avere modificato il file, devi dare un kill -HUP 1 affinché i cambiamenti abbiano effetto. Cambiamento della Console dal Loader Le sezioni precedenti hanno descritto come impostare la console seriale lavorando sul blocco di avvio. Questa sezione mostra come specificare a console inserendo alcuni comandi ed alcune variabili di ambiente nel loader. Quando il loader verrà invocato al terzo stadio del processo di avvio, dopo il blocco di avvio, le impostazioni nel loader prenderanno il posto di quelle nel blocco di avvio. Impostazione della Console Seriale Puoi facilmente specificare al loader ed al kernel di usare la console seriale scrivendo una sola riga in /boot/loader.rc: set console=comconsole Ciò sarà efficace in ogni caso, qualunque siano le impostazioni nel blocco di avvio discusse nella sezione precedente. Sarebbe meglio mettere la linea precedente come prima linea di /boot/loader.rc in modo da vedere i messaggi sulla console seriale il prima possibile. Altrimenti, puoi specificare la console interna come: set console=vidconsole Se non imposti la variabile di ambiente console del loader, quest'ultimo, e conseguentemente anche il kernel, useranno una console qualunque indicata dall'opzione nel blocco di avvio. Nelle versioni 3.2 o successive, è possibile specificare la console in /boot/loader.conf.local o /boot/loader.conf, piuttosto che in /boot/loader.rc. Con questo metodo il tuo /boot/loader.rc dovrebbe apparire così: include /boot/loader.4th start Poi, crea /boot/loader.conf.local ed aggiungi lì la linea seguente. console=comconsole o console=vidconsole Guarda &man.loader.conf.5; per maggiori informazioni. Al momento il loader non ha un'opzione equivalente alla del blocco di avvio, e non c'è possibilità di scegliere automaticamente la console interna e la console seriale basandosi sulla presenza di una tastiera. Utilizzo di una Porta Seriale Diversa da <devicename>sio0</devicename> per la Console Sarà necessario ricompilare il loader per usare una porta seriale differente da sio0 per la console seriale. Segui la procedura descritta nella . Avvertimento L'idea di tutto questo è di permettere alla gente di mettere su server dedicati che non abbiano bisogno di hardware grafico o di tastiere. Sfortunatamente, mentre la maggior parte dei sistemi ti permetteranno di avviare senza tastiera, ce ne sono alcuni che non ti permetteranno di partire senza un adattatore grafico. Le macchine con BIOS AMI possono essere configurate per partire senza adattatori grafici cambiando semplicemente il valore di graphics adapter nella configurazione CMOS a Not installed. Ad ogni modo, molte macchine non supportano questa opzione e si rifiuteranno di avviarsi se non si ha hardware grafico nel sistema. Con queste macchine, avrai bisogno di lasciare un qualche tipo di scheda grafica attaccata, (anche una scheda monocromatica di recupero) sebbene non avrai necessità di collegare un monitor. Potresti anche tentare di installare un BIOS AMI. diff --git a/it_IT.ISO8859-15/books/handbook/vinum/chapter.sgml b/it_IT.ISO8859-15/books/handbook/vinum/chapter.sgml index 1f47313307..14596aa8e0 100644 --- a/it_IT.ISO8859-15/books/handbook/vinum/chapter.sgml +++ b/it_IT.ISO8859-15/books/handbook/vinum/chapter.sgml @@ -1,1023 +1,1140 @@ Il Gestore di Volumi Vinum Sinossi Qualunque siano i dischi che hai, ci saranno sempre delle limitazioni: Potrebbero essere troppo piccoli. Potrebbero essere troppo lenti. Potrebbero essere troppo inaffidabili. Greg Lehey Originariamente scritto da Dischi Troppo Piccoli Vinum RAID Software Vinum è un Volume Manager, ovvero un driver virtuale di disco che si occupa dei tre problemi indicati nella sinossi. Diamo un'occhiata in dettaglio a questi problemi, per cui sono state proposte e implementate varie soluzioni. I dischi stanno diventando sempre più grandi, ma questo è vero anche le necessità di spazio per i dati. Spesso sentirai il bisogno di avere un file system più grande dei dischi che possiedi. Effettivamente questo problema non è così grave come lo era dieci anni fa, ma è sempre presente. Alcuni sistemi risolvono la questione creando un dispositivo astratto che ripartisce i suoi dati su vari dischi. Colli di Bottiglia nell'Accesso I moderni sistemi hanno frequentemente la necessità di accedere ai dati in modo concorrente. Ad esempio, un grande server FTP o HTTP può avere migliaia di sessioni concorrenti e molteplici connessioni da 100 Mbit/s verso il mondo esterno, ben oltre il transfer rate (velocità di trasferimento) che la maggior parte dei dischi può sostenere. I dischi odierni possono trasferire sequenzialmente dati fino a 70 MB/s, ma questo valore ha poca importanza in un ambiente dove molti processi indipendenti accedono al disco, in quanto raggiungerebbero solo una frazione di quella velocità. In questi casi è più interessante vedere il problema dal punto di vista del sottosistema dischi: il parametro importante è il carico che il trasferimento pone sul sottosistema, in altre parole il tempo per cui il trasferimento occupa i dischi necessari per lo stesso. In ogni trasferimento da disco il drive deve prima posizionare le testine, poi aspettare che il primo settore passi sotto la testina di lettura e solo dopo può effettuare il trasferimento. Queste azioni possono essere considerate atomiche: non ha alcun senso interromperle. Considera un tipico trasferimento di circa 10 kB: l'attuale generazione di dischi ad alte prestazioni può posizionare le testine in circa 3,5 ms. I dischi più veloci ruotano a 15.000 rpm, quindi la latenza media rotazionale (mezzo giro) è di 2 ms. A 70 MB/s, il trasferimento in sé occupa circa 150 μs, quasi nulla in confronto al tempo di posizionamento. In questo caso il transfer rate effettivo può scendere fino a poco oltre 1 MB/s e questo è charamente molto dipendente dalla dimensione del trasferimento. La tradizionale e ovvia soluzione a questo collo di bottiglia è più assi: invece di usare un grande disco si usano molti piccoli dischi con la stessa dimensione totale. Ogni disco è capace di posizionarsi e trasferire dati indipendentemente quindi la velocità effettiva aumenta di un fattore vicino al numero di dischi usati. L'esatto fattore di miglioramento è, ovviamente, più piccolo del numero di dischi: benché ogni disco sia capace di trasferire in parallelo non c'è modo di assicurare che le richieste siano distribuite uniformemente tra tutti i dischi. Inevitabilmente il carico su uno dei dischi è più alto che sugli altri. concatenazione dei dischi Vinum concatenazione L'uniformità della distribuzione del carico sui dischi è fortemente dipendente dal modo in cui i dati sono condivisi tra i dischi stessi. Nella seguente discussione è conveniente pensare allo spazio di immagazzinamento come se fosse diviso in un gran numero di settori identificati da un indirizzo numerico, come pagine in un libro. Il metodo più ovvio è di dividere il disco virtuale in gruppi di settori consecutivi della dimensione dei dischi fisici e immagazzinarli in questa maniera, come strappare un grosso libro in piccole sezioni. Questo metodo è chiamato concatenazione e ha il vantaggio di non avere particolari richieste sulla dimensione degli specifici dischi. Funziona bene quando l'accesso al disco virtuale è ben ripartito tra tutto il suo spazio di indirizzamento. Quando l'accesso è concentrato in una piccola area il miglioramento è meno marcato. La illustra la sequenza in cui le unità di immagazzinamento sono allocate nell'organizzazione concatenata.
Organizzazione Concatenata
striping dei dischi Vinum striping RAID livello 0 RAID-0 Un metodo alternativo è dividere lo spazio in più piccole componenti di egual dimensione e immagazzinarle sequenzialente su differenti dispositivi. Per esempio i primi 256 settori potrebbero essere immagazzinati sul primo disco, i seguenti 256 settori sul disco seguente e così via. Dopo aver immagazzinato i dati sull'ultimo disco il processo si ripete finché i dischi non sono pieni. Questo mappamento è chiamato striping (letteralmente "a bande") o RAID-0 RAID RAID significa Redundant Array of Inexpensive Disks (insieme ridondante di dischi non costosi) e offre varie forme di tolleranza ai problemi. Nel caso del - RAID-0 il termine č leggermente fuorviante: in - effetti non dà alcuna ridondanza. + RAID-0 il termine è leggermente fuorviante: + in effetti non dà alcuna ridondanza. . Lo striping richiede qualche sforzo aggiuntivo per localizzare i dati e può causare carico di I/O aggiuntivo quando il trasferimento è distribuito tra vari dischi, ma aiuta il carico a essere ben distribuito tra i vari dischi. La illustra la sequenza in cui i blocchi di dati sono allocati nell'organizzazione in striping.
Organizzazione in Striping
Integrità dei Dati L'ultimo problema dei dischi attuali è che sono inaffidabili. Benché la loro affidabilità sia aumentata tremendamente durante gli ultimi anni sono tuttora il componente di un server che ha la maggior probabilità di rompersi. Quando succede i risultati possono essere catastrofici: rimpiazzare un disco rotto e riempirlo dei dati originari può richiedere giorni. mirroring dei dischi Vinum mirroring RAID livello 1 RAID-1 Il metodo tradizionale per affrontare questo problema si chiama mirroring (letteralmente "specchiatura") e consiste nel tenere due copie dei dati su hardware fisici differenti. Con l'avvento dei livelli RAID questa tecnica è stata chiamata RAID di livello 1 o RAID-1. Ogni scrittura su disco scrive in entrambe le locazioni; una lettura può essere soddisfatta da entrambi quindi se un disco si rompe i dati sono sempre disponibili sull'altro disco. Il mirroring ha due problemi: Il prezzo. Richiede il doppio dello spazio di immagazzinamento delle soluzioni non ridondanti. L'impatto sulle prestazioni. La scrittura deve essere compiuta su entrambi i dischi quindi la banda occupata raddoppia. Le letture non soffrono di problemi sulle prestazioni: possono perfino essere più veloci. Vinum striping con parità RAID livello 5 RAID-5 Una soluzione alternativa è la parità, implementata nel RAID di livello 2, 3, 4 e 5. Di questi, il RAID-5 è il più interessante. La sua implementazione in Vinum è una variante dell'organizzazione in striping che dedica un blocco di ogni banda alla parità degli altri blocchi. Per come è implementato in Vinum, ogni blocco RAID-5 è simile a un blocco in striping, con la differenza che implementa il RAID-5 includendo un blocco di parità per ogni banda. Come richiesto dal RAID-5 la locazione di questi blocchi di parità cambia da ogni banda alla successiva. I numeri nei blocchi dati indicano il numero dei blocchi relativi.
Organizzazione RAID-5
Comparandolo al mirroring, il RAID-5 ha il vantaggio di richiedere molto meno spazio di immagazzinamento. La velocità di lettura è simile all'organizzazione in striping, ma in scrittura l'accesso è significativamente più lento, circa il 25% della performance di lettura. Se uno dei dischi si rompe l'aggregato continua a lavorare con performance peggiorate: la lettura da uno dei dischi rimanenti continua normalmente, ma la lettura dal disco rotto è ricalcolata dai corrispondenti blocchi dei dischi rimanenti.
Oggetti Vinum Per risolvere questi problemi Vinum implementa una categoria di oggetti a quattro livelli: L'oggetto più visibile è il disco virtuale, chiamato volume. I volumi hanno essenzialmente - le stesse proprietà di un disco UNIX™, benché ci + le stesse proprietà di un disco &unix;, benché ci sia qualche differenza minore. Non hanno limiti di dimensione. I volumi sono composti da plex, ognuno dei quali rappresenta il completo spazio di indirizzamento del volume. È quindi questo il livello della gerarchia che gestisce la ridondanza dei dati. Pensa ai plex come a singoli dischi collegati tra loro in mirroring, ognuno contenete gli stessi dati. - Dato che Vinum vive all'interno del framework UNIX™ di + Dato che Vinum vive all'interno del framework &unix; di immagazzinamento dei dati sarebbe possibile utilizzare le partizioni - UNIX™ come blocchi basilari per costruire i plex multidisco, - ma questo approccio sarebbe in effetti troppo poco flessibile: i - dischi UNIX™ possono avere solo un limitato numero di - partizioni; al contrario Vinum suddivide le singole partizioni - UNIX™ (drive, ovvero dischi) in aree - contigue chiamate subdisks (sottodischi), che - solo a loro volta utilizzati come elementi per costruire i - plex. + &unix; come blocchi basilari per costruire i plex multidisco, ma + questo approccio sarebbe in effetti troppo poco flessibile: i dischi + &unix; possono avere solo un limitato numero di partizioni; al + contrario Vinum suddivide le singole partizioni &unix; + (drive, ovvero dischi) in aree contigue chiamate + subdisks (sottodischi), che solo a loro volta + utilizzati come elementi per costruire i plex. I sottodischi risiedono su drive Vinum, che - attualmente sono partizioni UNIX™. I drive Vinum possono + attualmente sono partizioni &unix;. I drive Vinum possono contenere qualsiasi quantità di sottodischi. Con l'eccezione di una piccola area all'inizio del drive, che è usata per immagazzinare informazioni sulla configurazione e sullo stato, l'intero drive è disponibile per l'ìimmagazzinamento dei dati. La sezione seguente descrive come gli oggetti sopra discussi possano dare le funzionalità richieste. Considerazioni sulle Dimensioni dei Volumi I plex possono contenere molteplici sottodischi distribuiti tra tutti i drive presenti nella configurazione di Vinum, questo permette alla dimensione dei plex, e quindi anche dei volumi, di non essere limitata dalla dimensione dei singoli dischi. Immagazzinamento Ridondante dei Dati Vinum implementa il mirroring collegando più plex allo stesso volume, ogni plex contiene la rappresentazione di tutti i dati del volume. Un volume può contenere da uno ad otto plex. Nonostante un plex rappresenti i dati di un volume per intero, è possibile che parti di questa rappresentazione vengano a mancare o per scelta (non definendo dei sottodischi per alcune parti del plex) o per accidente (come risultato della rottura del disco che le conteneva). Finché almeno un plex contiene i dati di tutto lo spazio d'indirizzamento del volume, il volume stesso è completamente funzionale. Considerazioni sulle Prestazioni Vinum implementa sia la concatenazione che lo striping al livello di plex: Un plex concatenato usea lo spazio di indirizzamento di ogni sottodisco a turno. Un plex in striping suddivide i dati tra ogni sottodisco. I sottodischi devono tutti avere la stessa dimensione e devono essere presenti almeno due sottodischi perché esista differenza da un plex concatenato. Quale Organizzazione per i Plex? La versione di Vinum distribuita con FreeBSD &rel.current; implementa due tipi di plex: I plex concatenati, che sono i più flessibili: possono contenere qualsiasi numero di sottodischi e questi possono avere qualsiasi dimensione. Il plex può essere esteso aggiungendo sottodischi. Richiede meno tempo di CPU di un plex in striping, benché la differenza in carico di CPU non sia misurabile. D'altro canto sono più suscettibili agli hot spot (letteralmente zona calda): casi in cui un disco è molto attivo mentre gli altri sono fermi. Il più grande vantaggio dei plex in striping (RAID-0) è la loro capacità di ridurre gli hot spot: scegliendo una dimensione di striping ottimale (circa 256 kB) si può ridistribuire il carico sui drive. Gli svantaggi di questo approccio sono codice più complesso e restrizioni sui sottodischi: devono essere tutti della stessa dimensione, inoltre estendere il plex aggiungendo sottodischi è così complicato che attualmente Vinum non lo implementa. Vinum aggiunge anche un'ulteriore restrizione elementare: un plex in striping deve contenere almeno due sottodischi, dato che sarebbe altrimenti indistinguibile da un plex concatenato. La riassume vantaggi e svantaggi di ogni tipo di organizzazione dei plex. Organizzazione dei Plex Vinum Tipo di plex Sottodischi minimi Sottodischi aggiungibili Dimensioni forzatamente uguali Applicazione concatenato 1 no Immagazzinamento di grandi moli di dati con la massima flessibilità e prestazioni moderate striping 2 no Alte prestazioni in casi di accessi altamente concorrenti
Alcuni Esempi Vinum mantiene un database della configurazione che descrive gli oggetti del sistema conosciuti. Inizialmente l'utente crea il database della configurazione da uno o più file di configurazione, con l'aiuto del programma &man.vinum.8;. Vinum immagazzina una copia del database di configurazione in ogni slice del disco (che Vinum chiama device, ovvero dispositivo) sotto il suo controllo. Questo database è aggiornato a ogni cambi di stato in modo che un riavvio possa recuperare accuratamente lo stato di ogni oggetto Vinum. Il File di Configurazione Il file di configurazione descrive singoli oggetti Vinum. La definizione di un semplice volume potrebbe essere: drive a device /dev/da3h volume myvol plex org concat sd length 512m drive a Questo file descrive quattro oggetti Vinum: La linea drive descrive la partizione del disco (drive) e la sua locazione relativa all'hardware sottostante. Gli viene assegnato il nome simbolico a. Questa separazione dei nomi simbolici dai nomi di dispositivo permette di muovere i dischi da una locazione ad un'altra senza confusione. La linea volume descrive un volume. L'unico attributo richiesto è il nome, in questo caso myvol. La linea plex definisce un plex. L'unico parametro richiesto è il tipo di organizzazione, in questo caso concat. Non è necessario un nome: il sistema genera un nome automaticamente a partire dal nome del volume, aggiungendo un suffisso .px, dove x indica il numero del plex nel volume. Il plex verrà quindi chiamato myvol.p0. La linea sd descrive un sottodisco. Le spefiche minime sono il nome del drive su cui immagazzinarlo e la lunghezza del sottodisco. Come per i plex non è necessario un nome: il sistema assegna automaticamente nomi derivati dal nome del plex, agigungendo il suffisso .sx, dove x indica il numero del sottdisco nel plex, quindi Vinum darà a questo sottodisco il nome di myvol.p0.s0. Dopo aver elaborato questo file, &man.vinum.8; produce il seguente output: &prompt.root; vinum -> create config1 Configuration summary Drives: 1 (4 configured) Volumes: 1 (4 configured) Plexes: 1 (8 configured) Subdisks: 1 (16 configured) D a State: up Device /dev/da3h Avail: 2061/2573 MB (80%) V myvol State: up Plexes: 1 Size: 512 MB P myvol.p0 C State: up Subdisks: 1 Size: 512 MB S myvol.p0.s0 State: up PO: 0 B Size: 512 MB Questo output mostra il formato di elenco breve di &man.vinum.8;, che è rappresentato graficamente nella .
Un Semplice Volume Vinum
Questa figura e quelle che seguono rappresentano un volume contenente dei plex che a loro volta contengono dei sottodischi. In questo semplice esempio il volume contiene un plex e il plex contiene un sottodisco. Questo particolare volume non ha specifici vantaggi su una convenzionale partizione di disco. Contiene un singolo plex, quindi non è ridondante. Il plex contiene un solo sottodisco, quindi non c'è differenza nell'immagazzinamento dei dati. Le sezioni seguenti mostrano vari metodi di configurazione più interessanti.
Aumentare la Resistenza alle Rotture: il Mirroring Il mirroring può aumentare, in un volume, la resistenza alle rotture. Quando si definisce un volume in mirroring è importante assicurarsi che i sottodischi di ogni plex siano su dischi differenti, in modo che la rottura di un drive non blocchi entrambi i plex. La seguente configurazione mostra un volume in mirroring: drive b device /dev/da4h volume mirror plex org concat sd length 512m drive a plex org concat sd length 512m drive b In questo esempio non è necessario specificare nuovamente la definizione del drivea, dato che Vinum mantiene traccia di tutti gli oggetti nel suo database di configurazione. Dopo aver elaborato questa definizione, la configurazione appare così: Drives: 2 (4 configured) Volumes: 2 (4 configured) Plexes: 3 (8 configured) Subdisks: 3 (16 configured) D a State: up Device /dev/da3h Avail: 1549/2573 MB (60%) D b State: up Device /dev/da4h Avail: 2061/2573 MB (80%) V myvol State: up Plexes: 1 Size: 512 MB V mirror State: up Plexes: 2 Size: 512 MB P myvol.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB S myvol.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB mostra la struttura graficamente.
Un Volume Vinum in Mirroring
In questo esempio ogni plex contiene l'intero spazio di indirizzamento di 512 MB. Come nel precedente esempio ogni plex contiene un solo sottodisco.
Ottimizzazione delle Prestazioni Il volume in mirroring dell'esempio precedente è più resistente alle rotture di un volume non in mirroring, ma le sue prestazioni sono inferiori: ogni scrittura sul volume richiede una scrittura su ognuno dei drive, utilizzando quindi una maggior frazione della banda passante totale dei dischi. Considerazioni sulle prestazioni portano ad un differente approccio: al posto del mirroring, i dati vengono posti su più dischi possibile utilizzando lo striping. La seguente configruazione mostra un volume con un plex in striping su quattro dischi: drive c device /dev/da5h drive d device /dev/da6h volume stripe plex org striped 512k sd length 128m drive a sd length 128m drive b sd length 128m drive c sd length 128m drive d Come prima non è necessario definire i drive che Vinum già conosce. Dopo aver elaborato queste definizioni la configurazione appare così: Drives: 4 (4 configured) Volumes: 3 (4 configured) Plexes: 4 (8 configured) Subdisks: 7 (16 configured) D a State: up Device /dev/da3h Avail: 1421/2573 MB (55%) D b State: up Device /dev/da4h Avail: 1933/2573 MB (75%) D c State: up Device /dev/da5h Avail: 2445/2573 MB (95%) D d State: up Device /dev/da6h Avail: 2445/2573 MB (95%) V myvol State: up Plexes: 1 Size: 512 MB V mirror State: up Plexes: 2 Size: 512 MB V striped State: up Plexes: 1 Size: 512 MB P myvol.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB P striped.p1 State: up Subdisks: 1 Size: 512 MB S myvol.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB S striped.p0.s0 State: up PO: 0 B Size: 128 MB S striped.p0.s1 State: up PO: 512 kB Size: 128 MB S striped.p0.s2 State: up PO: 1024 kB Size: 128 MB S striped.p0.s3 State: up PO: 1536 kB Size: 128 MB
Un Volume Vinum in Striping
Questo volume è rappresentato nella . L'intensità delle strisce indica la posizione all'interno dello spazio di inidirizzamento del plex: le più chiare all'inizio, le più scure alla fine.
Resistenza alle Rotture e Prestazioni Con hardware a sufficenza è possibile creare volumi con miglioramenti sia nella resistenza alle rotture che nelle prestazioni, comparati alle normali partizioni - UNIX™. Una tipica configurazione potrebbe essere: + &unix;. Una tipica configurazione potrebbe essere: volume raid10 plex org striped 512k sd length 102480k drive a sd length 102480k drive b sd length 102480k drive c sd length 102480k drive d sd length 102480k drive e plex org striped 512k sd length 102480k drive c sd length 102480k drive d sd length 102480k drive e sd length 102480k drive a sd length 102480k drive b I sottodischi del secondo plex sono spostati di due posti rispetto a quelli del primo plex: questo aumenta le probabilità che le scritture non utilizzino lo stesso sottodisco anche in caso che un trasferimento utilizzi entrambi i drive. La rappresenta la struttura di questo volume.
Un Volume Vinum in Mirroring e Striping
Nomenclatura degli Oggetti Come descritto sopra, Vinum assegna nomi di default a plex e sottodischi, benché questi possano essere cambiati. Cambiare il nome di default non è raccomandato: l'esperienza con il VERITAS volume manager, che permette la nomenclatura arbitraria degli oggetti, ha mostrato che questa flessibilità non porta vantaggi significativi e può causare confusione. I nomi possono contenere ogni carattere non blank (i caratteri di spazio, tabulazione, cambio riga) ma è consigliato limitarsi a lettere, cifre e il carattere di underscore (il carattere di sottolineatura). I nomi di volumi, plex e sottodischi possono essere lunghi fino a 64 caratteri, i nomi di drive invece hanno un massimo di 32 caratteri. /dev/vinum I nomi assegnati agli oggetti Vinum sono nella gerarchia /dev/vinum. La configurazione di Vinum mostrata sopra creerebbe i seguenti dispositivi: I dispositivi di controllo /dev/vinum/control e /dev/vinum/controld, utilizzati rispettivamente da &man.vinum.8; e dal demone Vinum. Voci di dispositivi a blocchi e a caratteri per ogni volume. Questi sono i principali dispositivi utilizzati da Vinum. I dispositivi a blocchi hanno il nome dei relativi volumi, quelli a caratteri, seguendo la tradizione BSD, hanno una lettera r all'inizio del nome. Quindi la configurazione vista sopra genererebbe i dispositivi a blocchi /dev/vinum/myvol, /dev/vinum/mirror, /dev/vinum/striped, /dev/vinum/raid5 e /dev/vinum/raid10, e i dispositivi a caratteri /dev/vinum/rmyvol, /dev/vinum/rmirror, /dev/vinum/rstriped, /dev/vinum/rraid5 e /dev/vinum/rraid10. In questo c'è un ovvio problema: è possibile avere due volumi chiamati r e rr che avrebbero un conflitto nel creare il nodo /dev/vinum/rr: sarebbe il dispositivo a caratteri per il volume r o il dispositivo a blocchi per il volume rr? Attualmente Vinum non si interessa di questo conflitto: il volume definito per primo prende il nome. Una directory /dev/vinum/drive con voci per ogni disco. Queste voci sono in effetti dei collegamenti simbolici ai rispettivi nodi di disco. Una directory /dev/vinum/volume con voci per ogni volume. Contiene sottodirectory per ogni plex, che a loro volta contengono sottodirectory per ogni sottodisco. Le directory /dev/vinum/plex, /dev/vinum/sd e /dev/vinum/rsd contengono i dispositivi a blocchi per ogni plex, dispositivo a blocchi e dispositivo a caratteri per ogni sottodisco rispettivamente. Ad esempio, considera il seguente file di configurazione: drive drive1 device /dev/sd1h drive drive2 device /dev/sd2h drive drive3 device /dev/sd3h drive drive4 device /dev/sd4h volume s64 setupstate plex org striped 64k sd length 100m drive drive1 sd length 100m drive drive2 sd length 100m drive drive3 sd length 100m drive drive4 Dopo aver elaborato questo file, &man.vinum.8; crea la seguente struttura in /dev/vinum: brwx------ 1 root wheel 25, 0x40000001 Apr 13 16:46 Control brwx------ 1 root wheel 25, 0x40000002 Apr 13 16:46 control brwx------ 1 root wheel 25, 0x40000000 Apr 13 16:46 controld drwxr-xr-x 2 root wheel 512 Apr 13 16:46 drive drwxr-xr-x 2 root wheel 512 Apr 13 16:46 plex crwxr-xr-- 1 root wheel 91, 2 Apr 13 16:46 rs64 drwxr-xr-x 2 root wheel 512 Apr 13 16:46 rsd drwxr-xr-x 2 root wheel 512 Apr 13 16:46 rvol brwxr-xr-- 1 root wheel 25, 2 Apr 13 16:46 s64 drwxr-xr-x 2 root wheel 512 Apr 13 16:46 sd drwxr-xr-x 3 root wheel 512 Apr 13 16:46 vol /dev/vinum/drive: total 0 lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive1 -> /dev/sd1h lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive2 -> /dev/sd2h lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive3 -> /dev/sd3h lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive4 -> /dev/sd4h /dev/vinum/plex: total 0 brwxr-xr-- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0 /dev/vinum/rsd: total 0 crwxr-xr-- 1 root wheel 91, 0x20000002 Apr 13 16:46 s64.p0.s0 crwxr-xr-- 1 root wheel 91, 0x20100002 Apr 13 16:46 s64.p0.s1 crwxr-xr-- 1 root wheel 91, 0x20200002 Apr 13 16:46 s64.p0.s2 crwxr-xr-- 1 root wheel 91, 0x20300002 Apr 13 16:46 s64.p0.s3 /dev/vinum/rvol: total 0 crwxr-xr-- 1 root wheel 91, 2 Apr 13 16:46 s64 /dev/vinum/sd: total 0 brwxr-xr-- 1 root wheel 25, 0x20000002 Apr 13 16:46 s64.p0.s0 brwxr-xr-- 1 root wheel 25, 0x20100002 Apr 13 16:46 s64.p0.s1 brwxr-xr-- 1 root wheel 25, 0x20200002 Apr 13 16:46 s64.p0.s2 brwxr-xr-- 1 root wheel 25, 0x20300002 Apr 13 16:46 s64.p0.s3 /dev/vinum/vol: total 1 brwxr-xr-- 1 root wheel 25, 2 Apr 13 16:46 s64 drwxr-xr-x 3 root wheel 512 Apr 13 16:46 s64.plex /dev/vinum/vol/s64.plex: total 1 brwxr-xr-- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0 drwxr-xr-x 2 root wheel 512 Apr 13 16:46 s64.p0.sd /dev/vinum/vol/s64.plex/s64.p0.sd: total 0 brwxr-xr-- 1 root wheel 25, 0x20000002 Apr 13 16:46 s64.p0.s0 brwxr-xr-- 1 root wheel 25, 0x20100002 Apr 13 16:46 s64.p0.s1 brwxr-xr-- 1 root wheel 25, 0x20200002 Apr 13 16:46 s64.p0.s2 brwxr-xr-- 1 root wheel 25, 0x20300002 Apr 13 16:46 s64.p0.s3 Benché sia raccomandato non allocare nomi specifici a plex e sottodischi, i drive di Vinum devono avere un nome. Questo permette di spostare un disco in una differente locazione e continuare a riconoscerlo automaticamente. I nomi di drive possono essere lunghi fino a 32 caratteri. Creare i File System I volumi appaiono al sistema identici ai dischi, con un'eccezione. - Differentemente dai dischi UNIX™, Vinum non partiziona i volumi, + Differentemente dai dischi &unix;, Vinum non partiziona i volumi, che quindi non contengono una tabella delle partizioni. Questo ha reso necessario modificare alcuni programmi di utilità del disco, tra cui &man.newfs.8;, che prcedentemente cercava di interpretare l'ultima lettera di un volume Vinum come un identificatore di partizione. Ad esempio un disco potrebbe avere un nome come /dev/ad0a o /dev/da2h. Questi nomi rappresentano la prima partizione (a) del primo (0) disco IDE (ad) e l'ottava partizione (h) del terzo (2) disco SCSI (da), rispettivamente. Al contrario un volume Vinum potrebbe essere chiamato /dev/vinum/concat, un nome che non ha alcuna relazione con nomi di partizione. Normalmente &man.newfs.8; interpreta il nome del disco e si lamenta se non riesce a comprenderlo. Per esempio: &prompt.root; newfs /dev/vinum/concat newfs: /dev/vinum/concat: can't figure out file system partition + Queste informazioni sono valide solo per versioni di FreeBSD + precedenti alla 5.0: + Per poter creare un file system su questo volume usa &man.newfs.8; con l'opzione : &prompt.root; newfs -v /dev/vinum/concat Configurare Vinum Il kernel GENERIC non contiene Vinum. È possibile creare un kernel speciale che lo contenga, ma questo non è raccomandato: il metodo standard per lanciare Vinum è come modulo del kernel (kld). Non è neanche necessario usare &man.kldload.8; per Vinum: quando lanci &man.vinum.8; il programma controlla se il modulo è stato caricato e, in caso non sia caricato, lo carica automaticamente. Avvio Vinum immagazzina le informazioni sulla configurazione dei dischi essenzialmente nella stessa forma dei file di configurazione. Quando legge il database di configurazione Vinum riconosce un numero di parole chiave che non sono permesse nei file di configurazione, ad esempio un file di configurazione del disco potrebbe contenere il seguente testo: volume myvol state up volume bigraid state down plex name myvol.p0 state up org concat vol myvol plex name myvol.p1 state up org concat vol myvol plex name myvol.p2 state init org striped 512b vol myvol plex name bigraid.p0 state initializing org raid5 512b vol bigraid sd name myvol.p0.s0 drive a plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 0b sd name myvol.p0.s1 drive b plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 1048576b sd name myvol.p1.s0 drive c plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 0b sd name myvol.p1.s1 drive d plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 1048576b sd name myvol.p2.s0 drive a plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 0b sd name myvol.p2.s1 drive b plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 524288b sd name myvol.p2.s2 drive c plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1048576b sd name myvol.p2.s3 drive d plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1572864b sd name bigraid.p0.s0 drive a plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 0b sd name bigraid.p0.s1 drive b plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 4194304b sd name bigraid.p0.s2 drive c plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 8388608b sd name bigraid.p0.s3 drive d plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 12582912b sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 16777216b Le ovvie differenze sono qua la presenza di informazioni esplicite sulle locazioni e sulla nomenclatura (entrambe permesse, ma scoraggiate, all'utente) e le informazioni sugli stati (che non sono disponibili all'utente). Vinum non immagazzina informazioni sui drive tra le informazioni della configurazione: trova i drive scandendo le partizioni dei dischi configurati alla ricerca di un'etichetta Vinum. Questo permette a Vinum di identificare i drive correttamente anche se gli è stato assegnato un differente codice identificativo di drive - UNIX™. + &unix;. - + Avvio Automatico Per poter lanciare Vinum automaticamente all'avvio del sistema assicuratevi che le seguenti linee siano nel vostro /etc/rc.conf: start_vinum="YES" # set to YES to start vinum Se non hai un file /etc/rc.conf, creane uno con questo contenuto. Questo ordinerà al sistema di caricare il Vinum kld all'avvio, inizializzando ogni oggetto menzionato nella configurazione. Questo viene fatto prima del mount dei file system quindi è possibile fare automaticamente &man.fsck.8; e mount dei file system su volumi Vinum. Quando esegui Vinum con il comando vinum start Vinum legge il database di configurazione da uno dei drive Vinum. In circostanze normali ogni drive contiene una copia identica del database di configurazione quindi non conta da quale disco viene letto. Dopo un crash, tuttavia, Vinum deve determinare quale drive è stato aggiornato più recentemente e leggere la configurazione da questo drive. Quindi aggiorna la configurazione, se necessario, sui drive progressivamente più vecchi. + + + Usare Vinum nel Filesystem Root + + Per una macchina con filesystem completamente in mirroring con Vinum + è desiderabile mettere in mirroring anche il filesystem di root; + fare questo è meno semplice che non per un filesystem arbitrario, + dato che: + + + + Il filesystem root deve essere disponibile nella parte iniziale + del processo di boot, quindi l'infrastruttura di Vinum deve essere giĆ  + disponibile in quel momento. + + + + Il volume contenete il filesystem root contiene anche il sistema + di avvio e il kernel, che devono essere letti usando le funzioni + native del sistema (ovvero il BIOS, sui PC) che spesso non conoscono i + dettagli di Vinum. + + + + Nelle sezioni seguenti, il termine volume root + è usato generalmente per descrivere il volume Vinum che contiene il + filesystem root. È probabilmente una buona idea usare il nome + "root" per questo volume, ma non è necessario. + Tutti gli esempi nelle prossime sezioni usano questo nome. + + + Lanciare Vinum abbastanza presto per il Filesystem Root + + Ci sono varie misure da prendere per fare in modo che questo + accada: + + + + Vinum deve essere disponibile nel kernel già all'avvio, + quindi il metodo per lanciare Vinum automaticamente descritto + in non può essere + utilizzato e il parametro start_vinum in + realtà non va impostato in questo tipo + di configurazione. La prima possibilità è di + compilare Vinum staticamente dentro al kernel, in modo che sia + sempre disponibile, ma questo non è normalmente desiderabile. + Un'altra opportunità à di fare in modo che + /boot/loader () carichi il modulo kernel di Vinum prima di + lanciare il kernel. Questo può essere fatto utilizzando la + riga + + vinum_load="YES" + + nel file + /boot/loader.conf. + + + + Vinum deve essere inizializzato subito in modo da poter fornire + il volume per il filesystem root. Per default la porzione kernel di + Vinum non cerca dischi che contengano informazioni sui volumi Vinum + fino a quando un amministratore (o uno degli script di partenza) non + esegue un comando di vinum start. + + I seguenti paragrafi spiegano i passi necessari per + &os; 5.x e superiori. L'impostaizone richiesta da &os; 4.x è + diversa ed è descritta dopo, in . + + Inserendo la linea: + + vinum.autostart="YES" + + dentro a /boot/loader.conf, Vinum viene + istruito, alla partenza del kernel, di controllare automaticamente + tutti i dischi alla ricerca di informazioni sui volumi Vinum. + + Da notare il fatto che non è necessario istruire il + kernel sulla locazione del filesystem root. + /boot/loader cerca il nome del device di root + in /etc/fstab e passa l'informazione al kernel. + Quando è necessario montare il filesystem root, il kernel, + tramite il nome di device fornitogli, capisce a quale driver deve + chiedere la conversione di tale nome in ID interno di device (numero + maggiore/minore). + + + + + + Making a Vinum-based Root Volume Accessible to the + Bootstrap + + Traduzione in corso + + + + Example of a Vinum-based root setup + + Traduzione in corso + + + + Troubleshooting + + Traduzione in corso + + + + Differences for FreeBSD 4.x + + Traduzione in corso + +
diff --git a/it_IT.ISO8859-15/books/unix-introduction/special-features/chapter.sgml b/it_IT.ISO8859-15/books/unix-introduction/special-features/chapter.sgml index 691fc65a61..2ca527e4b4 100644 --- a/it_IT.ISO8859-15/books/unix-introduction/special-features/chapter.sgml +++ b/it_IT.ISO8859-15/books/unix-introduction/special-features/chapter.sgml @@ -1,565 +1,565 @@ Caratteristiche speciali di Unix 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 in un file, nel terminale video o in un programma, oppure da 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. Con la redirezione dell'output, l'output di un comando viene rediretto su un file piuttosto che sul terminale video. Con la redirezione dell'input, 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 piping, 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. Descrittori di file Ci sono 3 descrittori di file standard: &man.stdin.4; 0 Standard input per il programma &man.stdout.4; 1 Standard output dal programma &man.stderr.4; 2 Standard error (output) dal programma 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. Si possono specificare descrittori di file addizionali, denotandoli con un numero da 3 a 9 e redirigendo l'I/O attraverso questi. Redirezione di file 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. Redirezione di file SIMBOLO REDIREZIONE > redirezione dell'output >! come sopra, ma non tiene conto dell'opzione noclobber per &man.csh.1; >> appende l'output >>! come sopra, ma non tiene conto dell'opzione noclobber su &man.csh.1; e crea il file se non esiste | - incalana (pipe) l'output nell'input di un altro + incanala (pipe) l'output nell'input di un altro comando < redirezione dell'input <<Stringa legge da standard input fino a quando incontra una linea contenente solo la parola Stringa. Anche conosciuto come here document (vedere il Capitolo 9) <<\Stringa come sopra, ma le sostituzioni di shell non sono permesse
Un esempio di redirezione dell'output è: cat file1 file2 > file3 Il precedente comando concatena file1 e file2 e redirige (manda) l'output in file3. Se file3 non esiste, viene creato. Se esiste, verrà troncato a lunghezza zero prima che il nuovo contenuto sia inserito, oppure, se l'opzione noclobber della shell &man.csh.1; è abilitata, il comando verrà rifiutato (vedere la shell &man.csh.1; nel Capitolo 5). I file originali file1 e file2 rimarranno come erano prima dell'esecuzione del comando, ossia due entità separate. L'output viene appeso a un file con la forma: cat file1 >> file2 Questo comando appende il contenuto di file1 alla fine dell'esistente file2 (file2 non viene soprascritto). L'input è rediretto (preso) da un file con la forma: programma < file Questo comando prende l'input per il programma da file. Per incanalare (pipe) l'output di un programma nell'input di un altro programma si usa la forma: comando|comando Questo comando assegna l'output del primo comando all'input del secondo comando. Csh >& file redirige &man.stdout.4; e &man.stderr.4; in file >>& file appende &man.stdout.4; e &man.stderr.4; in file |& comando crea una pipe tra &man.stdout.4;-&man.stderr.4; e il comando 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ì: &prompt.user; (comando > out_file) >& err_file Sh 2> file redirige &man.stderr.4; in file > file 2>&1 redirige &man.stdout.4; e &man.stderr.4; in file >> file 2>&1 appende &man.stdout.4; e &man.stderr.4; in file 2>&1 | comando crea una pipe tra &man.stdout.4;-&man.stderr.4; e il comando Per redirigere &man.stdout.4; e &man.stderr.4; in due file separati si può fare: $ comando 1> out_file 2> err_file oppure, data la redirezione di default per &man.stdout.4;: $ comando > out_file 2> err_file 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: n>&m redirige il descrittore di file n sul descrittore di file m Questo meccanismo viene utilizzato per mandare &man.stderr.4; nello stesso posto di &man.stdout.4;, 2>&1, 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. $ (comando 3>&2 2>&1 1>&3) > file 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: $ (cat file 3>&2 2>&1 1>&3) > errfile Quindi se file è letto, l'informazione è scartata dall'output del comando, ma se file non può essere letto, i messaggi di errore sono messi nel file errfile per usi futuri. I descrittori di file che sono stati creati possono essere chiusi con: m<&- chiude un descrittore di file di input <&- chiude &man.stdin.4; m>&- chiude un descrittore di file di output >&- chiude &man.stdout.4;
Altri speciali simboli di comando Oltre ai simboli di redirezione dei file ci sono altri simboli speciali che si possono usare su linea di comando. Alcuni di questi sono: ; separatore di comandi & esegue un comando in background && esegue il comando seguente (a questo simbolo) solamente se il comando precedente (a questo simbolo) è stato completato con successo, esempio: grep stringa file && cat file || esegue il comando seguente (a questo simbolo) solamente se il comando precedente (a questo simbolo) non è stato completato con successo, esempio: grep stringa file || echo "Stringa non trovata." ( ) i comandi tra parentesi sono eseguiti in una sotto-shell. L'output della sotto-shell può essere manipolato come specificato nelle precedenti sezioni. ' ' segni di quoting letterali. All'interno di questi segni di quoting non viene permesso ad alcuni caratteri di assumere significati speciali. \ considera il prossimo carattere letteralmente (escape) " " 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). `comando` prende l'output del comando e lo sostituisce nell'argomento su linea di comando # ogni cosa che lo segue fino a un newline è un commento 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. Meta caratteri La shell e alcuni programmi di manipolazione testo permettono i meta-caratteri, chiamati anche wild card, i quali vengono rimpiazzati dai corrispondenti schemi (pattern). Per i nomi di file questi meta-caratteri e i loro significati sono: ? indica un singolo carattere alla posizione indicata * indica una stringa di zero o più caratteri [abc...] indica un carattere tra quelli racchiusi [a-e] indica un carattere tra quelli nel range a, b, c, d, e [!def] indica un carattere tra quelli non inclusi in parentesi, solamente &man.sh.1; {abc,bcd,cde} indica un set di caratteri tra quelli inclusi in parentesi, separati da una virgola (,) (niente spazi), solamente &man.csh.1; ~ indica la directory home dell'utente corrente, solamente &man.csh.1; ~user indica la directory home dell'utente specificato, solamente &man.csh.1;
\ No newline at end of file +--> diff --git a/it_IT.ISO8859-15/share/sgml/bookinfo.ent b/it_IT.ISO8859-15/share/sgml/bookinfo.ent index f37494f484..ddbbd1127c 100644 --- a/it_IT.ISO8859-15/share/sgml/bookinfo.ent +++ b/it_IT.ISO8859-15/share/sgml/bookinfo.ent @@ -1,17 +1,19 @@ + + diff --git a/it_IT.ISO8859-15/share/sgml/catalog b/it_IT.ISO8859-15/share/sgml/catalog index cc7dc4377f..91693f8109 100644 --- a/it_IT.ISO8859-15/share/sgml/catalog +++ b/it_IT.ISO8859-15/share/sgml/catalog @@ -1,26 +1,26 @@ -- ...................................................................... -- -- FreeBSD SGML Public Identifiers ...................................... -- -- ...................................................................... -- -- Italian specific ..................................................... -- -- $FreeBSD$ -- PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN" "freebsd.dsl" PUBLIC "-//FreeBSD//ENTITIES DocBook Language Specific Entities//EN" "l10n.ent" PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//IT" "mailing-lists.ent" -PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//IT" +PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//IT" "bookinfo.ent" PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//IT" "freebsd.dsl" -PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//IT" +PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//IT" "translators.ent" diff --git a/it_IT.ISO8859-15/share/sgml/mailing-lists.ent b/it_IT.ISO8859-15/share/sgml/mailing-lists.ent index c0c4cf52c3..4ea731f1c4 100644 --- a/it_IT.ISO8859-15/share/sgml/mailing-lists.ent +++ b/it_IT.ISO8859-15/share/sgml/mailing-lists.ent @@ -1,352 +1,360 @@ server delle liste di FreeBSD"> &a.mailman.listinfo;"> mailing list sull'avvocatura di FreeBSD"> freebsd-advocacy"> mailing list sul porting di AFS su FreeBSD"> freebsd-afs"> mailing list di discussione sugli Adaptec AIC7xxx in FreeBSD"> freebsd-aic7xxx"> mailing list sul porting di FreeBSD sui sistemi Alpha"> freebsd-alpha"> - - -mailing list sul porting di FreeBSD sui sistemi AMD64"> -freebsd-amd64"> + + +mailing list sul porting di FreeBSD sui sistemi AMD64"> +freebsd-amd64"> mailing list di annunci su FreeBSD"> freebsd-announce"> mailing list sull'architettura e la progettazione di FreeBSD"> freebsd-arch"> mailing list sul porting di FreeBSD sui processori ARM"> freebsd-arm"> mailing list sulle reti ATM con FreeBSD"> freebsd-atm"> mailing list di controllo del codice sorgente di FreeBSD"> freebsd-audit"> mailing list sul sistema di update tramite binari di FreeBSD"> freebsd-binup"> mailing list sul sistema di segnalazione dei bug di FreeBSD"> freebsd-bugbusters"> mailing list di segnalazione dei problemi con FreeBSD"> freebsd-bugs"> mailing list di chiacchiere su FreeBSD"> freebsd-chat"> mailing list sul clustering con FreeBSD"> freebsd-cluster"> mailing list sui tool di installazione e configurazione di FreeBSD"> freebsd-config"> mailing list su &os.current;"> freebsd-current"> Annunci CTM"> ctm-announce"> Distribuzione CTM di file CVS"> ctm-cvs-cur"> mailing list di distribuzione CTM del ramo src 4-STABLE"> ctm-src-4"> mailing list di distribuzione CTM del ramo src -CURRENT"> ctm-src-cur"> mailing list con i messaggi di commit sul CVS di FreeBSD"> cvs-all"> lista dei commit sul ramo doc del CVS di FreeBSD"> cvs-doc"> lista dei commit sul ramo ports del CVS di FreeBSD"> cvs-ports"> lista dei commit sul ramo projects del CVS di FreeBSD"> cvs-projects"> lista dei commit sul ramo src del CVS di FreeBSD"> cvs-src"> mailing list sul mantenimento di CVSweb di FreeBSD"> freebsd-cvsweb"> mailing list sui database sotto FreeBSD"> freebsd-database"> mailing list sul progetto di documentazione di FreeBSD"> freebsd-doc"> mailing list sull'emulazione FreeBSD"> freebsd-emulation"> mailing list di discussione su FireWire (IEEE 1394) in FreeBSD"> freebsd-firewire"> mailing list sul progetto di file system di FreeBSD"> freebsd-fs"> mailing list su GNOME e sulle applicazioni GNOME con FreeBSD"> freebsd-gnome"> mailing list di discussioni tecniche su FreeBSD"> freebsd-hackers"> mailing list sull'hardware e le apparecchiature per FreeBSD"> freebsd-hardware"> mailing list sui siti mirror di FreeBSD"> freebsd-hubs"> mailing list sull'internazionalizzazione di FreeBSD"> freebsd-i18n"> mailing list sulle questioni specifiche all'architettura i386 di FreeBSD"> freebsd-i386"> mailing list sul porting di FreeBSD su IA32"> freebsd-ia32"> mailing list sul porting di FreeBSD su IA64"> freebsd-ia64"> mailing list sul codice IPFW di FreeBSD"> freebsd-ipfw"> mailing list sulle reti ISDN con FreeBSD"> freebsd-isdn"> mailing list degli Internet Service Provider che usano FreeBSD"> freebsd-isp"> mailing list sul linguaggio Java in FreeBSD"> freebsd-java"> mailing list sugli impieghi relativi a FreeBSD"> freebsd-jobs"> mailing list su KDE/Qt e le applicazioni KDE di FreeBSD"> freebsd-kde"> mailing list sul porting di LFS su FreeBSD"> freebsd-lfs"> mailing list sul sistema libh di FreeBSD di installazione e creazione dei package"> freebsd-libh"> mailing list sul porting di FreeBSD su MIPS"> freebsd-mips"> + +mailing list degli amministratori di un sito mirror di FreeBSD"> +mirror-announce"> + mailing list sui computer portatili con FreeBSD"> freebsd-mobile"> mailing list sul port per FreeBSD del browser Mozilla"> freebsd-mozilla"> mailing list sulle applicazioni multimediali con FreeBSD"> freebsd-multimedia"> mailing list sulle reti in FreeBSD"> freebsd-net"> mailing list per i nuovi utenti di FreeBSD"> freebsd-newbies"> -mailing list sulla nuova architettura del bus"> +mailing list sulla nuova architettura del bus di FreeBSD"> freebsd-new-bus"> mailing list su OpenOffice sotto FreeBSD"> freebsd-openoffice"> mailing list sulle prestazioni di FreeBSD"> freebsd-performance"> mailing list sul porting di FreeBSD su piattaforme non Intel"> freebsd-platforms"> mailing list sulle decisioni del core team sulle politiche di FreeBSD"> freebsd-policy"> mailing list sui port di FreeBSD"> freebsd-ports"> mailing list sui bug dei port di FreeBSD"> freebsd-ports-bugs"> mailing list sul porting di FreeBSD su PowerPC"> freebsd-ppc"> mailing list sulla Garanzia di Qualità di FreeBSD"> freebsd-qa"> mailing list per le domande generiche su FreeBSD"> freebsd-questions"> mailing list sulle estensioni realtime di FreeBSD"> freebsd-realtime"> mailing list sul sottosistema SCSI di FreeBSD"> freebsd-scsi"> mailing list sulla sicurezza in FreeBSD"> freebsd-security"> mailing list sugli avvisi di sicurezza su FreeBSD"> freebsd-security-notifications"> mailing list su FreeBSD-small"> freebsd-small"> mailing list sul supporto multiprocessore di FreeBSD"> freebsd-smp"> mailing list sul porting di FreeBSD su SPARC"> freebsd-sparc64"> mailing list su &os.stable;"> freebsd-stable"> mailing list sulla conformità C99 e POSIX di FreeBSD"> freebsd-standards"> mailing list di prova di FreeBSD"> freebsd-test"> mailing list sui test di prestazioni e stabilità di FreeBSD"> freebsd-testing"> mailing list sui thread in FreeBSD"> freebsd-threads"> mailing list sulle reti tokenring in FreeBSD"> freebsd-tokenring"> mailing list di coordinamento dei gruppi utente di FreeBSD"> freebsd-user-groups"> mailing list di coordinamento dei distributori delle release di FreeBSD"> freebsd-vendors"> mailing list del Webmaster di FreeBSD"> freebsd-www"> + +mailing list di X11 per FreeBSD"> +freebsd-x11"> + majordomo@FreeBSD.org"> diff --git a/it_IT.ISO8859-15/share/sgml/trademarks.sgml b/it_IT.ISO8859-15/share/sgml/trademarks.sgml index 3a58a429a0..2e0dd31326 100644 --- a/it_IT.ISO8859-15/share/sgml/trademarks.sgml +++ b/it_IT.ISO8859-15/share/sgml/trademarks.sgml @@ -1,26 +1,36 @@ FreeBSD è un marchio registrato da Wind River Systems, Inc. È previsto che cambi a breve. UNIX è un marchio registrato da The Open Group negli Stati Uniti e in altri paesi. Sun, Sun Microsystems, SunOS, Solaris, e Java sono marchi o marchi registrati da Sun Microsystems, Inc. negli Stati Uniti e in altri paesi. + + Apple e QuickTime sono marchi dalla Apple Computer, Inc., registrati + negli Stati Uniti e in altri paesi. + + Macromedia e Flash sono marchi o marchi registrati da Macromedia, Inc. + negli Stati Uniti e in altri paesi. + + Microsoft, Windows, e Windows Media sono marchi o marchi resgistrati + dalla Microsoft Corporation negli Stati Uniti e in altri paesi. + + PartitionMagic è un marchio registrato dalla PowerQuest + Corporation negli Stati Uniti e in altri paesi. Molti dei nomi identificativi usati dai produttori e dai venditori per distinguere i loro prodotti sono anche dei marchi. Quando questi nomi appaiono nel libro, e il FreeBSD Project è al corrente del marchio, vengono fatti seguire dal simbolo '™'. diff --git a/it_IT.ISO8859-15/share/sgml/translators.ent b/it_IT.ISO8859-15/share/sgml/translators.ent index 4008e2e423..2ff63cf7ee 100644 --- a/it_IT.ISO8859-15/share/sgml/translators.ent +++ b/it_IT.ISO8859-15/share/sgml/translators.ent @@ -1,33 +1,33 @@ sysadmin@alexdupre.com"> andrea_bsd@virgilio.it"> carla@cct.it"> sepry@tin.it"> daniele@cct.it"> daniele@keybit.net"> ale@unixmania.net"> eugenio@openbeer.it"> ferruccio.vitale@tin.it"> gabrielef@zeropiu.it"> gmarco@scotty.masternet.it"> inzet@gufi.org"> kaosweb@yahoo.it"> lapo@lapo.it"> luca@xunil.it"> -m.trentini@remotelab.org"> +mark@remotelab.org"> matteo.niccoli@softecspa.it"> stucchi@willystudios.com"> nivit@libero.it"> rodario@libero.it"> rudy@tzone.it"> bartequi@neomedia.it"> sriva@gufi.org"> surrender_it@yahoo.it"> vdaelli@hotmail.com">