Quando Linux è
la scelta migliore


di
Chris Gonnerman
traduzione di
Francesco Lamonica
Il racconto, in questo articolo, di Chris Gonnerman ci porta indietro di parecchi anni, addirittura al buon vecchio Xenix per 286/386. Una cronistoria che prosegue fino ai nostri giorni.


Introduzione

Tanto, tanto tempo fa sono stato assunto per il mio primo lavoro a pagamento, lavoravo su un Tandy 16B su cui girava XENIX. Aveva circa un mega di RAM (se ricordo bene), un totale di 30 Mb di hard disk (due drive esterni SCSI-1 da 15 Mb), e ci lavoravano tre utenti contemporaneamente!

Alcuni anni dopo sono entrato nell'Aeronautica, e poich&eacute conoscevo Unix (e mi piaceva), fui assegnato a programmare e amministrare un paio di computer Motorola basati su Unix. Wow! Quattro mega di RAM, 60 Mb di hard disk, e 32 porte seriali ciascuno, e ci girava Unix System V Release 3. Pensavo di essere in paradiso! (Nota, Windows 3.0 stava quasi per essere rilasciato...)

Beh, per farla breve, dopo parecchi anni, possiedo una mia compagnia, la New Century Computers, che vende a fornisce assistenza per macchine Intel e PC compatibili. La maggior parte di questi computer ha installato Windows 95, e bench&eacute io ne abbia sempre apprezzato l'interfaccia, ho sempre sentito la mancanza di Unix. I Motorola con cui lavoravo venivano spenti ogni sei mesi (che ce ne fosse bisogno o meno) e quindi ripuliti e sistemati. Crash? Solo nei primi tempi, quando facevamo il debugging dei driver del nasto del fornitore.

Non ricordo quando ho sentito parlare per la prima volta di Linux, ma dopo avere visto la sezione libri da WaldenBooks comprai "Linux SECRETS" di Naba Barkakati (edito da IDG Books). Installai Linux su di un 486 libero e ci 'smanettai' per un po'. Tuttavia, i miei clienti vogliono Windows, quindi io vendo loro Windows.

Ma, a volte, Linux &egrave l'unica scelta. Niente altro funzionerebbe.


I cattivi programmi DOS

Uno dei miei clienti pi&ugrave vecchi &egrave il Juvenile Office (Tribunale dei MInori NdT.) nella contea di Adair, Missouri. Quando il capo del Juvenile Office mi chiam&ograve un giorno e mi disse che aveva bisogno di far girare Lotus Notes sulla sua rete, ho cominciato a sudare freddo.

Un paio di anni fa (prima che cominciassi a lavorare con loro), il JO compr&ograve un programma DOS scritto appositamente chiamato "Juvenile Court Records." Il programmatore lo scrisse usando il Clarion database manager, e non era un grande programmatore. Lo facevano girare su una rete LANtastic.

Questo "cattivo programma DOS" richiede 615Kb di memoria convenzionale. Effettivamente, funziona bene solo in 620 o pi&ugrave Kb. Riuscivano a far ci&ograve usando una funzione del QEMM (il Quarterdeck Expanded Memory Manager) chiamata VIDRAM. VIDRAM rimappa (la parte di memoria NdT.) riservata al testo a colori nell'intervallo di indirizzi (specifici della memoria per il testo NdT.) monocromatico, e aggiunge la porzione di memoria del testo a colori all'insieme della memoria convenzionale, ottenendo 784 Kb di memoria RAM convenzionale totale. Dopo che parte il DOS e viene caricato il TSR della LANtastic, hanno ancora 630 Kb o giu di li.

Comunque, questo programma non girerebbe sotto Windows 95. In nessun caso, mai. Windows 95 non fornirebbe mai abbastanza memoria RAM convenzionale, e VIDRAM e non funzionerebbe in questo ambiente (va in crash in modo molto carino). Io ero a conoscenza di ciò, e quindi iniziai a sudar freddo. Quello che Mike (il capo del Juvenile Office) si aspettava di vedere era una finestra di Windows 95 con dentro JCR sullo stesso schermo di una finestra di Lotus Notes.

