FreeBSD

From netstudent

Contents

[edit] Introduzione a FreeBSD

[edit] Cos'è FreeBSD

Riportato da GUFI

Si tratta di un sistema operativo completamente aperto e libero per usi sia personali che professionali, in costante evoluzione e supportato volontariamente da migliaia di sviluppatori e di utilizzatori in tutto il mondo.

Insieme ad esso vengono forniti tutti i sorgenti, liberamente modificabili ed adattabili ad esigenze particolari. I sorgenti possono essere sfruttati anche in applicazioni commerciali, senza alcun obbligo di redistribuzione del proprio codice sorgente. Sono comunque già disponibili innumerevoli strumenti ed applicazioni, sia per l'ambito server che per quello desktop.

Insieme a FreeBSD viene fornito anche X.org, un'implementazione di X Window altrettanto gratuita e completa di sorgenti. X Window è un ambiente grafico di lavoro potente ed estremamente configurabile, a cui si possono abbinare pacchetti desktop quali KDE o Gnome, personalizzandolo a seconda dei propri gusti.

In alcuni paesi FreeBSD è talmente affermato da avere giustificato la realizzazione di versioni nazionalizzate; in Giappone e in Germania, per esempio. Una ricerca condotta nel 1999 tramite interrogazioni automatiche di un'alta percentuale dei sistemi collegati all'Internet europea e al dominio EDU americano, ha mostrato che è fra le varianti di Unix più diffuse e la più diffusa in assoluto in alcune nazioni (ad esempio in Russia). Nel luglio 2004 Netcraft ha pubblicato un articolo basato sulla propria nota Web Server Survey che mostra come FreeBSD sia sempre più diffuso come piattaforma per Web serving, con quasi 2.5 milioni di siti attivi.

Il parco installazioni a livello mondiale è dell'ordine di grandezza dei dieci milioni, secondo stime recenti, anche se ovviamente non è facile stabilirlo con certezza visto che si tratta di un sistema operativo gratuito e disponibile attraverso svariati canali.

[edit] FreeBSD vs altri sistemi operativi

Riportato da GUFI

Non è affatto difficile trovare su Internet confronti più o meno autorevoli tra sistemi operativi differenti. La maggior parte dei confronti sono firmati da fedelissimi di questo o quel sistema, il che porta puntualmente a valutazioni parziali. Ci sono i fondamentalisti che vedono solo gli aspetti positivi del sistema prediletto e gli aspetti negativi degli altri. C'è chi con maggiore sottigliezza, enfatizzando pregi o sminuendo difetti, riesce comunque a propagandare energicamente le proprie preferenze. C'è chi si sforza onestamente di essere imparziale, convinto che il proprio sistema sia superiore agli altri e non sia necessario alcun "trucco", ma in genere infarcisce il confronto di errori: nessuno può vantarsi di conoscere in maniera davvero approfondita i mondi di FreeBSD, Linux, Windows, Solaris, HP-UX, AIX, Macintosh...

In realtà ogni sistema ha pregi e difetti, e non ne esiste uno ideale per tutte le applicazioni possibili e immaginabili. Anziché tentare anche noi un confronto esplicito, con il probabile risultato di ottenerne uno parziale e magari di scatenare una delle tante "guerre sante" tra fazioni, abbiamo pensato di parlare semplicemente di alcuni punti di forza di FreeBSD, di alcuni dei vantaggi che esso offre. Alla fin fine, comunque, i gusti personali hanno un peso enorme. C'è chi preferisce uno o l'altro, e quasi tutti hanno ottime argomentazioni. Dovendo scegliere, l'ideale sarebbe provare tutti i principali candidati e formarsi una preferenza per conto proprio. Naturalmente questo non è sempre possibile, ma, nel caso dei sistemi freeware, il fatto che sia tutto gratis... aiuta! FreeBSD appartiene ovviamente alla grande famiglia BSD, e ad una sottofamiglia che si è evoluta all'inizio degli anni '90 a partire da 386BSD, ora defunto. Ecco alcune delle sue caratteristiche fondamentali:

  • appartiene ad uno standard preciso e storico, derivante dal fatto che il kernel originale era quello di BSD-Lite 4.4; portare su di esso applicazioni scritte per altre varianti di Unix è in genere un'operazione relativamente agile e veloce
  • è governato da un "core team" solido e ristretto (una decina di persone) periodicamente eletto, che ne garantisce la coesione, non soltanto a livello di kernel. Questo garantisce omogeneità a tutte le installazioni del sistema operativo e permette quindi ad ogni utente FreeBSD di usare un altro sistema FreeBSD senza alcuna difficoltà
  • è dotato di una collezione di oltre 11000 applicazioni pronte da installare con un meccanismo facilissimo anche per i neofiti
  • dispone di un meccanismo semi-automatico per l'aggiornamento di un intero sistema, non solamente del kernel
  • dispone di meccanismi per l'automazione delle procedure di installazione, consentendo ad esempio a chi debba installare decine o centinaia di macchine simili di prepararsi vere e proprie release personalizzate, complete di software specifico e configurazioni opportune
  • per chi li vuole a tutti i costi, dispone anche di servizi di supporto commerciali, garantiti da note aziende e professionisti
  • anziché chiudersi su sè stesso rimane aperto al mondo esterno, consentendo fra l'altro di eseguire programmi compilati per Linux, SCO Unix, BSD/OS, OpenBSD e NetBSD. Si sta mettendo a punto la compatibilità SVR4 per Solaris Intel. Non si tratta di emulazione, ma di vera compatibilità binaria ottenuta tramite apposite librerie, per cui le prestazioni sono elevatissime
  • tiene sempre nel massimo conto le esigenze di stabilità.

