Per usare MINIX dal Laboratorio SW1:

Il bootstrap si fa da floppy.
Poiche' per ragioni di sicurezza il BIOS e' stato inizializzato in modo da verificare prima l'esistenza di un sistema bootabile su unita' disco C, occorre modificare la situazione.
Dopo aver fatto uno shutdown del sistema, appare una schermata di ACER. Dare ctr alt esc.
Appare la schermata del BIOS. E' necessario dare una password, che verra' comunicata individualmente, una per gruppo (e quindi una per macchina)
Entrare in BIOS FEATURES, posizionandosi con la freccia e cliccando enter.
Posizionarsi su BOOT SEQUENCE.
Con il tasto PgDwn si assegna la prima unita' di ricerca bootstrap ad A.
Uscire con ESC.
Posizionarsi su SAVE-EXIT e dare Y per memorizzare la scelta.

A questo punto il sistema riparte cercando il bootstrap prima su A. Ovviamente, lo trovera' solo se prima avete inserito il dischetto Boot di Minix. Per ottenere un floppy boot per Minix, da LINUx, andare sulla directory /home/local/fd/minix.fd e copiare il file boot su un floppy formattato (cp boot /dev/fd0).

La prima volta che viene effettuato il bootstrp su una nuova istallazione occorre assegnare le partizioni disco su cui si trovano le porzioni root e boot necessarie.

Il Bootstrap copia l'immagine del sistema Minix da floppy a memoria, e attiva il S.O. attraverso l'interruzione corrispondente all'entry MINIX.

ATTENZIONE: dopo aver usato Minix occorre procedere ad uno shut-down per ripartire con Windows. E' quindi necessario rifare la procedura vista prima con BIOS, e RIPRISTINARE IL BOOT DA UNITA' C PER PRIMA.

Poiche' le macchine sono assegnate ad un unico gruppo, che e' anche l'unico a conoscere la password del BIOS, eventuali tragiche fatalita' occorse a causa di una "dimenticanza" saranno "addebitate" al gruppo responsabile.

Si consiglia quindi di:


Caratteristiche di Minix rispetto a Linux

La login di radice e' "root", senza password. Minix ha solo un sottoinsieme di comandi rispetto a Linux, che sono comunque i piu' importanti. Controllate la sintassi in caso di incertezza, ad esempio per il comando kill.

