Speciale Maggio 1998
In questo articolo parleremo di NetBSD, un sistema UN*X-like, disponibile per quasi tutte le piattaforme hardware in circolazione, compreso l'Amiga.
Mostreremo quali attenzioni usare per una corretta installazione, i requisiti necessari per un utilizzo effettivamente produttivo, e come configurare il sistema compresa la compilazione di un kernel personalizzato.
Introduzione
Forse non tutti sanno che AmigaDOS ha un "Grande Fratello", UNIX, al quale i primi progettisti del nostro beneamato sistema operativo si sono ispirati profondamente, e del quale, per essere buoni informatici, è bene conoscere almeno le basi. Inoltre, usandolo, si possono risparmiare anche tanti soldi ed avere prodotti software molto più potenti di quelli per le piattaforme Intel. Tuttavia, ovviamente, c'è un prezzo da pagare: UNIX, fondamentalmente, è un sistema operativo scritto da ingegneri per ingegneri, e di qui è intuibile il fatto che non sia un ambiente proprio facilissimo da installare, configurare ed utilizzare.
In questo articolo, tenteremo inoltre di aiutarvi là dove il documento di installazione non è chiaro o assolutamente assente. Tuttavia, vista l'impressionante vastità dell'argomento, non potremo purtroppo essere esaustivi su per quello che riguarda tutti gli aspetti di questo affascinante sistema operativo, quindi per ulteriori informazioni vi rimandiamo alla bibliografia in appendice.
Prima di entrare nel vivo della trattazione, ricordiamo che la variante di UNIX che andremo a descrivere deriva dal sistema 4.4BSD-Lite, la versione propria della Università di Berkeley in California.
Requisiti di sistema
Prima di iniziare l'installazione, passate dal vostro negozio di informatica preferito e comprate un bel harddisk da almeno 1.6Gb...
Non stiamo scherzando, se lo avete a disposizione vi farà comodo tutto.
Per cominciare stampate i due documenti che trovate nella distribuzione di NetBSD, poiché sono essenziali per l'installazione e non è possibile leggerli durante l'installazione stessa perché il sistema sarà già impegnato dall'installer di NetBSD che ha il controllo totale sulla vostra macchina.
I files a cui facciamo riferimento sono "install" e "install.X11". Sono due file ASCII stampabili senza difficoltà con qualsiasi TextEditor o WordProcessor, al limite anche con il Directory Opus.
Purtroppo dal punto di vista dello spazio occupato su disco, NetBSD non è come AmigaDOS: per un sistema funzionante e funzionale ci vogliono diverse centinaia di Megabyte a disposizione. Vediamolo più in dettaglio: leggendo il doc di installazione "install" si evince che servono almeno 4 partizioni: ROOT, USER, SWAP e LOCAL, per una occupazione complessiva massima che parte da 150Mb. Per esperienza personale possiamo dire che per utilizzare in maniera produttiva il sistema, serve molto più spazio e meglio organizzato. Intanto, se potete, dedicate un interno harddisk e non mischiate partizioni BSD con partizioni AmigaDOS, questo per limitare la possibilità di disastri irreparabili in fase di installazione e di normale utilizzo. Per quanto riguarda le varie partizioni e le loro dimensioni è utile operare nelle scelte come segue: preparate la ROOT e la SWAP come descritto nel documento di installazione, poi create una USER molto grande, di circa 500MB e una LOCAL molto grande, di circa 300Mb o più.
Infine, se pensate che sulla vostra macchina lavoreranno più persone, allora è consigliabile creare una partizione HOME di dimensione a piacere, ma comunque di dimensione non inferiore a 100Mb. Ad ogni modo tenete presente che questa quantità è fortemente variabile con il numero di utenti e con lo spazio sul disco che si permette ad ognuno di loro di occupare.
Le dimensioni di USER e LOCAL sembrano esagerate, ma in realtà non lo sono affatto: considerate infatti che la maggior parte del sistema operativo va in USER, insieme ai sorgenti di sistema, i pacchetti precompilati per NetBSD 1.3 e i sorgenti di altri software reperibili in rete. In LOCAL invece andranno i risultati delle vostre compilazioni ed eventualmente i pacchetti compilati per le versioni precedenti di NetBSD.
Per quanto riguarda la compatibilità di altre periferiche, come controllers SCSI, CD-ROM, eccetera consultate il suddetto documento.
Note sull'installazione
Per quanto riguarda la procedura di installazione vera e propria, non c'è molto da dire: prima di iniziare leggete attentamente il doc "install" almeno 2 o 3 volte senza operare effettivamente. Quando avete capito cosa dovete fare e come, iniziate. Con questo non vogliamo dire che siete degli stupidi, ma installare NetBSD è abbastanza pericoloso, perché basta un minimo errore di battitura o una distrazione nel digitare il codice di una partizione e potete distruggere intere sezioni del vostro disco senza possibilità di ripristino (tra l'altro nel doc di installazione è caldamente consigliato di fare un backup completo di tutti dischi montati nel sistema). Inoltre durante l'installazione è bene avere davanti carta e penna per segnare i nomi delle partizioni, il loro punto di montaggio nel filesystem etc.
Ci sono, per finire, un paio di cose da dire che nella documentazione ufficiale vengono tralasciate, ma sono importanti.
La prima è che quando andrete a trasferire il file "miniroot.fs" sulla partizione SWAP, il comando "xstreamtodev" si fermerà prima di aver raggiunto il 100%. Questo è normale, non è un errore: viene indicata la percentuale occupata del disco SWAP e non la percentuale di progresso del processo di trasferimento.
La seconda, assai più importante, richiede una piccola spiegazione.
In UNIX i vari dischi non sono indipendenti ed ognuno con una propria radice, come ad esempio DHO: DH1: RAM: DFO: etc, sotto AmigaDOS o come A: B: C: D: etc. sotto MS-DOS, ma sono visti come directory all'interno di una directory principale, la root, indicata con il simbolo "/". Ad esempio la partizione USER, in un sistema funzionante, è riferita con "/usr". A tutto questo fa eccezione la partizione SWAP, che è l'unità di memorizzazione delle pagine per la memoria virtuale, che non è accessibile all'utente. Tutte queste informazioni sono memorizzate in un file, "fstab", che si trova della directory "/etc". E' un file di importanza VITALE! Se viene a mancare o contiene informzioni errate, l'intero sistema diviene inutilizzabile e bisognerà procedere con una nuova installazione, con l'ovvia perdita di tutto l'eventuale lavoro memorizzato sui dischi.

