Plan 9 de los Laboratorios Bell es un sistema de investigación desarrollado en los laboratorios Bell a finales de 1980s. Sus diseñadores originales son Ken Thompson, Rob Pike, Dave Presotto y Phil Winterbottom.
Introducción
El sistema puede parecer tentador a los usuarios de unix, pero extraño al mismo tiempo.
Plan 9 es un kernel de sistema operativo, pero también una colección de software que lo acompaña. La mayoría del software es predominantemente nuevo, escrito para Plan 9 en vez de importar de Unix u otros sistemas. El sistema de ventanas, compiladores, servidor de archivos y servicios de red fueron escritos para Plan 9. Aunque programas clásicos de Unix, como dc, ed incluso troff han sido incluidos, pero actualizados, por ejemplo para manejar UTF-8 como hace el resto del sistema.
Plan 9 es un sistema distribuido capaz de usar diferentes tipos de recursos y servidores distribuidos a través de casi cualquier red. requiere pocos recursos comparado a la mayoría de los sistemas.
Todos los recursos en Plan 9 son presentados como archivos (en oposición a Unix, donde casi todo son archivos, pero no todos los archivos son “verdaderos archivos”)) y el sistema utiliza un método común para acceder a todos los recursos. (9P Styx).
Instalación
- Inicia desde el CD-ROM
- Selecciona
1. Install Plan 9 from this CD - Selecciona
[yes]cuando el instalador pregunte por DMA. solo si tienes problemas durante la instalación, deberías seleccionar ‘no’ - Enseguida el instalador pregunta por el puerto del mouse, si tienes un mouse USB ignora la pregunta. No podrás usar el mouse durante la instalación, pero no hay problema.
- El instalador pregunta por la resolución de la tarjeta VGA. El default esta bien para la instalación, puedes cambiar esto una vez que el sistema esté instalado.
- Instalación gráfica.
- Selecciona el sistema de archivos, configfs (fossil) o venti. Fosil esta bien.
- Selecciona el dispositivo de disco donde instalar Plan9. Plan 9 TODO …blah blah sdC0
- selecciona
'y’ para instalarmbr - Enseguida se ejecuta
fdisk, este automáticamente crea (pero no escribe) una partición para Plan 9, si encuentra espacio libre suficiente. Escribe'w’ para escribir la tabla de particiones y'q’ para salir defdisk - Enseguida subdivide la partición recién creada en
p9fat,fossilyswap.p9fatdebe ser la primera partición del disco para que Plan 9 pueda iniciar. El programaprepsugiere una distribución de las sub-particiones. Igual que enfdiskusa'w’ y'q’ para aceptar el default. - Formato del sistema de archivos fossil.
- En
mountfs, monta la partición fossil que acabas de formatear. -
configdist, pregunta por la localización del archivo de la distribución; como estas instalando desde el CD, selecciona'local’ -
mountdistexplora los dispositivos y te da una lista de los dispositivos donde encuentra el archivo de la distribución. Selecciona'sdD0/data (iso9660 cdrom)’ - Enseguida el instalador pregunta cual directorio contiene los archivos de la distribución, instalando desde CD-ROM la raíz de este es el indicado.
- Una vez que el archivo de la distribución es localizado, inicia la
tarea
copydist. -
bootsetupconfigura el disco duro para iniciar Plan 9, cuando te pregunte; especifica'plan9’ para hacer la partición del disco de plan 9 la default y selecciona'Plan 9 master boot record’ - La instalación ha terminado, re-inicia la PC y saca el CD-ROM para que
Plan 9 inicie desde el disco duro. Cuando el bootloader pida el usuario,
usa
'glenda’
Virtualización de Plan 9
Qemu
Ejecutar qemu como root o con privilegios elevados (sudo).
qemu-img create -f qcow2 plan9.img 2G
qemu -hda plan9.img -cdrom plan9.iso -boot d
qemu -m 256 -vnc :1 -net nic -net tap,ifname=tap0,script=no plan9.img
VirtualBox
- VirtualBox 5.0.8
- 512 MB RAM, 8 GB Disco Duro
- SoundBlaster 16
- Intel PRO/1000 MT Server Bridged
Gráficos
Lista los modos vesa soportados y configura a 1024x768x24.
aux/vga -m vesa -p
aux/vga -m vesa -l 1024x768x24
Inicia sesión como 'adm’
cp /adm/timezone/Mexico_General /adm/timezone/local
Configuración de Red
Configuración de la red
⚠ Estos 3 pasos son temporales y se pierden si el sistema reinicia, para
hacerlos permanentes; agregalos en el archivo /rc/bin/termrc
ip/ipconfig -g 192.94.73.1 ether /net/ether0 YOUR_IP 255.255.255.0
echo 'key proto=p9sk1 dom=plan9 user=glenda !password=YOUR_PASSWORD' >/mnt/factotum/ctl
aux/listen1 -t tcp!*!ncpu /bin/cpu -R &
Configuración DNS
echo 'ip=<YOUR_IP> sys=<YOUR_SYSNAME> dom=<YOUR_FQDN> dns=<DNS_IP>' >> /lib/ndb/local
ndb/cs es un servidor utilizado por para traducir nombres de red. Se
inicia junto con el sistema.
ndb/dns le sirve a ndb/cs y sistemas remotos traduciendo nombres de
dominio de Internet. La opción -r indica que actúa solo como
resolver: envía consultas recursivas pidiendo a otros servidores
completar la búsqueda.
ndb/cs
ndb/dns -r
mkdir /cfg/<sysname>
dircp /cfg/example /cfg/<sysname>
chmod 750 /cfg/<sysname>/*rc
ip/ipconfig -g <YOUR_GATEWAY> ether /net/ether0 <YOUR_IP> <YOUR_NETMASK>
ndb/cs
ndb/dns -r
echo 'key proto=p9sk1 dom=valhala user=ecelis !password=<SOMEPASSWD>' > /mnt/factotum/ctl
echo 'key proto=pass server=mx.sdf.org service=imap user=ecelis !password=<SOMEPASSWD>' >> /mnt/factotum/ctl
aux/listen1 -t tcp!*!ncpu /bin/cpu -R &
echo 'hwaccel off' > /dev/vgactl
Configuración IP
database=
file=/lib/ndb/local
file=/lib/ndb/common
auth=sources.cs.bell-labs.com authdom=outside.plan9.bell-labs.com
ip=127.0.0.1 sys=localhost dom=localhost
ip=<YOUR_IP> sys=<YOUR_SYSNAME> dom=<YOUR_FQDN> dns=<DNS_IP>
Agregar nuevo usuario
Firmado como glenda ejecuta los comandos siguientes para crear un
usuario del sistema.
con -l /srv/fscons
uname <usuario> <usuario>
uname sys +<usuario>
Para salir de fscons presiona CTRL+** y escribe q en el
indicador >>>
La primera vez que el usuario accede al sistema, ejecuta el siguiente comando para poblar su directorio.
/sys/lib/newuser
Crear mailbox
upas/nedmail -c
Copiar directorio de glenda
dircp /usr/glenda /usr/newuser
Hacer usuario administrador
con -l /srv/fscons
prompt: uname sys +<usuario>
IMAPS e-mail
upas/fs -f/<proto>/<mail.server.address>/<username>
upas/fs impas: server certificate 22471E10D5C1E41768048EF5567B27F532F33 not recognized
upas/fs: opening mailbox: bad server certificate
echo 'x509 sha1=22471E10D5C1E41768048EF5567B27F532F33' > /sys/lib/tls/mail
Actualiza Plan 9
-c previene que la actualización modificque cambios locales.
9fs sources
pull -c /rc/bin/termrc
Para instalar contrib
9fs sources
/n/sources/contrib/fgb/root/rc/bin/contrib/install fgb/contrib
Software marcado con fbg's contrib se instala:
contrib/install <user>/<package>
Dependencias básicas
contrib/install fgb/z
contrib/install fgb/bz2
contrib/install fgb/openssl
mercurial y ptyon
contrib/install bichued/python
contrib/install bichued/hg
Desktop
Take screenshot
cat /dev/screen > screenshot
cat /dev/screen > screenshot | topng > screenshot.png
tojpg < /dev/window > window.jpg
Utilerias
lsrupd Script para hacer copia de /n/sources, no disponible donde la wiki deice que debe estar.
switch($#*) {
case 2
basehier=$1^/;
basedort=$2^/;
case *
echo usage: lsrupd to from >[1=2]
exit
}
ramfs;
begin=`{date};
echo $begin;
cd $basehier;
lsr -dt > /tmp/lsr;
if(! test -e $basedort^lsr) {
echo -n creating other lsr ...;
cd $basedort;
lsr -dt > /tmp/lsr.dort;
echo done;
}
if not {
cp $basedort^lsr /tmp/lsr.dort;
}
comm -3 /tmp/lsr /tmp/lsr.dort | @{
while() {
next=`{awk '{print $1; exit;}'};
if(~ $next './') {
next=`{awk '{print $1; exit;}'};
}
if(~ $next `) {
exit
}
echo -n trying: $next ...;
hier=$basehier^$next;
dort=$basedort^$next;
hasfiles=0;
isdirectory=0;
hierexist=0;
if( test -e $hier) {
hierexist=1;
if( test -d $hier) {
hasfiles=1;
dirfiles=`{ls $hier};
if(~ $dirfiles `)
hasfiles=0;
}
}
dortexist=1;
if( ! test -e $dort)
dortexist=0;
if( ~ $hierexist 1 && ~ $dortexist 0) {
if(! ~ $hasfiles 1) {
echo rm $hasfiles : $next;
rm -rf $hier;
}
}
if not {
if( ~ $dortexist 1) {
dortnewer=0;
if( test $dort -nt $hier) {
dortnewer=1;
if(! ~ $hasfiles 1) {
echo rm $hasfiles : $next;
rm -rf $hier;
}
}
if( test -d $dort) {
if( ~ $dortnewer 1 || ~ $hierexist 0) {
mkdir -p $hier;
echo mkdir: $next;
}
}
if not {
if( ~ $dortnewer 1 || ~ $hierexist 0) {
base=`{basename -d $hier};
if( ! test -e $base) {
mkdir -p $base;
echo mkdir: $next;
}
if( ! test -r $dort) {
echo touch: $next;
touch $hier;
}
if not {
echo fcp $dortnewer $hierexist : $next;
fcp -x $dort $hier;
}
}
}
}
}
echo done;
}
}
echo started: $begin;
echo ended: `{date};
unmount /tmp;
Drawterm
Autenticación
echo 'key proto=p9sk1 dom=plan9me user=glenda !password=secret' >/mnt/factotum/ctl
aux/listen1 -t tcp!*!ncpu /bin/cpu -R &
Conexión remota
drawterm -c 192.168.0.10 -a 192.168.0.10 -u glenda
Referencias
- Plan 9 http://plan9.bell-labs.com/wiki/plan9/
- Plan 9 Basics
- Plan9 from Bell Labs
- Plan 9 Setup
- http://www.ueber.net/who/mjl/plan9/plan9-obsd.html
- 9grid Frances
- 9grid Italiano
