[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home] [volume] [parte]


Capitolo 829.   2.11BSD

Questo capitolo descrive un procedimento per installare 2.11BSD in un PDP-11 simulato attraverso SIMH, utilizzato a sua volta in un sistema GNU/Linux.

La lettura di questo capitolo è utile solo dopo quella della guida originale di Steven Schultz, Installing and operating 2.11BSD on the PDP-11, che può essere ottenuta dall'indirizzo <http://minnie.tuhs.org/PUPS/Setup/2.11bsd_setup.pdf>.

I file usati per l'installazione descritta in questo capitolo provengono da <http://www.tuhs.org/Archive/PDP-11/Distributions/ucb/2.11BSD/>. Eventualmente è disponibile anche una forma diversa della stessa distribuzione che parte direttamente da un file-immagine del disco contenente il file system principale, con tutto ciò che serve, già pronto per SIMH: <http://www.tuhs.org/Archive/PDP-11/Boot_Images/2.11_on_Simh/>.

829.1   Preparazione del nastro virtuale

Tra i file che compongono la distribuzione, quelli che servono per costruire il nastro di installazione sono i seguenti:

File Descrizione
mtboot Contiene il settore di avvio da usare con il nastro.
boot Contiene il programma di avvio per la gestione iniziale del nastro.
disklabel Contiene il programma, da avviare attraverso il nastro, usato per suddividere i dischi in partizioni.
mkfs Contiene il programma, da avviare attraverso il nastro, con il quale inizializzare le partizioni dei dischi.
restore Contiene il programma, da avviare attraverso il nastro, con il quale è possibile recuperare i dati archiviati con dump.
icheck Contiene il programma, da avviare attraverso il nastro, per il controllo del file system di una partizione.
root.dump Contiene l'archivio del file system principale, da estrarre con restor.
file6.tar.gz Contiene l'archivio di quanto si articola a partire da /usr/.
file7.tar.gz Contiene l'archivio di quanto si articola a partire da /usr/src/.
file8.tar.gz Contiene l'archivio di altro materiale che si articola sempre a partire da /usr/src/.

I tre file con estensione .tar.gz vanno decompressi:

GNU/Linux gunzip file*.tar.gz[Invio]

I primi due file vanno combinati assieme, in modo da formare un solo file organizzato nel modo seguente:

mtboot 512 byte
mtboot 512 byte
boot 35 328 byte

In pratica, essendo i file più corti delle dimensioni indicate, vanno completati con byte a zero; inoltre, come si vede, il settore di avvio va duplicato. Si procede nel modo seguente per aggiustare la dimensione del primo file:

GNU/Linux dd if=mkboot count=1 bs=512 conv=sync of=mtboot.sync[Invio]

Con il comando appena mostrato si ottiene il file mkboot.sync che completa la dimensione di 512 byte, come richiesto per il concatenamento. Il comando successivo predispone il file di avvio da collocare nella prima posizione del nastro:

GNU/Linux cat mkboot.sync mkboot.sync boot > avvio[Invio]

Si può quindi procedere alla preparazione del nastro virtuale, tenendo conto della dimensione dei settori prevista dalla documentazione originale, utilizzando i programmi descritti nel capitolo 828:

GNU/Linux convert_file_to_simh_tape 512 < avvio > tm11_0.tap[Invio]

GNU/Linux convert_file_to_simh_tape 1024 < disklabel >> tm11_0.tap[Invio]

GNU/Linux convert_file_to_simh_tape 1024 < mkfs >> tm11_0.tap[Invio]

GNU/Linux convert_file_to_simh_tape 1024 < restor >> tm11_0.tap[Invio]

GNU/Linux convert_file_to_simh_tape 1024 < icheck >> tm11_0.tap[Invio]

GNU/Linux convert_file_to_simh_tape 10240 < root.dump >> tm11_0.tap[Invio]

GNU/Linux convert_file_to_simh_tape 10240 < file6.tar >> tm11_0.tap[Invio]

GNU/Linux convert_file_to_simh_tape 10240 < file7.tar >> tm11_0.tap[Invio]

GNU/Linux convert_file_to_simh_tape 10240 < file8.tar >> tm11_0.tap[Invio](1)

Con gli strumenti di SIMH è possibile controllare il contenuto del nastro virtuale generato:

GNU/Linux mtdump tm11_0.tap[Invio]

829.2   Configurazione iniziale del simulatore e avvio