Perch&eacute mantenere operativo JCR &egrave cos&igrave importante? Primo, perch&eacute tutti i loro rapporti riguardanti le disposizioni per le cause minorili degli ultimi cinque o sei anni sono memorizzate li dentro. Non possiamo avere il codice sorgente di Clarion; il programmatore &egrave scomparso. Potremmo probabilmente riscrivere il programma da zero, ma lo Stato del Missouri (Office of State Courts Administrator, o OSCA) (Ufficio degli Amministratori dei tribunali Statali NdT.) ha stabilito che fornir&agrave un programma per la gestione dei casi "in circa due anni". Riscrivere il programma costerebbe di pi&ugrave che mantenerlo in funzione (a questo punto), e sarebbero soldi sprecati non appena l'OSCA fornir&agrave la loro soluzione. Quindi, sono ancora bloccati da questa palla-al-piede di programma.

Entra Linux. Stavo cercando una risposta da pi&ugrave di un mese quando mi sono ricordato di DOSEMU. Ho eseguito XDOS sulla mia macchina Linux e ho guardato al totale della memoria convenzionale.

627Kb liberi. Alleluia!

Gli abbiamo venduto un nuovo file server, un Pentium 166 con 16 Mb RAM, su cui gira Linux (distribuzione Debian). Ho installato DOSEMU 0.66.7, direttamente dal CD, e quindi l'ho configurato con il DOS di Windows 95. Visto che OpenDOS dovrebbe recuperare un altro K (628 Kb), e visto che Windows 95 usa un altro sistema, ho semplicemente usato quello (DOSEMU NdT.). Dopo avere eseguito il comando SYS sull'immagine del disco con Win95, ho semplicemente installato il minimo di comandi DOS necessari per far girare il programma JCR e lavorare con il filesystem. Ho copiato il comando EXITEMU con i nomi di LOGOUT e LOGOFF. Ho anche sistemato la condivisione di file "convenzionale" tramite Samba. Quindi il lavoro &egrave iniziato.

Innanzitutto, parecchie macchine DOS hanno dovuto essere aggiornate a Windows 95, Il che, naturalmente, ha richiesto RAM per la maggior parte di esse, dischi rigidi per alcune, e nuove mainboard per poche. Per accedere al server da queste macchine Windows 95, abbiamo deciso di usare PC-Xware della NCD . Di tutti i server X commerciali per Windows 95, questo &egrave il pi&ugrave semplice (e il meno costoso) che ho trovato. (PC-Xware) crea delle icone di "collegamenti" automaticamente, subito dopo che si &egrave eseguito il Connection Wizard, e funziona bene con XDM.

Come inciso, telnet avrebbe funzionato, ma trovare un telnet a colori usabile &egrave complicato. Il programma del JCR &egrave scritto come molti programmi DOS, usando una vasta gamma di colori. XDOS tramite PC-Xware fa anche funzionare tutti i tasti funzione.

Ora, Mike (e gli altri impiegati del JO) possono vedere Lotus Notes e il programma JCR nello stesso momento, sul medesimo sistema. Senza dovere eseguire un reboot. Il prezzo totale per PC-Xware &egrave risultato essere pi&ugrave alto di quello dei componenti, ma il cliente &egrave contento.


Problemi inattesi di ISP

La scuola distrettuale Paris R-II (a Paris, Missouri; Non tratto ancora affari internazionali) &egrave un altro cliente abituale. Alla scuola, hanno un laboratorio ben fornito di computer con Windows 95 con un server su cui gira Windows NT 3.51. MORENet, un fornitore statale, fornisce loro servizi Internet a tassi agevolati, e la scuola superiore e quella elementare sono connesse tra loro tramite fibre ottiche. L'intera procedura di installazione della connessione a Internet &egrave stata un affare (come di solito accade) visto che il provveditorato scolastico ha ricevuto molta mano d'opera gratis e materiali scontati.

