recensione di MINIX 1.5 by Giuseppe Zanetti

Nel mondo universitario il sistema operativo piu' diffuso e' senz'altro UNIX,
che, nei suoi vari sapori ed implementazioni, e' disponibile su piattaforme
hardware di tipo assai diverso, a partire dall' economico personal col 286,
fino ad arrivare alla potente (e costosa) workstation grafica.
Inizialmente la politica dell' AT&T e' stata quella di distribuire i sorgenti
delle prime versioni di UNIX in licenza, peraltro in buona parte gratuita, alle
universita', in seguito, con l' avvento del System V e delle implementazioni
su macchine "da lavoro", la politica dell' azienda telefonica e' profondamente
cambiata ed ora per accedere ai sorgenti del sistema operativo si devono pagare
diritti talmente elevati da risultare inconciliabili con le modeste risorse
finanziarie delle universita' italiane che, non disponendo dei generosi fondi
messi a disposizione alle corrispettive d'oltreoceano, non possono permettersi
di utilizzare per la didattica le preziose linee in C del codice AT&T.
Per questo motivo un gruppo di studio della universita' di Berkeley decise di
"farsi da se" la propria versione del sistema operativo, quella che sarebbe
passata alla "storia" sotto il nome di BSD (Berkeley System Distribution),
di cui purtroppo sono disponibili solamente i sorgenti dei comandi, poiche'
come kernel si continua ad utilizzare quello di AT&T.
Per un prossimo futoro la Free Software Foundation (per intenderci gli autori
dei programmi distribuiti col marchio GNU) ha annunciato una sua versione
low-cost del kernel, ma presumibilmente bisognera' attendere ancora un paio
d'anni per vedere realizzata la cosa.
Per questo una decina d'anni or sono un professore olandese, Andy Tanenbaum,
decise di scrivere un clone di UNIX per uso strettamente didattico, forte delle
esperienze accumulate in anni di insegnamento e di collaborazione con la casa
americana (peraltro nel manuale e' messo bene in rilievo che nessuna linea del
codice originale e' stata utilizzata nella stesura del nuovo sistema operativo)
Col passare degli anni le sorti del Minix hanno scavalcato le frontiere della
patria natia e, grazie alla collaborazione con l' inglese Prentice Hall e di
appassionati di tutto il mondo, la versione originaria per 8086 e' stata
affiancata da quelle per 286 (che utilizza le modalita' protette del processore
e permette di sfruttare la cosidetta memoria "estesa", ovvero quella supariore
ai 640 K del DOS), per 386 (seppure in versione "non ufficiale") e per 68000
implementata su Amiga, MacIntosh e Atari ST; ultimamente e' in via di sviluppo
una versione per SUN (che di serie monta un "vero" UNIX in versione BSD),
mentre quella per Sinclair QL e' stata realizzata da un gruppo di appassionati
utenti e viene distribuita gratuitamente come "differenze" rispetto alla
versione per atari (che bisogna comprare originale).
Minix esternamente e' molto simile alla "version 7" di UNIX, di cui mantiene un
certo grado di compatibilita' a livello di sorgenti in C e di chiamate al
sistema (per inciso, Minix viene fornito con un compilatore C (che segue lo
standard K&R) e con i principali programmi di supporto come il make e il
loader-assembler).
Pur facendo riferimento alle vecchie versioni di UNIX, Minix segue abbastanza
fedelmente lo standard POSIX, cosicche' e' possibile la migrazione a questo
ambiente di buona parte dei programmi UNIX di cui si disponga dei sorgenti.
L' unico neo del compilatore e' che in macchine con architettura INTEL, e'
impossibile creare eseguibili il cui codice sia maggiore di 64 kilobytes,
limitazione che tuttavia non si fa sentire in maniera rilevante, essendo 
Minix destinato ad una categoria di utenti che piu' che utilizzare programmi
gia fatti, preferiscono "smanettare" con il sistema operativo e usarlo come
trampolino verso un "vero" UNIX.
Il sistema operativo (nelle versioni superiori alla 1.3) e' abbastanza sicuro
se usato su macchine 286/386 o Motorola 68000 con MMU, in quanto lavora in
modalita' "protetta" e in caso di eventuali errori o malfunzionamenti del
sistema (particolarmente frequenti quando si usano i puntatori in C) intercetta
l' errore e' fa il dump dell' area di memoria coinvolta nel pasticcio in un
file chiamato CORE (da cui il messaggio di avvertimento "core dumped" quando
qualcosa non e' andato per il verso giusto) residente nella directory corrente,
affinche', con un apposito programma di diagnosi si possa risalire alle cause
che hanno provocato il guasto.
Anche come livelli di sicurezza e di protezione dei files Minix e' abbastanza
sicuro, il che ne fa un ottimo strumento per una piccola multiutenza, a
condizione di accontentarsi dei programmi forniti col sistema (fra cui due
editor simili rispettivamente a "vi" e ad "emacs" e un correttore di ortografia
con un dizionario in inglese) o di quelli offerti dal "mercato" del pubblico
dominio, poiche' attualmente Minix non e' supportato da nessuna software house.
Di contro "generazioni" di appassionati che sviluppano software sotto Minix o
adattano software UNIX preesistente si danno giornalmente appuntamento sul
gruppo di news comp.os.minix (un' area messaggi di InterNet, la maggiore rete
telematica in scala geografica, a cui sono collegate migliaia di macchine UNIX)
per scambiarsi le loro opinioni e i sorgenti dei loro lavori.
Se mediante le news e' possibile colloquiare direttamente con gli autori del
Minix, non meno importanza hanno i sorgenti pubblicati (disponibli anche in
apposite directory di molti computers raggiungibili via InterNet), tanto per
fare alcuni nomi, sono disponibili programmi come il "berkeley YACC", il
protocollo UUCP per ricevere posta elettronica e news direttamente da casa
via modem, gli scompattatori LHARC e ZIP, formattatori di testo, un nuovo
compilatore C, piu' veloce, ecc...
Per chi volesse poi realizzare il proprio sistema multiutente o una rete di
computers, e' disponibile di serie il protocollo di rete AMOEBA (lo stesso di
Mach e di NeXt) che funziona con schede di tipo ethernet, e un talk di
pubblico dominio per colloquiare fra terminali diversi (ad esempio col fratello
che sta dall' altra parte della casa).
Minix e' disponibile in versione 1.5 su 12 dischetti da 360K (anche quelli da
3" 1/2 !) e comprende una piccola guida/manuale e un libro da comprare a parte
su cui i sorgenti sono spiegati e commentati per filo e per segno (una manna
per i "colleghi" studenti di discipline informatiche).
E' possibile l' upgrade dalla versione 1.3 per mezzo di un kit disponibile
via FTP su InterNet, operazione che risulta piuttosto noiosa ma che permette
di risparmiare molte decine di migliaia di lire.
Peraltro la distribuzione di Minix e' gratuita ad altre due persone, purche'
in ambito strettamente accademico e secondo le modalita' previste dalla
licenza d'uso.
L' installazione del sistema operativo e' molto scomoda, complicata anche dal
fatto che i comandi per inizializzare l' hard disk (fdisk) non sono protetti
contro eventuali errori dell' utente e se non si fanno per bene le cose si
rischia di ritrovarsi con il disco fisso illeggibile (anche la partizione DOS).
Purtroppo cosi' com'e' Minix e' installabile solo su controller di Hard Disk
di tipo MFM e RLL,comunque i driver per controller SCSI e ESDI sono disponibili
come pubblico dominio.
In definitiva consiglio Minix a tutti gli studenti "smanettoni" o a coloro
che vogliono imparare ad usare UNIX senza dover sborsare cifre assurde in
software e in hardware (Minix da questo punto di vista e' molto parco, poiche'
la configurazione "minima" su cui lavorare e' un XT 8088 con 512K di ram e
due dischi, ovviamente l'hard disk e' quasi indispensabile se volete compilare
anche il minimo programmino).
Per installare il tutto su Hard Disk e' consigliabile avere una certa dose di
pazienza ed utilizzare l' FDISK del DOS per preparare le partizioni di lavoro,
meglio se dopo aver fatto un bel backup del disco.
In ogni caso il boot avviene sempre da floppy disk (a meno di procurarsi un
apposito programmino di pubblico dominio) e permette di configurare come meglio
si crede alcuni parametri come ad esempio la possibilita' di fare risiedere il
file system del root su ram, per una maggiore sicurezza e velocita' di
esecuzione, peraltro scelta obbligata se non si dispone di hard disk.
Pur non essendo un vero UNIX, il sistema e' molto robusto, percui e' un ottimo
trampolino di lancio per il futuro System Administrator di una macchina UNIX.

Di seguito riporto la lista di alcuni programmi supportati da minix:

UUCP            Protocollo per network via modem
uugetty         login esterne col modem
MicroEmacs      Editor (solo >286)
Vi              Editor
YACC            Analizzatore lessicale
FLEX            Analizzatore lessicale
Curses          Libreria finestre su terminale
TCP/IP          Protocollo Internet su rete a pacchetto (solo >286)
Virt-ttys       Consoles virtuali
less            visore files
nroff/troff     text formatter
comic           compattatore
lharc           compattatore
unzip           compattatore
c68             compilatore (386 e 68000)
wmail           posta elettronica
rnews           news internet

Prodotto:  Minix 1.5
Requisiti: PC XT/AT/286/386/PS2 con 512K di memoria
           Amiga/MacIntosh/Atari ST
Editore:   Prentice Hall (tel. 055- 212150)
Prezzo:    290.000 Lire
Pro:       sistema operativo Unix-like con sorgenti in C
           compilatore C
           modo "protetto" e uso memoria estesa
           supportato su InterNet
           requisiti hardware minimi
           velocita' elevata
           multiutenza e multitasking
           supporto ethernet e "Amoeba"
Contro:    difficolta' e pericolosita' di installazione
           supporta solo Hard Disk MFM
           compilatore solo modello small (64K)
           non supportato da software houses
           boot da dischetto
           manuale avanzato a parte non aggiornato

Giuseppe Zanetti, via Vergani, 11 - 35031 Abano Terme (Padova)
telefono: 049-638225
E-mail: InterNet beppe@alessia.dei.unipd.it