Si decide di simulare un PDP-11/44 del 1979, con solo 1 Mibyte di memoria centrale (il minimo per poter utilizzare 2.11BSD), con due unità a nastro connesse a un'unità di controllo TM11 (se si volesse usare l'unità TS11 si potrebbe gestire un solo nastro) e con un disco MSCP RA82 di dimensione inusuale: 200 000 000 byte. Un disco così capiente consente di installare tutto in una sola partizione, senza bisogno di innestarne altri.

Il file-immagine del disco deve essere creato prima di avviare il simulatore:

GNU/Linux dd if=/dev/zero of=ra82_0.dsk bs=1000000 count=200[Invio]

Così facendo viene creato il file ra82_0.dsk. Nella simulazione vengono usati inoltre i file tm11_0.tap, creato precedentemente con il necessario per procedere all'installazione del sistema, e tm11_1.tap, il cui scopo è quello di disporre di un'unità ulteriore per archiviare dati mentre si usa 2.11BSD nel simulatore. Il file-immagine del secondo nastro non va predisposto, perché viene creato contestualmente al suo utilizzo.

L'ultima fase prima dell'avvio del simulatore consiste nel predisporre uno script con la configurazione desiderata della simulazione:

;
; PDP-11/44 (1979) with only 1 Mibyte RAM memory.
;
SET    CPU  11/44
SET    CPU  1024K
SHOW   CPU
;
; Devices that might be disabled.
;
;SET    RK   DISABLE
;SET    HK   DISABLE
;SET    TC   DISABLE
;SET    TS   DISABLE
;
; TM11 tape simulator.
;
SET    TM   ENABLED
SET    TM0  LOCKED
ATTACH TM0  tm11_0.tap
SHOW   TM0
;
SET    TM1  WRITEENABLED
ATTACH TM1  tm11_1.tap
SHOW   TM1
;
; MSCP disk.
; The actual disk has an unusual size: 200000000 byte
;
SET    RQ   ENABLED
SET    RQ0  RAUSER=200
ATTACH RQ0  ra82_0.dsk
SHOW   RQ0
;
; Should boot manually.
;

Supponendo che questo file si chiami simh.ini, si può avviare il simulatore nel modo seguente:

GNU/Linux pdp11 simh.ini[Invio]

PDP-11 simulator V3.5-1
Disabling XQ
CPU, 11/44, FPP, NOCIS, autoconfiguration on, 1024KB
TM0, attached to tm11_0.tap, write locked, SIMH format
TM: creating new file
TM1, attached to tm11_1.tap, write enabled, SIMH format
RQ0, 200MB, attached to ra82_0.dsk, write enabled, RAUSER

Lo script non contiene l'istruzione di avvio (BOOT) che così deve essere data a mano. Ciò consente di verificare la correttezza della configurazione dai messaggi che si ottengono. Dall'invito del simulatore si può dare il comando di avvio attraverso il nastro contenente la distribuzione:

SIMH sim> BOOT TM0[Invio]

44Boot from tm(0,0,0) at 0172522

tape boot 

Il programma di avvio contenuto nel primo file del nastro viene eseguito e si presenta così un altro invito (i due punti), dove va scritto quale programma eseguire (quale file eseguire) all'interno del nastro.

829.3   Preparazione delle partizioni

Dall'invito del programma di avvio della distribuzione occorre iniziare selezionando il programma che consente di predisporre le partizioni all'interno del disco virtuale. Questo programma (disklabel) si trova nel secondo file del nastro (è il secondo in base alla procedura descritta per la preparazione di tale nastro); pertanto si avvia così:

tape boot tm(0,1)[Invio](2)

Boot: bootdev=0401 bootscr=0172522
disklabel

disklabel Disk? 

A questo punto appare l'invito di disklabel, dal quale è necessario inserire le coordinate del disco che si vuole suddividere in partizioni. In questo caso, si tratta di un'unità «ra», pertanto si usa la sigla ra(0,0):

disklabel Disk? ra(0,0)[Invio]

'ra(0,0)' is unlabeled or the label is corrupt.

disklabel Proceed? [y/n] y

disklabel d(isplay) D(efault) m(odify) w(rite) q(uit)? y

Si comincia visualizzando la situazione, per poter calcolare la posizione delle partizioni:

disklabel d(isplay) D(efault) m(odify) w(rite) q(uit)? d

type: MSCP
disk: RA82
label: DEFAULT
flags:
bytes/sector: 512
sectors/track: 57
tracks/cylinder: 15
sectors/cylinder: 855
cylinders: 457
rpm: 3600
drivedata: 0 0 0 0 0

