Manuale del sistemista Linux
Manuale del sistemista Linux
Questo sito utilizza cookie, anche di terze parti. Se vuoi saperne di più leggi la nostra Cookie Policy. Scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.I testi seguenti sono di proprietà dei rispettivi autori che ringraziamo per l'opportunità che ci danno di far conoscere gratuitamente a studenti , docenti e agli utenti del web i loro testi per sole finalità illustrative didattiche e scientifiche.
Il Manuale del sistemista LINUX
di Alessandro De Rinaldis
Prefazione
Lo ragione principale per cui mi sono deciso a scrivere un manuale del “perfetto” sistemista LINUX e’ quella di mettere un poco di ordine nella mia mente contorta. Il problema è noto e comune alla maggior parte dei sistemisti di ogni parte del mondo: quando si affronta un problema e, dopo una dura lotta, si riesce a risolvere, subentra nel sistemista “vincente” una sorta di beatitudine e di autoincensazione che porta a rilassarsi ed a dimenticare di appuntarsi da qualche parte le modalità che hanno portato alla risoluzione del problema, fidandosi della propria “memoria di elefante”. Pertanto dopo qualche tempo, il problema e la relativaa soluzione vengono completamente digeriti e dimenticati, e questo porta, alla successiva riproposizione dello stesso problema ad un nuovo “sputamento di sangue”.
Per fare un esempio a dir poco banale, ogni volta che ho dovuto installare una distribuzione LINUX RED HAT, mi sono trovato di fronte al solito problema di non poter fare TELNET al sistema LINUX da un pc in rete con esso: ogni volta ho dovuto penare per mezza giornata a “ritrovare la soluzione” (che banalmente consiste nell’aggiungere gli PSEUDOTTY al file /etc/securettys oppure nel cancellare il file /etc/securettys per avere la massima connettività remota), ed ogni volta non mi sono appuntato da qualche parte la medesima soluzione.
Pertanto in questo libro, troverete oltre a tutto quanto serve ad installare e configurare un sistema LINUX, anche una corposa documentazione riguardante gli eventuali problemi di installazione del sistema e dei prodotti.
Questo libro, comunque è rivolto oltre a chi ha già dimestichezza con questo ottimo sistema operativo, anche a chi desidera avvicinarsi a Linux senza conoscerlo assolutamente. Pertanto il linguaggio che userò nel prosieguo del manuale sarà il più possibile semplice, e le descrizioni cercheranno di essere particolarmente esaustive.
Se siete pronti, allacciate le cinture e buona lettura !!!
CAPITOLO 1 - Che cosa è Linux ?
Bella domanda !!
Linux è nato nel 1991 dalla fervida mente del sig. Linus Torvalds, un ricercatore finlandese, che, forse stanco delle limitazioni dell’MS-DOS e derivati, si decise a scrivere un sistema operativo che fosse multitasking, stabile ed efficiente. Ovviamente nel mondo dell’informatica esisteva già da una ventina d’anni UNIX, con tutte le sue variazioni sul tema (leggasi “piattaforme” differenti); bene, Linux secondo il suo creatore doveva diventare un sistema UNIX per pc. Esistevano già altri sistemi UNIX per piattaforma Intel (come p.esempio SCO e UNIXWARE) ma l’idea del caro Linus era quella di creare un sistema snello (quindi veloce) e soprattutto GRATUITO !!
La prima distribuzione di Linux vide la nascita all’inizio del 1994 (se mi ricordo bene). Subito tale sistema operativo incontrò un enorme successo in ambito universitario (probabilmente per il suo costo molto basso !!), grazie al quale e non solo la schiera degli sviluppatori che cominciarono ad interessarsi ad esso aumentò in maniera esponenziale.
Per farla breve, nel giro di meno di 5 anni Linux ha ottenuto i seguenti incredibili risultati:
- più di 100000 sviluppatori nel mondo su piattaforma Linux;
- più di 7 milioni di installazioni nel mondo;
- 5 o più distribuzioni differenti del sistema operativo.
A proposito delle distribuzioni, esse sono differenti confezionamenti di Linux: in comune hanno ovviamente i moduli base del sistema operativo, mentre esse si differenziano per i moduli accessori (come per esempio le utility, il window manager, i vari server, le applicazioni etc.).
Le distribuzioni attualmente per la maggiore sono le seguenti:
- Slackware (completamente gratuita)
- Caldera (commerciale e gratuita con supporto a pagamento nella versione Open Linux)
- RedHat (gratuita con supporto a pagamento)
- Suse (supporto a pagamento)
Nel prosieguo del libro tutto quello che sarà descritto relativamente alla installazione e alla configurazione del sistema si riferisce alla distribuzione RedHat, giunta al momento in cui scrivo alla versione 5.2.
CAPITOLO 2 - Perchè installare Linux ?
La domanda sorge spontanea: perchè un normale utente di p.c. dovrebbe avere la necessità o il desiderio di installare Linux ?
A tale domanda si possono dare molteplici risposte, che qui agglomero insieme.
Linux si installa per semplice curiosità, per avere un primo approccio alle piattaforme UNIX senza creare grossi casini su sistemi di esercizio o simili; oppure perchè si è stanchi di Windows in tutte le sue molteplici forme e dei suoi innumerevoli bachi.
Un altro motivo che spinge moltissimi ad installare Linux è il discorso economico: perchè spendere bei soldini quando con Linux è possibile avere un sistema completo e gratuito ???
Nel prossimo capitolo vedremo in dettaglio le differenze sostanziali tra un sistema Linux ed il mondo Microsoft, mentre nel capitolo 4 analizzeremo la disponibilità di pacchetti applicativi, utility etc... presenti su piattaforma Linux.
Linux è un sistema UNIX, e come tale presenta in generale i pregi ed i difetti tipici di tali sistemi; a fronte di una proverbiale robustezza e sicurezza, presenta una gestione non propriamente “user friendly” (rivolta in maniera “amichevole” all’utente); pertanto di norma effettuare delle operazioni di configurazione del sistema operativo o di alcune sue parti (p.es. la configurazione di rete) non è sicuramente semplicissimo, come può essere nel mondo Microsoft, ma necessita di una conoscenza abbastanza dettagliata del sistema operativo e dei vari file di configurazione.
A dire il vero, con le attuali distribuzioni di Linux, il gap di semplicità che separava tale sistema operativo dal mondo Microsoft si è notevolmente ridotto, poichè adesso le distribuzioni Linux arrivano “guarnite” con una montagna di utility grafiche (le cosiddette applicazioni “X”) che aiutano non poco l’utente inesperto nella configurazione del sistema operativo, a partire dalla definizione degli utenti, della rete, dell’accesso remoto, etc.). E’ indubbio però che, nonostante tali sforzi, un utente inesperto si trovi disorientato di fronte ad un sistema che parte con una interfaccia a carattere, e che deve essere configurato in maniera opportuna affinchè, per esempio, possa far partire l’X Server (la cosiddetta interfaccia grafica X-Windows).
D’altro canto Linux presenta tutta una serie di enormi vantaggi rispetto ai sistemi operativi di casa Microsoft, che giustificano l’attuale boom di installazioni nel mondo e l’enorme interesse che esso attualmente sta destando anche in compagnie notoriamente “conservatrici”, come per esempio i colossi IBM, Oracle ed Informix.
Vediamo allora più in dettaglio le differenze ed i vantaggi che un sistema Linux possiede rispetto ad un sistema Windows NT.
Il confronto è fatto con un sistema Windows NT, poichè ambedue i sistemi operativi si collocano nella cosiddetta fascia dei “sistemi operativi dipartimentali” con spiccate funzionalità di rete. Il confronto non viene quindi fatto con il sistema più popolare di casa Microsoft, Windows 95 (adesso diventato il “famigerato” Windows 98, o come lo chiamano i denigratori, Winbug 98, a causa dei suoi numerosi “buchi”), poichè tale sistema non offre alcuna funzionalità di sicurezza o di multiutenza, come di server di rete o di multitasking “reale”, e d’altrocanto offre, proprio per le sue limitate caratteristiche una velocità maggiore (a parità di hardware) rispetto a Linux o a maggior ragione a Windows NT.
CAPITOLO 3 - Confronto Linux vs Windows NT
Nella tabella seguente sono descritte le differenze tra Linux e Windows NT:
TABELLA 1
Descrizione |
LINUX |
WINDOWS NT |
Costo |
Gratuito |
Circa 2 milioni (versione server) |
Server di rete |
Si |
Si |
Protocolli Utilizzabili Standard |
TCP/IP,Samba,Netware,NFS |
TCP/IP,Netbeui,Netware |
Printer Server |
Si |
Si |
Compilatori di Default |
C,Fortran,Pascal,Assembler,Lisp... |
Nessuno |
Funzioni di Accesso remoto |
Si (con Callback) |
Si (con callback) |
Funzioni Server Internet Standard |
HTTP,FTP,TELNET,DHCP,NEWS,MAIL... |
Solo HTTP (nella installazione di default) |
Interfaccia grafica |
Si (varie) |
Si |
Multiconsole |
Si |
No |
Multitasking |
Si |
Si |
Amministrazione Remota di default |
Si |
Si (limitata) |
Supporto hardware |
Parziale |
Quasi completo |
Efficienza del sistema operativo rispetto all'hardware |
Ottima |
Discreta |
Applicazioni |
Enorme disponibilità |
Enorme disponibilità |
Interfaccia amichevole |
Buona |
Ottima |
Facilità di configurazione/settaggio |
Buona |
Ottima |
Come si vede ad occhio, la tabella, lungi dall'essere esaustiva, mette in luce gli aspetti peculiari dei due sistemi operativi; da un lato Linux, gratuito, efficiente, stabile, molto completo per quanto riguarda la parte di sviluppo e quella di server rivolto al mondo Internet, con una ottima disponibilità di applicazioni, sia gratuite che a pagamento, ma che non supporta completamente l'hardware presente oggi sul mercato (specialmente le ultime novità) con una configurabilità ed una interfaccia amichevole buone ma non ottime: dall'altro lato Windows NT, sicuramente più facile da configurare e con un approccio "user friendly" che è di fatto il punto di forza dei sistemi operativi di casa Microsoft, ma nello stesso tempo molto più "mangiatore di risorse" con scarse attitudini alla rete in generale ed a Internet in particolare (a meno di integrare il sistema operativo base con option pack, BackOffice e via dicendo) e con nessun tool di sviluppo disponibile di base.
CAPITOLO 4 - Applicazioni per Linux
Merita un approfondimento il discorso relativo alle applicazioni disponibili per Linux; infatti, negli ultimi anni in generale e negli ultimi mesi in particolare, si è verificato un autentico boom di applicazioni per piattaforma Linux.
Accanto alle ormai "storiche applicazioni" come quelle tipicamente scientifiche, sono fiorite negli ultimi due anni una serie infinita di applicazioni di ogni genere che coprono oramai qualsiasi campo e sono in grado di rivaleggiare con le analoghe in applicazioni presenti in ambiente Microsoft.
Colossi del software come IBM, ORACLE, INFORMIX, nonché NETSCAPE CORPORATION, STARDIVISION e COREL, hanno effettuato il porting dei loro prodotti di punta in ambiente Linux, completando quindi con una offerta commerciale, la già immensa offerta per così dire “freeware”.
E qui è necessario aprire una parentesi relatovamente al discorso del “gratuito” in ambiente Linux.
Come è noto Linux è un sistema operativo completamente gratuito: questo vuol dire che esso è utilizzabile anche per scopi commerciali senza dover pagare alcun tipo di “royalties” a a qualcuno. Comunque per avere un supporto tecnico più presente ed affidabile, oltre ad affidarsi ai numerosissimi Newsgroup presenti su Internet oppure alla corposa documentazione presente in tutte le distribuzioni rilasciate, è opportuno rivolgersi (a pagamento) alle società che creano le distribuzioni ufficiali di Linux (come per esempio Caldera e RedHat).
In pratica quello che si paga acquistando una distribuzione ufficiale di queste società, è una sorta di rimborso spese per la creazione del set di CD della distribuzione che comprende anche il supporto tecnico per un periodo più o meno limitato.
Considerando il costo modestissimo di tali distribuzioni ufficiali (come esempio riporto quello della distribuzione Redhat - quattro CD - che costa poco più di 50 mila lire) conviene soprattutto per società che hanno deciso di investire su Linux comprare le distribuzioni ufficiali.
Tutto il software non commerciale che viene sviluppato per Linux è normalmente proposto con licenza Open Source: tale licenza permette di modificare a piacere il codice sorgente (sempre allegato all'applicazione) con l'unica limitazione che una volta modificato esso debba essere reso disponibile su Internet alla comunità internazionale.
A tale tipo di licenza hanno cominciato ad aderire anche grosse “Corporations”, come per esempio Netscape, la quale alla mezzanotte del 31 marzo 1998 ha reso disponibile il codice sorgente del suo famosissimo browser internet “Communicator”. In questo modo chiunque può modificare a proprio piacimento le applicazioni Open Source contribuendo in definitiva a migliorare i prodotti e determinando anche una notevole cooperazione tra gruppi differenti per lo sviluppo di una certa applicazione.
Tornando alle applicazioni disponibili per Linux, nella seguente tabella riassumiamo quelle più importanti rimandando per un elenco esaustivo ad alcuni siti internet come il bellissimo http://www.linuxapps.com oppure come http://www.conecta.it o http://www.boutell.com
TABELLA 2 - Applicazioni di punta presenti in ambiente LINUX
TIPO APPLICAZIONE |
NOME |
Browser Intenet |
Netscape Communicator |
FTP Client |
IglooFTP, XMFTP |
Suite Office |
Staroffice, Applixware |
Manipolazione Grafica |
Gimp |
Grafica Postscript |
Acrobat Reader, Ghostview |
Multimedialità |
Real Video, Real Audio, MTV (MPEG 3 e DVD), mixer, CD Player, lettori vari qualunque formato audio, karaoke, supporto per telecamere, schede TV, schede radio, scanner, masterizzatori, encoder MP3 |
Programmazione |
Qualunque tipo di linguaggio, tool di sviluppo, debuggers, compilatori, etc.. |
Comunicazioni |
Supporto di accesso remoto, FAX, funzioni di callback, VNC (controllo remoto di macchine multipiattaforma) |
Window manager |
KDE, WindowMaker, Fvwm, Qvwm (simile a Windows 98) |
WEB Server |
Apache, Squid |
Mail Server |
Sendmail e derivati |
Data Base |
Oracle, Informix, DB2, Postgres |
La tabella precedente, lungi dall'essere esaustiva, ha solo lo scopo di dare una panoramica di quello che si può trovare in ambiente Linux; dalla tabella comunque si evince subito che Linux non è un sistema operativo disegnato per i giochi: infatti le poche applicazioni per così dire "ludiche" non possono neanche lontanamente competere con i giochi presenti in ambiente Windows 95/98; comunque è anche vero che solo tre anni fa parlare di "multimedialità" in ambiente Linux era un po' un eresia, mentre negli ultimi tempio, come si nota leggendo la tabella, le applicazioni in ambito multimediale sono fiorite in maniera impressionante, senza comunque raggiungere ancora il livello di semplicità presente in ambiente Microsoft.
Pertanto in un futuro non remoto, potremmo assistere ad una crescita esponenziale, ed anche di qualità di giochi in ambiente Linux.
Per inciso, il libro che state leggendo, è stato interamente scritto utilizzando la suite StarOffice 5.0, una concorrente temibile di Office 97, la quale, tra l'altro, è assolutamente gratuita.
Bene, dopo questa introduzione piuttosto lunga, ma doverosa, passiamo finalmente alla descrizione di come si installa una distribuzione Linux; prenderemo in considerazione una distribuzione Linux Red Hat 5.2.
CAPITOLO 5 - Prepariamo la macchina per installare Linux
Bene, partiremo dal punto di vista di una persona che abbia sul suo p.c. già installato Windows 98 e che intenda installare anche Linux su un altro disco o su un'altra partizione, in maniera da cominiciare a sperimentare questo sistema operativo.
Installeremo la versione Linux Red Hat 5.2 (nel caso in cui al momento della lettura questa versione non sia più l'utima uscita, niente paura, poiché la filosofia della installazione resta sempre la stessa a parte alcune lievi modifiche e migliorie).
Ovviamente si pone subito un problema: come faccio ad installare Linux senza perdere i miei dati ? Devo fare lunghi e penosi backup dei dati, ripartizionare il disco e reinstallare Windows e tutti i miei dati ? Oppure devo comprare un altro disco ? O comprare un tool software come Partition Magic per ripartizionare in maniera indolore ???
Niente di tutto questo !!! In tutte le distribuzioni Linux e quindi anche nella Red Hat esistono a corredo tutta una serie di utility per facilitare la vita agli utenti DOS in generale e Windows in particolare. Tra di esse quella che andremo ad usare è l'utility FIPS, che permette alla stessa stregua di prodotti come Partition Magic di partizionare in maniera indolore l'hard-disk.
L'ipotesi che faremo è quella di avere sul nostro p.c. un unico hard-disk di capacità 4.3 Gb e di volere riservare per la nostra partizione Linux 1.3 GB (più chesufficienti considerando il fatto che una installazione completa di Red Hat occupa circa 900 MB, di cui, come vedremo in seguito, molti assolutamente non necessari (come per esempio la corposa documentazione presente in lingue come il turco, il greco, il cinese o il finlandese !).
La prima operazione da compiere è quella di effettuare un defrag del disco rigido, in maniera da compattare tutto lo spazio libero.
Dopodichè si effettuano le seguenti operazioni:
- Creare un dischetto di boot Windows 95
- copiarci sopra i file fips.exe e restorrb.com (si trovano nella directory \RedHat\dosutils del cd-rom)
Una volta creato il dischetto di boot, è opportuno (ma non necessario) effettuare il boot da dischetto ed eseguire l'utility fips; tale utility come prima cosa chiede di effettuare un salvataggio della tabella delle partizioni (partition table) onde preservarsi da eventuali problemi: infatti la presenza sul dischetto del programma restorrb è fondamentale proprio per effettuare, in caso di problemi, il ripristino della partition table allo stato originario.
Dopo che la partition table è stata salvata, fips propone la suddivisione dell'hard disk in due partizioni: la dimensione delle due partizioni può essere modificata in modo da arrivare ad un dimensionamento sufficiente. Nel nostro caso agiremo sulle freccette della tastiera in maniera da impostare la nuova partizione ad una dimensione di 1.3 GB.
Fips mostrerà un messaggio di questo tipo:
<old partition> : 3GB <new partition> : 1.3GB
Una volta dimensionata in maniera opportuna la nuova partizione faremo scrivere a fips la nuova partition table.
A questo punto facendo ripartire la macchina ed eseguendo fdisk dovremmo notare, se tutto è andato bene, due partizioni:
- una partizione fat (16 o 32 ) di 3GB;
- una partizione NON DOS di 1.3 GB.
La partizione NON DOS deve a questo punto essere cancellata.
In questo modo lo spazio recuperato cancellando la partizione NON DOS sarà quello che a questo punto utilizzeremo per installare Linux.
CAPITOLO 6 - Preparazione del dispositivo di Boot di Linux
Per effettuare il boot Linux allo scopo di iniziare l'installazione del nuovo sistema operativo, occorre prima decidere da quale dispositivo effettuare il boot. Ciò poiché le ultime distribuzioni RedHat vengono rilasciate normalmente du cd-rom di tipo bootable cioè cd-rom da cui è possibile effettuare direttamente il boot.
Normalmente da un paio d'anni a questa parte i bios dei p.c. Permettono di specificare tra i dispositivi di boot anche il lettore cd-rom; se questo fosse il caso del vostro p.c., tutto quello che dovete fare per effettuare il boot Linux necessario ad iniziare l'installazione, è inserire il cd-rom nel lettore ed accendere il computer.
In questa trattazione, comunque, partiremo dall'ipotesi che il bios del nostro p.c. non sia così evoluto da permettere il boot da cd-rom; in questo caso si renderà necessario creare il set di dischetti di boot di Linux.
Ho parlato di set di dischetti di boot: in realtà per installare Linux su una macchina che dispone di lettore cd non bootable è necessario solo un dischetto; comunque è utile sapere che l'installazione di Linux è possibile anche da hard-disk (partizione Dos-Windows) da rete, tramite protocollo FTP, protocollo NFS, oppure collegandosi ad un server SAMBA (in pratica qualunque macchina con sistema operativo Microsoft) . Tali modalità di installazione richiedono la creazione di un secondo dischetto, chiamato Supplementary Disk; esiste inoltre anche un terzo dischetto chiamato Rescue Disk (letteralmente disco di sopravvivenza) che permette in caso di grossi problemi, la ripartenza del sistema operativo in una modalità simile alla modalità provvisoria di Windows 98.
Pertanto è opportuno creare il set di dischetti completo: per fare ciò esiste nella directory \Redhat\dosutils (per intenderci la stessa che contiene i moduli fips e restorrb) l'utility rawrite.
Per creare i dischetti di boot, supplementary e rescue procedere come segue:
- eseguire rawrite.exe
- alla richiesta del file di cui fare l'immagine sul dischetto digitare nei singoli tre casi: d:\redhat\images\boot.img, d:\redhat\images\supp.img, d:\redhat\images\rescue.img dove d:\ abbiamo supposto essere l'unità logica del cd-rom
In questo modo l'utility rawrite creerà il set di tre dischetti di Linux Red Hat.
Bene, siamo finalmente pronti per iniziare la installazione vera e propria di Linux.
CAPITOLO 7 - Installazione di una distribuzione Red Hat
Inseriamo il dischetto di boot di Red Hat ed accendiamo la macchina: dopo i soliti messaggi del BIOS, della RAM etc. apparire subito una schermata di "Welcome" da parte della Red Hat, in fondo alla quale vi è una specie di prompt con scritto <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.
Proseguendo con l'installazione, arriviamo ad uno dei punti cruciali: la creazione della partizione/partizioni Linux e dell'area di swap.
Come in ambiente Microsoft, così anche in ambiente Unix in generale e Linux in particolare esiste l'area di swap (Sarebbe più corretto ribaltare il senso della frase, poiché è stata la Microsoft a copiare il concetto di area di swap dagli altri sistemi operativi): per chi non la consosce, l'area di swap si può identificare con il concetto di memoria virtuale. La memoria virtuale è in pratica una porzione di spazio su disco formattata in un modo particolare che viene usata dal sistema operativo come fosse a tutti gli effetti memoria fisica; in questo modo viene esteso l'ammontare della memoria globale superando il limite della memoria fisica (p.es se una macchina ha 32 MB di RAM ed un'area di swap di 50MB, per il sistema operativo è come se essa avesse 82 MB di RAM. Naturalmente il rovescio della medaglia dell'uso di memoria virtuale in luogo della memoria fisica è che la prima è enormemente più lenta della seconda (stiamo parlando di tempi di accesso dell'ordine dei millisecondi in luogo di nanosecondi per accedere alla RAM) oltre ad utilizzare una prozione di spazio disco che non può essere in nessun modo acceduta dalle applicazioni e dagli utenti.
Bene, tornando alla creazione della partizione Linux (il cosiddetto Filesystem) e dell'area di swap, vi consiglio di usare Fdisk in luogo di DiskDruid; la procedura di installazione propone tutte e due le modalità, ma Fdisk è sicuramente un tools più potente di DiskDruid.
Come per l'ambiente DOS/Windows, anche l'uso di fdisk sotto Linux potrebbe dare esiti spiacevoli in caso di errore: pertanto prestate grande attenzione a quello che fate !!!
Appena entrati in fdisk, conviene digitare "p" comando che visualizza l'attuale tabella delle partizioni; in risposta a tale comando, sempre considerando il nostro esempio di partenza ( vedi Capitolo 5) dovremmo avere una situazione più o meno di questo genere:
Command (m for help): p
Disk /dev/hda: 64 heads, 63 sectors, 782 cylinders
Units = cylinders of 4032 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 305 3014848+ 6 DOS 16-bit >=32M
Per avere il menù dei comandi disponibili basta digitare "m".
Creiamo adesso la partizione Linux e l'area di swap: in realtà potremmo anche creare più filesystems Linux, ma per semplicità utilizzeremo tutto lo spazio disco disponibile (meno ovviamente lo spazio che utilizzeremo come area di swap).
Avendo a disposizione 1.3Gb di spazio, decidiamo di creare un filesystem Linux di 1.2Gb ed un'area di swap di 100Mb; questa scelta è solo di esempio, poiché normalmente una regola da rispettare è quella di creare un'area di swap la cui dimensione sia circa il doppio della RAM a nostra disposizione. Per esempio, se il nostro computer dispone di 32Mb di RAM, l'area di swap dovrà essere dimensionata almeno a 64Mb.
- digitiamo "n" (new partition);
- alla domanda "p" o "e" rispondiamo "p" (primary partition);
- alla domanda quale numero di partizione rispondiamo 2 poiché nel nostro caso la partizione numero 1 è quella su cui è installato Windows 98;
- alla richiesta di indicare la dimensione della partizione, rispondiamo +1200MB;
- bene adesso rifacciamo il comando "p" (print); dovremmo ottenere come risposta un messaggio del genere:
Device Boot Start End Blocks Id System
/dev/hda1 * 1 305 614848+ 6 DOS 16-bit >=32M
/dev/hda2 306 750 1200000 83 Linux native
A questo punto creiamo con lo stesso procedimento l'area di swap:
- digitiamo "n" (new partition);
- alla domanda "p" o "e" rispondiamo "p" (primary partition);
- alla domanda quale numero di partizione rispondiamo 3 ;
- alla richiesta di indicare la dimensione della partizione, rispondiamo +100MB;
- bene adesso rifacciamo il comando "p" (print); dovremmo ottenere come risposta:
Device Boot Start End Blocks Id System
/dev/hda1 * 1 305 614848+ 6 DOS 16-bit >=32M
/dev/hda2 306 750 1200000 83 Linux native
/dev/hda3 751 782 100000 83 Linux native
Come si nota con fdisk abbiamo in realtà creato due partizioni Linux, mentre in realtà avremmo dovuto creare la partizione primaria Linux (quella, per intenderci, di 1.2Gb) e l'area di swap di 100Mb. Niente paura, non abbiamo sbagliato qualcosa nel procedimento: fdisk di default (per definizione) crea sempre partizioni Linux. Adesso ci resta solamente da modificare il tipo di partizione dell'area di swap, per farla diventare effettivamente un'area di swap e non un filesystem:
- digitare t;
- alla risposta Partition number (1-4): digitare nel nostro caso "3";
- fdisk risponde con il seguente messaggio: Hex code (type L to list codes): digitare "L";
- fdisk ci mostra a questo punto l'elenco dei filesystem supportati con i codici esadecimali corrispondenti:
0 Empty a OS/2 Boot Manag 65 Novell Netware a6 OpenBSD
1 DOS 12-bit FAT b Win95 FAT32 75 PC/IX a7 NEXTSTEP
2 XENIX root c Win95 FAT32 (LB 80 Old MINIX b7 BSDI fs
3 XENIX usr e Win95 FAT16 (LB 81 Linux/MINIX b8 BSDI swap
4 DOS 16-bit <32M f Win95 Extended 82 Linux swap c7 Syrinx
5 Extended 40 Venix 80286 83 Linux native db CP/M
6 DOS 16-bit >=32 51 Novell? 85 Linux extended e1 DOS access
7 OS/2 HPFS 52 Microport 93 Amoeba e3 DOS R/O
8 AIX 63 GNU HURD 94 Amoeba BBT f2 DOS secondary
9 AIX bootable 64 Novell Netware a5 BSD/386 ff BBT
- Come si può notare la partizione Linux di swap (l'area di swap) ha un codice esadecimale "82": pertanto alla domanda di fdisk Hex code (type L to list codes): si deve rispondere con "82";
Bene a questo punto la nostra partition table dovrebbe essere più o meno così:
Device Boot Start End Blocks Id System
/dev/hda1 * 1 305 614848+ 6 DOS 16-bit >=32M
/dev/hda2 306 750 1200000 83 Linux native
/dev/hda3 751 782 100000 82 Linux swap
- Possiamo a questo punto arrivare all'atto conclusivo dell'operazione di creazione del filesystem e dell'area di swap: la scrittura effettiva su disco della nuova partition table: pertanto digitiamo "w" e fdisk scriverà sul disco la nuova partition table.
Dopo di ciò il controllo ritorna al programma di installazione di RedHat: esso ci chiederà in rapida successione di formattare l'area di swap, di formattare lo spazio disco riservato al nuovo filesystem Linux, nonché di specificare i punti di mount dei filesystems. E qui arriviamo ad un concetto del tutto nuovo per i neofiti di Unix in generale e di Linux in particolare: quello del punto di mount.
Il punto di mount in Unix rappresenta il collegamento tra una directory ed un dispositivo fisico: per esempio un disco rigido, una unità floppy, oppure anche un filesystem di un'altra macchina (Unix e non). I dispositivi fisici in Unix vengono rappresentati dai cosiddetti special files: essi sono, per l'appunto dei file speciali non editabili, che vengono utilizzati dal sistema operativo per identificare i componenti hardware della macchina. Per esempio le unità disco IDE vengono normalmente identificate con gli special files /dev/hda1, /dev/hda2, etc mentre per quanto riguarda le unità floppy gli special files normalmente sono del tipo /dev/fd0, /dev/fd1 e via dicendo.
Come si può capire facilmente, tutti questi particolari file vengono normalmente memorizzati in una directory chiamata /dev. Ora più in dettaglio, non è particolarmente comodo utilizzare questi special files per effettuare le normali operazioni di gestione dei files: pertanto è stato creato il meccanismo del punto di mount: la maggior parte dei dispositivi fisici e logici di memorizzazione (hard-disk, floppy, cd-rom) per essere disponibili all'utente devono essere montati indicando un nome simbolico che corrisponde ad una directory: per fare un esempio, per vedere il contenuto di un floppy sotto Linux, bisogna prima rendere tale dispositivo disponibile con un comando di mount del tipo "mount /dev/fd0 /mnt/floppy" dove "/mnt/floppy è una directory che deve essere stata precedentemente creata. Una volta effettuata l'operazione di mount, tutti i dati presenti sul floppy sono disponibili nella directory di cui sopra.
Viceversa, prima di togliere il floppy è opportuno effettuare l'unmount del dispositivo: umount /mnt/floppy oppure indifferentemente umount /dev/fd0.
E' necessario indicare i punti di mount (quindi le directory) per montare i vari dispositivi di hard-disk; pertanto durante l'installazione di RedHat vengono chiesti i punti di mount del filesystem "root" di Linux e della partizione Windows 98. Normalmente il punto di mount del filesystem Linux viene chiamato "/" come standard Unix, mentre per quanto riguarda la partizione Windows 98, il punto di mount lo chiameremo "/discoc". Avrete sicuramente notato che in Unix la sintassi delle directory è diversa da Dos+: in Dos le directory windows, per esempio ha come path "\windows", mentre in Unix sarà "/windows".
Una volta che le nostre partizioni sono state definite viene richiesto di formattarle (ovviamente le nuove, cioè il filesystem Linux, chiamato ext2fs e l'area di swap)
Finalmente arriviamo al momento cruciale della installazione di Red Hat: quali pacchetti installare ?
Nel nostro esempio, disponendo di 1.3Gb potremmo tranquillamente selezionare l'opzione "installa tutto": in questo modo verrebbero "sparati" sul nostro filesystem root la bellezza di 900MB di software.
Ma quello che vogliamo fare qui è di iniziare a capire quali sono le applicazioni ed i servizi interessanti in Linux, e quali di queste applicazioni/servizi sono ormai superati e quindi divenuti ormai assolutamente opzionali.
Senza entrare in un dettaglio piuttosto spinto, possiamo tranquillamente dichiarare che l'installazione completa della distribuzione Red Hat è francamente troppo: che ve ne fate, per esempio, di tutta la documentazione Linux in una decina di lingue, tra cui il giapponese, il cinese, il turco, il coreano, etc... ?
Oppure, sono ancora utili tutti quei programmi di publishing tipo Emacs o Tex/Latex, quando ormai anche in ambiente Linux sono presenti delle suite Office professionali, in grado di competere con Microsoft Office ?
Quindi quello che faremo nel nostro esempio, è di effettuare una scelta ponderata dei vari pacchetti da installare, senza entrare nel dettaglio spinto di considerare un pacchetto alla volta (una operazione dle genere comporterebbe una perdita di tempo di qualche ora !)
Ipotizziamo quindi che la nostra macchina venga utilizzata in una rete locale, nella quale siano presenti sia altre macchine Linux che macchine con sistema operativo Microsoft (windows 95/98, NT); questo scenario è quello che normalmente presente in aziende medio/piccole oppure all'interno di particolari settori di grosse Società. In tali contesti le macchine Linux vengono utilizzate come server Internet/Intranet , come firewall/proxy, come printer server oppure come macchine di repository o server di dati (su data base).
Installaremo pertanto tutto quello che interessa problematiche di networking: Samba, NFS, tutti i protocolli TCP/PPP, le funzionalità di WEB Server, di FTP, di printer server, in generale tuttle le funzionalità di networking.
Inoltre tutto ciò che riguarda lo sviluppo e la compilazione di applicazioni (in modo particolare tutto ciò che riguarda il "c/c++ language"), deve per forza essere installato anche se la macchina non sarà destinata come macchina di sviluppo di applicazioni; ciò si rende necessario poiché la maggior parte delle applicazioni Linux disponibili su Internet come nei CD-ROM allegati nelle riviste di informatica vengono distribuite in forma di codice sorgente (per assicurare la portabilità sulla maggior parte delle piattaforme Unix presenti). Inoltre anche la ricompilazione del kernel di Linux (operazione che, come vedremo nel seguito, si rende necessaria nella maggior parte delle installazioni per far funzionare alcuni dispositivi hardware come schede audio, schede scsi, schede radio/tv) necessita dell'ambiente di sviluppo e di compilazione del "c", poiché Linux come tutti gli altri sistemi Unix, è scritto quasi completamente in "c".
Nel precedente capoverso abbiamo introdotto alcune parole misteriose per i neofiti dei sistemi operativi Unix: Samba, NFS, kernel... Non ci preoccupiamo per il momento di questi concetti, questi come tanti altri verranno ampiamente sviluppati nel prosieguo del libro. D'altronde l'idea di scrivere un libro del genere mi è venuto anche allo scopo di far avvicinare il maggior numero di persone a questo bellissimo sistema operativo ed insegnare loro ad utilizzarlo.
Pertanto una volta finita l'installazione di Red Hat, prima di cominciare ad usare, configurare ed ottimizare Linux, e prima di iniziare ad installare le applicazioni di punta, nel manuale verrà fatto un minicorso Unix con cenni all'architettura del sistema operativo, alla gestione dei file, degli utenti, nonché una descrizione dei comandi fondamentali e un mini-mini corso sul "vi", l'editor Unix per definizione, particolarmente ostico per chi inizia ad utilizzarlo, ma particolarmente potente una volta appreso.
Tornando ai pacchetti da installare, se il nostro p.c. dispone di scheda audio e di cd-rom è opportuno installare il set di applicazioni che nella installazione Linux viene definita come "multimedia machine"; inoltre sono pacchetti importanti quella che riguardano lo sviluppo di applicazioni "X" (l'ambiente grafico).
In ambito Unix, normalmente si lavora per la maggior parte del tempo in modalità "linea di comando" esattamente la stessa modalità del DOS nativo.
Con questa modalità si sfruttano comunque tutte le caratteristiche di interattività, multitasking, robustezza e velocità di questo sistema operativo.
Comunque lavorando in modalità linea di comando, vi sono anche degli aspetti negativi che si acuiscono particolarmente per coloro che sono meno esperti di Unix. Tanto per fare un esempio ormai inflazionato anche all'interno di questo libro, l'editor principe di Unix è il vi; esso è molto più potente, per esempio, del comando edit del DOS, oppure del Notepad di Windows, ma presente una enorme difficoltà iniziale per digerirne i comandi, anche quelli principali e più semplici (una volta installato Linux, provate a fare il comando "man vi"; vi verranno sparate una cinquantina di pagine di manuale Unix su questo editor.
Ecco quindi che dopo alcuni anni è sorta la necessità di creare un ambiente operativo con una interfaccia più amichevole: è quindi nato l'ambiente "X Windows", o più semplicemente "X" che propone una interfaccia grafica simile a quella di sistema operativi come MAC-OS, OS/2 e MS-Windows (l'ordine di declamazione è rigorosamente cronologico, poiché come molti non sanno e come succede sempre per ogni prodotto, la Microsoft non crea i suoi prodotti, ma li copia rigorosamente dalle idee delle altre società !
I giochi li possiamo anche installare, ma non aspettatevi molto di più dei classici Tetris, Pacman Majhong e Minesweeper, oltre ai solitari: come già detto in precedenza, Linux è un sistema operativo che ancora non presenta, una offerta di giochi simile a quella presente su altri sistemi operativi, Microsoft su tutti: comunque qualcosa si sta iniziando a muovere.
Avrete sicuramente notato che molte categorie di applicazioni sono presenti sia in ambiente console (quindi essenzialmente in modalità testo) che in ambiente "X": io vi consiglio di installare entrambi, poiché se è vero che le applicazioni in ambiente grafico sono più facili da usare, è anche vero che alcune di esse si appoggiano comunque sulle loro equivalenti in modalità testo, che tra l'altro offrono una maggiore velocità di esecuzione ed un maggior controllo di tutti i parametri opzionali.
Bene, ricapitolando, installeremo i seguenti tools:
- printer support
- X Windows System
- Mail/WWW/News tools
- DOS/Win Connectivity
- File Managers
- Graphics manipulations
- X Games
- X Multimedia Support
- Console Multimedia
- Networked Workstation
- Dialup Workstation
- Nfs Server
- SMB Connectivity
- Anonymous FTP
- Web Server
- Networked management Workstation
- C Development
- Development Libraries
- X Development
- C++ Development
A questo punto comincia finalmente l'installazione vera e propria della distribuzione.
Non pensate che il processo di installazione dei pacchetti sia una cosa terribilmente lunga: niente a che vedere con le installazioni di Windows 95/98 o NT ! Con i pacchetti scelti vengono installati più o meno 300MB di software che vengono letteralmente "sparati" sul vostro hard disk alla velocità della luce ! L'intero processo di installazione dei pacchetti dura, su una macchina pentium 166MHz (quindi neanche tanto veloce !) meno di 10 minuti.
Si vedono comparire sul monitor tutti i pacchetti che vengono installati: comunque, per non farsi venire il mal di testa alla fine della installazione è possibile conoscere con dettaglio la lista dell applicazioni installate, poiché durante l'installazione viene creato un file di log chiamato guarda caso install.log nella directory /tmp.
Finita l'installazione dei pacchetti il sistema riconosce automaticamente la presenza del mouse, e chiede se si voglionio emulare i 3 bottoni: rispondiamo di si, poiché tale opzione a volte è utile.
Successivamente arriviamo ad un altro punto spinoso: quello della configurazione della scheda video. Tale configurazione è di fondamentale importanza, poiché senza di essa non sarà possibile far partire l'interfaccia grafica (l'X Server, come già accennato), oppure tale interfaccia partirà con funzionalità limitate (per esempio in VGA a 16 colori).
Nella maggior parte dei casi la scheda grafica viene riconosciuta correttamente da RedHat e di conseguenza viene installato il pacchetto di X Server corrispondente. Per esempio, sul mio glorioso P.C. (Cyirix 166+, 32 MB RAM etc... praticamente già superato da due anni !) è presente una scheda grafica S3 Trio 64V+, immediatamente riconosciuta e automaticamente configurata. Comunque in alcuni casi, specialmente per schede grafiche recentissime, può succedere che l'installazione non riesca ad effettuare il riconoscimento, oppure riconosca la vostra scheda come fosse un'altra: in questo caso, onde evitare un probabile crash del sistema con conseguente fine anormale della procedura di installazione del sistema operativo e buttata a mare di almeno un'ora di lavoro (poiché in questo caso bisogna ricominciare tutto da capo !) è opportuno "skippare" l'installazione dell'X Server e studiare successivamente il problema. Nel libro viene dedicato un capitolo intero alla risoluzione di questo problema.
Nel nostro caso ipotizziamo di essere tra i fortunati la cui scheda grafica viene immediatamente riconosciuta in maniera corretta dalla procedura di installazione.
In questo caso, viene installato l'X server corrispondente, dopodichè vengono proposte delle configurazioni automatiche (la cosiddetta modalità "probe") relativamente alla frequenza del monitor ed alla risoluzione/risoluzioni proposte. In questa fase decidiamo di far fare tutto in maniera automatica; eventualmente se, in un secondo tempo non siamo soddisfatti del risultato ottenuto, potremo sempre modificare a piacere la configurazione grafica del sistema utilizzando la apposita utility chiamata Xconfigurator.
Dopo la configurazione della scheda grafica, arriva il momento di configurare la rete (il "network" per dirla all'inglese): tale operazione nella maggior parte delle installazioni per così dire "casalinghe" non è ovviamente necessaria, ma risulta essere fondamentale quando la nostra nuova macchina Linux debba essere inserita in una relatà di rete locale/geografica. Questa realtà è quella che normalmente si trova in qualunque ufficio di piccole/medie/grandi dimensioni in qualunque angolo del pianeta, ed è anche quella che abbiamo ipotizzato nel nostro esempio di partenza; pertanto anche nel nostro esempio configureremo la rete.
Quando si parla di configurare la rete durante una installazione Linux, quello che in realtà viene configurato è il protocollo noto come TCP/IP: questa sigla dovrebbe ormai essere conosciuta alla stragrande maggioranza dei lettori, anche quelli quasi completamente a digiuno di nozioni di informatica, poiché con essa viene identificato il protocollo di comunicazione della madre di tuttel le reti, cioè INTERNET. Senza entrare nel dettaglio di comprendere il meccanismo di funzionamento di tale protocollo, ed i pro ed i contro che lo contraddistinguono, possiamo dire che esso è oramai lo standard di fatto delle reti geografiche (intendendo per rete geografica una serie di reti locali distanti interconnesse tra di loro tramite opportune apparecchiature ed opportune linee di trasmissione). Configurando il protocollo TCP/IP sulla nostra macchina, potremmo quindi connettere essa sia alla nostra rete locale aziendale che alle reti geografiche in generale ed ad INTERNET in particolare.
Ovviamente nel caso di una macchina colegata ad INTERNET solamente tramite un modem, la configurazione di rete non deve essere fatta, ma deve comunque essere configurata la componente su linea seriale del protocollo TCP/IP, il cosiddetto PPP (Point to Point Protocol). La configurazione del modem e del protocollo PPP sarà argomento di un successivo capitolo in cui verrà spiegato il meccanismo di connessione ad INTERNET tramite un provider.
L'installazione di Red Hat ci chiede a questo punto informazioni relative al nostro I.P. Address (statico o tramite DHCP o BOOTP), e, nel caso di indirizzo statico al Netmask (la maschera di sottorete) al default Gateway, ai DNS (Domain Name Server) primari e secondari etc. Tutte queste informazioni normalmente in una azienda devono essere richieste all'amministratore della rete. Per quanto rigurada la scheda di rete, essa normalmente viene riconosciuta in modo automatico una volta che essa sia stata selezionata da quelle supportate di base dalla installazione di Red Hat; nel caso in cui la vostra scheda di rete non sia tra quelle supportate, oppure pur essendo supportata non venga riconosciuta per qualche misterioso motivo, il problema può comunque essere risolto successivamente tramite ricompilazione del kernel di Linux inglobando gli eventuali driver della scheda.
Proprio ultimamente, per lavoro, ho installato una macchina Linux con funzionalità di firewall (cioè con funzionalità di connessione controllata tra due reti) che aveva due schede di rete che di default non venivano riconosciute dalla installazione di Red Hat. Una volta installato il sistema operativo, è bastato ricompilare in maniera opportuna il kernel, includendo in esso i driver delle due schede di rete, è tutto è andato a posto.
Per inciso, la macchina che ho installata come firewall, è un vecchissimo 486 DX 50 con soli 8 MB di RAM e 370 MB di hard-disk; i firewall utilizzati sono TIS e IPFWADM, che tra l'altro è una funzionalità integrabile nel Kernel di Linux. Il tutto ovviamente a costo zero, visto anche la vetustà dell'hardware.
Per ottenere la stessa funzionalità in ambiente Microsoft avrei dovuto spendere oltre 10 milioni di lire (più o meno 5000 EURO) per l'acquisto di una hardware adeguato, del sistema operativo WINDOWS NT SERVER, nonché di un prodotto Firewall opportuno (i quali sono carissimi).
Un'altra dimostrazione della enorme superiorità di Linux rispetto a WINDOWS NT !!
Bene, siamo arrivati quasi alla fine della nostra installazione: ci restano da impostare poche altre cose tra cui l'orologio sul nostro fuso orario (selezionate "Europe/Rome" senza selezionare il settaggio dell'orologio hardware del p.c. !). Subito dopo ci vengono proposti i processi di sistema da far partire al boot della macchina.
Tali processi sono delle applicazioni di servizio tipicamente UNIX che permettono al sistema operativo di fornire tutta una serie di servizi all'utente: per esempio i processi atd e crond permettono agli utenti di schedulare delle attività a tempo per così dire unattended cioè senza la necessità di presenza umana. Tipico esempio di attività unattended è per esempio l'esecuzione di un File Transfer notturno, oppure un salvataggio automatico di una base dati.
Altri processi tipici sono i servizi di rete, i servizi NFS l'FTP Server, il SAMBA, il TELNET, la partenza di un Data Base Server, etc
Senza descrivere in dettaglio tutti processi possiamo dire che per il nostro esempio è opportuno fa partire tutti i processi proposti dalla installazione esclusi i seguenti:
- atd (basta nella maggior parte delle installazioni avere solo il crond attivo)
- pcmcia (se il p.c. È però un portatile, è necessario farlo partire)
- sendmail (a meno che non si voglia usare la macchina come server di posta elettronica)
- httpd (questo processo fa partire Apache il WEB Server più diffuso su INTERNET; fatelo partire se la vostra macchina deve diventare un server INTERNET/INTRANET)
E' rimasto solo da configurare la stampante: anche qui la installazione di Red Hat dimostra una grande versatilità, poiche ci permette di configurare sia una stampante locale (cioè fisicamente connessa al nostro p.c.) che stampanti di rete. In questo secondo ci viene offerta la possibilità di installare una stampante remota UNIX, oppure una stampante NOVELL, o ancora una stampante SAMBA (cioè una stampante connessa ad una macchina WINDOWS con protocollo di comunicazione NETBEUI, che è il protocollo Microsoft per eccellenza in ambito reti locali). Qui supponiamo di installare una stampante locale, e tale operazione risulta particolarmente semplice. Ci viene richiesto anche quale driver usare; se la nostra stampante non fosse tra quelle proposte dalla installazione, è comunque possibile selezionare driver generici sia in modalità testo che in modalità Postscript (la modalità grafica che viene usata negli ambienti UNIX).
N.B.: l'Installazione di una stampante di rete verrà trattata successivamente
Coraggio siamo arrivati agli ultimi due passi: il primo è banale poiché l'installazione ci richiede la password dell'utenza root: l'utenza root nei sistemi UNIX è l'equivalente dell'utenza Administrator in ambiente Windows NT. In partica root è il superutente con potere di "vita e di morte" su tutto ciò che accade nel sistema e su tutti gli utenti, per così dire "mortali" che usano il sistema.
Root è di norma l'unico utente che può effettuare lo shutdown o il reboot della macchina, oppure montare e smontare i file system.
Pertanto si capisce l'importanza di tale utenza, che di norma viene assegnata al cosidetto "amministratore del sistema", cioè il "guru" che lo ha installato e configurato.
Vista la potenza di tale utenza, è opportuno che la password di accesso non venga divulgata a tante persone, e soprattutto ad utenti non molto esperti od alle prime armi: il rischio è quello di non vedere ripartire più la macchina Linux !!.
La password che useremo nel nostro esempio è: charlie
Dopo la password viene richiesto di creare un bootdisk, utilissimo per pararsi il fondoschiena da improvvisi malfunzionamenti della procedura di Boot (per esempio record di boot rovinato o kernel cancellato inavverititamente).
L'utimo passo è quello della creazione del Boot Loader LILO: LILO sta per Linux Loader, ed in pratica è un piccolo programmino che faremo scrivere sul Master Boot Record del disco rigido.
Il Master Boot Record (MBR) è un particolare settore del disco rigido che permette l'avviamento dei sistemi operativi. In esso normalmente viene scritto un programmino che punta all partizione del disco su cui vi è il sistema operativo da caricare (p.es Windows 95/98). Tale programmino viene di norma chiamato Boot Loader: tipico esempio di Boot Loader è il menù di partenza di Windows NT
Abbiamo visto che Linux è in grado di riconsocere sul disco rigido precedenti installazioni di DOS/Windows 95/98. Pertanto nel LILO troveremo anche una sezione necessaria all'avviamento di tale sistema operativo. L'instazione ci propone come nomi simbolici per la partenza dei due sistemi "Linux" e "Dos". E' possibile comunque modificare tali nomi simbolici. Durante tale fase non è possibile invece modificare il sistema operativo di default all'accensione della macchina. Pertanto al prossimo reboot, se non verrà fatta alcuna operazione, partirà Linux e non Windows. Comunque imapareremo immediatamente nel prossimo capitolo a far partire anche Windows ed anche a modificare l'ordine di partenza dei sistemi operativi modificando il file di configurazione di LILO.
Complimenti ! L'installazione è finita !! Possiamo adesso rimuovere il floppy e riavviare la macchina (attenzione: rimuovete il cdrom non appena la macchina ha effettuato il reboot !!!)
Incrociate le dita e vediamo che succede !!! (Scherzo naturalmente, che volete che succeda, se siamo arrivati alla fine della installazione la partenza di Linux è garantita "spero" !)
CAPITOLO 8 - I primi rudimenti del sistema operativo
Se tutto è andato per il verso giusto, dovremmo vedere, all'atto del boot il prompt del LILO:
LILO:
questo prompt appare per 5 secondi (di default) poi, se non è stata effettuata alcuna operazione viene effettuato il caricamento del sistema operativo predefinito (Linux come abbiamo visto durante la descrizione della procedura di installazione della Red Hat).
Se invece premiamo il tasto <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 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 programma, il più famoso dei quali è senza dubbio ghostview, anch'esso presente su tutte le distribuzioni Linux.
UNIX, a differenza del DOS, è un sistema operativo di tipo multiutente: ciò significa che contemporaneamente possono lavorare sulla stessa macchina un numero praticamente illimitato di utenti (come vedremo la limitazione in effetti esiste, ed è dovuto ad alcuni parametri sia fisici della macchina, come per esempio la RAM a disposizione, sia di configurazione, come il numero massimo di sessioni e di processi contemporaneamente aperti).
Inoltre UNIX è un sistema operativo multitasking, cioè esso permette contemporaneamente (anche se in relatà non è così) di eseguire più applicazioni (o per dirla nel linguaggio UNIX, più processi).
La filosofia di base di Unix è quella del'utente e dei privilegi: tale filosofia, ripresa dai sistemi mainframe (tipo IBM MVS) e a sua volta ripresa da Microsoft Windows NT, concettualmente dice che ogni "cliente" di un sistema UNIX deve essere identificato da una utenza e da una password: ad ogni utenza è associato un particolare gruppo, il quale come dice la parola stessa è un raggruppamento di utenze simili. Ad ogni gruppo vengono infine assegnati più o meno privilegi. Più un utente ha privilegi e più esso è potente all'interno del sistema (insomma una vera e propria scala gerarchica). Un utente debole può pertanto effettuate all'interno di un sistema UNIX solo alcune operazioni: per esempio esso potrà solo vedere i file e le directory di sua proprietà od al massimo apparteneti al proprio gruppo, ma non potrà mai cancellare file non suoi, oppure chiudere e riavviare il sistema, montare filesystems di sistema, etc.
In cima a questa vera e propria gerarchia "piramidale" c'è il cosiddetto "Superutente", cioè l'utenza root: questa utenza è la assoluta padrona del sistema; essa può fare qualunque cosa, anche cancellare completamente il sistema operativo, oppure spegnere la macchina. Si capisce bene che l'utenza di root è pericolosissima, e di norma debba essere usata solamente dall'amministrazione del sistema e dai suoi collaboratori più stretti: i danni che ne possono derivare da un uso improprio da parte di utenti inesperti potrebbero essere incalcolabili.
Strettamente collegato al concetto di utente e di privilegio è il concetto di permesso di un file: ogni file presente sul sistema operativo è fornito di tutta una serie di attributi, i cosiddetti permessi: tali permessi identificano il proprietario del file, il gruppo a cui esso appartiene, la possibilità da parte di altri utenti di leggere, scrivere cancellare ed eseguire il file (nel caso quest'ultimo sia non un file di dati ma un modulo eseguibile di una qualsiasi applicazione. Esistono inoltre alcuni attributi accessori, non meno importanti, ma che esulano da questa elementare trattazione del sistema, in quanto coinvolgono solamente file particolari come i "deamon" e i "file speciali".
Come conseguenza a questa disanima su utenti, privilegi, file e permessi, cominciamo a vedere alcuni comandi UNIX:
ricordiamo comunque che per una descrizione ultra dettagliata di tutte le opzioni dei vari comandi UNIX, esiste un comando, che io definisco "fondamentale", che è il comando man nomecomando. Il man non è, come accade nel DOS un help dei comandi, ma molto di più: in pratica esso è proprio il manuale di descrizione dle comando in questione. In alcuni casi per alcuni comandi usare il man vuol dire prepararsi a scorrere qualcosa come 40 o più pagine ! Provate , per esempio, a dare il comando "man vi" e contate le pagine che vi verranno visualizzate in sequenza ! ( a proposito: per andare avanti di pagina in pagina, è necessario premere la barra spaziatrice).
ls: tale comando è l'equivalente DOS del "dir"; esso fa vedere l'elenco dei file presenti in una directory senza nessun'altra informazione. Inoltre con tale comando no si vedono i cosiddetti file di sistema, quelli cioè il cui nome comincia con il carattere ".".
ls -la: come sopra, ma con in più la visualizzazione degli attributi dei file, della data e ora di ultimo aggiornamento, nonché la visualizzazione anche dei file di sistema. Per fare un esempio, una volta entrati in Linux con l'utenza e la password di root, ci troviamo automaticamente nella directory root: digitando il comando "ls -la" ci troveremo di fronte ad una schermata di questo genere:
-rw-r--r-- 1 root root 65 mar 22 21:37 .TWM-errors
-rw------- 1 root root 0 mar 22 21:29 .Xauthority
-rw-r--r-- 1 root root 1126 ago 23 1995 .Xdefaults
-rw------- 1 root root 10404 mar 30 22:57 .bash_history
-rw-r--r-- 1 root root 24 lug 14 1994 .bash_logout
-rw-r--r-- 1 root root 347 mar 10 11:35 .bash_profile
-rw-r--r-- 1 root root 176 ago 23 1995 .bashrc
-rw-r--r-- 1 root root 182 ott 8 01:56 .cshrc
drwx------ 4 root root 1024 gen 27 17:52 .dosemu
Gli attributi che si notano sopra sono così descrivibili: il 1° può essere "-", "l", "d" che indicano rispettivamente nessuno attributo, link oppure directory. Dal 2° al 4° indicano i permessi di lettura, scrittura ed esecuzione ("r,w,x") relativi al proprietario del file. Dal 5° al 7° indicano i permessi di lettura, scrittura ed esecuzione per gli appartenenti allo stesso gruppo del proprietario. Dall 8° al 10° indicano i permessi di lettura, scrittura ed esecuzione per tutti gli altri utenti. Ovviamente, come già accennato, l'utente root può fare qualunque cosa su qualunque file. Per modificare i permessi ad un file, nonché la sua apparteneza ad un utente o ad un gruppo, valgono come sempre le regole ed i privilegi descritti sopra. Comunque, supponendo di essere l'utente root, i comandi di manipolazione degli attributi di un file sono i seguenti:
chmod: cambia i permessi al file. Si possono usare le lettere viste prima, oppure i numeri (massimo il numero 7"). Per esempio per dare i permessi di lettura e scrittura di un file a tutti gli utenti, il comando è: "chmod 666 nomefile". Per dare tutti i permessi ad un file il comando è in questo caso "chmod 777 nomefile".
chown: cambia il proprietario del file: chown nuovoproprietario nomefile
chgrp: cambia il gruppo di appartenenza al file: chgrp nuovogruppo nomefile
pwd:indica la directory in cui si staziona
cd: cambio directory, assolutamente identico al DOS
mkdir: crea una directory; mkdir /appoggio
rmdir: cancella una directory; rmdir /appoggio (attenzione: la directory deve essere vuota come nel DOS)
cp: serve a copiare file; cp pippo topolino. Utilizzando il parametro -R funziona come il comando xcopy di DOS (cp -R /appoggio/* /appoggio1/*)
mv: serve a muovere file; mv /appoggio/pippo /appoggio1/topolino. Si utilizza anche solamente per rinominare i file (infatti è l'equivalente dei comandi DOS move e ren)
rm: serve a cancellare file: rm pippo. Usato senza parametri viene chiesta la conferma della cancellazione del file. Usato con i parametri -r -f contemporaneamente, diventa una bomba ad orologeria per la sua pericolosità: infatti equivale al deltree di DOS con l'aggravante che sui sistemi UNIX non è possibile utilizzare, a fronte di file cancellati erroneamente, programmi di undelete. Io stesso, pochi mesi fa, nonostante l'esperienza ultradecennnale che mi ritrovo, ho effettuato il comando "rm -rf *" stando inavvertitamente sulla directory "/" (root directory) del mio sistema Linux in ufficio. Il risultato di ciò è stata la cancellazione sia di Linux che di Windows95 (poiché da Linux vedevo il filesystem di Windows95), con la conseguenza di imprecazioni ampiamente sopra i limiti della decenza e due giorni di lavoro buttati a re-installare il tutto (e meno male che avevo i backup dei dati più importanti !!)
more: serve a visualizzare il contenuto di un file; more pippo. La visualizzazione avviene una schermata per volta e può essere interrotta con il comando "q". Sulle piattaforme UNIX in generale, ma non su Linux, esiste anche il comando "pg" che è praticamente equivalente. Anche il comando cat serve più o meno alla stessa funzione, anche se normalmente si utilizza per altri scopi.
Dopo avere visto i comandi di base di un sistema UNIX, possiamo passare ad una rapida elencazione di altri comandi utili ma di uso più strettamente di sistema. Di essi viene data solo una sommaria descrizione rimandando il lettore al man del comando per avere ragguagli ulteriori (per utilizzare il manuale, basta digitare man nomecomando).
ln: serve a creare dei link (simbolici o fisici) tra due file. Si usa anche per spostare una directory, dove vi sono dei file non spostabili, su un altro file system senza dover reinstallare alcunchè.
tar,cpio: servono ad effettuare backup/restore di dati
dd: si usa per effettuare copie di file, di filesystem o di dispositivi; per esempio per effettuare una "diskcopy" di un dischetto si usa proprio questo comando, inserendolo in uno script (lo script UNIX si può paragonare ad un file batch del DOS)
vi: l'editor da linea comando per eccellenza sui sistemi UNIX. Potentissimo ma anche particolarmente ostico (specialmente all'inizio: mi ricordo di averlo odiato per oltre un anno, prima di iniziare ad apprezzarne le capacità !)
ps,top: servono a monitorare i processi in esecuzione in macchina, nonché il loro utilizzo di memoria e cpu
kill: serve a cancellare processi che non ne vogliono sapere di essere chiusi in maniera normale
find: serve a trovare file all'interno delle directory; per esempio è utile quando si cerca all'interno del sistema un file di cui non si conosce esattamente il nome e la directory
grep: serve a cercare parole e frasi all'interno di files. Usato in uno script in congiunzione al comando "find" ed al comando "ls" diventa un potentissimo strumento di ricerca all'interno dei files e delle directory. In ambiente Linux esiste su alcune distribuzioni il comando rgrep che in pratica è la sintesi dello script descritto in precedenza.
mount,umount: questo comando serve a montare filesystem. Ricordo che con il concetto di filesystem UNIX identifica i vari dispositivi: cdrom, floppy, filesystem NFS (cioè filesystems condivisibili appartenenti ad altre macchine UNIX presenti sulla rete). Pertanto con il comando mount si "montano" questi dispositivi. Per esempio per montare un cdrom sulla directory /mnt/cdrom basta dare il comando mount /dev/cdrom /mnt/cdrom (supponendo che, come accade per Linux, il dispositivo cdrom venga identificato dal sistema operativo come /dev/cdrom); per montare un floppy disk il comando sarà mount /dev/fd0 /mnt/floppy.
Con ciò abbiamo terminato questa velocissima carrellata sul sistema UNIX e sui suoi comandi in generale. Ovviamente avendo appena letto queste poche pagine ne saprete praticamente come prima (cioè nulla o quasi !) di UNIX, ma spero comunque che tali appunti così succinti possano esservi di un qualche aiuto, e, se non altro, vi possano avere incuriosito su UNIX a tal punto da spingervi a correre in libreria a comprare qualche libro sull'argomento ! Scherzi a parte, esistono anche sulla "Madre di tutte le reti" una miriade di pubblicazioni su UNIX. Basta cercarle con un po' di pazienza !
Bene passiamo finalmente al nostro amato Linux: iniziamo a configurarlo !!
CAPITOLO 10 - Effettuare TELNET ed FTP da macchine in rete
Problema facile facile da risolvere (la prima volta che l'ho affrontato ci ho messo mezza giornata !!!).
Le funzionalità di TELNET e di FTP sono fondamentali per il nostro server Linux, poiché è solo grazie ad esse che il nostro sistema può essere sfruttato come macchina multiutente. Inoltre è sempre comodo poter accedere con Telnet da remoto ad un server UNIX, poiché in questo modo qualunque attività di amministrazione del sistema (anche il riavvio !) può essere fatta senza la necessità della presenza fisica dell'amministratore del sistema sulla console. Inoltre è anche possibile eseguire applicazioni grafiche da remoto (il cosiddetto X-Terminal)
Per fare come al solito un paragone con Windows NT, per avere funzionalità simili su tale sistema è necessario disporre di un software di controllo remoto tipo Pc Anywhere, Remotely possible, VNC o simili.
Con le distribuzioni RED HAT e derivate (come la distribuzione Mandrake) una volta installato il sistema non è possibile effettuare da una qualsiasi macchina in rete nè FTP con l'utenza root nè TELNET con qualsiasi utente (messaggio di “Access Denied” per FTP e di “Invalid Login” per TELNET).
Analizziamo per primo il problema del Telnet: esso si presenta poiché non sono state ancora abilitate le cosiddette pseudotty: esse sono in pratica le sessioni telnet che è possibile effettuare da remoto. Per l'abilitazione basta inserire tali pseudotty nel file /etc/securetty:
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
ttyp0
ttyp1
ttyp2
ttyp3
ttyp4
ttyp5
ttyp6
ttyp7
ttyp8
ttyS0
ttyS1
In neretto sono evidenziate le ttys che abbiamo aggiunto (da ttyp0 a ttyp8): si nota che in questo modo sarà possibile avere fino a 9 sessioni contemporaneamente aperte in rete (più ovviamente le sei sessioni sulla console più eventualmente quella grafica.
Per passare da una sessione all'altra sulla console del sistema basta tenere premuta la combinazione di tasti <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
Come sicuramente ricorderete, durante l'installazione di RedHat, ad un certo punto ci è stato chiesto di configurare l'X-Server. Nel caso in cui la nostra scheda grafica sia stata riconosciuta senza problemi dal sistema, l'installazione dovrebbe essere andata a buon fine e la vostra interfaccia dovrebbe partire senza problemi. Per farla partire, basta digitare dalla linea di comando "startx". Dopo alcuni secondi, dovrebbe apparire un desktop tipo Windows 95, con barra degli strumenti, un'applicazione chiamata "Control Panel" (l'equivalente più o meno del Pannello di Controllo dei sistemi targati Microsoft ed una finestra terminale chiamata "xterm".
Se tutto ciò non succede, vuol dire ovviamente che vi sono dei problemi di configurazione: questi possono essere banali o più complessi. Cerchiamo ora di affrontare e risovere quelli che normalmente si pongono ai "newbies".
Innanzitutto parliamo un attimo dell'X-Server presente nelle distribuzioni Linux, chiamato Xfree86.
Tale prodotto, presente già nelle primissime distribuzioni di Linux, viene manutenuto ed implementato da un gruppo di volontari sparsi nel mondo e collegati tra loro tramite internet. Il sito ufficiale del progetto è http://www.xfree86.org sul quale è possibile trovare le versioni aggiornate dell'X-Server, nonché gli aggiornamenti relativi alle nuove schede grafiche supportate.
Il prodotto normalmente è installato nella directory /usr/X11R6/bin dove facendo il comando "ls -la X*" otteniamo come risultato una schermata del genere
lrwxrwxrwx 1 root root 21 mar 9 09:51 X -> /usr/X11R6/bin/XF86_SVGA
lrwxrwxrwx 1 root root 8 mar 8 17:48 X.Linux -> Xwrapper
-rwxr-xr-x 1 root root 154708 ott 10 1998 XF86Setup
-rwxr-xr-x 1 root root 2734468 ott 10 1998 XF86_SVGA
-rwxr-xr-x 1 root root 1727132 ott 10 1998 XF86_VGA16
-rwxr-xr-x 1 root root 80676 ott 15 1998 Xconfigurator
-rwxr-xr-x 1 root root 27499 ott 10 1998 Xmark
-rwxr-xr-x 1 root root 2491100 ott 10 1998 Xprt
-r-xr-xr-x 1 root bin 1673 ago 26 1997 Xsetup
-rws--x--x 1 root root 4272 ott 10 1998 Xwrapper
Come si vede, sono presenti due file fondamentali: l'XF86_SVGA e l'XF86_VGA16. Il primo è la parte di Xfree86 che contiene di norma la maggior parte dei driver delle schede grafiche. Invece il file XF86_VGA16 rappresenta il driver generico VGA a 16 colori. Ovviamente esistono molti altri driver specifici per schede grafiche come S3, ATI, Matrox, etc..
La riga lrwxrwxrwx 1 root root 21 mar 9 09:51 X -> /usr/X11R6/bin/XF86_SVGA
non rappresenta un vero e proprio file ma un cosiddetto link, cioè un collegamento, come già accennato nei precedenti capitoli. In pratica questo link tra "X" e l'X-Server è necessario, poiché Linux conosce l'X-Server sempre con il nome "X". In questo modo, per cambiare X-Server (per esempio usare la parte di Xfree86 relativa alla scheda VGA, oppure usare proprio un altro X-Server differente da Xfree86), basta cancellare il link tra X e l'X-server vecchio e ricrearlo facendolo puntare al nuovo.
Se la procedura di installazione di RedHat ha riconosciuto la vostra scheda grafica, allora il problema potrebbe essere nella scelta della risoluzione grafica (256 colori, 64K o 16M di colori), oppure nella frequenza del monitor da voi posseduto. In ambedue i casi ci viene in soccorso una utility propria del server Xfree86, normalmente contenuta in tutte le distribuzioni Linux, la cosiddetta "Xconfigurator". Lanciando tale comando, parte un'applicazione a finestre che ci permette di configurare tutte le possibili opzioni sia della scheda grafica che del modem. Tentiamo comunque di usare l'opzione "Probe" che l'applicazione ci propone sia durante la configurazione della scheda grafica che del monitor. Ovviamente se tale opzione non va a buon fine, possiamo sempre configurare a mano il tutto, indicando, per esempio, l'ammontare di RAM della nostra scheda, il tipo di monitor (SuperVga, interlacciato,etc etc), la profondità del colore (8 bpp, che sono 256 colori, 16 bpp, che sono 64K di colore...) nonché la risoluzione (640x480,800x600,1024x768). Tentate comunque all'inizio di configurare le opzioni minime, 8bpp, 640x480, per verificare il buon funzionamento della vostra scheda.
Se comunque l'X-Server non ne vuole sapere di funzionare, potete provare ad utilizzare l'utility "SuperProbe" per verificare che la vostra scheda sia riconosciuta da Linux.
Se la vostra scheda viene riconosciuta come "Generic VGA", allora due sono le strade da percorrere: la prima, molto semplice ma anche riduttiva, è di usare la vostra scheda solamente in modalità VGA, cioè con risoluzione 640x480 a 16 colori. Tale modalità può essere accettabile nella maggior parte dei casi, ma non quando si naviga in Internet.
La seconda strade, è quella di vedere se la propria scheda venga supportata da altri X-Server differenti dall'XFree86.
Per la prima soluzione, basta effettuare le seguenti operazioni:
- dare il comando "rm X";
- creare un nuovo link con il comando "ln -s XF86_VGA16 X"
In questo modo digitando nuovamente il comando startx, il nostro ambiente grafico partirà sicuramente, ma in modalità 640x480 a 16 colori.
Parliamo adesso della seconda soluzione, cioè quella di cercare altri X-Server. Sfortunatamente, per quanto ne so, non esistono altri X-server gratuiti per Linux, mentre ne esistono di commerciali: i più famosi e completi sono Accellerated-X (http://www.xig.com ) e Metro-X (http://www.redhat.com). Il primo è molto buono, copre praticamente tutte le schede grafiche esistenti, ma costa parecchio; in compenso è possibile scaricare dal sito una demo funzionante solo 10 minuti e per giunta, se non ricordo male, un solo giorno, ma che comunque dà una certa idea del suo funzionamento. Il secondo invece è leggermente meno veloce del primo, ha una copertura di schede un poco più limitata ma ha il pregio di costare molto poco (addirittura mi pare che acquistando la versione ufficiale di Linux RedHat, contenente 4 CD, Metro-X sia compreso). Vi consiglio comunque di informarvi sulla compatibilità della vostra scheda grafica prima visitando i rispettivi siti.
CAPITOLO 12 - Conosciamo il Control-Panel
Bene, se state leggendo questo capitolo, vuol dire che l'X-Server è stato configurato e che siete riusciti ad entrare in ambiente grafico lanciando il comando “startx”. Come già accennato in precedenza il vostro desktop appare abbastanza simile a quello di Windows 95, anche se più semplice. La differenza più evidente è la mancanza assoluta di icone sullo schermo. Questo tipo di visualizzazione è data dal cosiddetto Window Manager, cioè un programma, lanciato dall'X-server che vi fornisce un ambiente grafico di lavoro. La distribuzione Red-Hat di default installa come Window Manager “Another Level” che si basa essenzialmente sul programma fvw95. In ambiente Linux, comunque sono presenti tantissimi Window Manager, alcuni presenti sulle varie distribuzioni, altri scaricabili liberamente da Internet o presenti sui CD-ROM allegati alle varie riviste specializzate.
I più famosi sono:
- KDE (assolutamente completo, poiché fa parte di un progetto mondiale di standardizzazione dei prodotti grafici in ambiente Linux)
- Enlightenment (molto grazioso, pieno di suoni)
- Gnome (non è un vero e proprio Window Manager, ma raggruppa vari programmi per realizzare una vera suite grafica).
- Qvwm (per i nostalgici di Windows 95 - è praticamente identico, anche nella grafica delle icone)
Tuuti questi Window Manager, ed altri ancora, sono scaricabili collegandosi ai siti canonici, http://www.linuxberg.com oppure http://www.linuxapps.com . Noi nel prosieguo del libro ci occuperemo essenzialmente di KDE, poiché pur essendo il più pesante in termini di risorse macchina (anche se per girare in maniera soddisfacentegli basta un pentium I di fascia bassa, tipo P75 o P90 e 24 o 32 MB di RAM), è quello più completo, più facile da configurare, nonché l'unico in italiano.
Comunque quello di cui voglio adesso parlare è il progranmma di configurazione per eccellenza di Red-Hat: il Control-Panel. Attraverso questa utility grafica, andremmo a configurare al meglio il nostro Linux, ed al tempo stesso ci addentreremo in alcuni concetti propri di questo sistema operativo.
- 12.1 Il Control-Panel
- Il Control-Panel è l'utility grafica della distribuzione Red-Hat che aiuta l'utente finale nella operazione di configurazione del proprio sistema. In realtà questa utility non fa altro che richiamare tutta una serie di moduli di configurazione del sistema. Per richiamare tale utility, una volta fatto partire l'X-Server con il Window Manager Another Level (o fvw95 che dir si voglia), basta digitare nella finestra terminale in cui si vede la linea di comando di Linux il comando "control-panel".
- A tale proposito, ricordiamo ( anche se probabilmente non è stato ancora detto in precedenza) che sui sistemi operativi UNIX, per eseguire un programma che è situato in una directory non compresa nel PATH di partenza dell'utente, è necessario essere nella directory in cui è situato il programma e digitare il seguente comando: ./nome_programma dove nome_programma è il nome del programma che vogliamo eseguire. In precedenza abbiamo scritto, per eseguire il Control-Panel, il comando "control-panel" e non "./control-panel": questo poiché tale programma è situato normalmente nella directory /usr/X11R6/bin, la quale è la directory standard in cui sono situati tutti i moduli eseguibili dell'ambiente grafico, e come tale questa directory è presente nel PATH di partenza dell'utente. A proposito, ogni utenza quando viene avviata con la procedura di login, punta alla sua cosiddetta home directory, alla sua shell di comandi (l'equivalente del command.com del DOS) ed al suo profile. Tale file può essere considerato una specie di "autoexec.bat" proprio dell'utente. In ambiente Linux il nome del profiel dell'utente cambia a seconda del tipo di shell che viene usata: per default ogni utente che viene creato su un sistema Linux useà come shell la bash shell. Pertanto il profile relativo alla bash shell si chiamerà .bash_profile. A livello puramente informativo esistono sotto Linux (ed ovviamente sotto UNIX in generale) molte altre shell: la csh (c-shell), la ksh (Korn-shell), la sh (bourne-shell, di cui la bash è una derivazione) e così via.
- Vediamo adesso in dettaglio i singoli moduli di configurazione:
- Run-Level Editor
- Time & Date
- Printer Configuration
- Network Configuration
- Modem Configuration
- Kernel Daemon Configuration
- Search Help Systems
- System Configuration
- Package Management
In realtà nel caso di una installazione completa di RedHat compare sulla barra del Control-Panel un'altra icona, quella relativa alla configurazione del Web Server APACHE: nel nostro caso, avendo effettuato una installazione parziale, tale utility non viene installata, anche se comunque è possibile configurare a mano il nostro Web Server, che tra l'altro è già installato e funzionante di default.
- Run-Level Editor
Il Run-Level Editor permette di configurare quale servizi far partire all'atto del boot di Linux.
Come si può notare la schermata del programma è suddivisa in varie colonne: quella più a sinistra, intitolata "avalaible", cioè disponibile, indica tutti iservizi che è possibile far partire su un sistema Linux. Le altre colonne, invece, rappresentano i livelli secondo una rappresentazione gerarchica propria dei sistemi UNIX: ogni livello rappresenta un benm preciso stato del sistema, accessibile a più o meno utenti ed a più o meno servizi. Come si può notare, per esempio, manca il livello 1, accessibile solo dall'utente root, che rappresenta il livello di maintenance cioè di manutenzione del sistema: in tale livello tutti i servizi cosiddetti "accessori" sono disabilitati. Per esempio a tale livello sono disabilitati i servizi di rete, quelli di stampa, il suono etc.
A differenza degli altri sistemi UNIX, nei quali il livello standard di funzionamento del sistema è il livello 2, in Linux il livello di default è il livello 3. Analizziamo perciò i servizi che possono essere attivati o rimossi dal livello 3.
Analizzando le liste dei servizi partiti, di quelli fermi e di quelli disponibili, rimaniamo sicuramente sconcertati e confusi: sicuramente dal numero dei servizi presenti in un sistema UNIX, ci possiamo rendere conto, da un lato della difficoltà di funzionamento e di gestione di tali sistemi operativi, dall'altro però delle loro enormi potenzialità, di gran lunga superiori ai sistemi Microsoft (anche se ad onor del vero Windows NT può raggiungere le funzionalità dei server UNIX, ma a costo di parecchi options pack, BackOffice e software di terze parti).
Prendiamo in considerazione il nostro esempio canonico, quello cioè di un server Linux inserito in una rete locale mista con altre macchine Linux ed altre Windos 95/98, e cerchiamo di vedere quali possono essere i servizi a cui rinunciare e quelli invece indispendabili.
Ovviamente a questo punto qualcuno potrebbe obiettare dicendo: ma perchè nel dubbio non facciamo partire tutti i servizi ed i processi disponibili ? Teoricamente questsoluzione è la più comoda ed è anche praticabile, ma ovviamente costa ! Certo, se la nostra macchina dispone di un precessore veloce ed un ammontare di RAM considerevole (p.es. 128MB o addirittura 256 MB di RAM) potremmo far partire tutto quello che vogliamo (anche se pure in tal caso, di fronte a macchine particolaremente stressate, come per esempio WEB Server super-accessati o DataBase Server, un tale ammontare di RAM può in alcuni casi diventare insufficiente), ma comunque è buona norma dell'amministratore di un sistema Linux, quella di evitare la partenza di processi inutili per il contesto in cui la macchina opera, che danno come risultato un inutile spreco di risorse di sistema.
Se, per esempio, il nostro server non deve fare da Web Server o da Proxy Server , possiamo evitare di far partire il daemon httpd: analogamente se sulla nostra macchina non viene installato un data base Postgres, possiamo evitare di far partire il daemon apposito.
A proposito, con il termine daemon, cioè demone, incontrato nelle righe precedenti, si intende un processo UNIX che resta in ascolto in attesa di eventuali richieste da parte delle componenti hardware, di programmi o di client: tipico esempio di daemon è proprio quello relativo al Web Server APACHE, denominato httpd: questo "demone" utilizza una particolare "porta" del protocollo di rete TCP/IP (normalmente la porta 80) per restare in ascolto in attesa di eventuali richieste da parte di client: quando un client, mediante il proprio browser chiede di accedere ad una pagina web presente all'indirizzo del nostro server, l'httpd si occupa di effettuare il collegamento tra il client e la pagina, restituendo al browser del client la visualizzazione della pagina HTML stessa.
Qui di seguito diamo una rapida carrellata dei servizi e dei demoni più importanti presenti al level 3: sta all'esperienza od alla scelta dell'amministratore del sistema il far partire un demone al posto dell'altro.
- kerneld: permette al kernel di Linux di caricare e scaricare dinamicamente i moduli relativi a dispositivi hardware od a tipi di file system (p.es. si può decidere di caricare il modulo relativo ad una scheda audio solamente quando si vuole eseguire un file musicale; in questo modo, con la tecnica della modularità il kernel di Linux diventa molto più snello ed in definitiva più veloce ed efficiente). Tale demone è assolutamente indispensabile ! La sua eliminazione potrebbe comportare l'impossibilità a far ripartire il sistema al successivo boot !
- Network, nfsfs, inet: sono tutti servizi di rete, che attivano la scheda di rete, il protocollo TCP/IP e la possibilità di montare file system NFS o di fare montare da client NFS i propri file systems.
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 /Rigel
lpd: 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 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.
- Time 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
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.
- Network Configuration
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.
- Modem 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:
- 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.
- la 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 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.
- I 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.
- Lilo
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. 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).
- Gli 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à.
- Package 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.
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ì.
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 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.
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
- 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.
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.
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
- 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.
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 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.
Fonte: http://web.tiscali.it/AlessandroDeRinaldis/aree/linux/linux.doc
Autore: Alessandro De Rinaldis
Manuale del sistemista Linux
Visita la nostra pagina principale
Manuale del sistemista Linux
Termini d' uso e privacy