Il Manuale del sistemista LINUX -...

84
Il Manuale del sistemista LINUX - Alessandro De Rinaldis Il Manuale del sistemista LINUX di Alessandro De Rinaldis Pagina 1

Transcript of Il Manuale del sistemista LINUX -...

Il Manuale del sistemista LINUX

Il Manuale del sistemista LINUX - Alessandro De Rinaldis

Il Manuale del sistemista LINUX

di Alessandro De Rinaldis

Prefazione

Lo ragione principale per cui mi sono deciso a scrivere un manuale del “perfetto” sistemista LINUX e’ quella di mettere un poco di ordine nella mia mente contorta. Il problema è noto e comune alla maggior parte dei sistemisti di ogni parte del mondo: quando si affronta un problema e, dopo una dura lotta, si riesce a risolvere, subentra nel sistemista “vincente” una sorta di beatitudine e di autoincensazione che porta a rilassarsi ed a dimenticare di appuntarsi da qualche parte le modalità che hanno portato alla risoluzione del problema, fidandosi della propria “memoria di elefante”. Pertanto dopo qualche tempo, il problema e la relativaa soluzione vengono completamente digeriti e dimenticati, e questo porta, alla successiva riproposizione dello stesso problema ad un nuovo “sputamento di sangue”.

Per fare un esempio a dir poco banale, ogni volta che ho dovuto installare una distribuzione LINUX RED HAT, mi sono trovato di fronte al solito problema di non poter fare TELNET al sistema LINUX da un pc in rete con esso: ogni volta ho dovuto penare per mezza giornata a “ritrovare la soluzione” (che banalmente consiste nell’aggiungere gli PSEUDOTTY al file /etc/securettys oppure nel cancellare il file /etc/securettys per avere la massima connettività remota), ed ogni volta non mi sono appuntato da qualche parte la medesima soluzione.

Pertanto in questo libro, troverete oltre a tutto quanto serve ad installare e configurare un sistema LINUX, anche una corposa documentazione riguardante gli eventuali problemi di installazione del sistema e dei prodotti.

Questo libro, comunque è rivolto oltre a chi ha già dimestichezza con questo ottimo sistema operativo, anche a chi desidera avvicinarsi a Linux senza conoscerlo assolutamente. Pertanto il linguaggio che userò nel prosieguo del manuale sarà il più possibile semplice, e le descrizioni cercheranno di essere particolarmente esaustive.

Se siete pronti, allacciate le cinture e buona lettura !!!

CAPITOLO 1 - Che cosa è Linux ?

Bella domanda !!

Linux è nato nel 1991 dalla fervida mente del sig. Linus Torvalds, un ricercatore finlandese, che, forse stanco delle limitazioni dell’MS-DOS e derivati, si decise a scrivere un sistema operativo che fosse multitasking, stabile ed efficiente. Ovviamente nel mondo dell’informatica esisteva già da una ventina d’anni UNIX, con tutte le sue variazioni sul tema (leggasi “piattaforme” differenti); bene, Linux secondo il suo creatore doveva diventare un sistema UNIX per pc. Esistevano già altri sistemi UNIX per piattaforma Intel (come p.esempio SCO e UNIXWARE) ma l’idea del caro Linus era quella di creare un sistema snello (quindi veloce) e soprattutto GRATUITO !!

La prima distribuzione di Linux vide la nascita all’inizio del 1994 (se mi ricordo bene). Subito tale sistema operativo incontrò un enorme successo in ambito universitario (probabilmente per il suo costo molto basso !!), grazie al quale e non solo la schiera degli sviluppatori che cominciarono ad interessarsi ad esso aumentò in maniera esponenziale.

Per farla breve, nel giro di meno di 5 anni Linux ha ottenuto i seguenti incredibili risultati:

- più di 100000 sviluppatori nel mondo su piattaforma Linux;

- più di 7 milioni di installazioni nel mondo;

- 5 o più distribuzioni differenti del sistema operativo.

A proposito delle distribuzioni, esse sono differenti confezionamenti di Linux: in comune hanno ovviamente i moduli base del sistema operativo, mentre esse si differenziano per i moduli accessori (come per esempio le utility, il window manager, i vari server, le applicazioni etc.).

Le distribuzioni attualmente per la maggiore sono le seguenti:

- Slackware (completamente gratuita)

- Caldera (commerciale e gratuita con supporto a pagamento nella versione Open Linux)

- RedHat (gratuita con supporto a pagamento)

- Suse (supporto a pagamento)

Nel prosieguo del libro tutto quello che sarà descritto relativamente alla installazione e alla configurazione del sistema si riferisce alla distribuzione RedHat, giunta al momento in cui scrivo alla versione 5.2.

CAPITOLO 2 - Perchè installare Linux ?

La domanda sorge spontanea: perchè un normale utente di p.c. dovrebbe avere la necessità o il desiderio di installare Linux ?

A tale domanda si possono dare molteplici risposte, che qui agglomero insieme.

Linux si installa per semplice curiosità, per avere un primo approccio alle piattaforme UNIX senza creare grossi casini su sistemi di esercizio o simili; oppure perchè si è stanchi di Windows in tutte le sue molteplici forme e dei suoi innumerevoli bachi.

Un altro motivo che spinge moltissimi ad installare Linux è il discorso economico: perchè spendere bei soldini quando con Linux è possibile avere un sistema completo e gratuito ???

Nel prossimo capitolo vedremo in dettaglio le differenze sostanziali tra un sistema Linux ed il mondo Microsoft, mentre nel capitolo 4 analizzeremo la disponibilità di pacchetti applicativi, utility etc... presenti su piattaforma Linux.

Linux è un sistema UNIX, e come tale presenta in generale i pregi ed i difetti tipici di tali sistemi; a fronte di una proverbiale robustezza e sicurezza, presenta una gestione non propriamente “user friendly” (rivolta in maniera “amichevole” all’utente); pertanto di norma effettuare delle operazioni di configurazione del sistema operativo o di alcune sue parti (p.es. la configurazione di rete) non è sicuramente semplicissimo, come può essere nel mondo Microsoft, ma necessita di una conoscenza abbastanza dettagliata del sistema operativo e dei vari file di configurazione.

A dire il vero, con le attuali distribuzioni di Linux, il gap di semplicità che separava tale sistema operativo dal mondo Microsoft si è notevolmente ridotto, poichè adesso le distribuzioni Linux arrivano “guarnite” con una montagna di utility grafiche (le cosiddette applicazioni “X”) che aiutano non poco l’utente inesperto nella configurazione del sistema operativo, a partire dalla definizione degli utenti, della rete, dell’accesso remoto, etc.). E’ indubbio però che, nonostante tali sforzi, un utente inesperto si trovi disorientato di fronte ad un sistema che parte con una interfaccia a carattere, e che deve essere configurato in maniera opportuna affinchè, per esempio, possa far partire l’X Server (la cosiddetta interfaccia grafica X-Windows).

D’altro canto Linux presenta tutta una serie di enormi vantaggi rispetto ai sistemi operativi di casa Microsoft, che giustificano l’attuale boom di installazioni nel mondo e l’enorme interesse che esso attualmente sta destando anche in compagnie notoriamente “conservatrici”, come per esempio i colossi IBM, Oracle ed Informix.

Vediamo allora più in dettaglio le differenze ed i vantaggi che un sistema Linux possiede rispetto ad un sistema Windows NT.

Il confronto è fatto con un sistema Windows NT, poichè ambedue i sistemi operativi si collocano nella cosiddetta fascia dei “sistemi operativi dipartimentali” con spiccate funzionalità di rete. Il confronto non viene quindi fatto con il sistema più popolare di casa Microsoft, Windows 95 (adesso diventato il “famigerato” Windows 98, o come lo chiamano i denigratori, Winbug 98, a causa dei suoi numerosi “buchi”), poichè tale sistema non offre alcuna funzionalità di sicurezza o di multiutenza, come di server di rete o di multitasking “reale”, e d’altrocanto offre, proprio per le sue limitate caratteristiche una velocità maggiore (a parità di hardware) rispetto a Linux o a maggior ragione a Windows NT.

CAPITOLO 3 - Confronto Linux vs Windows NT

Nella tabella seguente sono descritte le differenze tra Linux e Windows NT:

TABELLA 1

Descrizione

LINUX

WINDOWS NT

Costo

Gratuito

Circa 2 milioni (versione server)

Server di rete

Si

Si

Protocolli Utilizzabili Standard

TCP/IP,Samba,Netware,NFS

TCP/IP,Netbeui,Netware

Printer Server

Si

Si

Compilatori di Default

C,Fortran,Pascal,Assembler,Lisp...

Nessuno

Funzioni di Accesso remoto

Si (con Callback)

Si (con callback)

Funzioni Server Internet Standard

HTTP,FTP,TELNET,DHCP,NEWS,MAIL...

Solo HTTP (nella installazione di default)

Interfaccia grafica

Si (varie)

Si

Multiconsole

Si

No

Multitasking

Si

Si

Amministrazione Remota di default

Si

Si (limitata)

Supporto hardware

Parziale

Quasi completo

Efficienza del sistema operativo rispetto all'hardware

Ottima

Discreta

Applicazioni

Enorme disponibilità

Enorme disponibilità

Interfaccia amichevole

Buona

Ottima

Facilità di configurazione/settaggio

Buona

Ottima

Come si vede ad occhio, la tabella, lungi dall'essere esaustiva, mette in luce gli aspetti peculiari dei due sistemi operativi; da un lato Linux, gratuito, efficiente, stabile, molto completo per quanto riguarda la parte di sviluppo e quella di server rivolto al mondo Internet, con una ottima disponibilità di applicazioni, sia gratuite che a pagamento, ma che non supporta completamente l'hardware presente oggi sul mercato (specialmente le ultime novità) con una configurabilità ed una interfaccia amichevole buone ma non ottime: dall'altro lato Windows NT, sicuramente più facile da configurare e con un approccio "user friendly" che è di fatto il punto di forza dei sistemi operativi di casa Microsoft, ma nello stesso tempo molto più "mangiatore di risorse" con scarse attitudini alla rete in generale ed a Internet in particolare (a meno di integrare il sistema operativo base con option pack, BackOffice e via dicendo) e con nessun tool di sviluppo disponibile di base.

CAPITOLO 4 - Applicazioni per Linux

Merita un approfondimento il discorso relativo alle applicazioni disponibili per Linux; infatti, negli ultimi anni in generale e negli ultimi mesi in particolare, si è verificato un autentico boom di applicazioni per piattaforma Linux.

Accanto alle ormai "storiche applicazioni" come quelle tipicamente scientifiche, sono fiorite negli ultimi due anni una serie infinita di applicazioni di ogni genere che coprono oramai qualsiasi campo e sono in grado di rivaleggiare con le analoghe in applicazioni presenti in ambiente Microsoft.