1 partitions:
#  size    offset  fstype   [fsize bsize]
a: 390800  0       2.11BSD   1024  1024    # (Cyl. 0 - 457*)

La partizione a: viene creata automaticamente, ma va modificata perché le dimensioni non sono corrette e perché occorre comunque una partizione per lo scambio della memoria virtuale.

In base alla geometria del disco, sono disponibili 457 cilindri contenenti 855 settori da 512 byte; pertanto, ogni cilindro ha una capacità di 437 760 byte. 2.11BSD può utilizzare una sola partizione per lo scambio della memoria virtuale, al massimo da 32 Mibyte; pertanto, si possono utilizzare al massimo 76 cilindri per questo fine, pari a 64 980 settori, mentre i restanti 381 cilindri, pari a 325 755 settori, vanno usati per il file system:

disklabel d(isplay) D(efault) m(odify) w(rite) q(uit)? m

modify

disklabel d(isplay) g(eometry) m(isc) p(artitions) q(uit)? p

modify partitions

disklabel d(isplay) n(umber) s(elect) q(uit)? s

disklabel a b c d e f g h q(uit)? a

sizes and offsets may be given as sectors, cylinders
or cylinders plus sectors:  6200, 32c, 19c10s respectively
modify partition 'a'

disklabel d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? t

disklabel 'a' fstype [2.11BSD]: 2.11BSD[Invio]

modify partition 'a'

disklabel d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? o

disklabel 'a' offset [0]: 0[Invio](3)

modify partition 'a'

disklabel d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? s

disklabel 'a' size [390800]: 325755[Invio](4)

modify partition 'a'

disklabel d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? f

disklabel 'a' frags/fs-block [1]: 1[Invio]

modify partition 'a'

disklabel d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? F

disklabel 'a' frag size [1024]: 1024[Invio]

modify partition 'a'

disklabel d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? q

modify partitions

Termina così la configurazione della partizione a:. Si può passare a b:, che deve essere usata per lo scambio della memoria virtuale.

disklabel d(isplay) n(umber) s(elect) q(uit)? s

disklabel a b c d e f g h q(uit)? b

sizes and offsets may be given as sectors, cylinders
or cylinders plus sectors:  6200, 32c, 19c10s respectively
modify partition 'b'

disklabel d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? t

disklabel 'b' fstype [unused]: swap[Invio](5)

modify partition 'b'

disklabel d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? o

disklabel 'b' offset [0]: 325755[Invio](6)

modify partition 'b'

disklabel d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? s

disklabel 'b' size [0]: 64980[Invio]

modify partition 'b'

disklabel d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? f

disklabel 'b' frags/fs-block [1]: 1[Invio]

modify partition 'b'

disklabel d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? F

disklabel 'b' frag size [1024]: 1024[Invio]

modify partition 'b'

disklabel d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? q

modify partitions

Termina anche la configurazione della partizione b: e si deve controllare che i dati inseriti siano coerenti, soprattutto che non ci siano accavallamenti tra le due partizioni.

disklabel d(isplay) n(umber) s(elect) q(uit)? d

type: MSCP
disk: RA82
label: DEFAULT
flags:
bytes/sector: 512
sectors/track: 57
tracks/cylinder: 15
sectors/cylinder: 855
cylinders: 457
rpm: 3600
drivedata: 0 0 0 0 0

2 partitions:
#  size    offset  fstype   [fsize bsize]
a: 325755  0       2.11BSD   1024 1024     # (Cyl. 0 - 380)
b: 64980   325755  swap                    # (Cyl. 381 - 456)

modify partitions

Si può procedere quindi con la partizione c:, il cui scopo è solo quello di descrivere lo spazio usato complessivamente dalle altre due partizioni.

disklabel d(isplay) n(umber) s(elect) q(uit)? s

disklabel a b c d e f g h q(uit)? c

sizes and offsets may be given as sectors, cylinders
or cylinders plus sectors:  6200, 32c, 19c10s respectively
modify partition 'c'

disklabel d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? o

disklabel 'c' offset [0]: 0[Invio]

modify partition 'c'

disklabel d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? s

disklabel 'c' size [0]: 390735[Invio]

modify partition 'c'

disklabel d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? q

modify partitions

Si controlla ulteriormente la situazione:

disklabel d(isplay) n(umber) s(elect) q(uit)? d