Sfortunatamente, la Junior High (un dipartimento della scuola NdT.) &egrave all'altro capo della citt&agrave. Dopo aver preventivato una linea di connessione tra i due luoghi, e aver anche considerato una rete in radio-frequenza, il Sovrintendente ebbe un'idea migliore. Ha contattato diversi ISP nelle citt&agrave vicine (Paris non aveva ISP a quel tempo) e ha offerto loro la possibilit&agrave di usufruire di una propriet&agrave scolastica. Uno di loro, MCM Systems di Moberly, Missouri ha accettato: In cambio di un affitto gratuito e illimitato di una stanza, la Junior High avrebbe ricevuto accesso illimitato e gratuito a Internet. MCM Systems ha installato un router dial-up in una stanzetta della sala della banda scolastica. e noi abbiamo passato un cavo Ethernet da li fino al laboratorio informatico. MCM fornisce accesso ad Internet nella zona di Paris al solo costo dell'affitto della linea e del materiale, e sono felici (per quel che ne so).

Quindi, un giorno sono andato per collegare il laboratorio informatico. Dopo aver installato tutte le schede di rete e avere collegato il tutto, chiamai MCM Systems per avere gli intervalli di indirizzi IP che avremmo dovuto usare.

Il tecnico con cui parlai mi inform&ograve che avevamo a disposizione dieci indirizzi. Oops. Alla Junior High avevano gi&agrave circa 25 computer da collegare a Internet. Avevamo un problema.

Stavolta mi ci vollero solo pochi minuti per decidere di usare Linux. Il mio compito era di "farlo funzionare", e oltre ai costi gi&agrave sostenuti il provveditorato non aveva molti altri soldi da spendere. Ho scelto un computer del laboratorio della Junior High con un Pentium 75, ho spostato un hard disk pi&ugrave grande (1.6 Gb) da un altro computer, e ho iniziato ad installare la distribuzione Slackware di Linux. Ho copiato da Internet tutta la serie di dischi di installazione in una partizione DOS del disco da 1.6 Gb, ho creato e ho eseguito il boot dai dischi di boot/root, e ho cominciato ad installare il tutto.

Naturalmente il fine ultimo di questo sforzo era quello di usare l'IP Masquerade (Mascheramento dell'IP), e questa &egrave stata la prima volta che usavo questa caratteristica. Ho installato una seconda scheda scheda di rete NE2000 compatibile, ho configurato la scheda di rete "interna" con un indirizzo di una rete privata (10.0.0.1), e ho assegnato il primo indirizzo Internet alla scheda di rete "esterna". Fin qui, tutto bene. Ho provato la configurazione da un computer con Windows 95 usando 10.0.0.2 (assegnato tramite il pannello di controllo delle risorse di rete), e ha funzionato alla grande!

Il problema &egrave iniziato quando ho installato dhcpd della ISC (Internet Software Consortium) e ho provato a configurarlo. La configurazione e la compilazione sono andate a buon fine, e ho impostato il percorso di trasmissione (broadcast route) come descritto nel file README, ma quando ho provato a farlo partire ho ottenuto questo messaggio di errore:

 
The standard socket API can only support hosts
with a single network interface. If you must run
dhcpd on a host with multiple interfaces, you must
compile in BPF or NIT support. If neither option
is supported on your system, please let us know.*
*- L'API standard dei socket supporta solo host con una singola interfaccia di rete. Se volete eseguire dhcpd su un host con interfacce multiple, dovete compilarlo con il supporto BPF o NIT attivato. Se nessuna delle opzioni &egrave supportata dal vostro sistema siete pregati di farcelo sapere. (NdT.)