Oggi esistono due "alberi" di versione: 4 e 5. L'albero 4 è quello consigliato per ambienti di produzione senza compromessi, mentre il 5 è più adatto ad impieghi meno critici, non essendo ancora del tutto maturo. Chi cerca la massima stabilità può scegliere l'ultima versione dell'albero 4: la 4.10. Gli aggiornamenti sono garantiti attraverso il meccanismo semi-automatico di cui sopra, personalizzabile per i soli bug fix o anche per le innovazioni accuratamente testate; quest'ultima personalizzazione rende la versione 4-STABLE. Chi vuole essere all'avanguardia ha a disposizione l'ultima versione dell'albero 5: la 5.2.1. Infine, chi ama vivere pericolosamente può scegliere di seguire la 5-CURRENT, dove tutte le nuove funzionalità vengono introdotte. Attenzione poiché non c'è alcuna garanzia di stabilità, in quest'ultimo caso! In pratica, ogni nuova tecnologia passa prima per la 5-CURRENT e viene sperimentata dai suoi utenti. Ogni tot mesi la 5-CURRENT viene ottimizzata e "fotografata" in una versione precisa, una "release". Quanto ampiamente provato sul campo come affidabile e compatibile dal punto di vista tecnologico viene portato anche nella 4-STABLE, la quale periodicamente viene a sua volta fotografata in una release. L'albero 5 è stato da poco dichiarato maturo ed è stato "congelato" in preparazione della versione 5.3, che dovrebbe diventare -STABLE. Il ramo di sviluppo è stato contemporaneamente rinominato 6-CURRENT, ricominciando il ciclo.

Tutto questo è molto interessante, diranno gli esperti, ma quali sono i punti di forza tecnici di FreeBSD? Maturità e stabilità generale a parte, la gestione della memoria virtuale (continuamente migliorata) e lo stack TCP/IP (per la prima volta implementato proprio nello Unix di Berkeley) sono fra le componenti in assoluto più solide ed efficienti, come ampiamente dimostrato sul campo. Nell'albero 5 sono state introdotte numerose novità radicali fra cui UFS2 (supporto migliorato per filesystem estremamente capienti) e FFS con possibilità di snapshot e fsck in background, jail evolute (partizionamento di un singolo server in più sistemi virtuali indipendenti, compresi accessi root del tutto autonomi con syscall limitate), SMPng (supporto con kernel altamente granulare per sistemi multiprocessore), GEOM (gestione modulare ed estremamente flessibile delle memorie di massa), devfs (device dinamici), Kernel Scheduled Entities (thread multipli nel kernel per le applicazioni), supporto Cardbus, supporto per Mandatory Access Control e molto altro.

[edit] Installare FreeBSD

L'installazione di FreeBSD è abbastanza facile per gli utenti GNU/Linux. Mentre può sembrare un po' più ostico agli utenti Windows.

L'installazione avviene tramite un tool chiamato sysinstall in cui bisogna andare a scegliere voce per voce, da un menù principale, le opzioni di instllazione. La parte più importante e più rischiosa è il partizionamento dei dischi, in cui vengono spesso persi tutti i dati se l'utente è sbadato. Bisogna infatti essere sicuri di quello che si sta facendo, con particolare attenzione a non premere bottoni sbagliati. Il mio consiglio è di fare un backup totale dei dati prima di pensare di affrontare un installazione.