type: MSCP
disk: RA82
label: DEFAULT
flags:
bytes/sector: 512
sectors/track: 57
tracks/cylinder: 15
sectors/cylinder: 855
cylinders: 457
rpm: 3600
drivedata: 0 0 0 0 0

2 partitions:
#  size    offset  fstype   [fsize bsize]
a: 325755  0       2.11BSD   1024 1024     # (Cyl. 0 - 380)
b: 64980   325755  swap                    # (Cyl. 381 - 456)
c: 390735  0       unused    1024 1024     # (Cyl. 0 - 456)

modify partitions

A questo punto si può concludere confermando la suddivisione stabilita:

disklabel d(isplay) n(umber) s(elect) q(uit)? q

disklabel d(isplay) D(efault) m(odify) w(rite) q(uit)? w

disklabel d(isplay) D(efault) m(odify) w(rite) q(uit)? q

Si ritorna così sotto il controllo del programma di gestione del nastro:

44Boot from tm(0,0,1) at 0172522

tape boot 

829.4   Inizializzazione del file system

Il programma che serve a inizializzare il file system nella prima partizione del disco si trova nel terzo file del nastro. Il programma in question è mkfs:

tape boot tm(0,2)[Invio]

Boot: bootdev=0402 bootcsr=0172522
Mkfs

mkfs file system: ra(0,0)[Invio]

Si osservi che le coordinate ra(0,0) rappresentano precisamente la prima partizione del disco. Viene proposta la dimensione del file system, che è corretta, perché si riferisce a unità da 1 024 byte (si perde un settore, perché la partizione ne è composta da una quantità dispari).

mkfs file sys size [162877]: [Invio]

Si conferma anche la dimensione degli inode:

mkfs bytes per inode [4096]: [Invio]

Per quanto riguarda la sequenza dei settori nel disco, trattandosi di una simulazione in un file, non serve a nulla che questi siano alternati, pertanto si evita tale accorgimento:

mkfs interleaving factor (m; 2 default): 1[Invio]

mkfs interleaving modulus (n; 427 default): 1[Invio]

m/n = 1 1
Exit called
44Boot from tm(0,0,2) at 0172522

tape boot 

Terminata l'inizializzazione, si può fare la verifica del file system con il programma icheck che si trova nel quinto file del nastro:

tape boot tm(0,4)[Invio]

Boot: bootdev=0404 bootcsr=0172522
Icheck

icheck File: ra(0,0)[Invio]

ra(0,0):
Not enough core; duplicates unchecked
files 3 (r=1,d=2,b=0,c=0,l=0,s=0)
used 2 (i=0,ii=0,iii=0,d=2)
free 160328

44Boot from tm(0,0,4) at 0172522

tape boot 

829.5   Copia dei file principali e primo avvio del sistema

Il nastro contiene quattro file separati da cui estrarre il contenuto del sistema operativo. Il primo, collocato nella sesta posizione del nastro, è un archivio ottenuto con il programma dump e contiene i file principali indispensabili per l'avvio di un sistema minimo; il secondo, collocato nella settima posizione, contiene ciò che va installato a partire dalla directory /usr/; il terzo, collocato nell'ottava posizione, contiene i sorgenti del kernel da installare a partire da /usr/src/; infine, il quarto, collocato nella nona posizione, contiene gli altri sorgenti disponibili e va installato sempre a partire da /usr/src/.

Si comincia con il ripristino dei file principali; poi, le operazioni successive si devono svolgere con il sistema avviato regolarmente.

tape boot tm(0,3)[Invio]

Viene caricato il programma per il ripristino dei dati archiviati: restore.

Boot: bootdev=0403 bootcsr=0172522
Restor

restor Tape?: tm(0,5)[Invio]

restor Disk?: ra(0,0)[Invio]

restor Last chance before scribbling on disk. [Invio]

End of tape
44Boot from tm(0,0,3) at 0172522

tape boot 

A questo punto si può avviare il sistema minimo appena installato, per poi proseguire con le altre fasi di copia della distribuzione.

tape boot ra(0,0)unix[Invio]

Quanto appena scritto indica di avviare il file unix che si trova nella directory radice del file system collocato nella prima partizione del primo disco. Il file unix è quindi il kernel del sistema.

Boot: bootdev=02400 bootcsr=0172150

2.11 BSD UNIX #115: Sat Apr 22 19:07:25 PDT 2000
sms1@curly.2bsd.com:/usr/src/sys/GENERIC