Per uscire da Minix, dare il comando "sync" seguito da "shutdown", che equivale a Ctr Alt Del, oppure direttamente Ctr Alt Del (l'istallazione attuale potrebbe non prevedere l'uso dell'istruzione shutdown. In questo caso, ovviamente, usate Ctr Alt Del). Ricordarsi, prima di uscire da Minix, di compiere le seguenti operazioni:

I comandi di lettura e scrittura DOS sono diversi. Richiedere il manuale in linea di dosread, doswrite e dosdir.
La prima volta che userete i comandi per DOS vi apparra' un messaggio di errore, relativo alla non esistenza del file speciale dosA. Occorre crearlo come link al file speciale PS0 (driver del floppy) con il comando:

ln /dev/PS0 /dev/dosA

Minix non e' collegato alla rete, quindi la stampante non e' utilizzabile. Il comando ^C per inviare un signal SIGTERM al processo in foreground e' sostituito dal tasto del.

Debuggging

E' opinione di prominenti personalita' scientifiche che avere un buon debugger sia antieducativo: i programmi - dicono - e' buona cosa che siano corretti fin dalla prima stesura. Minix sposa appieno questa teoria, e se da una parte ci offre un editor spartano, dall'altra nulla concede al debugging. O quasi: in quello che viene riconosciuto come un (raro) momento di debolezza, gli implementatori hanno inserito due funzioncine che si attivano premendo F1 o F2.

Quanto queste due liste siano attendibili e' argomento di dibattito. Per esempio il processo init ha PID=0, con un netto peggioramento rispetto alla "vecchia" versione, in cui il processo INIT (che voi sapete bene essere il processo principale del sistema minix) aveva un PID<>0, benche' assumesse un valore diverso a seconda del tasto che si premeva (un gruppo volonteroso potrebbe correggere l'errore......)
Esiste solo la modalita' testo (non c'e' X11).

Costruzione binario di MINIX

Il S.O. MINIX e' fisicamente costituito da un unico file binario (image) contenente gli eseguibili di bootblock, init, kernel, fs, mm, menu (fschk) riuniti insieme dopo la compilazione separata dal programma build.

Per ottenere image:

Si puo' anche evitare di compilare separatamente le varie componenti usando il Makefile che si trova in /usr/src/tools eseguendo l comando make . Nella stessa directory eseguendo make image viene costruito il file image.

Per avere il boot su floppy si esegue il comando mkboot fdboot fd0

Ricordarsi di dare prima la data corretta.

Per installare Minix dai dischi di installazione

Inserire il floppy ROOT, che contiene il bootstrap di Minix piu' uno script che supporta la sua istallazione.

Quando viene chiesto dove montare USR (la directory usr) inserire il floppy USR e digitare PS0 (e' il device del floppy, da cui sara' letta la directory). Il bootstrap e' stato effettuato.

Dopo aver completato l'istallazione, la directory usr sara' gia' presente su disco fisso, quindi non sara' necessario inserire altri floppy. Alla richiesta di login ripondere root. Quindi dare il comando "installa". Scegliere la keyboard opportuna.

Il programma suppone di installare Minix nella partizione hda4, ma puo' essere cambiata (il sistemino propone il taso <ESC>: non ho fatto la prova). Durante l'installazione, se il floppy e' protetto in scrittura vengono dati ogni tanto dei messaggi di errore I/O. Sono fastidiosi ma non dannosi.

Viene attivato fdisk (il programmino che lo gestisce si chiama part). Con il comando 'r' si leggono i dati, posizionandosi sui vari campi si possono modificare, posizionandosi su size di hda4 e premendo 'm' (magic) l'ultima partizione e' assegnata a "tutto quello che resta". Con 'w' si memorizza la scelta. Se dopo questa operazione il programmino si ferma, ridare installa e riprocedere, uscendo da part con 'q' (quit).

Finita la formattazione di hda4, seguendo la richiesta del programma, reinserire il floppy ROOT. Poi in sequenza sono richiesti i floppy MINIX1, MINIX2,....MINIX7.

Alcune osservazioni

Preparazione di un dischetto.
Voi - da studenti coscienziosi - DOVRETE tenere almeno un backup delle vostre attivita' su dischetto. Tale dischetto, come qualunque altro vogliate usare con formato minix (peraltro lo stesso succede con Unix) andra' preparato come segue. Bisogna:

  1. formattarlo (sotto MS-DOS)
  2. dare il comando mkfs /dev/PS0 1440 (se si tratta di un dischetto da 1.4 mega) oppure il comando mkfs /dev/ps0 720 (se si tratta di un disco da 720K).

Le maiuscole e le minuscole sono rilevanti (come sempre in minix: i file /usr/pippo e /usr/Pippo sono distinti).

Utilizzo di un dischetto

Voi ben sapete che in Minix - come in Unix - l'accesso ai file (e talvolta alle risorse) e' "device independent". Tipicamente, quando si vuole accedere a dei file che si trovino su dischetto bisognera' "montare" il dischetto medesimo sulla directory prescelta (ad esempio "users", comunque gia' esistente). A montagggio avvenuto, per accedere ad un eventuale file /radice/robamia (relativamente alla root del FS su dischetto) del dischetto sara' sufficiente richiedere l'accesso al file /user/etc/robamia.
Ora, per montare un dischetto su /user bisogna dare il comando mount /dev/PS0 /user (nel caso di dischi da 1440K)
Quando si finisce una sessione o quando si vuole cambiare il dischetto nel driver BISOGNA smontare il dischetto montato (ed eventualmente montare quello nuovo). Per farlo bisogna usare il comando umount /dev/PS0 (usando lo stesso file speciale con cui era stato effettuato il mount)


Da controllare:
La shell di login e' "sh" ma si puo' riassegnare a "tcsh", una shell piu' evoluta, con il comando "chsh". "tcsh" assomiglia a "bash" ma ha alcuni comandi di script diversi, quindi bisognera' scrivere uno script di login modificando opportunamente /etc/profile.