Appena l'installer vi chiede se volete modificare "fstab" rispondete "si" e specificate i descrittori dei dischi (generalmente /dev/sd1a per la root, etc.) e il loro punto di montaggio, cioè la directory che contiene la root del disco. Facciamo un esempio. Supponiamo di voler indicare al sistema che abbiamo due partizioni, ROOT e USER (così indicate sotto AmigaDOS), che vanno montate rispettivamente come / e /usr sotto NetBSD; allora l'fstab dovrà contenere quanto segue:
sd1a /
sd1d /usr
dove sdXY indica la partizione fisica, ottenibile sotto UNIX con il comando "disklabels". X indica il numero del disco che contiene la partizione, es 0,1,2,3 etc. e Y è una lettera che indica il codice della partizione, generalmente "a" per la root e "b" per la swap, etc.
Se avete altre partizioni da montare, basta che le specifichiate a questo punto. Nel caso che abbiate seguito le indicazioni in questo articolo, indicate la LOCAL come "/usr/local" e la HOME come "/home", con i relativi descrittori dei dischi. Per la modifica di "/etc/fstab" l'installer vi mette a disposizione un solo editor di testi, VI (pron. "vi-ai") che e' molto spartano ed assolutamente incomprensibile e' il suo funzionamento, percio' leggete prima la parte di questo articolo che ne parla o consulate un manuale di UNIX.
Se sbagliate, nella migliore delle ipotesi l'installazione del sistema si bloccherà, non riconoscendo il dostype della partizione, nella peggiore la formatterà e la monterà come avete indicato, e potrete salutare quello che c'era prima.
Quando le partizioni saranno pronte, iniziate ad installare gli archivi delle distribuzioni. Se volete risparmiare spazio, potete non installate i giochi.
Per tutto questo ed il resto seguite quanto descritto nel documento di installazione.
Caratterizzazione dei files e comandi che operano su di essi
Se tutto è andato bene (se arrivate in fondo l'installer vi fa anche le congratulazioni), a questo punto avete un sistema UNIX funzionante.
Vediamo cos'è che si deve sapere, cosa si può fare, cosa si deve imparare a fare cosa non si deve assolutamente fare.
Il primo "oggetto" di UNIX con cui avrete a che fare è la shell di UNIX, per cui è utile parlarne un po'. Tutte le Shell UNIX hanno dei comandi utenti simili a quelli di Amiga o di MS-DOS. Prima di descriverli, facciamo una breve panoramica sulle shells; in seguito descriveremo alcuni comandi utili, tanto per metterci un po' "su strada".
Il concetto di shell è informaticamente molto antico: nacque quando l'interazione con i calcolatori elettronici fu permessa anche ai singoli utenti e non più affidata solo ad un operatore addetto. Allora si sentì la necessità di un qualcosa che stesse tra utente e macchina, che ricevesse le richieste di operazioni dell'utente e le inoltrasse alla macchina in forma ad essa comprensibile. Di qui la shell, letteralmente "nicchia", cioè un oggetto in grado di svolgere tale compito. Si capisce, quindi, che la shell è uno strumento molto importante. Nel caso particolare di UNIX, sono a disposizione dell'utente almeno cinque tipi di shells, tre di sistema, e due sviluppate da terzi. Le prime, per la verita' potenti, ma un po' "primitive", sono la Bourne Shell, la Korn Shell e la C Shell. Ognuna di esse mette a disposizione dell'utente un set di comandi più o meno vasto, e la scelta di quale utilizzare dipende dai gusti e dalle esigenze personali. Le altre due sono la BASH (Bourne Again Shell) e la tcsh. Hanno un set di comando molto più completo e molte caratteristiche utili, come il file completion e la bufferizzazione dei comandi immessi.
Comunque i comandi di base di UNIX sono disponibili su tutti i tipi di shells.
Nel filesystem UNIX files e directory vengono chiamati genericamente I-NODES e sono trattati allo stesso modo. Di fatto, sono solo degli spazi occupati sul disco e si contraddistinguono da un flag, che per le directory è una "d". Questi oggetti hanno anche attributi e proprietà.
Gli attributi sono il tempo di creazione, di modifica e di accesso, contato in secondi dal 1/1/1970, le proprieta' sono i permessi di utente, gruppo e mondo.
Ogni i-node è caratterizzato da queste tre categorie, cioè il tipo di accesso a quell'i-node permesso al proprietario del'i-node stesso, al gruppo di utenti a cui appartiene il proprietario e al resto del mondo. Quest'ultimo non è un vocabolo casuale, perché se la vostra macchina fosse collegata alla rete Internet, chiunque sul pianeta puo' agire sugli i-node della vostra macchina secondo i permessi specificati per ciascuno di essi.
Per ogni categoria, le azioni permesse sono "r" (lettura), "w" (scrittura) ed "x" (eseguibilita', o nel caso di directory, attraversamento. Si puo' arrivare alla situazione, quasi paradossale, che un utente possa attraversare una directory senza però poterne listare il contenuto, se "r" non e' attivo nella sua categoria).
Infine ci sono i links, che sono collegamenti trasversali tra i vari i-node del filesystem, e possono essere fisici o simbolici. Il link simbolico è come un alias che viene sostituito nel comando, mentre quelli fisici sono riferimenti veri e propri e non possono essere creati tra i-node che risiedono su dispositivi fisici distinti.
Vediamone adesso alcuni comandi UNIX per gestire gli i-node.
Comandi per le directory:
- mkdir: Crea una directory, che contiene se stessa (".") e la sua "genitrice" ("..").
- rmdir: Rimuove una directory vuota.
- pwd: Mostra la directory corrente.
- cd: Cambia la directory corrente.
Comandi per i files
- more: Mostra il contenuto di un file.
- rm: Cancella un file.
- cp: Copia un file.
- mv: Rinomina o sposta un file
- ln: Crea links tra i-nodes
Inoltre è da tenere presente che gli i-nodes che iniziano con un punto (".") sono considerati nascosti, ed il comando "ls" li mostra se impartito con l'opzione "-a" ("all")
Per una panoramica completa di tutti i comandi disponibili e le loro ozpioni, consultate le pagine di manuale in linea, con il comando "man <nome comando>" oppure la bibliografia di questo articolo.
Concludiamo questo paragrafo ricordando due cose fondamentali: UNIX, ed anche NetBSD, sono sistemi operativi multiutenti, nel senso che permettono alla macchina che li ospita di essere utilizzata contemporaneamente da più utenti distinti. Ad ognuno sono associati due codici alfanumerici, detti Account, che sono lo Username e la Password. Il primo è un identificativo pubblico dell'utente, usato ad esempio per la posta elettronica e come riferimento dell'utente stesso. La seconda è una parola d'ordine che deve rimanere segreta ed è personale dell'utente, che permette la riservatezza delle sue informazioni sulla macchina e ne permette l'utilizzo. Tra tutti gli account ce n'é uno privilegiato, il super-user, che ha il controllo totale sulla macchina e su tutti gli altri accounts. E' l'account "root", che in NetBSD è senza password, per cui la prima cosa che consigliamo di fare è di assegnargliela con il comando "passwd".
La seconda cosa da ricordare è che una macchina UNIX non deve mai essere spenta senza aver prima eseguito la corretta procedura di chiusura del sistema, operazione, tra l'altro, consentita solo all'utente root. NetBSD non fa eccezione a questa regola, ed il comando per eseguire correttamente lo shutdown di sistema è "halt". Dopo qualche secondo i dischi saranno stati sincronizzati, i processi terminati e la CPU fermata e solo allora sarà possibile spegnere o resettare Amiga senza fare danni. Se poi volete resettare direttamente, invece di fare "halt" e poi usare la classica sequenza di reset, potete usare il comando "reboot", anch'esso riservato al super-user. "Reboot" eseguirà un reboot totale della macchina e se non avete installato il bootblock di NetBSD, dopo pochi secondi vi ritroverete il Workbench davanti agli occhi. Questo per dire che se invece volete un reset, diciamo "locale" all'ambiente UNIX, potete usare il comando:
cp /netbsd /dev/reload
Il dispositivo "reload" è un driver che permette di fare il reboot dell'ambiente operativo con un kernel diverso da quello installato nel sistema, ma si può ovviamente usare anche per il nostro scopo, infatti "/netbsd" è il file che contiene il kernel di NetBSD.
Editor di testi
Un nota dolente di UNIX è quella riguardante gli editors di testi. Appena installato NetBSD rimpiangerete l'Ed di AmigaDOS, anzi lo invocherete con le lacrime agli occhi come una perduta Itaca. Ma vediamo perché. Gli editors a disposizione non hanno ne' menu a tendina, ne' pannelli riassuntivi dei comandi, ma mostrano soltanto un angosciante schermo vuoto, ed i comandi vengono impartiti con strane combinazioni di tasti. Adesso vedremo un prontuario "minimo" per l'editor VI, il brutto anatroccolo.
L'editor viene invocato con "vi <nomefile>". Se <nomefile> non esite lo crea.
Vi ha due modi di funzionamento, il modo comandi ed il modo edit, al quale si accede con il comando "i" (insert new text) oppure "a" (add new text). Al lancio, l'editor parte in modo comandi, al quale si può sempre ritornare con il tasto ESC. Facciamo un breve tutorial per mostrare una sessione di lavoro "minima" con vi. Supponiamo di voler creare un breve file di testo con una sola riga. Al prompt della shell impartite, ad esempio, "vi EnigmA.txt", facendo attenzione alle lettere, perche' UNIX è case sensitive. Si aprirà la pagina di vi con una tilde ("~") per riga, che indica che la riga è "vergine". Battete "a" (minuscola) e poi scrivete il vostro testo, sempre per esempio, "EnigmA Amiga RUN", che dovrebbe apparire sullo schermo mentre lo digitate. Poi premete una volta il tasto ESC e di seguito impartite la sequenza Shift-Z-Z (maiuscole). L'editor scriverà il file e si chiudera' automaticamente.
Se invece volete uscire senza scrivere il file, e dunque perderlo, impartite ":q!". Come avrete capito dalle righe precedenti, questo editor è tutt'altro che intuitivo, anche se una volta imparati i comandi ed appresa la filosofia di funzionamento, è abbastanza agile e comodo. Tuttavia, se volete un editor più simile a quelli su Amiga e più facile da usare non vi resta che installare l'ambiente grafico a finestre di UNIX.
X Windowing System
Come tutti i sistemi operativi odierni, anche UNIX, e nel nostro caso NetBSD, ha a disposizione un ambiente di lavoro grafico, che permette l'utilizzo di mouse, finestre, menu a tendina ed altro.
Iniziamo l'argomento con una precisazione: il nome dell'oggetto che andiamo a trattare è, per esteso, X Windowing System Version 11 Release 6.1, che può essere abbreviato, ovviamente, con X11, X ed anche X Window, ma NON X Windows! Non è assolutamente la versione per UNIX del software MicroSoft, e ve ne renderete subito conto dopo un minuto di utilizzo. Per l'installazione su NetBSD, che non è effettuata dall'installer di sistema, stampate il documento "install.X11" che trovate nella distribuzione insieme ad "install", e procedete come descritto. Purtroppo, per motivi di tempo, non è possibile in questa sede esaurire l'argomento, che richiederebbe la stesura di diversi volumi, ma vogliamo dare soltanto qualche suggerimento per perdere meno tempo possibile ad installare e configurare questo software. Come detto, per l'installazione seguite le istruzioni che avete stampato, poi dovete sapere che ci sono una miriade di files ASCII che contengono i vari settaggi dell'ambiente.

Per prima cosa scegliete un Window Manager. Per inciso un Window Manager è come dice il nome, un gestore di finestre, cioè quella parte del sistema grafico che si occupa di dare un look ai bordi delle finestre, i gadgets (sotto UNIX si chiamamo "widgets"), i menu, e tutto quello che sotto Amiga è caratteristico del Workbench. Di default, la distribuzione di NetBSD mette a disposizione il twm, Tab Window Manager, che e' veloce, occupa poca memoria, ma secondo noi, ha un estetica orribile! Un buon compromesso è offerto da un pacchetto liberamente distribuibile importato dalla linea di computers Sun, l'OpenLook, che inoltre, nella versione per NetBSD comprende vari tools pronti all'uso tra cui un text editor a finestre molto più umano da utilizzare.
L'archivio, lungo circa 1.7Mb compresso e già compilato, è reperibile sui siti che distribuiscono NetBSD. Attualmente, nel momento in cui si sta scrivendo, non esiste una versione appositamente compilata per NetBSD 1.3, quindi cercatelo nella directory "contrib" di una versione precedente. Il nome dell'archivio è "openwin" seguito da un numero di versione e dal suffisso ".tar.gz", classica degli archivi UNIX.
Una volta preso ed installato, va un po' configurato, vediamo come.
Intanto settiamo la risoluzione dello schermo. Editate il file "/usr/X11R6/lib/X11/xinit/xserverrc" e modificate la riga di comando come segue:
X -dev /dev/grf0 -width 704 -height 520 -depth 8 -emulatemiddle
cioe': con /dev/grf0 impostate l'utilizzo dei chip AGA o ECS, poi specificate le dimensioni dello schermo, compresa la profondità (8 piani = 256 colori) e, se non avete un mouse a tre tasti, specificate che il tasto di mezzo è emulato con la pressione contemporanea dei due soli presenti. Ovviamente potete decidere di utilizzare una scheda grafica, se la possedete ed è compatibile con NetBSD. Poi potete cambiare la risoluzione e i flags di configurazione.

Infine dovete specificare che volete usare OpenLook e non twm, e questo è possibile modificando il file "xinitrc", commentando, con un "#", la riga che fa partire twm ed inserendo la seguente:
/usr/local/openwin/bin/olwm
che invece lancia l'OpenLook Window Manager. Consulalte la pagina di manuale di olwm per vedere tutte le possibili opzioni.
Compilare sotto NetBSD
Come forse avrete già intuito leggendo un po' tra le righe, con NetBSD e più in generale con UNIX, ricompilare il software prima di poterlo installare ed utilizzare, è una cosa di ordinaria amministrazione, tanto che è addirittura possibile, come vedremo in seguito, ricompilare lo stesso kernel del sistema.
Per poter compilare, prima di tutto, dovete aver installato l'archivio "comp.tgz", che contiene il GCC e le relative utilities. GCC è il Compilatore per antonomasia per UNIX e come forse starete già sospettando, è un'impresa capire come funziona e farlo funzionare correttamente. Avete ragione!
Ma procediamo con ordine. Intanto diciamo che è un compilatore C/C++ GRATIS e disponibile anche per Amiga, prodotto dalla Free Software Foundation, insieme a tanti altri pacchetti utilissimi, tra cui spiccano l'interprete GhostScript e Octave, un software per calcoli matriciali compatibile con MatLab per PC.
E' disponibile anche una lunga serie di compilatori e traduttori di vari linguaggi, come il FORTRAN, il PASCAL, il LISP, l'ADA.
La sintassi per un utilizzo minimo del GCC è la seguente:
gcc -o <nome eseguibile> <nome file sorgente in C>
che produce un file eseguibile con il nome <nome eseguibile>. Se tralasciate l'opzione -o ... verrà prodotto un file eseguibile con il nome di default "a.out", in generale non molto esplicativo. Infine, come al solito, consultando le relative pagine di manuale potete vedere la miriade di opzioni che il compilatore accetta sulla riga di comando: ci sono opzioni di ottimizzazione a più livelli, compilazione per processori specifici, gestioni particolari di warnings ed errori e altro.
In generale però, se dovete compilare un software preso in rete, basteranno pochi comandi (e moltissimmo tempo), per avere il pacchetto pronto all'uso. Infatti, e questo vale in special modo per il software della FSF, si sta andando verso una sequenza "standard" di passi da eseguire per compilare ed installare i programmi. Questa è descritta sempre nel file README o INSTALL della distribuzione e la si può brevemente riassumere, trattandosi infatti dei comandi:
./configure
make
make install
che si occupa di configurare compilare ed installre il software sulla macchina corrente. Ci sono poi dei casi particolari, come ad esempio il g77, compilatore FORTRAN, che hanno bisogno di qualche passaggio in più, ma sono casi, appunto, sporadici. Quello che invece può succedere, è che nonostante i sorgenti siano stati configurati per adattarsi all'ambiente, il processo si interrompa per errori di compilazione. In questi casi o si corregge l'errore, se si conosce il C e si riesce a capire cosa è che non va, oppure si cambiano le opzioni di compilazione nel makefile, oppure si cambia software... Spesso comunque si tratta sempre o di warnings, che non interrompono il processo e di ridefinizione di simboli nei vari file header e si può tentare di commentare le istruzioni incriminate e riprovare.
Utilizzo dei floppy drive e dei CD-ROM driver
Per i drive a dischetti valgono le stesse regole che per gli altri dischi: prima di essere utilizzabili vanno montati e resi visibili al sistema. Per fare questo , prima dovete creare una directory che verra' utilizzata per la root del dischetto. Il nome e la sua posizione all'interno del filesystem non sono rilevanti, pero' e' consiglibile crearla in una posizione "comoda", ad esempio la root del filesystem e con un nome mnemonico, come "floppy".
Il secondo passo da eseguire e' il montaggio vero e proprio. Si possono usare dischetti in vari formati, AmigaDOS, MS-DOS e UNIX. La sintassi generale e' il seguente: mount<tipo> <opzioni> <descrittore dispositivo> <punto di montaggio>
Per montare un dischetto Amiga provate con: mount_ados /dev/fd0a /floppy, assumendo che il dischetto sia stato inserito nel df0:. Per montare un disco MS-DOS usate: mount_msdos /dev/fd0b /floppy, sempre supponendo che il supporto sia nel df0:. A questo punto potete usare il floppy come volete, ma ricordate che quando avete finito non dovete togliere il disco dal drive senza prima averlo smontato: basterà che facciate "umount /floppy" e poi lo potrete togliere.
Le opzioni del comando mount sono una infinita', consultate il suo manuale con "man mount" e vedrete quali sono; una parola soltanto per le partizioni AmigaDOS: NetBSD le usa solo in lettura e per poterle montare correttamente questo va specificato. Allora le opzioni devono essere "-o ro" che vuol dire proprio "monta in sola lettura (read only)".
Per quanto riguarda i lettori CD basta che utilizziate il comando "mount_cd9660", specificando che un dispositivo a sola lettura e la direcotry di montaggio, che in genere è "/cdrom". Per poter togliere il CD dopo l'uso basta impartire il comando "umount". Se poi avete anche un drive ZIP e il sistema lo ha riconosciuto e configurato, lo potete utilizare come un qualsiasi disco rigido, seguendo le operazioni descritte in precedenza.
Personalizzazione del kernel
Dopo che avrete preso un po' di confidenza con l'ambiente UNIX e vi sentirete un po' piu' smaliziati, potrete provare a modificare il kernel di NetBSD e a ricompilarlo. In questa sede non tratteremo le modifiche "pesanti", intervenendo cioe' al livello dei files sorgenti, perche' l'argomento e' molto delicato, bisogna essere buoni programmatori C e soprattutto avere chiaro cosa si va a modificare e perche'. Mostreremo invece come e' possibile snellire, velocizzare e arricchire il sistema togliendo od aggiungendo il supporto per periferiche, cambiando il numero di utenti contemporaneamente permessi sul sistema e altro.
Per prima cosa scompattate ed installate l'archivio dei sorgenti del kernel, nominato "syssrc. tgz", poi spostatevi nella directory /usr/src/sys/arch/amiga/conf e fate una copia del file GENERIC", che e' il file che contiene tutte le opzioni possibili supportate dal kernel e che in GENERIC sono quasi tutte attive.
Il nome che darete al nuovo file sara' anche quello che verra' memorizzato internamnte al kernel stesso. A questo punto, con un editor di testo, commentate, con un "#", o scommentate le opzioni che vi interessano. Ad esempio potete escludere il supporto per i processori diversi dal vostro o i controllers SCSI e le schede di rete. Da notare, comunque, che una scheda di rete, una qualsiasi, deve essere lasciata inclusa, altrimenti il linking dopo la compilazione si interrompera' con un errore, costringnedovi a ripetere tutto daccapo. Magari, inoltre, prima di includere od escludere "tutto", modificate solo poche opzioni e vedete che succede.
Ora, una volta che avete preparato il file di configurazione lanciate il comando "config <nome del file di configurazione>". Se non avete operato scelte "incompatibili", in /usr/src/sys/arch/amiga/compile verra' creata una directory con il nome del file da voi specificato. Entrateci e digitate "make depend" e return. Dopo un po' di tempo (*), il prompt vi verra' restituito e digitando nuovamente "make" e return avra' inizio la compilazione vera e propria, che richiedera' qualche ora, nelle nostre prove, circa 2 ore e 40 minuti.
Prima del fatidico "make", pero', potete, anzi e' consigliato, modificare il Makefile per ottimizzare il tutto: nelle opzioni per il compilatore, specificate -DMC680x0, cioe' il vostro processore e se disponete del coprocessore metematico, togliete l'opzione "-msoft-float", che rendera' il kernel leggermente piu' veloce.
Quando il compilatore avra' finito potete provare il nuovo kernel, che si chiamera' sempre NetBSD, copiandolo nella directory "/", riavviando il sistema in modo monoutente ed impartendo il comando: cp /netbsd /dev/reload. Una volta testata l'effettiva funzionalita', potete copiarlo definitivamente in / ed il gioco e' fatto.
Installazione del Bootblock
Una delle più significative innovazioni di NetBSD1.3, e' la possibilita' di fare il boot della macchina direttamente sotto Unix. Se durante l'installazione del sistema avete rinunciato a questa possibilita', potete usufruire di questa opzione a sistema installato senza dover riformattare nulla, ovviamente a patto che abbiate appositamente configurato la partizione di root come descritto nel doc di installazione.
Vediamo come si procede per l'installazione del bootblock di NetBSD "a caldo".
Per prima cosa riavviate NetBSD in modalita' monoutente, cioe' con l'opzione "-s" (attenti che la "s" sia minuscola!). Il sistema fara' un boot "ridotto", cioe' non eseguira' controlli sul filesystem, non fara' partire demoni di sistema, eccetera: non fara' praticamente nulla. Allora, al prompt, montate la partizione /usr con il comando "mount /dev/sdXY /usr", dove XY sono gli identificatori della suddetta partizione. Se tutto e' andato a buon fine, andate nella directory /usr/mdec e digitate: "installboot xxboot /dev/rsdXY", dove, come al solito, XY indicano la partizione che il sistema ha configurato come root. Se sbagliate, avete rovinato una partizione BSD o AmigaDOS.
A questo punto, dopo aver premuto Return, se non avete commesso errori, il sistema vi rispondera' dicendovi che l'operazione e' riuscita.
Ora potete provare l'emozione (?) di aver "fatto fuori" l'AmigaDOS: riavviate sotto Amiga, prendere HDToolBox e impostate a "bootable" la partizione ROOT e aumentatele la priorita' di boot oltre quella della partizione di boot sotto Amiga. Al reset successivo apparirà uno schermo biege che mostrerà il kernel di NetBSD e gli passerà il controllo della macchina.
Ovviamente l'AmigaDOS non è stato completamente "spianato" dal computer. Per rivederlo nuovamente, forzate il boot dalla partizione amiga tramite il bootmenu. Per rendere permanente questa operazione, bastera' che nuovamente modifichiate la boot priority della partione ROOT con HDToolBox, sotto al valore di boot dell'harddisk Amiga.
Come avrete notato, di default, le opzioni di lancio del kernel sono "-AS", cioè viene attivato l'uso del chipset AGA, impostando lo schermo nel modo DBLNTSC, e vengono incluse le tavole dei simboli del kernel. Se queste opzionni non soddifsano le vostre esigenze, potete ricompilare e reinstaller il nuovo bootblock. Per fare questo dovete, se non lo avete gia' fatto, scompattare l'archivo che contiene i sorgenti del kernel, che si chiama syssrc.tgz, e procedere come segue.
Con NetBSD avviato, spostatevi nella directory /usr/src/sys/arch/amiga/stand/bootblock/boot, e modificate con uno degli eventuali editor installati il file main.c: subito dopo la sezione degli #include troverete un dichiarazione globale, la seguente:
char default_command[]="netbsd -AS";
modificate la stringa tra virgolette, senza però cambiare il nome del kernel, a meno che non lo abbiate ricompilato rinominandolo. Ad esempio, per far partire il sistema senza le tavole dei simboli, togliete l'opzione S, come segue:
char default_command[]="netbsd -A";
Dopo che avete impostato le vostre scelte salvate ed uscite dall'editor e digitate "make" seguito da un return. In qualche minuto il bootblock verrà ricompilato e lo potrete reinstallare seguendo la procedura descritta prima, specificando però anche il percorso del file di bootblock da installare.
Conclusioni
Dopo questo lungo discorso su NetBSD è giunto il momento di concludere, facendo qualche considerazione. La prima è la seguente: UNIX non e' un sistema operativo facile da imparare, però è molto più potente di AmigaDOS e sicuramente dei vari Windows per non parlare di MacOS. Il suo utilizzo come sistema operativo per uso "domestico" non è molto diffuso, quindi, almeno al momento non troverete mai dei surrogati di Word o TurboCalc, ma se avete la necessità o la voglia di capire il senso intimo delle cose (informatiche, oviamente) e allo stesso tempo siete schifati dall'ignoranza informatica che vi/ci circonda, allora imparare ad interagire con un simile ambiente è sicuramente meritevole e appagante.
Poi va detto che si, non c'è software di "consumo", però c'è tanto software scientifico GRATIS, soltanto da prendere dalla rete o da chi già ce l'ha, ricompilarlo ed usarlo: questo grazie alla Free Software Foundation e alla sua politica sul software: non programmi costosi e per poche macchine, ma sorgenti liberamente (re)distribuibili e modificabili, per tutte la piattaforme hardware/software, che siano compatibili con le varie versioni e varianti di UNIX.
Infine, concludiamo sperando che queste informazioni vi siano state utili e augurandovi buon lavoro o magari divertimento.
Bibliografia:
James Armstrong - "I SEGRETI DI UNIX", Apogeo 1997, con CD-ROM ISBN: 88-7303-299-0
E' un testo in lingua italiana abbastanza completo che comprende aspetti sia basilari che avanzati di UNIX, della sua filosofia, con accenni anche alla programmazione in vari linguaggi, tra cui C, C++ e PERL.
John R. Levine, Margaret Levine Young - "UNIX SENZA FATICA", McGraw-Hill 1995 ISBN: 88-386-0339-1
E' un volumetto in italiano che oltre ad una breve panoramica sulle Shells illustra i comandi di UNIX con i parametri più utili, l'ambiente grafico, gli editors di testo e la posta elettronica.
A. Silberschatz e altri - "SISTEMI OPERATIVI", Addison-Wesley, 1994 ISBN: 88-7192-025-2
Il capitolo su UNIX ne descrive la storia e le implementazioni a basso livello, oltre ad una panoramica sulle varie directories di sistema ed i loro contenuti.
Infine, per una conoscenza approfondita di UNIX BSD, compreso NetBSD (**), consigliamo la suite di volumi "4.4BSD" Berkeley Software Distribution, editi da "The USENIX Association and O'Reilly & Associates, Inc.". Sono un sets di 6 volumi, in lingua inglese e con caratteri microscopici, ognuno dei quali copre un settore ben preciso: il più utile, per un amministratore di sistema è il "System Manager's Manual [SMM]", che descrive come installare il sistema, le varie periferiche, come le stampanti, e la manutenzione ordinaria e non.
4.4BSD-Lite CD Companion - ISBN: 1-56592-092-9
4.4BSD System Manager's Manual - ISBN: 1-56592-080-5
4.4BSD User's Reference Manual - ISBN: 1-56592-075-9
4.4BSD User's Supplementary Documents - ISBN: 1-56592-076-7
4.4BSD Programmer's Reference Manual - ISBN: 1-56592-078-3
4.4BSD Programmer's Supplementary Documents - ISBN: 1-56592-079-1
Note:
(*): La macchina usata per le prove è un Amiga 4000/040/25, 18 Mb di memoria RAM e con installato NetBSD 1.3 su harddisk QUANTUM Lightning 730A collegato alla porta IDE interna, con la seguente tavola delle partizioni NetBSD:
root: 20 Mb
swap: 40 Mb
user: 350 Mb
local: 213 Mb
(**): E' conveniente, se si dispone di un accesso ad Internet, iscriversi alla mailing-list sul porting per Amiga di NetBSD. Consultare l'indirizzo
http://www.netbsd.org
In questo modo si potranno avere continuamente informazioni circa i vari problemi e le loro risoluzioni. E' indispensabile la conoscenza della lingua inglese.
(***): Il sito principale di NetBSD è: http://www.netbsd.org. Per l'accesso ftp è consigliabile fare riferimento all'indirizzo:
ftp://ftp.sunet.se/pub/os/NetBSD
Per il software GNU un sito abbastanza veloce è:
ftp://ftp.unina.it/pub/gnu
Comunque è da tenere presente il software GNU è costituito da archivi molto voluminosi, spesso dell'ordine dei Megabytes, quindi sono consigliabili connessioni veloci. Ricordare infine che si tratta sempre di distribuzioni di sorgenti che vanno ricompilati sulla propria macchina.