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