Colossi del software come IBM, ORACLE, INFORMIX, nonché NETSCAPE CORPORATION, STARDIVISION e COREL, hanno effettuato il porting dei loro prodotti di punta in ambiente Linux, completando quindi con una offerta commerciale, la già immensa offerta per così dire “freeware”.

E qui è necessario aprire una parentesi relatovamente al discorso del “gratuito” in ambiente Linux.

Come è noto Linux è un sistema operativo completamente gratuito: questo vuol dire che esso è utilizzabile anche per scopi commerciali senza dover pagare alcun tipo di “royalties” a a qualcuno. Comunque per avere un supporto tecnico più presente ed affidabile, oltre ad affidarsi ai numerosissimi Newsgroup presenti su Internet oppure alla corposa documentazione presente in tutte le distribuzioni rilasciate, è opportuno rivolgersi (a pagamento) alle società che creano le distribuzioni ufficiali di Linux (come per esempio Caldera e RedHat).

In pratica quello che si paga acquistando una distribuzione ufficiale di queste società, è una sorta di rimborso spese per la creazione del set di CD della distribuzione che comprende anche il supporto tecnico per un periodo più o meno limitato.

Considerando il costo modestissimo di tali distribuzioni ufficiali (come esempio riporto quello della distribuzione Redhat - quattro CD - che costa poco più di 50 mila lire) conviene soprattutto per società che hanno deciso di investire su Linux comprare le distribuzioni ufficiali.

