- = Guía de Inicio de TOPS-20 para usuarios de UNIX =- El TWENEX, TOPS20, y otros sistemas operativos similares que corrían en la serie PDP-10 de minicomputadoras de DEC durante los 80s y 70s fueron las incubadoras de UNIX, la Internet, el movimiento de software libre, la colaboración y socialización en línea, y la mayoría de los hitos fundamentales que lo que algunos denominan como la Cultura Hacker. He utilizado algunos de estos sistemas en un par de ocasiones entre la secundaria y la universidad, aunque no recuerdo cuales de ellos, y mucho antes de poder comprender su importancia o lo que vendría a representar la computación para mí personalmente. TWENEX representa el camino no tomando, el UNIX como podría haber sido. SMJ. - - LOGUEARNOS AL TOPS-20 de TWENEX.ORG como INVITADO - - Para ingresar a TWENEX.ORG podremos utilizar una terminal con acceso Secure Shell (SSH). ssh twenex@sdf.org No bien recibamos en el terminal el prompt de sistema "@ podremos ingresar como usuario invitado nuevo. Para ello introducimos NEW seguido de la tecla ENTER. Cuando se nos solicite la contraseña ("passowrd?") ingresamos NEW también. Podremos abandonar la sesión de terminal mediante el comando KJOB ("kill job" o "matar trabajo"). - - CREAR UNA CUENTA EN TWENEX.ORG - - Podrá dirigirse a la web https://sdf.org/twenex/mkacct para crear una cuenta en TWENEX.ORG y crear su acceso propio. Debe proveer su Nombre de Usuario deseado (LOGIN), una casilla de correo electrónico válida, y su nombre completo. Recibirá un correo electrónico indicando el alta de su LOGIN, y le será proporcionada una contraseña pasavante. Para conectarse al sistema remoto podrá utilizar un cliente de Secure Shell (SSH). En Linux podrá ingresar: ssh twenex@sdf.org Una vez ingresado al sistema se encontrará con el prompt de TOPS-20, consistente en una "@". Ingrese su <LOGIN> y presione la tecla INTRO. Cuando el sistema le solicite su contraseña ("password?:"), ingrese la contraseña pasavante que le fue provista. CAMBIAR LA CONTRASEÑA PASAVANTE: Una vez que haya logrado acceso efectivo se recomienda cambiar la contraseña pasavante que le fue provista por una propia establecida por usted. TOPS-20 acepta para este cometido sólo caracteres alfanuméricos simples (en minúscula, sin espacios, sin letras acentuadas ni eñes). Para cambiar la contraseña de su LOGIN por favor utilice: SET DIRECTORY PASSWORD <LOGIN> ...donde <LOGIN> debe reemplazarse por su nombre de usuario. Antes de continuar utilizando TOPS-20 es importante aprender estas combinaciones básicas de teclas: ^S = CTRL-S detiene (pausa) la salida de la terminal. ^Q = CTRL-Q continúa con la salida en la terminal. ^O = CTRL-O ignora la salida de la terminal ^U = CTRL-U borra lo ingresado. ^C = CTRL-C sale de un trabajo. ^F = CTRL-F autocompleta (intente <ESC> también) ^T = CTRL-T Presenta el Status del trabajo ^\ = CTRL-\ Cuando ejecute el comando 'LOGOUT' use esto para cerrar la sesión TELNET. Este documento ha sido elaborado asumiendo que el lector cuenta con un entendimiento básico de la operación de un sistema similar a UNIX. Sin embargo, realmente no es necesario conocer ningun sistema de cómputo para aprender a utilizar TOPS-20. Esto tampoco intenta ser un documento "todo en uno". El TOPS-20 es un sistema operativo multiusuario designado específicamente para la computadora mainframe DEC PDP-10 (DECSYSTEM-20) de 36 bits. El intérpretes de comandos de nivel USUARIO ("User") recibe en TOPS-20 el nombre de "EXEC" (similar al "sh" de UNIX). Por encima del mismo se cuenta con el el nivel ENABLE, pero hablaremos únicamente del nivel USUARIO en este documento. El intérprete de comandos (Shell) EXEC de TOPS-20 es interactivo. De hecho el intérprete tcsh se desprende de una versión primigenia del EXEC del sistema TENEX, el sistema operativo TOPS-10 (y tal es el motivo por el cual tcsh significa realmente "El Shell C TENEX"). Sin embargo, tcsh se diferencia de él en estos dos aspectos importantes: - EXEC cuenta con completado de comando via <ESC> o Ctrl+F - EXEC cuenta con reconocimiento de comandos (puede usar ? para hacer que EXEC le informe los mapeos completados). Asimismo, el CMD JSYS - la parte interactiva del MONITOR (el "Kernel") - cuenta con control de JOB (tarea) completo. Podrá ordenarle hacer un DETACH (pasar a segundo plano, bg) o bien ATTACH (activar en primer plano, fg) cualquier JOB o TTY (terminal) que desee. También podrá PUSH (subir) o POP (bajar) entre los distintos niveles de prioridad de ejecución que provee EXEC. Normalmente, cuando TOPS-20 emita emitiendo una salida a su terminal remota, lo hará transmitiendo de un evento XOFF a su TTY (consiguiendo pausarla toda vez que complete una pantalla). Cuando esté listo para continuar recibiendo salida en la pantalla ingrese Ctrl+Q. Si no le importa leer la salida de terminal de forma pausada y desea que su tarea continúe sin su interacción, simplemente presione Ctrl+O. Puede usar Ctrl+C o Ctrl+z para salir de un programa o tarea. TOPS-20 hace uso de un sistema de archivos jerárquico. El dispositivo principal del siste es PS: (almacenamiento primario) (similar a / o el directorio raíz. Las rutas de directorios están separadas por un ".". Por ejemplo, digamos que nuestro LOGUIN era "MENGANO". Su directorio de usuario sería: PS:<MENGANO> (equivalente a /mengano en UNIX). Supongamos que hay un subdirectorio dentro de su directorio de usuario el cual es llamado docs: PS:<MENGANO.DOCS> (equivalente a /mengano/docs) El sistema de archivos de TOPS-20 suporta versionado de ficheros, y cuenta con dos niveles de borrado de archivos, una condición destacable de la cual UNIX carece. Tal es así que los nombres de archivo de TOPS-20 cuentan con tres componentes: NOMBRE.EXTENSIÓN.VERSIÓN Pueden utilizarse comodines * como atajos para abarcar "todo". En tal caso, el comando: @directory PS:<MENGANO>*.*.* ...listará todos los archivos, con todas las extensiones, y todas las versiones que se encuentren dentro deel directorio mengano. Si sólo le ingresa un *.* y omite el comodín * referido a la versión, entonces EXEC listará únicamente generación más actual de TODOS los archivos. COMPARACIONES RAPIDAS Y SUCIAS: UNIX TOPS-20 ----------------------------------------- talk TALK Permite charlar (chat) mesg n REFUSE LINKS Rechaza los mensajes de usuarios mesg y RECEIVE LINKS Habilita los mensajes de usuarios ls DIRECTORY Lista directorio ls -la VDIRECTORY Lista directorio con atributos cat TYPE Presenta el contenido de un fichero rm DELETE (EXPUNGE) Borra fichero mkdir BUILD Crea directorio rmdir BUILD Borra directorio who SYSTAT Muestra quien hace qué ps SYSTAT Presenta listado de proceso passwd SET DIRECTORY PASSWORD Cambia la contraseña chmod SET DIRECTORY PROTECTION Cambia atributos a directorios SET FILE PROTECTION Cambia los atributos a archivos man HELP Ayuda .profile LOGIN.CMD Archivo básico de configuración .plan FINGER.PLAN Archivo de mensaje para finger send SEND Envia mail (enviar) SEND Envia un correo electrónico mail (leer) MM Para leer un email PREGUNTAS Y RESPUESTAS: 0. ¿Cómo me contecto y LOGUEO? TELNET twenex.org @LOGIN NOMBREUSUARIO CONTRASEÑA ;su contraseña no se mostrará. 1. ¿Cómo configuro mi contraseña luego de loguearme? @SET DIRECTORY PASSWORD <LOGIN> ;donde LOGIN es su USUARIO. 2. ¿La contraseña tiene que poseer en MAYÚSCULAS? no. TOPS-20 asume que está utilizando una terminal remota de teletipo cuanto tipea a través del servidor de terminlaes D211. Para configurar sus opciones de terminal, emplee el comando TERMINAL. Típicamente configuraría estos comandos TERMINAL en su fichero LOGIN.CMD @TERMINAL NO RAISE ;esto configurará minúsculas @TERMINAL ? ;esto configurará le ofrecerá una lista de opciones TTY. 3. ¿Cómo obtengo más AYUDA? Lea este fichero nuevamente. Ingrese @? y @HELP ? 4. ¿Cuáles editores están disponibles para TOPS-20? ¡Muchos! Actualmente contamos con SED, EDIT10 y TV (Video TECO). Se agregará EMACS, TECO y vi cuando se pueda. 5. ¿Cómo accedo al historial de comandos de EXEC o edito los comandos previos? Para que sea posible revisar el historial de los comandos en EXEC y editarlos, debe configurar este comentido mediante la introducción de los siguientes comandos SET: SET HISTORY 100 ;luego ingrese su editor favorito SET COMMAND-EDITOR EDIT EMACS SET COMMAND-EDITOR ENTER CONTROL "P" Podrá colocar estos comandos SET en su fichero LOGIN.CMD y - en TWENEX.ORG y en la la mayoría de los casos - estos ya estarán incluido por defecto en su fichero LOGIN.CMD. Para acceder a su historial de comandos, presione CTRL+P. Acto seguido podrá utilizar las teclas de EMACS para editar sus comandos previos. Al presionar RETURN introducirá el comando via el EXEC actual. Si desea reenviar el último comando utilizado, puede tipear REDO. Aunque no está relacionado con esto, podrá encontrar relevante que puede retornar al último programa ejecutado (en caso que esté aún presente en memoria) ingresando REENTER. 6. ¿Qué JUEGOS hay disponibles en este sistema? Contamos con muchos juegos esotéricos y clásicos disponibles para este sistema. Para obtener una lista y descripción de cada juego, ingrese HELP GAMES. We have many esoteric and classic games available on this system. 7. ¿Cómo puedo almacenar un website? Simplemente ejecute el siguiente comando sustituyendo su USUARIO de sistema por el LOGIN. Esto creará el subdirectorio HTML. @BUILD <LOGIN.HTML> Luego edite sus archivos .HTML en dicho directorio o súbalos por medio de FTP. Su URL sería HTTP://TWENEX.ORG/~LOGIN 8. ¿Cómo funcionan la PROTECCIÓN DE ARCHIVOS y DIRECTORIOS? TOPS-20 permite protección de DIRECTORIOS y ARCHIVOS de 18 bits, lo que incluye funcionalidades encontradas bajo los permisos de 9 bits de UNIX, asñi como protecciones adicionales que son únicas a TOPS-20. PARA ARCHIVOS: OCTAL PROPIEDAD -------------------- 77 ACCESO TOTAL 40 LECTURA 20 LECTO-ESCRITURA 10 EJECUCIÓN 04 INCLUIR 02 LISTAR 00 SIN ACCESSO PARA DIRECTORIOS: OCTAL PROPIEDAD -------------------- 77 ACCESO TOTAL 40 LECTURA 10 CONEXIÓN 04 CONSTRUIR 00 SIN ACCESO Las PROTECCIONES están agrupadas juntas en un conjunto de 3, y corresponde a: @SET DIRECTORY PROTECTION <LOGIN> 777700 ^ ^ ^ | | \ todos los demás usuarios | \__ usuarios en su grupo \____ su propio usuario (propietario) Como tal, usted y los usuarios en su grupo tendrán acceso completo al directorio <LOGIN>, mientra que todos los demás usuarios no tendrán acceso alguno. Si está acostumbrado a los permisos de fichero de UNIX, debería resultarle impresionante el manejo que hace TOPS-20, ya que es posible crear un archivo que: 1. No aparezca en un listado de directorio 2. No sea legible incluso si conoce su nombre. 3. Sea agregable a todos los usuarios 9. ¿Cómo accedo a BBOARD? El BBOARD de TWENEX es una casilla de correo públicamente accesible en la cual los usuarios de TWENEX.ORG pueden dar uso para comunicarse entre ellos. En su LOGIN.CMD inicial se dispondrá que se muestre el último mensaje en BBOARD cuando se loguee. Podrá siempre releer dicho mensage ingresando el comando BBOARD /LAST en el prompt EXEC. Para ENVIAR un MENSAJE A BBOARD: Simplemente use el comando 'MAIL BBOARD' para ENVIAR o CONTESTAR a un mensaje de la BBOARD. PARA LEER UN MENSAJE DE LA BBOARD: El comando BBOARD le permitirá leer y buscar mensajes en el Bboard haciendo uso de varios criterios. Podrá usar MM para navegar el Bboard tipeando BBOARD MAIL desde dentro de MM. 10. ¿Cömo puede usar COMMODE, TALK y SEND o PHONE? Si desea utilizar estos comandos para conversar con otros usuarios conectados al sistema de cómputo TWENEX.ORG, debe tener configurados TERMINAL RECEIVE LINKS. Mientras usa TALK podrá usar tanto el caracter de comentario de EXEC ";" como prefijo para sus líneas, ejecutar REMARK de forma tal que EXEC no interprete su órden como comandos, o ejecutar COMMODE (chat) el cual antecederá todas sus líneas de conversación con su nombre LOGIN de usuario. "SEND" No ENLAZA TERMINALES, pero le permite a los usuarios enviar mensajes en un sentido u otro. Una vez que haya recibido un mensaje por parte de un usuario, podrá usar REPLY para responder al remitente. "PHONE" es probablemente el sistema de chat más elaborado. Le permitirá ver quién está online, si desean recibir llamadas y demás. Por favor note que no se considera respetuoso ENLAZAR a una terminal de un usario. Si desea usar TALK con alguien a quien nunca ha hablado antes, por favor tenga la consideración de utilizar previamente SEND o MAIL para ponerse en contacto a través de dichos medios. Si no obtiene una respuesta, entonces no lo haga. Si no desea recibir mensajes en su terminal, ingrese: TERMINAL NO RECEIVE LINKS. - Más pronto, por favor revíselo pronto - -------------------------------------------------- *************************************** Tutorial interactivo de TOPS-20 Este fichero es un registro de una sesión con el tutorial interactivo de TOPS-20 en twenex.org. Ha sido agregado a los tutoriales de SDF para que el contenido esté disponible en la World Wide Web, pero es mucho más efectivo aprenderlo experimentando interactivamente el tutorial mientras se encuentre logueado a twenex.org y corra el programa TOPS-20. RESUMEN RÁPIDO El tutorial provee una introducción a una cantidad de comandos útiles para operar con el ambiente EXEC del TOPS-20. Control de Salida Ctrl+s Pausa el desplazamiento de salida Ctrl+q Continua el desplazamiento de salida. Ctrl+o Conmuta la supresión de salida. Guía de comandos Esc Completado de comandos y palabras guías ? Guía de ingreso esperado Edición de línea de comandos Ctrl+r Retipea la línea actual Del (o Retroceder) Borra el caracter previo Ctrl+w Borra la palabra previa Ctrl+u Borra la línea actual Status de programa y control Ctrl+t Status de sesión Ctrl+c Sale del programa (puede tener que ingresarlo 2 veces o más). TOPS20 Bitácora del Tutorial @tops20 La siguiente es una breve explicación de algunas convenciones de TOPS-20. Aprender y recordarlas le será de gran ayuda cuando explore las posibilidades de este sistema. Si ya es familiar con TOPS-20, debería usar Ctrl+c para salir de este programa. Si no, podría querer tomar notas. Las primeras cosas que debería conocer son los caracteres de control Ctrl+s y Ctrl+q. Un caracter de control se forma pulsando una letra MIENTRAS MANTIENE PUSLADA la tecla Control (marcada como "Ctrl"). Se las representan con un "^" antes de la letra. De modo que ^S se logra haciendo Ctrl+s (no cenesita teipar la S en mayúsculas). ^S y ^Q se utilizan para detener y comenzar la salida (presentación del texto) en la terminal. Esto es útil sobre todo en una terminal de video (CRT), donde las cosas que desea tener tienen el hábito de perderse en la parte superior de la pantalla antes de que podamos leerlas. ^S - Detiene la salida temporalemte ^Q - continúa con la salida detenida Una ^S tipeada por usted será simulada ahora. (Tipee ^Q para continuar). ¡Muy bien! También es posible (pero no lo haremnos aquí) tener la línea configurada de modo que automáticamente pause al final de una página no interrumpida recibida en la terminal. Practique usar ^S y ^Q cada tanto a lo largo de esta lección. (Recuerde: cuando la salida se detiene en un momento que no lo espera, suele tratarse que el sistema normalmente está esperando que presione ^Q.) El siguiente concepto que debe aprender es que ESCAPE y "?". La mayoría de los comandos se proporcionan con palabras. No necesitará tipar el comando completo. Una abreviación única es suficiente. Luego de tipear la abreviación, un ESCAPE (a veces llamado ALTMODE, indicado como ESC o ALT) causará que el sistema tipee el resto de la palabra normal. Esto se llama "reconocimiento". ESC - completa un comando abreviado Here is an example - type an ESCAPE at the end of this example: TOPS20>recogNITION Bien! Ve cómo el sistema completó la palabra por usted? Existe otra ventaja de usar ESCAPE para el reconocimiento y completado: las Palabras Guía. Cuando presiona ESCAPE para reconocer un comando, el sistema a menudo le preveerá una pista de lo que desea ver a continuación. Estas pistas, que siempre se tipean en paréntesis, se llaman palabras guía. intente tipear ESCAPE nuevamente para ver como funciona: TOPS20>gUIDE (WORDS) Muy bien! Las "(WORDS)" de arriba es un ejemplo de una palabra guía. Las palabras guía también son a veces llamadas palabras ruidosas. Usualmente le dan una ayuda de lo que debería venir a continuación, como: TYPE (FICHEROS) - debe proporcionarle nombres de ficheros para tipear LOGIN (USUARIO) - debe tipear su nombre de usuario A veces esto no alcanza para dar una pista suficiente. En tal caso, descubrirá qué es lo que se espera a continuación ingresando un signo de interrogación. ? - Presenta lo que se esperaría Ok. Ahora intente usar un signo de interrogación ("?"). Si el sistema no hace nada cuando termine, ingrese un RETORNO de CARRO (ndT: INTRO). Como deletrea 3? ? Una de las siguiente: ONE THREE TWO How do you spell 3? three Ok, a continuación cambiaremos lo que ha tipeado. Primero de todo, a veces la línea que estña ingresando se rompe o daña de algún modo. Si incresa un ^R, el sistema reescribirá el prompt y cualquier ingreso que haya tipeado. ^R - reescribe la línea de entrada. He aquí una línea rota que se demostrará. Tipee ^R para que se presente nuevamente. TOPS20>This line is SANTA.CLAUS, TTY45, 23-May-2010 5:41AM Have you been good? TOPS20>This line is not broken Exacto. Ahora puede ver cómo la línea se retipeó toda en una sola pieza. A veces, algo que tipeó no era lo que quería. Existen caracteres especiales los cuales puede usar para editar lo que ya ha tipeado. El primero de esos es DELETE (que puede también indicados como "DEL", "RUBOUT", "RETROCEDER" o "RO"). Su función es borrar el último caracter tipeado. DEL - Borra el caracter anterior Use un DELETE para corregir el siguiente error: TOPS20>correction Hey, está avanzando bien. El siguiente caracter de edición de línea que debe aprender es ^W. A veces su error no involucra sólo el último par de letras. A veces puede haber errado una palabra o dos. Los DEL no son convenientes cuando tiene que eliminar tantas letras. ^W le permitirá borrar de a una palabra por vez. ^W - borra la palabra previa Use uno o más ^W (junto con algunas otras de las funciones que ya ha aprendido) para corregir el siguiente error: TOPS20>This example is not wrong Eso es! Ya casi ha terminado con los caracteres de control de edición... El último de estos es ^U. Si, de alguna manera la línea que ingreso no era en todo lo que intentaba tipear, use ^U para borrar la línea entera del intérprete de ingresos. ^U - borra la línea entera Use ^U (y algunas de las otras características que ya ha aprendido) para corregir el siguiente error (se lo haré difícil ahora): TOPS20> Maravilloso! Ahora sabe todo sobre editar caracteres para los comandos en Tops-20. Sólo un par de cosas más. El siguiente es ^O. Si en su terminal sale mucha impresión, pero no desea interrumpir el programa que está proporcionando la salida (indicaremos cómo hacerlo en un minuto) deberá tipear ^O. La primera vez que tipee ^O, redirigirá la salida de su terminal a la nada (podría decirse se la envía al "tacho de basura"). La siguiente vez que tipee ^O, la salida será redirigida a su terminal nuevamente. Toda la salida en ein interím se perderá. ^O - Activa la supresión de salida Para practicar con ^O voy a volcar una salida en su terminal. Ingrese varios ^O para ver como funcionan. Tipee RETORNO DE CARRO cuando esté listo. Este es la vuelta número 1 en el bucle. Este es la vuelta número 2 en el bucle. Este es la vuelta número 3 en el bucle. Este es la vuelta número 4 en el bucle. Este es la vuelta número 5 en el bucle. [...] Este es la vuelta número 46 en el bucle. Este es la vuelta número 47 en el bucle. ^O Este es la vuelta número 48 en el bucle. [...] Este es la vuelta número 98 en el bucle. Este es la vuelta número 99 en el bucle. Este es la vuelta número 100 en el bucle. De modo que esto es ^O y la ha comprendido. Bastante útil a veces, verdad?... Le gustaría intentarlo nuevamente? no Ok, Lo último que le resultará útil antes de emprender la lección final. Es ^T. ^T le provee información sobre lo que está haciendo actualmente. Su devolución será similar a esto: 17:03:57 TOPS20 IO wait at 2332 Used 0:34:41.4 in 10:05:05, Load 3.58 En el ejemplo de arriba, "TOPS20" es el nombre del programa que está corriendo. "IO wait" le dice qué programa está haciendo. (En este caso, está aguardando que alguna entrada o salida se complete, tal vez esperando que el usuario tipee algo). El número que sigue a "at" es la dirección en la cual se está ejecutando el programa. El número que sigue a "Used" es la cantidad de tiempo que su programa/s ha estado corriendo, y la que figura luego de "in" indica la cantidad de tiempo en la cual ha estado logueada. El número que sigue a "Load" es aproximadamente el número de personas intentando usar la máquina "ahora". Intente presionar ^T... 05:36:28 TOPS20 SLEEP at PS5+11 Used 0:00:01.5 in 0:07:49, Load 0.03 Bueno, ¿Puede creer que ha llegado hasta la última parte de esta lección? Lo últomo (pero no menos importante) que debe aprender aquí es sobre ^C. Al tipear ^C's podrá abandonar casi todos los programas en existencia en Tops-20. Si un programa espera entrada, un ^C lo interrumpirá. Si no, probablemente dos ^C funcione, pero a veces se podrían necesitar incluso hasta cuatro ^C. El ^C se usa normalmente como una salida en pánico desde un programa. ^C - sale (inmediatamente) de un programa. Oh, si... antes de salir, si en algun momento quisiera ejecutar este programa nuevamente, es TOPS20:TOPS20.EXE. Ok - Ahora confirmémoslo con una última práctica. Presione ^C para salir de este programa. ^C --------------------------------- Para resumir: ^C - Cesa un programa inmediatamente ^O - Suprime la salida ^Q - Continúa la salida ^R - Vuelve a presentar una línea ^S - Detiene la salida ^T - Informa qué es lo que está sucediendo ^U - Deshace la línea que estaba siendo ingresada ^W - Borra palabra ? - Qué se espera aquí? DEL - Borra un caracter ESC - Reconocimiento Invocado Ok, buena suerte... @