ITS en klh10

By | May 10, 2008

Presentación

 

El siguiente artículo está escrito en forma de receta. Si tienes un sistema con el compilador gcc, como por ejemplo GNU/Linux,  sólo tendrás que copiar y pegar lo que pongo en los recuadros y en menos de 10-15 minutos tendras un sistema ITS funcional.

Una recomendación es que cuando lo tengas, hagas una copia de seguridad, ya que trabajaremos sobre una imagen de disco, y si se ésta se estropea podremos restaurar con la copia. Otro motivo es porque la imagen (de la cual doy una URL) está ‘retirada’ de internet, así que si en algún momento desaparece de donde está, podría costar trabajo volverla a localizar.

En otro artículo describiré con mas detenimiento las características de este OS y como realizar distintas tareas, este artículo tratará unicamente la instalación. Utilizaremos klh10 que es un emulador de PDP-10.

 

Instalación

 

– Creación de directorios para la instalación:

#export KLH10_HOME=$HOME/ITS 

mkdir -p $HOME/ITS

cd $HOME/ITS

 

– Cogemos la última version del emulador klh10 de Ken Harrenstien:

 

wget http://klh10.trailing-edge.com/klh10-2.0a.tgz

wget http://klh10.trailing-edge.com/klh10-2.0a-aux.tgz

– Y cogemos la imagen de disco de un sistema ITS totalmente funcional:

wget http://free.babolo.ru/src/PI-ITS-RP06.0-dbd9.bz2

– Descomprimimos los ficheros:

 

tar xfz klh10-2.0a.tgz 

tar xfz klh10-2.0a-aux.tgz

bunzip2 PI-ITS-RP06.0-dbd9.bz2

– Ahora vamos a compilar el emulador. NOTA IMPORTANTE: hay que usar el gcc-3.4, con las versiones de gcc 4 no funciona. Lo más normal es que si tienes una distribución GNU/Linux reciente, tengas instalado un gcc versión cuatro, por lo que tendrás que instalar la versión tres. Para verificar la versión de gcc:

 

gcc --version

gcc (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)

– Si no tenemos el 3.4, podremos instalarlo sin problemas ya que las dos versiones pueden coexistir y cuando acabemos lo podremos desinstalar, ésto lo hacemos como root si estas en una distribución Debian GNU/Linux o similar:

sudo apt-get install gcc-3.4

– Ahora vamos a modificar el Makefile para que use nuestro compilador gcc-3.4:

 

mv klh10-2.0a/src/Makefile.mk klh10-2.0a/src/Makefile.mk.orig

cat klh10-2.0a/src/Makefile.mk.orig | sed s/cc/gcc-3.4/g > klh10-2.0a/src/Makefile.mk

– Una vez que lo tenemos modificado, lo compilamos, en nuestro caso es un linux x86, así que nos vamos al directorio apropiado, y ejecutamos el make.

 

cd klh10-2.0a/bld/lnx86

make base-ks-its

Cuando terminemos de compilar, copiaremos todos los ficheros ejecutables a nuestro directorio de trabajo (sin hacer ‘make install’).

 

cp dpimp dptm03 dprpxx kn10-ks tapedd udlconv vdkfmt wfconv wxtest $HOME/ITS

##make install

cd $HOME/ITS