Tutto il software non commerciale che viene sviluppato per Linux è normalmente proposto con licenza Open Source: tale licenza permette di modificare a piacere il codice sorgente (sempre allegato all'applicazione) con l'unica limitazione che una volta modificato esso debba essere reso disponibile su Internet alla comunità internazionale.

A tale tipo di licenza hanno cominciato ad aderire anche grosse “Corporations”, come per esempio Netscape, la quale alla mezzanotte del 31 marzo 1998 ha reso disponibile il codice sorgente del suo famosissimo browser internet “Communicator”. In questo modo chiunque può modificare a proprio piacimento le applicazioni Open Source contribuendo in definitiva a migliorare i prodotti e determinando anche una notevole cooperazione tra gruppi differenti per lo sviluppo di una certa applicazione.

Tornando alle applicazioni disponibili per Linux, nella seguente tabella riassumiamo quelle più importanti rimandando per un elenco esaustivo ad alcuni siti internet come il bellissimo http://www.linuxapps.com oppure come http://www.conecta.it o http://www.boutell.com

TABELLA 2 - Applicazioni di punta presenti in ambiente LINUX

TIPO APPLICAZIONE

NOME

Browser Intenet

Netscape Communicator

FTP Client

IglooFTP, XMFTP

Suite Office

Staroffice, Applixware

Manipolazione Grafica

Gimp

Grafica Postscript

Acrobat Reader, Ghostview

Multimedialità

Real Video, Real Audio, MTV (MPEG 3 e DVD), mixer, CD Player, lettori vari qualunque formato audio, karaoke, supporto per telecamere, schede TV, schede radio, scanner, masterizzatori, encoder MP3

Programmazione

Qualunque tipo di linguaggio, tool di sviluppo, debuggers, compilatori, etc..

Comunicazioni

Supporto di accesso remoto, FAX, funzioni di callback, VNC (controllo remoto di macchine multipiattaforma)

Window manager

KDE, WindowMaker, Fvwm, Qvwm (simile a Windows 98)

WEB Server

Apache, Squid

Mail Server

Sendmail e derivati

Data Base

Oracle, Informix, DB2, Postgres

La tabella precedente, lungi dall'essere esaustiva, ha solo lo scopo di dare una panoramica di quello che si può trovare in ambiente Linux; dalla tabella comunque si evince subito che Linux non è un sistema operativo disegnato per i giochi: infatti le poche applicazioni per così dire "ludiche" non possono neanche lontanamente competere con i giochi presenti in ambiente Windows 95/98; comunque è anche vero che solo tre anni fa parlare di "multimedialità" in ambiente Linux era un po' un eresia, mentre negli ultimi tempio, come si nota leggendo la tabella, le applicazioni in ambito multimediale sono fiorite in maniera impressionante, senza comunque raggiungere ancora il livello di semplicità presente in ambiente Microsoft.

Pertanto in un futuro non remoto, potremmo assistere ad una crescita esponenziale, ed anche di qualità di giochi in ambiente Linux.

Per inciso, il libro che state leggendo, è stato interamente scritto utilizzando la suite StarOffice 5.0, una concorrente temibile di Office 97, la quale, tra l'altro, è assolutamente gratuita.

Bene, dopo questa introduzione piuttosto lunga, ma doverosa, passiamo finalmente alla descrizione di come si installa una distribuzione Linux; prenderemo in considerazione una distribuzione Linux Red Hat 5.2.

CAPITOLO 5 - Prepariamo la macchina per installare Linux

Bene, partiremo dal punto di vista di una persona che abbia sul suo p.c. già installato Windows 98 e che intenda installare anche Linux su un altro disco o su un'altra partizione, in maniera da cominiciare a sperimentare questo sistema operativo.

Installeremo la versione Linux Red Hat 5.2 (nel caso in cui al momento della lettura questa versione non sia più l'utima uscita, niente paura, poiché la filosofia della installazione resta sempre la stessa a parte alcune lievi modifiche e migliorie).

Ovviamente si pone subito un problema: come faccio ad installare Linux senza perdere i miei dati ? Devo fare lunghi e penosi backup dei dati, ripartizionare il disco e reinstallare Windows e tutti i miei dati ? Oppure devo comprare un altro disco ? O comprare un tool software come Partition Magic per ripartizionare in maniera indolore ???

Niente di tutto questo !!! In tutte le distribuzioni Linux e quindi anche nella Red Hat esistono a corredo tutta una serie di utility per facilitare la vita agli utenti DOS in generale e Windows in particolare. Tra di esse quella che andremo ad usare è l'utility FIPS, che permette alla stessa stregua di prodotti come Partition Magic di partizionare in maniera indolore l'hard-disk.

L'ipotesi che faremo è quella di avere sul nostro p.c. un unico hard-disk di capacità 4.3 Gb e di volere riservare per la nostra partizione Linux 1.3 GB (più chesufficienti considerando il fatto che una installazione completa di Red Hat occupa circa 900 MB, di cui, come vedremo in seguito, molti assolutamente non necessari (come per esempio la corposa documentazione presente in lingue come il turco, il greco, il cinese o il finlandese !).

La prima operazione da compiere è quella di effettuare un defrag del disco rigido, in maniera da compattare tutto lo spazio libero.

Dopodichè si effettuano le seguenti operazioni:

· Creare un dischetto di boot Windows 95

· copiarci sopra i file fips.exe e restorrb.com (si trovano nella directory \RedHat\dosutils del cd-rom)

Una volta creato il dischetto di boot, è opportuno (ma non necessario) effettuare il boot da dischetto ed eseguire l'utility fips; tale utility come prima cosa chiede di effettuare un salvataggio della tabella delle partizioni (partition table) onde preservarsi da eventuali problemi: infatti la presenza sul dischetto del programma restorrb è fondamentale proprio per effettuare, in caso di problemi, il ripristino della partition table allo stato originario.

Dopo che la partition table è stata salvata, fips propone la suddivisione dell'hard disk in due partizioni: la dimensione delle due partizioni può essere modificata in modo da arrivare ad un dimensionamento sufficiente. Nel nostro caso agiremo sulle freccette della tastiera in maniera da impostare la nuova partizione ad una dimensione di 1.3 GB.

Fips mostrerà un messaggio di questo tipo:

: 3GB : 1.3GB

Una volta dimensionata in maniera opportuna la nuova partizione faremo scrivere a fips la nuova partition table.

A questo punto facendo ripartire la macchina ed eseguendo fdisk dovremmo notare, se tutto è andato bene, due partizioni:

· una partizione fat (16 o 32 ) di 3GB;

· una partizione NON DOS di 1.3 GB.

La partizione NON DOS deve a questo punto essere cancellata.

In questo modo lo spazio recuperato cancellando la partizione NON DOS sarà quello che a questo punto utilizzeremo per installare Linux.

CAPITOLO 6 - Preparazione del dispositivo di Boot di Linux

Per effettuare il boot Linux allo scopo di iniziare l'installazione del nuovo sistema operativo, occorre prima decidere da quale dispositivo effettuare il boot. Ciò poiché le ultime distribuzioni RedHat vengono rilasciate normalmente du cd-rom di tipo bootable cioè cd-rom da cui è possibile effettuare direttamente il boot.

Normalmente da un paio d'anni a questa parte i bios dei p.c. Permettono di specificare tra i dispositivi di boot anche il lettore cd-rom; se questo fosse il caso del vostro p.c., tutto quello che dovete fare per effettuare il boot Linux necessario ad iniziare l'installazione, è inserire il cd-rom nel lettore ed accendere il computer.

In questa trattazione, comunque, partiremo dall'ipotesi che il bios del nostro p.c. non sia così evoluto da permettere il boot da cd-rom; in questo caso si renderà necessario creare il set di dischetti di boot di Linux.

Ho parlato di set di dischetti di boot: in realtà per installare Linux su una macchina che dispone di lettore cd non bootable è necessario solo un dischetto; comunque è utile sapere che l'installazione di Linux è possibile anche da hard-disk (partizione Dos-Windows) da rete, tramite protocollo FTP, protocollo NFS, oppure collegandosi ad un server SAMBA (in pratica qualunque macchina con sistema operativo Microsoft) . Tali modalità di installazione richiedono la creazione di un secondo dischetto, chiamato Supplementary Disk; esiste inoltre anche un terzo dischetto chiamato Rescue Disk (letteralmente disco di sopravvivenza) che permette in caso di grossi problemi, la ripartenza del sistema operativo in una modalità simile alla modalità provvisoria di Windows 98.

Pertanto è opportuno creare il set di dischetti completo: per fare ciò esiste nella directory \Redhat\dosutils (per intenderci la stessa che contiene i moduli fips e restorrb) l'utility rawrite.

Per creare i dischetti di boot, supplementary e rescue procedere come segue:

· eseguire rawrite.exe

· alla richiesta del file di cui fare l'immagine sul dischetto digitare nei singoli tre casi: d:\redhat\images\boot.img, d:\redhat\images\supp.img, d:\redhat\images\rescue.img dove d:\ abbiamo supposto essere l'unità logica del cd-rom

In questo modo l'utility rawrite creerà il set di tre dischetti di Linux Red Hat.

Bene, siamo finalmente pronti per iniziare la installazione vera e propria di Linux.

CAPITOLO 7 - Installazione di una distribuzione Red Hat

Inseriamo il dischetto di boot di Red Hat ed accendiamo la macchina: dopo i soliti messaggi del BIOS, della RAM etc. apparire subito una schermata di "Welcome" da parte della Red Hat, in fondo alla quale vi è una specie di prompt con scritto nel 99% dei casi l'unica cosa da fare è quella di premere il tatso . Solo raramente è necessario, avendo macchine particolari con dispositivi altrettanto particolari, dare dei parametri di avvio da passare al boot del sistema operativo; comunque tale caso non rientra in questa trattazione e quindi lo trascureremo.

Una volta effettuato invio il dischetto effettua il vero e proprio boot che fornisce una sbrodolata lunghissima di messaggi di sistema; con un buon colpo d'occhio e un po' di conoscenze di base si possono risconoscere tra gli altri la memoria riconosciuta da Linux, il tipo di hard-disk e cdrom, le eventuali controller SCSI, etc. Non vi aspettate di vedere messaggi riguardanti la scheda audio: per essa come per altri dispositivi bisogna fare un discorso a parte che tratteremo successivamente.

Finalmente, una volta finito il boot, appare la prima schermata, per così dire grafica, in cui la Red Hat vi ringrazia ecc. ecc.. Premendo viene richiesta la lingua di installazione; se non siete troppo pratici di inglese, conviene selezionare la lingua italiana, anche se vi troverete in alcuni casi durante l'installazione, con frasi metà in italiano e metà in inglese: questo è sicuramente un difetto di gioventù della distribuzione, poiché la verrsione 5.2 è la prima che permette di selezionare la lingua di installazione.

Un'avvertenza: selezionando l'italiano, anche parecchi comandi e messaggi del sistema operativo verranno mostrati in italiano, anche qui con alcuni misti d'inglese !

La schermata successiva chiede l'impostazione della tastiera: selezionate "it".

Successivamente viene richiesto il tipo di installazione: supponendo che la nostra macchina abbia il lettore cd selezioniamo "local cdrom". Accenniamo comunque al fatto che la installazione di una distribuzione Linux Red presenta una enorme versatilità, poiché essa può essere installata, oltre che dal canonico cd-rom, anche da hard-disk con partizione DOS, oppure tramite una rete, utilizzando protocolli di comunicazione tipo FTP, NFS, SAMBA (non vi preoccupate di queste sigle se non le conoscete: nel prosieguo del libro esse verranno dettagliatamente descritte.

Andando avanti, viene chiesto quale tipo di installazione fare: scegliamo "custom" poiché in questo modo possiamo avere un maggiore controllo dei pacchetti da installare.

Proseguendo con l'installazione, arriviamo ad uno dei punti cruciali: la creazione della partizione/partizioni Linux e dell'area di swap.

Come in ambiente Microsoft, così anche in ambiente Unix in generale e Linux in particolare esiste l'area di swap (Sarebbe più corretto ribaltare il senso della frase, poiché è stata la Microsoft a copiare il concetto di area di swap dagli altri sistemi operativi): per chi non la consosce, l'area di swap si può identificare con il concetto di memoria virtuale. La memoria virtuale è in pratica una porzione di spazio su disco formattata in un modo particolare che viene usata dal sistema operativo come fosse a tutti gli effetti memoria fisica; in questo modo viene esteso l'ammontare della memoria globale superando il limite della memoria fisica (p.es se una macchina ha 32 MB di RAM ed un'area di swap di 50MB, per il sistema operativo è come se essa avesse 82 MB di RAM. Naturalmente il rovescio della medaglia dell'uso di memoria virtuale in luogo della memoria fisica è che la prima è enormemente più lenta della seconda (stiamo parlando di tempi di accesso dell'ordine dei millisecondi in luogo di nanosecondi per accedere alla RAM) oltre ad utilizzare una prozione di spazio disco che non può essere in nessun modo acceduta dalle applicazioni e dagli utenti.

Bene, tornando alla creazione della partizione Linux (il cosiddetto Filesystem) e dell'area di swap, vi consiglio di usare Fdisk in luogo di DiskDruid; la procedura di installazione propone tutte e due le modalità, ma Fdisk è sicuramente un tools più potente di DiskDruid.

Come per l'ambiente DOS/Windows, anche l'uso di fdisk sotto Linux potrebbe dare esiti spiacevoli in caso di errore: pertanto prestate grande attenzione a quello che fate !!!

Appena entrati in fdisk, conviene digitare "p" comando che visualizza l'attuale tabella delle partizioni; in risposta a tale comando, sempre considerando il nostro esempio di partenza ( vedi Capitolo 5) dovremmo avere una situazione più o meno di questo genere:

Command (m for help): p

Disk /dev/hda: 64 heads, 63 sectors, 782 cylinders

Units = cylinders of 4032 * 512 bytes

Device Boot Start End Blocks Id System

/dev/hda1 * 1 305 3014848+ 6 DOS 16-bit >=32M

Per avere il menù dei comandi disponibili basta digitare "m".

Creiamo adesso la partizione Linux e l'area di swap: in realtà potremmo anche creare più filesystems Linux, ma per semplicità utilizzeremo tutto lo spazio disco disponibile (meno ovviamente lo spazio che utilizzeremo come area di swap).

Avendo a disposizione 1.3Gb di spazio, decidiamo di creare un filesystem Linux di 1.2Gb ed un'area di swap di 100Mb; questa scelta è solo di esempio, poiché normalmente una regola da rispettare è quella di creare un'area di swap la cui dimensione sia circa il doppio della RAM a nostra disposizione. Per esempio, se il nostro computer dispone di 32Mb di RAM, l'area di swap dovrà essere dimensionata almeno a 64Mb.

· digitiamo "n" (new partition);

· alla domanda "p" o "e" rispondiamo "p" (primary partition);

· alla domanda quale numero di partizione rispondiamo 2 poiché nel nostro caso la partizione numero 1 è quella su cui è installato Windows 98;

· alla richiesta di indicare la dimensione della partizione, rispondiamo +1200MB;

· bene adesso rifacciamo il comando "p" (print); dovremmo ottenere come risposta un messaggio del genere:

Device Boot Start End Blocks Id System

/dev/hda1 * 1 305 614848+ 6 DOS 16-bit >=32M

/dev/hda2 306 750 1200000 83 Linux native

A questo punto creiamo con lo stesso procedimento l'area di swap:

· digitiamo "n" (new partition);

· alla domanda "p" o "e" rispondiamo "p" (primary partition);

· alla domanda quale numero di partizione rispondiamo 3 ;

· alla richiesta di indicare la dimensione della partizione, rispondiamo +100MB;

· bene adesso rifacciamo il comando "p" (print); dovremmo ottenere come risposta:

Device Boot Start End Blocks Id System

/dev/hda1 * 1 305 614848+ 6 DOS 16-bit >=32M

/dev/hda2 306 750 1200000 83 Linux native

/dev/hda3 751 782 100000 83 Linux native

Come si nota con fdisk abbiamo in realtà creato due partizioni Linux, mentre in realtà avremmo dovuto creare la partizione primaria Linux (quella, per intenderci, di 1.2Gb) e l'area di swap di 100Mb. Niente paura, non abbiamo sbagliato qualcosa nel procedimento: fdisk di default (per definizione) crea sempre partizioni Linux. Adesso ci resta solamente da modificare il tipo di partizione dell'area di swap, per farla diventare effettivamente un'area di swap e non un filesystem:

· digitare t;

· alla risposta Partition number (1-4): digitare nel nostro caso "3";

· fdisk risponde con il seguente messaggio: Hex code (type L to list codes): digitare "L";

· fdisk ci mostra a questo punto l'elenco dei filesystem supportati con i codici esadecimali corrispondenti:

0 Empty a OS/2 Boot Manag 65 Novell Netware a6 OpenBSD

1 DOS 12-bit FAT b Win95 FAT32 75 PC/IX a7 NEXTSTEP

2 XENIX root c Win95 FAT32 (LB 80 Old MINIX b7 BSDI fs

3 XENIX usr e Win95 FAT16 (LB 81 Linux/MINIX b8 BSDI swap

4 DOS 16-bit <32M f Win95 Extended 82 Linux swap c7 Syrinx

5 Extended 40 Venix 80286 83 Linux native db CP/M

6 DOS 16-bit >=32 51 Novell? 85 Linux extended e1 DOS access

7 OS/2 HPFS 52 Microport 93 Amoeba e3 DOS R/O

8 AIX 63 GNU HURD 94 Amoeba BBT f2 DOS secondary

9 AIX bootable 64 Novell Netware a5 BSD/386 ff BBT

· Come si può notare la partizione Linux di swap (l'area di swap) ha un codice esadecimale "82": pertanto alla domanda di fdisk Hex code (type L to list codes): si deve rispondere con "82";

Bene a questo punto la nostra partition table dovrebbe essere più o meno così:

Device Boot Start End Blocks Id System

/dev/hda1 * 1 305 614848+ 6 DOS 16-bit >=32M

/dev/hda2 306 750 1200000 83 Linux native

/dev/hda3 751 782 100000 82 Linux swap

Possiamo a questo punto arrivare all'atto conclusivo dell'operazione di creazione del filesystem e dell'area di swap: la scrittura effettiva su disco della nuova partition table: pertanto digitiamo "w" e fdisk scriverà sul disco la nuova partition table.

Dopo di ciò il controllo ritorna al programma di installazione di RedHat: esso ci chiederà in rapida successione di formattare l'area di swap, di formattare lo spazio disco riservato al nuovo filesystem Linux, nonché di specificare i punti di mount dei filesystems. E qui arriviamo ad un concetto del tutto nuovo per i neofiti di Unix in generale e di Linux in particolare: quello del punto di mount.

Il punto di mount in Unix rappresenta il collegamento tra una directory ed un dispositivo fisico: per esempio un disco rigido, una unità floppy, oppure anche un filesystem di un'altra macchina (Unix e non). I dispositivi fisici in Unix vengono rappresentati dai cosiddetti special files: essi sono, per l'appunto dei file speciali non editabili, che vengono utilizzati dal sistema operativo per identificare i componenti hardware della macchina. Per esempio le unità disco IDE vengono normalmente identificate con gli special files /dev/hda1, /dev/hda2, etc mentre per quanto riguarda le unità floppy gli special files normalmente sono del tipo /dev/fd0, /dev/fd1 e via dicendo.

Come si può capire facilmente, tutti questi particolari file vengono normalmente memorizzati in una directory chiamata /dev. Ora più in dettaglio, non è particolarmente comodo utilizzare questi special files per effettuare le normali operazioni di gestione dei files: pertanto è stato creato il meccanismo del punto di mount: la maggior parte dei dispositivi fisici e logici di memorizzazione (hard-disk, floppy, cd-rom) per essere disponibili all'utente devono essere montati indicando un nome simbolico che corrisponde ad una directory: per fare un esempio, per vedere il contenuto di un floppy sotto Linux, bisogna prima rendere tale dispositivo disponibile con un comando di mount del tipo "mount /dev/fd0 /mnt/floppy" dove "/mnt/floppy è una directory che deve essere stata precedentemente creata. Una volta effettuata l'operazione di mount, tutti i dati presenti sul floppy sono disponibili nella directory di cui sopra.

Viceversa, prima di togliere il floppy è opportuno effettuare l'unmount del dispositivo: umount /mnt/floppy oppure indifferentemente umount /dev/fd0.

E' necessario indicare i punti di mount (quindi le directory) per montare i vari dispositivi di hard-disk; pertanto durante l'installazione di RedHat vengono chiesti i punti di mount del filesystem "root" di Linux e della partizione Windows 98. Normalmente il punto di mount del filesystem Linux viene chiamato "/" come standard Unix, mentre per quanto riguarda la partizione Windows 98, il punto di mount lo chiameremo "/discoc". Avrete sicuramente notato che in Unix la sintassi delle directory è diversa da Dos+: in Dos le directory windows, per esempio ha come path "\windows", mentre in Unix sarà "/windows".

Una volta che le nostre partizioni sono state definite viene richiesto di formattarle (ovviamente le nuove, cioè il filesystem Linux, chiamato ext2fs e l'area di swap)

Finalmente arriviamo al momento cruciale della installazione di Red Hat: quali pacchetti installare ?

Nel nostro esempio, disponendo di 1.3Gb potremmo tranquillamente selezionare l'opzione "installa tutto": in questo modo verrebbero "sparati" sul nostro filesystem root la bellezza di 900MB di software.

Ma quello che vogliamo fare qui è di iniziare a capire quali sono le applicazioni ed i servizi interessanti in Linux, e quali di queste applicazioni/servizi sono ormai superati e quindi divenuti ormai assolutamente opzionali.

Senza entrare in un dettaglio piuttosto spinto, possiamo tranquillamente dichiarare che l'installazione completa della distribuzione Red Hat è francamente troppo: che ve ne fate, per esempio, di tutta la documentazione Linux in una decina di lingue, tra cui il giapponese, il cinese, il turco, il coreano, etc... ?

Oppure, sono ancora utili tutti quei programmi di publishing tipo Emacs o Tex/Latex, quando ormai anche in ambiente Linux sono presenti delle suite Office professionali, in grado di competere con Microsoft Office ?

Quindi quello che faremo nel nostro esempio, è di effettuare una scelta ponderata dei vari pacchetti da installare, senza entrare nel dettaglio spinto di considerare un pacchetto alla volta (una operazione dle genere comporterebbe una perdita di tempo di qualche ora !)

Ipotizziamo quindi che la nostra macchina venga utilizzata in una rete locale, nella quale siano presenti sia altre macchine Linux che macchine con sistema operativo Microsoft (windows 95/98, NT); questo scenario è quello che normalmente presente in aziende medio/piccole oppure all'interno di particolari settori di grosse Società. In tali contesti le macchine Linux vengono utilizzate come server Internet/Intranet , come firewall/proxy, come printer server oppure come macchine di repository o server di dati (su data base).

Installaremo pertanto tutto quello che interessa problematiche di networking: Samba, NFS, tutti i protocolli TCP/PPP, le funzionalità di WEB Server, di FTP, di printer server, in generale tuttle le funzionalità di networking.

Inoltre tutto ciò che riguarda lo sviluppo e la compilazione di applicazioni (in modo particolare tutto ciò che riguarda il "c/c++ language"), deve per forza essere installato anche se la macchina non sarà destinata come macchina di sviluppo di applicazioni; ciò si rende necessario poiché la maggior parte delle applicazioni Linux disponibili su Internet come nei CD-ROM allegati nelle riviste di informatica vengono distribuite in forma di codice sorgente (per assicurare la portabilità sulla maggior parte delle piattaforme Unix presenti). Inoltre anche la ricompilazione del kernel di Linux (operazione che, come vedremo nel seguito, si rende necessaria nella maggior parte delle installazioni per far funzionare alcuni dispositivi hardware come schede audio, schede scsi, schede radio/tv) necessita dell'ambiente di sviluppo e di compilazione del "c", poiché Linux come tutti gli altri sistemi Unix, è scritto quasi completamente in "c".

Nel precedente capoverso abbiamo introdotto alcune parole misteriose per i neofiti dei sistemi operativi Unix: Samba, NFS, kernel... Non ci preoccupiamo per il momento di questi concetti, questi come tanti altri verranno ampiamente sviluppati nel prosieguo del libro. D'altronde l'idea di scrivere un libro del genere mi è venuto anche allo scopo di far avvicinare il maggior numero di persone a questo bellissimo sistema operativo ed insegnare loro ad utilizzarlo.

Pertanto una volta finita l'installazione di Red Hat, prima di cominciare ad usare, configurare ed ottimizare Linux, e prima di iniziare ad installare le applicazioni di punta, nel manuale verrà fatto un minicorso Unix con cenni all'architettura del sistema operativo, alla gestione dei file, degli utenti, nonché una descrizione dei comandi fondamentali e un mini-mini corso sul "vi", l'editor Unix per definizione, particolarmente ostico per chi inizia ad utilizzarlo, ma particolarmente potente una volta appreso.

Tornando ai pacchetti da installare, se il nostro p.c. dispone di scheda audio e di cd-rom è opportuno installare il set di applicazioni che nella installazione Linux viene definita come "multimedia machine"; inoltre sono pacchetti importanti quella che riguardano lo sviluppo di applicazioni "X" (l'ambiente grafico).

In ambito Unix, normalmente si lavora per la maggior parte del tempo in modalità "linea di comando" esattamente la stessa modalità del DOS nativo.

Con questa modalità si sfruttano comunque tutte le caratteristiche di interattività, multitasking, robustezza e velocità di questo sistema operativo.

Comunque lavorando in modalità linea di comando, vi sono anche degli aspetti negativi che si acuiscono particolarmente per coloro che sono meno esperti di Unix. Tanto per fare un esempio ormai inflazionato anche all'interno di questo libro, l'editor principe di Unix è il vi; esso è molto più potente, per esempio, del comando edit del DOS, oppure del Notepad di Windows, ma presente una enorme difficoltà iniziale per digerirne i comandi, anche quelli principali e più semplici (una volta installato Linux, provate a fare il comando "man vi"; vi verranno sparate una cinquantina di pagine di manuale Unix su questo editor.

Ecco quindi che dopo alcuni anni è sorta la necessità di creare un ambiente operativo con una interfaccia più amichevole: è quindi nato l'ambiente "X Windows", o più semplicemente "X" che propone una interfaccia grafica simile a quella di sistema operativi come MAC-OS, OS/2 e MS-Windows (l'ordine di declamazione è rigorosamente cronologico, poiché come molti non sanno e come succede sempre per ogni prodotto, la Microsoft non crea i suoi prodotti, ma li copia rigorosamente dalle idee delle altre società !

I giochi li possiamo anche installare, ma non aspettatevi molto di più dei classici Tetris, Pacman Majhong e Minesweeper, oltre ai solitari: come già detto in precedenza, Linux è un sistema operativo che ancora non presenta, una offerta di giochi simile a quella presente su altri sistemi operativi, Microsoft su tutti: comunque qualcosa si sta iniziando a muovere.

Avrete sicuramente notato che molte categorie di applicazioni sono presenti sia in ambiente console (quindi essenzialmente in modalità testo) che in ambiente "X": io vi consiglio di installare entrambi, poiché se è vero che le applicazioni in ambiente grafico sono più facili da usare, è anche vero che alcune di esse si appoggiano comunque sulle loro equivalenti in modalità testo, che tra l'altro offrono una maggiore velocità di esecuzione ed un maggior controllo di tutti i parametri opzionali.

Bene, ricapitolando, installeremo i seguenti tools:

· printer support

· X Windows System

· Mail/WWW/News tools

· DOS/Win Connectivity

· File Managers

· Graphics manipulations

· X Games

· X Multimedia Support

· Console Multimedia

· Networked Workstation

· Dialup Workstation

· Nfs Server

· SMB Connectivity

· Anonymous FTP

· Web Server

· Networked management Workstation

· C Development

· Development Libraries

· X Development

· C++ Development

A questo punto comincia finalmente l'installazione vera e propria della distribuzione.

Non pensate che il processo di installazione dei pacchetti sia una cosa terribilmente lunga: niente a che vedere con le installazioni di Windows 95/98 o NT ! Con i pacchetti scelti vengono installati più o meno 300MB di software che vengono letteralmente "sparati" sul vostro hard disk alla velocità della luce ! L'intero processo di installazione dei pacchetti dura, su una macchina pentium 166MHz (quindi neanche tanto veloce !) meno di 10 minuti.

Si vedono comparire sul monitor tutti i pacchetti che vengono installati: comunque, per non farsi venire il mal di testa alla fine della installazione è possibile conoscere con dettaglio la lista dell applicazioni installate, poiché durante l'installazione viene creato un file di log chiamato guarda caso install.log nella directory /tmp.

Finita l'installazione dei pacchetti il sistema riconosce automaticamente la presenza del mouse, e chiede se si voglionio emulare i 3 bottoni: rispondiamo di si, poiché tale opzione a volte è utile.

Successivamente arriviamo ad un altro punto spinoso: quello della configurazione della scheda video. Tale configurazione è di fondamentale importanza, poiché senza di essa non sarà possibile far partire l'interfaccia grafica (l'X Server, come già accennato), oppure tale interfaccia partirà con funzionalità limitate (per esempio in VGA a 16 colori).

Nella maggior parte dei casi la scheda grafica viene riconosciuta correttamente da RedHat e di conseguenza viene installato il pacchetto di X Server corrispondente. Per esempio, sul mio glorioso P.C. (Cyirix 166+, 32 MB RAM etc... praticamente già superato da due anni !) è presente una scheda grafica S3 Trio 64V+, immediatamente riconosciuta e automaticamente configurata. Comunque in alcuni casi, specialmente per schede grafiche recentissime, può succedere che l'installazione non riesca ad effettuare il riconoscimento, oppure riconosca la vostra scheda come fosse un'altra: in questo caso, onde evitare un probabile crash del sistema con conseguente fine anormale della procedura di installazione del sistema operativo e buttata a mare di almeno un'ora di lavoro (poiché in questo caso bisogna ricominciare tutto da capo !) è opportuno "skippare" l'installazione dell'X Server e studiare successivamente il problema. Nel libro viene dedicato un capitolo intero alla risoluzione di questo problema.

Nel nostro caso ipotizziamo di essere tra i fortunati la cui scheda grafica viene immediatamente riconosciuta in maniera corretta dalla procedura di installazione.

In questo caso, viene installato l'X server corrispondente, dopodichè vengono proposte delle configurazioni automatiche (la cosiddetta modalità "probe") relativamente alla frequenza del monitor ed alla risoluzione/risoluzioni proposte. In questa fase decidiamo di far fare tutto in maniera automatica; eventualmente se, in un secondo tempo non siamo soddisfatti del risultato ottenuto, potremo sempre modificare a piacere la configurazione grafica del sistema utilizzando la apposita utility chiamata Xconfigurator.

Dopo la configurazione della scheda grafica, arriva il momento di configurare la rete (il "network" per dirla all'inglese): tale operazione nella maggior parte delle installazioni per così dire "casalinghe" non è ovviamente necessaria, ma risulta essere fondamentale quando la nostra nuova macchina Linux debba essere inserita in una relatà di rete locale/geografica. Questa realtà è quella che normalmente si trova in qualunque ufficio di piccole/medie/grandi dimensioni in qualunque angolo del pianeta, ed è anche quella che abbiamo ipotizzato nel nostro esempio di partenza; pertanto anche nel nostro esempio configureremo la rete.

Quando si parla di configurare la rete durante una installazione Linux, quello che in realtà viene configurato è il protocollo noto come TCP/IP: questa sigla dovrebbe ormai essere conosciuta alla stragrande maggioranza dei lettori, anche quelli quasi completamente a digiuno di nozioni di informatica, poiché con essa viene identificato il protocollo di comunicazione della madre di tuttel le reti, cioè INTERNET. Senza entrare nel dettaglio di comprendere il meccanismo di funzionamento di tale protocollo, ed i pro ed i contro che lo contraddistinguono, possiamo dire che esso è oramai lo standard di fatto delle reti geografiche (intendendo per rete geografica una serie di reti locali distanti interconnesse tra di loro tramite opportune apparecchiature ed opportune linee di trasmissione). Configurando il protocollo TCP/IP sulla nostra macchina, potremmo quindi connettere essa sia alla nostra rete locale aziendale che alle reti geografiche in generale ed ad INTERNET in particolare.

Ovviamente nel caso di una macchina colegata ad INTERNET solamente tramite un modem, la configurazione di rete non deve essere fatta, ma deve comunque essere configurata la componente su linea seriale del protocollo TCP/IP, il cosiddetto PPP (Point to Point Protocol). La configurazione del modem e del protocollo PPP sarà argomento di un successivo capitolo in cui verrà spiegato il meccanismo di connessione ad INTERNET tramite un provider.

L'installazione di Red Hat ci chiede a questo punto informazioni relative al nostro I.P. Address (statico o tramite DHCP o BOOTP), e, nel caso di indirizzo statico al Netmask (la maschera di sottorete) al default Gateway, ai DNS (Domain Name Server) primari e secondari etc. Tutte queste informazioni normalmente in una azienda devono essere richieste all'amministratore della rete. Per quanto rigurada la scheda di rete, essa normalmente viene riconosciuta in modo automatico una volta che essa sia stata selezionata da quelle supportate di base dalla installazione di Red Hat; nel caso in cui la vostra scheda di rete non sia tra quelle supportate, oppure pur essendo supportata non venga riconosciuta per qualche misterioso motivo, il problema può comunque essere risolto successivamente tramite ricompilazione del kernel di Linux inglobando gli eventuali driver della scheda.

Proprio ultimamente, per lavoro, ho installato una macchina Linux con funzionalità di firewall (cioè con funzionalità di connessione controllata tra due reti) che aveva due schede di rete che di default non venivano riconosciute dalla installazione di Red Hat. Una volta installato il sistema operativo, è bastato ricompilare in maniera opportuna il kernel, includendo in esso i driver delle due schede di rete, è tutto è andato a posto.

Per inciso, la macchina che ho installata come firewall, è un vecchissimo 486 DX 50 con soli 8 MB di RAM e 370 MB di hard-disk; i firewall utilizzati sono TIS e IPFWADM, che tra l'altro è una funzionalità integrabile nel Kernel di Linux. Il tutto ovviamente a costo zero, visto anche la vetustà dell'hardware.

Per ottenere la stessa funzionalità in ambiente Microsoft avrei dovuto spendere oltre 10 milioni di lire (più o meno 5000 EURO) per l'acquisto di una hardware adeguato, del sistema operativo WINDOWS NT SERVER, nonché di un prodotto Firewall opportuno (i quali sono carissimi).

Un'altra dimostrazione della enorme superiorità di Linux rispetto a WINDOWS NT !!

Bene, siamo arrivati quasi alla fine della nostra installazione: ci restano da impostare poche altre cose tra cui l'orologio sul nostro fuso orario (selezionate "Europe/Rome" senza selezionare il settaggio dell'orologio hardware del p.c. !). Subito dopo ci vengono proposti i processi di sistema da far partire al boot della macchina.

Tali processi sono delle applicazioni di servizio tipicamente UNIX che permettono al sistema operativo di fornire tutta una serie di servizi all'utente: per esempio i processi atd e crond permettono agli utenti di schedulare delle attività a tempo per così dire unattended cioè senza la necessità di presenza umana. Tipico esempio di attività unattended è per esempio l'esecuzione di un File Transfer notturno, oppure un salvataggio automatico di una base dati.

Altri processi tipici sono i servizi di rete, i servizi NFS l'FTP Server, il SAMBA, il TELNET, la partenza di un Data Base Server, etc

Senza descrivere in dettaglio tutti processi possiamo dire che per il nostro esempio è opportuno fa partire tutti i processi proposti dalla installazione esclusi i seguenti:

· atd (basta nella maggior parte delle installazioni avere solo il crond attivo)

· pcmcia (se il p.c. È però un portatile, è necessario farlo partire)

· sendmail (a meno che non si voglia usare la macchina come server di posta elettronica)

· httpd (questo processo fa partire Apache il WEB Server più diffuso su INTERNET; fatelo partire se la vostra macchina deve diventare un server INTERNET/INTRANET)

E' rimasto solo da configurare la stampante: anche qui la installazione di Red Hat dimostra una grande versatilità, poiche ci permette di configurare sia una stampante locale (cioè fisicamente connessa al nostro p.c.) che stampanti di rete. In questo secondo ci viene offerta la possibilità di installare una stampante remota UNIX, oppure una stampante NOVELL, o ancora una stampante SAMBA (cioè una stampante connessa ad una macchina WINDOWS con protocollo di comunicazione NETBEUI, che è il protocollo Microsoft per eccellenza in ambito reti locali). Qui supponiamo di installare una stampante locale, e tale operazione risulta particolarmente semplice. Ci viene richiesto anche quale driver usare; se la nostra stampante non fosse tra quelle proposte dalla installazione, è comunque possibile selezionare driver generici sia in modalità testo che in modalità Postscript (la modalità grafica che viene usata negli ambienti UNIX).

N.B.: l'Installazione di una stampante di rete verrà trattata successivamente

Coraggio siamo arrivati agli ultimi due passi: il primo è banale poiché l'installazione ci richiede la password dell'utenza root: l'utenza root nei sistemi UNIX è l'equivalente dell'utenza Administrator in ambiente Windows NT. In partica root è il superutente con potere di "vita e di morte" su tutto ciò che accade nel sistema e su tutti gli utenti, per così dire "mortali" che usano il sistema.

Root è di norma l'unico utente che può effettuare lo shutdown o il reboot della macchina, oppure montare e smontare i file system.

Pertanto si capisce l'importanza di tale utenza, che di norma viene assegnata al cosidetto "amministratore del sistema", cioè il "guru" che lo ha installato e configurato.

Vista la potenza di tale utenza, è opportuno che la password di accesso non venga divulgata a tante persone, e soprattutto ad utenti non molto esperti od alle prime armi: il rischio è quello di non vedere ripartire più la macchina Linux !!.

La password che useremo nel nostro esempio è: charlie

Dopo la password viene richiesto di creare un bootdisk, utilissimo per pararsi il fondoschiena da improvvisi malfunzionamenti della procedura di Boot (per esempio record di boot rovinato o kernel cancellato inavverititamente).

L'utimo passo è quello della creazione del Boot Loader LILO: LILO sta per Linux Loader, ed in pratica è un piccolo programmino che faremo scrivere sul Master Boot Record del disco rigido.

Il Master Boot Record (MBR) è un particolare settore del disco rigido che permette l'avviamento dei sistemi operativi. In esso normalmente viene scritto un programmino che punta all partizione del disco su cui vi è il sistema operativo da caricare (p.es Windows 95/98). Tale programmino viene di norma chiamato Boot Loader: tipico esempio di Boot Loader è il menù di partenza di Windows NT

Abbiamo visto che Linux è in grado di riconsocere sul disco rigido precedenti installazioni di DOS/Windows 95/98. Pertanto nel LILO troveremo anche una sezione necessaria all'avviamento di tale sistema operativo. L'instazione ci propone come nomi simbolici per la partenza dei due sistemi "Linux" e "Dos". E' possibile comunque modificare tali nomi simbolici. Durante tale fase non è possibile invece modificare il sistema operativo di default all'accensione della macchina. Pertanto al prossimo reboot, se non verrà fatta alcuna operazione, partirà Linux e non Windows. Comunque imapareremo immediatamente nel prossimo capitolo a far partire anche Windows ed anche a modificare l'ordine di partenza dei sistemi operativi modificando il file di configurazione di LILO.

Complimenti ! L'installazione è finita !! Possiamo adesso rimuovere il floppy e riavviare la macchina (attenzione: rimuovete il cdrom non appena la macchina ha effettuato il reboot !!!)

Incrociate le dita e vediamo che succede !!! (Scherzo naturalmente, che volete che succeda, se siamo arrivati alla fine della installazione la partenza di Linux è garantita "spero" !)

CAPITOLO 8 - I primi rudimenti del sistema operativo

Se tutto è andato per il verso giusto, dovremmo vedere, all'atto del boot il prompt del LILO:

LILO:

questo prompt appare per 5 secondi (di default) poi, se non è stata effettuata alcuna operazione viene effettuato il caricamento del sistema operativo predefinito (Linux come abbiamo visto durante la descrizione della procedura di installazione della Red Hat).

Se invece premiamo il tasto vediamo apparire le etichette che identificano i sistemi operativi caricabili; nel nostro solito esempio avevamo definito "Linux" per il sistema operativo Linux e "Dos" per Windows 98.

Pertanto digitando "Dos", verrà caricato Windows 98.

IMPORTANTE: in ambiente Unix vi è differenza se scrivere comandi o nomi di file con le lettere maiuscole o minuscole: dare il comando "ls -la" fornisce, come vedremo la lista dei file contenuti nella directory, dare il comando "LS -LA" fornisce come risultato un messaggio di errore ("command not found")

Bene effettuiamo il caricamento di Linux: dopo tutta una serie di messaggi di sistema, che indicano i vari dispositivi hardware (ammontare di memoria, i dischi, mouse, scheda di rete, i vari processi che abbiamo deciso di caricare) arriviamo alla schermata di login:

Red Hat Linux release 5.2 (Apollo)

Kernel 2.2.1 on an i586

linuxcasa login:

Come si vede dal messaggio, viene indicata la distribuzione Linux (Red Hat 5.2 chiamata in codice "Apollo") il Kernel (in questo esempio l'ultimo nato, il 2.2.1) il tipo di processore (i586 indica la classe pentium I e compatibili come Cyrix e AMD) e per ultimo ci viene richiesto il login per accedere al sistema.

Digitiamo dunque "root" e premiamo ; il sistema ci risponde con la richiesta di password:

password:

a questo punto digitiamo la nostra password, che come detto è "charlie": bene, siamo entrati per la prima volta in un sistema Linux. E adesso che facciamo ? Se non sapete proprio nulla di Unix continuate a leggere i paragrafi successivi. Se invece avete già conoscenze di base dei sistemi Unix, potete saltare al prossimo capitolo, in cui cominceremo in dettaglio a vedere i vari aspetti di un sistema Linux e della sua configurazione.

CAPITOLO 9 - Cenni del sistema operativo UNIX

Come già accennato, questa sezione ha lo scopo di introdurre il neofita (il cosiddetto "newbie") nel mondo dei sistemi operativi UNIX. Chi ha dimestichezza con il DOS, non potrà notare, andando avanti nella lettura, le somiglianze tra quest'ultimo sistema operativo e UNIX. In effetti DOS può essere considerata una copia ridotta (e mal riuscita) di UNIX. Da esso ha ereditato la struttura a directory, la linea di comando, alcuni comandi (anche se la sintassi, come vedremo è differente) e poc'altro.

Comunque in questa sezione del libro daremo solamente dei concetti molto superficiali sul funzionamento di UNIX, nonché faremo una rapida carrellata sui comandi di uso più comune: per eventuali approfndimenti, esistono centinaia di pubblicazioni in libreria, ed inoltre un ottimo inizio di apprendimento può essere quello di leggere le bellissime "guide" del progetto LPD ("Linux Documentation Project"). Tali guide sono reperibili su Internet sul sito del progetto (se non ricordo male la URL è http://www.lpd.org); inoltre esse normalmente fanno parte delle distribuzioni Linux più comuni, come la RedHat. Sono normalmente memorizzate in formato "PS" cioè in formato "postscript": pertanto necessitano di appositi programma, il più famoso dei quali è senza dubbio ghostview, anch'esso presente su tutte le distribuzioni Linux.

UNIX, a differenza del DOS, è un sistema operativo di tipo multiutente: ciò significa che contemporaneamente possono lavorare sulla stessa macchina un numero praticamente illimitato di utenti (come vedremo la limitazione in effetti esiste, ed è dovuto ad alcuni parametri sia fisici della macchina, come per esempio la RAM a disposizione, sia di configurazione, come il numero massimo di sessioni e di processi contemporaneamente aperti).

Inoltre UNIX è un sistema operativo multitasking, cioè esso permette contemporaneamente (anche se in relatà non è così) di eseguire più applicazioni (o per dirla nel linguaggio UNIX, più processi).

La filosofia di base di Unix è quella del'utente e dei privilegi: tale filosofia, ripresa dai sistemi mainframe (tipo IBM MVS) e a sua volta ripresa da Microsoft Windows NT, concettualmente dice che ogni "cliente" di un sistema UNIX deve essere identificato da una utenza e da una password: ad ogni utenza è associato un particolare gruppo, il quale come dice la parola stessa è un raggruppamento di utenze simili. Ad ogni gruppo vengono infine assegnati più o meno privilegi. Più un utente ha privilegi e più esso è potente all'interno del sistema (insomma una vera e propria scala gerarchica). Un utente debole può pertanto effettuate all'interno di un sistema UNIX solo alcune operazioni: per esempio esso potrà solo vedere i file e le directory di sua proprietà od al massimo apparteneti al proprio gruppo, ma non potrà mai cancellare file non suoi, oppure chiudere e riavviare il sistema, montare filesystems di sistema, etc.

In cima a questa vera e propria gerarchia "piramidale" c'è il cosiddetto "Superutente", cioè l'utenza root: questa utenza è la assoluta padrona del sistema; essa può fare qualunque cosa, anche cancellare completamente il sistema operativo, oppure spegnere la macchina. Si capisce bene che l'utenza di root è pericolosissima, e di norma debba essere usata solamente dall'amministrazione del sistema e dai suoi collaboratori più stretti: i danni che ne possono derivare da un uso improprio da parte di utenti inesperti potrebbero essere incalcolabili.

Strettamente collegato al concetto di utente e di privilegio è il concetto di permesso di un file: ogni file presente sul sistema operativo è fornito di tutta una serie di attributi, i cosiddetti permessi: tali permessi identificano il proprietario del file, il gruppo a cui esso appartiene, la possibilità da parte di altri utenti di leggere, scrivere cancellare ed eseguire il file (nel caso quest'ultimo sia non un file di dati ma un modulo eseguibile di una qualsiasi applicazione. Esistono inoltre alcuni attributi accessori, non meno importanti, ma che esulano da questa elementare trattazione del sistema, in quanto coinvolgono solamente file particolari come i "deamon" e i "file speciali".

Come conseguenza a questa disanima su utenti, privilegi, file e permessi, cominciamo a vedere alcuni comandi UNIX:

ricordiamo comunque che per una descrizione ultra dettagliata di tutte le opzioni dei vari comandi UNIX, esiste un comando, che io definisco "fondamentale", che è il comando man nomecomando. Il man non è, come accade nel DOS un help dei comandi, ma molto di più: in pratica esso è proprio il manuale di descrizione dle comando in questione. In alcuni casi per alcuni comandi usare il man vuol dire prepararsi a scorrere qualcosa come 40 o più pagine ! Provate , per esempio, a dare il comando "man vi" e contate le pagine che vi verranno visualizzate in sequenza ! ( a proposito: per andare avanti di pagina in pagina, è necessario premere la barra spaziatrice).

ls: tale comando è l'equivalente DOS del "dir"; esso fa vedere l'elenco dei file presenti in una directory senza nessun'altra informazione. Inoltre con tale comando no si vedono i cosiddetti file di sistema, quelli cioè il cui nome comincia con il carattere ".".

ls -la: come sopra, ma con in più la visualizzazione degli attributi dei file, della data e ora di ultimo aggiornamento, nonché la visualizzazione anche dei file di sistema. Per fare un esempio, una volta entrati in Linux con l'utenza e la password di root, ci troviamo automaticamente nella directory root: digitando il comando "ls -la" ci troveremo di fronte ad una schermata di questo genere:

-rw-r--r-- 1 root root 65 mar 22 21:37 .TWM-errors

-rw------- 1 root root 0 mar 22 21:29 .Xauthority

-rw-r--r-- 1 root root 1126 ago 23 1995 .Xdefaults

-rw------- 1 root root 10404 mar 30 22:57 .bash_history

-rw-r--r-- 1 root root 24 lug 14 1994 .bash_logout

-rw-r--r-- 1 root root 347 mar 10 11:35 .bash_profile

-rw-r--r-- 1 root root 176 ago 23 1995 .bashrc

-rw-r--r-- 1 root root 182 ott 8 01:56 .cshrc

drwx------ 4 root root 1024 gen 27 17:52 .dosemu

Gli attributi che si notano sopra sono così descrivibili: il 1° può essere "-", "l", "d" che indicano rispettivamente nessuno attributo, link oppure directory. Dal 2° al 4° indicano i permessi di lettura, scrittura ed esecuzione ("r,w,x") relativi al proprietario del file. Dal 5° al 7° indicano i permessi di lettura, scrittura ed esecuzione per gli appartenenti allo stesso gruppo del proprietario. Dall 8° al 10° indicano i permessi di lettura, scrittura ed esecuzione per tutti gli altri utenti. Ovviamente, come già accennato, l'utente root può fare qualunque cosa su qualunque file. Per modificare i permessi ad un file, nonché la sua apparteneza ad un utente o ad un gruppo, valgono come sempre le regole ed i privilegi descritti sopra. Comunque, supponendo di essere l'utente root, i comandi di manipolazione degli attributi di un file sono i seguenti:

chmod: cambia i permessi al file. Si possono usare le lettere viste prima, oppure i numeri (massimo il numero 7"). Per esempio per dare i permessi di lettura e scrittura di un file a tutti gli utenti, il comando è: "chmod 666 nomefile". Per dare tutti i permessi ad un file il comando è in questo caso "chmod 777 nomefile".

chown: cambia il proprietario del file: chown nuovoproprietario nomefile

chgrp: cambia il gruppo di appartenenza al file: chgrp nuovogruppo nomefile

pwd:indica la directory in cui si staziona

cd: cambio directory, assolutamente identico al DOS

mkdir: crea una directory; mkdir /appoggio

rmdir: cancella una directory; rmdir /appoggio (attenzione: la directory deve essere vuota come nel DOS)

cp: serve a copiare file; cp pippo topolino. Utilizzando il parametro -R funziona come il comando xcopy di DOS (cp -R /appoggio/* /appoggio1/*)

mv: serve a muovere file; mv /appoggio/pippo /appoggio1/topolino. Si utilizza anche solamente per rinominare i file (infatti è l'equivalente dei comandi DOS move e ren)

rm: serve a cancellare file: rm pippo. Usato senza parametri viene chiesta la conferma della cancellazione del file. Usato con i parametri -r -f contemporaneamente, diventa una bomba ad orologeria per la sua pericolosità: infatti equivale al deltree di DOS con l'aggravante che sui sistemi UNIX non è possibile utilizzare, a fronte di file cancellati erroneamente, programmi di undelete. Io stesso, pochi mesi fa, nonostante l'esperienza ultradecennnale che mi ritrovo, ho effettuato il comando "rm -rf *" stando inavvertitamente sulla directory "/" (root directory) del mio sistema Linux in ufficio. Il risultato di ciò è stata la cancellazione sia di Linux che di Windows95 (poiché da Linux vedevo il filesystem di Windows95), con la conseguenza di imprecazioni ampiamente sopra i limiti della decenza e due giorni di lavoro buttati a re-installare il tutto (e meno male che avevo i backup dei dati più importanti !!)

more: serve a visualizzare il contenuto di un file; more pippo. La visualizzazione avviene una schermata per volta e può essere interrotta con il comando "q". Sulle piattaforme UNIX in generale, ma non su Linux, esiste anche il comando "pg" che è praticamente equivalente. Anche il comando cat serve più o meno alla stessa funzione, anche se normalmente si utilizza per altri scopi.

Dopo avere visto i comandi di base di un sistema UNIX, possiamo passare ad una rapida elencazione di altri comandi utili ma di uso più strettamente di sistema. Di essi viene data solo una sommaria descrizione rimandando il lettore al man del comando per avere ragguagli ulteriori (per utilizzare il manuale, basta digitare man nomecomando).

ln: serve a creare dei link (simbolici o fisici) tra due file. Si usa anche per spostare una directory, dove vi sono dei file non spostabili, su un altro file system senza dover reinstallare alcunchè.

tar,cpio: servono ad effettuare backup/restore di dati

dd: si usa per effettuare copie di file, di filesystem o di dispositivi; per esempio per effettuare una "diskcopy" di un dischetto si usa proprio questo comando, inserendolo in uno script (lo script UNIX si può paragonare ad un file batch del DOS)

vi: l'editor da linea comando per eccellenza sui sistemi UNIX. Potentissimo ma anche particolarmente ostico (specialmente all'inizio: mi ricordo di averlo odiato per oltre un anno, prima di iniziare ad apprezzarne le capacità !)

ps,top: servono a monitorare i processi in esecuzione in macchina, nonché il loro utilizzo di memoria e cpu

kill: serve a cancellare processi che non ne vogliono sapere di essere chiusi in maniera normale

find: serve a trovare file all'interno delle directory; per esempio è utile quando si cerca all'interno del sistema un file di cui non si conosce esattamente il nome e la directory

grep: serve a cercare parole e frasi all'interno di files. Usato in uno script in congiunzione al comando "find" ed al comando "ls" diventa un potentissimo strumento di ricerca all'interno dei files e delle directory. In ambiente Linux esiste su alcune distribuzioni il comando rgrep che in pratica è la sintesi dello script descritto in precedenza.

mount,umount: questo comando serve a montare filesystem. Ricordo che con il concetto di filesystem UNIX identifica i vari dispositivi: cdrom, floppy, filesystem NFS (cioè filesystems condivisibili appartenenti ad altre macchine UNIX presenti sulla rete). Pertanto con il comando mount si "montano" questi dispositivi. Per esempio per montare un cdrom sulla directory /mnt/cdrom basta dare il comando mount /dev/cdrom /mnt/cdrom (supponendo che, come accade per Linux, il dispositivo cdrom venga identificato dal sistema operativo come /dev/cdrom); per montare un floppy disk il comando sarà mount /dev/fd0 /mnt/floppy.

Con ciò abbiamo terminato questa velocissima carrellata sul sistema UNIX e sui suoi comandi in generale. Ovviamente avendo appena letto queste poche pagine ne saprete praticamente come prima (cioè nulla o quasi !) di UNIX, ma spero comunque che tali appunti così succinti possano esservi di un qualche aiuto, e, se non altro, vi possano avere incuriosito su UNIX a tal punto da spingervi a correre in libreria a comprare qualche libro sull'argomento ! Scherzi a parte, esistono anche sulla "Madre di tutte le reti" una miriade di pubblicazioni su UNIX. Basta cercarle con un po' di pazienza !

Bene passiamo finalmente al nostro amato Linux: iniziamo a configurarlo !!

CAPITOLO 10 - Effettuare TELNET ed FTP da macchine in rete

Problema facile facile da risolvere (la prima volta che l'ho affrontato ci ho messo mezza giornata !!!).

Le funzionalità di TELNET e di FTP sono fondamentali per il nostro server Linux, poiché è solo grazie ad esse che il nostro sistema può essere sfruttato come macchina multiutente. Inoltre è sempre comodo poter accedere con Telnet da remoto ad un server UNIX, poiché in questo modo qualunque attività di amministrazione del sistema (anche il riavvio !) può essere fatta senza la necessità della presenza fisica dell'amministratore del sistema sulla console. Inoltre è anche possibile eseguire applicazioni grafiche da remoto (il cosiddetto X-Terminal)

Per fare come al solito un paragone con Windows NT, per avere funzionalità simili su tale sistema è necessario disporre di un software di controllo remoto tipo Pc Anywhere, Remotely possible, VNC o simili.

Con le distribuzioni RED HAT e derivate (come la distribuzione Mandrake) una volta installato il sistema non è possibile effettuare da una qualsiasi macchina in rete nè FTP con l'utenza root nè TELNET con qualsiasi utente (messaggio di “Access Denied” per FTP e di “Invalid Login” per TELNET).

Analizziamo per primo il problema del Telnet: esso si presenta poiché non sono state ancora abilitate le cosiddette pseudotty: esse sono in pratica le sessioni telnet che è possibile effettuare da remoto. Per l'abilitazione basta inserire tali pseudotty nel file /etc/securetty:

tty1

tty2

tty3

tty4

tty5

tty6

tty7

tty8

ttyp0

ttyp1

ttyp2

ttyp3

ttyp4

ttyp5

ttyp6

ttyp7

ttyp8

ttyS0

ttyS1

In neretto sono evidenziate le ttys che abbiamo aggiunto (da ttyp0 a ttyp8): si nota che in questo modo sarà possibile avere fino a 9 sessioni contemporaneamente aperte in rete (più ovviamente le sei sessioni sulla console più eventualmente quella grafica.

Per passare da una sessione all'altra sulla console del sistema basta tenere premuta la combinazione di tasti e con Fx uguale a F1 F2 F3...F7.

Con questa modifica il login in rete viene consentito, ma il processo di login stesso a volte è un pò lento: se questo fosse il caso conviene eliminare il file securetty. ATTENZIONE !!!!: se invece di eliminare il file lo si svuota solamente (cioè resta il file vuoto) è finita così !! poichè non è più possibile accedere da nessuno dei ttys esistenti (nemmeno dalla console !!!!!). In questa sciagurata ipotesi, si può comunque risolvere il problema utilizzando i rescue disk del set dei dischetti di installazione, ma le operazioni da fare sono comunque destinate ad utente esperto.

Avrete certamente notato che abbiamo aggiunto nel file securetty anche altre due entrate: ttyS0 e ttyS1. Tali pseudotty rappresentano le connessioni Telnet tramite porta seriale: in parole povere, abilitando tali pseudotty si permette di accedere al sistema con il Telnet anche utilizzando un modem (infatti ttyS0 e ttyS1 rappresentano le due porte seriali COM1 e COM2 che normalmente sono presenti su tutti i p.c.).

Parlando invece del secondo problema, quello dell'FTP, per poter effettuare FTP con qualunque utenza definita nel sistema, basta eliminare il file /etc/ftpusers. Se comunque si desidera avere un certo controllo sull'accesso ftp degli utenti, ma permettere a root di accedere, basta eliminare la riga root dal file.

CAPITOLO 11 - Configuriamo l'X-Server

Come sicuramente ricorderete, durante l'installazione di RedHat, ad un certo punto ci è stato chiesto di configurare l'X-Server. Nel caso in cui la nostra scheda grafica sia stata riconosciuta senza problemi dal sistema, l'installazione dovrebbe essere andata a buon fine e la vostra interfaccia dovrebbe partire senza problemi. Per farla partire, basta digitare dalla linea di comando "startx". Dopo alcuni secondi, dovrebbe apparire un desktop tipo Windows 95, con barra degli strumenti, un'applicazione chiamata "Control Panel" (l'equivalente più o meno del Pannello di Controllo dei sistemi targati Microsoft ed una finestra terminale chiamata "xterm".

Se tutto ciò non succede, vuol dire ovviamente che vi sono dei problemi di configurazione: questi possono essere banali o più complessi. Cerchiamo ora di affrontare e risovere quelli che normalmente si pongono ai "newbies".

Innanzitutto parliamo un attimo dell'X-Server presente nelle distribuzioni Linux, chiamato Xfree86.

Tale prodotto, presente già nelle primissime distribuzioni di Linux, viene manutenuto ed implementato da un gruppo di volontari sparsi nel mondo e collegati tra loro tramite internet. Il sito ufficiale del progetto è http://www.xfree86.org sul quale è possibile trovare le versioni aggiornate dell'X-Server, nonché gli aggiornamenti relativi alle nuove schede grafiche supportate.

Il prodotto normalmente è installato nella directory /usr/X11R6/bin dove facendo il comando "ls -la X*" otteniamo come risultato una schermata del genere

lrwxrwxrwx 1 root root 21 mar 9 09:51 X -> /usr/X11R6/bin/XF86_SVGA

lrwxrwxrwx 1 root root 8 mar 8 17:48 X.Linux -> Xwrapper

-rwxr-xr-x 1 root root 154708 ott 10 1998 XF86Setup

-rwxr-xr-x 1 root root 2734468 ott 10 1998 XF86_SVGA

-rwxr-xr-x 1 root root 1727132 ott 10 1998 XF86_VGA16

-rwxr-xr-x 1 root root 80676 ott 15 1998 Xconfigurator

-rwxr-xr-x 1 root root 27499 ott 10 1998 Xmark

-rwxr-xr-x 1 root root 2491100 ott 10 1998 Xprt

-r-xr-xr-x 1 root bin 1673 ago 26 1997 Xsetup

-rws--x--x 1 root root 4272 ott 10 1998 Xwrapper

Come si vede, sono presenti due file fondamentali: l'XF86_SVGA e l'XF86_VGA16. Il primo è la parte di Xfree86 che contiene di norma la maggior parte dei driver delle schede grafiche. Invece il file XF86_VGA16 rappresenta il driver generico VGA a 16 colori. Ovviamente esistono molti altri driver specifici per schede grafiche come S3, ATI, Matrox, etc..

La riga lrwxrwxrwx 1 root root 21 mar 9 09:51 X -> /usr/X11R6/bin/XF86_SVGA

non rappresenta un vero e proprio file ma un cosiddetto link, cioè un collegamento, come già accennato nei precedenti capitoli. In pratica questo link tra "X" e l'X-Server è necessario, poiché Linux conosce l'X-Server sempre con il nome "X". In questo modo, per cambiare X-Server (per esempio usare la parte di Xfree86 relativa alla scheda VGA, oppure usare proprio un altro X-Server differente da Xfree86), basta cancellare il link tra X e l'X-server vecchio e ricrearlo facendolo puntare al nuovo.

Se la procedura di installazione di RedHat ha riconosciuto la vostra scheda grafica, allora il problema potrebbe essere nella scelta della risoluzione grafica (256 colori, 64K o 16M di colori), oppure nella frequenza del monitor da voi posseduto. In ambedue i casi ci viene in soccorso una utility propria del server Xfree86, normalmente contenuta in tutte le distribuzioni Linux, la cosiddetta "Xconfigurator". Lanciando tale comando, parte un'applicazione a finestre che ci permette di configurare tutte le possibili opzioni sia della scheda grafica che del modem. Tentiamo comunque di usare l'opzione "Probe" che l'applicazione ci propone sia durante la configurazione della scheda grafica che del monitor. Ovviamente se tale opzione non va a buon fine, possiamo sempre configurare a mano il tutto, indicando, per esempio, l'ammontare di RAM della nostra scheda, il tipo di monitor (SuperVga, interlacciato,etc etc), la profondità del colore (8 bpp, che sono 256 colori, 16 bpp, che sono 64K di colore...) nonché la risoluzione (640x480,800x600,1024x768). Tentate comunque all'inizio di configurare le opzioni minime, 8bpp, 640x480, per verificare il buon funzionamento della vostra scheda.

Se comunque l'X-Server non ne vuole sapere di funzionare, potete provare ad utilizzare l'utility "SuperProbe" per verificare che la vostra scheda sia riconosciuta da Linux.

Se la vostra scheda viene riconosciuta come "Generic VGA", allora due sono le strade da percorrere: la prima, molto semplice ma anche riduttiva, è di usare la vostra scheda solamente in modalità VGA, cioè con risoluzione 640x480 a 16 colori. Tale modalità può essere accettabile nella maggior parte dei casi, ma non quando si naviga in Internet.

La seconda strade, è quella di vedere se la propria scheda venga supportata da altri X-Server differenti dall'XFree86.

Per la prima soluzione, basta effettuare le seguenti operazioni:

· dare il comando "rm X";

· creare un nuovo link con il comando "ln -s XF86_VGA16 X"

In questo modo digitando nuovamente il comando startx, il nostro ambiente grafico partirà sicuramente, ma in modalità 640x480 a 16 colori.

Parliamo adesso della seconda soluzione, cioè quella di cercare altri X-Server. Sfortunatamente, per quanto ne so, non esistono altri X-server gratuiti per Linux, mentre ne esistono di commerciali: i più famosi e completi sono Accellerated-X (http://www.xig.com ) e Metro-X (http://www.redhat.com). Il primo è molto buono, copre praticamente tutte le schede grafiche esistenti, ma costa parecchio; in compenso è possibile scaricare dal sito una demo funzionante solo 10 minuti e per giunta, se non ricordo male, un solo giorno, ma che comunque dà una certa idea del suo funzionamento. Il secondo invece è leggermente meno veloce del primo, ha una copertura di schede un poco più limitata ma ha il pregio di costare molto poco (addirittura mi pare che acquistando la versione ufficiale di Linux RedHat, contenente 4 CD, Metro-X sia compreso). Vi consiglio comunque di informarvi sulla compatibilità della vostra scheda grafica prima visitando i rispettivi siti.

CAPITOLO 12 - Conosciamo il Control-Panel

Bene, se state leggendo questo capitolo, vuol dire che l'X-Server è stato configurato e che siete riusciti ad entrare in ambiente grafico lanciando il comando “startx”. Come già accennato in precedenza il vostro desktop appare abbastanza simile a quello di Windows 95, anche se più semplice. La differenza più evidente è la mancanza assoluta di icone sullo schermo. Questo tipo di visualizzazione è data dal cosiddetto Window Manager, cioè un programma, lanciato dall'X-server che vi fornisce un ambiente grafico di lavoro. La distribuzione Red-Hat di default installa come Window Manager “Another Level” che si basa essenzialmente sul programma fvw95. In ambiente Linux, comunque sono presenti tantissimi Window Manager, alcuni presenti sulle varie distribuzioni, altri scaricabili liberamente da Internet o presenti sui CD-ROM allegati alle varie riviste specializzate.

I più famosi sono:

· KDE (assolutamente completo, poiché fa parte di un progetto mondiale di standardizzazione dei prodotti grafici in ambiente Linux)

· Enlightenment (molto grazioso, pieno di suoni)

· Gnome (non è un vero e proprio Window Manager, ma raggruppa vari programmi per realizzare una vera suite grafica).

· Qvwm (per i nostalgici di Windows 95 - è praticamente identico, anche nella grafica delle icone)

Tuuti questi Window Manager, ed altri ancora, sono scaricabili collegandosi ai siti canonici, http://www.linuxberg.com oppure http://www.linuxapps.com . Noi nel prosieguo del libro ci occuperemo essenzialmente di KDE, poiché pur essendo il più pesante in termini di risorse macchina (anche se per girare in maniera soddisfacentegli basta un pentium I di fascia bassa, tipo P75 o P90 e 24 o 32 MB di RAM), è quello più completo, più facile da configurare, nonché l'unico in italiano.

Comunque quello di cui voglio adesso parlare è il progranmma di configurazione per eccellenza di Red-Hat: il Control-Panel. Attraverso questa utility grafica, andremmo a configurare al meglio il nostro Linux, ed al tempo stesso ci addentreremo in alcuni concetti propri di questo sistema operativo.

12.1 Il Control-Panel

Il Control-Panel è l'utility grafica della distribuzione Red-Hat che aiuta l'utente finale nella operazione di configurazione del proprio sistema. In realtà questa utility non fa altro che richiamare tutta una serie di moduli di configurazione del sistema. Per richiamare tale utility, una volta fatto partire l'X-Server con il Window Manager Another Level (o fvw95 che dir si voglia), basta digitare nella finestra terminale in cui si vede la linea di comando di Linux il comando "control-panel".

A tale proposito, ricordiamo ( anche se probabilmente non è stato ancora detto in precedenza) che sui sistemi operativi UNIX, per eseguire un programma che è situato in una directory non compresa nel PATH di partenza dell'utente, è necessario essere nella directory in cui è situato il programma e digitare il seguente comando: ./nome_programma dove nome_programma è il nome del programma che vogliamo eseguire. In precedenza abbiamo scritto, per eseguire il Control-Panel, il comando "control-panel" e non "./control-panel": questo poiché tale programma è situato normalmente nella directory /usr/X11R6/bin, la quale è la directory standard in cui sono situati tutti i moduli eseguibili dell'ambiente grafico, e come tale questa directory è presente nel PATH di partenza dell'utente. A proposito, ogni utenza quando viene avviata con la procedura di login, punta alla sua cosiddetta home directory, alla sua shell di comandi (l'equivalente del command.com del DOS) ed al suo profile. Tale file può essere considerato una specie di "autoexec.bat" proprio dell'utente. In ambiente Linux il nome del profiel dell'utente cambia a seconda del tipo di shell che viene usata: per default ogni utente che viene creato su un sistema Linux useà come shell la bash shell. Pertanto il profile relativo alla bash shell si chiamerà .bash_profile. A livello puramente informativo esistono sotto Linux (ed ovviamente sotto UNIX in generale) molte altre shell: la csh (c-shell), la ksh (Korn-shell), la sh (bourne-shell, di cui la bash è una derivazione) e così via.

Vediamo adesso in dettaglio i singoli moduli di configurazione:

· Run-Level Editor

· Time & Date

· Printer Configuration

· Network Configuration

· Modem Configuration

· Kernel Daemon Configuration

· Search Help Systems

· System Configuration

· Package Management

In realtà nel caso di una installazione completa di RedHat compare sulla barra del Control-Panel un'altra icona, quella relativa alla configurazione del Web Server APACHE: nel nostro caso, avendo effettuato una installazione parziale, tale utility non viene installata, anche se comunque è possibile configurare a mano il nostro Web Server, che tra l'altro è già installato e funzionante di default.

12.1.1 Run-Level Editor

Il Run-Level Editor permette di configurare quale servizi far partire all'atto del boot di Linux.

Come si può notare la schermata del programma è suddivisa in varie colonne: quella più a sinistra, intitolata "avalaible", cioè disponibile, indica tutti iservizi che è possibile far partire su un sistema Linux. Le altre colonne, invece, rappresentano i livelli secondo una rappresentazione gerarchica propria dei sistemi UNIX: ogni livello rappresenta un benm preciso stato del sistema, accessibile a più o meno utenti ed a più o meno servizi. Come si può notare, per esempio, manca il livello 1, accessibile solo dall'utente root, che rappresenta il livello di maintenance cioè di manutenzione del sistema: in tale livello tutti i servizi cosiddetti "accessori" sono disabilitati. Per esempio a tale livello sono disabilitati i servizi di rete, quelli di stampa, il suono etc.

A differenza degli altri sistemi UNIX, nei quali il livello standard di funzionamento del sistema è il livello 2, in Linux il livello di default è il livello 3. Analizziamo perciò i servizi che possono essere attivati o rimossi dal livello 3.

Analizzando le liste dei servizi partiti, di quelli fermi e di quelli disponibili, rimaniamo sicuramente sconcertati e confusi: sicuramente dal numero dei servizi presenti in un sistema UNIX, ci possiamo rendere conto, da un lato della difficoltà di funzionamento e di gestione di tali sistemi operativi, dall'altro però delle loro enormi potenzialità, di gran lunga superiori ai sistemi Microsoft (anche se ad onor del vero Windows NT può raggiungere le funzionalità dei server UNIX, ma a costo di parecchi options pack, BackOffice e software di terze parti).

Prendiamo in considerazione il nostro esempio canonico, quello cioè di un server Linux inserito in una rete locale mista con altre macchine Linux ed altre Windos 95/98, e cerchiamo di vedere quali possono essere i servizi a cui rinunciare e quelli invece indispendabili.

Ovviamente a questo punto qualcuno potrebbe obiettare dicendo: ma perchè nel dubbio non facciamo partire tutti i servizi ed i processi disponibili ? Teoricamente questsoluzione è la più comoda ed è anche praticabile, ma ovviamente costa ! Certo, se la nostra macchina dispone di un precessore veloce ed un ammontare di RAM considerevole (p.es. 128MB o addirittura 256 MB di RAM) potremmo far partire tutto quello che vogliamo (anche se pure in tal caso, di fronte a macchine particolaremente stressate, come per esempio WEB Server super-accessati o DataBase Server, un tale ammontare di RAM può in alcuni casi diventare insufficiente), ma comunque è buona norma dell'amministratore di un sistema Linux, quella di evitare la partenza di processi inutili per il contesto in cui la macchina opera, che danno come risultato un inutile spreco di risorse di sistema.

Se, per esempio, il nostro server non deve fare da Web Server o da Proxy Server , possiamo evitare di far partire il daemon httpd: analogamente se sulla nostra macchina non viene installato un data base Postgres, possiamo evitare di far partire il daemon apposito.

A proposito, con il termine daemon, cioè demone, incontrato nelle righe precedenti, si intende un processo UNIX che resta in ascolto in attesa di eventuali richieste da parte delle componenti hardware, di programmi o di client: tipico esempio di daemon è proprio quello relativo al Web Server APACHE, denominato httpd: questo "demone" utilizza una particolare "porta" del protocollo di rete TCP/IP (normalmente la porta 80) per restare in ascolto in attesa di eventuali richieste da parte di client: quando un client, mediante il proprio browser chiede di accedere ad una pagina web presente all'indirizzo del nostro server, l'httpd si occupa di effettuare il collegamento tra il client e la pagina, restituendo al browser del client la visualizzazione della pagina HTML stessa.

Qui di seguito diamo una rapida carrellata dei servizi e dei demoni più importanti presenti al level 3: sta all'esperienza od alla scelta dell'amministratore del sistema il far partire un demone al posto dell'altro.

· kerneld: permette al kernel di Linux di caricare e scaricare dinamicamente i moduli relativi a dispositivi hardware od a tipi di file system (p.es. si può decidere di caricare il modulo relativo ad una scheda audio solamente quando si vuole eseguire un file musicale; in questo modo, con la tecnica della modularità il kernel di Linux diventa molto più snello ed in definitiva più veloce ed efficiente). Tale demone è assolutamente indispensabile ! La sua eliminazione potrebbe comportare l'impossibilità a far ripartire il sistema al successivo boot !

· Network, nfsfs, inet: sono tutti servizi di rete, che attivano la scheda di rete, il protocollo TCP/IP e la possibilità di montare file system NFS o di fare montare da client NFS i propri file systems.