ra0: Ver 3 mod 6
ra0: RA82  size=390800

phys mem  = 1048576
avail mem = 824640
user mem  = 307200

June  8 21:21:24 init: configure system

hk 0 csr 177440 vector 210 attached
ht ? csr 172440 vector 224 skipped:  No CSR.
ra 0 csr 172150 vector 154 vectorset attached
rl 0 csr 174400 vector 160 attached
tm 0 csr 172520 vector 224 attached
tms 0 csr 174500 vector 260 vectorset attached
ts ? csr 172520 vector 224 interrupt vector already in use.
xp 0 csr 176700 vector 254 attached
erase, kill ^U, intr ^C

A questo punto appare l'invito del sistema operativo e si deve procedere con l'installazione degli altri archivi. È da osservare che il primo nastro magnetico viene individuato dal file di dispositivo /dev/rmt12 (ed eventualmente il secondo corrisponde a /dev/rmt13), mentre le partizioni x: corrispondono ai file di dispositivo /dev/rra0x. Ma occorre prima accertarsi che i file di dispositivo siano quelli adatti all'hardware scelto.

829.6   Sistemazione dell'avvio dal disco

Per il momento, il sistema è stato avviato con l'aiuto del programma di gestione del nastro. In un secondo momento, il nastro può essere usato ancora per avviare il disco, ma se è possibile, è meglio sistemare il programma di avvio all'inizio del disco:

2.11BSD cd /mdec[Invio]

2.11BSD ls -l[Invio]

total 14
-r--r--r--  1 root          512 Dec  5  1995 bruboot
-r--r--r--  1 root          512 Dec  5  1995 dvhpuboot
-r--r--r--  1 root          512 Dec  5  1995 hkuboot
-r--r--r--  1 root          512 Dec  5  1995 hpuboot
-r--r--r--  1 root          512 Dec  5  1995 rauboot
-r--r--r--  1 root          512 Dec  5  1995 rkuboot
-r--r--r--  1 root          512 Dec  5  1995 rluboot
-r--r--r--  1 root          512 Dec  5  1995 rm03uboot
-r--r--r--  1 root          512 Dec  5  1995 rm05uboot
-r--r--r--  1 root          512 Dec  5  1995 rx01uboot
-r--r--r--  1 root          512 Dec  5  1995 rx02uboot
-r--r--r--  1 root          512 Dec  5  1995 si51uboot
-r--r--r--  1 root          512 Dec  5  1995 si94uboot
-r--r--r--  1 root          512 Dec  5  1995 si95uboot

Dei programmi contenuti nella directory /mdec/ occorre scegliere quello adatto al tipo di disco che si utilizza. In questo caso, si deve scegliere il file rauboot. Il file, della dimensione di un solo settore, va copiato con l'aiuto di dd, all'inizio della prima partizione:

2.11BSD dd if=/mdec/rauboot of=/dev/rra0a count=1[Invio]

1+0 records in
1+0 records out

A questo punto conviene verificare che l'operazione abbia avuto successo, arrestando il sistema (quello installato nell'hardware simulato con SIMH):

2.11BSD shutdown -h now[Invio]

Shutdown at 18:02 (in 0 minutes) [pid 16]
#
System shutdown time has arrived
syncing disks... done
halting

