OpSys
BETACopertinaSommarioInternet IDInformazioniBrowserGuida
BETA

Sommario
Internet ID
Indici di BETA
Redazione
Mailing list
Installazione
Mirror ufficiali
Licenza Pubbl. Beta
Cerca
Stampa





BETA sul Web
Beta.it
Menu Settori e sezioni

Jurassic VAX

Sono lì che aspettano, sepolti in oscure cantine, contando uno dopo l'altro polverosi anni. Sono vecchi, sono lenti, sono storia, sono VAX. E' tempo che nei loro circuiti torni a pulsare corrente.

di Francesco Sileno
Articolista, BETA

Questa vuole essere una breve guida di riferimento per i fortunati che sono riusciti a mettere le mani su un VAX, e si stanno tuttavia domandando da che parte guardare il nuovo giocattolo.

Cos'è VAX?

Domanda oziosa. Il VAX è Il calcolatore degli anni '80. Discendente del glorioso PDP-11 nella scala evolutiva DIGITAL, è una macchina 32bit (almeno finchè non andiamo ad esaminare la CPU, che se non erro varia da 20 a 90 bit), la cui sigla sta per Virtual Address eXtension. Eh si, se anche non la prima, è sicuramente stata la macchina che ha reso popolare il concetto di 'memoria virtuale' così come lo intendiamo oggi.
Il primo della serie, il VAX 11/780, vide la luce più o meno nel 1977. Era composto da un paio di frigoriferi (tant'è che qualcuno ce lo ha fatto diventare sul serio: http://condor.lpl.arizona.edu/~vance/vaxbar.html) pesanti svariati chilogrammi. Gli ultimi arrivarono non molto tempo fa, era ancora il 1994.
Oggi si sono evoluti in quelle macchine note come Alpha Station. Già, quell'Alpha su cui state facendo girare NT o Linux (spero vivamente la seconda che ho detto), discende in linea diretta da questi dinosauri.

Il sistema operativo che usavano i VAX era il VMS (Virtual Memory System, non a caso), ancora oggi vivo e vegeto come OpenVMS, usato prevalentemente sugli Alpha, ma ancora compatibile con i VAX. I primi modelli usavano telescriventi elettromeccaniche, anche se erano già in giro i terminali seriali della famiglia VT. Si, i vari VT52, VT100, VT340... sono terminali nati per i VAX. Poi venne l'era delle GUI, e arrivarono i terminali in grado di fare grafica a 1280x1024x8bit, e DECWindows.

Complessivamente, il loro impiego variò da server aziendale ad applicazioni mission-critical a workstation grafica per CAD.

Prima il dovere...

Bene, supponiamo che siate riusciti ad identificare in un VAX quel grosso comodino privo di cassetti.
Come tutte gli apparati elettronici da tempo inutilizzati, è bene procedere con alcune operazioni preliminari prima di premere il Big Red Button. In ordine:

  • dissotterate il vostro VAX, portatelo in un luogo aperto ed areato;
  • smontate tutti i pannelli smontabili, in modo da poter accedere ad ogni recondito angolo del (o dei) case;
  • se la polvere è VERAMENTE tanta, prendere l'aspirapolvere e fate attenzione a non risucchiare qualche parte allentata.
  • munitevi di compressore, e soffiate via ogni minimo granello di polvere. Se riuscite a smontare anche hard disk, schede e quant'altro possa nascondere polvere, meglio. Controllate che tutte le ventole installate siano in grado di muoversi senza ostacoli. I VAX hanno ventole un po' da tutte le parti;
  • con un pennello di media durezza, pulite tutti i connettori rimasti sconnessi, soprattutto quelli di espansione;
  • ora tocca ai connettori e alle schede che per pigrizia avete lasciato montate. Smontatele facendo in modo di ricordarvi dove stavano, e dopo aver pulito col pennello di cui sopra, pulite con gli speciali spray disossidanti per contatti elettronici se appaiono eccessivamente ossidati. Prima di rimontarli, controllate che lo spray sia evaporato. Ripetete l'operazione anche con i connettori dei dischi e nastri, etc.;
  • date una pulita ai pannelli e al case: levate ragnatele e nidi di vespe e se vi riesce levate le tracce di nerume sull'esterno, che sono poco estetiche. Non rimontate i pannelli;
  • lasciatelo riposare in un ambiente asciutto per qualche ora, se non un giorno, a seconda del luogo da dove è stato riesumato. Riacquisterà la temperatura corretta e le varie condense avranno modo di evaporare;
  • anche se siete sicuri del tipo di alimentazione che necessita, controllate! I primi modelli andavano con la trifase, o magari ne avete uno adatto per altre tensioni... non è il caso di farlo esplodere prima del tempo.

Giunti qui, potete attaccare la spina, e premere il Big Red Button. Controllate che tutte le ventole siano partite, o comincerete ad avere molto caldo da lì a poco.
Niente fumo, fiamme e tuoni? Ottimo!

... poi il piacere

Avete un terminale a portata di mano? Bene, se è quello 'fornito' con il VAX, non dovete fare altro che collegarlo. Alcuni VAX usano un connetore MMJ, una specie di RJ a 6 poli con la linguetta spostata da un lato. Altri un connettore DB9 che, ATTENZIONE, non è necessariamente con piedinatura RS232C, bensì per i modelli più vecchi in EIA232:

  1. Protective Ground
  2. Transmited Data
  3. Received Data
  4. Request To Send
  5. Data Terminal Ready
  6. Data Set Ready
  7. Signal Ground
  8. Shorted to pin 9 on 2000 series, otherwise floating
  9. Shorted to pin 8 on 2000 series, otherwise floating

Se invece avete l'MMJ, e NON avete già un adattatore, cominciamo a divertirci. Potete provare ad adattare un RJ a 6 poli telefonico strappandogli la linguetta e limandolo un po', ma non credo che avrete molto successo. Potete provare a cercare presso i vostri rivenditori di materiale elettronico, oppure telefonando alla Digital Italia (http://www.digital.it). Io c'ho provato, dopo il quinto numero che mi informava di dover chiamare un altro numero, ho lasciato perdere.

Ok, questa è la piedinatura dell'MMJ:

  1. Data Terminal Ready (DTR)
  2. Transmit
  3. Transmit Ground
  4. Receive Ground
  5. Receive
  6. Data Set Ready (DSR)

Come potete notare, niente controllo di flusso hardware. Fatevi il vostro bel cavetto, mettendo in comune le due masse e incrociando Trasmit con Receive e DTR con DSR.

Se non avete un terminale a portata di mano, potete sempre usare la porta seriale di un altro PC, usando un emulatore di terminale che sia piuttosto valido con almeno i VT100. Linux non ha problemi con Minicom, per Windows potete provare TeraTerm o Kermit95.
L'impostazione di default per la porta console è 9600, 8N1, niente RTS/CTS, XON/XOFF attivato.

Se il vostro è un MicroVAX o una VaxStation, da qualche parte ci sono uno switch e un commutatore, aventi questo scopo:

  • Switch triangolo nel cerchio - controlla l'autoboot:
    • posizionato sul simbolo del punto dentro il cerchio, disabilita l'auto-boot;
    • posizioneato sul simbolo del punto fuori del cerchio, abilita l'autoboot;
  • Commutatore - controlla il modo di funzionamento della macchina:
    • freccia: funzionamento normale;
    • faccia: modalità interattiva;
    • t in un cerchio: loop self-test infinito;

E forse da qualche parte c'è un altro commutatore per configurare la velocità di comunicazione della porta console, nel disperato caso in cui il terminale recuperato dalla discarica sotto casa non arrivi alla paurosa velocità di 9600 baud.

Accendete terminale e VAX, e osservate il monitor. Se almeno qualcosa funziona, un contdown a partire da 41 (più o meno) appare. Nella serie MicroVAX, da qualche parte c'è un display ad una cifra replicante lo stesso conteggio, che può essere d'aiuto se non appare nulla a schermo. Nel caso questa cifra si fermi prima di arrivare almeno a 3, c'è qualcosa che non va nel POST del VAX, compresa la connessione della console. Purtroppo ignoro il significato di tali cifre. Se si ferma a 3, ci sono buone probabilità che il primo switch sia configurato per non fare l'autoboot, o che non ci sia nessuna unità di boot predefinita, e il VAX vi sta chiedendo da dove partire.

Se il VAX non è stato configurato per fare in automatico il boot, vi apparirà questo prompt: '>>>'. Provate con 'SHOW DEVICE', e dopo aver identificato un device promettente 'BOOT <device>'. I nomi dei device sono composti da tre lettere e un numero. Le prime due lettere dicono di che tipo di device si tratta (quale HD, quale nastro, etc...), la terza lettera su quale controller è installato, il numero è per distinguere unità uguali sullo stesso controller. Ad esempio, il nostro MicroVAX 3400 ha DIA0: e DIA1:, due HD sul controller A. DIA0: è quello da cui fare il boot. A titolo di esempio, ecco cosa appare sulla console del nostro MicroVAX 3400 con su installato VMS 5.3 subito dopo l'accensione:

KA640-A V5.3, VMB 2.7
Performing normal system tests.
41..40..39..38..37..36..35..34..33..32..31..30..29..28..27..26..
25..24..23..22..21..20..19..18..17..16..15..14..13..12..11..10..
09..08..07..06..05..04..03..
Tests completed.
>>>show device
DSSI Node 0 (R7FZYC)
-DIA0 (RF71)

DSSI Node 1 (R7X0FE)
-DIA1 (RF71)

DSSI Node 7 (*)

UQSSP Tape Controller 0 (774500)
-MUA0 (TK70)

UQSSP Tape Controller 1 (760404)
-MUB0 (TU81)

Ethernet Adapter
-ESA0 (08-00-2B-13-B5-44)

>>>boot dia0
(BOOT/R5:0 DIA0)



  2..
-R7FZYC$DIA0
  1..0..


   VAX/VMS Version V5.3     Major version id = 1 Minor version id = 0

PLEASE ENTER DATE AND TIME (DD-MMM-YYYY  HH:MM)  10-AUG-1998
$! Copyright (c) 1989 Digital Equipment Corporation.  All rights reserved.

%SET-I-NEWAUDSRV, identification of new audit server process is 00000108
%LICENSE-I-LOADED, DEC DVNETEND was successfully loaded with 230 units
%LICENSE-I-LOADED, DEC FORTRAN was successfully loaded with 100 units
%LICENSE-I-LOADED, DEC VAX-VMS was successfully loaded with 1000 units
%%%%%%%%%%%  OPCOM  10-AUG-1998 09:56:31.08  %%%%%%%%%%%
Operator _OPA0: has been enabled, username SYSTEM

%%%%%%%%%%%  OPCOM  10-AUG-1998 09:56:31.58  %%%%%%%%%%%
Operator status for operator _OPA0:
CENTRAL, PRINTER, TAPES, DISKS, DEVICES, CARDS, NETWORK, CLUSTER, SECURITY,
LICENSE, OPER1, OPER2, OPER3, OPER4, OPER5, OPER6, OPER7, OPER8, OPER9, 
OPER10, OPER11, OPER12

%%%%%%%%%%%  OPCOM  10-AUG-1998 09:56:32.58  %%%%%%%%%%%
Logfile has been initialized by operator _OPA0:
Logfile is SYS$SYSROOT:[SYSMGR]OPERATOR.LOG;174

%%%%%%%%%%%  OPCOM  10-AUG-1998 09:56:32.59  %%%%%%%%%%%
Operator status for operator SYS$SYSROOT:[SYSMGR]OPERATOR.LOG;174
CENTRAL, PRINTER, TAPES, DISKS, DEVICES, CARDS, NETWORK, CLUSTER, SECURITY,
LICENSE, OPER1, OPER2, OPER3, OPER4, OPER5, OPER6, OPER7, OPER8, OPER9, 
OPER10, OPER11, OPER12

%SET-I-INTSET, login interactive limit = 8, current interactive value = 0
  10-AUG-1998 09:56:34
  SYSTEM       job terminated at 10-AUG-1998 09:56:36.03

  Accounting information:
  Buffered I/O count:          682      Peak working set size:   662
  Direct I/O count:            374      Peak page file size:    3003
  Page faults:                4814      Mounted volumes:           0
  Charged CPU time:     0 00:00:24.15   Elapsed time:     0 00:00:49.99

Username:

Qualche minuto, ed ecco la login.
La sapete la password del SUPERUSER, che in VMS è SYSTEM, (in effetti, non è detto che ci sia solo lui, ma in genere è quello che ha tutti i privilegi. Non è esattamente come root di Unix, ma non sottiliziamo) vero? No?
Non disperate, c'è un modo per risolvere anche questo problema:

  • effettuate l'HALT del VAX. Lo fate o con l'apposito bottone sul pannello frontale, o con <CTRL-P> o <BREAK> da console.
  • Al prompt '>>>', provate con uno di questi comandi:
    • B/1
    • B/R5:1
    • @GENBOO
  • dovreste arrivare al prompt 'SYSBOOT>'. Ora, in sequenza:
    • SET/STARTUP OPA0:
    • SET WRITESYSPARAMS 0
    • CONTINUE avete istruito così il VAX ad accettare da console i comandi di startup.
  • ora siete arrivati al prompt '$'.
    • SPAWN
    • @SYS$SYSTEM:STARTUP lanciate in background l'equivalente degli script di init di Unix.
  • adesso il sistema ha fatto il boot, e voi vi trovate magicamente con la shell di amministratore. Manca poco.
    • SET DEFAULT SYS$SYSTEM:
    • RUN SYS$SYSTEM:AUTHORIZE
    • MODIFY SYSTEM /PASSWORD=<newpassword>
    • EXIT

Et voilà, la password è cambiata!

DCL

La shell del VMS, Digital Command Line. Tanto per ribadire di chi è tutta questa roba.
Mi pare di capire che, come in Unix, si possano usare shell alternative. Ma, a differenza di Unix, non c'è stato un gran proliferare di varianti. Ecco come sono organizzati i file su un filesystem del VMS:

nodo"nome password"::device:[directory]nomefile.estensione;versione

'nodo' e 'nome password' sono necessari solo per referenziare file in ambiente DECnet.
'device', un po' come per il C: del dos, indica l'unità fisica. 'directory', che all'inizio lasciano un po' perpelssi. Lo '/' di Unix, qui e' '.', la directory precedente non è '..' ma '-', la root directory di un unita' è [000000].
Ogni file poi, ha una versione. Ogni volta che ne modificate uno, ne create in realta' un altro con lo stesso nome ma con numero di versione maggiore.
Come in Unix ci sono gli alias per i comandi, in VMS ci sono i logical name per i device e le directory... ce ne sono veramente tanti, ci vuole un po' per districarcisi in mezzo. Per cui, la home directory che potrebbe essere qualcosa come DKA1$USER:[PROJECTX.CTHULHU] diventa semplicemente SYS$LOGIN.
Gli eseguibili sono di tre tipi:

  • immagini binarie, con estensione EXE. Si lanciano col comando RUN.
  • file di comandi, con estensione COM. Si avviano anteponendo @ al nome del file.
  • comandi di sistema. Sono in realtà una degli EXE 'promossi', si lanciano senza alcun prefisso.

Una semplice corrispondenza tra comandi *nix e VMS:

*nix VMS
mountn.a. - set def <unit-name>:
cdset def SYS$LOGIN
cd <dir>set def [<dir>]
cd ..set def [-]
lsdir
cattype
rmdel
mkdircreate/dir
finddir [...]
grepsearch
manhelp

Ulteriori informazioni potete trovare nei links segnalati alla fine dell'articolo, o anche solo consultando l'HELP in linea di VMS. Non che sia paragonabile alle man pages di Unix, ma è indubbiamente d'aiuto.

E ora che ci faccio?

Oh beh, quello che vi pare. C'e' un bel po' di roba in giro per VMS. Prima però c'e' un problema: la licenza. Digital era tristemente nota per i suoi particolari contratti di assistenza e licenze, decisamente costose. Questo è uno dei motivi per cui molti hanno abbandonato i VAX appena possibile.
Vista la grande quantità di resuscitati per uso hobbistico, è stata però creata una licenza gratuita, ristretta all'uso di cui sopra. Ecco come ottenerla:

In giro per la rete ci sono un sacco di archivi free per VMS, comprensivi di uno stack TCP/IP e server WEB. Anche su CD. Se vi serve un kit di installazione di OpenVMS (si installa anche sulle macchine che prima usavano VMS, ed è perfettamente compatibile), a http://www.montagar.com/hobbyist/, per soli 30$ vi prendete un CD con dentro:

  • OpenVMS V6.1 Stand-alone Backup
  • OpenVMS V6.1 Distribution
  • OpenVMS V6.1 On-Line Documentation (Bookreader)
  • DECWindows V6.1 Distribution
  • OpenVMS V5.5 Distribution + V5.5-2 update
  • DECWindows V5.5 Distribution
  • BLISS-32 V4.7, plus license PAK
  • SDL - Symbol Definition Language
  • ZIP and UNZIP for OpenVMS VAX
  • Carnegie-Mellon University TCP/IP V6.6
  • Games (VT and X-Window)
  • ..and more!

Può darsi che vi venga il dubbio di cosa farci col CD, se il vostro VAX ha solo l'unità a nastro. Nei newsgroup dedicati c'è chi si offre di portare su nastro l'installazione di OpenVMS, in ogni caso non crediate di poter leggere i CD del VMS con un qualsiasi altro sistema operativo: non sono ISO9660.

Un problema interessante che si pone tuttora è come importare file binari sul VAX non disponendo del CD, ne di accesso TCP/IP. Tra le idee geniali ma impraticabili:

  • usare Linux come console, importare file uuencodati. Ma VAX non ha uuencode installato, si deve prima trovare un sorgente. E forse l'unico compilatore installato per default su un VAX è quello assembly (e non ne sono neanche troppo sicuro).
  • per Z/XModem, stesso discorso.
  • usare DECnet per Linux, ma pare che se non si ha la licenza installata, DECnet non si attiva correttamente sul VAX.

Non nego di essere in grossa crisi.

Conclusioni

Tuttora VMS viene considerato uno dei sistemi più sicuri e robusti presenti in circolazione, molti software vi sono stati portati (c'è vi e lynx, che altro serve?). Può servire da macchina per shell account, come server web interno, ftp server, o anche solo BBS. Potete dare una mano a chi vuole portarci su Linux , anche se, pur essendo uno di quelli che vorrebbe Linux su qualsiasi cosa in grado di maneggiare bit, avrei l'impressione di commettere sacrilegio.

Anche se è danneggiato, ha preso fuoco o che so io, prima di buttarlo mettete qualche annuncio su un paio di newsgroup. Magari qualcuno cerca dei pezzi per farne partire un altro.

Se proprio poi non sapete più che farci, io son qui.

Riferimenti

http://www.openvms.digital.com/openvms/20th/vmsbook.pdf
Documento celebrativo per il ventesimo compleanno del VMS, 2.5MB circa.

http://web.tin.it/decus/
Decus Italia Home Page

http://www.montagar.com/hobbyist/
The OpenVMS Hobbyist - Media KIT su CD

http://www.digital.com/software-catalogue/hobbyist/ Digital Hobbyist Order Form

http://www.openvms.digital.com/
DIGITAL OpenVMS Systems

http://www.help-site.com/vax/
HELP-SITE.COM Computer Help [VAX/VMS]

http://www.pandh.demon.co.uk/decnet/
DECnet for Linux

news://comp.os.vms
Newsgroup per il VMS. Inglese. Trovate aiuto per qualsiasi cosa inerente i VAX.

Clicca qui per maggiori informazioni


Francesco Sileno è Articolista di BETA dal 1996; sistemista Unix, programmatore poliglotte; è raggiungibile su Internet tramite la redazione oppure all'indirizzo francesco@beta.it.

Copyright © 1998 Francesco Sileno, tutti i diritti sono riservati. Questo Articolo di BETA, insieme alla Rivista, è distribuibile secondo i termini e le condizioni della Licenza Pubblica Beta, come specificato nel file LPB.


BETA Rivista | Copertina | Sommario | InternetID | Informazioni | Browser
BETA Sul Web: http://www.beta.it

Copertina Sommario Internet ID Informazioni Browser
Home Page BETA Rivista Indice Articoli Beta Editore, articoli e pubblicazioni Beta2, contributi esterni BETA Logo, siti premiati Premio BETA Logo Licenza Article/Document Definition Format Promozione Pubblicita' Mirroring Mirror Ufficiali BETA Navigatore NavSearch Novità BETA Stampa/Press Releases BETA Settori online Eventi Public books (libreria) Settori riservati Redazione