cp -p klh10-2.0a/run/ksits/* .

– Si queremos usar la red, hay que ejecutar el emulador como root, o darle setuid al driver de red:

 

sudo chown root dpimp;  chmod 4750 dpimp

 

Ejecución

 

– Listo, ya estamos preparados para la primera ejecución. Voy a intercalar explicaciones precedidas de tres guiones ()

./kn10-ks  klh10-pi.ini
KLH10 V2.0A release (MyITS) built May 10 2008 10:40:00
...
...
...
Data: 65470, Symwds: 0, Low: 01, High: 0777266, Startaddress: 0144430
KLH10> 
KLH10> ; go 774000 ; to start DDT, else "go" to start ITS
KLH10> 
KLH10> [EOF on klh10-pi.ini]

--- saltamos al DDT

KLH10> go 774000

--- la primera ejecucion es algo complicada

Starting KN10 at loc 0774000...

--- cuando se pare (NO aparece el prompt) escribimos 'its' y le damos al 'enter'
--- responderá poniendo una U despues de ITS
--- a continuación le damos al 'esc' y pulsamos la G, el DDT responde con $G

ITSU   $G

Salvager 260

.TEMP. has no files, User File Directory DELETED

[dpimp: Using default interface "eth0"]
[dpimp: ifc "eth0" => ether 0:1d:92:62:cf:6f]
[dpimp:   inet 172.24.96.3]
[dpimp:   netmask 255.255.255.0]
[dpimp:   net 172.24.96.0]
[dpimp:   HOST: 199.34.53.51]
[dpimp:   gwdef 199.34.53.50]
[dpimp: no native ARP entry, assuming shared ifc]
THE KS-10 CLOCK HAS BEEN RESET, IF THE TIME CANNOT
BE DETERMINED FROM THE NETWORK, YOU MAY HAVE TO :PDSET

PI ITS 1647 IN OPERATION
PI ITS 1647 SYSTEM JOB USING THIS CONSOLE.
 LOGIN  TARAKA 0 


                              Attention!

                              Attention!

The time could not be set because:
No host responded.
It will be necessary for someone to set the time
manually by logging in and running :PDSET.

TARAKA NETIME IOTLSR  

PI ITS 1647 SYSTEM JOB USING THIS CONSOLE.

--- listo, ya podemos abrir sesion, para ello pulsar ^Z (control z)

PI ITS.1647. DDT.1545.
TTY 0
You're all alone, Fair share = 0%

(ITS does not know the date, so messages cannot be reviewed right now.)

--- y ya estamos en la 'shell' de ITS.
--- podemos ver el contenido del directorio con :listf sys

:listf sys

PI   SYS
FREE BLOCKS #0=17615
  L   .FASL  DEFS   LISP .FASL DEFS
  L   2OPS2  OPS    SAIL 2OPS2 OPS
  0   :MSGS  TIMES  4 ! 3/21/102 22:18:38
  0   ATSIGN CHAOS  1 ! 1/16/81 16:34:48
  0   ATSIGN DDT    40 ! 3/18/90 12:02:11
  0   ATSIGN DEVICE 1 ! 12/18/89 19:51:44
  L   ATSIGN DRAGON CHANNA ATSIGN TARAKA
  0   ATSIGN HACTRN 40 ! 8/14/90 02:07:30
  L   ATSIGN LISP   SYS PURQIO >
  0   ATSIGN ODDT   40 ! 11/26/88 16:23:57
  0   ATSIGN ODEVIC 1 ! 9/19/88 21:13:37
  0   ATSIGN OPWORD 28 ! 4/1/87 04:24:35
  L   ATSIGN PEEK   SYS TS PEEK
  0   ATSIGN PWORD  28 ! 8/2/89 21:54:13
...
  0   TS     TTYSWP 1 ! 11/11/76 17:18:17
  0   TS     TYPE8  1 ! 11/14/83 05:05:13
  0   TWXBTS 29     35 ! 3/25/81 13:01:09
  0   TWXDFS 8      2 ! 3/24/81 21:52:07
--- Podremos ejecutar :version
*:version
PI ITS.1647. DDT.1545.
TTY 0
--- Tambien podremos ejecutar :emacs
*:emacs
(Please Log In)


EMACS Editor, version 162 - type Help(^_H) for help.

– Para salir del emulador :

---pulsamos ^\ (esto es Control-AltGr-\) y escribimos shutdown

KLH10> shutdown
Continuing KN10 at loc 05600...

SWITCH 0 IS UP  
PI LEVEL 7 BUGDDT.  TYPE <ALTMODE>P TO CONTINUE.
YOU ARE NOW IN DDT.
BUGPC/   CAIA CLQBRT+3   $Q-2/   SKIPE 8SWIT0   
[HALTED: FE interrupt]
KLH10>

---volvemos a pulsar ^\ (esto es Control-AltGr-\) y escribimos quit

KLH10> quit
Are you sure you want to quit? [Confirm]y
Shutting down...Bye!

– Para las siguienes ejecuciones, se puede directamente teclear go el el prompt de KLH10>

KLH10> go
Starting KN10 at loc 0144430...

Salvager 260

.TEMP. has no files, User File Directory DELETED

--- esperar que se normalize y ya podemos abrir sesión, para ello pulsar ^Z (control z)

 

 

Configuración básica:

 

– Para que el sistema funcione correctamente, tenemos que por lo menos configurar la fecha/hora. El modo es mediante :pdset

, a continuación se muestra como configurar la fecha 10 de mayo de 2008, y las 16:40. Viendo como encajan los numeros es fácil deducir el formato.

 

:pdset
(Please Log In)
___002 PDSET  IOTLSR  

PDSET.114
Please don't use this program unless you know how.
You are certain to break something if you happen to hit the wrong key.
Type Control-Z to exit, or ? for a reminder of the commands.
20C
080510D
164000T
!.
141427/ 777651,,662253  772754,,224545  ___002 

141426/ 3722    3730    ___002 16:40:00
IT IS NOW  4:40:00 PM EDT, SATURDAY, MAY 10,2008
q

 

NOTAS:

 

Este emulador es muy complejo, hay que leerse los docs 🙂

Más adelante escribiré más sobre como hacer determinadas cosas,  por ejemplo, como configurar la red, o recompilar el kernel.

Los comandos en ITS van precedidos de dos puntos (:) y puedes pedir ayuda mediante 😕 o :info

 

 

Enlaces de interés:

 

 

Documentación:

http://zane.brouhaha.com/~healyzh/sysdoc/sysdoc.htm

El manual de referencia :

ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-161A.pdf

Manual de DDT:

http://victor.se/bjorn/its/ddt.html

 Manual de Maclisp;

http://www.maclisp.info/pitmanual/

 Conferencia de Stallman donde habla sobre ITS, PDP10, emacs, etc ..

http://www.gnu.org/philosophy/stallman-kth.html

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *