Il Manuale del sistemista LINUX - boss14
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 !!!
Pagina 1
Il Manuale del sistemista LINUX - boss14
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.
Pagina 2
Il Manuale del sistemista LINUX - boss14
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.
Pagina 3
Il Manuale del sistemista LINUX - boss14
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
WINDOWS NT
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,Li Nessuno
sp...
Funzioni di Accesso remoto Si (con Callback)
Si (con callback)
Funzioni Server Internet
HTTP,FTP,TELNET,DHCP,N Solo HTTP (nella installazione
Standard
EWS,MAIL...
di default)
Interfaccia grafica
Si (varie)
Si
Multiconsole
Si
No
Multitasking
Si
Si
Amministrazione Remota di Si
Si (limitata)
default
Supporto hardware
Parziale
Quasi completo
Efficienza del sistema
Ottima
Discreta
operativo rispetto all'hardware
Applicazioni
Enorme disponibilità
Enorme disponibilità
Interfaccia amichevole
Buona
Ottima
Facilità di
Buona
Ottima
configurazione/settaggio
Costo
LINUX
Gratuito
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
Pagina 4
Il Manuale del sistemista LINUX - boss14
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.
Pagina 5
Il Manuale del sistemista LINUX - boss14
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
Browser Intenet
FTP Client
Suite Office
Manipolazione Grafica
Grafica Postscript
Multimedialità
NOME
Netscape Communicator
IglooFTP, XMFTP
Staroffice, Applixware
Gimp
Acrobat Reader, Ghostview
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..
Supporto di accesso remoto, FAX, funzioni di callback,
VNC (controllo remoto di macchine multipiattaforma)
KDE, WindowMaker, Fvwm, Qvwm (simile a
Windows 98)
Apache, Squid
Sendmail e derivati
Oracle, Informix, DB2, Postgres
Comunicazioni
Window manager
WEB Server
Mail Server
Data Base
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
Pagina 6
Il Manuale del sistemista LINUX - boss14
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:
<old partition> : 3GB <new partition> : 1.3GB
Pagina 7
Il Manuale del sistemista LINUX - boss14
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
Pagina 8
Il Manuale del sistemista LINUX - boss14
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 <Boot:> nel 99% dei casi l'unica
cosa da fare è quella di premere il tatso <invio>. 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 <invio> 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.
Pagina 9
Il Manuale del sistemista LINUX - boss14
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.
Pagina 10
Il Manuale del sistemista LINUX - boss14
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
/dev/hda1 *
1
/dev/hda2
306
End Blocks Id System
305 614848+ 6 DOS 16-bit >=32M
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
Pagina 11
Il Manuale del sistemista LINUX - boss14
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.
Pagina 12
Il Manuale del sistemista LINUX - boss14
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
Pagina 13
Il Manuale del sistemista LINUX - boss14
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 minimini 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.
Pagina 14
Il Manuale del sistemista LINUX - boss14
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
X
support
Windows System
Mail/WWW/News
DOS/Win
File
tools
Connectivity
Managers
Graphics
manipulations
X
Games
X
Multimedia Support
Console
Multimedia
Networked
Dialup
Nfs
Workstation
Workstation
Server
SMB
Connectivity
Anonymous
Web
Server
Networked
C
FTP
management Workstation
Development
Development
X
Libraries
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
Pagina 15
Il Manuale del sistemista LINUX - boss14
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
Pagina 16
Il Manuale del sistemista LINUX - boss14
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.
Pagina 17
Il Manuale del sistemista LINUX - boss14
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).
Pagina 18
Il Manuale del sistemista LINUX - boss14
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 <TAB> 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
Pagina 19
Il Manuale del sistemista LINUX - boss14
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 <invio>; 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
Pagina 20
Il Manuale del sistemista LINUX - boss14
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
Pagina 21
Il Manuale del sistemista LINUX - boss14
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--rw-------rw-r--r--rw-------rw-r--r--rw-r--r--rw-r--r--rw-r--r-drwx------
1 root
1 root
1 root
1 root
1 root
1 root
1 root
1 root
4 root
root
root
root
root
root
root
root
root
root
65 mar 22 21:37 .TWM-errors
0 mar 22 21:29 .Xauthority
1126 ago 23 1995 .Xdefaults
10404 mar 30 22:57 .bash_history
24 lug 14 1994 .bash_logout
347 mar 10 11:35 .bash_profile
176 ago 23 1995 .bashrc
182 ott 8 01:56 .cshrc
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
Pagina 22
Il Manuale del sistemista LINUX - boss14
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.
Pagina 23
Il Manuale del sistemista LINUX - boss14
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
Pagina 24
Il Manuale del sistemista LINUX - boss14
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 <ALT> e <Fx> 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
Pagina 25
Il Manuale del sistemista LINUX - boss14
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 XServer (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.
Pagina 26
Il Manuale del sistemista LINUX - boss14
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
Pagina 27
Il Manuale del sistemista LINUX - boss14
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
Pagina 28
Il Manuale del sistemista LINUX - boss14
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 ControlPanel 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.1Run-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
Pagina 29
Il Manuale del sistemista LINUX - boss14
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
Pagina 30
Il Manuale del sistemista LINUX - boss14
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.
Il protocollo di colloquio NFS, fa parte della suite di protocolli TCP/IP: esso permette a dei
client su cui sia presente appunto la componente client di tale protocollo, di montare
filesystem UNIX in modo da avere dei dischi "virtuali" sulla propria macchina. Il concetto è
molto simile a quello della condivisione presente sulle reti Microsoft. La differenza sta nella
impossibilità di usufruire di tale servizio senza una componente client a parte (come accade
per le macchine con sistema operativo Microsoft, le quali sono sprovviste dei default della
componenete client NFS e devono rivolgersi a software prodotto da terze parti). Il vantaggio
che ne deriva comunque è soprattutto in termini di sicurezza a livello di directory ed a livello
di file, poiché anche ai filesystems NFS si applicano le stesse regole e le stesse autorizzazioni
presenti sui filesystem standard di UNIX. Le risorse "condivisibili" NFS devono essere
dichiarate nel file /etc/exports. Invece per montare da Linux risorse NFS presenti su un altro
server UNIX, basta digitare il comando "mount nomehostNFS:nomefilesystemNFS
/nomedirectory_di_mount dove nome hostNFS è il nome del server su cui risiede la risorsa
condivisa, nomefilesystemNFS è la risorsa condivisa ed infine nomedirectory_di_mount è il
punto di mount sulla nostra macchina Linux in cui intendiamo montare il filesystem NFS. Per
fare un esempio pratico, se sul server Andromeda esiste un filesystem NFS di nome Orione, e
noi abbiamo creato un punto di mount sul nostro server (sotto la directory /) che abbiamo
chiamato Rigel, il comando di mount sarà:
mount Andromeda:/Orione /Rigel
Per smontare il filesystem NFS appena montato, basta digitare invece il seguente comando:
umount /Rigellpd: serve a far partire i servizi di stampante sia la stampa in locale
sia per la stampa da e per remoto;
syslog: serve a monitorare, attraverso dei log che vengono scritti nella directory
/var/log tutta l'attività che viene svolta sul sistema;
keytable: questo processo carica la tastiera corrspondente alla lingua desiderata (in
pratica è molto simile al keyb it del DOS);
gpm: fa partire il mouse sulle console testuali (ricordo che ve ne sono 6 di default).
E' un servizio molto utile in modalità testo, perchè permette il taglia ed incolla tra
sessioni di console. Inoltre è indispensabile anche al funzionamento dell'X-Server;
sound: servizio tipico della distribuzione RedHat, permette di impostare i parametri
come il volume alla scheda audio (che comunque, come vedremo, deve essere
impostata con altri strumenti, come la creazione di un modulo, la ricompilazione
del kernel o strumenti di plug&play);
linuxconf: questo servizio permette di far partire l'utility "System Configuration",
facente parte del Control-Panel;
sendmail: questo è il demone del più diffuso server di posta elettronica presente su
Linux. SendMail è potentissimo, ma anche piuttosto "tosto" da configurare; di
Pagina 31
Il Manuale del sistemista LINUX - boss14
solito si raggiunge un buon compromesso utilizzando come server di posta altri
prodotti meno potenti ma più facili da configurare;
smb: questo servizio è il famoso SAMBA (ovviamente niente a che vedere con la
danza brasiliana ! Per chi non lo conosce SAMBA è un protocoll di rete che
permette di trasformare un qualsiasi server UNIX in una macchina Netbeui
Microsoft). Una volta che SAMBA è installato e configurato, la macchina UNIX
può essere vista tranquillamente tramite la funzione "Risorse di Rete" dei sistemi
Microsoft ! E non solo, da una macchina UNIX con SAMBA, si può utilizzare la
componente client del protocollo per montare risorse condivise di una macchina
Microsoft ! Come si può capire questo servizio (in realtà i demoni attivati sono
due, smbd e nmbd, client e server) è fondamentale quando la macchina Linux è
inserita in un contesto di rete mista in cui siano presenti anche macchine con
sistema operativo Windows. Del SAMBA parleremo in modo dettagliato nel
prosieguo del libro, dedicandogli un capitolo a parte.
A proposito, c'è da dire che la vastissima schiera di sostenitori/utilizzatori di Linux (i
cosiddetti "pinguini") non sono molto entusiasti di Bill Gates e dei suoi sistemi operativi,
tanto e vero che il nome Windows vien storpiato di proposito durante le discussioni sui
newsgroup o sulle mailing list. Ecco qui di seguito un campionario delle varie storpiature:
winzozzo
windoze
findus 95
finestropoli
wincrash (con riferimento ai continui blocchi dei sistemi Microsoft)
winboh?
routed: questo demone è indispensabile per utilizzare la tecnica del "routing" dei
pacchetti i.p., allo scopo di ottimizzare i percorsi dei pacchetti. Nel caso in cui la
macchina Linux abbia una connessione diretta ad Internet (cioè tramite una rete
locale/geografica) questo servizio diventa fondamentale
crond,atd: questi sono i demoni di scheduler di Linux come di qualsiasi altro
sistema operativo UNIX. Attraverso essi è possibile schedaulare in maniera
automatica delle attività a tempo: per esempio si può pensare che tutte le notti
venga affettuato un backup dei dati vitali presenti sul sistema, oppure una volta
alla settimana ad una determinata ora venga effettuato il controllo dei filesystems
attraverso l'utility fschk.
12.1.2Time and Date
Questa utility serve a configurare ovviamente la data ed ora di sistema, dando la possibilità di
scegliere il fuso orario, la visualizzazione in 12 o 24 ore, e la possibilità di settare a livello
hardware anche il clock del systema.
12.1.3PrinterConfiguration
Pagina 32
Il Manuale del sistemista LINUX - boss14
L'utility di configurazione della stampante ci mostra un'altro aspetto della enorme versatilità
di Linux relativamente alla connettività di rete: infatti tramite questa utility è possibile
configurare stampanti locali ed anche stampanti remote, sia UNIX che Windows che Netware
(in quest'ultimo caso deve essere installato l'apposito servizio ncpfs). Proviamo allora ad
aggiungere una stampante locale (cioè direttamente collegata alla porta parallela del p.c.) ed
una stampante Windows (chiamata LAN Manager Printer o anche Samba Printer). Premendo
il pulsante <ADD> e selezionando <Local Printer>, ci viene mostrata una schermata in cui
Linux mostra di avere riconosciuto la presenza della porta parallela; premendo il pulsante
<OK> ci viene prospettata una schermata in cui vengono richieste le informazioni sulla
stampante. E' buona norma modificare solamente il nome con cui Linux chiamerà la nostra
stampante senza toccare gli altri parametri di sistema, poiché essi sono normalmente già
ottimali. Resta da scegliere il tipo di stampante che più si avvicina al nostro modello:
selezionando il pulsante <Select> del campo Input filter vediamo che anche sotto Linux
esistono tutta una serie di "driver" specifici per i vari tipi di stampante. Selezioniamo quello
adatto per la nostra stampante, ricordando che normalmente se la stampante non è presente
nell'elenco, è comunque possibile farla funzionare in emulazione HP (Deskjet per le
stampanti a getto di inchiostro e Laserjet per le stampanti laser). Se comunque anche con
questi settaggi la nostra stampante non ne vuole sapere di stampare in maniera umana, non
bisogna perdersi d'animo, poiché normalmente su Internet sono disponibili i driver per quasi
tutte le stampanti esistenti: basta avere un po' di pazienza e cercarli sui motori di ricerca
standard (come http://www.yahoo.com o http://www.altavista.com ) o meglio ancora sul
motore di ricerca dei newsgroup (http://www.dejanews.com) . A proposito di quest'ultimo,
tenetelo sempre a portata di mano, poiché rappresenta la biblioteca più vasta dell'universo
relativamente alla documentazione ed alla risoluzione di problemi in ambiente Linux.
Analogamente, proviamo ad installare una stampante Windows (LAN Manager o samba che
sia): Ovviamente tale stampante deve essere stata condivisa sul p.c. Al quale essa è collegata.
Dopo un messaggio in cui si avverte che per poter stampare è necessario avere una username
ed una password (normalmente basta indicare le stesse username e password che si danno alla
macchina Windows95 alla quale è collegata la stampante per entrare in rete Microsoft), ci
viene prospettato un pannello molto simile a quello relativo alla installazione di un
astampante locale: le uniche differenze sono i campi relativi al pc Windows al quale è
collegata la stampante. Pertanto dovremo nell'ordine indicare:
nome Netbeui della macchina Windows
indirizzo I.P. Della stessa macchina
Username
Password
Resta poi, come già fatto in precedenza, da configurare il "filtro" opportuno per la stampante
in questione.
Una volta terminata la configurazione, è possibile fare dei test utilizzando l'apposito cartella
del menù di Printer Configuration.
12.1.4Network Configuration
Pagina 33
Il Manuale del sistemista LINUX - boss14
Se non avete avuto l'opportunità di configurare prima (durante la installazione di RedHat) la
rete, questa è l'utility che fa per voi: infatti vi permette di installare la scheda di rete, una
scheda PPP (l'analogo della scheda di Accesso Remoto di Windows 95) oppure effettuare
modifiche ai settaggi precedentemente effettuati. I menù sono molto intuitivi anche per utenti
con solo minime cognizioni di rete (come può essere un normale utente Windows): pertanto
la descrizione dei menù non verrà trattata in questo contesto.
Comunque è necessario dire alcune cose nel caso in cui si disponga di un modem: in questo
caso è opportuno aggiungere una scheda ppp (che verrà chiamata dal sistema ppp0) ma essa
deve essere lasciata inactive e non deve essere configurata a livello di i.p. Address e tutto il
resto. Questo perchè tali settaggi verranno fatti in seguito all'atto della creazione delle
procedure di connessione remote, per esempio ad un provider Internet. Di tale argomento
parleremo diffusamente in seguito nel capitolo riguardante la bellissima interfaccia grafica
(Window Manager) chiamata KDE, attualmente la migliore esistente in ambiente
UNIX/Linux.
12.1.5Modem Configuration
Questa utility serve solo a creare un link tra /dev/modem e la porta seriale sulla quale è
presente l'eventuale modem. Si può notare come in ambiente Linux le porte seriali vengano
chiamate cua1, cua2.... C'è comunque da puntualizzare il fatto che dalla versione di kernel
2.2.x (attualmente la più recente, di cui parleremo in seguito) i dispositivi "cua" sono stati
completamente sostituiti dai ttySx, che tra l'altro sono i device a cui puntare quando si
utilizza il server Linux come server di Accesso Remoto.
12.1.6Kernel Daemon Configuration
Questo modulo del Control-Panel, serve in pratica ad editare in maniera controllata il file
/etc/conf.modules. In questo file vengono scritte (o a mano o in maniera automatica all'atto
del boot del sistema, se vengono riconosciute in maniera automatica le periferiche plug&play)
le opzioni di caricamento/settaggio dei vari dispositivi che vengono caricati come moduli.
Come abbiamo già descritto in precedenza, la tecnica modulare con cui vengono costruiti i
kernel Linux, permette in qualunque momento di scaricare o caricare dinamicamente dal
kernel i moduli necessari al corretto funzionamento di una particolare periferica, ottimizzando
in questo modo le prestazioni del kernel che resta molto snello.
12.1.7Search Help Systems
Utility molto comoda per effettuare ricerche di documentazione su Linux. A partire da una
parola chiave è vengono visualizzati sia i file di documentazione che le pagine del Manuale
(man) in cui la parola chiave viene trattata.
12.1.8System Configuration
Questa è l'utility più importante di tutta la distribuzione Linux RedHat: infatti attraverso la
Gnome Linuxconf (così si chiama realmente il System Configuration) è possibile configurare
con facilità tutti gli aspetti fondamentali di un sistema Linux:
Pagina 34
Il Manuale del sistemista LINUX - boss14
la rete (con tutti i protocolli)
gli utenti
i file system
le modalità di boot del sistema
il controllo del sistema
Vediamo adesso un po' più in dettaglio i singoli componenti principali del Linuxconf.
12.1.8.1la rete
Come abbiamo già accennato, la rete si configura normalmente attraverso il modulo di
network configuration del Control-Panel. Comunque attraverso quel modulo è possibile
configurare in maniera semplice solamente il prtocollo TCP/IP e la sue varianti su linea
seriale (come p.es. Un modem) SLIP e PPP.
Invece, come si può notare, attraveso il Linuxconf vi è la possibilità di gestire ed impostare
anche altri protocolli di comunicazione come l'IPX, che è il protocollo delle reti Novell e
l'UUCP che è un protocollo di comunicazione tipico delle architetture UNIX.
Inoltre viene dedicata una intera sezione al protocollo NFS di cui abbiamo già accennato in
precedenza.
Avendo un minimo di conoscenze di rete (p.es. quelle che normalmente ha un utente appena
smaliziato di Windows 95), grazie a questa utility è possibile configurare senza sforzi
particolari ogni aspetto di rete di una macchian Linux.
L'unico protocollo che resta fuori dalla possibilità di essere configurato tramite Linuxconf è
SAMBA, che, come già detto, è il protocollo che permette ad una macchina Linux di
condividere risorse condivise (come directory e stampanti) di una macchina Windows
collegata in rete o tramite l'Accesso Remoto, nonché di essere a sua volta vista dalle macchine
con sistema operativo Microsoft, alla stessa stregua di un server Windows NT, condividendo
le sue risorse. Il prossimo capitolo spiegherà nei singoli dettagli il funzionamento di Samba.
Comunque, per configurare Samba in maniera semplice, senza dover editare a mano i suoi file
di configurazione, esisteono su Internet parecchie utility grafiche che raggiungono lo scopo.
Personalemente preferisco tuttora editare a mano il file di configurazione di Samba,
comunque una volta ho usato l'utility Ksamba, facente parte del tool di applicazioni presenti
nel progetto KDE, e devo dire che la semplicità d'uso di tale utility è notevole.
12.1.8.2Gli utenti
Questa utility permette una gestione completa ed esaustiva degli utenti di un sistema Linux.
Come si può notare dai vari menù, è possibile creare nuovi utenti, modificare le proprietà di
un utente già esistente, etc.
Come già accennato in precedenza, uno dei punti di forza dei sistemi UNIX è quello di avere
la possibilità di creare una "gerarchia" di utenti che possano accedere al sistema. Mi si potrà
obiettare il fatto che anche un server Windows NT dispone di tali funzionalità: ERRORE !
Windows NT ha sì il concetto di utente e privilegi come UNIX, ma solo per quanto riguarda
la condivisione delle risorse di sistema. Invece un sistema UNIX, essendo realmente un
sistema fruibile da più utenti, sia a livello di linea di comando (tramite collegamento Telnet)
sia a livello di esecuzione di applicazioni grafiche (tramite programma di X-Windows
remoto), deve necessariamente essere configurato in maniera ottimale utente per utente, in
Pagina 35
Il Manuale del sistemista LINUX - boss14
maniera che tutti possano lavorare al meglio senza avere la possibilità di creare danni agli
altri come al sistema stesso. Ecco perchè diventano importatnti, coma abbiamo già visto, i
concetti di gruppo e permessi.
12.1.8.3I file systems
La gestione dei filesystems permette di gestire sia i file systems locali che quelli NFS da montare da
un server remoto. Inoltre è possibile gestire in maniera ottimale la partizione di swap, aggiungendone
un'altra o rimuovendo quella attuale per modificarne le dimensioni.
12.1.8.4Lilo
Il LILO, come già accennato è il LInux Loader è il programma di boot che permette di far partire
Linux. Ma, come tutti i programmi cosiddetti di "boot loading", LILO permette al bott della macchina
di caricare qualunque sistema operativo sia presente sul p.c.. Se, per esempio (e normalmente è la
situazione standard di tutti i p.c. con Linux) oltre a Linux sulla macchina è installato anche Windows
95/98, tramite il LILO è possibile far partire anche Windows 95.
L'utility Linuxconf permette quindi una gestione semplificata del LILO: infatti è possibile modificare
il default del sistema operativo da caricare, aggiungere boot differenti di Linux (per esempio nel caso
in cui sia stato compilato un nuovo kernel), modificare le opzioni di partenza del LILO, (p.es. Il tempo
di attesa del prompt prima che venga lanciato il sistema operativo di default).
Per chi preferisce controllare direttamente il file di configurazione del LILO, diciamo che tale file si
chiama /etc/lilo.conf. Di seguito vi è un esempio del file:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
other=/dev/hda1
label=dos
table=/dev/hda
image=/boot/vmlinuz-2.0.36-0.7
label=linuxold
root=/dev/hda3
read-only
image=/boot/bzImage
label=linux
root=/dev/hda3
read-only
Possiamo notare alcune cose: come si vede, nel parametro timeout vi è indicato il valore 50;
tale valore è espresso in millisecondi.
I boot dei kernel linux sono indicati con l'etichetta image mentre il boot relativo a Windows
viene descritto con l'etichetta other. Poiché, inoltre, è il primo della lista, esso sarà caricato
di default all'atto del boot se non vengono intraprese altre azioni (ricordiamo che al prompt
di LILO: premendo il pulsante <tab> vengono visualizzati tutti i possibili sistemi da caricare.
Pagina 36
Il Manuale del sistemista LINUX - boss14
Dall'etichetta label si può notare come Windows 95 venga denominato sotto LILO con il
nome di dos: ovviamente l'etichette label possono essere chiamate come uno meglio crede.
Nell'etichetta root viene descritto il dispositivo fisico da cui fare il boot.
Infine nell'etichette image, che servono al caricamento dei vari kernel, vengono descritte le
directory ed il file di kernel.
IMPORTANTE: qualunque modifica al file /etc/lilo.conf deve essere successivamente
validata eseguendo il comando lilo: solo in questo modo le modifiche effettuate verranno
effettivamente scritte nel settore di boot del disco primario.
Per una descrizione dettagliata del LILO e dei suoi parametri, esiste nella directory /usr/doc
il manuale di configurazione del LILO (una quarantina di pagine).
12.1.8.5Gli altri componenti del Linuxconf
Oltre alle componenti già descritte in precedenza, Linuxconf permette anche un controllo
sulle procedure di accensione/spegnimento del sistema, sui file di configurazione che vengono
gestiti da esso, nonché sui file di logs (i quali sono normalmente nella directory /var/log.
Comunque questa preziosissima utility deve essere studiata in maniera approfondita per
apprezzarne fino in fondo le potenzialità.
12.1.9Package Management
Questa utility dimostra come anche sui sistemi UNIX sia possibile gestire in maniera efficace
la installazione/disinstallazione di prodotti. Basata sull'utilizzo del programma rpm (RedHat
Package Management) Package Management permette di aggiungere e rimuovere prodotti
con pochi click del mouse. Ovviamente i pacchetti software devono essere stati all'origine
confezionati secondo lo standard rpm. Tale standard, comunque, è ormai largamente diffuso
nella comunità Linux, anche perchè, oltre alla distribuzione RedHat, viene utilizzato anche
dalla Debian ed ultimamente anche dalla Slackware.
Tra l'altro RPM è utile anche per vedere, a fronte dell'installazione di una applicazione, quale
siano le "dipendenze" di quella applicazione. In ambiente UNIX le dipendenze sono in pratica
altri "pezzi" di software che servono in maniera propedeutica al pacchetto che andiamo ad
installare. Può infatti succedere che installando un'applicazione, specialmente quelle di grafica
o quelle in ambiente X-Windows, sia necessario avere già installate delle librerie. Con RPM,
quindi, si evita di installare del software che comunque non potrà funzionare fino a quando
non siano state installate correttamente le librerie richieste.
Bene il Control-Panel è tutto qui: in realtà ci sarebbe un altro modulo chiamato Comanche
che permette di configurare graficamente il WEB Server Apache (siamo in pieno territorio
indiano. Di Apache, comunque parleremo in uno degli ultimi capitoli del libro, e quindi sarà
in quel momento che parleremo di Comache.
Pagina 37
Il Manuale del sistemista LINUX - boss14
CAPITOLO 13 - I WINDOW-MANAGER
Sotto Linux, a differenza dell'ambiente Microsoft, vi è libertà anche nella scelta
dell'interfaccia grafica (il cosiddetto "Window Manager") più gradita dall'utente. Questa
libertà di scelta ha fatto sì che siano reperibili su Internt come sulle riviste specializzate oltre
una ventina di Window Manager, dalle caratteristiche più disparate, a partire dal
semplicissimo FVW fino ad arrivare al sofisticato KDE.
Se avete seguito in precedenza la descrizione del Control-Panel e lo avete sperimentato con
mano sulla vostra installazione RedHat, vuol dire che avete già fatto partire un Window
Manager: più precisamente, una volta configurato l'X-Server in maniera corretta, digitando il
fatidico comando startx, avete fatto partire il Window Manager di default di Linux RedHat,
cioè fvwm95. Avrete sicuramente notato come questo Window Manager, pur essendo
particolarmente semplice, ricorda abbastanza il desktop di Windows 95. Ma questo è niente !
Sotto Linux bisogna imparare a non stupirsi di niente ! Soprattutto riguardo ai Window
Manager: infatti tra la ventina e passa di Window Manager disponibili, c'è di tutto, dalla copia
spudorata del desktop di Windows 95 (qvwm) a quello che sembra un videogioco, per quanto
rumore fa con i suoni ad ogni operazione che viene effettuata (Enlightenment), a quello che
replica in maniera praticamente identica le workstation UNIX SUN e HP, il cui Window
manager si chiama CDE mentre il suo clone Linux è xfce: accenniamo anche ad un altro
manager simil-Windows, icewm, e continuiamo con Afterstep, molto elegante e di cui esiste
anche una versione per Windows 95, fino ad arrivare all'ormai famoso KDE, sicuramente il
più sofisticato e completo di tutti, ma ovviamente anche il più oneroso in termini di risorse.
Comunque qualunque sia il Window Manager che desiderate installare, ricordiamo alcune
semplici operazioni che vanno effettuate allo scopo di far partire il nostro prescelto.
Supponiamo di lavorare con l'utenza root (per non avere problemi di permessi):
posizioniamoci nella directory /root con il comando ls -la | more verifichiamo se esistono due
file:
.xinitrc
.xsession
Se non esistono li creiamo con il comando vi .xinitrc e vi .xsession: in tutti e due i file va
inserito il nome del Window Manager prescelto. Se i file esistono, è necessario commentare
utilizzando il simbolo # (l'equivalente del rem dei file bat del DOS o del simbolo ; dei file ini
di Windows) come primo carattere di ogni riga presente nel file.
Prima abbiamo visto una combinazione di comandi "ls -la" unito al comando "more". Questa
possibilità di unire i comandi in una sorta di concatenazione nella quale l'output del primo
comando diventa l'input del secondo è uno dei punti di forza della linea comando di UNIX. In
pratica per ottenere lo stesso risultato senza poter unire i due comandi, avremmo dovuto fare
due comandi separati utilizzando un file:
ls -la > lista
more lista
In MS-DOS si deve proprio fare così.
Pagina 38
Il Manuale del sistemista LINUX - boss14
Un altro esempio UNIX di concatenzione di comandi che viene usato spessissimo è quando si
deve fare un backup (su file o su nastro) di tutto un albero di directory o addirittura di tutto il
sistema: in questo caso, se si usa il comando cpio, è necessario concatenare il risultato del
comando find con cpio:
find . -depth -print | cpio -ocvd > /dev/ftape
Con il comando precedente si utilizza il risultato che la find restituisce (l'intero elenco dei file
presenti sul sistema) per inviarlo come input al comando cpio (le cui opzioni -ovcd indicano
la funzione di backup, la scrittura a file, la visualizzazione dello stato dell'operazione, la
scrittura anche delle directory) il quale reindirizza a sua volta la scrittura del backup sul
device ftape, che, sui sistemi Linux, identifica l'unità nastro.
Come abbiamo ormai notato, il carattere che viene usato per concatenare più comandi è il
carattere | chiamato in inglese "pipe".
Avrete sicuramente visto che nell'esempio di scrittura dei file .xinitrc e .xsession ho utilizzato
l'editor UNIX vi: in modalità linea di comando questo editor è sicuramente il più usato ed il
più potente, mentre in ambiente X-Windows ve ne sono tantissimi molto simili al notepad o al
write di Windows. Comunque quando andremo (nel prossimo capitolo !) effettivamente ad
installare il Window Manager, vi dirò i comandi fondamentali che si usano nel vi senza
costringervi a leggervi le 40 e passa pagine del man.
Nel prossimo capitolo installeremo i due Window manager che io reputo i migliori: qvwm e
KDE. Il primo è ottimo poiché è veramente un clone di Windows 95/98, ed è molto parco
nell'utilizzo delle risorse di sistema, anche se ha alcuni punti deboli come la sua difficile
configurabilità; il secondo è veramente starordinario, poiché introduce delle utility e dei
meccanismi di "browsing" e di configurabilità che fanno invidia a Windows 95/98: però ha il
suo punto debole nel consumo di risorse di sistema (soprattutto la RAM), e quindi non è
molto indicato su macchine di fascia bassa (come 486 o pentium I carrozzati con solo 16 o 24
MB).
A proposito di utilizzo di risorse di sistema, una volta entrati in linea di comando, non
facendo partire l'X-Server, digitate il comando top: tale comando vi fa vedere l'utilizzo delle
risorse di sistema, in termini di CPU e di RAM (sia fisica che virtuale) da parte dei vari
processi che sono "startati" sul sistema. Non rimanete sbalorditi a vedere che un sistema
operativo multitasking, multithreading e multiutente, pur avendo fatto partire una ventina e
più di processi, utilizzi solo 12 MB o poco più di RAM ? Meditate estimatori di "Winzozzo" !!
CAPITOLO 14 - INSTALLIAMO QVWM
Questo Window Manager, come già detto in precedenza, è un clone assoluto del desktop di
Windows 95/98. Pertanto è particolarmente indicato per gli utenti provenienti da Windows.
Rispetto a quest'ultimo, comunque, presenta una configurabilità dei menù piuttosto "grezza",
nonché parecchie limitazioni. Invece trai suoi punti di forza vi è senza dubbio la sua
leggerezza in termini di utilizzo di risorse del sistema: in effetti una volta caricato qvwm ed
Pagina 39
Il Manuale del sistemista LINUX - boss14
aperta una finestra terminale utilizzando il comando xterm, digitando il comando top già
visto in precedenza, possiamo notare come qvwm "consumi" solo 7-8 MB di RAM. Ma
andiamo con ordine.
Per ottenere il software di installazione, se non è possibile reperirlo tramite cd-rom di riviste
in edicola, bisogna rivolgersi ai soliti siti Internet specializzati in Linux:
http://www.linuxapps.com e http://www.linuxberg.com .
Da questi siti, andando nelle sezioni relative ai Window Managers veniamo rimandati al sito
ufficiale del tizio che ha sviluppato il prodotto (è un giapponese di nome Kenichi Kourai).
Da questo sito possiamo scaricare sia la versione in modulo sorgente, sia la versione
eseguibile (binaria) nel formato rpm (che. Come abbiamo già visto, è il formato proprietario
di installazione dei pacchettti software sotto la distribuzione Linux RedHat.
Vi consiglio di scaricare tutte e due le versioni, poiché, al momento attuale, l'ultima versione
rilasciata in formato rpm (la 1.0b13a-1) presenta un "baco"sul file di configurazione dei temi
del desktop.
Una volta scaricate le due versioni del pacchetto in una directory d'appoggio (vi consiglio di
fare come me: create una directory in cui scaricare il software per le installazioni,
chiamandola una cosa tipo "/software o /download"), proviamo a scompattare quella in
formato sorgente, che coma da standard Linux si chiamerà qualcosa del tipo "nomefile".tar.gz
o "nomefile".tgz.
Come avrete certamente notato, i nomi dei file sotto Linux non presentanp la limitazione
tipica del DOS (8 caratteri + 3 di estenzione) ma possono essere costruiti senza particolari
limitazioni: comunque anch'essi seguono degli standard. Per cui, tanto per fare qualche
esempio pertinente al nostro caso, un file avrà come estensione .tar vorrà dire che esso per
essere utilizzato dovrà essere restorato tramite il comando tar xvf nomefile.tar;
analogamente se il file in questione ha come estensioni tar.gz o tgz, vuol dire che esso è stato
creato utilizzando sempre il comando di backup tar ma con in più l'opzione di compressione
data da un comando simile al noto pkzip del DOS: gzip. In questo secondo caso, si potranno
utilizzare indifferentemente i due comandi seguenti:
tar xvzf nomefile.tgz
gunzip nomefile.tgz seguito da tar xvf nomefile
In ambiente Linux esistono tutte una serie di utility per archiviare e restorare file: a partire
dagli ormai noti tar cpio, fino ad arrivare alle utility come gzip,gunzip ed addirittura a
zip,unzip: le ultime due sono le versioni Linux dei famosissimi pkzip e pkunzip del DOS, e
pertanto sono assolutamente compatibili con questi ultimi.
Comunque, a prescindere da quale set di comandi decidiate di utilizzare, il risultato finale che
vi troverete davanti sarà la creazione di una sottodirectory chiamata qvwm.... qualche cosa, al
cui interno troverete alcuni script e parecchie directory.
E qui veniamo al punto cruciale della filosofia dei sistemi GNU, OPEN SOURCE o che dir
si voglia, di cui Linux è il maggiore portabandiera.
Pagina 40
Il Manuale del sistemista LINUX - boss14
La maggior parte del software per Linux che si trova in rete Internet, o sulle riviste, è
assolutamente freeware, cioè gratuito: solamente alcuni prodotti commerciali sono a
pagamento, ma anche in questo casi, molte volte la società che vende il prodotto ha previsto la
possibilità dell'utilizzo gratuito di esso per scopi no-profits o personali: è il caso di prodotti
molto importanti come la suite Office StarOffice o il famosissimo word processor
WordPerfect.
Ma non è tutto: il software freeware in ambiente Linux, oltre ad essere completamente
gratuito, viene normalmente distribuito in formato sorgente. Questo vuol dire che chiunque
ne abbia le capacità può modificarselo a suo piacimento, magari migliorandolo od adattandolo
alle sue esigenze personali. Ciò è assolutamente legale, ma comunque tale pratica è regolata
da una licenza particolare, la cosiddetta licenza GNU: il softwareregistrato sotto questo tipo di
licenza è sì modificabile, ma colui che ne apporta modifiche deve a sua volta rendere
disponibile su Internet sia il prodotto modificato che i relativi sorgenti.
La domanda sorge spontanea: chi ci guadagna a rendere disponibili il codice sorgente dei
propri prodotti ? La risposta è abbastanza logica: Tutti ! A cominciare dall'utente finale che
avrà a disposizione migliaia di prodotti assolutamente gratuiti e via via sempre più stabili,
poiché gli eventuali bachi presenti sono molto più facilmente correggibili da altre persone che
non da suo creatore; inoltre esistono vantaggi ancge per il creatore del prodotto, perchè in
questo modo si trova ad avere la collaborazione di decine di altri programmatori e cosiddetti
beta tester (cioè coloro che effettuano i test sul software, prima che esso sia rilasciato nella
versione definitiva) a costo assolutamente gratuito. Inoltre i software rilasciati sotto GNU, se
sono di buona fattura, possono essere inseriti in applicazioni commerciali a pagamento, o
comunque essere soggetti a supporto tecnico da parte sia dello stesso creatore che di altri
società di supporto. Ad ogni modo, per concludere il discorso, sviluppare software sotto
licensa GNU, favorisce in prima battuta gli utenti finali, ma anche chi il software lo produce e
chi lo distribuisce.
E' questo il motivo fondamentale che comincia a spingere anche colossi dell'informatica come
per esempio NETSCAPE, a rilasciare i sorgenti di Mozilla (Netscape Communicator 5),
mentre altri giganti dai piedi d'argilla, come la Microsoft, se non cambieranno atteggiamento
nei prossimi anni relativamente al free source software, rischieranno di trovarsi
completamente isolati nel mondo dell'informatica. Pensate solo se la Microsoft avesse reso
disponibili i sorgenti di Windows 95/98: in breve tempo, tali prodotti avrebbero potuto essere
resi molto più affidabili e stabili di quello che sono, a costo assolutamente nullo per la casa di
Redmond ! Comunque da voci di corridoi non confermate, che mi sono arrivate proprio
mentre mi accingevo a scrivere queste righe, pare che la Microsoft, renderà disponibili alla
comunità Internet i codici sorgenti del prossimo nascituro Windows 2000 !
Torniamo adesso alla installazione del nostro Windows Manager qvwm: se desiderate
cimentarvi nella ebbrezza di compilare voi stessi il prodotto, è buona norma leggere i file di
help presenti nella directory principale del prodotto stesso: normalmente, da standard Linux,
tali file vengono denominati REDAME, INSTALL, etc. Comunque la compilazione di un
prodotto in ambiente Linux, normalmente si riduce alla banale esecuzione di alcuni script già
preparati dal creatore del prodotto stesso; normalmente si utilizzano dei procedimenti
standard:
./configure (non sempre)
make
make install
Pagina 41
Il Manuale del sistemista LINUX - boss14
make uninstall (in alcuni casi e nel caso in cuii si voglia in seguito disinstallare il
prodotto)
Comunque, ripeto, è sempre opportuno leggere prima i file di documentazione allegati al
prodotto, anche perchè in questi file viene sempre riportato quello che eventualmente è
necessario, in termini di librerie o di utility già installate nel sistema, al fine di effettuare una
compilazione esente da errori.
Comunque, se non è vostra intenzione provare l'ebbrezza della compilazione di qvwm, potete
sempre installare il pacchetto binario utilizzando l'utility di RedHat rpm: se già siete in
ambiente grafico, potete usare l'utility del Control-Panel
Package Management,
configurandola in maniera che punti alla directory in cui avete scaricato il pacchetto in
formato rpm.
Se, altrimenti siete in modalità linea di comando (detta anche modalità console) basta
posizionarsi nella directory in cui è presente il pacchetto e digitare il comando:
rpm -i qvwmnumeroversione.rpm
A questo punto il pacchetto di qvwm viene installato. Per verificare che l'installazione sia
andata a buon fine, editiamo con il vi il file /root/.xinitrc:
vi /root/.xinitrc
avendo eseguito il comando vi ne approfitto per darvi qualche rapido suggerimento sui
comandi fondamentali di questo ostico, ma completo editor:
i per inserire nuovi caratteri o cominciare a scrivere in un nuovo file
a per inserire nuovi caratteri a partire dalla posizione successiva a dove è
posizionato il cursore; A per "appendere" nuovi caratteri alla fine della riga
corrente
r per sostituire il carattere su cui è posizionato il cursore; R sostituisce tutti i
caratteri fino a che non premiamo il tasto ESC. Con il tasto ESC si effettua il reset
del comado precedente
cw serve a modificare la parola o la parte di parola su cui è posizionato il cursore
x cancella i caratteri
dd la riga su cui è posizionato il cursore
yy copia la riga corrente: con p la copiamo dopo la riga su cui è posizionato il
cursore
w salva il file; x salva il file ed esce da vi; infine con q si esce senza salvare
Bene, tenendo bene a mente i comandi del vi sopra descritti, inseriamo la seguente riga nel
file .xinitrc:
qvwm -f /usr/local/share/qvwm/system.qvwmrc
Il paramentro -f indica che il file di configurazione del qvwm si trova nella directory
/usr/local/share/qvwm, e si chiama system.qvwmrc.
Pagina 42
Il Manuale del sistemista LINUX - boss14
Nel caso in cui nel file .xinitrc esistano già altre righe che puntano ad altri Window Manager,
occorre commentarle inserendo al primo carattere di ogni riga il simbolo #. In UNIX, infatti, è
questo il simbolo che indica il commento di una riga nei file di shell (i cosiddetti script).
Bene, a questo punto non ci resta che dare il mitico comando startx, e dopo pochi secondi
apparirà un desktop in tutto e per tutto uguale a Windows 95.
Come detto in precedenza, qvwm è ottimo in termini di facilità di utilizzo e di "leggerezza" di
risorse, mentre la sua configurabilità lascia molto a desiderare: infatti non è possibile
modificare interattivamente i menù (per intenderci con qualche aggeggio tipo "Gestione
Risorse" di Windows 95) ma bisogna rassegnarsi ad editare i due file di configurazione
presenti nella directory /usr/local/share/qvwm:
system.qvwmrc
sample.qvwm-theme
A proposito di posizionarsi in una directory, probabilmente non sapete che Linux permette di
utilizzare caratteri jolly come il * e ? per abbreviare i path dei comandi o il nome di una
applicazione da eseguire: per esempio per posizionarci nella directory precedente, dobbiamo
dare il comando cd /usr/local/share/qvwm, ma possiamo anche abbreviare lo stesso in un più
comodo cd /usr/lo*/sh*/q*. l'importante è che non si creino ambiguità nel comando: per
esempio se avessimo avuto come sottodirectory si qvwm che qpippo, non avrei potuto
abbreviare qvwm con q* ma avrei perlomeno dovuto digitare qv*.
Un'altra "facility" della line di comando Linux è la funzione di retrieve dei comandi,
equivalente in tutto e per tutto alla doskey del DOS.
Il primo, come abbiamo visto è il vero e proprio file di configurazione, con il quale si possono
modificare i menù cambiandogli il nome, oppure inserendo il link a nuove applicazioni, etc.
Sicuramente questo procedimento non è molto "user friendly", ma comunque il file è ben
documentato, e la sintassi usata è piuttosto semplice: inoltre la personalizzazione può essere
spinta addirittura al livello di modificare le message box o il pulsante di start, che
personalmente preferisco rinominare in un più italiano Avvio.
Il secondo file in realtà è un esempio di file di configurazione dei temi del desktop: in esso si
può settare un wallpaper, i colori delle finestre, eventuali suoni, etc. C'è da notare comunque
che relativamente al wallpaper (lo sfondo) è possibile inserire solo immagini in formato .xpm
(formato UNIX). Tale formato è riconosciuto dalla maggior parte dei programmi di
fotoritocco, ma generando file di dimensioni elevate, non permette di utilizzare come sfondo
immagini molto grandi. Anche questo file comunque è ben commentato: inoltre su Internet si
possono trovare relativamente a questo ottimo Window Manager, alcuni temi del dektop già
pronti, risparmiando al "newbie" la fatica di modificare a mano il file.
Bene, abbiamo visto come si installa qvwm: nel prossimo capitolo passeremo allo stupendo
KDE.
Pagina 43
Il Manuale del sistemista LINUX - boss14
CAPITOLO 15 - INSTALLIAMO KDE
Siamo arrivati al momento di installare la più bella interfaccia grafica sotto Linux: KDE.
Intendiamoci, molti Linuxiani non saranno d'accordo con me, poiché molti preferiscono
adottare Window Manager che siano decisamente lontani dalla "filosofia del desktop"
inventata da Microsoft con Windows 95: tali persone preferiscono usare pertanto quelli che io
chiamo i "desktop alternativi" di cui ho fatto una panoramica nei capitoli precedenti.
Comunque bisogna dare atto, almeno quando effettivamente se lo merita, alla Microsoft di
avere creato una interfaccia grafica veramente semplice da usare, bella, facilmente
configurabile: bene, KDE ricalca questa filosofia di vita, ciè rendere la vita più facile agli
uetnti cosiddetti "normali". Per utente normale intendo quelli con poche o addirittura nessuna
conscenza del sistema operativo della propria macchina, che vogliono usare il proprio p.c., per
produttività personale, per fare grafica, multimadialità, giocare, insomma usare il proprio p.c.
cercando di avere meno problemi possibili.
Non tutti si possono avvicinare a Linux con gli occhi di chi vuole imapare a conoscerne anche
i segreti più reconditi: tale approccio non è umanamente possibile per chi ha scarsissime
consocenze di informatica, poiché Linux è, pur girando su un banale personal computer, pur
sempre un sistema UNIX, e come tale è piuttosto potente e di conseguenza complicato.
Lo scopo della comunità Linux di creare software come KDE o distribuzioni come RED
HAT, Caldera, Debian o simili, è proprio quello di cercare di fornire agli utenti un sistema
sempre più facile da installare, sempre più facile da configurare e sempre più facile da
usare.
Pertanto, per chiudere questa lunga dissertazione, ben vengano software come KDE,
StarOffice etc. Scandalizzeranno pure la comunità dei "puristi" di Linux, ma avvicineranno
sempre più persone a questo meraviglioso sistema operativo, rendendo giorno per giorno
sempre più reale il sogno di vedere finalmente anche nell'imformatica, un mondo "pluralista",
senza più monopoli assurdi come quello Microsoft, che non fanno altro che arrecare danni
enormi a tutti arricchendo ingiustamente pochi.
Passiamo pertanto a parlare di KDE: questo Window Manager fa parte di un enorme progetto
teso a realizzare un ambiente desktop assolutamente standard, che oltre al Window Manager
vero e proprio, preveda tutta una serie di applicazioni per la produttività personale, per lo
svago e per il tempo libero che abbiano tutte la stessa interfaccia grafica, le stesse modalità di
utilizzo.
Pertanto da tale ambiziosissimo progetto, su cui si possono avere ulteriori notizie contattando
il sito Internet http://www.kde.org , sono nate tutta una serie di applicazioni: qui di seguito
segnaliamo le più importanti.
All'interno della distribuzione base di KDE, alla data in cui scrivo giunta alla versione 1.1.1,
esistono tutta una serie di applicazioni volte a fornire all'utente finale un prodotto il più
possibile completo. Elenchiamo qui di seguito quelle più interessanti dal punto di vista di un
utente finale:
il File Manager tipo Explorer, che consente anche la navigazione Internet
due editor, equivalenti di Wordpad e di Notepad
un centro di controllo tipo Control-Panel di Windows
Pagina 44
Il Manuale del sistemista LINUX - boss14
tutta una serie di applicazioni multimediali, che vanno dal lettore CD, al mixer, al
lettore multimediale, al lettore MIDI e MIDI con karaoke
moduli di grafica tipo Paintbrush, o per vedere file postscript o file Acrobat
tutta una serie di accessori, a partire dalla calcolatrice, per continuare con il gestore
di pacchetti RPM fino ad arrivare all'equivalente del Microsoft Backup e del
Winzip
una sezione dedicata interamente a giochi classici (solitari, Tetris etc..)
la sezione Internet, comprendente l'accesso remoto, il client di posta elettronica ed
altri moduli che uniti all'interfaccia "Explorer Like", fanno di KDE un ambiente
grafico veramente completo
Oltre a tutto quello già descritto in precedenza, è possibile integrare enormemente il
patrimonio di applicazioni KDE, andando a curiosare sul sito ufficiale dell'organizzazione;
scopriamo così che sono già state rilasciate applicazioni di ogni genere, da quelle per
masterizzare CD a quelle per creare file mp3, dal lettore di filmati AVI,MOVe MPEG, fino ad
arrivare al vero fiore all'occhiello del progetto: Koffice. Tale prodotto, attualmente in fase di
sviluppo, ma già scaricabile da Internet ed usabile (seppure con un poco di cautela - i crash
alla Windows sono sempre in agguato con un prodotto in via di sviluppo !) dovrebbe, secondo
l'intenzione dei suoi creatori, essere l'equivalente Linux di Office 97 della Microsoft. Il
progetto è ambizioso e se riesce potrebbe dare un ulteriore enorme spunto alla già incredibile
crescita di interesse intorno a Linux. Ovviamente anche Koffice sarà completamente gratuito !
Comunque, come vedremo, già oggi esiste la suite Staroffice della Star Division, che pur
essendo un prodotto a pagamento, può essere usato "free of charge" cioè gratuitamente per
un uso non commerciale: chi vi scrive, infatti, sta usando proprio StarOffice per la stesura di
questo libro !
Torniamo all'installazione di KDE: dopo avere scaricato dal sito dell'organizzazione tutti i file
della distribuzione (circa una trentina di MB), oppure avendo acquisito il prodotto da una
rivista o da una distribuzione ufficiale di Linux (SUSE 6.0, Caldera e probabilmente anche la
prossima RedHat 6.0) apriamo una finestra terminale dal nostro Window Manager attuale se
siamo nell'ambiente grafico (oppure usciamo dall'ambiente grafico ed andiamo in modalità
console) e posizioniamoci nella directory in cui è presente la distribuzione: se la distribuzione
è presente su un cd, ricordiamoci di montare prima lo stesso con il solito comando:
mount /dev/cdrom /mnt/cdrom
Partiamo dal presupposto di utilizzare una distribuzione in formato RedHat: a questo punto ci
troviamo di fronte a tutta una serie di file con estensione .rpm: come sicuramente
ricorderemo, tale estensione indica il tipo di file che viene utilizzato dalla RedHat per le
installazioni guidate dei vari prodotti. Come ricorderete, normalmente le installazioni di tali
pacchetti vengono effettuate attraverso l'utility grafica richiamabile dal Control-Panel: In
questo caso, però, non useremo tale utility, perchè l'installazione di KDE viene fornita con un
comodo script di installazione, che lanciato dalla linea di comando, esegue l'installazione
automatica ed ordinata delle varie componenti di KDE, provvedendo anche ad eseguire
automaticamente i vari settaggi delle variabili d'ambiente presenti nel file .bash_profile
dell'utente che sta eseguendo l'installazione.
Pagina 45
Il Manuale del sistemista LINUX - boss14
Lo script di installazione di KDE si chiama install-kde-1.1.1. Comunque, prima di eseguire
tale script, è necessario installare le QT Libraries, che sono delle librerie di sistema
necessarie al funzionamento di KDE come di molte altre applicazioni grafiche. Niente paura,
comunque: tali librerie sono presenti nella distribuzione di KDE di cui siamo in possesso:
bastrà lanciare quindi il comando seguente
rmp -i qt*.rpm
In questo modo il sistema installerà le due librerie QT presenti nella distribuzione; come
avrete certamente notato, ho usato il carattere jolly * per dire al sistema di installare tutti i
pacchetti che iniziavano per qt: questa caratteristica di Linux è veramente comoda, poiché
permette di scrivere comandi in maniera abbreviata risparmiando tempo e limitando gli errori
di digitazione.
Un volta installate le QT Libraries, lanciamo lo script di installazione di KDE:
./install-kde-1.1.1
i caratteri "./" indicano a Linux come agli altri sistemi UNIX che il programma da installare
risiede nella directory attuale.
Lo script ci farà tutta una serie di domande relative ai pacchetti da installare, alla directory di
installazione, etc.. Poiché vogliamo avere una panoramica completa dell'ambiente KDE
decidiamo di installare tutti i componenti del prodotto, e per semplificarci la vita lasciamo
tutte le opzioni di installazione con i valori di default. Dopo alcuni minuti di attesa, ecco che
l'installazione viene completata. A questo punto per poter cominciare ad esplorare il nuovo
ambiente grafico restano da fare due cose: la prima, editare il file /root/.xinitrc commentando
con il carattere "#" le righe che fanno partire eventuali altri window managers. Oltre a
commentare le altre righe, inseriamo la seguente riga:
startkde
Questo comando in realtà altro non è che una shell presente all'interno della directory degli
eseguibili di kde (il default è /opt/kde/bin) che lancia a sua volta i moduli necessari alla
partenza di kde.
La seconda cosa da fare è quella di uscire dalla utenza (tornare quindi alla schermata di login)
e rieffettuare il login: questo poiché è necessario che l'utenza acquisisca le nuove variabili
d'ambiente di KDE (nel caso di sistemi Microsoft avremmo dovuto effettuare il reboot della
macchina: allucinante !
Bene, a questo punto basta dare al prompt dei comandi il fatidico startx e dopo alcuni
secondi (dipendenti molto dalla macchina su cui si "viaggia" ! Sulla mia, per esempio - Cyrix
166 con 32 MB di Ram, scarsina eh ?? - ci mette circa 30 secondi ) apparira il nuovo desktop
di KDE.
A proposito, durante l'installazione, KDE va a modificare il file /etc/inittab inserendo una
riga relativa al modulo kdm. Il file inittab è uno dei file fondamentali di qualsiasi sistema
Pagina 46
Il Manuale del sistemista LINUX - boss14
UNIX, poiché da esso si possono far partire i vari task e daemon all'atto del boot della
macchina. Altra modalità di partenza dei task UNIX consiste nel creare degli script dei vari
moduli nelle directory /etc/rc.d e sottodirectory successive: nel caso di Linux, poiché il livello
standard di lavoro è il 3, per far partire in maniera automatica un programma basta creare
uno script il cui nome deve cominciare obbligatoriamente per S , dargli un progressivo e
dargli i permessi di esecuzione. Tornando al modulo kdm, esso abilita la console grafica di
Linux passando dal livello 3 di esecuzione al livello 5. Infatti, se da linea comado provate a
dare il seguente comando:
telinit 3 ; telinit 5
vedrete che il sistema passerà automaticamente in modalità grafica.
Pertanto per far partire automaticamente la modalità grafica all'atto del boot della
macchina, basta creare in /etc/rc.d/rc3.d uno script che chiameremo per esempio S89telinit
in cui inseriremo il seguente comando
/sbin/telinit 3 ; /sbin/telinit 5
Diamo a questo file i permessi di esecuzione con il comando chmod 755 S89telinit e
riavviamo la macchina: avremo la console grafica sempre disponibile e inoltre potremo
comunque avere le console in modalità testo. Basta infatti, per passare dalla modalità grafica
a quello testo, premere la combinazione di tasti <ctrl><alt> e <Fx> con la x che può
asuumere i valori da 1 a 6: per ritornare alla modalità grafica, basta premere <ctrl><alt> e
<F7>.
CAPITOLO 16 - UNO SGUARDO A KDE
N
B: INSTALLAZIONE DI PPP: Per effettuare l'’i.p. routing tra scheda di rete e
interfaccia ppp, è necessario abilitare l'ip forwarding (nel file /etc/sysconfig/network)
nonchè far partire il servizio named (DNS)
NB.
Pagina 47