Per la relativa installazione con sysinstall non potrei mai essere più esaudiente della documentazione originale di freeBSD che potete trovare al seguente puntatore:

http://www.gufi.org/~alex/books/handbook/using-sysinstall.html

La mia esperienza personale mi ha portato a pochi passi, scegliendo a Custom Installation:

  1. partizionamento

[edit] Upgrade di Versione

Mi sono ritrovato con un vecchio CD freebsd 6.1, tuttavia la versione RELEASE è la 6.2, non avevo voglia di bruciare altri CD inutilmente ho installato una 6.1 eppoi sono andato giù di Upgrade in questo modo:

# mkdir /usr/upgrade
# cd /usr/upgrade
# fetch http://www.daemonology.net/freebsd-update/upgrade-to-6.2.tgz

upgrade-to-6.2.tgz 100% of 18 kB 120 kBps

# tar -xzf upgrade-to-6.2.tgz
# cd upgrade-to-6.2
# sh freebsd-update.sh -f freebsd-update.conf -d /usr/upgrade -r 6.2-RELEASE upgrade

Looking up update.FreeBSD.org mirrors... 1 mirrors found. Fetching public key from update1.FreeBSD.org... done. Fetching metadata signature for 6.1-RELEASE from update1.FreeBSD.org... done. Fetching metadata index... done. Fetching 2 metadata files... done. Inspecting system... done. The following components of FreeBSD seem to be installed: kernel/smp world/base world/dict world/doc world/manpages The following components of FreeBSD do not seem to be installed: kernel/generic src/base src/bin src/contrib src/crypto src/etc src/games src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin world/catpages world/games world/info world/proflibs Does this look reasonable (y/n)? y Fetching metadata signature for 6.2-RELEASE from update1.FreeBSD.org... done. Fetching metadata index... done. Fetching 1 metadata patches. done. Applying metadata patches... done. Fetching 1 metadata files... done. Inspecting system... done. Preparing to download files... done. Fetching 2703 patches.....10....20....30....40....50....60....70....80... OMISSIS Applying patches... done. Fetching 5315 files... done. The following files will be removed as part of updating to 6.2-RELEASE-p1: OMISSIS

The following files will be added as part of updating to 6.2-RELEASE-p1:

OMISSIS

The following files will be updated as part of updating to 6.2-RELEASE-p1:

OMISSIS

# sh freebsd-update.sh -f freebsd-update.conf -d /usr/upgrade install

Installing updates...

Kernel updates have been installed. Please

reboot and run "freebsd-update.sh install" again to

finish installing updates.

...reboot...

# cd /usr/upgrade/upgrade-to-6.2
# sh freebsd-update.sh -f freebsd-update.conf -d /usr/upgrade install

Installing updates... done.

# uname -a

[edit] FAQ's

D:Voglio diventare superutente ma su non mi chiede la password mi dice su:sorry!

pw usermod nome_utente -Gwheel

D:Voglio l'output di ls colorato

echo 'alias ls="ls -G"' >> ~/.bashrc

D:Remove that fucking beep from csh

echo 'set nobeep' >> ~/.cshrc

D:Voglio che quando mi sposto con le frecce in vim non mi faccia casino

echo 'set bs=2' >> ~/.vimrc

D:locate non funziona e dice: database too small: /var/db/locate.database

/usr/libexec/locate.updatedb

D:Ho installato mysql ma non va!

/usr/local/bin/mysql_install_db
chown -R mysql /var/db/mysql/
chgrp -R mysql /var/db/mysql/
/usr/local/bin/mysqld_safe –user=mysql &
/usr/local/bin/mysqladmin -u root password nuova_password

In usr/ports ho del software vecchio di anni
Bisogna aggiornare il tree:

portsnap fetch
portsnap extract
portsnap update

D:Voglio aggiornare tutti i pacchetti installati

cd /usr/ports/ports-mgmt/portupgrade; make install clean && portupgrade -af

Ho pacciocato parecchio con pear e php, ma il mio server non funziona come vorrei

http://bio.fsu.edu/sysalex/freebsd-web-server_v2.htm

D:Voglio cambiare csh in bash

chsh -s /usr/local/bin/bash

D:Voglio watch come in linux

cd /usr/ports/sysutils/cmdwatch; make install clean

D: Update outdated packages, update your system

portsnap fetch update && portsdb -Uu && portupgrade -arR