- - - = [ PLAN 9 DE LOS LABORATORIOS BELL ] = - - - Plan 9 tuvo su Primera Edición en 1992. Es un sistema operativo sucesor del Unix de Investigación desarrollado por el Centro para la Investigación de la Ciencia del Cómputo de los Laboratorios Bell (CSRC). --- 0. INVOLUCRARSE Plan 9 tiene comunidades activas que interactúan a través de correo electrónico. Se le recomienda unirse a la lista de correo 9fans donde se discute sobre Plan 9 y tecnologías relacionadas. El SDF dispone de la lista de correo plan9-l para participantes del Campamento Inicial de Plan 9. 1. INSTALAR Y ARRANCAR EL SERVIDOR DE PLAN9 Registro del VPS Luego de aplicar para el VPS (ya sea como participante del Campamento de Inicio o como usuario VPS regular), se le enviará un correo electrónico que indica el nombre de huésped para su servidor de mantenimiento VPS (por ejemplo, vps2.sdf.org). Logueo al Shell de Mantemimiento VPS Desde la shell del SDF, use el comando ssh vps2.sdf.org (o el host de mantenimiento de VPS que se le ha indicado por correo electrónico) para conectarse a su Shell de Mantenimiento de VPS Tome nota de la dirección IP de su máquina virtualizada, la cual consiste en unos números separados por puntos y se presentan monstránmmdose en la parte superior del menú de Mantenimiento del Shell VPS. (Nota: Luego de cada comando que introduzca en el Shell, el sistema le solicitará presionar una tecla para continuar (continue). Presione la tecla Enter y el menú se volverá a mostrar. Instalar la imagen de Plan 9 En el menú Command: presione "x" para activar Instalación Limpia (Clean Install). Cuando se le pregunte "Desea Continuar?" (Do you wish to continue? (yes/no), escriba yes. El proceso de instalación se extenderá por aproximadamente unos noventa segundos. Presione Enter para retornar al Menú de la Shell de Mantenimiento. Iniciar Plan 9 En el menú, presione "r" (para resetear e iniciar la máquina virtual). Cuando se loguee como root, indicado por el prompt ...", presione Enter. En el prompt user[none]: escriba "glenda", el usuario prehecho. Una vez que ingrese a la consola de Plan 9, el intérprete rc indicará su prompt "%". En este momento, ya tiene su servidor de Plan 9 levantado y corriendo. En cualquier momento puede retornar a su Shell de Mantenimiento de VPS presionando Ctrl+]. Abandonará el Shell de Mantenimiento tipeando q (desconectar) en el prompt Command:, y su servidor de Plan 9 continuará en ejecución hasta que le envíe el comando de apagado en el Shell de Mantenimiento de VPS (opción "s"), o bien dentro del intérprete rc de Plan 9, ingrese el comando fshalt -h. Para retornar a la consola del intérprete rc, loguése al Shell de Mantenimiento de VPS nuevamente, y en el prompt Command: introduzca el comando "c" (Conectar a su consola, Connect to your console). Acto seguido, presione Enter para lograr ver el prompt % del intérprete rc. 2. CONFIGURACIÓN DEL SERVIDOR DE PLAN 9 En este paso se configfurará su servidor de Plan 9 para que sea capaz de conectarse a la red ded atos y permitirle establecer conexiones desde Drawterm, el cliente gráfico de Plan 9 que podrá ejecutar desde su PC. Podrá configurar su servidor ingresando comandos en la consola del shell rc. Rc comparte muchos comandos en común con el Bourne Shell de UNIX en el cual se basa. Para obtener una guía básica de comandos de rc, por favor consulte la Guçia de Supervivancia de RC de Plan 9. (La funcionalidad de la versión de consola de rc está limitada en comparación a la versión completa, la cual requiere el ambiente gráfico de usuario río, que será provisto por Drawterm). Su apagó el servidor de Plan 9, reinícielo como se indica en el Paso 1. Comience Plan 9 como se indicó anteriormente y dese de alta como el usuario glenda. Configurar su dirección IP % ip/ipconfig -g 205.166.94.1 ether /net/ether0 su-IP 255.255.255.0 (1) Reemplace "su-IP" con la dirección IP que se indicaba en el encabezado del Shell de Mantenimiento de VPS en el paso 1.b. Resolución de DNS Ejecute los siguientes comandos en el shell rc: % echo 'ip=your-IP sys=plan9 dom=plan9 dns=205.166.94.20' >> /lib/ndb/local % ndb/cs % ndb/dns -r Configurar su contraseña de usuario de Drawterm % echo 'key proto=p9sk1 dom=plan9 user=glenda !password=contraseña' >/mnt/factotum/ctl Reemplace contraseña con la contrasela que desea emplear cuando desee acceder con su terminal gráfica remota Drawterm a su usuario "glenda" de Plan 9. Recibir conexiones de Drawterm % aux/listen1 -t tcp!*!ncpu /bin/cpu -R & Con esto estará completa la configuración básica de su servidor de Plan 9. Puede ahora salir de la consola de Plan 9 empleando Ctrl+] y de la Shell de Mantenimiento de VPS (mediante "q"), y de esta manera su servidor permanecerá en ejecución. Si reinicia su servidor (use el comando fshalt -h en el intérprete rc, y luego el comando "r" en la Shell de Mantenimiento de VPS), tendrá que reingresar los coamdnos indicados anteriormente. Por tal motivo, para hacer persistente la configuración del servidor, realice lo indicado en la sección 5. 3. CLIENTE DRAWTERM Drawterm es un emulador de terminal que puede ejecutar en su PC. Drawterm implementa el sistema de ventanas rio de Plan 9 y se conecta al servidor de Plan 9. Instalar Drawterm en su PC. Descargue e instale Drawterm en su PC. Drawnterm estará disponible como un paquete para muchas distribuciones basadas en GNU Linux. También encontrará el código fuente y binarios precompilados en https://swtch.com/drawterm/. Ejecutar Drawterm Inicie Drawterm en su PC clinete con el siguiente sintaxis en la línea de comando: $ drawterm -a su-IP -c su-IP -u glenda (Reemplace su-IP con la dirección IP que anotó desde el encabezado de su Shell de Mantenimiento de VPS en el paso 1.b. Drawterm mostrará la pantalla de logueo de Plan 9. Dése de alta en su servidor de Plan 9. Ingrese la contraseña que estableció para el usuario glenda, y luego presione Enter. (No se mostrará el cursor y la contraseña ingresada no se presentará en pantalla en la pantalla de logueo. Si su alta es exitosa, Drawterm se conectará al servidor de Plan 9 y comenzará el gestor de ventanas rio con un escritorio vacío. Abra una ventana de terminal. Haga clic y mantenga presionado el botón derecho del ratón en cualquier lugar del escritorio rio yabra el menú contextual ("New/Resize/Move/Delete/Hide"). Continúe manteniendo presionado el botón derecho del ratón, y mueva el puntero sobre New, y luego suelte el botón del ratón. Cuando el puntero cambie a un cursor "+", haga clic con botón derecho y presione sobre la posición deseada para la esquina superior izquierda de la ventana, y arrastre el ratón en diagonal para definir la posición deseada para la esquina inferior izquierda de la ventana (se mostrará un marco rojo indicando el tamaño). Luego suelte el botón del ratón. Rio creará una ventana de terminal y ejecutará el intérprete rc en ella. 4. SESIÓN DE DEMOSTRACIÓN DE RIO La cuenta de usuario prehecha "glenda" incluye un script llamado riostart, que creará una demostración de sesión de rio, dando arranque a varios programas comunes de Plan 9: stats muestra gráficas de actividad de sistema faces Interfaz de casilla de correo acme editor / ventanas de texto interactivo; se abrirá el archivo llamado readme.acme, consistente en un tutorial que explica el empleo básico de acme. rc terminal de comandos; aparecerán los contenidos del fichero readme.rio, un tutorial en rio y rc que será presentado en la ventana de terminal. Para dar ejecución a riostart, dele ingreso al siguiente comando en la ventana de la terminal: % cd $home; riostart Para traer a primer plano una ventana parcialmente oculta, haga clic con el botón izquierdo en cualquier lugar en la ventana. 5. HACER QUE LA CONFIGURACIÓN DE SU SERVIDOR SEA PERMANENTE Como se mencionó en la Sección 2 "Configuración de Servidor de Plan 9", la mayoría de la configuración realizada en dicha sección se perderá si da reinicio a su máquina virtual del servidor de Plan 9. Para hacer que esta configuración sea persistente a través del proceso de reinicio de la máquina virtual, debe agregar comandos de configuración al fichero /rc/bin/termrc.local. Esto puede lograrse ingresando los siguientes comandos rc tanto en la consola de Plan 9 localizada en el Shell de Mantenimiento de VPS o directamente en una ventana terminal de rio. Ingrese los comandos mientras está logueado como el usuario glenda. % echo 'ip/ipconfig -g 205.166.94.1 ether /net/ether0 su-IP 255.255.255.0' >> /rc/bin/termrc.local % echo 'ndb/cs' >> /rc/bin/termrc.local % echo 'ndb/dns -r' >> /rc/bin/termrc.local % echo 'echo ''key proto=p9sk1 dom=plan9 user=glenda !password=contraseña'' >/mnt/factotum/ctl' >> /rc/bin/termrc.local % echo 'aux/listen1 -t tcp!*!ncpu /bin/cpu -R &' >> /rc/bin/termrc.local Tenga a bien reemplazar su-IP con la dirección IP que anotó desde el encabezado de la Shell de Mantenimiento de VPS el paso 1.b. También reemplace contraseña con la contraseña que definió para el usuario glenda a fin de conectarse al servidor de Plan 9 usando Drawterm. Tenga particular atención a ingresar dos apóstrofes (') en lugar de una comilla (") en el comando de la contraseña. Alternativamente, puede agregar estos comandos en el fichero /rc/bin/termrc.local con un editor de texto, ya sea acme, el editor gráfico, si ya está ejecutando rio, o ed, el editor de texto orientado a líneas (ya sea que esté en rio o en la consola del serfvidor de Plan 9). 6. AGREGAR UN USUARIO Luego de que se haya familiarizado con Plan 9 usando el usuario prehecho glenda, podría querer agregar un usuario propio a su sistema (esto es opcional). Ingrese el siguiente comando en una terminal de rio o en la consola del servidor de Plan 9: Conectar a una consola de servidor de fichero. % con -l /srv/fscons Crear un nuevo usuario y agregarlo al grupo sys de sistema prompt: uname usuario usuario prompt: uname sys +usuario Reemplace usuario con el nombre de usuario deseado para el usuario nuevo. Salga de la consola de servidor. Tipee Ctrl+\, y luego en el prompt >>> ingrese "q". Configurar la contraseña de Drawterm para el nuevo usuario. Configure la contraseña de Drawterm para el nuevo usuario utilizando el procedimiento que se usó para establecerla para el usuario "glenda", pero esta vez reemplace el nombre de usuario "glenda" y la contraseña por el nuevo usuario y contraseña deseada. Dese de Alta con el nuevo usuario Reinicie Drawterm, y substituya el nombre "glenda" por el del nuevo usuario. Ingrese la ocntraseña del nuevo usuario en la pantalla de inicio de Plan 9. Inicialice el ambiente del nuevo usuario Abra una ventana de Terminal e ingrese el siguiente comando: % /sys/lib/newuser 7. CONFIGURAR ZONA HORARIA Puede configurar la zona horaria del servidor de Plan 9 a la zona horaria local. Apague el servidor con el comando fshalt -h (terminal de consola en rio o consola del servidor). Desde el Shell de Mantenimiento de VPS, reinicie el servidor con "r". Loguése como el usuario "adm". En la consola del servidor, ingrese el comando: cd /adm/timezone. Liste los ficheros de zona horaria con el comando lc. Escoja un fichero que se corresponda con su zona horaria local y cópielo al fichero local con el comando: cp su-zona local Use ed para editar el fichero /rc/bin/termrc y configure la variable de ambiente TIMESYNCARDS a (-n pool.ntp.org). Desconecte el servidor con el comando fshalt -h y reinicielo. 8. IMPORTACIÓN Y EXPORTACIÓN DE FICHEROS Drawterm monta automáticamente su sistema de ficheros de la PC cliente en /mnt/term en su espacio de nombre de Plan 9. Esto puede usarse para copiar ficheros desde su PC a Plan 9, a la inversa utilizando los comandos de copia de ficheros tradicionales (cp en el intérprete rc). 9. ACCESO A SERVIDOR FTP También puede transferir ficheros entre su servidor Plan 9 y su cuenta de Shell SDF por medio del servidor FTP del SDF. Para ello, ingrese el siguiente comando desde la ventana terminal de Plan 9: % ftpfs -a ftp@sdf.org sdf.org (18) En su espacio de nombre de Plan 9, los ficheros relacionados con Plan 9 localizados en el servidor FTP los encontrará en el directorio /n/ftp/pub/sdf/plan9/. Desde su cuenta de shell del sistema de cómputo SDF podrá acceder a dicho directorio desde /ftp/pub/sdf/plan9/. Contenidos de notas (rutas relativas al directorio raiz de Plan 9 indicados arriba): contrib Contribuciones de usuarios de SDF. Cree un subdirectorio con su nombre de usuario de SDF con sus propias contribuciones. dist/9*.tar.gz Ficheros de la distribución Plan 9 dist/9front/ Ficheros de la distribución 9front plan9bunnysmblack.jpg Imagen de la mascota Glenda de Plan 9. 10. NAVEGAR EN LA WEB Puede usar Abaco para navegar en la web. Abaco está disponible en el sistema Plan 9 por defecto. Crear ficheros de cookies web (sólo por primera vez). % touch $home/lib/webcookies Dar inicio a webfs y abaco: % webfs; abaco abaco Cuando inicie Abaco, podrá ir a la página web haciendo clic en "Nuevo" con el botón medio del mouse, ingresando la dirección URL en la fila debajo de la que dice "Del Snarf Get …" y luego presionando Enter en el teclado. Puede seguir los enlaces haciendo clic sobre ellos como es usual, con el botón izquierdo (la forma del cursor no cambiará). Tenga presente que la versión de webfs en la imagen de Plan 9 de la VPS no soporta páginas web seguras con protocolo HTTPS. 11. CAMPAMENTO DE APRENDIZAJE DE PLAN 9 El SDF realiza periódicamente un Campamento de Aprendizaje de Plan 9 (Plan 9 Boot Camp) abierto a quien desee aprender y tenga una cuenta de usuario SDF. Estos eventos se anuncian en el bboard y típicamenteocurren anualmente en verano u otoño (hemisferio norte) y duran aproximadamente 3 meses. Las actividades del Campanento de Aprendizaje de Plan 9 del SDF incluyen: - Instalación de una instancia pregenerada de Plan 9 bajo Xen - Descubrimientos autoguiados. Ed, configuración de red. Drawterm (desde su computadora). Rio y stats acme, sam, abaco, mothra y man mapdemo, catclock, juggle y tetris 9front y contrib via ftpfs Lista de correo 9fans y faces Durante la duración de los eventos, se propone hacer capturas de pantalla y video se sus descubrimientos autoguiados y compartir sus experiencias en plan9-l para inspirar a otros a hacer lo mismo. (Los detalles de cada miniproyecto arriba indicado serán expandidos en su propia sección o en un tutorial separado. Algunos de los miniproyectos se superponen con el contenido ya indicado en este tutorial). Addenum: Jugar ZORK Podremos jugar la aventura gráfica Zork % ftpfs -a ftp@ftp.sdf.org ftp.sdf.org % cp /n/ftp/pub/sdf/plan9/contrib/smj/games/zork /bin/games % mkdir /sys/games/lib/zork % cp /n/ftp/pub/sdf/plan9/contrib/smj/games/dtextc.dat /sys/games/lib/zork ---------- RIO Rio es el sistema de ventanas de Plan 9 Para leer más de esta ventana, configure las flechas de cursor arriba y abajo para mover el texto arriba o abajo media pantalla. Para usar efectivamente Rio, necesita al menos un ratón con tres botones. Si sólo tiene un ratón de dos botones, podrá emular el botón del medio presionando la tecla Mayúsculas mientras presiona el botón derecho. El botón 1, 2 y 3 se usan para referir a los botones derecho, central e izquierdo respectivamente. EL MENÚ POP-UP Al presionar y mantener el botón 3 en el escritorio o la ventana de shell presentará una ventana con un menú desplegable con las siguientes opciones: * New - crea una nueva ventana * Resize - Cambia la forma y tamaño de la ventana. * Move - Mueve la ventana sin cambiar su forma o tamaño. * Delete - cierra una ventana. * Hide - Esconde la ventana de la pantalla (aparecerá en este menú) * <eqiqueta> - La etiqueta de una ventana oculta, seleccionela para mostrarla. Selecciona un ítem soltando el botón sobre el ítem del menú. Rio usa el mismo botón que inició la acción a lo largo de toda la operación. Si presiona otro botón durante la acción, se abortará la acción que estaba realizando, y cualquier cambio intermedio que se hubiese realizado será anulado. El menú actúa como una selector de verbo de acción, el cual requiere un objeto (por ejemplo, una ventana), para ser recogido e indicar en qué ventana actuará el verbo de acción. Podrían requerirse subsiguientes acciones con el ratón. EJEMPLOS Luego de seleccionar New, el cursor cambiará a una cruz. Volviendo a emplear el botón 3, debería poder arrastrar para crear un rectángulo para indicar el tamaño y localización de la nueva ventana a crear. Cuando suelte el botón, se creará la ventana nueva. Las ventanas nuevas contendrán el intérprete de comandos rc. Al incovar un programa de rio desde el intérprete le permitira a dicho programa tomar control de la ventana. No existe control de trabajos en el shell (ej, &, fg para primer plano, o bg para segundo plano). Simplemente cree otra ventana si desea ejecutar otro programa de forma concurrente. Para redimensionar una ventana, seleccione Resize, y luego haga clic sobre la ventana que desea redimensionar. Recuerde usar el mismo botón que comenzó la acción, por ejemplo el botón 3. El cursor cambiará a una cruz de mira que le permitirá arrastrar hasta lograr la forma deseada de la ventana. Luego de seleccionar Move, haga click y mantenga presionado el botón del ratón para seleccionar la ventana que desee mover, y luego arrastre el ratón para desplazar el rectángulo rojo que representa la nueva localización deseada. Suelte el botón para finalizar la acción. Delete (cerrar) y Hide (ocultar) operan de manera tal que requieren que haga click en la ventana que desea cerrar u ocultar. AYUDAS DE CONTROL DE VENTANA Al hacer clic en una ventana, se la traerá a primer plano (frente). Podrá cambiar directamnete la forma de la ventana haciendo clic y arrastrando sobre el borde o esquina del marco de la ventana. El botón 1 o 2 le permitirán arrastrar el borde o esquina para delimitar un nuevo tamaño, y el Botón 3 le permitirá mover la ventana directamente. El menú Pop-up recuerda el último comando seleccionado, de modo que como atajo puede presionar el botón 3 y soltarlo sin mover el ratón para volver a elegir el comando previo. CONTROL BÁSICO DE TEXTO A diferencia de otros sistemas, el cursor de texto únicamente puede ser controlado por el ratón o los efectos colaterales de ciertos comandos. Al hacer clic con el Botón 1 se moverá el punto de insersión de texto (indicado por un signo I) justo antes del caracter más cercano al puntero del ratón. Al arrastrar a lo largo de una sección de texto se seleccionará dicha porción de texto. Puede ser útil saber que el cursor I de inserción representa una selección vacía (entre dos caracteres). En los editores de texto, la seleccion actual se conce como "punto". En el intérprete de comandos, el botón 2 invocará un menú desplegable. La mayoría de sus comandos operan en punto. * cut - mueve los contenidos del punto al portapapeles si el punto no está vacío. * paste - reemplaza punto con los co0ntenidos del portapapeles. * snarf - copia punto al portapapeles * plumb - envia punto (o un texto que rodee a punto), si punto no está envia al plomero. * send - completa la línea de entrada actual con el punto, si no está vacío, o los contenidos del portapapeles. Si el punto no está vacío, copia al mismo tiempo. * scroll - conmuta entre el desplazamiento automático de la ventana en su salida. Si hace doble clic podrá seleccionar automáticamente una sección de texto que rodee a dicho punto. La selección se realiza por un análisis de delimitadores apropiados. Una línea completa se seleccionará haciendo doble clic en cualquier extremo de línea. Una selección entrecomilladas o encorchetada se realiza haciendo doble clic de la misma manera, sólo que dentro de la sección entrecomillada o encorchetada. DESPLAZAMIENTO Las flechas de cursor le permitirán controlar el desplazamiento, paginando media página por vez. Al hacer clic con el botón 1 en la barra de desplazamiento se desplazará media página hacia arriba. El botón 3 desplaza media página hacia abajo. El botón 2 salta a la posición relativa del documento con respecto al lugar donde hizo clic en la barra de desplazamiento. Al mantener presionado un botón en la barra de desplazamiento, obtendrá el efecto de invocar la acción de cliqueo continuo. La cuadrado indicador en la barra de desplazamiento está representada en un tamaño proporcianal con la proporción del documento que es visible actualmente. El desplazamiento no afecta el cursor de texto. RIO Y LA VENTANA DEL INTËRPRETE RC Rc es un intérprete de comandos (shell) para Plan 9 que provee capacidades similares al intérprete Bourne de UNIX. Para obtener referencias adicionales al final de este documento sobre información específica para rc. Rio provee algunas caractewrísticas adicionales que mejoran la interzar con programas que emplean la consola de texto. El intŕeprete de comandos rc es uno de tales programas. Los comandos de rc se tipean en el prompt en la última línea del búffer de texto. Los comandos son enviados a rc sólo luego que cada nueva línea, de modo que puede realizarse edición de la línea si se desea. Puede mover el cursor y editar las líneas de comandos previas y la salida de programas, pero nada de esto será interpretada por el shell rc. La interpretación de los comandos es suprimida completamente si presiona ESC para pasar la ventana al modo Espera (hold). El borde de la ventana y el texto cambiarán a color azul oscuro para indicar que se activó el modo de espera. En este modo podrá tipear múltipoles líneas de comandos y editarlas. Al presionar ESC nuevamente se anulará el modo de Espera, y se enviarán las líneas de texto ingresadas al intérprete de comandos rc. La tecla DEL envia un anuncio "interrumpir" a todos los procesos en el grupo de procesos de la ventana. La intención convencionlam para esto es detener la ejecución del comando actual. Esto suele ser conveniente para asegurarse para recibir un prompt de comandos limpio. MAYOR INFORMACIÓN Para mayor información, revise la página man de rio. Tipee "man rio" o haga cllic en rio en cualquiera de estas oraciones, y seleccione Plumb desde el menú de botón 2.