Facendo qualche ricerca, ho scoperto che in questa versione di dhcpd, qualunque sistema in cui mancasse il Berkley Packet Filter e il Network Interface Tap technology (come Linux) non pu&ograve eseguire dhcpd con pi&ugrave di un'interfaccia di rete (eccetto PPP e SLIP). Ho esaminato attentamente il programma, e l'ho modificato in modo da implementare a livello di codice il nome dell'interfaccia che mi serviva supportasse. Dopo tutto, io non volevo supportare entrambe le interfacce; l'interfaccia esterna non necessita di DHCP.

Pi&ugrave tardi, nella calma del mio ufficio, ho modificato un'altra copia di dhcpd. Invece di codificare il nome dell'interfaccia, ho aggiunto un comando al file dhcpd.conf. Ho anche ottimizzato il formato del lease-time. Ecco un esempio:

 
dhcpd.conf
server-identifier 10.0.0.10;
interface "eth0";

subnet 10.0.0.0 netmask 255.0.0.0 {
option domain-name "paris.mcmsys.com";
default-lease-time 3 days 12 hours;
max-lease-time 7 days;
option subnet-mask 255.0.0.0;
range 10.0.1.20 10.0.1.250;
}

In precedenza, i comandi *-lease-time usavano un singolo numero, come secondi, come in:

 
default-lease-time 302400;

Penso che in questo modo sia pi&ugrave leggibile.

In seguito portai questo codice alla scuola e lo implementai. Ha funzionato discretamente, quindi ho dichiarato conclusa l'installazione. Al costo della mano d'opera e di una scheda di rete aggiuntiva, abbiamo convertito una workstation in un server adeguato e abbiamo risolto un problema di connessione ad Internet.

Facciamo girare Apache su quel sistema adesso, non tanto per i servizi web quanto per il suo proxy per la rete. Venticinque studenti su una singola linea a 56Kbps &egrave (una situazione NdT.) abbastanza lenta, ma con il proxy la performance &egrave accettabile. Viene anche utilizzato come file server tramite Samba.

Ho mandato le mie patch per il dhcpd all'ISC, e ho ricevuto un email da Ted Lemon in cui mi informava che la mia patch non faceva quello che pensavo. Hmm. Ho esaminato le sue spiegazioni, e ho concluso che la mia patch non &egrave una soluzione buona in tutti i casi. Comunque, il problema BPF/NIT problem con Linux &egrave stato apparentemente sistemato da qualche parte durante il percorso, e la versione 2.0 (attualmente in fase finale di beta-testing) di dhcpd della ISC non lo presenta. Raccomando vivamente dhcpd della ISC; sembra robusto (anche la pre-1.0.0 beta che ho usato originariamente).

Ho anche caricato le mie patch su Sunsite, sotto il nome dhcpdpatch-1.0.0.tar.gz, nel caso che qualcuno voglia provare l'opzione *-lease-time.


Quando Linux &egrave la migliore scelta

Io amo Linux. Sono dipendente dalle sue caratteristiche, dalla potenza, e dalla configurabilit&agrave. Mi piace specialmente il fatto che posso lavorare con i sorgenti di quasi tutti i programmi, sistemando bachi e aggiungendo caratteristiche che mi servono o desidero.

La potenza di Linux &egrave la flessibilità, la stabilità, l'economicit&agrave... l'abilit&agrave di far girare un vero SO su hardware vecchi o poco costosi.

Per il mio utente medio (utenti domestici e piccole aziende con un solo computer), Linux non &egrave attualmente la migliore scelta. Questi utenti non hanno la profondit&agrave di conoscenze per lavorare con Linux come facciamo noi. (In realtà, pochi di loro hanno una reale conoscenza anche di Windows 95). L'utente medio si aspetta di essere in grado di comprare qualsiasi cosa al volo da Wal-Mart e riuscire a farla funzionare. Un giorno, forse, Linux sar&agrave una buona scelta per questi utenti, se noi (l'intera comunit&agrave Linux) continueremo a supportarlo e migliorarlo.


Per l'articolo originale: © 1998 Chris Gonnerman
Pubblicato sul n. 28- Maggio 1998 di Linux Gazette
Per l'edizione italiana: © 1998 LGEI