Project Pi-3000

By | 3 luglio 2016

3000-front

Il primo amore non si scorda mai… ed il primo ‘vero’ computer della mia carriera di sistemista e programmatore è stato, sul finire degli anni ’70, un Hewlett-Packard hp3000.

Per quei tempi era una macchina molto particolare. Se la sua genesi è stata estremamente travagliata, tanto da essere stato all’inizio sostanzialmente il primo flop di Hp (come documenta questo post), quando si trattò di scegliere la macchina da utilizzare per il nostro nascente centro di calcolo era oramai entrata nel suo periodo di maturità. D’altro canto eravamo alla ricerca di un prodotto particolare, dato che eravamo intestarditi a fare qualcosa che in quei tempi era estremamente atipico: offrire un servizio a distanza, in cui l’elaborazione on-line era fatta direttamente in casa dei clienti mediante l’uso di terminali remoti.

Sì, proprio la stessa logica del cloud di oggi: quarant’anni fa si usavano le linee telefoniche punto-punto al posto della connettività di internet, ma la sostanza era praticamente la stessa. Ma non erano tanti i computer dell’epoca pensati per questa tipologia di attività. In quegli anni era imperante l’elaborazione batch,  cioè di tipo differito. Ma dato che volevamo fare una cosa nuova, oggi diremmo innovare, ci serviva un computer in grado di fare elaborazione on-line, e per di più dal costo ragionevole, e trovare quello più adatto non fu per niente facile. Ricordo che nel processo di selezione dell’hardware ci fu molta pressione da parte di IBM in favore della più tradizionale Serie 1, e che il commento del loro commerciale quando gli confermammo la nostra decisione fu laconico: “siete pazzi”.
Sta di fatto che nell’ottobre del 1977 le lucette del pannello di controllo del nostro computer iniziarono a baluginare per la prima volta: il primo HP3000 Serie II – con ben 192kByte di RAM, un hard disk da 50Mbyte e supporto per 17 terminali – entrava in funzione. Un sistema che attraverso due evoluzioni – prima un serie III con 512k di Ram e 178MByte di hard disk e poi un serie 33 con 2M di Ram e 404Mbye di hard disk – ci ha accompagnato sino agli inizi degli anni ’90, tempi oramai matura verso la definitiva transizione verso i sistemi personali. Hp ha continuato invece a supportare la famiglia 3000 con nuovi modelli sino agli inizi del nuovo millennio.

Al di là delle mie esperienze personali, l’HP3000 è stata una macchina molto peculiare, con una architettura a stack, che ricorda la logica delle calcolatrici HP a notazione reversa polacca, in grado di fare un uso molto efficiente della memoria. Il sistema operativo MPE era ottimizzato per le operazioni di time sharing, e grazie alla totale separazione fra codice e dati un segmento di programma in memoria poteva essere utilizzato allo stesso tempo da più utenti. Sono solo alcune delle caratteristiche che giustificano il tentativo di preservarlo dall’oblio in cui, prima o poi, cadono tutti i prodotti tecnologici obsoleti, specie quando si tratta di oggetti ingombranti quando un mini degli anni ’70.

3000-III_Promo

E se preservare hardware di questo tipo è solo alla portata dei musei, grazie agli emulatori è molto più facile salvare dall’oblio quello che poi è l’anima ed il cuore pulsante di ogni computer: il software. Per l’HP3000 fino a qualche mese or sono era disponibile solo un emulatore commerciale, pensato per consentire la virtualizzazione dei computer più recenti e quindi continuare ad utilizzare gli applicativi MPE su macchine più moderne.
Recentemente l’hp3000 è stato aggiunto fra le macchine del Progetto di simulazione di computer storici, ed è quindi supportato da Simh, l’emulatore open source in grado di far girare su computer moderni il software nato per tante pietre miliari dell’evoluzione dell’informatica. Da qui l’idea di assemblare una versione stand alone di emulatore in grado di fare rivivere i fasti di quegli anni, e su uno dei dispositivi hardware più elementare che offre oggi il mercato: il Raspberry PI.