HALT instruction, PC: 000014 (MOV #1,17406)

A questo punto si ritorna sotto il controllo di SIMH e si può tentare di avviare il sistema operativo direttamente dal disco:

SIMH sim> BOOT RQ0[Invio]

Si osservi che per SIMH, la sigla RQ0 rappresenta il primo disco simulato, in base alla scelta dell'hardware fatta in precedenza.

44Boot from ra(0,0,0) at 0172150

disk boot ra(0,0)unix[Invio]

Boot: bootdev=02400 bootcsr=0172150

2.11 BSD UNIX #115: Sat Apr 22 19:07:25 PDT 2000
sms1@curly.2bsd.com:/usr/src/sys/GENERIC

ra0: Ver 3 mod 6
ra0: RA82  size=390800

phys mem  = 1048576
avail mem = 824640
user mem  = 307200

hk 0 csr 177440 vector 210 attached
ht ? csr 172440 vector 224 skipped:  No CSR.
ra 0 csr 172150 vector 154 vectorset attached
rl 0 csr 174400 vector 160 attached
tm 0 csr 172520 vector 224 attached
tms 0 csr 174500 vector 260 vectorset attached
ts ? csr 172520 vector 224 interrupt vector already in use.
xp 0 csr 176700 vector 254 attached
erase, kill ^U, intr ^C

2.11BSD 

829.7   Predisposizione dei file di dispositivo e conclusione dell'installazione

Nella directory /dev/ occorre eliminare i file di dispositivo riferiti alle unità a nastro, per ricrearli in base alle caratteristiche del tipo di nastro simulato effettivamente:

2.11BSD cd /dev[Invio]

2.11BSD rm *mt*[Invio]

2.11BSD ./MAKEDEV tm0[Invio](7)

2.11BSD sync[Invio]

A questo punto, si può procedere con il recupero degli archivi rimasti.

2.11BSD cd /usr[Invio]

Si riavvolge il nastro:

2.11BSD mt -f /dev/rmt12 rew[Invio]

Si posiziona il nastro all'inizio della settima posizione:

2.11BSD mt -f /dev/rmt12 fsf 6[Invio]

Si estrae l'archivio a partire dalla directory corrente:

2.11BSD tar xpbf 20 /dev/rmt12[Invio]

Si procede in modo analogo per gli altri archivi.

2.11BSD mkdir /usr/src[Invio]

2.11BSD cd /usr/src[Invio]

In questo caso basta portare il nastro all'inizio del file successivo:

2.11BSD mt -f /dev/rmt12 fsf[Invio]

2.11BSD tar xpbf 20 /dev/rmt12[Invio]

Dopo aver estratto i sorgenti del kernel, occorre sistemare un collegamento simbolico:

2.11BSD cd /[Invio]

2.11BSD rm -f /sys[Invio]

2.11BSD ln -s usr/src/sys /sys[Invio]

L'ultimo archivio da estrarre nella stessa directory /usr/src/:

2.11BSD cd /usr/src[Invio]

2.11BSD mt -f /dev/rmt12 fsf[Invio]

2.11BSD tar xpbf 20 /dev/rmt12[Invio]

829.8   Sistemare la data

Se si verifica la data, si può osservare che questa riporta l'anno 1995 e se si usa il comando date, è possibile indicare solo le ultime due cifre dell'anno. Per risolvere il problema occorre un piccolo raggiro: prima si regola la data un secondo prima della mezzanotte del 1999, poi, passati al 2000, si può regolare l'ora in modo corretto:

2.11BSD date[Invio]

Fri Jun  9 11:52:39 PDT 1995

2.11BSD date 9912312359.59[Invio]

Fri Dec 31 23:59:59 PST 1999

2.11BSD date[Invio]

Sat Jan  1 00:00:44 PST 2000

2.11BSD date 0702041821[Invio]

Sun Feb  4 18:21:00 PST 2007

Si osservi che quando il sistema operativo (nell'hardware simulato) viene arrestato, l'orologio viene salvato e al riavvio successivo riprende da quel orario. Pertanto, a ogni riavvio occorre sistemare l'orologio.

2.11BSD shutdown -h now[Invio]

829.9   Riferimenti


1) Rispetto alla documentazione originale, il file file8.tar viene inserito in coda al nastro principale, senza bisogno di creare un secondo nastro apposito. Nella realtà ciò non sarebbe possibile, per via della capacità limitata del nastro stesso.

2) La sigla tm va utilizzata in quanto si tratta di un nastro di un'unità a nastro di tipo TM11; se fosse un nastro TS11, va usata probabilmente la sigla ts, come descritto nella documentazione di 2.11BSD.

3) La partizione a: deve iniziare a partire dal primo settore disponibile del disco, altrimenti non è possibile avviare poi il sistema operativo.

4) La dimensione viene data in settori e la si cambia in base ai calcoli effettuati precedentemente.

5) Si osservi che è obbligatorio dare il nome swap alla partizione usata per lo scambio della memoria virtuale.

6) La partizione b: deve cominciare a partire dal settore successivo a quello della partizione a:. Dal momento che la partizione a: è composta da 325 755 settori, contando a partire da zero, l'ultimo settore della prima partizione è il numero 325 754, pertanto il successivo, che inizia la partizione b: è il numero 325 755.

7) La sigla tm0 fa riferimento alle unità TM11.


Appunti di informatica libera 2008 --- Copyright © 2000-2008 Daniele Giacomini -- <appunti2 (ad) gmail·com>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome 2_11bsd.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home]

Valid ISO-HTML!

CSS validator!

Gjlg Metamotore e Web Directory