Il Pi-3000, il nome del progetto, è sostanzialmente una immagine di raspbian pronta all’uso. Contiene l’emulatore HP 3000 configurato come il sistema a cui sono più affezionato: 512k di Ram, unità a nastro 7970, due dischi di sistema (7920 da 50Mbyte e 7925 da 120MByte), 16 porte terminale e software MPE V. Una nota sul software: in quegli anni il sistema operativo era licenziato come parte integrante dei computer, il presupposto per poterlo usare è quindi quello di avere in passato acquistato un hp3000. A tanti lustri di distanza l’MPE V rientra però a pieno titolo nella categoria dell’abandonware, e l’immagine del nastro di sistema da cui ho derivato questa installazione è quella pubblicamente ospitata dal sito bitsavers.org. Credo che HP, che peraltro rilascia anche licenze gratuite per i VAX, non abbia alcun interesse a limitare l’uso didattico di software così datato. Ciò nonostante vi invito comunque a verificare direttamente le condizioni di licenza qualora decideste di installarla.

Il Raspberry che ho usato è la prima versione, modello B+, e dato che per questo modello non esiste una versione di devuan, ho utilizzato come base l’ultima versione systemd-free di debian, peraltro ridotta all’osso visto che non è necessaria l’interfaccia grafica. L’immagine compressa è meno di 300M, e più essere trasferita anche su di una scheda SD da 1GByte. La rete è preconfigurata per essere connessa via cavo all’indirizzo 192.168.1.249. Ci si può accedere o direttamente da tastiera, o meglio via SSH, l’utente root ha come password raspberry.

L’emulatore viene lanciato automaticamente dagli script di inizializzazione del sistema, e necessita di una console connessa continuamente per funzionare. Per accedervi bisogna accedere come root al sistema e lanciare il comando screen -r:

console

All’avvio viene automaticamente avviata una sessione con l’utente OPERATOR.SYS. l’MPE ha sulla console due livelli di comando, quelli interattivi – prompt : – e quelli di console  – prompt =. Per impartire comandi console è necessario digitare CTRL-A seguito da A. Ad esempio per il powerdown del sistema sul prompt standard (:) bisogna digitare CTRL-A e poi A, apparirà il prompt = su cui digitare il comando SHUTDOWN.

Il sistema è raggiungibile via rete in telnet. Il 3000 utilizza un protocollo di comunicazione particolare, per cui è utile utilizzare un emulatore terminale che supporti le sue sequenze specifiche. Ci sono ancora in rete alcuni prodotti commerciali compatibili, ma ne è disponibile anche uno freeware, QCTerm, che soddisfa egregiamente le nostre necessità e può essere scaricato dal link in fondo a questa pagina. Il server telnet risponde sulla porta 1054 ed è in grado di supportare sino a 16 connessioni contemporanee.

In MPE l’account principale è SYS, ed i due utenti principali sono MANAGER e OPERATOR. Una volta connesso il terminale attende l’invio di un CR (enter), che nella connessione seriale veniva usato per definire la velocità di connessione (speed sensing). Apparirà il prompt su cui avviare lo scambio di credenziali: il comando è in questo caso HELLO MANAGER.SYS

hello

HELP restituisce un elenco del comandi principali, ed un aiuto più dettagliato per ogni comando.
Per terminare la sessione è necessario impartire il comando BYE

Ho anche creato un account GAMES con utente PUB, con un paio di giochi della contibuted library, due versioni di Star Trek e Hunt the wumpus, sia compilati che in versione sorgente basic. Per lanciare un programma compilato bisogna usare il comando RUN, per il basic è necessario caricare prima il sottosistema e poi caricare il codice del programma:

games

L’MPE non è Y2K compliant, quindi non accetta date del nuovo millennio. Lo script di avvio comunque setta in automatico un anno in cui l’associazione fra giorni del mese e quelli della settimana è corrispondente a quella reale.

Non ho elementi per misurare la velocità di emulazione, ma il sistema emulato è fruibile anche con più terminali attivi contemporaneamente. Quello che fa più impressione è il consumo energetico. Il serie III consumava oltre 10kW/h di energia: la CPU aveva ben quattro alimentatori (due HP30310A, un HP30311A ed un HP30312A), ed altrettanto energivori erano i dischi. Il PI3000 si attesta sotto i 5W.

Quanto alla documentazione, su bitsavers.org è disponibile per il download anche una buona selezione della manualistica originale.

Se voleste cimentarvi vi auguro buon divertimento!

Scarica l’immagine di Pi-3000 (293MB)

Scarica l’installer QcTerm (10MByte)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *