linux magazine - edición en castellano, nº 16
DESCRIPTION
Puesto a la venta abril 2006. Tema de Portada: Voz sobre IP. DVD: CentOS 4.2.TRANSCRIPT
Vo
z sob
re IP
Linp
ho
ne
Kp
ho
ne
Aste
risk S
kyp
e Live
Distro
s Qu
ak
e 4 M
ara
bu
nta
SS
L-Ex
plo
rer A
nu
bis
MarabuntaLa nueva tecnología para
redes *realmente* anónimas p48
PstoeditConvierte gráficosvectoriales p45
NÚMERO 16 • P.V.P 6,95 €
OpenOffice 2.0Evaluamos la nueva versión de esta Suite
W W W . L I N U X - M A G A Z I N E . E S
LIN
UX M
AGAZIN
E
NÚMERO 16
Edición enCastellano
VOZSOBRE IP
Herramientas de telefonía en Internet
Crea una centralita doméstica con Asterisk p14
Llama desde Linux con Linphone y Kphone p19
Configura Skype para tus llamadas p24
SSL-ExplorerRedes Privadas Virtuales sencillas p39
AnubisEncriptación Global para tu correo p62
GimpConsigue fotos perfectas p72
JuegosQuake IV:
Stroggs hasta en
la sopa p84
Distros LiveEncuentra la herramienta perfecta
en nuestra selección p40
CentOS 4.2completo
Linuxempresarial abajo coste
Versiones de32 y 64 bits
Yo creo que es porque no sabemos
explicarnos. La cantidad de dudas
que despierta el software libre en
la mente del ejecutivo corporativo medio
es asombrosa. Y parece que no haya
ninguna cantidad de conferencias, ponen-
cias y congresos, capaces de levantar el
velo de misterio y confusión.
La viabilidad del software libre en la
empresa se puede demostrar de manera
empírica. Basta con un “mire usted el mer-
cado”. Ahí tenemos IBM, Red Hat, HP,
Mercadona, Gas Natural y miles de empre-
sas más que implementan soluciones
libres. Estúdiese sus modelos de negocio (o
el de sus proveedores, según el caso) y ten-
dremos uno o varios modelos viables.
Pero, ni por esas. Quizás pueda venirle
bien al lector con ganas y tiempo de evan-
gelizar la siguiente lista de dudas que se
me ha planteado a lo largo de los años, y
que sirve como excusa antiprocesal para
demorar la adopción del software libre:
El problema es el control
Si todo el mundo puede meterle mano al
código ¿cómo se puede controlar eso? ¿No
acabarán como los programas de la mula,
llenos de spyware, troyanos y viruses?
Esta objeción es fruto del descono-
cimiento de la manera de trabajar de la
comunidad del software libre. Las jerar-
quías, controles de versiones, filtros
humanos y tecnológicos, y sofisticados
mecanismos de depuración y auditoría
garantizan la calidad del código libre de
manera mucho más efectiva que cualquier
control de una empresa dedicada al soft-
ware propietario. Bdale Garbee describió el
proceso de coordinación de un grupo de
desarrolladores como “pastorear gatos” y
si hay algo en lo que los líderes de proyec-
tos destacan es en crear protocolos que les
permitan ser excelentes pastores de gatos.
¡Ah! ¿Y no hemos mencionado lo de la
transparencia del código al ser abierto?
El problema son las ideas
Pero ¿y mi idea? ¿Mi maravillo$a idea
con la que voy a ganar un millón de pavos?
Si la gente puede copiar y distribuir
mi maravillo$a idea, ¿dónde quedo
yo con mi gallina de los huevos de
oro? El empresario del ramo que
confíe el éxito de su empresa en
que no le copien la idea, va dado.
Es más: va muy dado. Estamos
hablando de software, no de un
artefacto físico que consume
recursos para su replicación. Si los
chinos pueden copiar y, de hecho,
copian relojes, vaqueros, juguetes,
colonias, motos, bicicletas, cámaras, televi-
sores, coches e, incluso, maquinaria
pesada para el procesamiento de cartón,
que lo he visto yo, ¿no podrán con unos
pocos miles de líneas de código? Aún si el
largo brazo de la ley pudiera llegar tan lejos
como el lejano oriente y se pudiera obligar
a esos seres inescrutables de ojos rasgados
a seguir las reglas del juego occidental que
impidiera el pirateo directo, no hay
ninguna ley que impida el pirateo de ideas
y que su competidor saque una versión
mejorada, más rápida y con más funciona-
lidades de tu “killer app” a un cuarto de su
precio.
Bienvenido al libre mercado, donde
dormirse en los laureles significa claudicar
ante el sueño eterno.
El Problema es el dinero
Pero si tengo que regalar mi producto…
Me gustaría coger al idiota que dijo que el
software libre es gratuito y hacerle copiar
“Libre no es igual a gratis” hasta que sólo
le quedasen muñones sangrantes. Nadie
ha dicho que haya que regalar nada, pero
claro, según UNA licencia de software
libre, ha de proveer usted a sus clientes de
copias del código fuente y permitirle que lo
modifique y redistribuya a su vez. Vaya
puñeta.
Pero, vamos a ver, yo sé cambiarle el
émbolo del depósito de un retrete, ¿quito
por ello el trabajo al fontanero del barrio?
Probablemente por una cosa tan pequeña,
ni siquiera se dignaría a moverse de
delante del televisor. Ahora bien, si he de
levantar el suelo del baño en busca de una
fuga en una tubería, puede que me lo
piense. No hay nada ni físico ni legal que
me lo impida: puedo comprar las he-
rramientas y el material necesario a un pre-
cio razonable, puedo blandir un pico…
Pero sería mejor llamar al especialista.
Lo mismo ocurre con el software. Ahí
fuera están las herramientas para el desa-
rrollo de cualquier cosa, pero hay empresas
que desarrollan software, y hay empresas
que lo utilizan. Para éstas, para sus
clientes, de poco les sirve el código fuente.
Si lo que teme es al intrusismo por parte
de terceros y no encuentra dentro de usted
la seguridad de poder ofrecer el mejor ser-
vicio para su propio producto, puede que
no sea el especialista que declara ser y, en
tal caso, ¿qué hace usted aquí? Que yo
sepa a los buenos fontaneros nunca les
falta trabajo. Sea usted el mejor
“fontanero” de su producto, el que tiene
todas las respuestas, el que mejor mante-
nimiento da, y verá como no le faltan
clientes. Y a esos cóbreles, cóbreles todo y
sin pudor. No se corte.
Lo dicho: Libre no es igual a gratis. Me lo
escriba cien veces.
3
EDITORIAL
3Número 16W W W . L I N U X - M A G A Z I N E . E S
Estimado Lector de Linux Magazine
Nos sentimos orgullosos de nuestrosorígenes como publicación, que seremonta a los primero días de la revo-lución Linux.Nuestra revista hermana,la publicación alemana Linux Maga-zin, fundada en 1994, fue la primerarevista dedicada a Linux en Europa.Desde aquellas tempranas fechashasta hoy, nuestra red y experienciahan crecido y se han expandido a lapar que la comunidad Linux a lo anchoy largo del mundo. Como lector deLinux Magazine, te unes a una red deinformación dedicada a la distribucióndel conocimiento y experiencia téc-nica. No nos limitamos a informarsobre el movimiento Linux y de Soft-ware Libre, sino que somos parteintegral de él.
ME LO ESCRIBA CIENVECES
Paul C. Brown
Director
4 Número 16
CONTENIDOS • Linux Magazine nº 16
W W W . L I N U X - M A G A Z I N E . E S
27 LivedistrosUn buen número de distribuciones live
de Linux te están esperando en Internet.
La elección correcta depende de tus
necesidades.
32 OpenOffice 2.0Después de muchas versiones pre-relea-
se y de informes preliminares, al fin ha
llegado el nuevo OpenOffice.
36 CentOSLa estabilidad y longevidad de las distri-
buciones empresariales de Linux cues-
tan su buen dinero…¿o no tanto?
38 LibrosAnalizamos los títulos “Programación
con Smalltalk” y “Guadalinex v3” de la
editorial Editlin.
39 SSL ExplorerSSL-Explorer proporciona una interfaz
basada en web para configurar una red
privada virtual.
42 Menu SystemUno se olvida de que está trabajando
con un ordenador cuando navega por
los ficheros de audio, imágenes y videos
favoritos con Mpeg Menu System.
45 Pstoeditpstoedit nos permite convertir archivos
Postscript y PDF a formatos de imagen
vectorial.
48 MarabuntaLa privacidad y anonimato en Internet es
un mito... hasta ahora. David Gascón nos
revela su último invento para mantener
la identidad en secreto: Marabunta.
52 PerlEste mes veremos cómo evitar la trage-
dia de la pérdida de archivos con un sis-
tema de control transparente basado en
Perl.
57 PythonDespués de tanto framework, librerías y
plataformas web enormes ya era hora de
que alguien nos diese algo divertido.
61 La Columna de CharlyHTTPing podría ser la herramienta
perfecta para comprobar la salud de
su servidor web.
62 Anubis
El servicio de manipulación de correo
Anubis permite la encriptación centra-
lizada del correo saliente.
13 Voz sobre IPEste mes os mostramos algunas de las
herramientas más populares para la tele-
fonía por Internet bajo Linux.
14 Asterisk
Un viejo ordenador es todo lo que se
necesita para construirse uno mismo
un servidor telefónico personal.
19 LinphoneSi deseas llamar a amigos que se
encuentran en países lejanos, no des-
cuelgues el teléfono: enchufa los auricu-
lares y arranca Linphone.
22 KphoneSe puede hablar con el mundo con una
tarjeta de sonido normal y corriente, con
una cuenta de un proveedor de telefonía
de Internet y con Kphone.
24 SkypeEl famoso Skype es una opción VoIP gra-
tuita pero no libre. Aprende a configu-
rarlo adecuadamente bajo Linux.
DESARROLLO
LINUX MAGAZINE
3 Editorial
6 DVD Linux Magazine
8 Inseguridades
10 Noticias Kernel
12 Correo
94 Eventos
94 Información de Contacto
95 Subscripciones
97 Linux Local
98 Próximo Número
EVALUACIÓN
PRÁCTICO PRÁCTICO
PORTADA
5Número 16W W W . L I N U X - M A G A Z I N E . E S
84 Juegos: Quake IV
Llega a Linux todo un clásico de los
first-person-shooters: Quake 4 trae más
armas, más efectos, más sonidos y más
malos a quienes masacrar.
86 Konsultorio
Si tienes algún problema de
configuración, o simplemente quieres
conocer mejor cómo funciona Linux,
Klaus Knopper, el creador de Knoppix,
te ayuda.
89 Opinion
Pia Waugh, vice-presidenta de Linux
Australia, nos da su parecer sobre las
mujeres en el software libre, el lugar que
ocupan y las dificultades a las que se
enfrentan.
90 OSWC2006
La recta final de la segunda edición de la
OSWC se celebró en Málaga en febrero.
Linux Magazine estuvo allí.
COMUNIDAD
MÁS DETALLES EN LA Pág 6
70 Kpowersave
KPowersave ofrece a los usuarios de
KDE una interfaz sencilla y fácil para
configurar los opciones de admi-
nistración de energía.
72 Gimp
Gimp te ayudará a mejorar la calidad de
tus menos-que-perfectas imágenes digi-
tales.
74 Fortune
El programa Fortune presenta un refrán
o una broma cuando arrancas una
sesión en tu terminal. También puedes
adjuntarlo a tu firma de correo para ale-
grar tus mensajes.
76 Educación
Squeak puede ser el entorno educativo
definitivo. Comenzamos su análisis para
su aplicación en las aulas en este artícu-
lo de Juan Rafael Fernández.
81 Linea de Comandos: Ispell
Nadie está a salvo de gazapos y de los
enredos con palabras. Correctores de
ortografía como Ispell y Aspell se
encargan de mantener las letras en su
lugar correcto.
� Distribución completaCentOS 4.2
� Estabilidad empresarial abajo coste
� Compilado a partir de lasfuentes de distribucionescomerciales líderes del mer-cado
� Versiones de 32 y 64 bits
� Soporta sistemas de ficheroACL, herramientas de migra-ción SAMBA, clustering, etc.
LINUX USER
CENTOS 4.2
DVD LINUX MAGAZINE
6 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Si está buscando una distribución orien-
tada a la empresa, pero no está dispuesto a
pagar un precio elevado, puede ser usted el
perfecto candidato para probar CentOS.
CentOS es una distro empresarial plena-
mente funcional, estable y lista para usar
sin el elevado coste económico. Estamos
orgullosos de ofrecer CentOS 4.2 como el
DVD de este mes en Linux Magazine.
CentOS se basa en el código fuente de
Red Hat Enterprise Linux. El DVD de este
mes es el equivalente a Red Hat Enterprise
Linux 4 update 2, un sistema Linux pun-
tero que podemos encontrar con precios
que varían desde 179 a 1499 dólares.
Esta distribución Linux, con toda la
potencia empresarial, es ahora suya de
En los últimos años hemos asis-
tido a la aparición de un nueva
especie en el ecosistema Linux:
las distribuciones empresariales. Las
distros empresariales se han creado
para cubrir la demanda del mundo de
la empresa y se han diseñado para con-
seguir un rendimiento estable y una
larga vida útil. Estas cualidades son
altamente apreciadas en el entorno
corporativo y por esta razón, las dis-
tros empresariales tienen un precio ele-
vado.
manera totalmente gratuita. Simplemente
tiene que introducir el DVD de Linux Maga-
zine y comenzar la instalación. Además, el
DVD de este mes viene con las versiones de
32 y 64 bits de CentOS.
¿Por qué CentOS?El selecto pedigrí de CentOS hace de Cen-
tOS 4.2 la herramienta perfecta para las
aplicaciones de servidor. Podemos usar
CentOS como servidor Web, servidor de
correo, servidor de bases de datos o servi-
dor de aplicaciones. CentOS incorpora
todas las sofisticadas funcionalidades de
compatibilidad con Windows incluidas en
Red Hat Enterprise Linux. Podemos usar
CentOS como controlador de dominios pri-
marios o secundarios, o como servidor de
clientes Windows basado en Samba y SMB.
CentOS es también un sistema de escrito-
rio Linux plenamente funcional. Encon-
traremos la mayoría de las herramientas de
escritorio más populares, como OpenOf-
fice.org 1.1.2, Mozilla 1.7.12, Firefox 1.0.7,
Evolution 2.0.2, Gaim 1.3.1-0.el4.3, X-chat
2.4.0, Konqueror 3.3.1, Gimp 2.0.5-5,
Gnome 2.8 y KDE 3.3.
Ya sea trabajando en un servidor empre-
sarial, en un servidor para la oficina o
incluso en un sistema común de escritorio,
encontraremos en CentOS una distribución
estable, de alto rendimiento, fácil de
administrar y de utilizar. Abra su DVD de
este mes y dispóngase a explorar el fasci-
nante mundo de CentOS, el Linux empre-
sarial de la comunidad.
Figura 1: Una interfaz gráfica de usuario nos guía en la instalación y
primer arranque.
Figura 2: CentOS es una plataforma realmente completa para
desarrolladores de software.
El CentOS Project lo compone un
equipo de 11 desarrolladores. Estos
desarrolladores donan su tiempo y
recursos al proyecto, y no se les com-
pensa de ninguna manera.
La descarga de CentOS es totalmente
gratuita. Sin embargo, si tienes la posi-
bilidad de donar algo de dinero al
proyecto, será apreciado enormemente.
EL CentOS Project desea poder mandar
desarrolladores la los principales
encuentros de Software Libre del
mundo para que representen a CentOS
en estos eventos.
Así mismo hay 14 servidores controla-
dos en estos momentos por el proyecto
CentOS que han sido donados por
proveedores de servicios de todo el
mundo. Usamos estos servidores para
distribuir CentOS a más de 70 mirrors
públicos por todo el mundo, propor-
cionar semillas de Bittorrent, hospedar
nuestra página Web, proporcionar
nuestra DNS y servicios de lista de
correo y dar soporte a cualquier otra
cosa que se haga desde el proyecto
CentOS. Si usted usa CentOS y puede
donar un servidor (y ancho de banda) a
nuestro proyecto, o donar servicios de
mirror para el proyecto de CentOS,
estas donaciones serán verdadera-
mente apreciadas.
Si esta usted interesado en donar
tiempo, dinero o espacio en servidores,
por favor diríjase a:
http://www.centos.org/donate/
Cómo puedes ayudar
DVD LINUX MAGAZINE
7Número 16W W W . L I N U X - M A G A Z I N E . E S
DESTACAMOS
CentOS puede funcionar como susti-
tuto de dominios Server Message
Block (SMB) utilizando Samba 3.0.10.
CentOS y Samba pueden usarse
como un controlador de dominios
primarios o secundarios SMB
seguro, servidor de ficherso SMB o
servidor de impresión SMB. CentOS
incluye también OpenLDAP 2.2.13 y
las smbldap-tools de IDEALX S.A.S
(http://www.idealx.org/).
Podemos usar CentOS como servidor
de correo de Internet con Sendmail
8.13.1, Postfix 2.1.5, o Exim 4.43.1.
También se incluye el sistema de
webmail Squirrelmail 1.4.3, junto con
Dovecot 0.99.11 y Cyrus-Imapd 2.2.12
para el soporte POP3 e IMAP.
En cuanto a servidor Web, incluye
Apache 2.0.52 y php 4.3.9.
CentOS nos ofrece las bases de datos
MySQL 4.1.12 y PostgreSQL 7.4.8.
Otros servidores de bases de datos
de terceros como Oracle 8i, 9i y 10g,
e IBM DB2, funcionan en CentOS,
aunque no están soportados oficial-
mente por los proveedores.
CentOS incluye también el servidor
FTP vsftpd 2.0.1, el servidor RADIUS
freeradius 1.0.1 y NFS 1.0.6.
En cuanto a aplicaciones de escrito-
rio, tenemos OpenOffice.org 1.1.2,
Mozilla 1.7.12 , Firefox 1.0.7, Evolu-
tion 2.0.2, Gaim 1.3.1, X-chat 2.4.0,
Konqueror 3.3.1 y Gimp 2.0.5, así
como los escritorios Gnome 2.8 y
KDE 3.3.
Figura 3: El SO CentOS es un sistema de escritorio completamente
funcional.
Figura 4: CentOS incorpora un cortafuegos integrado.
AYUDA Y SOPORTECentOS es un proyecto basado en la comunidad y la ayuda se proporciona por
parte de voluntarios. Para ayuda y soporte, podemos acudir a los foros de la
página Web en: http://www.centos.org/modules/newbb/. Podemos también acudir
a las listas de correo: http://lists.centos.org/mailman/listinfo
Podemos además pasarnos por los canales del IRC de CentOS en irc.freenode.net
(#centos, #centos-devel, #centos-mirror, #centos-ppc, #centos-sparc), y la base de
datos de bugs de CentOS en http://bugs.centos.org/.
¿DVD DEFECTUOSO?Si tu DVD está defectuoso será reemplazado
por uno nuevo. Por favor envía un email a
INSEGURIDADES
Schlagwort sollte hier stehenLINUX USERINSEGURIDADES
� scponlyEl paquete scponly es una shell
restringida que permite unos pocos
comandos predefinidos. A menudo se
usa como un complemento a OpenSSH
para proporcionar el acceso a usuarios
remotos sin la necesidad de cesión de
privilegios remotos.
Max Vozeler descubrió que el
comando scponly permite a los
usuarios crear un entorno chroot en
directorios arbitrarios. Además, Pekka
Pessi informó acerca de otro problema
de seguridad: scponly validaba
insuficientemente los parámetros de la
línea de comandos a scp o al comando
rsync.
Un atacante local podría obtener
privilegios de superusuario mediante un
chroot a directorios arbitrarios que
contengan enlaces duros a programas
setuid. Un usuario remoto de scponly
también podría enviar parámetros
maliciosos a scp o al comando rsync que
le permitirían eludir las restricciones de
la shell y ejecutar programas arbitrarios. �
Referencia Gentoo: GLSA-200512-17
�ApacheEl Servidor HTTP Apache es un
servidor de web popular y libremente
disponible.
Una fuga de memoria en de la versión
worker MPM permitiría que atacantes
remotos causaran una denegación de
servicio (consumo de memoria)
mediante conexiones abortadas. El
Proyecto de Vulnerabilidades y
Exposiciones Comunes (Common
Vulnerabilities and Exposures o CVE –
http://cve.mitre.org) ha asignado a este
problema el nombre CVE-2005-2970.
Esta vulnerabilidad sólo afecta a los
usuarios que están usando la versión
worker MPM no predeterminado.
Se descubrió un fallo en el módulo
mod_imap en el uso de la directiva
Referer con mapas de imágenes. Con
determinadas configuraciones del sitio,
un atacante remoto podría realizar un
ataque de scripting multisitio si la
víctima es forzada a realizar una visita
a una URL maliciosa usando
determinados buscadores de web.
(CVE-2005-3352)
Se descubrió un fallo de puntero
NULL en mod_ssl que afectaba a las
configuraciones de servidores donde
un host virtual SSL es configurado con
un acceso de control y un documento
cliente de error 400. Este fallo se
traduciría sólo en una denegación de
servicio si se usa la versión worker
MPM no predeterminado. (CVE-2005-
3357) �
Referencia Mandriva: MDKSA-2006:007
Referencia Red Hat: RHSA-2006:0159
� xpdf,gpdf,kpdf
xpdf,gpdf y kpdf son visores para
ficheros PDF (Portable Document
Format).
Distribuidor Fuente Seguridad ComentarioDebian Info:http://www.debian.org/security/ Los avisos de seguridad actuales se in-
Lista:http://www.debian.org/debian-security-announce/ cluyen en la página de inicio. Los avisos
Referencia:DSA-…1) se proveen como páginas HTML con
enlaces a los parches. Los avisos también
incluyen una referencia a la lista de
correo.
Gentoo Info:http://www.gentoo.org/security/en/index.xml Los avisos de seguridad actuales para
Foro:http://forums.gentoo.org/ la lista Gentoo en el sitio web de
Lista:http://www.gentoo.org/main/en/lists.xml seguridad de Gentoo enlazan desde la
Referencia:GLSA:… 1) página principal. Los avisos se presentan
en HTML con códigos para fusionar las
versiones corregidas.
Mandrake Info:http://www.mandrakesecure.net Mandrakesoft posee su propios sitio web
Lista:http://www.mandrakesecure.net/en/mlist.php que versa sobre temas relacionados con
Referencia:MDKSA:… 1) la seguridad.Entre otras cosas,incluye
avisos seguridad y referencias a las
listas de correo.Los avisos son páginas
HTML,pero no contienen enlaces a los
parches.
Red Hat Info:http://www.redhat.com/errata/ Red Hat archiva los fallos de seguridad
Lista:http://www.redhat.com/mailman/listinfo/ bajo lo que denominan erratas.A
Referencia:RHSA-… 1) continuación los problemas para cada
versión de Red Hat se agrupan.Los avisos
de seguridad se proveen como una
página HTML con enlaces a los parches.
Slackware Info:http://www.slackware.com/security La página de inicio contiene enlaces al
Lista:http://www.slackware.com/lists/(slackware-security) archivo de seguridad de la lista de correo.
Referencia: [slackware-security]… 1) No existe información adicional sobre
seguridad en Slackware.
Suse Info:http://www.suse.de/en/private/support/ Ya no existe un enlace a la página de
security/index.html seguridad tras un remodelado en el sitio
Parches:http://www.suse.de/en/private/ web de SuSE.Existe información en la
download/updates Lista:suse-security-announce lista de correos y los avisos. Los parches de
Referencia:SUSE-SA… 1) seguridad para versiones individuales de
SuSE Linux se muestran de color rojo en el
sitio de actualizaciones generales.
Contiene una corta descripción de la
vulnerabilidad que soluciona el parche.1) Todos los distribuidores muestran correos de seguridad en el campo Subject.
POLITICAS DE SEGURIDAD DE LAS DISTRIBUCIONES MAYORITARIAS
8 Número 16 W W W . L I N U X - M A G A Z I N E . E S
INSEGURIDADES
que posiblemente ejecutara código
arbitrario. El Proyecto de
Vulnerabilidades y Exposiciones
Comunes (Common Vulnerabilities and
Exposures o CVE – http://cve.mitre.org)
ha asignado a estos problemas los
nombres CVE-2005-3191, CVE-2005-
3192 y CVE-2005-3191. �
Referencia Red Hat: RHSA-2005:878
� cURLcURL es una herramienta para la
obtención de ficheros de servidores
FTP, HTTP, Gopher, Telnet y Dict
usando cualquiera de los protocolos
soportados.
Stefan Esser descubrió un error off-
by-one en un bucle. Es posible ejecutar
código arbitrario sobre la máquina de
un usuario si éste consigue que se
ejecute un bucle con una URL
cuidadosamente manipulada. El
Proyecto de Vulnerabilidades y
Exposiciones Comunes (Common
Vulnerabilities and Exposures o CVE –
http://cve.mitre.org) ha asignado a este
problema el nombre CVE-2005-4077. �
Referencia Debian: DSA-919-1 curl
Referencia Gentoo: GLSA-200512-09
Referencia Mandriva: MDKSA-2005:224
Referencia Red Hat: RHSA-2005:875
� VMware WorkstationVMware Workstation es una potente
máquina virtual para desarrolladores y
administradores de sistemas.
Tim Shelton descubrió que
vmnetnatd, el módulo host que
proporciona la red estilo BAT para
sistemas operativos huéspedes de
VMware es incapaz de procesar
peticiones EPRT y PORT FTP
incorrectas.
Usuarios de sistemas operativos
huéspedes maliciosos que usan la red
NAT o Workstation VMware locales
podrían explotar esta vulnerabilidad
para ejecutar código arbitrario en el
sistema host con privilegios elevados. �
Referencia Gentoo: GLSA-200601-04
Se han descubierto algunos fallos en
estos visores de PDFs. Un atacante
podría construir un fichero PDF
cuidadosamente manipulado que haría
posible que el visor se colgara o que
posiblemente ejecutara código
arbitrario cuando se abriera. El Proyecto
de Vulnerabilidades y Exposiciones
Comunes (Common Vulnerabilities and
Exposures o CVE – http://cve.mitre.org)
ha asignado a estos problemas los
nombres CVE-2005-3191, CVE-2005-
3192 y CVE-2005-3191. �
Referencia Gentoo: GLSA-200512-08
Referencia Red Hat: RHSA-2005:867
� CUPSEl Common UNIX Printing System
(CUPS) proporciona una capa de
impresión portable para sistemas UNIX
y Linux.
Se descubrieron algunos errores en la
manera en la que CUPS procesa los
PDFs. Un atacante podría construir un
PDF haciendo que CUPS se colgara o
Estabilidad y DesarolloAdrian Bunk ha propuesto una sencilla
reforma al método actual del desarrollo del
kernel. En estos momentos, el árbol oficial
del kernel dispone de unas semanas de
aceptación de código nuevo, seguido de
unas semanas de esfuerzos de
modificación y estabilización. Se prosigue
la estabilización en el árbol w.x.y.z
después del lanzamiento oficial, que
implementa estrictas restricciones a la hora
de la aceptación de parches.
Según las propuestas de Adrian, esto
seguiría siendo igual, pero después de cada
lanzamiento oficial, el árbol w.x.y.z
anterior relajaría las restricciones de
parches para que el proceso se pareciese
más al de la época en que las versiones
pares buscaban la estabilidad y las impares
buscaban el desarrollo.
Una vez se liberase la versión 2.6.17, por
ejemplo, Adrian sugiere que el árbol
2.6.16.z continue su desarrollo de la
misma manera en que se desarrollan los
árboles 2.4 y 2.2, buscando la estabilidad
global a la vez que se aceptan
cautelosamente retroportes y
actualizaciones adicionales.
La idea actual de Linus Torvalds y André
Morton, así como la de otros
mantenedores primarios, es que las
distribuciones Linux son las que tienen
que responsabilizarse de la estabilización
del kernel para sus propios lanzamientos.
Se reconocen oficialmente las
distribuciones como parte integral del
proceso de desarrollo que cuida de la
estabilidad. Esta decisión no se basa en una
consulta a los fabricantes de distribuciones.
Simplemente reconoce que las
distribuciones liberan kernels fuertemente
parcheados, que la mayoría de la gente
utiliza kernels de distribuciones y que las
pruebas de estabilidad se incluyen en las
modificaciones de cada distribución.
El árbol w.x.y.z se creó para tratar los
problemas de estabilidad más
recalcitrantes del árbol principal. Se
impusieron estrictas limitaciones a este
árbol, precisamente porque Linus no
deseaba que se convirtiera en otra rama de
desarrollo. A la luz de lo cual, la propuesta
de Adrian parece sugerir que la actual
indiferencia hacia la inestabilidad del
modelo de desarrollo no ha funcionado, y
que se debe volver a un modelo más
similar al que había antes. No es
sorprendente que éste haya sido un tema
polémico pero que sin duda, volverá a
surgir.
Una de las mayores objeciones a la idea
de Adrian es que sería una labor más
tediosa y aburrida de lo que cualquiera
pudiera soportar. Linus lo ha dicho de las
propuestas iniciales para el árbol w.x.y.z y
la gente se lo está diciendo ahora a Adrian.
El problema con ese argumento es que
hemos tenido muchas series estables que
han funcionado. Y la objeción de Linus de
que las estabilización es “aburrida” es más
un reflejo de sus gustos personales que el
interés del desarrollo del kernel. En todo
caso, sí han habido numerosos intentos de
crear un árbol estable al viejo estilo.
Sin embargo, incluso los mantenedores
del árbol w.x.y.z , un proyecto mucho más
restringido, afirman que los problemas de
un esfuerzo de estabilización más activa
son casi insuperables. Por otra parte, la
sugerencia de Adrian indica que hay
algunos desarrolladores del árbol w.x.y.z
que encuentran que el depositar las tareas
de estabilización en las distribuciones es
insuficiente.
Licencia IncorrectaSe ha admitido código de Silicon Graphics
que inadvertidamente contenía
notificaciones muy restrictivas en materia
de copyright que, a efectos prácticos, ha
puesto al kernel en posición de violación
de copyright durante varios meses. Resulta
que el ingeniero de SGI que donó el código
simplemente se olvidó de cambiar los
términos de la licencia a los de la GPL en el
fichero de cabecera. . Este descuido fue un
error sin mala intención que se corrigió
facilmente, pero el hecho es que este tipo
de error ocurre como media un par de
veces al año.
Linus Torvalds ha implementado una
especie de sistema de seguimiento, donde
cada revisor “firma” la calidad y legalidad
de cada parche. Este sistema de revisión se
creó especificamente para evitar futuros
inconvenientes de ataques tipo SCO y para
que Linus pudiera encontrar fácilmente los
verdaderos orígenes de cualquier tipo de
código en el kernel y evitar así violaciones
de la legalidad.
A pesar de que el sistema de
seguimiento no es perfecto, tal vez no
tiene por qué serlo. El ataque de SCO tenía
como intención dañar a Linux, y tuvo éxito
en el sentido en que los desarrolladores del
kernel tuvieron que adoptar un poquito
más de burocracia para su protección.
Un sistema perfecto entrañaría incluso
más burocracia y haría que fuese incluso
más difícil que desarrolladores, (sobre todo
nuevos desarrolladores), contribuyeran al
desarrollo del kernel.
NOTICIAS DESDE ELKERNEL
Schlagwort sollte hier stehenLINUX USERNOTICIAS DEL KERNEL
La lista de correo del kernel de Linux comprende lo princi-
pal de las actividades de desarrollo de Linux. El volumen
del tráfico es inmenso, alcanzándose a menudo los diez
mil mensajes semanales. Mantenerse al día de todo lo que
sucede en el desarrollo del kernel es casi imposible para
una sola persona.
Sin embargo Zack Brown es uno de los pocos valientes
que lo intentan y a partir de ahora, podrá leerse lo último
de las discusiones y decisiones con respecto del kernel de
Linux llevados de la mano de este experto.
Zack ha publicado un resumen online semanal llamado
“The Kernel Traffic Newsletter” durante cinco años. Linux
Magazine te trae ahora la quintaesencia de las actividades
del kernel de Linux del mayor especialista en el tema.
10 Número 16 W W W . L I N U X - M A G A Z I N E . E S
MiniconfigLa nueva característica miniconfig, que
apareció en el kernel 2.6.15, está
llamando mucho la atención a los
desarrolladores. Miniconfig permite a los
usuarios especificar sólo las
características del kernel que desean. El
proceso de compilación se encarga a
posteriori de resolver todas las
dependencias.
Debido al hecho de que los ficheros
miniconfig son mucho más sencillos que
los ficheros config tradicionales, tienden
a ser portables de una versión del kernel
a otra, se pueden editar a mano sin
romper nada, y al leerlos, se ven de un
vistazo todas las características
principales que soportará el kernel.
Rob Landley está invoulcrado en
mucho del trabajo que se esté llevando a
cabo para extender miniconfig. Ha
implementado un nuevo objetivo de
compilación make miniconfig con el
cual, en vez de utilizar un fichero
miniconfig para generar un fichero
config antes de la compilación, se genera
un nuevo kernel directamente del propio
miniconfig, lo que es mucho más
conveniente que el mecanismo incluido
por defecto en la versión 2.6.15.
Rob también ha escrito un script que
genera ficheros miniconfig a partir de un
fichero config completo. Lo que hace en
esencia es eliminar todas las
dependencias de un fichero config hasta
que sola quedan las características
primarias. En estos momentos, el script es
muy lento, al utilizar el método iterativo
de reconstruir el fichero config completo
después de cada eliminación para ver
cómo afecta al conjunto. A pesar de su
lentitud, funciona, y existe la posibilidad
de encontrar métodos más veloces para la
generación de ficheros miniconfig.
Suspensión de Software enEspacio de UsuarioPavel Machek recientemente ha
implementado una versión prototipo de
suspensión de software que coloca
mucha de su funcionalidad fuera del
kernel, y sólo una mínima parte tiene
una interfaz con el núcleo. La parte de la
interfaz de hecho se sigue discutiendo, al
ser muy dificultoso elegir entre las
numerosas, pero imperfectas, opciones
disponibles.
Dave Jones ha dicho que si los planes
de Pavel tienen éxito, Red Hat podría
modificar su propia versión de
suspensión de software, ya que su kernel
dispone de un rootkit para la prevención
de parches que podría interferir con la
escritura a regiones de memoria
arbitrarias. También hay que destacar
que Dave considera la suspensión de
software en espacio de usuario una mala
idea, se mire como se mire.
Sin embargo, la gente de Red Hat se lo
puede tomar con calma, ya que la
aceptación de los parches de Pavel no
necesitarán de la eliminación de
cualquier característica existente. Ambos
métodos de suspensión podrían coexistir
pacíficamente durante una buena
temporada antes de la toma de cualquier
decisión.
Nigel Cunningham también está
trabajando en una versión de suspensión
que plantea a su vez nuevos problemas.
Por un lado, se incluye mucho código en
el kernel. Por otro, de tener razón Pavel,
mucho de lo que hace el código de Nigel
podría realizarse en espacio de usuario.
La gente involucrada en el desarrollo
de la suspensión de software no parece
llevarse muy bien y muchas de la
discusiones tienden a acabar en
enfrentamientos directos.
Una lástima. �
NOTICIAS DEL KERNEL
12
Resumiendo: Los que hacemos Linux
Magazine creemos que nuestra publi-
cación es como el cerdo de las revistas
de Linux: todo se aprovecha. Los con-
tenidos bien valen el precio de porta-
da, y los DVDs están estupendos para
los que necesitan software bueno y
rápido (nosotros mismos los uti-
lizamos para nuestra máquinas).
Lo único que no tenemos claro es la
utilidad de nuestro director.
Distros NacionalesBuenos días,
Ante todo felicitaros por vuestra revista
que, en mi modesta opinión, la considero
la mejor de las existentes para nuestro SO
favorito.
Lo que os quiero pedir es que
publiquéis algo sobre la distribución que
se está creando en Castilla – La Mancha,
“Molinux”, y si es posible que la incluyáis
en el DVD.
Saludos y gracias,
Julio
El problema es que nosotros publi-
camos nuestros DVDs conjuntamente
con la versión internacional de la revista,
Linux Magazine International y por ello
las distros que escogemos han de tener
relevancia internacional.
Y no es que dudemos de la calidad de
la distro manchega. De hecho lo hemos
probado en la redacción y nos ha pare-
cido muy interesante. Además, reciente-
mente hemos publicado el JuegaLinEx
de la Junta de Extremadura a nivel
mundial, como DVD de portada en más
de 50.000 copias de revistas tanto en
inglés como en castellano y volveremos
a incluir nuevas distros nacionales a
medida que vayan alcanzando su
madurez.
LM
tros que se podían considerar punteras
y populares eran, a saber: SuSE, Red
Hat/Fedora, Mandrake (antes de ser
Mandriva) y Debian. Cuenta: cuatro.
Era lógico pensar que esto era lo que
demandaría el lector y por tanto, lógico
también pensar en sacar cuatro DVDs
al año y santas pascuas. Por otro lado
nos imaginábamos ahorrándonos el
quebradero de cabeza de tener que
pensar en cómo llenar con software de
calidad y útil un DVD todos los meses.
Pero las cosas han cambiado. Ahora
tenemos Ubuntu, ahora tenemos
JuegaLinEx, ahora tenemos CentOS,
ahora tenemos un montón de distros
que o bien ya existían, y han consegui-
do en este tiempo una madurez y com-
plejidad como para reclamar su hueco
en el mercado, o han nacido y han
alcanzado una popularidad inusitada
en pocos meses. Ahora, cuando nos
planteamos qué incluir en el DVD
hemos de preguntarnos: De entre todo
lo que hay ¿qué ponemos?
Por otro lado, el mercado manda y,
sí, nuestra intención era vender en
base a la calidad de nuestros con-
tenidos, pero, si bien podemos decir
que eso creemos haberlo conseguido,
hemos de complementar nuestras ven-
tas con la del comprador eventual,
aquel que pasa por el quiosco y se dice
“¡Hombre! ¡Tal distro por 6 euros! Me
lo compro”. El hecho de que todas las
revistas de Linux salgan con algo,
debería ser indicativo de que, por sí
sola, una revista de estas característi-
cas nunca se vende lo suficiente.
En cuanto a lo de los 64 bits. Pues ya
hemos publicado DVDs de portada
para estos sistemas, y el de este mes no
es una excepción. El DVD de CentOS
que incluimos en este número, aparte
de aportar un sistema de corte empre-
sarial de bajo precio al ecosistema
Linux, viene con versiones de 32 y 64
bits.
Correo del Lector
ACCESO DE ESCRITURA
Schlagwort sollte hier stehenLINUX USERCORREO
12 Número 16 W W W . L I N U X - M A G A Z I N E . E S
DVD o no DVD, esa es lacuestiónEstimado Linux Magazine,
Sigo la revista desde hace ya algunos
meses y, si bien me gusta bastante, no
acabo de entender vuestra política con
respecto al DVD, que ha variado, y
mucho, desde que empezásteis a pu-
blicar.
De cuatro DVDs al año habéis pasado
a DVD por número, con la consiguiente
subida del precio de la revista y la
suscripción ¿Qué pasó con vuestra
declaración de intenciones en el primer
número sobre “vender por el contenido,
NO por el DVD”?
La otra cosa es que, si insistís en salir
todos los meses con DVDs, al menos
podríais de vez en cuando incluir una
distro de 64 bits, que cada vez somos
más los que utilizamos este tipo de sis-
temas.
Un saludo
Javier
Querido Javier,
Hemos oído de todo: que incluyamos,
que no incluyamos, que si los DVDs
acaban de posavasos, que eso para qué
si tengo Internet, que si podéis incluir
lo de más allá que no tengo Internet,
que para qué le seguís el juego a la
competencia, etcétera, etcétera.
Pues bien, allá por los albores de la
civilización tal y como lo conocemos
(es decir, hace un año y medio) las dis-
LM
Puedes enviar tus comentariosy sugerencias a:
www.alm
ogon.de
características avanzadas que podemos
encontrar en los sistemas de telefonía
propietarios.
Os mostramos también Linphone y
Kphone, un par de sencillas y ver-
sátiles aplicaciones VoIP. Y termi-
namos viendo cómo configurar el
extremadamente famoso cliente Skype,
en este caso en su versión para Linux.
Si estás preparado para pedir línea
hacia el mundo de la VoIP, o incluso si
sólo deseas experimentar un poco, no
te pierdas el tema de portada de este
mes acerca de telefonía bajo Linux. �
Herramientas VoIP para Linux
UNA LLAMADA ALMUNDO
Voz sobre IP • PORTADA
Número 16W W W . L I N U X - M A G A Z I N E . E S
Voz sobre IP (VoIP) hace refe-
rencia al conjunto de tec-
nologías que proporcionan
comunicaciones de voz sobre redes
TCP/IP. Por supuesto, la mayor red
TCP/IP es la propia Internet, y el obje-
tivo último de la industria VoIP ha sido
siempre encontrar una manera de uti-
lizar Internet para las llamadas habi-
tuales.
Con los primeros esfuerzos en VoIP
hubo que enfrentarse a numerosos
retos, incluidos problemas con la cali-
dad de servicio, con el hardware y una
habitual escasez de ancho de banda.
Pero si estamos más o menos atentos a
Internet, deberíamos saber que este
tipo de problemas ya han sido supera-
dos. Los servicios telefónicos por Inter-
net se popularizan con rapidez por
todo el mundo.
Es muy fácil conseguir que dos orde-
nadores se comuniquen. El problema
es hacer que un ordenador habilitado
con VoIP realice una llamada a un
número de teléfono tradicional. Para
acceder a la red telefónica conven-
cional, tendremos que suscribirnos a
algún servicio telefónico por Internet.
Las tarifas varían en función de nues-
tra ubicación y de los servicios que
necesitemos. Pero, en cualquier caso,
venga la llamada desde una cabina en
Alaska, venga desde un ordenador de
la habitación de al lado, esa llamada
llegará hasta nuestro ordenador como
Voz sobre IP.
Linux siempre ha sido rápido a la
hora de integrar nuevas tecnologías, y
la revolución VoIP no ha sido la excep-
ción. Hoy día se encuentran
disponibles diferentes herramientas
para acceder a la era de la telefonía por
Internet. Vamos a tratar algunas de
estas herramientas en nuestro tema de
portada de este mes: Voz sobre IP.
Empezaremos echando un vistazo al
servidor de telefonía Asterisk. Asterisk
nos permite configurar un servidor de
telefonía en casa, de manera que todos
los teléfonos de nuestro hogar
puedan compartir una única
conexión a Internet. El
servidor de aplicaciones
Asterisk nos propor-
ciona un punto de
configuración
único e incor-
pora muchas
13
Este mes os mostramos algunas de las herramientas más populares para la telefonía por Internet bajo Linux.
POR JOE CASAD
Asterisk................................................ 14
Linphone..............................................19
Kphone................................................ 22
Skype................................................... 24
TEMA DE PORTADA
gratis. Razón suficiente para mirar
atentamente la tecnología implicada.
Primero, el RegistroSi decide comenzar a usar Internet como
un servicio telefónico, pronto descubrirá
que no se puede simplemente descolgar el
teléfono y empezar a hablar. Por el
contrario, primero hay que registrarse con
un proveedor de servicios VoIP que
proporcione las credenciales necesarias
para acceder al sistema y así
conectarse al servidor SIP del
proveedor. SIP es el nombre del
protocolo que utiliza la
telefonía VoIP. Tras concluir
este paso, se necesita un
teléfono VoIP (un softphone. es
decir, un teléfono software,
puede ser una buena opción).
Una vez que se haya
comenzado a utilizar la
tecnología VoIP, puede que nos
preguntemos si tiene sentido
instalar VoIP en toda la casa.
Aunque es probable que, una
única máquina con acceso a
VoIP no cubra todas nuestras necesidades.
Sin embargo, es bueno saber que el
sistema de telefonía VoIP utilizado por la
mayoría de los profesionales está
disponible en Internet. Su nombre es
Asterisk [1], el cual ha llegado a ser
sinónimo de telefonía software. Asterisk
ofrece diversas opciones útiles, incluyendo
la posibilidad de actuar como un sistema
telefónico completo para toda la casa.
Imaginemos que se desea que los niños
puedan usar el teléfono, pero aún se está
anclado al sistema de telefonía tradicional
y no pretende pasarse a un sistema más
moderno como la RDSI. VoIP es una buena
elección en este caso: permite realizar
llamadas a redes PST, y dependiendo de la
elección del proveedor de VoIP, puede
obtenerse un número de teléfono con
prefijo, y todo en la misma ganga.
Saltando ObstáculosDespués de realizar la configuración para
convertir el PC en un servidor telefónico,
se deseará sacarle partido. Cuanto más
compleja es una aplicación, más empinada
es su curva de aprendizaje, y Asterisk no
La tecnología que soporta el
intercambio sencillo de datos de
audio a través de Internet ofrece
muchos beneficios. La calidad de la voz en
las conexiones por Internet a menudo es
mejor que la calidad ofrecida por las líneas
convencionales, a pesar de los rumores
que hay en contra. Además, la Voz sobre IP
(o VoIP para abreviar) hace que las
llamadas telefónicas transatlánticas, que
solían costar una pequeña fortuna, sean
PORTADA • Asterisk
14 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Figura 1: Los teléfonos VoIP actuales disponen de característi-
cas interesantes al igual que los teléfonos tradicionales: diver-
sas líneas en el visor y teclas con funciones programables son
bastantes comunes.
Telefonía con el Sistema Asterisk
HABLANDO
Un viejo ordenador es todo lo que se necesita para cons-
truirse uno mismo un servidor telefónico personal. POR
MARTIN LOSCHWITZ
es la excepción que confirma la regla. Hay
que instalar y configurar Asterisk; y a
pesar de ser un servidor de telefonía,
habrá que pedirle al programa que actúe
como un contestador automático virtual.
El objetivo de este artículo no es mostrar
cómo hay que configurar Asterisk como
servidor VoIP, así que el lector no debe
esperar que tras leerlo pueda ser capaz de
competir con Freenet o Sipgate. Para
configurar Asterisk de la forma descrita
aquí se necesita una cuenta VoIP en un
proveedor. La ventaja de la configuración
de este artículo comparada con un
escenario “normal” de VoIP es que se
estará usando Asterisk como un sistema de
telefonía central para los usuarios de una
casa, y además, varios PC podrán tener
acceso a VoIP a través del servidor
Asterisk.
PreparaciónLa configuración de Asterisk es
importante para una red local con varios
equipos. En esta clase de situaciones, el
acceso a Internet normalmente hace uso
de NAT y de un cortafuegos. La
presencia del cortafuegos complica la
configuración de Asterisk. SIP no es
compatible con NAT, así que habrá que
abrir unos cuantos agujeros al
cortafuegos para permitir el uso de SIP.
Los puertos que se necesitan abrir
dependerán del proveedor que se haya
escogido y la mayoría de ellos disponen
de FAQs que resuelven las dudas
respecto a los cortafuegos.
Como regla básica, se puede suponer
que hay que abrir el puerto 5060/tcp, ya
que éste es el puerto principal del
protocolo SIP. Asterisk manejará NAT
por nosotros. Hay que revisar la
documentación del proveedor de servicio
VoIP para obtener instrucciones más
detalladas sobre la configuración de los
cortafuegos.
Instalando AsteriskLa instalación de Asterisk no tiene
ninguna ciencia, ya que la configuración
se hará posteriormente. La mayoría de las
distribuciones incluyen actualmente el
paquete Asterisk que se puede obtener
utilizando la herramienta de instalación
de paquetes del distribuidor. Debian
simplemente llama al paquete asterisk y
se puede ejecutar apt-get o aptitude para
comenzar la instalación.
Asterisk se integra bien en Debian, en
el resto del artículo supondré que se tiene
instalado Debian, pero la configuración
de Asterisk para sip.conf y extensions.conf
es idéntica, independientemente de la
distribución que se tenga. Aquéllos que
prefieran compilar Asterisk desde el
código fuente pueden consultar el cuadro
“Compilando Asterisk” para un HOWTO.
Después de instalar Asterisk en
Debian, debería disponer de varios
ficheros .conf en el directorio
/etc/asterisk. Asterisk es una aplicación
minimalista: comprende unos doce
pequeños módulos, que se cargan al
vuelo conforme se necesiten. El núcleo
de Asterisk, un programa compacto,
contiene las funciones principales de los
diversos módulos. Hay un fichero de
configuración dedicado a cada módulo y
sólo a ese módulo. Esto evita la
necesidad de tener un fichero de
configuración gigantesco, aunque tiende
a llenar el directorio /etc/asterisk. La
mayoría de los ficheros no tienen interés,
ya que pertenecen a partes de Asterisk
que un usuario normal no tendrá que
modificar. Los dos ficheros que habrá
que modificar son sip.conf y
extensions.conf.
¿Quién, Dónde, Qué?La mayoría de los proveedores VoIP, como
GMX y Freenet, utilizan el protocolo SIP.
Pero hay otros protocolos, como IAX2 y
SCCP. Este ejemplo se centrará en SIP; el
módulo que se necesita es chan_sip y el
fichero de configuración correspondiente
es sip.conf.
Por un lado, la configuración en sip.conf
permite a Asterisk conectarse con el
proveedor de servicios VoIP como un
teléfono; y por otro lado, la configuración
permite a los usuarios de la red local
Asterisk • PORTADA
Si se decide compilar Asterisk a partir
de los ficheros con el código fuente, los
comandos para instalar el sistema de
telefonía del PC son los mismos sin
importar la distribución que se esté
usando. Primero hay que bajar el
archivo con el código fuente, y con el
comando tar cvfz se descomprimen. A
continuación, con el comando cd se
entra al directorio que contiene los
ficheros con el código fuente de la apli-
cación y se empieza el proceso de com-
pilación con make. Por último, te-
cleando make install se instala Asterisk
en el sistema de ficheros.
Cuidado: Los ficheros no se colocan en
el directorio /usr como cabría esperar,
sino en el directorio raíz, /. Para modi-
ficar este comportamiento hay que
abrir el fichero Makefile con un editor y
modificar la línea que comienza con
INSTALL_PREFIX= poniendo /usr/local
después del signo igual. Esto evita que
se pueda dañar inadvertidamente el
sistema de ficheros y permite que pos-
teriormente se pueda eliminar Asterisk
del sistema sin demasiado esfuerzo.
Compilando Asterisk
para las dos líneas siguientes, que
comienzan con language y hay que
añadir una línea con allow=alaw.
Si la máquina que ejecuta Asterisk
utiliza NAT para acceder a Internet,
además habrá que descomentar la línea
nat=no y cambiar no por yes: esto le
indica a Asterisk cómo tiene que tratar
las conexiones entrantes y salientes.
Asterisk se conecta al servidor SIP del
proveedor de servicios VoIP como un
teléfono simple. La configuración para
esto está también almacenada en el
fichero sip.conf. Cada línea que
contiene una configuración para el
servidor VoIP empieza por la palabra
reservada register y sigue esta sintaxis
general:
register => U
username:passwordU
@SIP server/extension
Es preciso añadir una línea para el
proveedor SIP contratado. Si se dispone
de cuentas con múltiples proveedores,
se necesitará una línea register para
cada uno de ellos.
Dejemos por el momento la línea
Extension; más adelante, le indicará a
Asterisk qué proveedor usar para
realizar las llamadas de los distintos
servidores SIP. Habrá que configurarlos
en ficheros independientes; así que hay
que teclear el nombre de la cuenta de
usuario como Extension.
El Proveedor tiene queAccederEl siguiente paso es modificar sip.conf
para permitir al proveedor VoIP enviar
comandos a Asterisk. Asterisk utiliza
también entradas peer para organizar las
llamadas salientes. Una entrada para
manejar esto podría ser como la línea
siguiente:
[VoIP Provider]
type=peer
secret=secret_password
username=username
host=VoIP server
fromuser=username
fromdomain=VoIP server
insecure=very
Se necesita una entrada como ésta pero
con nombres diferentes (el que aparece
entre corchetes) para cada línea register al
final del fichero de configuración sip.conf.
Hay que asegurarse de que las entradas
en los campos coinciden con las entradas
en las líneas register.
Añadiendo TeléfonosEl siguiente y último paso es añadir
líneas en sip.conf para permitir a los
teléfonos SIP de la red local conectarse.
Pueden ser teléfonos VoIP hardware
(Figura 1) o softphones (Figura 2). Al
final del fichero se añade primero un
título al contexto nuevo como:
[Nombre]. Se puede escoger, más o
conectarse al servidor Asterisk como
“teléfonos”.
Asterisk funciona como un servidor
proxy de sitios webs. Envía las conexiones
locales a Internet y las conexiones
entrantes a los teléfonos correspondientes
(se puede disponer de múltiples
teléfonos). Antes de considerar el uso de
Asterisk, hay que configurar primero
sip.conf. Es preciso asegurarse de que los
datos del proveedor VoIP estén a mano
para no tener que perder el tiempo
buscándolos.
GeneralLos ficheros de configuración de Asterisk
están organizados en varias secciones que
controlan distintas propiedades del
módulo en cuestión. La primera sección en
el fichero sip.conf se titula [general], al
igual que en el resto de los ficheros de
configuración del resto de los módulos, y
está rellena por defecto.
Aquí es necesario realizar varios
cambios. Con un editor hay que abrir el
fichero /etc/asterisk/sip.conf y buscar una
línea que contiene disallow=all.
Tendremos que borrar el punto y coma
(“;”) del comienzo de la línea. (El punto y
coma etiqueta a la línea como un
comentario). Esto mismo hay que repetirlo
PORTADA • Asterisk
16 Número 16 W W W . L I N U X - M A G A Z I N E . E S
01 nonumber
02 [general]
03 port = 5060
04 bindaddr = 0.0.0.0
05 disallow=all
06 allow=ulaw
07 allow=alaw
08 maxexpirey=3600
09 defaultexpirey=120
10 context=default
11 language=de
12
13 register => 5552XXX:
[email protected]/5552XXX
14
15 [sipgate]
16 type=peer
17 secret=PASSWORT
18 username=5552XXX
19 host=sipgate.de
20 fromuser=5552XXX
21 fromdomain=sipgate.de
22 insecure=very
23
24 [2000]
25 type=friend
26 secret=Password
27 mailbox=100
28 canreinvite=yes
29 context=default
30 insecure=very
31 host=dynamic
Listado 1: Ejemplo sip.conf (Sipgate)
Figura 2: Si no se desea disponer de un
aparato convencional, se pueden utilizar
teléfonos software como alternativas
siempre que se posea de tarjeta de sonido
en el ordenador y de unos auriculares con
micrófono.
menos, cualquier nombre; los nombres
de usuario pueden contener letras y
números. Una entrada completa podría
ser como la siguiente:
[2000]
type=friend
secret=password
mailbox=100
canreinvite=yes
context=default
insecure=very
host=dynamic
La solución para configurar teléfonos
adicionales es similar. Hay que
especificar un nombre de usuario y una
contraseña para cada entrada y cambiar
el número para el mailbox. Si se quiere
se pueden utilizar nombres de usuarios
numéricos e incrementarlos junto con
los nombres de los mailbox (2001, 2002,
… y 101, 102, …).
Después de configurar la directiva
[general] y crear las cuentas para el
servidor VoIP y para al menos un
teléfono cliente, se guarda el fichero
sip.conf. El Listado 1 proporciona un
ejemplo de fichero sip.conf.
Creando un DialplanEl dialplan de Asterisk es el tablero de
control para las conexiones de la
aplicación que establece por dónde
dirigir las llamadas entrantes y salientes.
Un dialplan es complejo por naturaleza,
pero manejable para la mayoría de los
usuarios.
Se almacena en el fichero
/etc/asterisk/extensions.conf. Como el
fichero por defecto en Debian contiene
una multitud de ejemplos de poca
utilidad, probablemente se prefiera
renombrarlo a extensions.conf.old y
crear uno nuevo con un editor.
Nuevamente, este fichero de
configuración tiene que tener una
sección [general] que siempre
comenzará como sigue:
[general]
static=yes
writeprotect=no
El comando estándar en extensions.conf
es exten. El comando es invocado por
las llamadas entrantes y salientes y
redirige la llamada a un teléfono de la
red local o hacia Internet. La sintaxis del
comando es la siguiente:
exten => U
called_
number,priority,action
El campo priority no se utiliza para
establecer la importancia de la llamada,
aquí, sino para definir el orden en el que los
comandos en action son ejecutados.
Por DefectoLo primero que hay que hacer es crear una
sección por defecto [default] en el fichero
extensions.conf: Asterisk utilizará esta
sección para manejar las llamadas no
definidas. Teóricamente, el fichero
extensions.conf puede dividirse en
cualquier número de secciones, pero se va
a restringir a lo esencial para mantenerlo
simple.
La primera parte de la configuración de
[default] es genérica y necesaria. Contiene
el denominado test echo, que será preciso
más adelante para comprobar la conexión
entre Asterisk y el teléfono:
[default]
exten => U
600,1,Playback(demo-echotest)
exten => 600,2,Echo
exten => U
600,3,Playback(demo-echodone)
exten => 600,4,Goto(s,6)
[default] es también el lugar donde
especificar lo que hay que hacer con las
llamadas salientes. Es conveniente usar un
número para obtener una línea externa, y
de este modo permite usar Asterisk para
llamadas internas. La siguiente línea le
indica al programa que dirija las llamadas
salientes que empiecen por 0 al proveedor
VoIP VoIP Provider:
exten => U
_0.,1,Dial(SIP/${EXTEN:1}U
@VoIP Provider)
El comando parece más críptico de lo que
realmente es: _0. indica que este comando
controla todas las llamadas que empiecen
por 0. 1 indica la prioridad (1 en este caso,
porque realmente hay poco que hacer con
una llamada saliente, aparte de redirigirla).
Dial(SIP/${EXTEN:1}@VoIP Provider)
dice que marque para llamar el comando
de marcado interno de Asterisk. SIP le dice
a Asterisk que use SIP para conectarse con
el servidor. La cadena que sigue a / es el
número a marcar. Añadiéndole :1 al
número se elimina el primer dígito (el 0
W W W . L I N U X - M A G A Z I N E . E S
La primera línea dirige las llamadas
entrantes al usuario y teléfono con el
nombre de usuario 2000. Las líneas 2 y
3 ejecutan los buzones de voz (es decir,
el contestador automático de Asterisk)
si la extensión 2000 está ocupada o
desactivada. Por último, la línea cuatro
cuelga cuando Asterisk haya
completado los tres pasos anteriores.
Hay que repetir los pasos anteriores
para cada línea register en el fichero
sip.conf. Si se necesita redirigir las
llamadas a otra extensión aparte de la
“2000”, tan sólo hay que cambiar los
números que siguen a SIP/.
Cuando se haya completado la confi-
guración del fichero extensions.conf, no
hay que olvidarse de guardar el fichero.
El Listado 2 proporciona un ejemplo de
extensions.conf configurado de esta
forma.
Ejecutando AsteriskYa habríamos acabado si los desarro-
lladores de Debian no hubiesen añadido
un obstáculo extra. No se puede
ejecutar Asterisk directamente después
de haber terminado de instalarlo. Para
cambiar este comportamiento hay que
abrir /etc/default/asterisk con un editor,
y modificar la entrada no de
RUNASTERISK por yes. Después de
habilitar este parámetro, puede
ejecutarse Asterisk mediante el
comando /etc/init.d/asterisk start.
que se pulsa para obtener una línea
externa) antes de marcar. La cadena que
sigue a @ especifica el proveedor VoIP.
Esto se puede repetir para cualquier
número de proveedores de VoIP. Use
diferentes números para obtener líneas
externas en cada caso, e inserte el nombre
del proveedor de VoIP como se especifica
en la entrada de cada proveedor en el
fichero sip.conf.
Llamadas EntrantesSi se ejecutara Asterisk en este
momento, se podrían realizar llamadas
externas (Figura 3), pero nadie podría
llamarnos. Para permitir las llamadas,
tenemos que saltar el último obstáculo.
En las líneas register del fichero
sip.conf, el último valor que se añadió
en cada línea era el nombre que
Asterisk utiliza para referenciar las
llamadas entrantes del servidor. Si se
sigue el ejemplo, el nombre será el
nombre de la cuenta de usuario del
proveedor VoIP.
Si además se añade “2000” como el
nombre del usuario del primer teléfono,
se pueden utilizar estas líneas tal como
están en el fichero, reemplazando Name
con el nombre del proveedor de VoIP
(es decir, el último trozo de la línea
register):
exten => U
Name,1,Dial(SIP/2000,15,tTr)
exten => U
Name,2,VoiceMail,u2000
exten => U
Name,102,VoiceMail,b2000
exten => Name,103,Hangup
PORTADA • Asterisk
18 Número 16 W W W . L I N U X - M A G A Z I N E . E S
01 nonumber
02 [general]
03 static=yes
04 writeprotect=no
05
06 [default]
07 exten =>
600,1,Playback(demo-echotest)
08 exten => 600,2,Echo
09 exten =>
600,3,Playback(demo-echodone)
10 exten => 600,4,Goto(s,6)
11
12 exten => 2999,1,Ringing
13 exten => 2999,2,VoicemailMain,
s2000
14
15 exten => _0.,1,Dial(SIP/
${EXTEN:1}<\@>sipgate)
16
17 exten => 5552XXX,1,Dial(SIP/
2000,15,tTr)
18 exten => 5552XXX,2,VoiceMail,u
2000
19 exten => 5552XXX,102,VoiceMail
,b2000
20 exten => 5552XXX,103,Hangup
Listado 2: Fichero de ejemplo extensions.conf
RECURSOS
[1] Asterisk: http://www.asterisk.org
ConvenienciaAsterisk posee un contestador
automático virtual que hay que habilitar.
El programa addmailbox ayudará a
realizar esta tarea. Para ello hay que
anotar el nombre de usuario al que se le
quiera asignar un buzón (2000 en el
ejemplo).
En el fichero sip.conf, se asignó el
buzón 100 a este usuario (mailbox=100).
Trabajando como root, hay que ejecutar
addmailbox en la línea de comandos. Si
el programa solicita el contexto, tan sólo
hay que poner default. Cuando solicite el
número del buzón, hay que teclear 100.
El script configurará todos los ficheros
necesarios.
Se puede utilizar apt-get install para
instalar un fichero asterisk-prompt-xx
para grabar los mensajes en el idioma de
su elección. Los mensajes en inglés se
reproducen por defecto. Tras este paso se
obtiene un sistema de buzón de voz
basado en Asterisk.
Accediendo al Buzón de VozPor último, se necesita una forma para
decirle a Asterisk que reproduzca los
mensajes que se tengan en el buzón de
voz. Para permitir la reproducción de los
mensajes del buzón de voz hay que
realizar los cambios necesarios al fichero
extensions.conf. Añádase las siguientes
líneas:
exten => 2999,1,Ringing
exten => U
2999,2,VoicemailMain,s2000
Ahora, cuando se marque 2999 desde un
teléfono interno, se conectará
automáticamente al buzón de voz del
usuario 2000. La primera vez que se
conecte, habrá que especificar una
contraseña de acceso, en las siguientes
veces se obtendrá el acceso directamente.
Si se dispone de una VPN para acceder
remotamente a su red, es posible utilizar
un softphone y el túnel VPN para acceder
al servidor Asterisk. �
suficiente para nuestro uso diario.
Podemos buscar el programa en el
apartado Telephone del menú KDE. Si
usamos Debian Testing (Etch) o Ubuntu
Linphone • PORTADA
Número 16W W W . L I N U X - M A G A Z I N E . E S
Uno de los métodos más
populares para acceder a la
tecnología VoIP es a través de los
llamados softphones. Un softphone es
simplemente un programa de ordenador
que controla el establecimiento y la
comunicación. Linphone [1] es uno de
los programas softphone más populares
para Linux. Está optimizado para el
escritorio Gnome, aunque esto no
significa que no podamos ejecutarlo bajo
KDE. En este artículo veremos cómo
instalar, configurar y arreglar problemas
con Linphone.
Por supuesto, aunque Linphone es una
herramienta software, a la hora de
usarlo, necesitamos algún hardware
básico, como unos auriculares y un
micrófono. Y si queremos usar Linphone
como un sistema telefónico completo,
necesitaremos una cuenta con algún
proveedor VoIP. Para los ejemplos de este
artículo, nos referiremos a dos cuentas
ficticias con dos proveedores: Sipsnip y
Purtel. Nuestro usuario ficticio llama a
través de la cuenta en Sissnip pero
quiere recibirlas a través de Purtel. El
procedimiento es similar con otros
proveedores.
InstalaciónEl código fuente de la versión 1.1.0 y las
librerías están disponibles en [2].
Mandriva Linux 2006 tiene la versión
1.1.0. Los usuarios de Gentoo pueden
instalar la 1.1.0 simplemente con
ejecutar el comando emerge. Suse 9.3 y
10.0 nos ofrecen la versión 1.0.0, que es
19
Telefonía por Internet con Linphone
BIEN CONECTADOSi deseas llamar a amigos que se encuentran en países lejanos, no
levantes el teléfono: enchufa los auriculares y arranca Linphone.
POR SIMONE SCHÄFER
En el caso más sencillo, el número de
teléfono será un simple número de telé-
fono seguido del dominio SIP, tal que
[email protected]. Si necesita-
mos llamar a un usuario con otro
proveedor, la manera más sencilla es,
generalmente, introducir la ID SIP
(como en [email protected])
o simplemente el número de teléfono
con Sipgate ([email protected]).
Desafortunadamente, no todos los
proveedores soportan este tipo de mar-
cado. Los clientes de Purtel pueden lla-
mar gratuitamente a los de Sipsnip,
pero no marcando el SIP ID. En su lugar,
tienen que introducir un código espe-
cial, seguido del número Sipsnip. El
código para Sipsnip es el 000555.
Números de Teléfono e
ID’s SIP
acceder a esta
información de la
cuenta y permite
modificarlas en caso
necesario. (Muchos
proveedores VoIP
distinguen entre el
número de teléfono y
el nombre de usuario,
pero Purtel es una
excepción: el nombre
de usuario es siempre
el mismo que el
número de teléfono
de Purtel).
Una vez que
hayamos introducido la información de
nuestra cuenta, ya casi hemos
finalizado. El menú Go tiene un
apartado Preferences. Pulsamos en la
pestaña SIP en primer lugar,
introducimos nuestro identificador o
dirección SIP. En nuestro ejemplo, era
penguin seguido de una arroba (“@”) y
seguido de sipsnip.com para el campo
Your sip address:. No debemos olvidar
quitar la marca en Automatically guess a
valid hostname, ya que no lo
necesitamos.
El siguiente paso es indicarle a
Linphone a qué servidor de Internet
vamos a querer conectarnos cuando
realicemos una llamada. En el panel
Remote services, pulsamos sobre Add
proxy/registrar. En la ventana que
aparece, tecleamos la dirección SIP
completa en SIP Identity y el nombre del
servidor SIP en SIP Proxy. En el caso de
los proveedores de nuestra prueba, es el
mismo que el dominio.
Ahora pulsamos en OK para
confirmar, y el programa nos pedirá
nuestro nombre de usuario y
contraseña. El programa guarda la
información, y no
será necesario volver
a introducirla de
nuevo.
Línea Directacon el MundoDespués de haber
introducido nuestros
datos, y suponiendo
que el servidor acepta
nuestro nombre de
usuario y contraseña,
ya nada nos impide
realizar nuestra
primera llamada.
Introducimos el SIP ID en SIP address en
la ventana principal. (Véase el cuadro
“Números de Teléfono e ID’s SIP” para
tener varios números). La versión 1.1.0
también nos permite seleccionar qué
cuenta VoIP usar, si tenemos más de
una.
Seleccionamos un servidor proxy en
Proxy to use. Pulsamos a continuación
sobre Call or answer para indicarle al
programa que efectúe la llamada.
Hangup or Refuse le indica a éste que
rechace o cuelgue la llamada.
Para facilitar las cosas, deberíamos
añadir un nombre para cada contacto de
nuestra libreta de direcciones, introducir
la dirección SIP, y si tenemos múltiples
cuentas SIP, especificar qué cuenta
vamos a usar con ese contacto. Tras
completar la información del contacto,
podemos pulsar sobre Select para cargar
la configuración.
Si comprobamos Show more en la
ventana de Linphone, el programa nos
mostrará las opciones para la
reproducción y la grabación. La pestaña
My online friends nos muestra una vista
general del estado de los contactos de
nuestra libreta de
direcciones. Sin
embargo, esta opción
no funcionó en
nuestras pruebas,
aunque el problema
pudo ser debido al
proveedor VoIP que
usamos.
Es una buena idea
hacer una llamada de
prueba a un número
que conozcamos en
este momento,
simplemente para
Linux 5.10 (“Breezy Badger”), en el
repositorio encontraremos la versión
1.0.1, ligeramente más reciente.
Puede que prefiramos compilar e
instalar el programa de manera manual.
En este caso, debemos asegurarnos de
que seguimos el orden correcto en la
compilación. Linphone hace uso de la
librería Libosip2 para comunicarse con
el proveedor de VoIP, por lo que
tendremos que instalar la librería
previamente. Para ello, abrimos un
terminal, pasamos a root tecleando su e
introducimos la contraseña adecuada.
Descomprimimos el archivo con tar xzf
libosip2-2.2.0.tar.gz y nos ubicamos en
el nuevo directorio (cd libosip2-2.2.0).
Los siguientes comandos compilan e
instalan la librería:
./configure --prefix=/usr
make
make install
ldconfig
Salimos del directorio Linosip2 y
pasamos a descomprimir el archivo de
Linphone. Para ello tecleamos tar xzf
linphone-1.1.0.tar.gz. Pasamos al
directorio requerido con cd
linphone-1.1.0, y para compilar e instalar
usamos los mismos comandos vistos con
la librería.
Puede que nos falten algunos paquetes
de desarrollo, como los codecs Speex.
Cada distribución tiene su método de
instalación. La mejor opción es usar el
gestor de instalación de nuestra
distribución para buscar un paquete con
un nombre similar.
Configurar una CuentaCuando lo ejecutamos, Linphone
aparece con una interfaz de usuario
bastante minimalista. Necesitamos
nuestras credenciales VoIP para
conectarnos al servidor. Además de
nombre de usuario y contraseña,
necesitamos también un dominio. Al
igual que con las direcciones de correo
electrónico, el SIP ID, es decir, nuestro
número de teléfono VoIP, comprende un
nombre de usuario y el domino.
En nuestro ejemplo, el SIP ID es
[email protected] para la cuenta de
Sipsnip. El dominio es algo distinto para
la cuenta de Purtel:
[email protected]. La página
Web del proveedor VoIP nos permite
PORTADA • Linphone
20 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Figura 1: Linphone ofrece al usuario
un acceso rápido a la VoIP a través
de Internet.
Figura 2: Podemos usar una herramienta como Gnome-volume
para cambiar la configuración del sonido.
asegurarnos de que la configuración
funciona. Si las llamadas a fijos y
móviles también funcionan, ya tenemos
un sistema de telefonía alternativa de
bajo coste. Desafortunadamente,
podemos encontrarnos con unos cuantos
problemas que nos lo impida.
Resolución de ProblemasMuchos usuarios se hallan detrás de
algún tipo de cortafuegos que los separan
de Internet. Los protocolos que usa
Linphone pueden, ocasionalmente,
causar problemas cuando se usan con
estos dispositivos de protección.
El Protocolo de Inicio de Sesión (SIP),
es un protocolo de red que administra las
llamadas de uno o varios usuarios.
Simplemente controla el lado que
coordina, es decir, la señalización de la
llamada. El transporte de la información
se controla con el Realtime Transport
Protocol (RTP). Las direcciones de los
usuarios siguen un patrón similar al de
las direcciones de correo electrónico:
sip:user@domain. Muchos de los
dispositivos VoIP actuales usan SIP, que
ha desbancado en cierta medida al
protocolo H.323 como estándar en la
industria VoIP.
Tanto SIP como RTP utilizan el
protocolo sin conexión UDP. Este hecho,
y el que la VoIP se basa en ambos
componentes, SIP y RTP, pueden causar
problemas con las conexiones a través de
cortafuegos. SIP le indica al proveedor de
VoIP tanto la dirección IP como el puerto
por el que el llamante quiere conectarse.
Si encontramos problemas con la
conexión y no tenemos router, pero sí
cortafuegos, debemos habilitar en primer
lugar los puertos 7078/udp y 5060/udp. Si
los problemas continúan, la culpa
probablemente sea de los codecs o de la
tarjeta de sonido. Si tenemos router,
debemos reconducir estos puertos a
nuestra dirección IP interna para UDP.
Si aún así no funciona, el contratiempo
puede deberse a la configuración de la
tarjeta de sonido. Para probar esto,
podemos hacer uso de un programa de
grabación para grabar una muestra a
través de nuestro micrófono. Gnome
ofrece el Audio Recorder y KDE dispone
de la herramienta Krecord en el menú
Multimedia | Recording.
Si no se graba nada, debemos mirar el
control de volumen en primer lugar. Para
ajustar el volumen, abrimos bien Kmix o
bien Gnome-volume (véase Figura 2), en
función de nuestro escritorio. Esto nos
lleva a una lista de opciones que
dependen de nuestra tarjeta de sonido. La
pestaña Output nos permite silenciar el
micrófono, lo que es una gran idea, para
evitar escucharnos a nosotros mismos. La
pestaña Input nos permite incrementar
gradualmente el volumen del micrófono,
y posiblemente el nivel Capture.
El símbolo del micrófono bajo ambos
controles debe estar activado. Si tenemos
una pestaña Switches con la tarjeta de
sonido, podemos usar la opción
Microphone Boost para incrementar la
ganancia de la señal del micrófono.
Usamos la pestaña Options para
seleccionar un dispositivo de grabación,
esto es, nuestro micrófono. Los usuarios
de KDE deberían asegurarse de que los
LEDs verdes de Input y Capture (caso de
estar presentes) estén ambos apagados,
pero los LEDs rojos estén encendidos.
Ambos tienen que configurarse con un
alto nivel de grabación. De nuevo,
deberíamos configurar la fuente y
habilitar el “Microphone Boost” en la
pestaña Switches.
Los métodos de compresión (codecs)
raramente causan problemas con la VoIP.
Existen gran cantidad de codecs, y cabe la
posibilidad de que la persona a la que
estemos llamando no disponga en su
sistema de los mismos codecs. Sin
embargo, Linphone tiene una buena
selección, y este problema no apareció en
nuestro laboratorio.
Si encontramos otros inconvenientes,
podemos probar a cambiar el codec en la
pestaña Codecs dentro del menú
Preferences. Muchos programas prefieren
los métodos PCMU y PCMA. Podemos
mover estos métodos arriba del todo si
persisten los problemas. El códec Speex
con una frecuencia de muestreo de 16
kHz nos permitirá disponer, por lo
general, de la mejor calidad de voz.
ConclusionesLinphone ha alcanzado un nivel de
funcionalidad muy alto y el ritmo de
desarrollo está decreciendo en estos
momentos. A muchos usuarios les
gustaría ver un soporte para
cortafuegos mejorado, en forma de
protocolo STUN (véase “Detalles SIP”),
y parece ser que los desarrolladores
implementarán STUN dentro de poco.
Con esto y con todo, Linphone es un
útil y práctico softphone. �
Linphone • PORTADA
21Número 16W W W . L I N U X - M A G A Z I N E . E S
RECURSOS
[1] Linphone homepage: http://www.
linphone.org/?lang=us
[2] Página de descarga de las fuentes de
Linphone: http://simon.morlat.free.fr/
download/1.1.x/source/
[3] Página de descarga de X-Lite: http://
www.xten.com/index.
php?menu=download
[4] Versión de desarrollo de Gnome
Meeting: http://snapshots.seconix.
comFigura 3: Cuadro de diálogo donde se puede escoger el codec de audio.
Simone Schäfer estudia en la
actualidad Diseño por Orde-
nador y pasa la mayor parte del
tiempo reparando su sistema
Arch Linux. Cuando no está
haciendo esto, también disfruta
probando otras distribuciones.
LAAUTORA
puede especificarse el servidor proxy, pero
después se puede intentar probar sin este
parámetro.
El q-value especifica la calidad de la
conexión. Kphone establece la calidad
dinámicamente si se deja vacío este
campo. Reduciendo la calidad
manualmente también se reducirá el
ancho de banda que Kphone utiliza, pero
la mayoría de los usuarios se conforman
con los valores por defecto.
Contraseñas InsegurasTras introducir los datos, se pulsará el
botón Register para indicarle a Kphone
que establezca una conexión con nuestro
proveedor. El registro automático es
suficiente: después de todo, la gente
solamente podrá llamarlo por el teléfono
de Internet mientras la conexión esté
activa.
Kphone siempre pide al usuario la
contraseña cuando se registra: ésta es la
contraseña que el proveedor SIP
proporciona. Desde luego, se puede
guardar, pero hay que ser consciente de los
peligros, ya que la contraseña se almacena
sin encriptar en el fichero de configuración
de Kphone, y dicho fichero tiene permisos
de lectura para todo el mundo. No hay
forma de modificar esto, ya que Kphone
reescribe el fichero de configuración cada
vez que se cierra el programa y establece el
permiso de lectura para todo el mundo.
Una posible solución es usar el comando
chmod 700 ~/.qt para restringir el acceso al
directorio de configuración de QT. Esto
protege al fichero de configuración con la
El programa KDE Kphone, que
recientemente lo han empezado a
incluir Suse Linux y otras
distribuciones, es una aplicación sencilla
de telefonía para Linux. Kphone
proporciona una herramienta manejable
de Voz IP sobre conexiones IP.
Kphone es muy fácil de configurar.
Como se puede ver en la Figura 1, la
primera vez que se ejecuta solicita al
usuario unos cuantos parámetros: de
hecho, tan sólo hay que especificar la User
Part of SIP URL y la Host Part of SIP URL.
El Outbound Proxy sólo se requiere
cuando nos topamos con un cortafuegos
muy restrictivo para permitir las
conexiones salientes. Para cubrirnos las
espaldas, en nuestro primer experimento
PORTADA • Kphone
22 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Telefonía en Internet con KPhone
LLAMADAS DESDE ELESCRITORIO
La telefonía en Internet no tiene por qué ser complicada. Se puede
hablar con el mundo con una tarjeta de sonido normal y corriente, con
una cuenta de un proveedor de telefonía de Internet y con Kphone.
POR MIRKO DÖLLE
STUN: Simple Traversal of UDP over
NATs. Un protocolo que permite a los
dispositivos que están tras un cortafue-
gos recibir datos desde Internet sin
tener que cambiar las reglas del corta-
fuegos o del router.
GLOSARIO
contraseña de Kphone, pero permite al
administrador del sistema verlo.
Dependiendo de la configuración del
router DSL, puede que se necesite un
servidor STUN para ser capaz de realizar y
recibir llamadas con Kphone. Es probable
que el ordenador no sea capaz de
identificar la dirección IP pública y el
puerto que el router usa para las
conexiones VoIP. En este caso, el cliente
solicita el servidor STUN, que es el que le
proporciona la dirección IP y el puerto,
permitiéndole pasar los datos al destino
para poder efectuar la llamada.
Para configurarlo se pulsa la solapa
Socket en Preferences > SIP Preferences
(Figura 2). En la línea STUN Server hay que
introducir el nombre y el puerto del
servidor STUN del proveedor. Hay que
cambiar la opción Use STUN server a Yes en
la misma solapa. La misma regla es
aplicable aquí para utilizar el proxy. Será
mejor que la primera vez que se utilice el
programa se tenga activada la opción del
servidor STUN, se puede probar a
desactivarlo más adelante.
Habrá que modificar la configuración del
cortafuegos para permitir a Kphone
comunicarse con el mundo exterior y
recibir llamadas. Por ejemplo, Kphone
necesitará siempre los puertos 5004, 5060 y
10000 para los paquetes UDP. Además
habrá que habilitar los puertos UDP del
61000 al 61099 para el servidor STUN.
La Primera LlamadaKphone es fácil de usar. En el caso más
sencillo, basta con teclear la SIP URL del
destino o bien marcar un número real de
teléfono junto con sus prefijos
correspondientes en el cuadro de texto
junto al icono del teléfono en la ventana
principal de Kphone. Si se prefiere, se
puede pulsar primero el icono del teléfono.
Indicándole así a Kphone que abra la
ventana de marcado, donde se le solicitará
al usuario que introduzca un número de
teléfono o una SIP URL. Para establecer
una videoconferencia tan sólo hay que
pulsar en el icono de la cámara.
El poder o no realizar llamadas a
teléfonos de líneas convencionales vía VoIP
sólo depende del servicio que se tenga
contratado con el proveedor. Algunos
proveedores requieren que se realice un
prepago, y hasta que no se haga, sólo se
podrán realizar llamadas dentro de la red
VoIP o a una red de teléfonos VoIP
conectada a ella. Por otro lado, las llamadas
desde las redes PST a los teléfonos VoIP
pueden efectuarse sin realizar ningún
prepago y gratis. Es decir, al menos, no hay
que pagarlas: se le cobrará al que realice la
llamada a la tarifa normal de la zona donde
viva, sin importar el lugar al que se realice
la llamada.
Se aplican reglas estrictas a la forma en la
que los proveedores de servicios telefónicos
basados en Internet asignan los números
telefónicos. No se puede tener un número
con prefijo de Londres si se vive en
Munich. La mayoría de los proveedores
proporcionarán un número que contenga el
prefijo de la dirección donde se realice la
facturación.
Así mismo, el reenvío de las llamadas
efectuadas a los números de emergencia se
realizan a los servicios más próximos a la
dirección donde se lleve a cabo la
facturación o bien donde se viva. Como la
telefonía por Internet es posible desde
cualquier parte del mundo, puede ser que
al servicio de rescate le lleve algún tiempo
llegar al lugar donde se esté produciendo la
emergencia. El procedimiento que se
realiza con la telefonía móvil y telefonía fija
tiene más sentido y enviarán la llamada de
emergencia al servicio de rescate
responsable de la zona en la que esté
localizado el teléfono fijo o el teléfono
móvil.
Guía de Teléfono PropietariaKphone dispone de su propio listín
telefónico, que no es compatible con
ningún formato de agenda electrónica y se
almacena en el fichero de configuración
central ~/.qt/kphonerc. El listín telefónico
es fácil de utilizar. Hay que seleccionar
Preferences | Phone book para abrir el
editor, donde pueden asignarse uno o
varios números de teléfono a cada
contacto. Kphone muestra un pequeño
formulario de las entradas del listín en la
ventana principal bajo el cuadro de texto
donde se introduce el número de teléfono.
De hecho, solamente es necesario acceder
a la ventana del listín telefónico para añadir
un contacto nuevo, con tan sólo hacer
doble clic sobre la entrada de la ventana
principal.
Si se quiere ejecutar Kphone para recibir
llamadas, es buena idea tenerlo
minimizado. Kphone se abrirá cuando se
reciba una llamada y hará sonar una
melodía por la tarjeta de sonido o por el
altavoz interno. Una pequeña crítica es que
no se puede ejecutar Kphone
automáticamente como un servicio en el
panel de KDE. Esto haría más sencillo la
ejecución del programa en segundo plano
cada vez que se reinicie el sistema. �
Kphone • PORTADA
23Número 16W W W . L I N U X - M A G A Z I N E . E S
Figura 1: KPhone no necesita mucha infor-
mación cuando se ejecuta por primera vez,
pero hay que especificar el usuario y el host
de la URL SIP.
Figura 3: Creando una entrada en el listín
telefónico de KPhone.
Figura 2: Configurando el servidor STUN y
otros parámetros del socket.
[1] Kphone: http://www.wirlab.net/
kphone/
RECURSOS
sector desde los escritorios. Es fácil de
instalar y usar, y ofrece una calidad de
voz muy buena.
Por supuesto, algunos críticos han
puesto su punto de mira sobre Skype: es
un programa de fuente cerrada, por lo
que tenemos que creernos las promesas
de la compañía en lo concerniente a la
seguridad. El cliente usa un protocolo
cerrado y propietario, en lugar de optar
por un estándar VoIP, al menos de
momento. ¿Hace esto malo a Skype?
Uno de los logros del programa es que
los paquetes están disponibles para varias
distribuciones. Skype suele funcionar a la
primera, y normalmente no se atasca con
el NAT y los cortafuegos. No hay
alternativa si queremos hablar con la
enorme cantidad de usuarios de Skype.
Existen algunos otros clientes gratuitos
VoIP, pero con ellos no podremos
comunicarnos con los usuarios de Skype.
Puede que nos preguntemos entonces
cómo consiguen beneficios los
creadores de Skype si el cliente es
gratuito. La respuesta es que Skype
consigue la mayor parte de sus ingresos
a través de los servicios de valor
añadido (véase el cuadro “Servicios
Skype”). Skype cobra por las llamadas a
teléfonos convencionales a través de
SkypeOut, o si queremos nuestro propio
número de teléfono de los planes de
numeración nacionales con Skype.
Instalación y Búsqueda deAmigosEl proceso de instalación de la versión
1.2 es poco espectacular. La versión 1.2
es la última que se ofrece a los usuarios
de Linux. La zona de descargas de la
página Web tiene paquetes binarios
para Debian, Ubuntu, Suse, Red Hat y
Mandriva. Descargamos el paquete de
Si somos usuarios de Voz sobre IP
(VoIP) seguramente nos será
familiar la sensación de que las
distancias no paran de acortarse.
Llamar a un amigo en Japón costaba
una fortuna hace sólo unos años, pero
gracias a la VoIP ahora podemos hablar
gratis con cualquier rincón del planeta y
sin sacrificar la calidad de voz, siempre
que tengamos una conexión a Internet
de banda ancha. La tecnología VoIP está
poniendo contra las cuerdas a un buen
número de operadoras de
telecomunicaciones. Niklas Zennström,
el inventor del cliente VoIP Skype [1],
declaró recientemente en Spiegel-
Online que Vodafone está tratando de
evitar que Skype acceda a Internet a
través de su red de alta velocidad
inalámbrica. Es poco probable que esto
extrañe a Niklas Zennström: su cliente
gratuito está sacudiendo con fuerza al
PORTADA • Skype
24 Número 16 W W W . L I N U X - M A G A Z I N E . E S
De paseo con el cliente VoIP Skype
ATRACO A LASOPERADORAS
De paseo con el cliente VoIP Skype
ATRACO A LASOPERADORAS
El famoso Skype es una opción VoIP gratuita pero no libre. POR KRISTIAN KISSLINGEl famoso Skype es una opción VoIP gratuita pero no libre. POR KRISTIAN KISSLING
25Número 16W W W . L I N U X - M A G A Z I N E . E S
nuestra distribución y usamos el gestor
de paquetes para instalarlo. No será
necesario resolver requerimientos del
software, ni tendremos que habilitar
ningún puerto del router. Skype usa los
puertos 80 y 443, que se emplean para
HTTP y/o SSL, y es raro que un
administrador tenga estos puertos
cerrados para otros protocolos.
Tras completar la instalación,
pulsamos [ALt-F2] y tecleamos skype.
Este comando habilita una ventana con
dos pestañas. Si somos usuarios
nuevos, seleccionamos New Users -
Create a Skype Account. Introducimos
nuestro nombre, contraseña y correo
electrónico en los apartados adecuados,
aceptamos las condiciones de uso
(véase la Figura 2), y ya estamos
conectados. Cuando ya tenemos cuenta,
podemos conectarnos a través de la
pestaña Existing Users - Log in to Skype.
Si queremos llamar a otro usuario de
Skype, tenemos que averiguar si está en
línea en ese momento.
Pulsamos en el icono de la lupa para
abrir la herramienta de búsqueda, e
introducimos el nombre del usuario al
que queremos llamar. Si no sabemos su
cuenta de usuario, pero sabemos su
fecha de nacimiento, domicilio o
número de teléfono móvil, podemos
probar suerte en el campo Advanced.
Si nuestro amigo introdujo esta
información en su perfil, la búsqueda
debería tener éxito. En ese caso, su
nombre aparecerá en la parte inferior de
la ventana. Hacemos doble clic sobre el
nombre para arrastrarlo hasta el menú,
y usamos el apartado Add to Contacts
para añadir el nombre a nuestra lista de
contactos.
El nombre aparecerá en la lista bajo la
pestaña Contacts. A continuación se
abre un cuadro de diálogo para la
autorización. A nuestro amigo se le
pregunta si quiere hablar, y podemos
especificar si queremos que nos vea
cuando estamos conectados. El icono
junto al nombre en la pestaña Contacts
muestra el estado actual. Si el icono
está verde, nuestro contacto está
conectado. Podemos fijar nuestro
propio estado a través del pequeño
icono en la parte inferior izquierda de la
ventana. Esto permite indicar a los
potenciales llamantes que no queremos
ser molestados o que no estamos en
casa.
Skype • PORTADA
Figura 1: Podemos descargar Skype desde Internet de manera gratuita.
SkypeOut nos permite llamar a la Red
Telefónica Conmutada o a las redes de
móviles. Antes de poder llamar, sin
embargo, tendremos que comprar
crédito a través de PayPal. Podremos
realizar llamadas siempre que dispon-
gamos de crédito. Obviamente existen
distintas tarifas en función del país de
destino [3]. Aunque sólo estamos
pagando llamadas nacionales, ya que las
llamadas usan Internet hasta llegar a la
red telefónica del país de destino, existen
apreciables diferencias en el precio. Una
llamada a las Islas Salomón cuesta 1.08
Euros por minuto. Mientras que a Japón
sólo cuesta 0.02 Euros el minuto.
SkipeIn es otro servicio en el que
disponemos nuestro propio número de
la red telefónica de manera que nos
puedan llamar desde teléfonos conven-
cionales. Las tarifas son del mismo nivel
que en las operadoras tradicionales. Si
tenemos un número de Berlín, pero
resulta que estamos en Sydney, nuestros
amigos de Berlín sólo pagarán a precio
de llamada local. Podemos comprar un
bloque de diez números, que nos
costarán 30 Euros al año, o 10 Euros por
tres meses. Lamentablemente, de
momento no están disponibles números
españoles.
Skype Voicemail es una especie de con-
testador virtual. Si somos clientes de
SkypeIn, podemos optar a tener este
buzón de llamadas que garantiza que no
perdamos el rastro mientras no estamos
online.
Festoon es una herramienta que propor-
ciona soporte para vídeo a Skype,
aunque sólo en la versión para Win-
dows. En la actualidad, la versión 2.0 de
Skype para Windows ya incorpora video
de serie, aunque aún está en versión
Beta.
Skype Zones es un servicio para gente
que viaja y usuarios de portátiles. La he-
rramienta Boingo nos permite usar
Skype a través de hotspots públicos en
Internet, cafés e incluso aviones. El servi-
cio cuesta 6,50 Euros al mes, pero de
nuevo, éste está restringido a los usua-
rios de Windows.
Servicios Skype
Para usar el servicio
comercial SkypeOut,
(véase el cuadro
“Servicios Skype”),
pulsamos sobre la
pestaña Dial. A
continuación usamos
las teclas numéricas
para marcar el número
de un teléfono fijo
convencional o un
móvil. La pestaña Call
List nos muestra un
administrador de
llamadas. Desde aquí
podremos acceder
también el servicio de
buzón de llamadas:
podemos escuchar
mensajes de llamadas
que se produjeron durante nuestra
ausencia. También podemos acceder a un
resumen de llamadas que hemos
efectuado. Skype permite también
conferencias de hasta cinco participantes.
Los usuarios de Linux pueden participar
en estas conferencias, pero no pueden
iniciarlas.
Alguien a la EscuchaSi necesitamos mantener una conferencia
para discutir algún negocio importante, la
seguridad de la comunicación puede ser
un asunto importante. Definitivamente no
vamos a querer fisgones a la escucha. El
asunto de la seguridad es siempre un
problema con el software propietario.
Según Skype, la comunicación está
protegida por un algoritmo AES
asimétrico, con una clave de 256 bits. La
compañía usa una clave RSA de 1024 bits
para controlar el intercambio de claves,
aunque claro, esto no podemos
comprobarlo nosotros. Skype no parece
dispuesto, de momento, a publicar su
código fuente. Y aunque se habilite la
encriptación, ésta desaparece al llegar a la
Red Telefónica Conmutada.
Tunear SkypePodemos cambiar algunas preferencias en
cuanto a seguridad. Pulsamos sobre la
pesaña Privacy en el menú Tools, donde
podemos especificar quién puede
escribirnos en una ventana de chat o
llamarnos. Si preferimos que no todo el
mundo pueda acceder a nosotros,
podemos restringir nuestra disponibilidad
a los miembros de la lista de contactos.
En General podemos
indicarle a Skype que
busque actualizaciones
automáticas del
programa. Aquí
también podemos
especificar cuánto
tiempo debe pasar el
ordenador inactivo para
que el estado pase a
ausente. Si dejamos el
ordenador funcionando
mientras nos vamos,
podemos molestar a los
contactos que tratan de
comunicarse con
nosotros en vano.
La pestaña
Hand/Headset nos
permite especificar el
dispositivo que usa nuestra tarjeta de
sonido, que suele ser /dev/dsp. Si esto no
funciona, tendremos que probar otra
interfaz. Las pestañas Call Alerts y Chat
Alerts nos permiten especificar qué pasa
cuando recibimos una llamada o una
ventana de chat. ¿Queremos un timbre o
preferimos un mensaje? La pestaña
Advanced nos autoriza a indicar los
puertos que debe usar Skype. Si
preferimos no usar los puertos estándar,
80 y 443, podemos introducir otro puerto
a partir del 1024. Puede que tengamos que
habilitar este puerto en nuestro router.
Cuidar las AmistadesSkype es una solución VoIP práctica y
altamente funcional, para el uso
doméstico. Pero si preferimos el
software libre y los estándares abiertos,
o si nos preocupan los aspectos en
cuanto a seguridad, puede que optemos
por alguna otra alternativa entre las que
se discuten en este número. Y antes de
empezar a llamar a los amigos al otro
lado del mundo, ¡comprueba las zonas
horarias! �
Hablar…Para empezar, conectamos nuestros
auriculares a la tarjeta de sonido,
seleccionamos el nombre de la persona a
la que queremos llamar y pulsamos el
botón verde de llamada. El ordenador
llamado empezará a sonar, y el contacto
podrá aceptar la llamada. Si aparecen
problemas en la comunicación, podemos
empezar chateando. Para ello, pulsamos
con el botón derecho sobre nuestro
contacto y seleccionamos Start a Chat en
el menú (véase la Figura 3). A través de
este mismo menú podemos enviar a
nuestro amigo fotos o cualquier otro
archivo. Simplemente pulsamos con el
botón derecho, seleccionamos Send a file
y examinamos el PC en busca del archivo
a enviar. Sin embargo, este tipo de
transferencia de archivos es muy lenta.
Skype no está diseñado para la
transferencia de grandes volúmenes de
información.
Si tenemos problemas con la
comunicación porque el volumen es muy
bajo, oímos eco o no podemos escuchar a
la otra persona, esto puede ser debido a
un buen número de causas. En primer
lugar debemos verificar si los auriculares
están correctamente conectados.
¿Tenemos los controles de volumen
configurados adecuadamente? La página
Web de Skype [2] nos ofrece más ayuda,
aunque debemos señalar que la conexión
funciona generalmente sin tocar ninguna
configuración. Puede que oigamos eco
durante nuestra conversación, pero
podemos reducirlo bajando el volumen
del micrófono.
PORTADA • Skype
26 Número 16 W W W . L I N U X - M A G A Z I N E . E S
[1] Página de Skype: http://www.skype.
com
[2] Solución de problemas en Skype:
http://support.skype.com/
?_a=troubleshooter
[3] Lista de tarifas para llamadas a la
Red Telefónica Conmutada: http://
www.skype.com/products/skypeout/
rates/all_rates.html
RECURSOS
Figura 2: ¿Nuevo con Skype? Tendremos que
registrarnos en primer lugar. Para ello, intro-
ducimos nuestro nombre, dirección de email
y contraseña.
Figura 3: El menú de Skype nos
ofrece las funciones de chateo y
llamada, además de la de transfe-
rencia de archivos.
Una distribución live de Linux es
un sistema operativo completo
que arranca y funciona
exclusivamente desde un CD o DVD.
Podemos arrancar el sistema live Linux
en cualquier PC siempre que el sistema
soporte el hardware. Debido a que el
sistema live se ejecuta desde el CD o
DVD, estas distros no modifican el
contenido del disco duro.
Los usuarios de Windows que tengan
en mente cambiar a Linux pueden
probarlo sin tocar su configuración.
Podemos usar también una distro live
para comprobar si un ordenador
concreto soporta Linux o para recuperar
un sistema dañado.
Para arrancar un sistema live, sólo
tenemos que poner el CD o DVD en la
unidad y reiniciar. (Si esto no funciona,
acuda al cuadro titulado “Arranque
desde la unidad CD o DVD”).
Las mejores distribuciones live no
sólo se usan como demostración o con
objeto de recuperar sistemas. Muchos
sistemas live incorporan entornos
gráficos, suite ofimática, programas
para Internet (como navegadores,
clientes de correo y de mensajería
instantánea), y todas las herramientas
que podamos necesitar para trabajar en
Linux.
Aunque los sistemas live se diseñan
para funcionar sin tocar la
configuración permanente, muchos de
ellos pueden también instalarse en el
disco duro como cualquier otra
distribución Linux. Como los sistemas
live suelen ser menores y más simples
que los sistemas Linux normales, a
menudo resultan una solución ideal
para ordenadores viejos con discos
duros pequeños y recursos limitados.
Hemos localizado algunas de las
distribuciones live más populares y las
hemos puesto a prueba. Empezamos
con la más popular e influyente de
todas ellas, la famosa Knoppix. Puede
acudir también a la página de Linux
Magazine [1] para más información
relativa a la instalación permanente de
las distros comentadas en este artículo.
KnoppixKnoppix está considerada como LA
distribución live Linux. Fue la primera
distro en soportar una interfaz gráfica
con escritorio. Su creador, Klaus
Knopper, basó Knoppix en Debian [2].
Desde su primer lanzamiento, Knoppix
ha crecido en tamaño y en
funcionalidades. Por ejemplo, es posible
cargarlo entero en la RAM (si se
dispone de suficiente) y usar la unidad
de CD-Rom para leer otro CD. Knoppix
también permite pasarle un buen
número de comandos en el arranque,
por ejemplo, para configurar el idioma o
activar el framebuffer. Existe incluso un
comando para usar hardware braille.
27
Live Distros • EVALUACIÓN
27Número 16W W W . L I N U X - M A G A Z I N E . E S
Si pulsamos simplemente ENTER en la
pantalla de arranque, tras unos
instantes, nos encontramos ante KDE
3.4, con OpenOffice.org 2 beta, Mozilla
Firefox, The Gimp y otras aplicaciones
familiares para los fieles de Linux. La
nueva versión en DVD tiene una
increible cantidad de software,
incluyendo programas típicos en KDE
como Kopete, Kaffeine, K3B, KOffice y
Konqueror, así como los que incorpora
Gnome, como Evolution y Rhythmbox.
También encontraremos herramientas
para gráficos como Blender, Inkscape y
Sodipodi, programas multimedia como
Xmms y Xine, y un conjunto de
programas educativos. Se ha logrado un
sistema de escritorio de ensueño, basado
en CD y completamente funcional
gracias a un enorme trabajo en los
scripts que cargan los módulos y
programas, y que dan como resultado un
sistema que funciona con la precisión de
un reloj suizo.
Muchas otras distros live se basan en
Knoppix. Algunos de estos proyectos son
sólo optimizaciones, pero otros, como
Kanotix, incorporan valiosas
características. Klaus Knopper adopta a
menudo estas innovaciones de vuelta a
posteriores versiones de Knoppix.
SlaxLa principal idea tras el proyecto Slax es
proporcionar distintas pequeñas
Analizamos el panorama de las distros Live en Linux
LINUX LIVEAnalizamos el panorama de las distros Live en Linux
LINUX LIVE
Un buen número de distribuciones live de Linux te están
esperando en Internet. La elección correcta depende de tus
necesidades. POR FABRIZIO CIACCHI
BMP en lugar de Juk, Mplayer en
lugar de Kplayer y Abiword en lugar
de KOffice.
• Frodo edition- Frodo, orientada al
modo texto, es la edición “light” de
Slax, ha sido creada con la intención
de ser un sistema de recuperación
portátil que pueda alojarse en un CD
“tarjeta de visita”. (Existen otras
distribuciones, como
DammSmallLinux, que proporcionan
un entorno de trabajo completo en el
mismo espacio).
Las restantes versiones de Slax que
están aún en desarrollo son:
• Server edition- La edición Server de
Slax contiene programas usuales
para servidores como DNS, DHCP,
SMB, HTTP, FTP, MySQL, SMTP,
POP3, IMAP y SSH. Su lanzamiento
está próximo. Esta edición pretende
ser la navaja suiza de los hackers de
Linux. Contendrá las herramientas
más conocidas en el campo de la
seguridad informática, como sniffers
de red, sistemas de detección de
intrusos, etc.
• Professional edition- Esta última
edición será la unión de todas las
demás, la cual se pretende que tenga
cabida en un Mini DVD de 1.4 GB.
Esta versión incorporará también
gcc, make y las fuentes del kernel, lo
que permitirá al usuario compilar
cualquier software, incluyendo el
kernel de Linux.
Slax tiene algunas características
interesantes, como su sistema modular,
que facilita a los desarrolladores la tarea
de personalizar las diferentes versiones a
partir de una base común. Dicho sistema
modular también permite instalar
versiones especializadas de Linux a
partir de un mismo sistema base. De
momento se encuentran disponibles
cuatro versiones. (Aunque están
planeadas un total de siete). Todas ellas
tienen un tamaño menor a 185 MB, lo
que significa que Slax puede incluirse en
un Mini CD. Las versiones de Slax
disponibles de momento son:
• Standard edition- Un live CD Linux
rápido y fácil de usar. El proceso de
arranque no lleva más de un minuto,
y el sistema está listo para usar y es
fácil de configurar. Todo el software
está basado en KDE: Konqueror, Juk
como reproductor de música,
KPlayer como reproductor
multimedia, Kopete en mensajería
instantánea y KOffice en lugar del
más conocido OpenOffice.org.
• KillBill edition- Es muy similar a la
edición estándar, pero incorpora
algunos programas de emulación,
como QEMU, dosbox y WINE, para
ejecutar programas para Windows o
emular arquitecturas hardware.
Podemos instalar Internet Explorer
usando WINE o podemos probar una
CD ISO usando QEMU. (Hay un
excelente artículo referente a QEMU
en los archivos de Linux Magazine
[3]).
• Popcorn edition- La edición Popcorn
de Slax es similar a sus predecesoras:
muy fácil, muy rápida y muy limpia.
La característica fundamental de la
edición Popcorn es que KDE se ha
sustituido por XFCE, y esta
sustitución causa otros cambios en la
lista de aplicaciones. Encontraremos
EVALUACIÓN • Live Distros
28 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Para poder utilizar un live CD tendremos
que configurar nuestro ordenador para
que arranque desde la unidad de CD.
Muchos PC’s modernos arrancan desde
la unidad CD/DVD por defecto. Si nues-
tro sistema no arranca con el CD o el
DVD dentro de la unidad, debemos con-
sultar la documentación del fabricante o
fijarnos en la pantalla de arranque para
averiguar cómo entrar en el menú de
configuración de la BIOS. (Las instruc-
ciones pueden variar en función del fa-
bricante de la placa madre). Selec-
cionamos como primer dispositivo de
arranque nuestra unidad CD/DVD. Si
podemos elegir entre un lector CD y una
grabadora de CD/DVD, elegiremos la
primera, ya que, por regla general, esta
opción tiene mejor soporte para el
arranque. Guardamos los cambios en la
BIOS, introducimos el live CD y reini-
ciamos.
Recordemos que arrancar desde una
distribución Linux live no toca en abso-
luto nuestro sistema instalado. La única
manera de borrar datos del disco duro
es que manipulemos las particiones, por
lo que, si nos preocupa proteger nuestra
información, será mejor que no probe-
mos con las opciones que afectan al
disco duro, a menos que sepamos con
seguridad lo que estamos haciendo
Arrancar desde la Unidad CD o DVD
Figura 1: Knoppix 4 es una madura distribución live con una ingente
cantidad de aplicaciones.
Figura 2: Slax es una pulcro y veloz sistema Linux que ocupa muy
poco espacio.
software de manera fácil y rápida desde
la página Web de Slax. Si queremos crear
nuestro propio CD Slax, sólo tenemos
que añadir los módulos necesarios al
directorio /module. O, si queremos usar
un módulo “al vuelo”, podemos abrir un
terminal y teclear uselivemod
modulename.mo.
A menos que nos guste trabajar con vi,
puede que encontremos algunos
problemas al arrancar Slax en entornos
gráficos. En las ediciones Standard y
KillBill, es probable que tengamos que
recurrir a vi para editar el archivo
xorg.conf. vi ni siquiera se incluye en la
edición Popcorn, lo que puede causar
incluso más problemas. A pesar de estas
complicaciones, Slax es una de las
distribuciones live más potentes: es
rápida y fácil de instalar, y las diferentes
versiones cubren una amplia gama de
necesidades para distintos tipos de
usuario, si acaso con pequeños
problemas achacables a la juventud de
esta distro.
MepisMepis debe ser la única distribución
live basada en Debian que toma todo
su software del repositorio original de
Debian. El hecho de centrarse en
Debian es una gran ventaja para Mepis,
porque, en cierto sentido, Mepis ES
Debian. La desventaja es que el
software puede no estar tan actualizado
como en otras distribuciones.
Al contrario que Knoppix, que ofrece
la gama más amplia de software y
posibilidades, Mepis se concentra en
simplificar las opciones. Encontraremos
menos opciones para el arranque y la
detección del hardware, y, en general,
la filosofía de Mepis es ofrecer “lo
mejor de su categoría” en cuanto a
aplicaciones, en lugar de proporcionar
una variedad de programas que hacen
lo mismo. En consecuencia, se ha
ganado una merecida fama como
sistema simple y sencillo para los
principiantes a la hora de la instalación
y uso.
Mepis se ha convertido en uno de las
distribuciones Linux más populares y ya
tiene vida propia. La instalación es muy
sencilla, y el software incluido está bien
compensado. Es una solución
recomendable debido a su sólida base
(Debian), su vistosidad (KDE) y su
facilidad de configuración (con el Mepis
OS Center).
Mepis viene en tres versiones:
• SimplyMepis- Es la edición
estándar, con el mejor software para
el usuario Linux. SimplyMepis es
rápido, fácil de usar y fácil de
configurar. Incluye las aplicaciones
de escritorio básicas como
OpenOffice, The Gimp y demás. La
próxima versión (que se planea
lanzar pronto) vendrá con Xorg en
lugar de Xfree y con actualizaciones
de las aplicaciones de escritorio
(como OpenOffice.org 2.0 beta).
• MepisLite- Es la edición light de
Mepis, orientada a los ordenadores
más viejos y menos potentes. El
Live Distros • EVALUACIÓN
29Número 16W W W . L I N U X - M A G A Z I N E . E S
Distribution Página Web Última Versión Tamaño ISO Kernel Escritorio Suite Ofimática
Knoppix http://www.knoppix.net 4 700MB(CD) 2.6.12 KDE 3.4.1 OpenOffice 2 beta
3.2GB(DVD)
Slax http://slax.linux-live.org 5.0.6 47MB(Business Card CD) 2.6.12 KDE 3.4.1 KOffice 1.4
185MB(Mini CD)
Mepis http://www.mepis.org 3.3.1 700MB(CD) 2.6.12 KDE 3.3.2 OpenOffice.org 1.1.4
Kurumin http://www.guiadohard- 5.0 420MB(CD) 2.6.11 KDE 3.3.2 OpenOffice.org 1.1.2
ware.net/kurumin
Elive http://www.elivecd.org 0.3 660MB(CD) 2.6.11 Enlightenment OpenOffice.org 1.9.125
16 and 17
Zen http://www.zenlinux.org 1.2.3 1.1GB(Mini DVD) 2.6.11 Fluxbox 0.9.12 OpenOffice.org 1.1.4
Gnoppix http://www.gnoppix.org 1.0 650MB(CD) 2.6.10 Gnome 2.10 OpenOffice.org 1.1.3
Kanotix http://kanotix.com 2005-03 700MB(CD) 2.6.11 KDE 3.4.1 OpenOffice 2 beta
Arrancar desde la Unidad CD o DVD
Figura 3: La sencilla y práctica distribución Mepis está basada en
KDE.
Figura 4: Elive incluye el rapidísimo y atractivo gestor de ventanas
Enlightenment 17.
para salir del paso. Si instalamos Kurumin
en el disco duro, podemos configurar el
idioma que deseemos.
EliveEnlightenment es un entorno gráfico
experimental que se centra en la velocidad
y la flexibilidad. Desde el primer
lanzamiento hasta el número 16,
Enlightenment ha conseguido un entorno
gráfico realmente espectacular,
sacrificando en algunos casos la
usabilidad del sistema. La última versión,
la E17, mantiene los sensacionales
gráficos, con algo más de usabilidad y una
apariencia más limpia.
Cuando arrancamos la distro live Elive,
podemos elegir entre la E16 o la E17. La
vieja Enlightenment E16 puede parecer
algo extraña al usuario habitual de KDE o
GNOME. Enlightenment 17 es
definitivamente una opción con interfaz
gráfica más avanzada. Encontraremos una
barra de herramientas muy similar a la de
Mac OS X con lanzadores de programas, y
que destaca los iconos conforme pasamos
el ratón. Tenemos también disponible un
conjunto de applets, llamados módulos,
que verifican parámetros como la
temperatura y frecuencia de la CPU.
Elive es una de nuestras distros
favoritas del conjunto que hemos
probado, aunque sea sólo por el hecho de
que es un entorno gráfico realmente
innovador. Un consejo: si decide
instalarla, deberá actualizar
inmediatamente después de la instalación,
ya que algunos de los componentes que
funcionan desde el live CD no lo hacen
correctamente desde el disco duro.
Zen LinuxEl objetivo de Zen es proporcionar un
buen Linux live CD, que sea muy rápido
y con gran cantidad de software.
Desafortunadamente, no termina de
conseguir este objetivo. Es cierto que
incluye una buena cantidad de software
usuario ideal de esta versión es un
usuario de Windows 98 que quiere un
sistema operativo moderno y rápido.
Esta edición es una buena opción si
tenemos un Pentium II con 128 MB de
Ram.
• SoHoServer- La edición SoHo de
Mephis reduce en buena parte el
software multimedia, ofimático y de
gráficos, pero incluye programas para
servidor como Apache2, PHP4, Perl,
MySQL, ProFTPd, Bind, DHCPd,
Postfix, Dovecot, Shorewall, Squid,
DansGuardian, Webmin y Usermin.
Mepis es, en definitiva, una buena opción
para los usuarios que valoren la
simplicidad.
KuruminKurumin es una de las distribuciones más
apasionantes basadas en Knoppix. Para
empezar, Kurumin es muy rápida e
incluye una interfaz basada en KDE con
iconos Crystal enormemente atractiva. En
sólo 420 MB, Kurumin tiene todos los
programas que podamos necesitar, como
OpenOffice.org (llamado en este caso
KuruminOffice) 1.1.2, GIMP 2.2.6, Mozilla
Firefox, Thunderbird, Gaim, Skype,
aMSN, K3B, Kaffeine y Xmms. Kurumin
dispone de numerosas herramientas para
configurar adecuadamente el hardware o
algún programa en concreto.
Encontraremos también un intuitivo panel
que nos permite configurar el hardware.
Un problema que encontramos en esta
distribución fue que el arranque live
aparentemente sólo se podía realizar en
portugués, por lo que es probable que
necesitemos saber algo en esta lengua
EVALUACIÓN • Live Distros
30 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Figura 5: Zen Linux incluye el gestor de ventanas Fluxbox y el admi-
nistrador de archivos ROX.
Figura 6: La distribución Gnoppix, basada en Gnome, incluye he-
rramientas como AbiWord.
La manera más habitual de obtener un
live CD es descargar la imagen ISO y
quemarla en un CD. Algunas de las he-
rramientas más conocidas para quemar
imágenes ISO son Easy CD Creator (para
Windows), Nero (para Windows/Linux)
o K3B (para Linux).
Linux incluye también herramientas
para grabar imágenes ISO desde conso-
la. Los comandos exactos pueden
depender de la configuración hardware
y de nuestro sistema Linux. Para grabar
una imagen de un CD, por ejemplo,
podemos teclear algo tal que:
$ cdrecord dev=/dev/hdc U
/path/image.iso
Donde hdc (o hdd) es nuestra grabadora
CD, e image.iso es el nombre del archivo
ISO (con la ruta, en su caso).
Para grabar un DVD, podemos probar:
$ growisofs -Z U
/dev/scd0=/path/image.iso
El proceso de grabación puede durar
desde 15 hasta 40 minutos, en función
del hardware y el rendimiento de nues-
tro sistema.
Quemar una imágen ISO
(por ejemplo The Gimp, OpenOffice y
otras aplicaciones estándar). Sin
embargo, la interfaz de usuario no es
demasiado intuitiva.
El sistema por defecto incluye el
gestor de ventanas Fluxbox y el
administrador de archivos ROX, con
gráficos azul metálico (y cursor azul
metálico). Esta elección no es mala,
pero cuando probamos una alternativa
como Xfce (que también se incluye), no
estaba en absoluto configurada, y esto
parecía ser síntoma de problemas
subyacentes. Zen, sin embargo, es la
única distribución que viene en formato
Mini DVD y con un conjunto de software
comparable a Knoppix.
Si queremos instalar Zen en nuestro
disco duro, debemos tener cuidado. Por
defecto, el instalador trata de instalarse
automáticamente borrando las
particiones. Si seleccionamos la
instalación personalizada, debemos
asegurarnos de lo que estamos
haciendo.
GnoppixGnoppix comenzó como un clon de
Knoppix que incluía Gnome en lugar de
KDE. El sistema Gnoppix ha crecido
desde entonces hasta convertirse en una
buena alternativa a Knoppix, aunque
con la explosión de cambios de la distro
Knoppix, Gnoppix ha quedado un poco
rezagada.
La llegada al estrellato de Ubuntu le ha
dado a Gnoppix una nueva oportunidad.
La distribución Gnoppix forma parte
ahora del proyecto Ubuntu. Este nuevo
papel supone también una cierta
limitación: Gnoppix está muy
relacionado con Ubuntu y no parece que
añada nada nuevo (en el sentido en el
que Knoppix añade características a
Debian). Gnoppix es principalmente una
versión live de Ubuntu Linux, pero al
menos es una buena herramienta para
comprobar si un sistema soporta
Ubuntu.
KanotixKanotix es un derivado de Knoppix que
se creó para proporcionar algunas
características que no ofrecía Knoppix.
Por ejemplo, Kanotix se lanzó con un
kernel 2.6, cuando en ese momento
Knoppix todavía usaba un kernel 2.4.
Con el último lanzamiento de Knoppix,
las diferencias entre estas distros se han
acortado, pero Kanotix sigue ofreciendo
algunas ventajas.
Una de sus características más
interesantes (que ha sido copiada por
otras muchas distros) es la
configuración del kernel. De hecho,
muchas distribuciones basadas en
Knoppix usan el kernel de Kanotix
porque permite una mejor detección del
hardware.
Uno de los proyectos basados en
Kanotix más prometedores es
SymphonyOS [4], una distribución live
de Linux que incluye un nuevo y
revolucionario entorno de escritorio
basado en FVWM.
ConclusionesLas distros live Linux proporcionan al
usuario una herramienta para
situaciones de emergencia y permiten a
los no usuarios de Linux probarlo antes
de instalarlo.
La elección del perfecto sistema live
Linux depende de nuestras necesidades.
Si estamos buscando un sistema ligero y
simple que sea fácil de instalar y tenga
una buena selección de lo “mejor de su
categoría” en cuanto a aplicaciones, el
ganador es Mepis. Knoppix, por otra
parte, es el padre de todas las
distribuciones live y es una buena
alternativa si queremos gran cantidad
de software y muchas opciones de
configuración. Para algunos usuarios
principiantes de Linux, Knoppix puede
que tenga demasiadas opciones.
Slax es otra prometedora distro con la
filosofía “menos es más”, pero aún
presenta algunos pequeños problemas
de juventud. �
Live Distros • EVALUACIÓN
31Número 16W W W . L I N U X - M A G A Z I N E . E S
[1] Consejos para instalación permanente: http://www.linuxmagazine.com/Magazine/
Downloads/63/LiveDistros
[2] Página oficial Debian: http://www.debian.org
[3] Emulación de sistemas con QEMU http://www.linux-magazine.com/issue/52/
QEMU_System_Emulation.pdf
[4] SymphonyOS: http://www.symphonyos.com
RECURSOS
Figura 7: Al igual que Knoppix, Kanotix incluye muchos juegos “clásicos”.
Fabrizio Ciacchi (http://fabrizio.
ciacchi.it) es un estudiante ita-
liano de Ciencias de la Com-
putación en la Universidad de
Pisa. Trabaja también como con-
sultor y escribe artículos sobre
Linux. En su tiempo libre, cola-
bora con el proyecto Abiword
(www.abiword.org).
EL AUTOR
32
EVALUACIÓN • OpenOffice 2.0
32 Número 16 W W W . L I N U X - M A G A Z I N E . E S
de ficheros basados en OASIS OpenDo-
cument [3]. Estos formatos están
estandarizados y documentados deta-
lladamente, y lo que es más, los vende-
dores de software han permitido su
implementación sin ninguna restricción.
La idea que persigue OpenDocument,
un conjunto de formatos de ficheros
estandarizados soportados por todos los
programas del mercado, es proporcionar
un soporte genuino para el intercambio
global de datos. La UE ya ha decidido
adoptar formatos de documentos abier-
tos y el estado norteamericano de Massa-
chusetts lo ha hecho obligatorio para
todas las oficinas públicas a partir de
2007.
Tanto KOffice como AbiWord soportan
OpenDocument y las versiones anterio-
res de OpenOffice 1.1.5 pueden leerlo. El
vendedor de software Softmaker se unirá
a finales de año. IBM/Lotus y WordPer-
fect han anunciado que harán con Open-
Document en versiones futuras.
Microsoft, desafortunadamente, ha
anunciado que no va a soportar Open-
Document en sus productos. En una
entrevista disponible en [4] con uno de
los arquitectos de OpenDocument, se
discuten las diferencias entre OpenDocu-
ment y el formato WordML de Microsoft.
Desde un punto de vista técnico, el
nuevo formato de fichero es muy similar
al formato de fichero OpenOffice ante-
rior; comprende un grupo de ficheros
XML almacenados en un archivo com-
primido.
ConfeccionadoLos usuarios de KDE, en particular, se
beneficiarán del retraso de la aparición
de OpenOffice. Aunque el plan original
era modificar su apariencia (en el
cuadro de diálogo de ficheros, por
ejemplo) para coincidir con Windows
y Gnome, sin embargo también se
beneficiarán de la solución orientada a
la plataforma. Esto es una gran ventaja
OpenOffice proporciona dos pro-
ductos: StarOffice, que es un pro-
ducto comercial de Sun [1] y
OpenOffice, que es un paquete gratuito
de software disponible en [2]. No existen
diferencias entre los paquetes ofimáti-
cos; pero Sun aporta una colección de
coloridos añadidos como fuentes, plan-
tillas y cliparts con StarOffice. OpenOf-
fice dispone de la mayoría de las fun-
cionalidades principales que los usuarios
esperan de una suite ofimática. La suite
OpenOffice viene con casi todas las dis-
tribuciones Linux y es una razón impor-
tante para su reciente crecimiento.
Cuando OpenOffice 2.0 apareció,
después de muchos meses de prelimi-
nares, echamos un vistazo para compro-
bar si realmente ha merecido la pena la
espera.
Formatos de FicherosEl cambio más significativo en OpenOf-
fice 2.0 podrían ser los nuevos formatos
Por fin: OpenOffice 2.0
LA LLEGADA DEOFFICE
Después de muchas versiones pre-
release y de informes preliminares, al
fin ha llegado el nuevo OpenOffice.
POR MICHAEL BONA
en comparación con la vetusta apa-
riencia del cuadro de diálogo de aper-
tura y cierre de la versión 1.1 (Figura
1).
En los demás aspectos, OpenOffice
2.0 se parece mucho más al paquete
Office de Microsoft que su predecesor.
Es probable que esto moleste a
algunos seguidores entusiastas, ya que
el cambio de versión implica adaptarse
al nuevo programa. Pero los cambios
no son tan malos como podrían pare-
cer cuando se les echa un vistazo
detallado. Además de lo nuevo,
todavía funcionarán los controles al
estilo MS Office, así como la mayoría
de los viejos trucos y operaciones.
A pesar de todas las dudas, la mayor
parte de los usuarios acomodados
probablemente apreciarán uno de los
cambios: OpenOffice 2.0 dispone
ahora de una herramienta brocha de
formato. Aunque la brocha es algo que
los expertos en el procesamiento de
textos odian, es de lo más popular
entre los usuarios casuales. Y las plan-
tillas de formatos aún están
disponibles para todos aquellos usua-
rios que prefieran mantenerse en sus
viejos hábitos.
WriterCon cada versión nueva, OpenOffice
se vuelve más compatible con
Microsoft Office, y la versión 2.0 no es
una excepción (Figura 2). De hecho,
2.0 ha realizado un gran salto con
respecto a la compatibilidad con MS
Office. Los Documentos que Open-
Office no puede
importar o expor-
tar son una
excepción.
Actualmente han
desaparecido los
problemas con
las listas enume-
radas y las tablas.
Las listas enu-
meradas pueden
importarse satis-
factoriamente y
Writer incluso
puede manejar
especialidades
Word, como las
líneas que cubren
más de una
página.
Los desarrolladores han perfec-
cionado la característica de
exportación como PDF. Esta función,
que está solamente disponible para los
usuarios de MS Office en forma de
añadido software de terceros, es capaz
de producir documentos PDF de alta
calidad en versiones previas. En este
momento la versión 2.0 añade soporte
para los thumnails de las páginas, for-
mularios PDF, hiperenlaces a pasajes
del texto en la tabla de contenidos y
enlaces en el texto. El nivel de compre-
sión para los gráficos es también con-
figurable por el usuario.
Desde luego, las mejoras van más
allá de las características de
importación y exportación. La utilidad
para contar palabras ya no se encuen-
tra escondida en las propiedades de la
página, sino
que sigue la
solución
adoptada por
Word con una
entrada en
Tools | Word
count. La fun-
ción puede
ahora contar
las palabras
dentro de una
selección, en
vez de todas
las palabras
del docu-
mento. Las
tablas ahora
pueden con-
33
OpenOffice 2.0 • EVALUACIÓN
33Número 16W W W . L I N U X - M A G A Z I N E . E S
tener subtablas y los saltos de páginas
pueden aparecer dentro de una línea.
Los textos de las tablas pueden ser
verticales, es decir, se pueden leer de
arriba a abajo. La orientación de abajo
a arriba, típica de las tablas, aún no
está soportada.
No todo el mundo verá el nuevo
Mail Merge Wizard como una mejora
(Figura 3). El asistente guiará a los
usuarios paso a paso por el proceso de
combinación de correspondencia, pero
por otro lado, dicho proceso requiere
más clics de ratón de los requeridos en
la versión anterior 1.1. Como nota
positiva, OpenOffice 2.0 ya puede
crear correos electrónicos en serie,
como su antecesor StarOffice 5.1 (La
característica de correos electrónicos
en serie no aparecía en la versión ante-
rior). Había que instalar la biblioteca
JavaMail para obtener esta caracterís-
tica.
Probablemente sea necesario ser un
abogado para entender por qué el dic-
cionario del corrector ortográfico no
esté incluido por defecto, pero se
puede descargar desde los servidores
de OpenOffice por medio de una
macro cuando se desee. El corrector
ortográfico es sencillo y versátil, ofre-
ciendo una selección de idiomas desde
Afrikaans a Zulu.
CalcEl cambio más obvio realizado sobre la
nueva versión de Calc es su parecido con
MS Excel. Los menús y las cajas de
herramientas son más o menos idénticos
a sus equivalentes de Excel. No hay
Figura 1: La versión 2 proporciona un soporte mejor para KDE. La
figura muestra a OpenOffice usando el cuadro de diálogo de ficheros
de KDE.
Figura 2: La última versión de OpenOffice Writer se parece aún más a
Microsoft Word.
y las plantillas de disposición, exhiben la
presentación y facilitan la navegación, así
como la edición. Las versiones anteriores
de Impress tenían botones realmente
pequeños para la mayoría de las fun-
ciones principales, pero puede dejar la
lupa en el escritorio con Impress 2.0.
Todas las funciones principales son clara-
mente visibles y fáciles de acceder. Esto
es particularmente cierto con la función
Start slideshow, que ahora se encuentra
en la parte superior derecha en un gran
botón, en vez de ocultarse detrás de un
bosque de iconos en miniatura en el lado
derecho.
El último Impress también propor-
ciona grandes mejoras para intercambiar
datos con MS Office. Impress soporta
ahora Microsoft AutoShapes, a las que se
refiere como CustomShapes en OpenOf-
fice, y puede importar formas sin causar
ningún daño. Las versiones previas con-
vertían las formas a gráficos, pero la ver-
sión actual mantiene la habilidad de
escalar y editar las formas. Esto es apli-
cable a las fuentes rotadas y modifi-
cadas. Impress también soporta más
efectos de transición y animaciones, así
que un fichero importado de PowerPoint
se parece bastante más al original. Como
su predecesor, Impress 2.0 puede expor-
tar a HTML y Flash.
La nueva GUI también tiene sus incon-
venientes: su aspecto es completamente
diferente al resto de los programas del
paquete. Esperemos que los desarro-
lladores encuentren la forma de añadir
barras de desplazamiento laterales a las
otras aplicaciones de OpenOffice.
BaseEn las versiones anteriores del paquete
OpenOffice no había un equivalente a la
base de datos MS Access. Aunque el soft-
ware poseía alguna funcionalidad de
bases de datos, estaba bien oculta. Para
cambiar esto, los desarrolladores han
agrupado la funcionalidad de bases de
datos en un programa nuevo, Base, junto
con una nueva GUI (Figura 6). Base
puede usarse como una interfaz para
acceder a bases de datos como MySQL o
PostgreSQL, pero también dispone de su
propia base de datos de fácil uso. Alma-
cena registros, formularios y consultas
muchos más cambios. El nuevo formato
puede manejar 65.536 líneas, como
Excel. Una de las mayores debilidades se
aprecia mejor en Calc que en cualquier
otra aplicación. OpenOffice 2.0 es aún
incapaz de manejar macros VBA. El
DataPilot [X] añade muchas habilidades
analíticas en comparación con su versión
predecesora (Figura 4). Pero aún hay
mucho que hacer: MS Excel PivotTables
pueden hacer más y son más fáciles de
usar.
Los expertos del teclado pueden
realizar más tareas sin el ratón. En las
versiones previas, se podría utilizar el
teclado para seleccionar celdas en una
tabla, pero hacía falta el ratón para dese-
leccionarlas. Esto ya no será necesario.
El mismo atajo de teclado [Ctrl]+[Shift]-
[Pageup] elimina una selección en la ver-
sión nueva. Ha sido eliminada otra debil-
idad: la abismal función de impresión. A
diez años de sus competidores, Calc
finalmente permite a los usuarios especi-
ficar cuántas páginas debe tener de
ancho y largo una copia impresa de la
hoja de cálculo.
ImpressEl programa de presentaciones Impress
ha sido rehecho completamente. Actual-
mente el GUI se parece tanto a Power-
Point que los usuarios podrían tener difi-
cultades para distinguirlos de un primer
vistazo. Sin embargo, esto no es un punto
negativo de Impress, y la nueva GUI es un
paso de gigante en la dirección adecuada
(Figura 5). Los thumbnails a la izquierda
EVALUACIÓN • OpenOffice 2.0
34 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Figura 3: El Mail Merge Wizard requiere más pulsaciones de ratón, pero los pasos adicionales
hacen que la herramienta sea más sencilla para los usuarios noveles.
Figura 4: El nuevo Calc DataPilot dispone ahora de más opciones para el análisis de datos.
en un único fichero; no necesita un
servidor de bases de datos y permite un
intercambio fácil de datos con otros
usuarios.
Base viene con un asistente que ayuda
a los usuarios a crear bases de datos con
sus correspondientes formularios y con-
sultas. Es una aplicación bastante joven.
La GUI no es muy intuitiva y se “cuelga”
bastante a menudo. La versión actual de
Base es más una herramienta para usua-
rios casuales que no tienen que tratar
con grandes problemas. Por otro lado, el
GUI es bastante complejo para este tipo
de usuarios.
GenéricasOpenOffice 2.0 también incluye dos apli-
caciones menores: Draw, un sencillo pro-
grama de dibujo y Math, un editor de fór-
mulas. Ambas aplicaciones han sufrido
un gran cambio si se comparan con las de
las versiones previas, viéndose benefi-
ciadas por las mejoras genéricas de
OpenOffice. Por ejemplo, Draw puede en
este momento manejar CustomShapes,
como Impress.
En todas las aplicaciones de OpenOffice
se encuentran actualmente disponibles
muchas funciones importantes. Por ejem-
plo, la función de exportación en PDF
disponible en Writer también propor-
cionará ficheros PDF perfectos en todas
las otras aplicaciones de la suite.
Todas las aplicaciones soportan firmas
digitales para permitir a los receptores
comprobar el origen de un documento
con un cierto grado de confianza. La eje-
cución de macros también puede fir-
marse para probar su origen. Desafortu-
nadamente, la
documentación
para esta carac-
terística es bas-
tante escueta y
será mejor experi-
mentar para
aprender su fun-
cionamiento. No
hay soporte para
GPG, un método
de firma con bas-
tantes seguidores
entre los usuarios
Linux.
Los desarrolladores también están
empezando a reincidir en temas de
seguridad: La primera versión de
desarrollo de 2.0 establecía por
defecto el nivel de seguridad en “Muy
alto”; ahora el programa pregunta al
usuario antes de ejecutar una macro.
Aunque esto sea un paso más hacia la
compatibilidad con MS, puede ser que
se pregunte si OpenOffice realmente
tiene que emular todas las característi-
cas de MS.
ConclusionesLa nueva versión de OpenOffice se
centra obviamente en mejorar la inter-
operatividad con el paquete Microsoft
Office, y dando un gran salto en esta
dirección. OpenOffice 2.0 también
incluye modificaciones en el diseño de
la GUI para que les resulte más sen-
cilla a los usuarios su migración desde
MS Office. Al mismo tiempo, los cam-
bios podrían molestar a algunos de los
usuarios de OpenOffice.
El nuevo programa de bases de
datos, Base, aún necesita mejorar, pero
parece que promete. Esperamos con
gran expectación las próximas ver-
siones. La característica PDF de
OpenOffice es una buena baza que
hace que OpenOffice 2.0 sea una he-
rramienta potente para la creación de
documentos y formularios PDF.
El nuevo formato de ficheros es el
cambio más significativo de Open-
Office 2.0. El formato OpenDocument
promete gran compatibilidad, inter-
cambio de datos sin problemas y liber-
tad de elección. Todo en uno, los
desarrolladores han realizado un gran
trabajo con OpenOffice 2.0. Este
paquete ofimático puede realizarlo
todo mejor que sus predecesores, tal
como habría que esperar de cualquier
jovencito saludable de cinco años de
edad. �
OpenOffice 2.0 • EVALUACIÓN
35Número 16W W W . L I N U X - M A G A Z I N E . E S
Figura 5: Impress es capaz ahora de importar ficheros más complejos de PowerPoint sin
ningún problema. La figura muestra una presentación original de Microsoft sobre .NET.
Figura 6: La nueva herramienta de base de datos Base al fin propor-
ciona una base de datos para OpenOffice.
[1] Staroffice: http:// www.sun.com/
software/star/staroffice/index.jsp
[2] OpenOffice: http://www.openoffice.
org/
[3] OpenDocument: http://en.wikipedia.
org/wiki/OpenDocument
[4] Comparativa entre OpenDocument y
WordML: http://madpenguin.org/cms/
?m=show&id=5304
RECURSOS
36
EVALUACIÓN • CentOS
36 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Anteriormente a los sistemas operativosempresariales, los usuarios de GNU/Linuxtenían que actualizar sus sistemas cada añoo arriesgarse a perder la posibilidad deincorporar actualizaciones de seguridad.Los scripts hechos a medida o los progra-mas, a menudo dejaban de funcionar ocompilar tras las actualizaciones con lasnuevas versiones de Bash, GCC o python.
Diversos proveedores de GNU/Linuxrespondieron con los sistemas operativosempresariales para poner fin a este pro-blema. Un SO empresarial no cambia lasversiones de los componentes principalesde su software durante su ciclo de vida,creando por tanto un producto estable parausuarios que quieran crear sus procesosempresariales y mantenerlos establesdurante varios años.
Los sistemas operativos empresarialessiguen necesitando actualizaciones deseguridad cuando se encuentran proble-mas, pero no estropean cosas como losmódulos API de Apache o intercambian loscompiladores de C. Ambas, longevidad yestabilidad permiten a los usuarios invertiren software a medida y desarrollar prácti-cas empresariales sin preocuparse de quequeden obsoletas.
Los SO empresariales normalmentetienen un precio elevado, y su costeeconómico puede ser importante. Muchosde ellos, con un año de actualizaciones ysoporte telefónico, pueden costar entre 300y 2.500 dólares por año y servidor. Los
planes más caros tienen sus ventajas, comotiempos de respuesta menores y más horasde soporte telefónico.
La aparición de los SO empresariales dioal usuario otra opción. Éstos podían ahoraelegir entre:
1. Una distribución GNU/Linux conven-cional, gratuita (o de bajo coste), con ciclosde lanzamiento y soporte cortos.
2. Un SO empresarial de elevado precio,con ciclos de lanzamiento y soporte largos.
Recompilar ProyectosMuchos usuarios en la comunidad GNU/Linux comenzaron a preguntarse si seríaposible tener lo mejor de ambos mundos:un sistema estable con un ciclo desoporte largo, pero sin coste. Sorprenden-temente, GNU/Linux ya proporcionabaesa posibilidad. La mayoría de las dis-tribuciones se licencian bajo la GPLv2
El Community ENTerprise OperatingSystem, también conocido comoCentOS [1], es una alternativa libre
a los caros sistemas empresariales propor-cionados por empresas como Red Hat,SUSE y Mandriva. Hemos entrevistado a sujefe de desarrollo para que nos cuente quéhace a CentOS diferente.
¿Qué es un Sistema OperativoEmpresarial?Un sistema operativo para la empresa noestá diseñado para el usuario que busca “loúltimo de lo último” en software, con gráfi-cos espectaculares, los últimos kernels,montones de juegos y otras ñoñerías super-fluas. Muchas distribuciones GNU/Linuxcubren la demanda de “lo último de loúltimo”. Estas distribuciones se lanzan cada6 meses más o menos, y normalmenterequieren un trabajo constante de actua-lización debido a que el soporte va desa-pareciendo gradualmente con cada versiónnueva que aparece. Estas distros con “loúltimo de lo último” tienen generalmenteun ciclo de lanzamiento de 6 meses y unciclo de soporte de entre 12 y 18 meses.
Una distribución empresarial, por contra,tiene ciclos de lanzamiento y soportemucho mayores. Los sistemas operativosempresariales se diseñan con criterios delongevidad y estabilidad. Muchos de estossistemas operativos tienen ciclos de lanza-miento de entre 12 y 18 meses y ciclos desoporte en el rango entre 5 y 7 años.
CentOS GNU/Linux y la diferencia empresarial
EMPRESA LIBRECentOS GNU/Linux y la diferencia empresarial
EMPRESA LIBRELa estabilidad y longevidad de las distribuciones empresariales de
Linux cuestan su buen dinero…¿o no tanto? POR JOHNNY HUGHES
Muchos proyectos se basan actualmente
en CentOS, incluyendo:
• OpenFiler http://www.openfiler.org/
• SME Server http://smeserver.
sourceforge.net/HomePage
• RocksClusters http://www.
rocksclusters.org/
• Asterisk@Home http://asteriskathome.
sourceforge.net/
• BU Linux 4.5 Server Edition (Zodiac) de
la Universidad de Boston http://linux.
bu.edu/content/view/64/36/
• NewOnce Networks CentOS / Blue
Quartz Installation CD http://www.
nuonce.net/bq-cd.php
Derivados de CentOS
[2], que especifica que el código fuentedebe ponerse a disposición de quien losolicite. No dice que el software compi-lado deba darse gratuitamente, sino quela disponibilidad del código fuente es unprincipio fundamental de la GPL. Portanto, es posible coger el código fuenteproporcionado por la empresa y conver-tirlo en un sistema operativo plenamentefuncional. Esta perspicacia ha propiciadoel surgimiento de un nuevo tipo de dis-tribución GNU/Linux: el proyecto recom-pilado.
Un proyecto recompilado es una distroque recompila el código proporcionadopor una empresa que desarrolla un SOempresarial, y lo distribuye libremente.CentOS es un proyecto recompiladobasado en la prominente distribuciónNorth American Linux. Algunos otrosproyectos recompilados muy conocidosson: Scientific Linux [3], Tao Linux [4] yWhite Box Enterprise Linux [5].
Ambición EmpresarialCentOS es un proyecto de mayor enver-gadura y más elaborado que la mayoríade los demás proyectos recompilados. Elequipo de CentOS tiene 11 desarrolla-dores y su trabajo está disponible desdemás de 70 mirrors por todo el mundo[6].CentOS se encuentra disponible entres distribuciones principales: CentOS-2,CentOS-3 y CentOS-4. Soporta las arqui-tecturas x86, x86_64, S390, S390x, IA64,sparc, ppc, ppc64 y alpha. (La mayoría desus rivales soporta sólo x86 y x86_64).
Este enorme trabajo de los desarro-lladores de todo el mundo ha hechode CentOS un sistema operativo com-pletamente funcional que ocupa unhueco muy importante en elpanorama Linux. En la últimaencuesta de netcraft.com se estimaque CentOS se ejecuta en cerca de100.000 servidores Web. Esto lo sitúadentro de las 8 distribuciones GNU/Linux con más servidores Webdesplegados [7]. Además, es la únicadistribución empresarial gratuita de laencuesta.
CentOS está dentro del top 20 en elranking de distribuciones GNU/Linux yBSD de DistroWatch.com, la posiciónmás alta de un proyecto recompiladoempresarial.
¿Y qué podemos hacer conCentOS?Podemos usar CentOS para cualquierade las tareas que, de otra manera, ten-dríamos que asignar a solucionesempresariales comerciales. CentOSpuede reemplazar a los dominios ServerMessage Block (SMB) usando Samba(samba-3.0.10-1.4E.2). Al no existir yasoporte para Microsoft Windows NT [8],CentOS y Samba pueden usarse comoun SMB Domain Controller primario osecundario seguro, servidor de archivosSMB o servidor de impresoras SMB. Estasolución es especialmente prometedoracomo sustituto de un SMB si se usaOpenLDAP (openldap- 2.2.13-4) y lassmbldap-tools de IDEALX S.A.S [9].
El usuario puede hacer de CentOS unservidor de correo listo para funcionaren una empresa, servidor de dominios,servidor Web, servidor de archivos y sis-tema de base de datos, además decliente de escritorio. CentOS se usa tam-bién frecuentemente como servidor deISP, usando software ISP de terceroscomo cPanel, Ensim, Plesk and Vir-tuozzo.
Actualizaciones CentOSLos usuarios pueden obtener actualiza-ciones de la CentOS Network bien conUp2date (véase la Figura 1), bien conYum. Para más detalles, véase el docu-mento “Managing Software with Yum”[10]. Véase también el cuadro titulado“Ciclos de Soporte” para más informa-ción relativa al calendario de soporte deCentOS.
37
CentOS • EVALUACIÓN
37Número 16W W W . L I N U X - M A G A Z I N E . E S
Las actualizaciones de CentOS puedensurgir de dos maneras. El método más sen-cillo es con una nueva versión de unpaquete, tal y como se lanza por el man-tenedor de paquetes. Una segunda vía deactualización aparece cuando ocurre unconcepto denominado backporting. UnBackporting [13] es un proceso por el cualuna actualización de seguridad se aplica aun paquete existente en lugar de pasar a unpaquete más nuevo. El Backporting puedeusarse para corregir un problema de seguri-dad cuando el paquete nuevo pueda poneren peligro la estabilidad del sistema yainstalado. �
Figura 1: Administración de actualizaciones de
CentOS con up2date.
[1] CentOS.org: http://www.centos.org/
[2] GPLv2: http://www.gnu.org/copyleft/
gpl.html
[3] Scientific Linux: https://www.
scientificlinux.org
[4] Tao Linux: http://www.taolinux.org
[5] White Box Linux: http://www.
whiteboxlinux.org/
[6] Mirrors de CentOS:http://www.centos.
org/mirrors/
[7] Rankings de distribuciones: http://
news.netcraft.com/archives/2005/12/
05/strong_growth_for_debian. html
[8] Retirada de NT: http://www.microsoft.
com/ntserver/productinfo/availability/
retiring.asp
[9] IDEALX: http://www.idealx.org/prj/
index.en.html
[10] “Managing Software with Yum”:
http://mirror.centos.org/centos/4/docs/
html/yum/
[11] Documentación de CentOS : http://
mirror.centos.org/centos/4/docs/
[12] Repositorios de CentOS : http://mirror.
centos.org/centos/4/Readme.txt
[13] Backporting: http://www.redhat.com/
advice/speaks_backport.html
RECURSOS
CentOS proporciona el siguiente calen-
dario de ciclos de soporte:
• Centos-2: Actualizaciones completas
(incluyendo actualizaciones de hard-
ware): Este periodo finalizó el 31 de
Mayo de 2005. Actualizaciones de
mantenimiento: 1 de Junio de 2005
hasta 31 de Mayo de 2009.
• CentOS-3: Actualizaciones completas
(incluyendo actualizaciones de hard-
ware): Hasta 31 de Octubre de 2006.
Actualizaciones de mantenimiento: 1
de Noviembre de 2006 hasta 31 de
Octubre 31 de 2010.
• CentOS-4: Actualizaciones completas
(incluyendo actualizaciones de hard-
ware): Hasta 29 de Febrero de 2008.
Actualizaciones de mantenimiento: 1
de Marzo de 2008 hasta 29 de Febrero
de 2012.
Derivados de CentOS
38
EVALUACIÓN • Libros
38 Número 16 W W W . L I N U X - M A G A Z I N E . E S
mala pasada su inexperiencia
como autor. Smalltalk es un
lenguaje lo bastante alejado
de los lenguajes mainstream
como para resultar confuso
incluso al desarrollador
experimentado, y algunos de
los ejemplos que pretenden
ilustrar el lenguaje están
desafortunadamente elegidos. A pesar de
que Deck advierte que la curva de
aprendizaje de Smalltalk es empinada, las
tareas que escoge no siempre facilitan su
subida y personalmente las encuentro a
menudo insuficientemente explicadas.
La otra cosa que me chocó
negativamente del libro fue el exceso de
ilustraciones y cuadros en una
maquetación recargada, que hace casi
imposible seguir el texto explicativo. Es
común a lo largo del volumen
encontrarse con dobles páginas con no
menos de cuatro ilustraciones y/o
cuadros ¡en un libro con un formato de
A5! En estos casos, el cuerpo del texto
sus usuarios y desarrolladores, ya que Gil
no se limita a explicar el funcionamiento
del sistema, sino que se explaya en cierta
medida y de manera asequible sobre la
filosofía tras el movimiento Linux, dando al
lector un contexto que le permite ver no
sólo las ventajas técnicas de Guadalinex,
sino sus implicaciones sociales, morales y
de la comunidad.
Además, el manual ofrece una amplia
lista de recomendaciones que incluyen una
selección bibliográfica útil para neófitos, así
como una extensa webografía para quienes
desean profundizar más en este proyecto,
que se traduce en un completo listado de
enlaces, que van desde la enci-
clopedia online Wikipedia hasta
los repositorios de software en
SourceForge, y que permite al
lector trascender el manual
ayudándole a buscar informa-
ción más allá. Sin embargo,
falta un apéndice con un
glosario alfabético que ayudara
a encontrar rápidamente los
temas que le interesan buscan-
propiamente dicho a menudo
se reduce a ocho líneas, una
cantidad insuficiente para el
seguimiento de las
explicaciones. Entiendo que la
filosofía de Smalltalk se halla
asociada a su IDE gráfico,
pero una imagen no siempre
es mejor que mil palabras. Un
formato mayor y más contención a los
deseos de explicar con capturas todos y
cada uno de los pasos a dar hubieran
beneficiado a este título.
Deck es un gran programador, Editlin
es una editorial comprometida y
coherente y un libro más técnico sobre
Smalltalk/Squeak se echaba en falta.
Pero ésta es una idea buena malograda
por una ejecución a mi parecer
deficiente.
Autor: Diego Gómez Deck
Formato: 222 páginas, A5
Editorial: Editlin
ISBN: 84934371-3-1
Precio: 25,00 euros
do por el término clave, aunque es cierto
que el detallado índice ayuda en la loca-
lización de las materias que nos interese
consultar.
Otro aspecto negativo es el afán de evitar
a toda costa el uso de la terminal para no
intimidar al lector. Echo en falta una breve
introducción a la línea de comandos que
dote de los conocimientos básicos necesa-
rios para iniciarse en la explotación de las
poderosas herramientas que proporciona
este interfaz.
Es un libro de fácil lectura y asequible,
teniendo en cuenta al lector al que se
dirige, resultando ameno y didáctico gra-
cias a la abundancia de gráficos y de refe-
rencias a fuentes de Internet.
En suma, un libro muy recomendable
que, junto con la distro que describe, com-
pone un kit ideal para dar los primeros
pasos en un entorno Linux.
Autor: Quim Gil
Formato: 302 páginas, A5
Editorial: Editlin
ISBN: 84-934371-4-X
Precio: Por determinar
Programando con SmalltalkSi es admirable el esfuerzo que hacen las
instituciones por llevar el software libre a
todos los ámbitos, no es menos cierto que
es igualmente encomiable el trabajo que
hacen los desarrolladores individuales y
las empresas vinculadas al sector, muchas
de ellas de reciente creación, para la
difusión de las tecnologías libres.
A este respecto, especial atención
merece la editorial Editlin, que ha
asumido el reto de publicar títulos que
versan sobre tecnologías libres reclutando
sus autores de la cantera nacional. Ello le
ha llevado a convertirse en el vehículo
para dar a conocer el trabajo de los
individuos que alimentan el motor del
software libre en España.
Sin embargo, las buenas intenciones no
siempre derivan en buenos resultados, y
el título que nos ocupa es un ejemplo de
ello. Programando con Smalltalk no
alcanza las expectativas que me había
hecho con respecto a este título y creo
que a Diego Gómez Deck le juega una
Guadalinex v3. Iniciación alSoftware LibreDe nada serviría lanzar una distribución
Linux avalada por toda una junta
autonómica y esperar que lo adopte el
grueso de la población, si no se está dis-
puesto a invertir en la formación de los
potenciales usuarios. Y la piedra angular de
la formación es la documentación.
Todo esto viene a cuento de la obra que
nos ocupa, escrita por Quim Gil, y destina-
da a convertirse en el manual oficial de la
nueva versión de Guadalinex.
El libro, estructurado siguiendo un con-
tenido práctico en cuanto a aplicaciones,
resulta de gran utilidad si se
desea buscar algo en concreto.
Asimismo, hace un repaso
explicativo de los contenidos
libres así como de la conexión
mantenida con distintas comu-
nidades de desarrollo y grupos
de usuarios con los que entrar
en contacto si nos llama el
deseo de colaborar con la
comunidad del Software Libre,
LIBROS POR PAUL C. BROWN
Los viajantes y el personal en ofici-
nas remotas a menudo necesitan
acceder a las redes de sus empre-
sas desde lugares arbitrarios. Las redes
privadas virtuales (VPNs) soportan acce-
so remoto privado a través de Internet.
Las soluciones VPN utilizan criptografía
para proteger el tráfico de Internet de los
curiosos y de la manipulación. Sin
embargo, la mayoría de las herramientas
VPN son difíciles de configurar y
requieren cambios en el cortafuegos.
SSL-Explorer [1] supone una alternati-
va fácil. Configura una VPN basada en
web y sólo requiere un navegador que
soporte Java como cliente (Figura 1). Es
una herramienta Web práctica que pro-
porciona una interfaz de configuración.
Los túneles SSL-Explorer se basan en
protocolos TCP de red tales como SMTP,
POP y HTTP a través de una conexión
SSL protegida.
SSL-Explorer basado en Java se ejecu-
ta en sistemas Linux y Windows. Los
administradores pueden usar herramien-
tas remotas tales como SSH, SFTP, VNC,
Citrix y otros servicios de terminal para
controlar el sistema de forma remota. El
perfil de mantenimiento integrado añade
la habilidad de definir diferentes confi-
guraciones para múltiples puntos de
acceso. La extensión comercial Xtra de
3sp [2] aporta mecanismos de autenti-
cación (LDAP, PIN, SMS, Clave Pública),
así como soporte técnico y otras mejoras.
Base de Datos de UsuarioSSL-Explorer le proporciona su propia
base de datos de usuario para propósitos
39
SSL-Explorer • PRÁCTICO
39Número 16W W W . L I N U X - M A G A Z I N E . E S
de autenticación y adicionalmente
soporta autenticación central basada en
Active Directory. Posee características de
interoperabilidad, incluyendo soporte
para políticas y carpetas Web de
Windows. El soporte para servidores
LDAP está disponible con el paquete
comercial Xtra.
Figura 1: Configuración de un túnel con SSL-Explorer. Los usuarios pueden proteger protocolos
inseguros de los mirones.
Test: Una VPN con SSL-Explorer
CARRETERASPRIVADAS
SSL-Explorer proporciona una interfaz basada en web para configurar una red privada virtual.
POR HOLGER REIBOLD
SSL-Explorer proporciona una interfaz basada en web para configurar una red privada virtual.
POR HOLGER REIBOLD
EmpezandoUtilice HTTPS en su equipo local
(https://localhost/) para acceder a la
GUI. La contraseña por defecto para el
usuario admin es admin. Tras regis-
trarse, debería ver
cuatro menús:
Home,
Networking,
Services y Admin.
La primera vez
que ejecute el pro-
grama, la página
de inicio le pro-
porcionará adi-
cionalmente el
estado del cliente
VPN. La fun-
cionalidad del
cliente se requiere
para algunas fun-
ciones SSL-
Explorer. El botón
Launch ejecuta el
applet.
El menú Home
le permite confi-
gurar parámetros
como el manejo
de las configura-
ciones de los
usuarios. Home |
My Account |
Configuration le proporciona un formu-
lario con las configuraciones de usuario
(Figura 2). Los administradores pueden
configurar sus propias cuentas y crear
perfiles de usuario dedicados. El menú
Admin capacita para crear nuevos usua-
rios.
La configuración por defecto ofrece
dos perfiles, pero pueden añadirse más si
es necesario. Los perfiles le permiten
almacenar propiedades para varios esce-
narios. SSL-Explorer utiliza un acceso
basado en reglas de control del sistema
que posibilita a los administradores asig-
nar permisos de control con precisión.
En vez de asignar derechos individuales
a un único usuario, un administrador
puede asignar derecho a una regla y
luego asociar esa regla con un usuario.
Por ejemplo, puede configurar derechos
para usuarios en el departamento de
Marketing que serán distintos de los
derechos asignados a los usuarios en
Ventas.
Definir manualmente una regla no es
complicado. Sólo teclee el nombre en el
cuadro Create Role y haga clic en Create.
Esto añade una nueva regla a la lista. La
regla está resaltada en rojo para indicar
su estado de Revoked (anulada), así que
necesitará habilitarla antes de usarla. La
Necesita como mínimo una plataforma
Pentium III (1 GHz) y 512 MBytes de
RAM. El programa ocupa sobre 140
MBytes de espacio en disco. El archivo
Zip en [1] suministra un paquete RPM
que deja el fichero del programa en el
directorio /opt/sslexplorer. Para ejecutar
la herramienta de configuración basada
en Web simplemente se introduce /opt/
sslexplorer/setup-sslexplorer. La rutina de
instalación lanza una URL que le propor-
ciona la interfaz Web del SSL-Explorer,
que normalmente escucha en el puerto
28080.
Hay que configurar un número de
parámetros críticos en el modo de con-
figuración. La primera página se titula
Web Security. Le permite crear o impor-
tar certificados SSL. Si sólo quiere testear
el software, puede crear su propio certifi-
cado, pero deberá ser una clave CA
(Autoridad Certificadora) que todos los
navegadores reconozcan en entornos de
producción.
Tras completar la configuración, los
usuarios tienen tres opciones para ejecu-
tar el SSL-Explorer. El comando en Red
Hat Linux (que es oficialmente el único
soportado por la distribución) es service
sslexplorer start. Introduzca /etc/init.d/
sslexplorer console o posiblemente /opt/
sslexplorer/sslexplorer_console para otras
distribuciones.
PRÁCTICO • SSL-Explorer
40 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Figura 2: El formulario de configuración de la cuenta permite al administrador manejar las
configuraciones de la cuenta.
Figura 3: SSL-Explorer soporta un gran rango de configuraciones de
seguridad.
herramienta de configuración Granular
le ayuda a editar las propiedades de las
reglas. Si está en una red con Active
Directory, puede importar configura-
ciones de grupos de usuario desde Active
Directory.
Cuentas de UsuariosLa opción en el menú Admin | Access
Control | Accounts le proporciona el mane-
jo de las características de la cuenta. Aquí
es donde los administradores asignan a los
usuarios las reglas. A pesar de todo, si está
creando una nueva cuenta o modificando
una existente, acabará en el mismo diálo-
go, que espera un ID de usuario, el nom-
bre completo y posiblemente una direc-
ción de correo.
SSL-Explorer le permite restringir el
acceso a una dirección IP específica. La
forma de especificar la dirección IP está
disponible en Admin | Access Control | IP-
Restrictions. El administrador puede per-
mitir o denegar el acceso a una dirección.
Para hacerlo, teclee una dirección IP en IP
Address. Para aplicar la configuración a
una subred completa, utilice una entrada
como 192.168.1.*. Tras añadir la direc-
ción, el formulario mostrará un nuevo
panel Current Rules, que listará las restric-
ciones y los permisos de las direcciones IP.
En las ReglasAdmin | Access Control le lleva a la pági-
na Security Options (Figura 3). El formu-
lario le permite crear y modificar clientes
VPN y configuraciones generales de
seguridad. Las configuraciones generales
de seguridad incluyen la opción de
escoger la base de datos, que tampoco
tiene el formato interno del SSL-Explorer
o del Active Directory.
Puede especificar el número de inten-
tos fallidos antes de deshabilitar la cuen-
ta, configurar la complejidad de la con-
traseña, asignar privilegios administra-
tivos a los usuarios y al grupo y permitir
o denegar conexiones multisesión. La
opción Strict checking del cliente VPN
también es una característica intere-
sante. Esta opción controla el acceso al
ordenador cliente bajo Java y configura-
ciones del sistema operativo.
SSL-Explorer ofrece una funcionalidad
simple de túnel. Puede utilizarlo para
proteger cualquier servicio TCP o confi-
gurar el acceso del correo basado en
POP3. Para utilizar la característica de
seguridad, el cliente basado en Web debe
ejecutarse en el lado del cliente. Los
usuarios apuntan sus navegadores al
sitio web del SSL-Explorer para sus pun-
tos de acceso VPN, y dependiendo de su
navegador, asigna privilegios adicionales
al applet de Java.
Otras CaracterísticasPara asegurar el tráfico POP3 entre el
cliente y el servidor, los admi-
nistradores necesitan acceso a la con-
figuración del túnel mediante
Networking | SSL Tunnels y luego
entrar el puerto del servidor de correo
(normalmente el 110), el nombre del
host y el puerto destino (otra vez, nor-
malmente el 110) en el formulario
Create Tunnel.
Haciendo clic en Add se configura el
primer túnel. Ahora los usuarios sólo
necesitan modificar su configuración
del servidor de correo del lado del
cliente para probar la configuración de
la VPN. Esto significa reemplazar la
configuración POP3 con localhost. El
cliente VPN instalado localmente y el
servidor VPN aseguran la conexión. El
procedimiento para la configuración
SMTP y otros servicios siguen el
mismo patrón.
El menú Network | Network Places
permite a los usuarios acceder al
entorno de red de Windows. Este
menú le autoriza a mapear la red com-
partida por los viajantes, los cuales
acceden a la red de la compañía me-
diante Internet. Otra característica
interesante incluye el acceso a los
repositorios basados en WebDAV y a
las extensiones basadas en XML.
ConclusionesSSL-Explorer proporciona control
basado en Web para conectividad
VPN. Los administradores profesio-
nales pueden perder las opciones de
configuración ofertadas por Openswan
y otras herramientas, pero para tareas
más simples, SSL-Explorer es más que
el trabajo. �
41Número 16W W W . L I N U X - M A G A Z I N E . E S
RECURSOS
[1] SSL-Explorer: http://sourceforge.net/
projects/sslexplorer
[2] Extensiones Comerciales: http://
www.sshtools.com/
showSslExplorerXtra.doFigura 4: SSl-Explorer muestra un simple cuadro de diálogo para crear un túnel desde el
cliente al puerto de otro equipo.
SSL-Explorer • PRÁCTICO
42
Creando un Centro Multimedia con Mpeg Menu System V2
MENÚS Y OPCIONES
PRÁCTICO • MPEG Menu System V2
42 Número 16 W W W . L I N U X - M A G A Z I N E . E S
de audio, reproducir películas desde el
disco duro y ver imágenes, todo sin tener
un reproductor especial en el escritorio.
MMSV2 tiene su propio sistema de
menús que proporcionan el acceso a las
funciones multimedia. El sistema Linux
puede utilizar la red para comunicarse y
acceder a servi-
dores, o actuar
él mismo como
un servidor.
Todo lo que se
necesita para
controlar el sis-
tema es un sim-
ple mando a
distancia. Y si
su máquina
multimedia es
lo suficiente-
mente potente,
puede incluso
sustituir el
reproductor de
DVDs, la radio
y el reproductor
MP3 de su
salón.
Compilando elReproductorAntes de que pueda disfrutar del
espectáculo multimedia, tendrá que
compilar MMSV2 desde los ficheros
fuentes [1]. Para la compilación se
necesitan las bibliotecas de desarrollo
imlib2, libalsaplayer, lirc y X11, junto
con las herramientas gcc, autoconf y
libtool. Si uno de estos componentes
no se encuentra disponible tras ejecu-
tar ./configure en el directorio del códi-
go fuente, el sistema nos lo indicará.
El siguiente paso es pasarle los
parámetros apropiados al script de con-
figuración. El programa tiene la opción
--help que proporciona una lista de
opciones. Hemos usado el comando
./configure --disable-dxr3
--enable-eject-tray --enable-mpeg
--enable-fancy-audio
--enable-fancy-movie --enable-sdl en
nuestro laboratorio. --disable-dxr3 desha-
bilita el soporte hardware DXR3. Si
dispone de una tarjeta decodificadora
MPEG, primero tendrá que configurarla.
El HOWTO en [2] detalla la configu-
ración de dicha tarjeta.
Si tiene un ordenador antiguo sin
usar en el sótano o en el trastero,
lo puede convertir en un centro
multimedia con el programa Mpeg Menu
System V2 [1] (MMSV2). MMSV2 per-
mite sintonizar su emisora favorita de
radio por Internet, escuchar MP3s y CDs
Uno se olvida de que está trabajando con un ordenador cuando navega por los ficheros de audio, imágenes y
videos favoritos con Mpeg Menu System. POR HAGEN HÖPFNER
Figura 1: El menú principal de MMSV2 muestra un resumen de todas las
funciones del programa.
Aunque el script de configuración se
ejecutó sin producir errores, nos fue
imposible compilar el paquete. La opción
de configuración --enable-fancy-audio
habilita las funciones de audio adi-
cionales que requieren otro grupo de bi-
bliotecas: pcre-devel, sqlite-devel y
taglib-devel. Si se establece --enable-sdl,
se necesitará además el paquete de
desarrollo SDL sdl-devel.
Se puede usar MMSV2 sin X11. En este
caso, el programa utiliza SVGAlib y
habrá que instalar los paquetes de desa-
rrollo SVGAlib. El parámetro del script de
configuración para esto es --enable-vgagl.
Las distribuciones actuales normal-
mente tienen reproductores multimedia
limitados. Como MMSV2 utiliza Xine o
MPlayer para reproducir los videos, el
reproductor soportará tantos formatos de
ficheros y medios como le sea posible.
Algunos expertos mantienen que los
derechos de copyright prohiben el uso de
herramientas que se salten los esquemas
de protección de los DVDs, CSS. Esta es
la razón por la que la mayoría de las dis-
tribuciones no incluyen la biblioteca
Libdvdcss necesaria para la reproduc-
ción de los DVDs.
Arriba el TelónCuando se ejecuta mms aparecerá un
aviso indicando que el programa no
tiene soporte para DXR3 y por ello
habrá que establecer un dispositivo de
salida alternativo. La opción -o sdl per-
mite seleccionar la salida SDL y -o
mpeg genera un fichero MPEG. Otra
opción de comienzo es el parámetro
-d, para ejecutar MMSV2 en segundo
plano. El parámetro -i especifica los
dispositivos de entrada posibles como
lirc para el control remoto y keyboard
para el teclado.
Como el acceso para escritura al
directorio /etc/mms está restringido al
usuario root, habrá que seleccionar
otro directorio para guardar las configu-
raciones personales o bien modificar
los permisos. Sería bueno empezar
copiando la configuración por defecto
con cp -R /etc/mms ~/.mms. El progra-
ma encuentra el directorio ~/.mms
sin ningún parámetro adicional.
Cuando se está copiando, también se
deberían copiar los temas y la fuente
Vera a su localización correcta. Esto se
consigue tecleando cp -R
/usr/local/share/mms/* ~/.mms. A
continuación, tecleando
mms -o sdl se ejecuta el
programa y se debería
ver el menú principal
mostrado en la Figura 1.
Se puede utilizar el
teclado para navegar por
el menú. Los cursores
arriba y abajo sirven
para moverse por él y
con Enter se seleccionan
los elementos. Si un
menú tiene elementos
subordinados, se pueden
pulsar los cursores dere-
cho e izquierdo para
acceder a ellos. Por
ejemplo, la opción
Reproducir audio desde
el disco duro tiene dos
elementos más:
Reproducir audio desde
el CD/DVD y Reproducir
audio desde la radio/red.
Asignando TeclasLas asignaciones de las
teclas están en el fichero
~/.mms/input-keyboard,
pero si se usa el mando a
distancia para navegar, el
fichero que se necesita es
~/.mms/input-lirc. Este
fichero de configuración
tiene una estructura sim-
ple. La mayoría de las
entradas en el fichero
input-keyboard tienen el
formato genérico
modo,comando,tecla.
MMSV2 tiene varios
modos. (General) los ata-
jos de teclado son válidos
en todos los modos; por
ejemplo, se usan las mis-
mas teclas para navegar en
la lista de reproducción y
en el menú principal. Y la
ayuda está siempre
disponible si se pulsa la
tecla [H]. Las tablas 1, 2 y
3 proporcionan un resumen de las asigna-
ciones de teclado más importantes.
Cuesta un poco acostumbrase al manejo
de los ficheros de audio. MMSV2 tan sólo
reproduce los ficheros de la lista de repro-
ducción. Si se opta por reproducir audio
desde el disco duro en el menú principal,
se muestra el árbol de directorios del sis-
43
MPEG Menu System V2 • PRÁCTICO
43Número 16W W W . L I N U X - M A G A Z I N E . E S
tema y se pueden usar los cursores para
navegar por él. Sin embargo, para ello, el
directorio con los ficheros de audio tiene
que listarse bajo audio_dir en el fichero de
configuración ~/.mms/config. Si se desea
permitir que MMSV2 muestre el disco
duro completo, tan sólo hay que añadir el
directorio raíz, /, a la lista.
Tecla Acción
UP Elemento de menú anterior
DOWN Elemento de menú siguiente
LEFT Elemento de submenú anterior
RIGHT Elemento de submenú siguiente
PGDOWN Subir rápidamente
PGUP Bajar rápidamente
END Salir del menú actual
ENTER Selecciona el elemento actual o
subelemento
H Ayuda
O Opciones
S Búsqueda
Tabla 1: Atajos de Teclado Generales
Tecla Acción
HOME Conmuta entre el modo actual y el modo
lista de reproducción
INS Cambia al visor de la lista de reproducción
3 Play
2 Pausa
1 Stop
6 Avance rápido
5 Retroceso rápido
8 Pista anterior
9 Pista siguiente
f Graves
g Agudos
m Silencio
p Muestra el menú con los comandos de la
lista de reproducción
Tabla 2: Atajos de Teclado para laReproducción de Audio
Figura 2: Presionando [I] se muestra la información de las
pistas.
Internet basándose en el título del
fichero. Pulsando [Enter] comienza la
reproducción de la película. Pulsando [I]
se le indica a MMSV2 que muestre la
información adicional (Figura 3).
Imágenes y Sonidos deFondoLos temas permiten modificar la aparien-
cia de MMSV2. Pueden encontrase tres
alternativas de diseño en el sitio web de
MMSV2 en [1]. Después de descargar el
archivo hay que descomprimirlo en
~/.mms/themes. En Options se selec-
ciona Themes/Skins para
escoger un esquema.
Ahora que MMSV2 sabe
dónde mirar para encon-
trar los archivos en el
disco duro, necesitará
conocer la ruta de la
unidad de CD o DVD.
Tuvimos que modificar las
entradas de cdrom y
cdrom_name de la unidad
combo de la máquina de
nuestro laboratorio. El fichero /etc/fstab
proporciona los valores, que fueron
cdrom = /dev/cdrecorder,
/media/cdrecorder y cdrom_name =
/dev/cdrecorder, dvd device para nuestra
máquina. Para permitir a los usuarios sin
privilegios acceder a la unidad, hay que
añadir user en el punto de montaje del
fichero /etc/fstab. Y para permitir a
MMSV2 abrir y cerrar la unidad en Suse,
hay que cambiar la ruta de la herramien-
ta eject en ~/mms/config a eject_path =
/bin/eject.
Si se quiere que MMSV2 utilice
Mplayer, es preciso colocar movie_player
= mplayer en el fichero de configu-
ración. La línea mplayeropts es para el
ajuste fino del reproductor. Para no tener
que especificar el dispositivo de salida
cada vez que se ejecuta MMSV2, se
puede añadir outdev = sdl en el fichero
de configuración. La zona de docu-
mentación del sitio web en [1] propor-
ciona una lista completa de parámetros.
Sin Gestor de VentanasTan sólo se requieren unos pasos para
ejecutar MMSV2 sin un gestor de ven-
tanas. Para ejecutar MMSV2 cuando
arranque la máquina en vez de KDE, hay
que crear un script en
/opt/kde3/share/apps/kdm/sessions/MM
SV2.desktop (véase el cuadro “Entrada
para el Escritorio”). Los usuarios con
Suse pueden realizarlo con Yast seleccio-
nando System|Editor for
/etc/sysconfig-Dateien|Desktop|DISPLAY-
MANAGER_AUTOLOGIN.
En la máquina de nuestro laboratorio
no funcionó el modo a pantalla completa
MMSV2 SDL. Para solucionar este pro-
blema, es necesario establecer el tamaño
de la imagen manualmente y no ejecutar
MMVS2 en modo de pantalla completa
(fullscreen = false en ~/.mms/config).
Es posible cambiar la resolución de
800x600 píxeles a 1024x768 píxeles en el
fichero de configuración cambiando las
líneas v_res = 1024 y h_res = 768. Esto
tiene el mismo efecto que seleccionar el
modo de pantalla completa. La combi-
nación con mplayer-opts = -cache 8192
-framedrop -fs le indica a Mplayer que se
ejecute en lo alto de la ventana MMSV2
y que muestre la película. El parámetro
-fs de Mplayer ejecuta el software en
modo de pantalla completa.
CréditosMMSV2 convierte cualquier máquina
Linux en un reproductor multimedia
multifuncional. Además del audio, el
vídeo y las imágenes, esta herramienta
puede controlar tarjetas de TV analógi-
cas y digitales, proporcionando a los
usuarios la comodidad de una guía de
programación electrónica (EPG).
Como contrapartida, no todas las ca-
racterísticas de MMSV2 funcionan la
primera vez que se utilizan, siempre es
necesario realizar unos cuantos ajustes
manuales para conseguir que el sistema
de menú de MMSV2 se ejecute y fun-
cione. �
Las variables mov_dir = /stuff/ para
las películas y picture_dir = /stuff/pic-
tures/ para las imágenes, funcionan de
manera similar. Si se poseen varios direc-
torios con ficheros multimedia en el
disco duro, se pueden utilizar varias
líneas.
Pulsando el cursor de la derecha en la
lista de medios se abre un subdirectorio.
El cursor de la izquierda navega al próxi-
mo directorio superior (regresa al direc-
torio más alto). Pulsando la tecla Enter
añade el contenido del directorio, o un
único fichero, a la lista de reproducción
(Figura 2).
Se puede utilizar la misma solución
para incluir las pistas de un CD de audio
a la lista de reproducción. Pulsando 3 se
reproduce la pista. Los atajos de teclado
de la Tabla 2 permiten el control del
reproductor.
Se pueden reproducir DVDs seleccio-
nando Play movie (DVD/(S)VCD).
Desafortunadamente el programa no
soporta los menús de DVD y esto signifi-
ca que la localización de la pista de la
película es una cuestión de ensayo y
error. Para ello, hay que ir a
Options|Movie Options|DVD track. Si se
desea reproducir ficheros de películas
desde el disco duro, MMSV2 intenta
recabar más información acerca de ella
en la base de datos de películas de
PRÁCTICO • MPEG Menu System V2
44 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Figura 3: ¿De qué es la película? Presione [I]
para obtener una breve descripción.
Tecla Acción
7 Mueve la entrada actual arriba
4 Mueve la entrada actual abajo
DEL Elimina la entrada actual de la lista
q Añade la pista actual a la cola de
reproducción
BACKSPACE Borra la lista de reproducción actual
t Almacena la lista de reproducción actual
Tabla 3: Atajos de Teclado
para Playlist
01 [Desktop Entry]
02 Encoding=UTF-8
03 Type=XSession
04 Exec=/usr/local/bin/mms
05 TryExec=/usr/local/bin/mms
06 Name=MMSV2
07 Comment[de]=Mpeg Menu System V2
Entrada para el Escritorio
[1] MPEG Menu System V2:http://mms.
sunsite.dk/
[2] DXR3 & Hollywood Plus LogoLinux
DXR3 y Hollywood+ Driver Project
Howto: http:// dxr3.sourceforge.net/
howto.html
RECURSOS
Los formatos Postscript y PDF son
excelentes para visualizar e
imprimir documentos, pero si
alguna vez hemos intentado editarlos,
pronto habremos comprobado que
nuestras opciones son limitadas. Los
expertos dirán que el código Postscript
es editable como tal, pero si en alguna
ocasión hemos intentado editar un
archivo Postscript directamente, seguro
que hemos encontrado que no es la
manera más adecuada. pstoedit es una
herramienta en línea de comandos que
ofrece una solución sencilla al
problema de la edición de Postscript y
PDF.
45
Pstoedit • PRÁCTICO
45Número 16W W W . L I N U X - M A G A Z I N E . E S
InstalaciónSuse 9.3 tiene el binario de pstoedit
versión 3.33, pero si queremos instalar la
versión 3.42, tendremos que compilarla a
partir de su código fuente. Como la
nueva versión introduce muchos
cambios, lo mejor será optar por
compilar. Podemos descargar el código
fuente desde [3]. Además de gcc,
necesitaremos unos cuantos programas
más para controlar los formatos de
salida.
Para convertir de Postscript a EMF se
requiere la librería LibEMF [4]. Los
usuarios de Suse 9.3 también necesitarán
el paquete de desarrollo libEMF-devel.
Para localizar la librería podemos usar
bien Yast o una herramienta de búsqueda
de RPM como Pbone [5]. Los usuarios de
Debian Sarge pueden compilar LibEMF
ellos mismos. Si tenemos problemas
compilando la librería, nos ubicamos en
el subdirectorio /libemf que contiene los
archivos libemf.cpp y libemf.h.
Tecleamos el comando patch <
libEMF-1.0.fixes-2002-09-30.diff para
instalar el parche desde la página de
descarga de LibEMF en [6].
En caso necesario, podemos indicarle
a pstoedit cómo usar Graphicsmagick
Convertir archivos PS y PDF con pstoedit
EL CAMALEÓN
pstoedit nos permite convertir archivos Postscript y PDF a
formatos de imagen vectorial. POR HAGEN HÖPFNER
Los usuarios de Suse pueden
empezar ejecutando Yast para
instalar cvs, y luego conectarse al CVS
de Ming teclenado:
cvs -d:pserver:anonymous@U
cvs.sourceforge.net:U
/cvsroot/ming login
Pulsamos [Enter] cuando se nos pida
la contraseña. Si es la primera vez que
usamos cvs, repetimos este paso tras el
mensaje de error. A continuación
tecleamos:
cvs -z3 -d:pserver:anonymousU
@cvs.sourceforge.net:U
/cvsroot/ming co ming
Esto crea un subdirectorio con los
últimos archivos de Ming en nuestro
directorio de trabajo. Para compilar
Ming en Suse 9.3, necesitamos gcc y
gcc-c++, giflib-devel, libpng-devel,
bison, libjpeg-devel y flex. Para una
compilación sin errores, los usuarios
de Debian necesitan los paquetes
giflib-bin, libungif4-dev, giflib3g, bison,
flex, swig y libpng2-dev. Tecleamos
./configure && make && make install
para compilar e instalar.
Debemos asegurarnos de que
tenemos la versión 1.1.6 de
Graphicsmagick. Los usuarios de
Debian van a necesitar además el
paquete libperl-dev del repositorio Etch
para poder compilar. Ahora repetimos
los mismos tres pasos que hemos
usado para compilar e instalar Ming.
No debemos olvidar instalar plotutils
cuando acabemos. Esto nos permitirá
usar sus formatos de salida [9].
Instalar Ming y Graphicsmagick
Salvamos este problema con una
variante del bien conocido truco de los
tres pasos: ./configure
--with-libemf-include=/usr/include/lib
EMF && make && su -c "make install".
Los usuarios de Debian tendrán que
comprobar que el directorio libEMF
está realmente ubicado bajo
/usr/include. Si pstoedit no es capaz de
encontrar las librerías al arrancar,
tecleamos ldconfig en modo root para
actualizar los enlaces. El propio
pstoedit debería estar ubicado bajo
/usr/local/bin en nuestro disco duro.
¡Atrape a ese Tigre!El tigre mostrado en la Figura 1 es
habitual en los artículos que discuten
sobre Postscript. Podemos encontrar
este archivo en el directorio
/usr/share/ghostscript/8.15/examples/.
Suse 9.3 no tiene un auténtico archivo
Postscript con el tigre, pero
encontraremos una imagen EPS en su
lugar. Los usuarios de otras distros
puede que tengan que seleccionar otro
archivo de ejemplo, pero las
instrucciones son similares.
pstoedit, que se basa en Ghostscript,
admite como formatos de entrada PS,
EPS e incluso PDF. El número de
formatos de salida disponibles
depende de los módulos disponibles
para pstoedit. Básicamente, el
programa usa la siguiente sintaxis:
pstoedit INPUTFILE OUTPUTFILE
Por ejemplo, pstoedit tiger.eps tiger.emf
en Suse 9.3 crea una versión EMF del
tigre. Una vez que hemos convertido el
archivo a EMF, podemos importarlo a
OpenOffice y editarlo con Draw.
Bajo circunstancias normales, pstoedit
evalúa el nombre de archivo de salida
para decidir qué módulo usar. Si
tecleamos pstoedit tiger.eps tiger.fig,
estamos condenados al fallo, ya que le
damos al conversor demasiadas
alternativas. En lugar de un tigre en
formato Xfig, obtendremos una lista de
módulos disponibles y formatos que
puede generar. El tigre con formato Xfig
mostrado en la figura 2 se genera
tecleando
pstoedit -f plot-fig U
tiger.eps tiger.fig
El parámetro -f ayuda a pstoedit a
seleccionar el módulo correcto.
pstoedit no es sólo un conversor.
Existen diferentes parámetros de salida
que nos permiten modificar la imagen
resultante en la conversión. pstoedit
--help nos ofrece una lista exhaustiva de
opciones. La opción -xscale .5 genera
una imagen con la mitad del ancho que
la original, y -yscale 2 una imagen el
doble de alto que la original. Los
archivos Postscript a menudo
1.1.6 [7], una extensión del popular
paquete Imagemagick, y Ming [8]
(véase el cuadro “Instalar Ming y
Graphicmagicks”). El primero permite
a pstoedit convertir de Postscript a
cualquier formato gráfico soportado
por Graphicsmagick. Y Ming nos ayuda
a generar imágenes en formato SFW
Flash desde los archivos Postscript,
aunque esto requiere la versión CVS de
la librería de Ming.
Antes de iniciar la instalación de
pstoedit, descargamos primero las
fuentes desde [4]. Tras
descomprimirlo, editamos el archivo
configure, cambiando la siguiente
línea:
SPECIAL_CXXFLAGS=U
"-DBUGGYGPP U
-pedantic -Wall -Wwrite-strings
U
-Wcast-qual U
-Wpointer-arith "
a:
SPECIAL_CXXFLAGS= U
"-DBUGGYGPP -Wall U
-Wwrite-strings -Wcast-qual v
-Wpointer-arith "
Si la opción pedantic está habilitada, el
compilador rechaza compilar pstoedit
con la extensión de Graphicsmagick.
PRÁCTICO • Pstoedit
46 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Figura 1: Haremos uso de este tigre Postscript para experimentar con
algunas características de pstoedit.
Figura 2: Xfig es el clásico editor de gráficos vectoriales en Unix y
Linux. pstoedit convierte archivos PS, EPS o PDF a formato FIG.
comprenden varias páginas. El
parámetro -split separa las páginas de un
archivo. Algunos módulos tienen
también opciones. Si usamos el módulo
fig para crear imágenes Xfig, en lugar del
módulo plot-fig, el parámetro -metric
cambia las unidades a centímetros, en
lugar de pulgadas, que es la medida por
defecto.
Curiosamente, pstoedit nos permite
crear programas a partir de archivos
Postscript. pstoedit tiger.eps tiger.tk
genera el applet Tk mostrado en la
Figura 3 a partir de la imagen del tigre, y
podemos ejecutar sh tiger.tk para iniciar
el applet. Si preferimos evitar los
lenguajes de script, podemos usar los
módulos java1 y java2, que nos permiten
generar código Java. Como alternativa,
podemos especificar tiger.swf como
archivo de salida para generar una
imágen en Flash.
Desafortunadamente, el soporte para
la extensión de Graphicsmagick no está
libre de errores en el momento de
escribir estas líneas. Por ejemplo, el
módulo interpreta que el archivo del
tigre se compone de dos páginas. Para
indicarle al módulo que genere una
imagen no vectorial (en formato JPG,
por ejemplo), tecleamos pstoedit -f
magick tiger.eps tiger%d.jpg. Podemos
simplemente cerrar la ventana que se
abre en este punto. El resultado son dos
archivos tiger1.jpg y tiger2.jpg, con el
felino en el primer archivo y nada en el
segundo.
Conclusionespstoedit es una poderosa herramienta
para convertir archivos a partir de
Postscript. Felicitaciones a Wolfgang
Glunz, que no sólo ha desarrollado
pstoedit, sino que ha proporcionado el
necesario soporte para la instalación. �
47Número 16W W W . L I N U X - M A G A Z I N E . E S
RECURSOS
[1] Página de pstoedit: http://www.
pstoedit.net/
[2] Información de Postscript: http://en.
wikipedia.org/wiki/Postscript
[3] Descarga de pstoedit: http://
prdownloads.sourceforge.net/
pstoedit/pstoedit-3.42.tar.
gz?download
[4] Página de LibEMF: http://libemf.
sourceforge.net/
[5] Motor de búsqueda de RPM: http://
rpm.pbone.net
[6] Parche de LibEMF: http://
sourceforge.net/tracker/download.
php?group_id=31968&atid=403913
&file_id=32104&aid=616742
[7] Página de Graphicsmagick: http://
www.graphicsmagick.org/
[8] Página de Ming: http://ming.
sourceforge.net/
[9] Página de Plotutils: http://www.gnu.
org/software/plotutils/
[10] Información de EPS: http://en.
wikipedia.org/wiki/
Encapsulated_Postscript
Pstoedit • PRÁCTICO
Figura 3: El tigre como programa Tk. pstoedit no sólo convierte Postscript en otros formatos
de imagen, también nos permite generar applets
Figura 4: Pstoedit es capaz de exportar a formatos propietarios como puede ser el formato
Adobe Illustrator (AI).
48
Plataforma P2P anónima y totalmente distribuida
MARABUNTAPlataforma P2P anónima y totalmente distribuida
MARABUNTA
PRÁCTICO • Marabunta
48 Número 16 W W W . L I N U X - M A G A Z I N E . E S
minos de anonimato y privacidad.
En Internet todas las comunicaciones se
registran (se “tracean”), por lo que cada
vez que conectamos a un servidor para
visitar una página web o para descargar
nuestro correo queda grabada información
esencial como
nuestra IP, lo
que al fin y al
cabo es de
forma unívoca
nuestra identi-
dad en la red.
Esta informa-
ción es almace-
nada en los
ficheros del re-
gistro de las
comunicaciones
de la empresa
que nos brinda
el servicio de
acceso a Inter-
net (ISP, Inter-
net Server
Provider) y del
servidor final
accedido.
Lo que está claro es que la privacidad
de los usuarios en la red es algo efímero,
y lo que es peor, el acceso a la informa-
ción puede ser fácilmente censurado
debido a su almacenamiento en unos
pocos servidores centralizados.
Marabunta intenta usar todos los nodos
de la red como máquinas enrutadoras de
paquetes (“routers”) de forma que cada
uno se comporta como un cliente y como
un servidor al mismo tiempo.
ObjetivoEl primer servicio implementado en la red
es una Lista de Mensajería Anónima. Hay
4 categorías principales: Filosofía, Tec-
nología, Política, General. La idea es que
cada nodo sea capaz de mandar mensajes
dentro de alguna de estas 4 temáticas al
resto de forma anónima. Esta tarea es
desarrollada por todos los elementos de la
red que se encargan de distribuir el men-
saje a los nodos a los que están conecta-
dos de forma directa mediante cone-
xiones P2P, eliminando la identidad del
inicial que mandó el mensaje a distribuir.
Además de comunicación anónima, la
plataforma creada por Marabunta usando
Internet se está convirtiendo cada día
más en un campo de batalla al hablar
de privacidad y censura en las comu-
nicaciones, debido a que los usuarios
empiezan a ser conscientes de que Inter-
net no es la “panacea” que se creía en tér-
Internet es una red mayoritariamente estructurada en sistemas centralizados, lo que da lugar a la estructura
“1 servidor para N clientes”, sin embargo Marabunta usa el potencial de cada uno de los nodos para crear
una red anónima totalmente descentralizada, haciendo que el modelo clásico P2P pueda extenderse de N a N
nodos (N2N). POR DAVID GASCÓN
Figura 1: Podemos ver cómo los nodos se conectan entre ellos usando
conexiones directas (P2P), de la misma manera que lo hacen los grupos
de éstos mediante la conexion de algunos de sus elementos con algunos
de otros grupos.
Internet es una red mayoritariamente estructurada en sistemas centralizados, lo que da lugar a la estructura
“1 servidor para N clientes”, sin embargo Marabunta usa el potencial de cada uno de los nodos para crear
una red anónima totalmente descentralizada, haciendo que el modelo clásico P2P pueda extenderse de N a N
nodos (N2N). POR DAVID GASCÓN
conexiones P2P entre los nodos propor-
ciona una red la cual es NO sensible a la
censura debido a que no existen servi-
dores centrales para gestionar el inter-
cambio de mensajes entre los nodos. De
esta forma, para “tirar” la plataforma
abajo tendrían que parar por completo el
funcionamiento de los Servidores de
Acceso a Internet (ISPs).
¿Cómo funciona?Primero tenemos que diferenciar los 2
algoritmos principales que hacen que
Marabunta se comporte como un cliente y
como un servidor.
Ambos algoritmos son procedimientos
que se ejecutan simultáneamente usando
una estructura en hilo (“thread execu-
tion”) y una zona de memoria compar-
tida.
Como un Servidor:
• Escucha a todos los nodos que
quieren acceder a la red: Petición de
Conexión
• Escucha a todos los nodos conocidos
(hermanos), los cuales necesitan que
se les distribuyan mensajes por la red:
Petición de Difusión de Mensaje
• Escucha a todos los nodos que necesi-
tan más conectividad para asegurar
su integridad en la red: Petición de
nuevos Hermanos
Como un cliente:
• Busca nuevos nodos para incrementar
la conectividad y la estabilidad en la
red: Búsqueda de Hermanos
• Mandar mensajes propios a la red:
Difusión de Mensaje
• Difusión de los mensajes en espera de
difusión provenientes de otros nodos
de la red: Retransmisión de Mensajes
• Envío de peticiones de búsqueda de
nuevos hermanos enviadas por otros
nodos: Retransmisión de Peticiones
de Búsqueda de Hermanos
Principio FundamentalCada nodo es tanto cliente como servi-
dor y realiza tareas de enrutado de la
información.
La idea es establecer conexiones direc-
tas (estructura P2P) entre grupos de
nodos para conseguir que todos los
nodos en la red sean accesibles a través
de diferentes rutas.
Una de las principales características
de Marabunta es que la comunicación
entre los nodos se realiza usando cone-
xiones UDP/IP. Este tipo de comunica-
ciones son no
orientadas a
conexión, lo
que es real-
mente intere-
sante en térmi-
nos de anoni-
mato debido a
que el origen de
un datagrama
UDP/IP no
puede ser
demostrado,
pues no nece-
sita confirma-
ción al punto
de conexión
que envió el
paquete,
haciendo de
Marabunta una
de las platafor-
mas de comuni-
cación que
mejor conser-
van el anoni-
mato de sus
usuarios.
El proceso de
descubrimiento
de nuevos
nodos en la red
es un elaborado
algoritmo, el
cual tiene en
cuenta dife-
rentes aspectos
para asegurar el
anonimato de
los nodos ya
presentes en la
red. Por ejem-
plo, en las fi-
guras 2 y 3 podemos ver cómo funciona
el proceso de búsqueda y conexión de
nuevos nodos. Cada nodo decide si dar a
conocer su identidad a un nuevo nodo o
no.
Ahora que ya sabemos qué es
Marabunta y cuál es su propósito, vamos
a ver cómo se maneja para poder con-
seguir conectarnos a la red o incluso
crear nuestra propia “subred” anónima.
Primeros PasosSe puede descargar el código fuente y los
binarios para la arquitectura i386 en [3] .
El paquete debian está en [4], aunque
se puede intentar descargarlo desde
49
Marabunta • PRÁCTICO
49Número 16W W W . L I N U X - M A G A Z I N E . E S
alguno de los repositorios oficiales
(actualmente está en proceso de promo-
ción).
CompilaciónSi decidimos compilarlo hemos de ase-
gurarnos de tener instalado en la carpeta
de “includes” del sistema los ficheros de
desarrollo de las librerías QT4.
Normalmente, las distintas distribu-
ciones GNU/Linux incluyen en el gestor
de paquetes predeterminado la posibili-
dad de instalar el entorno necesario para
la compilación : “qt4-development”.
Para compilar, seguiremos los pasos
habituales:
Figura 2: Cuando un nodo necesita una mayor conexión en la red manda
una petición de “busca hermanos” a los nodos ya conocidos para que lo
ayuden a conseguir una mayor conectividad.
Figura 3: Cada nodo decide entonces si darse a conocer al nuevo nodo
para ayudarle a tener una mayor conectividad o seguir siendo anónimo
para él.
cación está ejecutándose, o
la ruta habitual para los
ficheros de configuración
si hemos instalado el
paquete Debian: /etc/
marabunta/
marabunta.cfg.
Veamos cómo configurar
todos los parámetros desde
el interfaz gráfico. En la
Figura 4, vemos el panel
de Opciones Generales
donde podemos elegir el
directorio de trabajo
(home) para Marabunta, y
donde se almacenará toda
la información que genera
la aplicación, como los
mensajes recibidos en cada
una de los canales temáti-
cos, los fichero de log, etc.
Conexión a la RedLo primero de todo es que
hemos de conocer nuestra
IP pública y un puerto
UDP disponible. Normal-
mente el elegir un puerto
con un número alto como
6666 suele ser una buena
elección para evitar pro-
blemas con los privilegios
del sistema.
Si no sabemos nuestra
IP podemos presionar
sobre el botón de ¿Cuál es
mi IP? de forma que sea la
propia aplicación la que se
encargue de descubrirla
por nosotros, la podremos
ver en el panel de eventos
situado en la parte supe-
rior de la aplicación.
Antes de continuar te-
nemos que ver si el sistema está usando
también la IP pública o una privada.
Mediante el comando ifconfig obtenemos
la IP usada por el interfaz de red. Si esta
IP es la pública, coincidirá con la
obtenida por la aplicación y no es nece-
sario que hagamos ningún paso extra.
Sin embargo si no coinciden, significará
que estamos usando una IP privada, por
lo que nos estamos conectando a través
de un NAT (Network Address Translator).
En caso de que esto ocurra es bastante
probable que la IP devuelta por ifconfig
sea de la forma 192.168.xxx.xxx, aunque
no siempre es así.
Lo que tenemos que hacer para poder
conectarnos a la red es crear una ruta de
reenvío de paquetes UDP desde el router
hasta nuestra máquina (“Port Forwar-
ding”). Para ello hemos de acceder al
panel de Administración de nuestro
router, normalmente es posible hacerlo
vía web. Por ejemplo, si nuestra IP pri-
vada es de la forma 192.168.0.xxx es
probable que el gateway tenga la direc-
ción 192.168.0.254 o 192.168.0.1, de
todas formas podemos asegurarnos
mediante la información mostrada en el
campo gateway por el comando route.
Probamos entonces a acceder vía web
a la IP del gateway, si no podemos tal
vez sea porque haya que acceder a un
puerto distinto al estándar de conexiones
HTTP (80), o configurarlo mediante
conexión vía serie, por lo que lo mejor es
buscar información del modelo de router
que tenemos en la red.
Una vez llegamos al panel de Adminis-
tración tenemos que establecer una
nueva ruta PORT FORWARDING, con la
finalidad de que todos los paquetes que
vayan dirigidos a un puerto UDP con-
creto de la IP pública que está asignada a
nuestro router puedan sean redirigidos al
mismo puerto de nuestra IP privada.
Por ejemplo, si tenemos la IP privada
192.168.0.10 y queremos usar el puerto
6666 para las conexiones entrantes a
Marabunta tenemos que crear una regla
que diga: todos los paquetes con destino
el puerto 6666/UDP tienen que ser redi-
rigidos al puerto 6666/UDP de la IP pri-
vada: 192.168.0.10
Una vez tengamos este
problema resuelto
podemos pasar a la
configuración
propia de la apli-
cación. Ponemos
nuestra IP pública
y puerto en las
cajas de texto del
panel de Conexión,
como se muestra en la
Figura 5.
Ahora ya
podemos conec-
tar a la red. En
este momento
estamos
escuchando a
todas las conexiones
entrantes, y
podríamos empezar a
./configure
./make
Una vez que hayamos compilado el
código o instalado los binarios o el
paquete Debian, el primer paso es confi-
gurar las opciones de la aplicación.
Todas ellas pueden ser cambiadas desde
el interfaz gráfico o directamente desde el
fichero de configuración “marabunta.cfg”,
el cual se crea con las opciones por
defecto la primera vez que arranca la apli-
cación. El directorio donde se almacena
este fichero es el mismo en el que la apli-
PRÁCTICO • Marabunta
50 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Figure 4: Panel General de Opciones: podemos configurar
todas las opciones relacionadas con los directorios donde
salvamos la información que genera la aplicación.
Figura 5,: Panel de Configuración de Red: todas las opciones
para permitir la conexión de nuestro nodo a la red.
comunicarnos en el momento que se
conectara algún nodo a nosotros, sin
embargo si queremos además conectar a
la red ya existente tenemos varias alter-
nativas:
• Si sabemos la IP y puerto de un nodo
que ya forma parte de la red, simple-
mente lo añadimos en los campos de
información sobre hermanos ya
conocidos
• Si tenemos un fichero con informa-
ción (pares: IP-puerto) sobre nodos
que pudieran estar en la red, salva-
dos por ejemplo de una anterior
sesión de Marabunta, podemos car-
garlo mediante el botón Cargar
Fichero.
• Podemos presionar
sobre el botón Descar-
gar Nodos para con-
seguir información
sobre algunos
nodos con alta
probabilidad de
estar conectados a
la red
Una vez la aplicación
tiene una lista de
“nodos posibles” comen-
zará a intentar conec-
tar con ellos.
Podemos ver en
todo momento la
calidad de conexión
que tenemos en la red
mirando la barra de por-
centaje de conexión en la
cabecera de la aplicación.
Mandando yFiltrandoMensajes
Como ya hemos visto
anteriormente, el primer
servicio de Marabunta es
ser una plataforma que dé
servicio a una Lista de
Mensajes, la cual puede ser
configurarada desde el
panel de “Mensajería”, ver
Figura 6.
• La temática de los men-
sajes, nos permite
seleccionar qué tipo de
mensajes nos interesa
recibir
• El filtrado de contenido
nos permite elegir den-
tro de las categorías
seleccionadas los men-
sajes que contengan un
determinado patrón.
Supongamos por ejemplo que queremos
visualizar los mensajes sobre la mani-
festación de hubo en nuestra ciudad ayer
en contra de la política de algunos gobier-
nos por el uso de programas como Echelon
o Carnivore, (los cuales, por cierto, atentan
directamente contra la privacidad per-
sonal). Seleccionaríamos el canal de
Política con la palabra clave manifestación.
Es importante tener claro que este “fil-
trado” de la información está relacionado
únicamente con la información mostrada al
usuario, no con la información que trata la
aplicación, pues recordemos que continua-
mente está enrutando mensajes de otros
nodos para que se incluyan entre los elegi-
dos para ser visualizados o no.
Una buena forma de uso suele ser selec-
cionar la política de filtrado que queramos
y dejar la aplicación funcionando durante
horas, seleccionando además la opción de
almacenar los mensajes en un fichero de
forma que al final tengamos todos los men-
sajes en un fichero de texto y podamos leer-
los tranquilamente. Para especificar el nom-
bre del fichero donde volcar los mensajes
podemos ir al panel de Configuración
(Figura 4).
Creando nuestra propiaRed Anónima
En la Figura 5 vimos que una de las
posibilidades para conseguir conectar
con la red es descargar una lista de
nodos que han accedido a la red en un
intervalo de tiempo no muy grande,
por lo que hay altas probabilidades de
que sigan dentro.
Lo que ejecuta esta acción es una
consulta a un script escrito en PHP, el
cual ejecuta un algoritmo de anoni-
mato y privacidad sobre la informa-
ción disponible y genera la lista más
acertada de nodos disponibles.
Se puede descargar el script desde
[5]. Buscamos el fichero con extensión
.php.txt, lo cambiamos a .php y le
damos permiso de ejecución una vez
lo hayamos colocado en nuestro servi-
dor. El otro fichero marabunta.nodes
es donde se almacena la información
relacionada con los nodos a los que va
accediendo al script, por lo que ha de
tener permiso de escritura en el servi-
dor.
Ahora hemos de cambiar el fichero
de acceso al script PHP (nodos.txt), el
cual se encuentra en el mismo directo-
rio que el fichero de configuración de
la aplicación. Para conseguir que la
aplicación trabaje sólo con vuestro
servidor, será preciso borrar las URLs
existentes e insertar la que habéis ge-
nerado al subir el script PHP con el
fichero para almacenar la información
a vuestro servidor. �
Marabunta • PORTADA
51Número 16W W W . L I N U X - M A G A Z I N E . E S
David Gascón es estudiante de
Ingeniería Informática en el
Centro Politécnico Superior de
la Universidad de Zaragoza.
Actualmente se encuentra
desarrollando el proyecto final,
el cual versa sobre los sis-
temas de Anonimato en Redes
Wireless Ad-hoc. Contacta con
él en [email protected] o
visita su web en http://www.
laotracara.com.
EL
AU
TO
R
[1] Marabunta http://marabunta.
laotracara.com
[2] Apeiron (Redes Libres) http://apeiron.
laotracara.com
[3] Descargas de Marabunta: http://
marabunta.laotracara.com/descargas/
[4] Paquete Debian: http://marabunta.
laotracara.com/descargas/debian/
[5] Script para la generación de listas de
nodos: http://marabunta.laotracara.
com/descargas/phpNodos/
RECURSOS
Figura 6: Panel de Mensajes: Toda la información relacionada
con la temática y filtrado de los mensajes.
versión. Todo esto se hace de manera
transparente para el usuario. La Figura
1 muestra un usuario creando, y a
continuación, borrando un archivo
desde el intérprete de comandos. Sin
la magia de Perl, el archivo, myfile
habría pasado a mejor vida, pero
ahora podemos teclear noworries -l
myfile que nos indica que se creó una
copia de seguridad justo 17 segundos
antes. noworries -r 1.1 myfile rescata el
archivo y escribe su contenido en la
salida estándar.
El script no usa funciones manipu-
ladas de shell ni otros sucios trucos.
Por supuesto, una instancia del script
tiene que ejecutarse en segundo plano
(la opción -w ,de “watch”, se encarga
de esto) para iniciar la utilidad File
Alteration Monitor (FAM), que en
respuesta se suscribe a la interfaz del
kernel del sistema operativo Dnotify.
Cada vez que el sistema de archivos
crea, mueve o borra un directorio o
archivo, o se modifica el contenido de
un archivo, se notifica al kernel del
evento. El File Alteration Monitor
(FAM) le indica a Dnotify que está
interesado en lo que está pasando en
diversos directorios y recibe notifica-
ciones como respuesta. CPAN tiene un
módulo Perl (SGI::FAM) que traduce la
interfaz C de FAM a Perl. Está basada
en eventos y no requiere de sondeo
intensivo por parte de la CPU. Al lla-
mar al método next_event() se blo-
quea al demonio hasta que ocurra el
siguiente evento.
La Figura 2 muestra otro ejemplo.
En este caso se crea un archivo, y se
modifica dos veces en la misma línea.
El demonio recibe un mensaje para
cada evento y crea tres versiones de
los archivos en RCS (1.1, 1.2 y 1.3).
Tecleando noworries -l myfile se
mostrarán las tres versiones, aunque
el archivo se haya borrado mientras
tanto.
Si solicitamos la versión 1.2 con la
opción -r 1.2 y el nombre de archivo
file, noworries nos la recupera e
imprime su contenido por la salida
estándar. El comando de shell mostra-
do en la Figura 2 redirecciona la salida
hacia un archivo llamado file, que de
nuevo se versiona con el demonio. La
Durante las fases tempranas de
un proyecto, los desarro-
lladores suelen experimentar
con varias opciones, por lo que a veces
resulta demasiado precipitado guardar
prototipos en el sistema de control de
versiones. Si aún no hemos configura-
do un repositorio, o si no estamos de
acuerdo con su estructura, puede que
acabemos trabajando sin ningún tipo
de seguridad. En este caso, nuestro
código puede caer víctima de un fer-
voroso rm * o del comando de borrado
de nuestro editor.
El script Perl de este mes, noworries,
nos ofrece un control automático de
versiones. Cada vez que guardemos un
archivo con nuestro editor, y cada vez
que usemos el shell para manipular
archivos usando comandos como rm o
mv, un demonio escondido en segun-
do plano recibirá un mensaje. Al
recibirlo, coge el archivo nuevo o
modificado y usa RCS para darle una
DESARROLLO • Perl
52 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Detectar cambios en el sistema con Dnotify
RESCATE DEARCHIVOS
Detectar cambios en el sistema con Dnotify
RESCATE DEARCHIVOS
Este mes veremos cómo evitar la tragedia de la pérdida de archivos
con un sistema de control transparente basado en Perl.
POR MICHAEL SCHILLI
Figura 3 muestra la actividad del
demonio: para estar más seguros, el
demonio registra su actividad en el
archivo /tmp/noworries.log.
El script noworries cuida de los
archivos y directorios, sin importar lo
escondido que estén, bajo ~/nowor-
ries en el directorio de inicio del
usuario. Allí es donde normalmente
vamos a ubicar nuevos directorios o
extraer tarballs si deseamos proteger
nuestro sistema. El demonio crea una
estructura bajo ~/.noworries.rcs para
registrar los cambios tras las bambali-
nas. Cada subdirectorio contiene un
directorio RCS con las versiones de los
archivos, cuyos nombre terminarán en
v. RCS fue una herramienta de UNIX
desde sus comienzos y aún se usa para
los sistemas de control de versión
como CVS o Perforce. La siguiente
secuencia de comandos registra una
versión de file:
echo "Data!" >file
mkdir RCS
ci file
co -l file
El programa ci del conjunto de coman-
dos de RCS crea RCS/file,v en el forma-
to delta que usa RCS. El comando co
del final, en combinación con la
opción -l (de “look”), restablece la ver-
sión actual al directorio actual. Si
modificamos ahora file, y a conti-
nuación ejecutamos otra secuencia de
comandos ci/co, acabaremos con dos
versiones en RCS/file,v, que pueden
ser recuperadas por separado con co.
El programa rlog, otro miembro de la
familia RCS, nos permite visualizar los
metadatos de las versiones de los
archivos que hemos registrado.
El listado noworries (Listado 1)
define los nombres de estas he-
rramientas en las líneas 25 a 27. Si los
pasamos al script de esta
manera, debemos asegu-
rarnos que están ubicados
en nuestro PATH para per-
mitir a noworries que
pueda llamarlos. En caso
necesario, podemos codi-
ficar las rutas completas.
noworries usa las fun-
ciones mkd (crear directo-
rio), cp (copiar archivo),
cd (cambiar de directo-
rio), cdback (vuelve al directorio origi-
nal), y tap (ejecuta un programa y
recupera el resultado) que exporta
Sysadm::Install. Los lectores habi-
tuales de mi columna de Perl puede
que recuerden esto de [4].
Noworries Te VigilaAntes de que SGI::FAM pueda recibir
mensajes acerca de archivos modifica-
dos en un directorio, FAM tiene que
avisar al kernel de que quiere hacer
esto. Los sucesos se desencadenan tras
la llamada $fam->monitor(...) con
~/noworries como argumento, cada
vez que se crea un directorio o
archivo nuevo directamente en
~/noworries. Sin embargo, esto
no se aplica en los subdirectorios.
Por esta razón, SGI::FAM
arranca inmediata-
mente otro monitor
para los subdirec-
torios cada vez
que detecta que
se ha creado un
nuevo subdirec-
torio. Un truco
similar se aplica
si noworries
arranca cuando
ya existe una
estructura de
directorios muy
anidada bajo
~/noworries.
(Volveremos a esto
dentro de un
momento).
Si especificamos la
opción -w arrancamos
noworries en modo
demonio y se ejecuta el
bucle infinito definido en la
función watcher en la línea
88 del Listado 1. La llama-
da al método next_event()
en la línea 98 impide el flujo de ejecu-
ción hasta que ocurra uno de los cuatro
eventos monitorizados por FAM. Para
averiguar cuál de los potencialmente
muchos directorios activos ha sido, el
método which() de SGI::FAM, que es
llamado en la línea 101, devuelve el
directorio que ha causado el evento. El
método del evento filename() devuelve
el nombre del objeto nuevo, existente,
modificado o borrado, que puede ser
un directorio o un archivo.
El método type() nos devuelve el tipo
de evento. Los tipos en los que nowo-
rries está interesado son crate y change.
El método monitor() añade nuevos
directorios a la lista de cosas a vigilar,
mientras que la función check_in()
definida en la línea 170 controla los
archivos nuevos o modificados. Un
método similar se usa para añadir
directorios. El demonio utiliza find para
localizar directorios cuando se inician,
suponiendo que ~/noworries ya existe.
La función de apoyo subdirs() de la
línea 153 excava hondo por el árbol de
directorios y devuelve cualquier
directorio que
encuentre sin
importar lo anida-
do que pueda estar.
La función watch_subdirs()
itera sobre todos ellos y
pasa las rutas relati-
vas a FAM para su
seguimiento. La
sección de docu-
mentación de la
línea 266 no está sólo para
que el usuario obtenga
una página de manual
adecuadamente formatea-
da cada vez que la llame
con perldoc noworries.
También es la salida de la
función pod2usage(), si el
usuario no es capaz de
proporcionar las opciones
necesarias en línea de
comandos. No tiene
mucho sentido versionar
temporalmente los
archivos de vi o emacs,
por lo que se filtran en las
líneas 107 a 112.
Cuando un archivo
tiene que registrarse en el
sistema de control de ver-
siones, check_in en la
Perl • DESARROLLO
53Número 16W W W . L I N U X - M A G A Z I N E . E S
Figura 1: El demonio en Perl trabaja “tras bastidores” para
ofrecer un seguro de vida a los archivos por si son borrados
por el usuario.
las opciones -t y -m. La pasa el valor -
a ambos, ya que el primero y subsi-
guientes comentarios de registro no
tienen sentido. Pero tenemos que darle
a ci algo para procesar, para evitar un
prompt interactivo. La línea 204 com-
prueba la salida del archivo, como se
describió anteriormente. La siguiente
vez que ocurra un cambio, la copia
verificada se sobrescribe, y se registra
la nueva versión con ci.
¿Qué Día es Hoy?
noworries llama a la función de RCS
rlog para averiguar qué versiones de
línea 170 verifica primero que es un
archivo de texto. check_in descarta los
archivos binarios en la línea 174. Se
llama a la función con una ruta relati-
va a ~/noworries, ya que es donde
salta watcher() en la línea 90. La línea
189 copia la fila original al árbol RCS,
y la línea 195 llama al programa ci con
DESARROLLO • Perl
54 Número 16 W W W . L I N U X - M A G A Z I N E . E S
001 #!/usr/bin/perl -w
002 #############################
003 # noworries -
004 # [email protected]
005 #############################
006 use strict;
007 use Sysadm::Install qw(:all);
008 use File::Find;
009 use SGI::FAM;
010 use Log::Log4perl qw(:easy);
011 use File::Basename;
012 use Getopt::Std;
013 use File::Spec::Functions
014 qw(rel2abs abs2rel);
015 use DateTime;
016 use
017 DateTime::Format::Strptime;
018 use Pod::Usage;
019
020 my $RCS_DIR =
021 "$ENV{HOME}/.noworries.rcs";
022 my $SAFE_DIR =
023 "$ENV{HOME}/noworries";
024
025 my $CI = "ci";
026 my $CO = "co";
027 my $RLOG = "rlog";
028
029 getopts( "dr:wl",
030 \my %opts );
031
032 mkd $RCS_DIR
033 unless -d $RCS_DIR;
034
035 Log::Log4perl->easy_init({
036 category => 'main',
037 level => $opts{d}
038 ? $DEBUG
039 : $INFO,
040 file => $opts{w} &&
041 !$opts{d}
042 ? "/tmp/noworries.log"
043 : "stdout",
044 layout => "%d %p %m%n"
045 }
046 );
047
048 if ( $opts{w} ) {
049 INFO "$0 starting up";
050 watcher();
051
052 } elsif(
053 $opts{r} or $opts{l} ) {
054
055 my ($file) = @ARGV;
056 pod2usage("No file given")
057 unless defined $file;
058
059 my $filename =
060 basename $file;
061
062 my $absfile =
063 rel2abs($file);
064 my $relfile =
065 abs2rel( $absfile,
066 $SAFE_DIR );
067
068 my $reldir =
069 dirname($relfile);
070 cd "$RCS_DIR/$reldir";
071
072 if ( $opts{l} ) {
073 rlog($filename);
074 } else {
075 sysrun(
076 $CO, "-r$opts{r}",
077 "-p", $filename
078 );
079 }
080 cdback;
081
082 } else {
083 pod2usage(
084 "No valid option given");
085 }
086
087 #############################
088 sub watcher {
089 #############################
090 cd $SAFE_DIR;
091
092 my $fam = SGI::FAM->new();
093 watch_subdirs( ".", $fam );
094
095 while (1) {
096 # Block until next event
097 my $event =
098 $fam->next_event();
099
100 my $dir =
101 $fam->which($event);
102 my $fullpath =
103 $dir . "/" .
104 $event->filename();
105
106 # Emacs temp files
107 next
108 if $fullpath =~ /~$/;
109
110 # Vi temp files
111 next if $fullpath =~
112 /\.sw[px]x?$/;
113
114 DEBUG "Event: ",
115 $event->type, "(",
116 $event->filename, ")";
117
118 if ( $event->type eq
119 "create"
120 and -d $fullpath ) {
121 DEBUG "Adding monitor",
122 " for directory ",
123 $fullpath, "\n";
124 $fam->monitor(
125 $fullpath);
126 }
127 elsif ( $event->type =~
128 /create|change/
129 and -f $fullpath ) {
130 check_in($fullpath);
131 }
132 }
133 }
134
135 #############################
136 sub watch_subdirs {
137 #############################
138 my ($start_dir, $fam) = @_;
139
140 $fam->monitor($start_dir);
141
Listado 1: noworries
un archivo están disponibles. rlog
devuelve los números de versión con
la fecha (en formato yyyy/mm/dd
hh:mm:ss) y también revela el número
de líneas que han cambiado en com-
paración con la versión anterior.
Obviamente, no puede dar esta infor-
mación de la versión inicial, pero sí se
nos indica que la versión 1.2 tiene
lines: +10 -0, esto significa que hay 10
nuevas líneas en comparación a la 1.1,
y que no se ha borrado ninguna.
El módulo DateTime de CPAN nos
ayuda tremendamente con los cálculos
de fechas. El módulo
DateTime::Format::Strptime analiza la
información de fechas de RCS, y con-
vierte el valor a segundos transcurri-
dos desde el 1 de enero de 1970. Para
hacer esto, el constructor espera
recibir un cadena con el siguiente for-
mato: “%Y/%m/%d %H:%M:%S”, y
la llamada a parse_datetime()
devuelve un objeto DateTime comple-
Perl • DESARROLLO
55Número 16W W W . L I N U X - M A G A Z I N E . E S
142 for my $dir (
143 subdirs($start_dir) ) {
144 DEBUG "Adding monitor ",
145 "for $dir";
146 $fam->monitor($dir);
147 }
148
149 return $fam;
150 }
151
152 #############################
153 sub subdirs {
154 #############################
155 my ($dir) = @_;
156
157 my @dirs = ();
158
159 find sub {
160 return unless -d;
161 return if /^\.\.?$/;
162 push @dirs,
163 $File::Find::name;
164 }, $dir;
165
166 return @dirs;
167 }
168
169 #############################
170 sub check_in {
171 #############################
172 my ($file) = @_;
173
174 if ( !-T $file ) {
175 DEBUG "Skipping non-",
176 "text file $file";
177 return;
178 }
179
180 my $rel_dir =
181 dirname($file);
182 my $rcs_dir =
183 "$RCS_DIR/$rel_dir/RCS";
184
185 mkd $rcs_dir
186 unless -d $rcs_dir;
187
188 cd "$RCS_DIR/$rel_dir";
189 cp "$SAFE_DIR/$file", ".";
190 my $filename =
191 basename($file);
192
193 INFO "Checking $filename",
194 " into RCS";
195 my ($stdout, $stderr,
196 $exit_code) = tap(
197 $CI, "-t-",
198 "-m-", $filename
199 );
200 INFO "Check-in result: ",
201 "rc=$exit_code ",
202 "$stdout $stderr";
203
204 ($stdout, $stderr,
205 $exit_code) = tap(
206 $CO, "-l", $filename);
207 cdback;
208 }
209
210 #############################
211 sub time_diff {
212 #############################
213 my ($dt) = @_;
214
215 my $dur =
216 DateTime->now() - $dt;
217
218 for (
219 qw(weeks days hours
220 minutes seconds)) {
221 my $u =
222 $dur->in_units($_);
223 return "$u $_" if $u;
224 }
225 }
226
227 #############################
228 sub rlog {
229 #############################
230 my ($file) = @_;
231
232 my ( $stdout, $stderr,
233 $exit_code )
234 = tap( $RLOG, $file );
235
236 my $p =
237 DateTime::Format::Strptime
238 ->new( pattern =>
239 '%Y/%m/%d %H:%M:%S' );
240
241 while ($stdout =~
242 /^revision\s(\S+).*?
243 date:\s(.*?);
244 (.*?)$/gmxs) {
245
246 my ($rev, $date, $rest)
247 = ($1, $2, $3);
248
249 my ($lines) = ($rest =~
250 /lines:\s+(.*)/);
251 $lines ||=
252 "first version";
253
254 my $dt =
255 $p->parse_datetime(
256 $date);
257
258 print "$rev ",
259 time_diff($dt),
260 " ago ($lines)\n";
261 }
262 }
263
264 __END__
265
266 =head1 NAME
267
268 noworries - Dev Safety Net
269
270 =head1 SYNOPSIS
271
272 # Print previous version
273 noworries -r revision file
274
275 # List all revisions
276 noworries -l file
277
278 # Start the watcher
279 noworries -w
Listado 1: noworries
objetivo también está ejecutando FAM.
En caso contrario, sondea el destino a
intervalos regulares y esto provoca que
el sistema completo sea ineficiente.
InstalaciónDebemos instalar los módulos
SGI::FAM, Sysadm::Install, DateTime,
DateTime::Format::Strptime, y
Pod::Usage de CPAN. Un CPAN Shell
nos ayudará a resolver las dependencias
con rapidez. Si observamos un error tal
que FAM.c:813: error: storage size of
'RETVAL' isn't known al compilar
SGI::FAM, debemos cambiar la línea 813
de FAM.c de enum FAMCodes RETVAL a
FAMCodes RETVAL. Ejecutamos de
nuevo make y debería funcionar.
Para asegurarnos que el demonio está
siempre ejecutándose, añadimos una
línea similar a x777:3:respawn:su
mschilli -c "/home/mschilli/bin/nowor-
ries -w" a /etc/inittab, y a continuación
se lo hacemos saber al demonio Init eje-
cutando init q. El proceso tiene que eje-
cutarse con la ID del usuario en uso,
(mschilli en este caso), para asegurar
que $ENV{HOME} en el script apunta al
directorio de usuario correcto. También
en este caso, el proceso init arranca el
demonio noworries cuando encen-
demos el ordenador, y la opción
respawn asegura que el proceso se
reinicia inmediatamente si por algu-
na razón termina inadvertidamente.
Pero antes de hacer todo esto,
debemos probar el demonio desde
línea de comandos para ver si todo
funciona adecuadamente.
La opción -d de depuración
puede servir de ayuda si encon-
tramos problemas. Muestra el
estado detallado en la salida estándar
en lugar de volcarlo a /tmp/nowo-
rries.log. �
DESARROLLO • Perl
56 Número 16 W W W . L I N U X - M A G A Z I N E . E S
[1] Listados de este articulo: http://www.
linux-magazine.es/Magazine/
Downloads/16
[2] Página de FAM: http://oss.sgi.com/
projects/fam/
[3] Página de Gamin: http://www.gnome.
org/~veillard/gamin/
[4] “Comandos Shell desde Perl”,
Michael Schilli: http://www.
linux-magazine.es/issue/05/PerlShell.
RECURSOS
facilidad. FAM está
también algo obsole-
ta, y se ha designado
a Gamin [3] como su
sucesor.
El mecanismo
Dnotify del kernel
no usa inodos del
sistema de archivos,
sino nombres de
fichero, por lo que
mv file1 file2 activa
dos eventos: un
evento de tipo borrar
y otro de tipo crear.
Esto no le preocupa
a noworries, ya que
el script ignora los eventos tipo borrar, y
si aparece el mismo archivo tiempo
después, simplemente se registra como
la última versión.
El script sólo debería usarse
en nuestro disco
duro local, y no
con NFS, ya que
FAM sólo podría
ser eficiente
si el
NFS
tamente inicializado si no hubo pro-
blemas. El bucle while, que comienza
en la línea 241, navega por el compli-
cado resultado con la ayuda de
rlog, y para ello
hace
uso de una expresión regular
de varias líneas.
La función time_diff() de la línea 211
aguarda un objeto DateTime y calcula
su edad en segundos,
minutos, horas, días o
semanas. Así será más
sencillo de leer para el
usuario de noworries.
Desafortunadamente,
Dnotify, el mecanismo
que usa FAM, no escala
bien y sucumbe al llegar
a unos doscientos subdi-
rectorios. Para solventar
este problema dnotify se
ha remplazado por inoti-
fy en los kernels más
recientes. inotify hace
mejor uso de los recur-
sos y escala con mayor
Figura 2: Se añaden dos líneas a un archivo de nueva creación en
dos sesiones consecutivas. Noworries recupera la versión 2 cuando
se le requiere.
Figura 3: Tras las bambalinas, el demonio monitoriza el sistema
de archivos y crea una copia de seguridad con las versiones
cada vez que ocurre un cambio en los directorios vigilados.
Python • DESARROLLO
57Número 16W W W . L I N U X - M A G A Z I N E . E S
Web.pyCuando se escribe este artículo, Web.py no
pasa de la versión 0.13 y tiene un tamaño
de poco más de 55KBytes, pero no hay que
dejarse engañar por su tamaño. En su pro-
gramación, Aaron ha hecho uso de las más
sofisticadas técnicas de Python, la
MetaProgramación entre ellas.
Web.py genera métodos y clases bajo
demanda, convirtiendo toda la interacción
con bases de datos y la web en un juego de
niños. Todo se realiza a través de clases y
métodos. Los nombres de ambos han sido
escogidos con cuidado para que sean cor-
tos y fáciles de recordar. ¡Adiós a las mon-
tañas de documentación!
En su propia página se auto define de
«anti-framework».
IngredientesNecesitaremos de Web.py, que se puede
descargar de la URL que aparece en el
Recurso [2]. Además necesitaremos las
librerías de Python:
• Cheetah (Recurso [3]), que sirve para
crear templates.
• Psycopg (Recurso [4]), para el acceso a
la base de datos Postgresql.
Y por supuesto de Postgresql (Recurso
[5]), la base de datos relacional. Haremos
uso del sistema de paquetes que nuestra
distribución emplee para instalar estas
librerías y arrancaremos Postgresql si fuese
necesario.
Tanto Cheetah como Psycopg son
opcionales, Web.py ha sido diseñado con
una idea en mente: que sea completa-
mente modular. Así podríamos usar otro
sistema de templates u otro conector con
bases de datos, por ejemplo con MySQL.
Si tenemos todo instalado podemos
crear un directorio, donde trabajaremos y
copiaremos en el mismo el fichero Web.py.
Primera web… en 10 segun-dos.Comencemos con un ejemplo muy simple
usando el código que aparece en el Listado
1. Para arrancar el servidor sólo tenemos
que ejecutar:
# python holamundo.py
Desgranemos el código. Lo primero que
hacemos es importar web, Web.py. De esta
manera tendremos acceso a todas sus fun-
ciones. Posteriormente definimos una lista
que hemos llamado rutas. En ella defini-
mos pares de ruta/objeto asociado. Cada
vez que accedamos a Web.py éste buscará
la ruta que encaje con la que hemos pedi-
do y hará uso del objeto asociado.
Definimos una clase llamada hola. En
Web.py las clases son quienes «responden»
a las peticiones. Para ello debemos definir
un método GET o POST, dependiendo de
qué tipo de petición queramos responder.
Usando la función estándar print podemos
crear la respuesta. En nuestro ejemplo, es
tan simple, que ni siquiera creamos una
página web, solo devolvemos «¡Hola
mundo!» (Figura 1).
Conocí a Aaron Swartz en la Startup
School 2005, en Cambridge, EEUU.
Es muy joven, no tendrá más de 20
años, y uno de los protegidos de Paul
Graham en YCombinator. Hablé con él
durante una media hora y me pareció muy
inteligente. En ciertos ámbitos es conside-
rado un genio. Aaron ha crecido con la
Web, fue uno de los creadores del están-
dar RSS, para más detalles ver Recursos
[1].
Recuperando la webWeb.py es su apuesta para revitalizar la
web, para volverla simple, como parte del
movimiento Web2.0. Si Ruby on Rails sim-
plificó las monstruosidades de J2EE y
compañía, Web.py convierte el desarrollo
web en una cosa de niños. En menos de
10 segundos se puede tener funcionando
una página web dinámica.
Y es que mucha gente de la llamada
Web2.0 quiere volver a los tiempos en los
que usar la web era divertido, así que
Aaron ha hecho de Web.py una he-
rramienta muy potente y sencilla.
Web.py, un framework muy ligero.
WEBS EN 10SEGUNDOS
Después de tanto framework, librerías y plataformas web enormes ya era hora de que alguien nos diese algo
divertido. POR JOSÉ MARÍA RUIZ
José María Ruiz actualmente
está realizando el Proyecto Fin
de Carrera de Ingeniería Técnica
en Informática de Sistemas.
Lleva 8 años usando y desarrol-
lando software libre y, desde
hace dos, se está especializando
en FreeBSD.
EL
AU
TO
R
directamente desde la clase vista mediante
la función print. El problema aparece
cuando los ficheros HTML se vuelven más
complejos y comenzamos a mezclar pre-
sentación (HTML) y control (el fichero
Python). Y por ello Web.py dispone de los
templates.
Si queremos parar el servidor sólo te-
nemos que pulsar «Control C» dos veces.
Una web más dinámicaAhora que hemos visto cómo hacer el
famoso «hola mundo», pasemos a algo
más potente. Y lo haremos con la introduc-
ción de los templates. Vamos a crear un
directorio llamado templates dentro del
directorio donde tengamos holamundo.py.
En su interior crearemos un fichero llama-
do hola.html con el contenido del Listado
2. En lugar de holamundo.py usaremos
holamundo2.py, cuyo código aparece en el
Listado 3. El contenido del método GET de
hola ha cambiado a:
nombre = 'Isaac Newton'
web.render('hola.html')
Cuando ejecutamos holamundo2.py apare-
cerá en el navegador una página donde
podremos leer «Hola Isaac Newton».
web.render() es un método que carga el
template que le hemos indicado,
hola.html, y lo interpreta en el contexto del
objeto, y en este contexto nombre está
asignado a la cadena «Isaac Newton».
Debemos observar con más detenimien-
to el Listado 2. Este lenguaje tan extraño,
con lineas que comienzan con # es el que
emplea Cheetah, un sistema de templates
para Python. Su objetivo principal es la
simplicidad, así que en lugar de emplear
las ya famosas etiquetas <% y %> de
PHP o Java, usa # para las lineas con códi-
go Cheetah y $ para las variables. Web.py
lo usa debido a que genera templates que
son fáciles de leer y modificar. La ventaja
de emplear templates radica en que
podremos modificarlas sin tener que
volver a arrancar el servidor. Además
podremos separar el diseño de la web
respecto de la programación.
Programadores y diseñadores son como
el agua y el aceite, nunca se mezclan, así
que hay que tenerles separados.
Filosofía Web.py
Si el lector ha cometido algún fallo al
escribir parte del template o del fichero
holamundo.py, cosa que el autor ha hecho
y en repetidas ocasiones, se habrá percata-
do de lo dicharachero que es Web.py en
cuanto al informe sobre errores. Es parte
de la filosofía de desarrollo de Web.py, ser
muy ruidoso cuando algo va mal para que
el desarrollador detecte los problemas
pronto. El desarrollo rápido de programas
requiere al menos de dos factores:
• Que se escriba poco.
• Que se corrijan los errores muy rápido.
Y Web.py ha sido diseñado con ambos en
mente, el código escrito es muy compacto
y fácil de leer, los nombres de las funciones
son cortos y existen numerosos convenios
en lugar de excesiva flexibilidad. Algunos
de estos principios también rigen el diseño
de Ruby on Rails, pero Ruby on Rails tiene
un tamaño monstruoso comparado con
Web.py.
Hace unas semanas Guido van Rossum,
creador de Python, publicó un artículo
donde decía que su nuevo trabajo en
Google incluía la creación de una página
web para la Intranet interna de Google.
Estuvo echando un vistazo a los distintos
frameworks y le parecían todos demasiado
Y por último debemos indicar a Web.py
qué rutas usar, para ello empleamos:
if __name__ == '__main__':
web.run(rutas, web.reloader)
Con esta sencilla llamada nuestro servidor
estará listo para ejecutarse. Como ya diji-
mos antes, el servidor de Web.py se arran-
ca por defecto en el puerto 8080, de mane-
ra que no necesitamos permisos de root
para hacerlo (son necesarios para abrir
cualquier puerto por debajo del 1024). Al
acceder veremos «hola mundo». Podemos
modificar el puerto en el que se arranca el
servidor especificándolo en la linea de
comando, así:
# python holamundo.py 8003
arrancará el servidor en el puerto 8003.
Este es el modo más simple de mostrar
información usando HTML: se imprime
DESARROLLO • Python
58 Número 16 W W W . L I N U X - M A G A Z I N E . E S
01 #!/usr/local/bin/python
02 import web
03 rutas = (
04 '/', 'hola'
05 )
06
07 class hola:
08 def GET(self):
09 print "<html><head>"
10 print
"<title>hola<title><head>"
11 print "<body><h1>Hola
mundo</h1>"
12 print "</body></html>"
13
14 web.internalerror =
web.debugerror
15
16 if __name__ == '__main__':
17 web.run(rutas, web.reloader)
Listado 1holamundo.py
01 <html>
02
<head><title>Hola</title></hea
d>
03 <body><h1>
04 #if $nombre
05 Hola $nombre
06 #else
07 Hola mundo
08 #end if
09 </h1><body></html>
Listado 2: hola.html
01 #!/usr/local/bin/python
02 import web
03
04 rutas = (
05 '/(.*)', 'hola'
06 )
07
08 class hola:
09 def GET(self,nombre):
10 web.render ('hola.html')
11
12 web.internalerror =
web.debugerror
13
14 if __name__ == '__main__':
15 web.run(rutas, web.reloader)
Listado 3: holamundo2.py
Figura 1: Nuestra primera Web creada con
Web.py.
pesados y complejos. Guido no es desarro-
llador web, sino de lenguajes de progra-
mación, así que prefiere las cosas sencillas.
Web.py ha sido uno de los pocos frame-
works que según él recogen el espíritu de
Python.
Rutas inteligentesAhora vamos a presenciar una de las habi-
lidades de Web.py. Cambiemos de nuevo
el fichero holamundo.py para que quede
como en la Figura 2. Lo paramos y volve-
mos a arrancar e introduzcamos en el
navegador la ruta:
http://localhost:8080/juan
El resultado será una página donde se salu-
da a juan. ¿Cómo es esto posible? Se ha
añadido la expresión (.*) a la ruta, una
expresión regular. De hecho la ruta en sí
misma es una E.R. (expresión regular).
En una E.R. los paréntesis indican la
existencia de subexpresiones que pueden
ser separadas. En la ruta «/(.*)» tenemos
dos expresiones: «/» y «.*». Web.py asocia
la segunda a una variable y se la pasa a
GET, por eso le hemos añadido el
parámetro nombre en la definición. ¿y si
añadimos otra subexpresión? Vamos a
verlo en el Listado 4. Necesitaremos tam-
bién de hola2.html que aparece en el
Listado 5.
Al añadir otro «/(.*)» en la ruta automáti-
camente Web.py asocia otra variable a la
segunda subexpresión. Podríamos crear
cualquier esquema con las rutas, por ejem-
plo «http://localhost:8080/fecha/id-men-
saje». ¿Qué ocurre si dejamos la ruta básica
«http://localhost:8080»?
Pues que aparecerá el mensaje «Hola
mundo», porque en el template se com-
prueba la existencia de las variables nom-
bre y apellidos y al no encontrarlas ejecuta
el else del if.
MVCEstamos dando vueltas a un esquema de
desarrollo bastante popular estos días,
hablamos de MVC, el Modelo-Vista-
Controlador. Este esquema divide el desa-
rrollo de un sistema en tres componentes:
• La Vista sería el template, que genera
código de presentación de algún tipo,
como HTML o XML.
• El Controlador sería la clase hola, que
recoge la información y prepara el
entorno para la Vista.
• El Modelo es la información pura y
dura, generalmente almacenada en una
base de datos, y que se encarga de
comprobar la integridad de la misma.
MVC separa el trabajo en tres partes, de
manera que sean independientes unas de
otras. Una modificación en cualquiera de
ellas no implica cambiar el resto. También
se aumenta la reutilización, puesto que un
mismo controlador puede servir para dis-
tintas vistas. A la mente me viene un ejem-
plo muy recurrido: un controlador que
genere un listado de artículos para dos vis-
tas, la primera genera HTML y la segunda
RSS.
Por el momento hemos tratado con la
Vista y el Controlador ¿dónde está escondi-
do el Modelo en Web.py?
El ModeloUno de los requisitos para nuestro ejem-
plo de uso de Web.py es la librería
Psycopg. Es un interfaz para la base de
datos Postgresql muy pequeño y efi-
ciente, pensado para un uso intensivo
de hebras (la eficiencia y la simplicidad
serán la tónica general con Web.py). No
vamos a interactuar en ningún momen-
to con Psycopg, será Web.py quien lo
haga.
Comencemos creando una tabla que nos
permita almacenar información (Listado
6). En el Listado 7 podemos ver el código
de anotaciones.py. En él podemos observar
cómo se establecen los parámetros de con-
figuración de la base de datos. No conecta-
mos explícitamente con ella, será Web.py
quien lo haga:
web.db_parameters = dictU
(dbn='postgres',U
user='nombre_usuario',U
pw='clave',U
db='nombre-base-datos')
Como queremos recoger el contenido de la
tabla anotaciones para poder mostrarlo te-
nemos que ejecutar un SELECT, pero en
Web.py es tan sencillo como invocar dentro
de GET:
anotaciones = web.select(U
"anotaciones")
Con esta simple función recogemos en la
variable anotaciones el resultado de hacer
un select contra la tabla del mismo nombre.
A partir de ese momento anotaciones
estará disponible en el template
anota.html.
El código de anota.html aparece en el
Listado 8. En él usamos una lista html, UL,
y el lenguaje de templates de Cheetah para
iterar sobre anotaciones.
#for anota in $anotaciones
<li id="t$anota.id">U
Python • DESARROLLO
59Número 16W W W . L I N U X - M A G A Z I N E . E S
01 #!/usr/local/bin/python
02 import web
03
04 rutas = (
05 '/(.*)/(.*)', 'hola'
06 )
07
08 class hola:
09 def
GET(self,nombre,apellido):
10 web.render ('hola2.html')
11
12 web.internalerror =
web.debugerror
13
14 if __name__ == '__main__':
15 web.run(rutas, web.reloader)
Listado 4: holamundo2b.py
01 <html>
02
<head><title>Hola</title></hea
d>
03 <body><h1>
04 #if $nombre and $apellido
05 Hola $nombre $apellido
06 #else
07 Hola mundo
08 #end if
09 </h1><body></html>
Listado 5: hola2.html
01 CREATE TABLE anotaciones (
02 id serial primary key,
03 titulo text,
04 created timestamp default
now()
05 );
Listado 6: anotaciones.sql
Figura 2: Personalizamos el saludo gracias a
expresiones regulares.
rutas es una lista y las entradas impares se
corresponden con rutas, mientras que las
pares lo hacen con clases asociadas. De
esta manera relacionamos la ruta /nueva
con la clase nuevaAnotacion. Este sistema
es muy cómodo porque desvincula el
nombre de las rutas respecto del nombre
de las clases. La clase nuevaAnotacion ten-
drá la forma:
class nuevaAnotacion:
def POST(self):
params = web.input()
n = web.insert(U
'anotaciones',U
titulo = params.titulo)
web.seeother('./#t'+str(n))
Analicemos esta clase. Al igual que la
clase index, aquí definimos un método,
pero en esta ocasión es POST en lugar de
GET. Es costumbre enviar los datos de los
formularios como POST, así que eso hare-
mos. ¿Pero cómo recogemos los datos
enviados desde el navegador?
Aquí entran en juego las funciones de
Web.py. Con web.input() se recoge la
información recibida en una variable. Esta
variable será un objeto, y tendrá un atri-
buto por cada parámetro transmitido por
POST. Así podremos obtener el titulo de la
anotación simplemente accediendo a
params.titulo.
Para guardar esta información en la
base de datos hemos de usar web.insert().
Es el equivalente a la orden INSERT de
SQL, pero mucho más simple. Le
indicamos el nombre de la tabla y un con-
junto de valores asignados que correspon-
den a las columnas de la tabla. De esta
manera podemos pasar valores a las
columnas por nombre y no importa el
orden en que se pongan los parámetros.
web.insert() devuelve como resultado el
ID, que en la base de datos se asigne a esa
nueva fila. Así podremos hacer referencia
a ella.
Ahora podemos añadir entradas, como
en la Figura 3, a nuestra web de anota-
ciones, y el número de lineas de código
que hemos escrito es muy pequeño. No
sólo eso, sino que son muy sencillas de
entender.
ConclusiónCon Web.py podemos comenzar a crear
webs de manera muy sencilla y rápida. Es
un herramienta muy buena para crear pro-
totipos o explorar nuevos conceptos. Y eso
que, cuando se escribe este artículo, sólo
está disponible la versión 0.13. El sitio
web www.reddit.com emplea Web.py y su
uso se está extendiendo a la vez que más
personas se unen a su desarrollo. Desde
luego, es un proyecto interesante y debe-
mos estar atentos a su futuro desarrollo. �
$anota.titulo</li>
#end for
Entrada de datosPara volver interactiva nuestra página
debemos añadir un formulario, de manera
que el usuario pueda añadir nuevas anota-
ciones:
<form method="post"U
action="/nueva">
<p><input type="text"U
name="titulo" />
<input type="submit"U
value="Añadir" /></p>
</form>
Enviamos el contenido del campo título a
la ruta /nueva, pero este último aún no
existe, así que creamos en el fichero
Python una nueva entrada en rutas:
rutas = ( '/', 'index',
'/nueva', 'nuevaAnotacion')
DESARROLLO • Python
60 Número 16 W W W . L I N U X - M A G A Z I N E . E S
[1] Sitio de Aaron Swartz: http://www.
aaronsw.com/
[2] Descargas de web.py: http://webpy.
org/web.py
[3] Plantillas Chetah: http://
cheetahtemplate.org/
[4] Psycopgl, el adaptador Python para
PostgreSQL: http://initd.org/projects/
psycopg1
[5] Sitio web de PostgreSQL: http://www.
postgresql.org
RECURSOS
01 #!/usr/local/bin/python
02 import web
03 rutas = (
04 '/', 'index',
05 '/nueva', 'nuevaAnotacion'
06 )
07
08 class index:
09 def GET(self):
10 anotaciones =
web.select("anotaciones")
11 web.render ('anota.html')
12
13 class nuevaAnotacion:
14 def POST(self):
15 params = web.input()
16 n =
web.insert('anotaciones',titul
o = params.titulo)
17
web.seeother('./#t'+str(n))
18
19 web.internalerror =
web.debugerror
20
21 if __name__ == '__main__':
22 web.db_parameters =
dict(dbn='postgres',
user='josemaria', pw='',
db='prueba')
23 web.run(rutas, web.reloader)
Listado 7: Anotaciones.py
01 <html>
02 <head>
03 <title>Mis
anotaciones</title>
04 </head>
05 <body>
06 <ul>
07 #for anota in
$anotaciones
08 <li
id="t$anota.id">$anota.titulo<
/li>
09 #end for
10 </ul>
11 <form method="post"
action="/nueva">
12 <p>
13 <input type="text"
name="titulo" />
14 <input type="submit"
value="Nueva anotacion" />
15 </p>
16 </form>
17 </body>
18 </html>
Listado 8: Anota.html
Figura 3: La implementación de funciones
con Web.py exige muy poco código.
Entre visitas al dentista, mi trabajo
depende de las impresiones subje-
tivas de mis usuarios. Si un servi-
dor web va lento, la reacción típica es
algo parecida a “Eeeh, ¿porqué va lento el
servidor hoy?” Pero, ¿cuánto de “lento” es
lento? Si una sola máquina tiene un mal
día, es tan simple como hacerle un
chequeo individual. Las cosas se compli-
can si se posee un equipo remoto al que
sólo se tiene acceso mediante HTTP.
Las aplicaciones de monitoreo de soft-
ware, como Smokeping no son el tipo de
solución rápida que se necesita, y no es
preciso hacer Wget, Netstat y Time.
HTTPing [1] es la herramienta más ele-
gante para este trabajo.
Hay que enviar peti-
ciones GET o HEAD al desolado servidor
web y registrar ambas respuestas y el
tiempo de viaje. El nombre de HTTPing
proviene de la similitud sintáctica entre
las opciones de la línea de comandos y
del ping ICMP. En el caso más simple, se
le pasa la URL al HTTPing y se le envia de
esta forma: httping -g
http://kuehnast.com. En este caso,
HTTPing enviará una petición HEAD por
segundo al servidor especificado, hasta
que se presione [Ctrl]+[C] para que se
detenga. La salida se verá como en el Lis-
tado 1.
¿Es Culpable laEncriptación?Esta pregunta trivial indica si el servidor
contesta y con qué rapidez. El parámetro
-G proporciona respuestas específicas
tanto para GET, como para HEADs. Puede
especificarse la opción -l para ver el efecto
en los tiempos de acceso de un servidor
HTTPS. El Listado 2 muestra el efecto que
tiene la encriptación SSL en el tiempo de
respuesta. Tam-
bién estoy interesado en el estado del
código devuelto por el servidor. Tras el
típico 200 OK, quiero que HTTPing evalúe
el Código 304 Not modified como una
Conexión correcta:
httping -s -o 200,304 -G -l -g U
https://kuehnast.com
Como se dijo anteriormente, alguna
opción de HTTPing tiene el mismo efecto
que una respuesta ICMP: el parámetro -i
agrupa los intervalos entre los intentos de
conexiones individuales en segundos, 0.5
por ejemplo, es interpretado por HTTPing
como “tan pronto como sea posible”. El
parámetro -f tiene el mismo efecto. O sea
que una inundación del servidor web no
tiene mucho sentido y puede complicar
su relación con el administrador del servi-
dor web.
El -c 10 me permite restringir el texto
completo a 10 peticiones y se necesita
presionar [Ctrl] + [C] para salir de
HTTPing. Es importante controlar la sa-
lida si utiliza un script para lanzar
HTTPing. Por defecto HTTPing corta la
conexión tras 30 segundos. Tiendo a
poner este valor a diez segundos (-t 10).
Después de todo, un servidor web que no
responde tras diez segundos seguro que
tiene un problema. �
61
La Columna de Charly • ADMINISTRACIÓN
Número 16W W W . L I N U X - M A G A Z I N E . E S
[1] HTTPing: http://www.vanheusden.
com/httping/
RECURSOS
Anubis ....…......................................62
El servicio Anubis hace trucos con los
mensajes de correo electrónico antes
de pasárselo al servidor de correo.
Puede usar Anubis para centralizar la
encriptación del correo de salida.
SYSADMIN
HTTPing podría ser la herramienta perfecta para comprobar
la salud de su servidor web. POR CHARLY KÜHNAST
01 PING kuehnast.com:80
(http://kuehnast.com):
02 connected to kuehnast.com:80,
seq=0 time=8.57 ms
03 connected to kuehnast.com:80,
seq=1 time=3.56 ms
04 connected to kuehnast.com:80,
seq=2 time=4.24 ms
05 --- http://kuehnast.com ping
statistics ---
06 3 connects, 3 ok, 0.00% failed
07 round-trip min/avg/max =
3.6/5.5/8.6 ms
Listado 1: httping -g
01 # httping -G -l -g
https://kuehnast.com
02 [...]
03 connected to kuehnast.com:443,
seq=0 time=96.33 ms
04 connected to kuehnast.com:443,
seq=1 time=95.38 ms
05 connected to kuehnast.com:443,
seq=2 time=95.14 ms
06 [...]
Listado 2: httping -G -l -g
El Día a Día del Administrador de Sistemas: HTTPing
CHEQUEOWEB
62 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Encriptación Centralizada de Correo Electrónico con Anubis
ENCRIPTACIÓNEGIPCIA
Los expertos conocen los peligros
de transmitir planos, datos perso-
nales y acuerdos confidenciales
por Internet sin encriptar, aunque los
usuarios finales raras veces se percatan
de ello. Estos usuarios normalmente no
utilizan herramientas como PGP, GnuPG
[2] y S/Mime.
Los CTOs pueden lamentar su des-
tino o tomar acciones: Los deno-
minados servidores PGP propor-
cionan una gestión centra-
lizada de las claves de
usuarios y se encargan
de los procesos de
encriptación y de-
sencriptación.
Estos servicios
eliminan la
necesidad
de tener
que insta-
lar y configu-
rar los
clientes
PGP en cada estación de trabajo, aho-
rrando bastante tiempo.
Los administradores de Linux tienen la
posibilidad de usar programas de
encriptación gratuitos como GPG-Relay
[3] o Kurvert [4], y hay una serie de
aplicaciones comerciales (como [5] y
[6]) disponibles para Windows. Pero
si se prefiere evitar el uso de aplica-
ciones especializadas, la mejor
opción es elegir el programa de
gestión de correo universal,
GNU Anubis [1].
Anubis, que recibe el
nombre de un antiguo
dios egipcio, es un
servicio de pre-
procesamiento
SMTP. El ser-
vicio Anu-
bis recibe
los men-
sajes de
un MUA o
ADMINISTRACIÓN • Anubis
El servicio de manipulación de correo Anubis permite la encriptación centralizada del correo saliente. POR
DANIEL S. HAISCHT
Anubis • ADMINISTRACIÓN
63Número 16W W W . L I N U X - M A G A Z I N E . E S
User Agent, (como el cliente Mutt
mostrado en la Figura 2), y lo modifica
antes de enviarlo al MTA o Mail Transfer
Agent, (como el servidor Postfix también
mostrado en la figura 2). Anubis puede
procesar los mensajes de diversas formas,
pero en este caso, una de sus característi-
cas más útiles es la posibilidad de encrip-
tar el correo usando GnuPG. Posee una
herramienta de manipulación de correo
experimentada, es una solución de
Código Abierto que permite a los admi-
nistradores instalar una infraestructura
PGP centralizada. La desencriptación
automática de correo entrante o el uso del
estándar PGP/Mime para procesar los
ficheros adjuntos requieren el uso de pro-
gramas como GPG-Relay o Kuvert, pero
Anubis es la elección perfecta para encrip-
tar y firmar el correo saliente.
La Funcionalidad SMTPRelayUna de las técnicas más comunes para la
encriptación o la firma de los mensajes de
correo electrónico es usar en cada cliente
un plugin PGP como Enigmail [9]. Una
herramienta como Anubis, por el con-
trario, proporciona una solución alternati-
va. Ofrece un procesamiento centralizado
que a menudo es más fácil de gestionar si
se tiene un gran número de usuarios. Con
esta solución el cliente ya no tiene que
enviar más el correo al servidor de correo,
sino que lo dirige al software Anubis, el
cual actúa como un proxy, modificando el
contenido del mensaje, firmándolo o
encriptándolo y por último enviándolo al
servidor de correo.
Puede ejecutarse en un servidor inde-
pendiente o en la misma máquina que el
cliente o el MTA. Los usuarios tan sólo
tienen que configurar sus clientes de
correo electrónico de modo que Anubis
sea su servidor de correo (véase el cuadro
“Trucos SMTP”).
La InstalaciónGracias a autoconf, el proceso de insta-
lación y configuración de Anubis es real-
mente sencillo. Pero hay que asegurarse
de especificar qué base de datos va a con-
tener la información de los usuarios. En el
modo Pixie, se puede además autenticar a
los usuarios por medio de un servicio
Ident ejecutándose localmente en las esta-
ciones de trabajo. Esta variante no necesi-
ta de una base de datos relacional.
Además, es posible compilar todos los
módulos y decidir una instalación poste-
rior:
• Regex (soporte para expresiones regu-
lares)
• GSASL (autenti-
cación de usuarios)
• El módulo para el
servicio Ident se
incluye siempre
• Guile (para los scripts)
• OpenSSL o GnuTLS (soporte SSL)
• GPG (GNU Privacy Guard) y GPGme
• MySQL (base de datos)
• PostgreSQL (base de datos)
• GDBM y ficheros de textos (estas va-
riantes de bases de datos se incluyen
siempre)
Otros componentes son opcionales y sólo
tienen sentido en escenarios específicos:
• PAM (autenticación)
• Libwrap (TCP Wrapper)
• SOCKS (soporte SOCKS)
• NLS (Internacionalización)
• PCRE (expresiones regulares con la sin-
taxis de Perl).
Desafortunadamente, Anubis no tiene
soporte para el servicio de directorio
LDAP. Esta sería una característica útil, ya
BLOB Binary Large Object
GPG GNU Privacy Guard
Guile GNUs Ubiquitous Intelligent Language for Extensions
Mime Multipurpose Internet Mail Extensions
MTA Mail Transfer Agent (Mailserver)
MUA Mail User Agent (Mailclient)
NLS Native Language System
PAM Pluggable Authentication Modules
PGP Pretty Good Privacy
SASL Simple Authentication and Security Layer
S/Mime Secure Mime
SMTP Simple Mail Transfer Protocol
SSL Secure Sockets Layer
TLS Transport Layer Security
Figura 1: En una infraestructura normal de
correo, cada cliente (MUA, Mail User Agent)
pasa los mensajes al servidor SMTP (MTA,
Mail Transfer Agent) que gestiona la entrega.
Figura 2: Anubis de GNU se sitúa entre el
MUA y el MTA. Desde el punto de vista del
cliente, Anubis es el servidor de correo. En
esta posición, puede manipular el tráfico
arbitrariamente.
Tabla 1: Abreviaciones utilizadasen el artículo
01 #> Reading system file /usr/local/
etc/anubis/anubisrc...
02 #> UID:0 (root), GID:0, EUID:0, EGID:0
03 #> GNU Anubis bound to<192.168.1.6:24
04 #> [68239] GNU Anubis is running...
05 #> [68239] Connection from 192.168.120.239:1310
06 #> [68244] IDENT: connected to
192.168.120.239:113
07 #SERVER >>> 1310, 24 : USERID : UNIX :
haischt(36)
08 #> [68244] IDENT: resolved remote user to
haischt.
09 #> [68244] UID:65534 (nobody), GID:65534,
EUID:65534, EGID:65534
10 #> [68244] Getting remote host information...
11 #> [68244] Connected to 192.168.1.6:25
12 #> [68244] Transferring message(s)...
13 #SERVER >>> 220 smtp. abyssworld.de ESMTP
Postfix (2.2.3)(46)
14 #CLIENT <<< 220 smtp. abyssworld.de (GNU Anubis
v4.0) ESMTP Postfix (2.2.3)(64)
Listado 1: Modo Pixie
configuración; sin embargo, hay una
plantilla en examples/2anubisrc en el
paquete del código fuente de la apli-
cación.
Configuración PersonalAdicionalmente, los usuarios que
necesiten enviar los correos por medio
del servicio Anubis pueden crear un
fichero ~/.anubisrc en sus directorios
home. El fichero examples/1anubisrc
proporciona un ejemplo.
Para una prueba inicial, el servicio
Anubis también dispone de un modo
de depuración:
anubis --altrc U
/usr/local/etc/anubis/anubisrc
U
--mode=transparent -v -D -f
Esto le indica a Anubis que se ejecute
de forma transparente sin autenti-
cación, proporcionando información
detallada de salida (-v), produciendo
datos de depuración (-D) y ejecután-
dose en segundo plano (-f), en vez de
evitar los canales estándar de entrada
y salida, como normalmente hacen los
servicios.
Autenticación PixieAnubis posee varias soluciones para
identificar a los usuarios. El modo
Pixie es una de las soluciones más
simples para realizar la autenticación.
Este modo se habilita con la entrada
mode transparent en el bloque de con-
trol del fichero de configuración glo-
bal. En esta configuración, un servicio
Ident (protocolo AUTH) se ejecuta en
la estación de trabajo del usuario.
Anubis requiere que el usuario se au-
tentique antes de manejar el correo
(véase la Figura 3).
Sin embargo, esta técnica sólo tiene
sentido en un escenario muy específi-
co. El servidor tiene que confiar en el
servicio Ident, además, esta clase de
comprobación de seguridad del lado
cliente sólo funciona si la estación de
trabajo es manejada por un admi-
nistrador responsable que conoce a
sus usuarios y que puede estar seguro
de que nadie manipulará la configu-
ración de la red. Las buenas prácticas
sugieren evitar el uso de este modo de
operación.
Práctico pero InseguroAunque el nombre del protocolo, AUTH,
podría suponer otra cosa, Identd no rea-
liza realmente una autenticación. El ser-
vicio está diseñado para seguir la pista de
los ataques: el administrador del sistema
atacado puede utilizar Ident para com-
probar la ID de los usuarios de las
máquinas de origen de las conexiones
TCP. Basándose en estos datos, el admi-
nistrador puede entonces contactar con
el administrador responsable de la
máquina origen. Muchas de las imple-
mentaciones de Ident simplemente hacen
uso de una ID por defecto ([7], [8]).
El Listado 1 muestra una sesión de
Anubis en el modo Pixie. Las líneas 6
(intento de autenticación Ident) y 8,
donde el usuario de correo se corres-
ponde con la cuenta Unix local haischt,
son de interés. Después de la fase de au-
tenticación, el servicio GNU Anubis pasa
los mensajes al servidor de correo
(Líneas de la 11 a la 14).
Los sistemas clientes basados en
Windows XP a menudo poseen un corta-
que normalmente tanto la información
de los usuarios como las claves PGP
están disponibles por medio de OpenL-
DAP o del servidor Active Directory.
Durante mucho tiempo, la aplicación
Anubis solamente hacía uso de bases de
datos en formato texto o basadas en
GDBM; el soporte para los sistemas rela-
cionales es aún bastante nuevo para este
programa. Así que esperemos que el
soporte para LDAP esté disponible próxi-
mamente.
Se puede comprobar el fichero
config.log después de completar la fase
./configure para ver si los módulos se
han configurado como se esperaba.
Después de completar la instalación,
tecleando anubis- show-config-options se
puede consultar si los módulos requeri-
dos están realmente disponibles.
Anubis espera encontrar sus datos de
configuración en /etc/anubisrc. Esta ruta
está codificada en src/header.h, pero se
puede modificar la localización al vuelo
usando --altrc fichero. La fase make
install no crea realmente un fichero de
ADMINISTRACIÓN • Anubis
64 Número 16 W W W . L I N U X - M A G A Z I N E . E S
01 #---BEGIN CONTROL---
02 ## ...
03 #mode auth
04 ## ...
05 #---END---
06 #
07 #---BEGIN AUTH---
08 #smtp-greeting-message ESMTP
Anubis (4.0.0)
09 #smtp-help-message help message
10 ### Simple text database:
11 ## sasl-password-db
file:/usr/local/etc/anubisdb.txt
12 ### Relational MySQL Database
13 #sasl-password-db
mysql://mail:access4anubis@mysql
.abyssworld.de/mail;table=anubis
_user
14 #sasl-allowed-mech NTLM GSSAPI
DIGEST-MD5 CRAM-MD5
15 #---END---
16 #
17 #---BEGIN TRANSLATION---
18 ##translate [USER@]ADDRESS into
USERNAME
19 #translate
into haischt
20 #---END---
Listado 2: Configuración Dixie
Figura 3: En el modo Pixie, Anubis solicita
primero al servicio Ident de la estación de
trabajo del emisor que identifique al
usuario que ha abierto la conexión antes
de aceptar y procesar el mensaje.
Figura 4: En el modo Dixie el servidor Anubis
usa el método SMTP-AUTH para propor-
cionar una autenticación segura del usuario.
El servidor necesita almacenar las creden-
ciales del usuario en una base de datos.
fuegos integrado que puede ocasionar
problemas durante la fase de compro-
bación. En la configuración por defecto,
el cortafuegos incomprensiblemente
restringe todas las peticiones Ident al
puerto 113. Esto tiene que modificarse (o
bien desbloqueando el puerto 113 o
deshabilitando el cortafuegos). Además,
el programa de correo no puede hacer
uso de los nombres de usuarios SMTP-
AUTH en el modo Pixie.
Dixie, la AlternativaPreferidaEl modo Dixie (Figura 4) es más nuevo
y mejor que el modo Pixie. La alterna-
tiva Dixie está basada en el estándar
SMTP-AUTH. Anubis
lee el nombre del
usuario, la contraseña
y otras credenciales
de una base de datos
(un simple fichero de
texto o un sistema de
base de datos rela-
cional). La variante
del fichero de texto
incluye el ID del
usuario (SMTP-
AUTH-ID), la con-
traseña y, opcional-
mente, la cuenta Unix
y la ruta a la configu-
ración específica del
usuario (Tabla 2).
El fichero de texto
dispone de una línea para cada
usuario; los campos están separados
por blancos. De acuerdo con la docu-
mentación oficial, los campos
deberían separarse por el carácter “dos
puntos”, pero esta sintaxis ya ni
siquiera funciona en Anubis 4.0.
La variante del fichero de texto está bien
al principio para realizar pruebas y para
entornos pequeños. Si se necesita manejar
un gran número de usuarios, probable-
mente se prefiera trabajar con una base de
datos en vez de con un fichero de texto. La
Figura 5a muestra una tabla con el esque-
ma apropiado para esta base de datos.
El authid está definido como la clave
primaria; los campos son todos de
texto. Como se puede ver en la Figura
5b, el contenido de la tabla refleja el
del fichero de texto. El siguiente
comando importa el fichero de texto a
la base de datos MySQL:
anubisadm --create U
'mysql://mail:access4anubisU
@mysql.abyssworld.de/mail; U
table=anubis_test' U
< /usr/local/etc/U
anubis/anubisdb.txt
El comando especifica la tabla destino
como un parámetro URL, la notación
es confusa, ya que los parámetros no
están separados por el carácter &,
como lo estaría en una dirección
HTTP, sino por puntos y comas. La
URL y los parámetros deben ir entre-
comillados para impedir que los inter-
prete la shell.
Integrando la Base deDatosPara indicarle a Anubis que utilice la
tabla nueva, el administrador tiene
que cambiar el modo de autenticación
de mode transparent a mode auth en la
sección de control de la configuración
global en anubisrc (véase el Listado 2,
de la línea 1 a la 5). También es nece-
sario añadir la ruta a las credenciales
del usuario en la sección AUTH (líneas
7 a 15). El Listado 2 muestra cómo
realizar esto para la base de datos
MySQL. Además, los usuarios tienen
que decirles a sus programas que utili-
cen la autenticación SMTP-AUTH
cuando envíen un correo electrónico.
El Listado 3 muestra una sesión
Dixie en funcionamiento. La línea 7 y
siguientes muestran a un programa de
correo dialogando con el servicio
Anubis. El cliente puede usar el
mecanismo SASL DIGEST-MD5 y
CRAM-MD5 para la autenticación.
Ambas soluciones transmiten un hash
de la contraseña por la red en vez de
una contraseña en texto en claro.
En la línea 9, se puede observar al
programa de correo tratando con el
comando STARTTLS para establecer
una conexión SSL segura con el servi-
cio Anubis. Se produce un fallo porque
Anubis aún no está configurado para
SSL seguro. En la línea 16, el programa
de correo y Anubis acuerdan usar el
mecanismo SASL CRAM-MD5. El ser-
Anubis • ADMINISTRACIÓN
65Número 16W W W . L I N U X - M A G A Z I N E . E S
Figura 5a: La tabla MySQL contiene las credenciales del usuario
haischt, que utiliza Dixie para autenticarse. La cuenta Unix para este
usuario tiene el mismo nombre, y el fichero de configuración está
localizado en /home/haischt/.anubisrc.
Figura 5b: PHPMyAdmin muestra la estructura de la tabla MySQL utilizada como el almacén
de datos del modo Dixie de Anubis.
AUTH y pro-
porciona a los
usuarios de
correo elec-
trónico sin
cuentas UNIX
acceso al servi-
cio. También
es cierto que la
imple-
mentación
actual del
modo Dixie de
Anubis tiene
unos cuantos
inconvenientes
molestos:
Las contraseñas se almacenan en
claro en la base de datos. El campo de la
base de datos para el fichero de configu-
ración de los usuarios de Anubis apunta
a un fichero existente. Sería más prácti-
co almacenar los parámetros en un
campo BLOB o en una tabla separada.
Como Anubis posee las credenciales
del usuario, ahora es posible el proce-
samiento de los mensajes con destino;
por ejemplo, se puede configurar Anubis
para que firme o encripte el correo. Para
permitir esta posibilidad, los usuarios
han de añadir sus entradas en la sección
RULE de sus ficheros ~/.anubisrc. Es
bastante sencillo añadir atributos a la
cabecera del correo electrónico utilizan-
do la notación add header [nombre]
valor:
add header[X-Processed-By] U
"GNU Anubis"
vicio busca entonces en la base de
datos MySQL un registro que corres-
ponda con las credenciales del usuario
haischt y encuentra dicho registro
(desde la línea 18 a la 20).
La línea 20 tiene un detalle intere-
sante. En esta línea es donde Anubis
realiza la correspondencia entre el
usuario y la dirección de correo elec-
trónico [email protected]
con el usuario local haischt. La sección
TRANSLATION se encarga de realizar la
correspondencia entre la dirección de
correo y los nombres locales (véanse las
cuatro últimas líneas del Listado 2). La
sección TRANSLATION del fichero de
configuración también puede efectuar
la correspondencia entre todas las direc-
ciones de un dominio con un nombre
compartido (traducción del Dominio al
Usuario).
El modo Dixie es útil, ya que hace uso
de estándares actuales como SMTP-
ADMINISTRACIÓN • Anubis
66 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Algunos programas de correo, por ejem-
plo Mutt, llaman al programa sendmail
directamente para enviar el correo. En
este caso, es imposible cambiar el servi-
dor SMTP y el puerto en la configuración
del cliente de correo, ya que el compor-
tamiento de sendmail está configurado
por el administrador. Además, algunos
clientes de correo no soportan la autenti-
cación basada en el mecanismo SMTP-
AUTH.
Programas como MSMTP [10] o ESMTP
[11] pueden ayudar actuando como
proxies de correo. Los usuarios pueden
configurar estas herramientas de línea
de comandos individualmente, con el
fichero de configuración ~/.esmtprc para
el caso de ESMTP:
hostname = U
anubis.abyssworld.de:24
username = "haischt"
password = "access4anubis"
starttls = disabled U
El servicio envía el correo al servidor
Anubis (anubis.abyssworld.de, puerto
24) y autentica usando las credenciales
del usuario. La encriptación STARTTLS
está deshabilitada. Mutts necesita saber
que debería llamar a ESMTP en vez de
llamar a sendmail:
set sendmail=U
"/usr/local/bin/esmtp" U
Esta línea en el fichero de configuración
de Mutt le indica al cliente de correo qué
servicio usar.
Trucos SMTP
01 #> Reading system configuration
file
/usr/local/etc/anubis/anubisrc..
.
02 #> UID:0 (root), GID:0,EUID:0,
EGID:0
03 #> GNU Anubis bound to
192.168.1.6:24
04 #> [68643] GNU Anubis is
running...
05 #> [68643] Connection from
192.168.120.10:40501
06 #CLIENT <<< 220
abyssone.abyssworld.de GNU
Anubis ESMTP; Identify
yourself(64)
07 #CLIENT >>> EHLO
[192.168.121.2](22)
08 #CLIENT <<< 250-Anubis is
pleased to meet you.(36)
09 #CLIENT <<< 250-STARTTLS(14)
10 #CLIENT <<< 250-AUTH DIGEST-MD5
CRAM-MD5 (31)
11 #CLIENT <<< 250 HELP(10)
12 #CLIENT >>> STARTTLS(10)
13 #[68647] anubis.pem: No such
file or directory
14 #CLIENT <<< 454 TLS not
available due to temporary
reason(47)
15 #CLIENT >>> AUTH CRAM-MD5(15)
16 #SASL mech=CRAM-MD5, inp=NULL
17 #CLIENT <<< 334
PDE0MTU0NTMyOTUzMDA2MzI0MTIzLjBA
bG9jYWxob3N0Pg==(54)
18 #CLIENT >>>
aGFpc2NodCA5ZmQ1MDhkYTYzYzQ3ODRi
OGUwMzMzZTNhMmUyM2VjZQ==(58)
19 #> [68647] Found record for
`haischt'.
20 #> [68647] Authentication
passed. User name haischt, Local
user haischt. Welcome!
21 #CLIENT <<< 235 Authentication
successful.(32)
22 #> [68647] UID:1001 (haischt),
GID:20, EUID:1001, EGID:20
23 #> [68647] Reading user
configuration file
/home/haischt/.anubisrc...
24 #> [68647] Getting remote host
information...
25 #> [68647] Connected to
192.168.1.6:25
26 #> [68647] Starting SMTP
session...
27 #SERVER >>> 220
smtp.abyssworld.de ESMTP Postfix
(2.2.3)(46)
Listado 3: Sesión Dixie
Campo Descripción
Authid Corresponde con el nombre establecido por el usuario
en las preferencias del programa de correo. Este campo
se requiere para la autenticación SMTP.
Passwd El usuario, además, establece una contraseña en el pro
grama de correo cliente, que de nuevo es necesario
para la autenticación SMTP.
Account Corresponde con la cuenta Unix. Este campo relaciona
el nombre del usuario de correo con la cuenta Unix co-
rrespondiente, con el objeto de encontrar un fichero de
configuración de Anubis en el directorio home del
usuario, por ejemplo.
Config Este campo contiene la ruta (absoluta o relativa) del
fichero de configuración de Anubis de este usuario. Las
rutas relativas empiezan en el directorio home del
usuario.
Tabla 2: Campos de la base de datos Dixie
ADMINISTRACIÓN • Anubis
68 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Anubis también posee ejecución
condicional. Si un correo tiene una
cabecera with-signature que contiene
un valor arbitrario (expresión regu-
lar.*, véase el cuadro “Formatos de
Expresiones Regulares”), las siguien-
tes líneas son todo lo que se necesita
para eliminar la cabecera y añadir una
firma basada en texto al final del men-
saje:
if header [with-signature] U
:re ".*"
remove [with-signature]
signature-file-append yes
signature-file-append yes añade un
separador –, seguido por el contenido
del fichero ~/.signature, body-append
añade el contenido de un fichero arbi-
trario al final del mensaje mientras
que body-clear-append elimina el texto
del mensaje original antes de realizar-
lo.
Comandos en la Línea AsuntoAlgunos clientes de correo hacen que
le resulte complicado a los usuarios
añadir cabeceras. Anubis simplifica
este proceso para los usuarios ya que
analiza la línea asunto:
if header [Subject] U
"^ *\\[sig\\](.*)"
remove [Subject]
add [Subject] "\1"
signature-file-append yes
La instrucción if comprueba si la línea
asunto empieza con [sig] (Sintaxis Posix
extendida, si no, no está precisamente
especificada). Entonces elimina la línea
asunto entera y añade una línea nueva
que refleja parte de la línea original del
asunto que sigue a [sig]. Para ello, \1 re-
ferencia a la cadena entre corchetes pasa-
da por la expresión regular.
La línea asunto es tan útil para coman-
dos que Anubis posee su propia sintaxis
para manipularla: Disparadores. Los
usuarios pueden disparar eventos a través
del correo añadiendo el comando al final
de la línea de asunto seguido por dos ca-
racteres “@”, como cualquier cade-
na@@sign. El siguiente disparador se
encargará de todo:
trigger "sign"
gpg-sign meU
@daniel.stefan.haischt.name
done
El comando gpg-sign firma el cuerpo del
correo electrónico con la clave ID especi-
ficada. Para ello las claves GPG del
usuario deben estar disponibles en el
directorio ~/.gnupg, y los ficheros de
configuración de los usuarios ~/.anubis-
rc deben contener la contraseña GPG
(gpg-passphrase “micontraseña”). GPG
necesita las ID de las claves de los usua-
rios para realizar la encriptación. Un dis-
parador extendido que analiza datos de
la línea de asunto adicionales puede
realizarlo mediante:
trigger : U
extended "^encrypt:(.*)"
gpg-encrypt "\1"
add [X-GPG-Comment] U
"Encrypted for \1"
done
La línea de asunto contiene el disparador
encrypt seguido por la ID de la clave del
receptor:Hola Juan!@@encrypt:Receiver-
Key.
Anubis Astuto y SutilTareas más complejas requieren de un
lenguaje de programación más potente
y Anubis proporciona esto por medio
del lenguaje de script Guile (un dialecto
de Scheme). Incluso se pueden utilizar
programas externos para la manipu-
lación del correo. En combinación con
los comandos integrados, GNU Anubis
soporta además técnicas extremada-
mente flexibles para procesar cabeceras
de correo y contenidos. La fuerza real
de este programa reside en la habilidad
para realizar cualquier clase de mani-
pulación sobre el correo que se pueda
imaginar. Al mismo tiempo, el soporte
integrado PGP/GnuPG ahorra bastante
trabajo de configuración.
La autenticación de usuarios aún
tiene bastantes cosas que mejorar. (El
modo Pixie aplica la solución poco
segura Ident y el modo Dixie almacena
las contraseñas en la base de datos en
claro). Las claves PGP y las configura-
ciones específicas de los usuarios se
almacenan en el sistema de ficheros en
vez de en la base de datos. Y además
de esto, hay que añadir la carencia de
soporte LDAP y PGP/Mime, junto con
el hecho de que Anubis aún no es
capaz de desencriptar los mensajes
entrantes. Esperamos que en las próxi-
mas versiones del programa se mejoren
todas estas características. �
Anubis entiende unas cuantas variantes
de expresiones regulares. La configu-
ración utiliza las siguientes etiquetas
para identificar las expresiones regu-
lares:
• :regex o :re: Expresiones regulares
simples (Posix Extendido por defecto)
• :basic: Conmuta a Posix básico
• :extended: Conmuta a Posix exten-
dido (por defecto)
• :perl o :perlre: Expresiones regulares
compatibles con Perl (sólo si el
soporte PCRE está compilado en Anu-
bis)
• :exact o :ex: Sin expresiones regu-
lares, el patrón debe ser una coinci-
dencia exacta
• :scase: Distingue entre mayúsculas y
minúsculas
• :icase: No distingue entre mayúsculas
y minúsculas
Una sentencia puede contener una
secuencia de etiquetas: :perl:scase sig-
nifica expresiones PCRE y con distinción
entre mayúsculas y minúsculas. La sen-
tencia regex :perl:scase establece esta
variante como opción por defecto.
Formatos de ExpresionesRegulares
[1] GNU Anubis: http://www.gnu.org/
software/anubis/
[2] GNU Privacy Guard: http://www.
gnupg.org
[3] GPG Relay: http://sites.inka.de/tesla/
gpgrelay.html
[4] Kuvert: http://www.snafu.priv.at/
mystuff/kuvert/
[5] PGP Universal: http://www.pgp.com/
products/universal/
[6] GPG Shell (Windows): http://www.
jumaros.de/rsoft/
[7] Python Ident Daemon: http://www.
alcyone.com/software/fauxident/
[8] Windows Identd: http://identd.dyndns.
org/identd/
[9] Enigmail plugin: http://enigmail.
mozdev.org
[10] MSMTP: http://msmtp.sourceforge.
net
[11] ESMTP: http://esmtp.sourceforge.net
RECURSOS
7373ISSUE 52 MARCH 2005W W W . L I N U X - M A G A Z I N E . C O M
Bienvenidos a Linux UserÉsta es la sección dedicada a la presentación de software interesante y útil que nos ayuda en nuestro quehacer diario con
el escritorio Linux. Aquí aprenderemos a utilizar software estándar de una manera más eficiente, adquiriremos valiosos
conocimientos y descubriremos nuevas y apasionantes aplicaciones.
Ktools: Kpowersave 70
KPowersave ofrece a los usuarios de KDE una inter-
faz sencilla y fácil para configurar los opciones de
administración de energía.
Gimp 72
Gimp te ayudará a mejorar la calidad de tus menos-
que-perfectas imágenes digitales.
Fortune 74
El programa Fortune presenta un refrán o una broma
cuando arrancas una sesión en tu terminal. También
puedes adjuntarlo a tu firma de correo para alegrar
tus mensajes.
Educación: Squeak 76
Squeak puede ser el entorno educativo definitivo.
Comenzamos su análisis para su aplicación en las
aulas en este artículo de Juan Rafael Fernández.
Línea de comandos: Ispell 81
Nadie está a salvo de gazapos y de los enredos con
palabras. Correctores de ortografía como Ispell y
Aspell se encargan de mantener las letras en su
lugar correcto.
Juegos: Quake IV 84
Llega a Linux todo un clásico de los first-person-
shooters: Quake 4 trae más armas, más efectos, más
sonidos y más malos a quienes masacrar.
un paquete para la distribución que se
posee, puede compilarse el código fuente
que se puede obtener en el mismo sitio.
Para ello, hay que descargar el archivo
dbus-0-50.tar.gz, y para desempaquetar
dar al comando tar -xzvf dbus-0.50.tar.gz.
Tras haber desempaquetado los
ficheros fuente de D-Bus, se cambia al
nuevo directorio dbus-0.50, se escribe ./
configure para crear un Makefile, y se
compila el programa introduciendo
make. El proceso se completa corriendo
su -c “make install” e introduciendo la
contraseña de superusuario. Este paso
instala D-Bus donde se necesita dentro
del árbol del sistema de ficheros.
Los pasos requeridos para la insta-
lación de HAL son similares. Para
Powersave se introduce autoreconf -fi
para crear un Makefile, luego se continúa
con el procedimiento estándar para com-
pilar e instalar.
Finalmente se instala KPowersave . El
archivo de código fuente está disponible
desde la página de inicio en [1]. Se
desempaqueta el código fuente y se cam-
bia al nuevo directorio kpowersave-0.5.
Una vez en él, se escribe make -f admin/
Makefile.common cvs para crear planti-
llas para los makefiles. El script de con-
figuración crea luego los makefiles. Por
último, se introduce make y make install
para compilar e instalar el programa.
TrampasTanto KPowersave como Powersave (el
cual viene con la distribución
KPowersave) resultaron ser completa-
mente intratables durante la instalación y
en nuestro laboratorio. Fuimos incapaces
de compilar Powersave en Mandriva 10.2
y Kubuntu 5.04. Sobre Suse 9.3 la
máquina no quiso despertarse de nuevo
después de desconectarlo con el modo
sleep. De hecho, no tuvimos más alterna-
tiva que resetearla, lo cual es algo que
habitualmente se desea evitar. En contra-
posición con esto, no hubo ningún pro-
blema en OpenSuse 10.0, donde todo
funcionó tal y como se esperaba.
Para arrancar KPowersave, se escribe
kpowersave en una ventana de consola o
se selecciona el programa desde el menú
K. Después de arrancar, KPowersave se
70
LINUX USER • KPowersave
70 Número 16 W W W . L I N U X - M A G A Z I N E . E S
El hardware moderno viene con un
buen número de opciones para
economizar energía. KPowersave
[1] suministra una interfaz simple para la
administración de esas opciones de
energía en Linux.
Ayudas ÚtilesKPowersave requiere una versión actua-
lizada de KDE. También serán necesarias
unas cuantas aplicaciones asistentes. El
Hardware Abstraction Layer (HAL) [2]
facilita el acceso a los periféricos. La ver-
sión en la máquina deberá ser la 0.5.4 o
posterior. D-Bus, una tecnología que
usan los programas para comunicarse en
el Sistema X Window [3], debería ser la
versión 0.33 o superior, y también se
necesitará la versión 0.10.15 de
Powersave [4] o superior.
Si no se posee la versión actual de
OpenSuse o la distribución Linux ALT,
será necesario compilar KPowersave así
como las aplicaciones asistentes a partir
de sus fuente.
Se comienza cargando D-Bus en el
disco duro. Si una visita a [3] no ofrece
Un corte de energía cuesta con KPowersave
AHORRO DE ENERGIAUn corte de energía cuesta con KPowersave
AHORRO DE ENERGIA
KPowersave ofrece a los usuarios
de KDE una interfaz sencilla y fácil
para configurar los opciones de
administración de energía.
POR FRANK WIEDUWILT
71
KPowersave • LINUX USER
71Número 16W W W . L I N U X - M A G A Z I N E . E S
mete en la bandeja del sistema, mostran-
do una pila como icono, si el ordenador
portátil está funcionando con energía
proveniente de su batería, o un enchufe
si estamos conectados a una fuente de
energía externa. Puede hacerse un clic
sobre el icono para que aparezca un
menú con los controles del programa.
Si se hace clic sobre Set CPU Frecuency
Policy se nos permitirá elegir entre ejecu-
tar, respuesta dinámica a la carga actual o
ahorrar energía. Si se activa Set active
scheme, se permitirá preconfigurar políti-
cas para escenarios específicos en los que
se usará el ordenador.
La opción Performance reduce al míni-
mo las opciones de ahorro de energía.
Acoustic reduce el nivel de ruido del
ordenador mediante la introducción, tan
pronto como sea posible, del modo de
ahorro de energía. Presentation detiene la
desconexión de la pantalla a pesar de la
ausencia de salida de teclado
y ratón.
Por último, Powersave
reduce la velocidad de la CPU
y acorta los intervalos antes
de que las entradas al orde-
nador pasen a modo sus-
pendido. Para enviar al orde-
nador la orden de que pase al
modo suspensión a RAM o
suspensión a disco, es preciso
hacer clic sobre el elemento
del menú de KPowersave que
indique la acción.
AjustesAdemás de todas estas prácticas configu-
raciones, el programa también permite
definir un número determinado de
parámetros para una configuración de
usuario específica. Nuevamente, puede
accederse al diálogo a través del menú
contextual. Es preciso destacar que los
ajustes que se aplican a KPowersave
pasarán a afectar a otros programas, por
lo que habrá que andarse con cuidado.
La primera página del diálogo (Figura
1) permite modificar la configuración de
los esquemas que presenta KPowersave
cuando se hace clic sobre el icono (Figura
2). Puede establecerse el comportamien-
to del salvapantalla, DPMS, y auto sus-
penderlo individualmente para cada
ajuste.
También se dispone de la opción de
desconexión del salvapantalla e intro-
ducción del modo sleep, standby (espera)
y acortar los intervalos para
KPowersave. Es necesario usar
Autosuspend para especificar el
intervalo de inactividad antes de
que el programa disponga al
ordenador en modo suspendido.
La segunda etiqueta en el diá-
logo de configuración presenta las
opciones para los tiempos de
arranque del programa y para el
bloqueo de la pantalla. Puede
especificarse si el sistema debe
bloquear la pantalla cuando se
cierra la tapa. En este caso es
necesario introducir una con-
traseña para poder continuar
cuando abramos la tapa. Lock
screen with: permite especificar
qué programas usará KPowersave
para cerrar la pantalla.
El elemento Edit general black-
list ofrece un diálogo en el que se
pueden especificar programas que impi-
dan que la máquina pase a modo sus-
pendido. La herramienta ofrece una lista
de programas, incluyendo programas de
TV, ripeadores de CD y herramientas de
presentación. Es posible añadir a la lista
aplicaciones no-interrumpibles propias.
El botón Sound settings nos lleva hasta
un diálogo en el que se pueden asignarse
sonidos a eventos, tales como energía de
la batería baja.
ConclusionesEl programa me deja con algunas dudas.
Sobre OpenSuse, KPowersave cumple su
promesa de hacer más fácil a sus usuarios
el establecimiento de las opciones del
ahorro de energía mediante su asignación
a un simple botón. Sin embargo, sobre
distribuciones un poco más antiguas, la
compilación de la aplicación y de sus asis-
tentes, así como el hecho de correr el pro-
grama, presentan dificultades.
A pesar de todo, el software está bien
encaminado, pero Linux ofrece a sus
usuarios otras muchas opciones para la
administración del ahorro de energía.
Aparte de KPowersave, existe un módulo
Yast, una aplicación WindowMaker y un
applet Gkrellm. La buena noticia es que,
sea cual sea la distribución que se use,
seguro que encontraremos una he-
rramienta de ahorro de energía en alguna
parte. �
Figura 2: Elige el esquema y configura otros reque-
rimientos tales como la Política de Frecuencia de la
CPU a través de un menú de contexto de fácil manejo.
Figura 3: La opción Autostart arranca KPowersave
automáticamente.
Figura 1: Configuración de los esquemas de KPo-
wersave.
[1] KPowersave: http://freshmeat.net/
projects/kpowersave.
[2] HAL: htp//freedesktop.org/~david/dist/
[3] Dbus: http://hal.freedesktop.org/wiki/
Software_2fdbus
[4] Powersave: http://sourceforge.net/
projects/powersave/
RECURSOS
gen causadospor larotación. Para ello, en primer lugar sehace clic sobre la imagen y luego se arras-
tran las manijas a la parte
superior izquierda y a la inferior derechade la selección hasta que la imagen quedecubierta.
En nuestro ejemplo, no solamente eli-minamos el borde vacío sino que tambiéncortamos estos bordes para crear una sec-ción dorada (Figura 3). La sección doradaes un concepto artístico que ha estado enboga durante algún tiempo, pero simple-mente alude a que una imagen parecemás armoniosa cuando el motivo princi-pal ocupa el centro geométrico en vez delel centro óptico. Para encontrar esta sec-ción dorada divide cada lado de la imagenen dos secciones, de modo que la relación
entre las secciones mayor y máspequeña sea aproximadamente lamisma que la relación entre la sumade las dos secciones con respecto a lasección más grande. Ésta es una por-ción de aproximadamente 1.618:1. Elpunto de intersección constituye laposición perfecta para situar el moti-vo central de la imagen.
Correccióndel Color conun solo clicNuestra foto demuestra se encuen-tra ligeramenteinfraexpuesta y suescaneo ha hechoque los colores seanverdosos y azula-dos. Ésta no es unarepresentaciónapropiada de loscolores que existenen la vida real.
La herramienta Layer | Colors | Levels
elimina este tipo de imperfecciones. En elgráfico, los valores a la izquierda sonpara tonos oscuros mientras que los de laderecha lo son para los claros. Los
vacíos indican un defecto decolor que podría ser
causado
72
LINUX USER • Gimp
72 Número 16 W W W . L I N U X - M A G A Z I N E . E S
La imagen central de tu foto seencuentra un poco descentrada y laexposición no es exactamente la
que se esperaba. El flash originó algunosreflejos indeseados y los colores revelanun tiempo meteorológico no demasiadoapropiado (Figura 1). Pero lo cierto es quepasaste unas inolvidables vacaciones ypor eso desearías que tus fotos fueran tanperfectas como lo siguen siendo en tumemoria aquéllos días. Gimp puede ayu-darte a conseguir sacarle lo mejor de esasimperfectas fotos.
La Perspectiva CorrectaUno de los errores más obvios se debe aque el fotógrafo no sujeta la cámara co-rrectamente. Gimp puede corregirlo usan-do la herramienta rotación (Rotate the
layer or selection). Se mantiene como pre-determinado Transform layer para Affect:,y se selecciona Cubic (mejor) paraInterpolation para conservar todos losdatos posibles de la imagen.Seguidamente es preciso arrastrar el ratónpara rotar la imagen hasta que los már-genes estén derechos.
Después puede usarse laherramienta de cortepara eliminar losespacios en blan-co en los bor-des de laima-
Rescata tus instantáneas veraniegas con Gimp
FOTOSPERFECTASGimp te ayudará a mejorar la calidad de tus menos-que-perfectas imá-
genes digitales. POR PETER KREUSSEL
Figura 1: Luz
tenebrosa,
pérdida de
color y algunos
balanceos de
la cámara…
Gimp aún
puede rescatar
el momento. Figura 2: Después de procesada, la calidad de
la imagen se encuentra visiblemente mejo-
rada.
73
Gimp • LINUX USER
73Número 16W W W . L I N U X - M A G A Z I N E . E S
por el escáner, pero que igualmentepodría estar originado por el sensor de lacámara digital o también por una ilumi-nación pobre (Figura 4). En el Channel
inferior se seleccionan uno a conti-nuación del otro los colores rojo, verde yazul haciendo clic en el botón Auto cadavez para completar los huecos. El controlde la distribución de la luminosidadayuda a compensar la infraexposición.Para permitir que el control modifiquelos tres canales al mismo tiempo, es pre-ciso eliminar la selección del últimocanal de color que se tenía seleccionadoestableciendo Channel to Value.Posteriormente, para iluminar la imagen,se usa el ratón para arrastrar el controlde la luminosidad a la izquierda o seescribe un valor positivo mayor que 1 enel cuadro central y se hace clic en OK.Un valor inferior a 1 oscurecerá la ima-gen.
Nótese que esta herramienta tambiéneliminará tonos naturales, tales como elrojo de una puesta de sol. También afec-tarán a los resultados las áreas monocro-mas y la ausencia de sombreado. En estecaso, es preferible la herramienta Layer |
Colors | Color balance.
¡Que brille el Sol!Con los cambios que se han realizado hastael momento se ha conseguido que la fotosea más realista que la menos-que-perfectaoriginal. ¿Pero se desea realmente guardaruna grabación auténtica de un día de llu-via? La herramienta Layer | Colors| Hue-
Saturation permite incrementar los valoresde saturación, dando como resultado co-lores más intensos. Empujando los maticeshasta un rango negativo, puede incremen-tarse el espectro del rojo para conseguir co-lores más cálidos. Si se añade más lumi-nosidad, incluso la foto de un día lluvioso,parecerá que se ha tomado mientras brilla-ba el sol.
Los reflejos en la fotografía debidos alflash nunca son deseables. Gimp puedeeliminarlos pintando las áreas con datos deimagen de áreas vecinas. Para hacerlo, seselecciona el área que se desea eliminarusando la herramienta varita (Select con-
tiguous regions).En las opciones de herramientas, se
habilita Feather edges y se introduce unradio de 10. El campo Threshold: permiteespecificar un valor de umbral para espa-cios que la función debería tratar comosimilar. Un valor de 30 está bien para nues-tro ejemplo. A continuación se hace clic enel centro de la reflexión para seleccionar laregión que se desea eliminar. Si es nece-sario, se presionan las teclas [+] y [-] parahacer zoom de acercamiento y alejamiento.
Para volver a usar esta selección, puedeguardarse usando la opción del menú Select
| Save to channel. Se selecciona la he-rramienta de movimiento y se establece laopción Affect: en Transform selection. Setraslada la selección a un área con un colorsimilar, tal y como se muestra en la Figura5; puede crearse una copia presionando[Ctrl]+[C].
Si se hace [Ctrl]+[L] se abren las capasde diálogo y se crea una nueva. Para cam-biar el canal de diálogo se presiona Dialogs
| Channels), se hace clic en Selection mask,y se selecciona Channel to selection. Estodesplaza la selección hacia atrás, esto es, asu posición original.
En las capas de diálogo, se selecciona lacapa que se acaba de crear, y luego se pre-siona [Ctrl]+[V] para insertar el contenidodel portapapeles en la selección. Ahorapuede usarse el cursor para ajustar la opaci-dad para igualar la región circundante.Deshabilitando View | Show selection yView | Show layer boundary obtendremosuna visión mejor de la imagen.
La herramienta marca de pintura deberíadar mejores resultados con algunas imá-genes. Para experimentar, se selecciona unabrocha con un borde suave (Circle Fuzzy
permite elegir un tamaño adecuado), traslo cual se establece primero la opacidad al50% o menos. Se mantiene presionado[Ctrl] y se hace un clic derecho para decirlea Gimp que use los valores del color en estaregión. Luego pueden presionarse losbotones del ratón para pintar el área objetocon dichos valores.
Otros RetoquesA menudo las fotos están malogradasdebido a los ojos rojos que se originancuando el flash se refleja en ellos. Paraeliminar esos horribles ojos rojos se usa laherramienta varita para seleccionar la zonaafectada, se habilita Feather edges y seestablece un valor en torno a 10 dependien-do del tamaño del ojo con el que se esté tra-bajando.
Si se hace clic en esa región pero se selec-ciona con la herramienta varita una zonademasiado grande, se podría reducir lamisma con el valor Threshold; en cambio,si el área seleccionada es demasiadopequeña, sería preciso incrementar dichovalor. Con [Ctrl]+[Z] puede volverse a laimagen inicial si el experimento resultó fa-llido.
Cuando la selección se realiza a nuestrogusto, se elimina este efecto haciendo clicen Layer | Colors |Desaturate. Además, secambia la luminosidad en el diálogo Layer |
Colors | Levels moviendo el control de lumi-nosidad izquierdo a una distancia razo-nable a la derecha.
Retoque FácilLas técnicas discutidas en este artículomuestran cómo pueden mejorarse las fotosen unos cuantos pasos. Claro que, sola-mente uno mismo puede decidir la imagenmejorada que más se acerca a la memoriapersonal. �
Figura 3: La sección dorada es un impor-
tante principio de diseño.
Figura 5: Eliminación de un reflejo copiando
de un área diferente.
Figura 4: Herramienta de corrección de color
automática.
¿Cómo dice?La forma más sencilla de correr la
herramienta es teclear el comando
fortune, el cual ofrece como salida una
cita o un chiste (Figura 1). Los dichos
se toman de unos ficheros de bases de
datos que se incluyen en el programa.
Los ficheros de la base de datos
residen típicamente en la carpeta /usr/
share/fortune/. Mandriva almacena los
ficheros en /usr/share/games/fortunes.
Pero fortune -f permite encontrar de
manera rápida los temas que cubre su
versión de Fortune.
Si se desea restringir fortune a un
fichero de la base de datos de citas
único, simplemente será necesario
especificar el fichero como un
parámetro. Escribiendo
fortune startreck linuxcookie
Fortune restringirá sus citas a las
relativas a Star Trek (incluyendo su fecha
estelar) y diversos temas relativos a
Linux.
Prolijo y VersátilSi las bases de datos de citas de las que se
dispone no son de tu gusto, puede
conseguirse algo más apropiado en
Internet. El sitio especificado en [2] es un
buen lugar donde comenzar a buscar. Los
fans de los Simpsons estarán encantados
con los contenidos de [3]. Para nutrir a
Fortune con las citas de Bart Simpson se
descarga y desempaqueta el fichero, y
luego se arranca el servidor introduciendo
fortune U
./fortune-simpsons-chalk board U
/chalkboard
Si se pretende correr Fortune con
determinadas bases de datos que no
están incluidas por defecto, es una buena
idea crear un directorio separado para
cada base de datos: ~/.my_quotations,
por ejemplo. Luego podrá copiarse la
base de datos de citas y el fichero
acompañante .dat, por ejemplo
74
LINUX USER • Fortune
74 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Si se desea conocer el futuro sin
tener que esperar hasta tu próxima
comida china, ¿Por qué no
configuras tu ordenador personal Linux
para distribuir galletas de la “fortuna”
virtuales?
¿Qué Versión?La mayoría de las distribuciones Linux
incluyen una herramienta fortune-cookie
conocida como Fortune. El paquete para
Suse 9.3 se denomina fortune. Los
usuarios de Gentoo disponen del comando
emerge fortune-mod para añadir la pitonisa
virtual a su colección de software.
La herramienta original Fortune fue
escrita en 1986 por Ken Arnold y se ha
seguido desarrollando desde entonces. En
1995, Amy A. Lewis creó una versión
aumentada sobre la cual está basada
fortune-mod, y cuyo año de lanzamiento
fue el 2004.
Me centraré en la versión antigua, pero
pueden seguirse todos los ejemplos si la
distribución de que se dispone incluye el
paquete fortune-mod.
Galletitas de la suerte para Linux
LA PITONISA
El programa Fortune presenta un refrán o una broma cuando arrancas
una sesión en tu terminal. También puedes adjuntarlo a tu firma de
correo para alegrar tus mensajes. POR HAGEN HÖPFNER
Figura 1: Introducción del comando Fortune en
una ventana de terminal para que presente una
cita o chiste.
75
Fortune • LINUX USER
75Número 16W W W . L I N U X - M A G A Z I N E . E S
chalkboard y chalkboard.dat en el nuevo
directorio.
Para decirle a Fortune que analice esta
carpeta, simplemente hay que especificar
la ruta cuando llama al programa: fortune
~/.my-quotations. Si se desea añadir una
nueva base de datos de citas a los ficheros
existentes, simplemente hay que
especificar las dos rutas en la línea de
comandos. Pueden usarse porcentajes
para incrementar las probabilidades de
que Fortune seleccione una cita de tu
directorio favorito: fortune 90% ~/
.my_quotations 10% /usr/share/fortune
te asegurará que el 90% de todas las citas
proceden de tu propia colección. Pero es
preciso asegurarse de que los porcentajes
sumen un total de 100%, de lo contrario
Fortune lanzará un error.
Más RefranesSi se quiere añadir a Fortune una base de
datos que no fuera en Inglés, es
conveniente echar una ojeada a la
colección en [4]. Las páginas incluyen
una base de datos de Fortune en español
bajo fortune-es_1.24.tar.gz. Cuando se
desempaquetan los ficheros de las citas se
encontrarán localizados
en la carpeta Datfiles.
Sin embargo, el paquete
no incluye los ficheros
índice para las
colecciones, es decir, los
ficheros .dat no se
encuentran. Cuando se
llama a fortune/
provierbios.fortune, el
programa presenta un
mensaje de error en el
que dice que no puede
encontrar la base de
datos.
Afortunadamente, la
herramienta necesaria
para crear un índice,
strfile se instala automáticamente junto
con el programa Fortune. strfile analiza
los ficheros como bloques de texto
separados por simples signos de
porcentajes. Usa esta información para
crear un fichero con un índice para los
bloques de texto. La sintaxis para nuestro
ejemplo sería
/usr/sbin/strfile U
provierbios.fortune U
provierbios.fortune.dat
La herramienta strfile también es útil si se
desea crear una base de datos a partir de
un fichero con sus propias citas. Primero
es preciso crear un fichero de texto con
las citas y refranes requeridos. Hay que
seguir cada entrada en el fichero con una
línea que contenga un signo de
porcentaje, como en
La venganza es un plato queU
se sirve frío.
%
No por mucho madrugar, amaneceU
más temprano.
%
Luego se elige un nombre para almacenar
el fichero, como por ejemplo,
my_fortunes, y seguidamente se corre el
comando /usr/sbin/strfile my_fortunes
my_fortunes.dat para crear el índice.
Sin PreocupacionesAdemás de ofrecer un interesante
artilugio para la línea de comandos,
Fortune tiene otros usos. Por ejemplo,
podría añadirse una llamada a Fortune al
final del fichero ~/.bashrc para que el
programa te recibiera con un refrán
absurdo diferente cada vez que se abre
una ventana de terminal.
Fortune también es útil en combinación
con un salvapantalla. En KDE puede
combinarse con el salvapantalla
Phosphor, por ejemplo (Figura 2). Si no se
usa KDE, el comando xlock-mode-
marquee ofrecerá un salvapantalla con
muchas variaciones.
Fortune es también útil como generador
de firmas para correo. Por ejemplo,
Kontact tiene una opción que permite
configurar una firma para cada ID de
correo en Settings/ Configure Kmail. Para
permitirle al programa que añada una cita
o refrán al correo electrónico, es preciso
hacer doble clic en la identidad y en la
ventana Edit Identity seleccionar la
etiqueta Signature. Hay que marcar el
cuadro Enable Signature en la etiqueta
Signature, posteriormente hay que
seleccionar Output of command en el
menú inferior Obtain Signature text from:
y hay que introducir el comando Fortune
en el cuadro etiquetado Specify command
(Figura 3).
Es buena idea correr Fortune con las
opciones -s -n 320 para las firmas de
correo. -s le dice a Fortune que mantenga
salidas “short” (esto es, cortas), mientras
que el comando -n 320 le dice que
considere todas las citas de menos de 320
caracteres como cortas.
Otros programas de correo, tales como
Sylpheed también disponen de opciones
para el uso de citas Fortune como firmas.
Pero no se preocupe si sus programas no
disponen de esta opción. Fácilmente
puede escribirse un script o establecer un
cron para que invoque a Fortune a
intervalos regulares y escriba la salida del
comando al fichero ~/.signature. Luego
puede configurar el programa de correo
para que use los contenidos del fichero
como firma. �
Figura 2: Algunos salvapantallas como Phosphor de KDE
pueden integrar Fortune.
Figura 3: Habilitando Fortune como un gene-
rador de firma en las configuraciones de identi-
dad de Kontact.
[1] fortune-mod: http://www.redellipse.
net/code/fortune
[2] Bases de datos de Fortune en Fresh-
meat: http://freshmeat.net/browse/
895
[3] Citas de Bart Simpson: http://www.
splitbrain.org/Fortunes/simpsons/
fortune-simpsons-chalk-board.tgz
[4] Fortunes de Debian: http://packages.
debian.org/unstable/games/
RECURSOS
76
LINUX USER • Educación
76 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Squeak rompe nuestros esquemas.
Por un lado es visualmente dis-
tinto, y además eso de poner a
los alumnos a programar… Squeak parte
de la tan citada premisa de que se
aprende haciendo, y la concreta con la
idea de que los ordenadores son las he-
rramientas que permiten un nivel de
visualidad y de realismo de las simula-
ciones y modelos que no se podían
alcanzar hasta ahora. Su uso conlleva un
cambio en la forma de dar clase.
También el convencimiento de que parte
de la evolución del mundo de la infor-
mática ha seguido un camino equivoca-
do, que ha convertido a los usuarios en
clientes a los que hay que devolver el
control del ordenador y de su proceso de
aprendizaje. Y que el esfuerzo que impli-
ca para los profesores está justificado y
es necesario. Lo escribe Alan Kay con
todas sus letras: «Virtualmente todas las
dificultades de aprendizaje a las que se
enfrentan los niños están causadas por la
incapacidad de los adultos para estable-
cer entornos de aprendizaje razonables
para ellos. El principal obstáculo para la
mejora de la educación de los niños, con
o sin ordenadores, es la imaginación
extremadamente pobre de la mayoría de
los adultos»[1]. ¿Quién tiene miedo a un
desafío intelectual? Nosotros no, ¿ver-
dad?
Squeak,primeramirada¿Qué es
Squeak?[2] Fácil,
el ruido que hace
un ratón inglés[3].
Vale vale, muy
ingenioso, eso
explica la masco-
ta. ¿Y el Squeak de
nuestros orde-
nadores, el Squeak
de la figura 1?
Miremos por
partes. Desde determinado punto de
vista es un entorno creado con un
lenguaje de programación orientado a
objetos, Smalltalk, que permite al
usuario la manipulación de los objetos
Smalltalk[4]. El paciente lector estará
pensando: ya ha dado la explicación
rara, a ver si viene ahora la explicación
sencilla. Vamos a intentarlo: imaginen el
momento en que escribo, en un rectán-
gulo blanco incluido en una ventana con
unos iconos (Nuevo, Abrir, Guardar…) y
unos widgets (la barra de desplazamien-
to, la barra de estado, pestañas…), este
editor ha sido creado con un lenguaje
que utiliza clases y objetos para dibujar
la ventana, los controles, las operaciones
que puedo realizar, borrar palabras,
seleccionar fragmentos de texto, cam-
biarlos de sitio (los métodos). ¿Y si
dejamos esos objetos vivos para que el
usuario pueda transformarlos? Esa es
una de las cosas que es Squeak, el aspec-
to técnico.
Squeak es también una máquina vir-
tual como la de java, una capa situada
por encima del sistema operativo, y por
tanto independiente de él: hay máquinas
virtuales Squeak para cualquier sistema
operativo. Intenta ser el sistema operati-
vo que usaríamos si no estuviéramos
anclados en tecnologías de hace treinta
años (repito ideas que he oído a
Todos escribimos sobre Squeak. Claro, uno también. Tenemos la idea de que Squeak es una aplicación que
puede ayudar a cambiar la forma de enfocar la enseñanza y el aprendizaje, pero nos cuesta explicarnos y
ser convincentes. Vamos a intentarlo. POR JUAN RAFAEL FERNÁNDEZ GARCÍA
Todos escribimos sobre Squeak. Claro, uno también. Tenemos la idea de que Squeak es una aplicación que
puede ayudar a cambiar la forma de enfocar la enseñanza y el aprendizaje, pero nos cuesta explicarnos y
ser convincentes. Vamos a intentarlo. POR JUAN RAFAEL FERNÁNDEZ GARCÍA
Figura 1:Esto es Squeak.
¿La herramienta que hará la revolución educativa?
SQUEAK¿La herramienta que hará la revolución educativa?
SQUEAK
77
Educación • LINUX USER
77Número 16W W W . L I N U X - M A G A Z I N E . E S
Francisco de Urquijo y a Diego Gómez
Deck). Pretende por tanto incluir todo lo
que de utilidad proporciona un sistema
operativo actual: editor de documentos y
presentaciones multimedia (quizás un
vistazo a la figura 2 nos puede orientar),
reproductor de sonido, video, sinteti-
zador de voz, navegador web, cliente de
correo…
Examinemos ahora con más detalle la
figura 1: a primera vista es un programa
que ocupa toda la pantalla, de colores
inusualmente vivos, y pequeñas ven-
tanas dentro. Lo que nosotros los profe-
sores y alumnos vemos de Squeak es
sólo una capa superficial, compuesta
fundamentalmente por eToys y Ensayos
activos. Leemos en Small-land[5]: «Los
eToys son ambientes de computadora
que ayudan a las personas a aprender
sobre sus ideas construyendo y jugando
con ellos. Los eToys ayudan a un usuario
(usualmente un niño) a crear un grato y
agradable modelo computacional de la
idea y provee de pistas sobre cómo la
idea puede ser ampliada». Un Ensayo
activo (Active Essay) «es un nuevo tipo
de medio literario que combina un
ensayo escrito, con simulaciones, y con
los programas de computación que
hacen que todo trabaje en orden para
proveer una profunda explicación de un
sistema dinámico. El lector trabaja direc-
tamente sobre diferentes representa-
ciones de los conceptos en discusión.
Jugando con las simulaciones y el códi-
go, el lector obtiene experiencia concreta
sobre el tópico».
Los profesores y alumnos trabajan con
estos tipos de objetos de alto nivel, y
pueden utilizar guiones para programar
visualmente el comportamiento de los
objetos. No se
espera de nosotros
que buceemos
hasta el código
Smalltalk subya-
cente (tampoco se
nos prohíbe ni se
nos oculta, las
fuentes están ahí
siempre).
Podemos llegar a
la conclusión de
que Squeak no es
un programa, es
un entorno espe-
cial donde se eje-
cutan programas
con una intención fundamentalmente
educativa; Squeak es un mundo para
crear mundos.
Instalar Squeak¿Cómo conseguir Squeak? Para un
debianita la respuesta semiautomática
sería: aptitude install squeak. Pero no es
tan sencillo, porque ciertos problemas
con la licencia (ver el cuadro 1) han
impedido que Squeak entre en los repos-
itorios de Debian (o Debian-edu/
Skolelinux). Sin embargo, sí hay paque-
tes instalables. Por un lado los de la
Fundación Squeak, basta añadir la línea
deb http://box2.U
squeakfoundation.org/files/U
debian/ unstable main
y obtendremos la versión 3.8a en inglés.
Podemos además añadir otra línea,
deb http://debian.ofset.orgU
sarge main
que nos proporcionará la imagen Freeduc
creada por el grupo de desarrollo francó-
fono[6] (figura 3). Pero si queremos una
versión española a la última es preferible
utilizar
deb http://www.linex.org/U
sources/linex/debian/ sargeU
main contrib linex non-free
que nos proporciona las fuentes, imágenes
y plugins para el navegador (versión edu-
carex-squeak_20060106-1 en el momento
de escribir estas líneas). Sugiero instalar
también los paquetes algebra-squeak y tusi-
tala; ya veremos más adelante su interés.
¿Fuentes, imágenes, plugins? Squeak
se presenta bajo la forma de varios com-
ponentes:
1. Un grupo de tres ficheros que repre-
sentan el conjunto del entorno y de los
programas en un estado dado. Para ser
más exactos:
1a.- uno o varios ficheros imagen
(.image), capturas de una sesión com-
pleta Squeak en código bytecode (estado
optimizado del código Smalltalk),
1b.- un fichero con las modificaciones
que un usuario ha efectuado sobre la
imagen (.changes, por ejemplo con ac-
tualizaciones, nuevos proyectos, etc.) y
1c.- un fichero con el código fuente
original (.sources).
2. Una máquina virtual (VM), un eje-
cutable propio del sistema operativo
huésped, que puede interpretar ficheros
imagen. Y un plugin para poder ejecutar
el código en remoto desde un navegador
(la figura 4 nos muestra un recurso lla-
mado simstory ejecutado desde el nave-
gador).
3. Pero ahí no queda la cosa. Desde la
versión 3.7[7] es posible utilizar el
Cargador de Paquetes SqueakMap (figu-
ra 5) para descargar e instalar paquetes
desde internet.
4. Y lo más importante: podemos
guardar nuestros proyectos (ficheros
.pr), exportarlos e importarlos de reposi-
torios (figura 6).
Si hemos instalado varias imágenes
(en ~/.squeak/) al lanzar la máquina
virtual se nos ofrecerá la posibilidad de
seleccionar qué imagen deseamos ejecu-
tar (figura 7).
Los duros hechosTodos los conocemos: esos alumnos
desertores viscerales de la escuela que
luego son capaces de repetir sin pes-
tañear las alineaciones completas de
todos los clubes de primera y segunda
división o el plano completo de los
reinos del Señor de los anillos. Alumnos
a los que no se les saca una frase en
inglés y luego son capaces de desen-
trañar el sentido de un abstruso texto en
imitación de inglés medieval para avan-
zar en el juego de rol. O robar con-
traseñas del messenger (bueno, eso ya
no tiene mucho mérito). Anotemos la
forma en que plantea el problema
Papert: «al intentar enseñar a los niños lo
que los adultos quieren que aprendan,
¿utiliza la escuela los métodos a los que
Figura 2: Jugando con texto.
var al extremo la tendencia generalizada
a repetir las formas de la enseñanza
tradicional con nuevas herramientas.
Más: qué bonitas son algunas anima-
ciones, esas páginas web con profusión
de flash… nosotros nunca llegaremos a
hacer cosas de ese nivel. Menos mal que
se pueden alquilar, y pagaremos por el
uso de repositorios llenos de recursos
cómodos de utilizar. Qué escuela más
moderna será aquella en la que los orde-
nadores saluden «hola, Juanito», hoy te
toca realizar la tarea 33 del nivel 5, todo
muy multimedia y estándar IMS LD,
usabilizado y afectivizado con la garan-
tía de la empresa X.
El razonamientoAprendizaje constructivo. Todos, todos
los artículos de pedagogía empiezan así.
Con la lista de santos padres, Piaget,
Ausubel, Bruner. Y tras el paso al ciber-
mundo, Papert y Kay. No sé si la peda-
gogía del siglo XX algún día llegará a ser
una ciencia y si será bueno seguir tro-
ceando conocimientos cada vez más pro-
fundos acerca de casi nada, pero la labor
de un profesor de secundaria que escribe
artículos es picotear, buscar una perspec-
tiva y hablar todo lo claro que sea posi-
ble.
Cuando una hipótesis científica se
convierte en retórica pedagógica hay que
repensarla. Volver al principio, plantarse
la cuestión del modo más sencillo: los
filósofos saben que todo conocimiento es
construcción al menos desde Descartes
(por no aventurarme a asegurar como
hacía el otro que todo está en Platón). Es
curioso el hilo de continuidad que
naturalmente acuden los humanos cuan-
do aprenden en situaciones no rela-
cionadas con la escuela?»[8].
Otro hecho: qué absurdos son los
pasatiempos. ¿Qué sentido tiene romper
una foto en fragmentos para que otra
persona recomponga la frase original?
¿qué sentido tiene cambiar el orden de
unas palabras en una frase, o borrar una
de cada x palabras, para luego no llegar
más allá que a la frase original? Qué
absurdos son algunos ejercicios y qué
inútiles son algunos exámenes.
Otra: confieso que he vivido, que he
visto flotas enteras arder en galaxias…
digo… he visto justificar como trabajo
con los ordenadores hacer a los alumnos
copiar con un editor de texto los ejerci-
cios del libro. Todos nos escandalizamos,
pero lo que hace este profesor es sólo lle-
LINUX USER • Educación
78 Número 16 W W W . L I N U X - M A G A Z I N E . E S
No es que el de la licencia de Squeak
(conocida como Squeak-L) sea un tema
recurrente, es que es un tópico perma-
nente que ha aparecido en las listas de sl-
educación (diciembre de
2003),Skolelinux/Debian-edu (marzo de
2004), Debian-legal (abril 2004)…
El texto en inglés de la licencia está en
http://squeak.org/SqueakLicense/ ,y la
licencia y sus problemas se comentan en
http://minnow.cc.gatech.edu/squeak/159.
Para comprender las dificultades que
implica, primero hay que familiarizarse
con la historia de Squeak, para lo que es
útil visitar http://minnow.cc.gatech.edu/
squeak/389 (para la prehistoria bien vale
http://gagne.homedns.org/~tgagne/
contrib/EarlyHistoryST.html).
«Squeak comenzó de forma muy sen-
cilla, a partir de las necesidades de un
grupo de investigación en Apple.
Queríamos que un sistema tan expresivo
e inmediato como Smalltalk pudiera con-
seguir varios objetivos en cuanto a las
aplicaciones desarrolladas: prototipos de
software educativo, experimentos con la
interfaz de usuario y (seamos honestos)
otro intento en el tema del Dynabook»
(su primer proyecto de ordenador per-
sonal, ver http://swiki.agro.uba.ar/
small_land/64; la cita procede de http://
minnow.cc.gatech.edu/squeak/158).
Con el paso del tiempo Apple se desin-
teresó por el proyecto, y Kay y su equipo
pasaron a trabajar para la Disney desa-
rrollando la aplicación; actualmente el
trabajo se realiza entre Hewlett Packard y
el Instituto Viewpoints Research (http://
www.viewpointsresearch.org/). Pero el
copyright sigue perteneciendo a una
empresa a la que no le interesa, y que
por tanto, no va a modificar.
Escribe el departamento legal de la sec-
ción europea de Apple a Knut Yrvin (de
Skolelinux) en marzo de 2004: «Squeak
es un producto obsoleto [sic] que ya no
desarrolla Apple, y por tanto, no es
factible que reexaminemos o modifique-
mos los términos de la licencia usada
por Squeak. No obstante, la comunidad
de Squeak de los Estados Unidos está
explorando la posibilidad de usar la
opción de relicenciamiento contemplada
en la licencia de Squeak para permitir
que una tercera parte acepte la cláusula
de indemnización, y permitir así a
proyectos del estilo de Debian incluir
Squeak con una licencia derivada (down-
stream» ¿se traduce aquí por derivada?,
no soy abogado).
Ese es el primer problema, acom-
pañado por el hecho de que Smalltalk y
el origen de Squeak datan de los años
setenta y por tanto son anteriores y
ajenos al origen del movimiento del
software libre. Otro aspecto que sólo
puede interesarnos por razones históri-
cas es el los tipos de letras empleados.
Los tipos propiedad de Apple hace
tiempo que dejaron de utilizarse y por
lo tanto el problema ya no existe.
Como señalaba Gregorio Robles en el
2003 «El mayor problema de la licencia
de Squeak está en la cláusula de in-
demnización. Esta cláusula hace que,
por ejemplo, Debian no lo incluya en su
distribución: http://lists.debian.org/
debian-legal/2001/debian-legal-200110/
msg00028.html» (para el examen en la
lista de discusión legal de Debian ver
también http://lists.debian.org/
debian-legal-0404/msg00160.html y
http://lists.debian.org/
debian-legal-0404/msg00242.html).
¿Qué dice la famosa cláusula 5? Que
quien acepte la licencia deberá indem-
nizar a Apple por los daños, respons-
abilidades, costes, etc. que resulten de
reclamaciones efectuadas por terceras
partes contra Apple que se deriven del
uso, distribución o modificación del
software de Squeak por el licenciatario
(y potencialmente sus sublicenciata-
rios). Que si un alumno crea un mundo
que, de alguna manera ocasiona per-
juicios contra alguien, y eso acaba en
una reclamación contra Apple, el que
deberá asumir los costes es quien haya
aceptado la licencia y haya distribuido
el código de Squeak.
La cuestión que discutimos no es si Alan
Kay y los desarrolladores de Squeak
sienten o no que su programa es libre,
que podemos estar convencidos de que
lo sienten, ni es la probabilidad de la
reclamación, sino si la cláusula hace o
no libre la aplicación. Y creo que
podemos concluir que no es libre en el
sentido del software libre de la FSF y de
Debian. Squeak es casi-libre. Que esto
implique que no se pueda o deba utilizar
en nuestras clases es otro debate; claro
que si escribo sobre Squeak mi opinión
es fácilmente deducible.
Cuadro 1: La licencia de Squeak
podemos establecer entre geómetras, y si
no me creen, lean esta cita: «Toda autén-
tica definición científica es genética: no
se limita a copiar un objeto existente,
sino que pone de manifiesto las leyes de
su propia formación. Así, por ejemplo,
no basta con explicar la circunferencia
como una figura en la que todos los pun-
tos se hallan situados a la misma distan-
cia del centro común, pues lo que con
ello designamos no es más que una
cualidad concreta de la circunferencia,
que no constituye, ni mucho menos, su
esencia conceptual. Para captar ésta es
necesario indicar la regla de la construc-
ción de la circunferencia, explicarla, por
tanto, como aquella figura geométrica
que nace mediante el movimiento de
rotación de una línea recta en torno a
uno de sus dos puntos extremos, consi-
derado como fijo».
Dejo para la nota a pie de artículo la
respuesta a la pregunta de a quién
corresponde la cita[9]. El texto lo que me
sugiere intensamente es que el orde-
nador es la máquina que buscaba el filó-
sofo, la herramienta que va a conseguir
que los niños comprendan en toda su
dimensión qué es una circunferencia. El
texto está muy cerca incluso en el
lenguaje de la evidencia de las ideas
poderosas de Papert: devolverle su
cuerpo a las matemáticas, el movimien-
to de la tortuga crea la circunferencia.
La promesaHemos estado hablando de lo que es
Squeak en el sentido de cómo está
hecho, no de lo que pretende ser. ¿Para
qué se desarrolla Squeak?
Papert y Kay[10] parten de una crítica
a las formas de enseñanza de la escuela
tradicional y al uso que se ha hecho de la
tecnología en las aulas. Debemos inten-
tar resumir la crítica, porque es posible
-sólo posible, que nadie se enfade- que
estemos decidiendo si se van a usar rin-
cones de trabajo en nuestras aulas o un
laboratorio de informática, sin la nece-
saria reflexión previa.
¿Cuántos ordenadores? En primer
lugar nadie cree en la magia: la inversión
económica, la simple presencia de los
ordenadores, no cambia la forma de
enseñanza/aprendizaje. El laboratorio de
informática constituye la reacción de la
escuela tradicional ante la presencia de
los ordenadores: «en lugar de atajar y
desafiar así la misma idea de fronteras
entre materias, el ordenador se convertía
en una nueva materia».
Una de las ideas clave se puede
resumir en el siguiente razonamiento de
Kay: tendemos a confundir el piano con
la música. Obligamos a los alumnos a
«dar piano» antes de que amen la músi-
ca, con la consecuencia de que fre-
cuentemente se alejan de la música para
siempre. El ordenador es el mejor piano
inventado, pero sin despertar el deseo de
aprender y de expresarse, la exigencia de
«dar informática» no causará más que
aturdimiento.
Repitámonos la pregunta: ¿Tiene sen-
tido una escuela en la que haya un má-
Educación • LINUX USER
79Número 16W W W . L I N U X - M A G A Z I N E . E S
Figura 3: Imagen de Squeak en francés. Figura 4: El plugin en acción.
Figura 5: Buscando paquetes con SqueakMap. Figura 6: Importando un proyecto.
desarrollo. Pero nos queda responder a
la pregunta clave: ¿cumple Squeak su
promesa, responde o se acerca a respon-
der a las ambiciosas expectativas que
despierta? Squeak pretende, no que los
alumnos aprendan a programar, sino que
los alumnos programen para aprender,
¿es esto absurdo? ¿o implica un esfuerzo
que escapa a las posibilidades de
nosotros los profesores? Este será el tema
del siguiente número. Nos vemos. �
LINUX USER • Educación
80 Número 16 W W W . L I N U X - M A G A Z I N E . E S
[1] Alan Kay, entrevistado por Lars Kongshem, FACE to FACE: Alan Kay Still waiting for
the Revoultion (http://www.squeakland.org/school/HTML/essays/face_to_face.html).
No vamos a explicar aquí quienes son Kay y Papert, para eso están google, la
wikipedia y el resto de la documentación.
[2] De pronto Squeak se ha convertido en una utilidad bien documentada incluso en
castellano, y con una rica comunidad hispana de desarrolladores y usuarios, galerías
de recursos, etc. Por supuesto hay que comenzar citando Small-Land (http://www.
small-land.org/), el núcleo argentino donde desde hace años se trabaja en Squeak. Y
las páginas sobre Squeak consecuencia de la apuesta de la administración extremeña
por el software educativo libre, y en concreto por este entorno: Extremadura y Small-
Land (http://squeak.linex.org/), la bitácora dedicada (http://squeak.blog.com/) o
Squeakpolis (http://squeak.educarex.es/Squeakpolis, inciativa de Antonio Moreno),
donde podemos encontrar un listado más exhaustivo de enlaces, artículos, proyec-
tos…
Hay también libros completos libres: Ideas poderosas en la clase, traducción al español
del libro «Powerful Ideas in the Classroom», de B.J. Allen-Conn y Kim Rose(http://swiki.
agro.uba.ar/small_land/uploads/193/Libro_Completo.pdf); un CD descargable con libro
en pdf, proyectos y una imagen, creado por un equipo de docentes de Badajoz (Fueyo
Díaz, Pizarro Galán, Prudencio Conejo, Roldán Cuerpo, Torres Escobar): http://www.
small-land.org/libro-badajoz/cdrom.tar.gz; finalmente el libro editado por Editlin Squeak:
un mundo para aprender, de los mismos autores más Paniagua Navarro: se pueden
bajar PDFs con los borradores de los capítulos desde http://www.small-land.org/
SqueakUnMundoParaAprender.
[3] En http://minnow.cc.gatech.edu/squeak/2381 tenemos una creíble explicación del
nombre, según mensaje de Alan Kay a la lista de distribución de Squeak el 14 de
marzo de 2002: «Era el nombre de la carpeta de mi Mac, en la que a principios del 96
solía guardar los nuevos ficheros de sistema para tenerlos separados de los otros
Smalltalks que había en mi máquina. Disney ya nos estaba intentando atraer por
aquel entonces y pensé que, pasara lo que pasara, habría algún ratón en el futuro de
este sistema. Un mes o dos después surgió la cuestión del nombre para el sistema en
una reunión del grupo y dije que había estado usando el nombre de Squeak. A todo el
mundo le gustó y así se quedó».
[4] «Squeak es una implementación completa del lenguaje de programación y entorno
Smalltalk basada en el sistema original Samlltalk-80 (y altamente compatible con él)»
(http://www.squeakvm.org/unix/).
[5] Sobre los eToys, http://swiki.agro.uba.ar/small_land/18. Sobre Ensayos activos, http://
swiki.agro.uba.ar/small_land/19.
[6] http://community.ofset.org/wiki/Squeak.
[7] http://minnow.cc.gatech.edu/squeak/SqueakMap.
[8] Seymour Papert, La máquina de los niños (1993), pg. 19. de la traducción española,
ed. Paidós.
[9] ¡Spinoza, Tractatus de intellectus emmendatione, parágrafos 50ss., parafraseado en
lenguaje kantiano por Ernst Cassirer en El problema del conocimiento, tomo II, pg.
25ss. de la edición de Fondo de Cultura Económica!
[10] Para este resumen hemos utilizado citas de Papert, ib., y de Kay, http://www.
squeakland.org/school/HTML/essays/essays.html.
RECURSOS
ximo de tres lápices por aula o se
guarden encerrados en una habitación
especial que se visita esporádicamente?
¿Cuántos ordenadores son necesarios
para que cambie la forma de dar clase?
Los que permitan (1) la disponibilidad
del ordenador la mayor parte del tiem-
po y (2) el desarrollo del sentimiento
de identidad intelectual. En eso insiste
Kay: «puedes poner un piano en cada
clase, y eso no te dará una cultura musi-
cal desarrollada, porque la cultura
musical está en las personas (…) Lo
importante aquí es que la música no es
el piano. Y el conocimiento (…) no está
en el ordenador. El ordenador no es más
que un instrumento cuya música son
las ideas».
¿Para qué Squeak? Escuchemos a
Papert: «Me fijé el objetivo de luchar
para crear un entorno en el cual todos
los niños -cualquiera que fuese su cul-
tura, género y personalidad- pudieran
aprender álgebra y geometría, ortografía
e historia de una manera más parecida
al aprendizaje informal del niño no
escolarizado o del niño excepcional que
al proceso educativo que se sigue en las
escuelas».
Como señalan Allen-Conn y Rose en
su Ideas poderosas, Papert pensó que el
estudio de ideas poderosas a través del
ordenador, además de la ayuda de otras
actividades, podrá servirle a los niños
como instrumento para hacer frente a
sus intuiciones. Pensó que los orde-
nadores podían ser de ayuda para los
más jóvenes, al permitirles exteriorizar
sus expectativas intuitivas usando
materiales computacionales tales como
simulaciones y modelos. De esta
manera podrían ser capaces de recon-
siderar o remodelar su conocimiento
intuitivo.
Y en el próximo número…Hemos empezado a examinar qué es
Squeak y las razones que explican su
Figura 7: Selección de la imagen que ejecutar.
Juan Rafael Fernández García es
socio de OFSET, profesor de edu-
cación secundaria y tiene una
larga experiencia en la traducción
y documentación del software
libre. Ha sido coordinador de uno
de los Centros que participan en
la experiencia andaluza de inte-
grar las TIC en la educación y
actualmente trabaja como asesor
de formación del profesorado.
EL AUTOR
Los correctores de ortografía enpaquetes oficimáticos y enprogramas de correo ayudan a
encontrar errores y sugieren ortografíasalternativas. Ispell y Aspell corrigen losficheros en la línea de comandos yaunque no pueden reemplazar a un buendiccionario, son unos ayudantesextremadamente confiables.
Ispell es una aplicación madura que haestado durante varios años en distintosderivados Unix. El proyecto GNUintrodujo a Aspell como un sucesorpotencial. Éste último posee diccionarios
para varias lenguas, y puede manejarUTF-8 (a diferencia de Ispell).
Este artículo mostrará cómo corregirdesde la línea de comandos. Describiréalgunos consejos y trucos, y demostrarécómo invocar tanto a Ispell como aAspell mientras trabajo con los editoresVim y (X)Emacs.
Simplemente IspellIspell corre interactivamente en la líneade comandos. Si el corrector de ortografíaencuentra un error, sugiere una ortografíaalternativa. Si se decide no aceptar la
sugerencia puede añadirse la palabra deldiccionario personal o ignorar el términoen el resto del documento.
La sintaxis simple del comando es
Ispell nombrefichero
Se debería correr Ispell con la opción -d(de “dictionary”, esto es, de diccionario)dependiendo del diccionario que senecesite. Una rápida ojeada al directorio/usr/lib/ispell (Figura 1) nos dice losdiccionarios que se encuentrandisponibles en nuestro sistema. Puedenverse algunos de ellos con el sufijo .aff
suffix. Ispell los usa para administrarguiones y caracteres en varias lenguas.
81
Línea de comandos: lspell • LINUX USER
81Número 16W W W . L I N U X - M A G A Z I N E . E S
Correctores de ortografía de la línea de comandos: Ispell y Aspell
LECCION DEORTOGRAFIA
Nadie está a salvo de gazapos y de los enredos con palabras.
Correctores de ortografía como Ispell y Aspell se encargan de
mantener las letras en su lugar correcto. POR HEIKE JURZIK
El Final de la HistoriaIspell para su ejecución después decomprobar todas las palabras, peroalternativamente puede presionarse [Q]para abandonar la comprobación ydescartar cualquier cambio. Tepreguntará para determinar si realmentese quieren descartar los cambios. Puedepresionarse bien [Y] para salir delprograma o bien [N] para continuar conla comprobación. Otra alternativa espresionar [X] para salir de Ispell. En estecaso se almacena cualquier cambio quese haya hecho.
Creando BackupsIspell ofrece una opción segura cuandose especifica el parámetro -b en elmomento de arrancar el programa. Estole dice al corrector que cree una copia derespaldo para cada fichero que chequee.Las copias de respaldo son identificablesmediante un sufijo .bak o ~ y contienenel texto original.
Muchas distribuciones tienen versionesde Ispell que crean respaldo sin que, dehecho, sea preciso especificar la opciónpara crear una copia de seguridad. A veceseste es el comportamiento especificado pordefecto por el mantenedor del paquete. Sise prefiere no crear copias de seguridad,puede deshabilitarse esta característicaestableciendo el parámetro -x.
Otros FormatosIspell puede comprobar la ortografía de losformatos HTML y TeX/LaTeX además delos textos de ficheros. El corrector deortografía identifica automáticamentecualquier fichero con el sufijo .html o .htm
como un fichero HTML. En este caso, elcorrector de ortografía ignora cualquieretiqueta HTML que descubra durante lasesión de comprobación. La únicaexcepción es el atributo ALT, el cual puedeser usado para definir texto alternativopara una imagen embebida.
Si el sufijo del fichero está perdido o enmayúsculas (.HTM), puede decirse a Ispellque el fichero es HTML cuando arranca elprograma:
ispell -H file.HTM
Lo mismo puede aplicarse para los ficherosXML y SGML: pasar la opción -H alprograma cuando arranca Ispell paradecirle al corrector de ortografía que ignorelas etiquetas cuando esté comprobando laortografía. (Algunas distribuciones, talescomo Debian, usan -h, en minúscula paraesta opción, mientras que otros, comoSuse, usan una mayúscula -H.)
Ispell identifica ficheros TeX/LaTeXmediante referencia al sufijo del fichero.tex y no comprueba instrucciones deformateado, sin embargo, el textoencerrado entre llaves ({}) sí escomprobado. El corrector de ortografíaidentifica comentarios, los cuales seindican con el carácter porcentaje (%) enficheros TeX-/LaTeX, y los comprueba enbusca de errores.
La Alternativa: AspellAspell es un corrector de ortografíaalternativo para la línea de comandos. Éstees el programa designado como sucesor deIspell, y ofrece muchos másfuncionalidades. Por ejemplo, la versionesactuales (0.60.x) soportan el juego decaracteres UTF-8. La sintaxis genérica escomo sigue:
Algunas distribuciones Linux usannombres diferentes para los diccionarios.Para asegurarse que los caracteresespeciales están correctamente codificados,pueden definirse un conjunto de caracteresmediante la opción -T.
No es preciso especificar el diccionario nilas opciones del conjunto de caracterescada vez que se corre el programa. En vezde ello pueden añadirse entradasapropiadas al fichero de configuración Bash~/.bashrc en el directorio actual:
export U
DICTIONARY=nombre diccionario
export U
CHARSET=juego caracteres
Luego se reanaliza el fichero deconfiguración usando el siguientecomando:
source ~/.bashrc
Interacción RequeridaIspell emplea la línea superior parapresentar palabras desconocidas. Si elcorrector de ortografía encuentra palabrassimilares en el diccionario, ofrece una listaenumerada de palabras alternativas (Figura2). Para aceptar una de esas sugerencias,simplemente se presiona la tecla delnúmero que aparece con la palabra en lalista enumerada, de esta forma se le dice aIspell que sustituya la palabra.
Si no se quiere sustituir la palabra queIspell piensa que es errónea, se puede obien presionar la tecla espaciadora paraignorar la palabra una vez, presionar [A]para ignorar la palabra para el resto de lasesión Ispell, o presionar [I] paraalmacenar la palabra permanentemente.En el último caso, Ispell añade el término aldiccionario personal.
La lista personal de palabras sealmacena como fichero oculto en tudirectorio home. El nombre del fichero secompone de .ispell_ y el nombre deldiccionario que se usó. Por ejemplo, si seestuvo trabajando con el diccionariongerman, la lista de la palabra personalsería .ispell_ngerman.
Si Ispell descubre un error pero no ofreceuna alternativa (razonable), puedepresionarse [R] (de “reeemplazar”) yescribir los cambios en la línea decomandos. Ispell sustituye la palabra entodas las partes del texto.
LINUX USER • Línea de comandos: Ispell
82 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Ispell y Aspell corren de fondo en
muchas aplicaciones KDE y Gnome,
donde comprobarán la ortografía con
un sólo clic. Aunque es muy fácil con-
vencer a Vim y (X)Emacs para que
cooperen.
Una única línea en el fichero de confi-
guración de Vim (~/.vimrc) te ofrece
una macro. Para mapear una tecla de
función [F10] al corrector de ortografía,
es preciso añadir para Ispell la sigu-
iente línea al fichero:
map <F10> :w!<CR>: U
!ispell %<CR>:e! %<CR>
Si se prefiere Aspell, en su lugar se usa
la siguiente entrada:
map <F10> :w!<CR> U
!aspell -c %<CR>:e! %<CR>
Se coloca cualquier opción de la línea
de comandos que se precisen después
del comando.
Si se usa Emacs o Xemacs, se añade la
siguiente línea al fichero de configu-
ración (~/.emacs o ~/.xemacs/
custom.el):
(setq-default U
ispell-program-name "aspell")
o:
(setq-default U
ispell-program-name "ispell")
Correctores Ortográficosen Vim y Emacs
aspell -c nombrefichero
No es necesario especificarexplícitamente un diccionario ya queAspell evalúa la configuración delidioma. Sin embargo, si se ve un errorque dice que el diccionario correcto nose pudo encontrar, se deberá comprobarsi realmente se posee el diccionarionecesario instalado en el sistema.Escribiendo aspell --help | less en la líneade comandos dice qué lenguajes “habla”Aspell en una lista de Available
Dictionaries:. Los diccionarios selocalizan por defecto bajo /usr/lib/aspell-
0.60/.Si falta un diccionario requerido,
puede usarse el propio administrador de
paquete para instalar el recurso ausente.Al igual que en Ispell, puede usarse laopción -d para especificar undiccionario. Si se posee un textocodificado UTF-8, no hay que olvidarseque Aspell debe saberloespecificándoselo con la opción --
encoding=utf-8.
Interacción RequeridaAspell destaca los términosdesconocidos y ofrece una listanumerada de sustituciones aconsejadas.Para aceptar una sugerencia, se presionael número apropiado y luego [Enter].
Si se necesita sustituir una palabra porotra palabra completamente diferente, sepresiona [R] y se escribe la sustituciónpara la palabra que se está sustituyendo.
A diferencia de Ispell, en Aspell estaopción solamente sustituye la instanciaactual de la palabra. Si se desea queAspell sustituya todos los casos de lapalabra en el documento, hay que pulsar[Shift]+[R].
Puede pulsarse [I] para ignorar unapalabra exactamente una vez, opresionar [Shift]+[I] para decirle aAspell que ignore la palabra para el restode la sesión de corrección ortográfica.Para almacenar una palabrapermanentemente en el diccionariopersonal, es preciso pulsar [A]. Denuevo, Aspell almacena diccionariosprivados bajo su directorio home, y demanera similar a lo que hace Ispell, usauna combinación de la palabra .aspell ydel diccionario actual para identificar elfichero.
Aspell también sale automáticamentedespués de completar la correcciónortográfica. Puede presionarse [X] parasalir del programa y almacenar cualquiercambio que se haya hecho hasta esemomento. Para abandonar el correctorortográfico y descartar los cambios, sepresiona [B] y se confirma en la línea decomandos.
Una Cuestión de FormatoAl igual que Ispell, Aspell soporta variosformatos de ficheros. Puede especificarse-H (para HTML/SGML/XML) o -t (paraTeX/LaTeX).
Si se desea migrar a un nuevocorrector ortográfico, el paquete Aspellincluye un script en Perl titulado aspell-
import que importa el Ispell personal ylos diccionarios Aspell y los añade aldiccionario Aspell en el directorio home.
Puede comprobarse el cuadroCorrectores Ortográficos en Vim y Emacs
para otros pormenores sobre Ispell yAspell mientras se trabaja en uno de esoseditores. �
Línea de comandos: lspell • LINUX USER
83Número 16W W W . L I N U X - M A G A Z I N E . E S
Heike Jurzik
estudió Alemán,
Informática e
Inglés en la Uni-
versidad de Colo-
nia. Descubrió Linux en 1996 y
desde entonces quedó fascinada
por la línea de comandos de
Linux. En su tiempo de ocio
puedes encontrarla visitando
Irlanda o en alguna sesión de
folk Irlandés.
LAAUTORA
Figura 1: Ispell en nuestro laboratorio “entendió” inglés británico y americano.
Figura 2: Ispell ofrece como alternativa palabras similares.
LINUX USER • Juegos
84 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Hace ya muchos años salió a la
venta Quake, un juego de disparos
3D en primera persona donde nos
enfrentábamos a hordas de enemigos, con
un diseño influenciado por las novelas de
H.P. Lovecraft y el legendario Necronom-
icón. Después, aprovechando el tirón ini-
cial del primero, se realizó una segunda
parte que sólo guardaba del original el tipo
de juego y algunas armas. Hace poco pudi-
mos disfrutar de interminables sesiones de
disparos entre amigos con Quake 3, que
perdía su modo historia (o el guión al
menos), pero aumentaba enormemente la
jugabilidad en su modo online. Y hace ape-
nas unos meses se nos presentaba el objeto
de este artículo, Quake 4.
Pelotón RinoQuake 4 es un first person shooter con
guión en toda regla. El guión nos sitúa en el
planeta Stroggos, hogar de los Strogg, que
van por el universo doblegando civiliza-
ciones a las que les espera un futuro poco
agradable. Comenzamos el juego poco
después de que hubieran sucedido los
acontecimientos vividos en Quake 2,
aunque esta vez no seremos el mismo sol-
dado sin nombre. En esta ocasión encar-
naremos al cabo Mathew Kane, nuevo
Stroggs hasta en en la sopa
QUAKE 4No podía faltar en nuestra serie de
análisis de juegos la cuarta parte de
la saga de juegos comerciales de
acción en primera persona por exce-
lencia. Continuando el argumento de
su segunda parte y dándonos pistas
para el argumento del futuro Enemy
territory: Quake wars. Hablamos de
Quake 4. POR VICENTE CARRO
miembro del pelotón
Rino. Tras ser enviados
a Stroggos junto a nues-
tro pelotón con el fin de
despejar una zona de
aterrizaje para instalar un
centro de mando móvil, acabamos estre-
llándonos contra la superficie del planeta.
Como os podéis imaginar, nuestro perso-
naje sobrevive, pero la situación no está ni
mucho menos controlada. Hemos caído
lejos de la zona de nuestro primer objetivo.
De gatillo fácilQuake 4 requerirá velocidad de disparo
ya que, entre otras situaciones, entrar
disparando en una habitación podría
salvar la vida de soldados que después
nos ayudarían. Las habilidades del pro-
tagonista serán las habituales en este
tipo de juegos, pero podemos resaltar el
uso de linterna acoplada en algunas
armas, y la función secundaria o zoom
de otras. Hemos probado los distintos
modos de dificultad, y además de los
pertinentes cambios de resistencia, tam-
bién se ha anulado el retroceso del arma
cuando jugamos en modo fácil
(recluta), ayudando mucho a apuntar y
disparar.
Esta entrega
es bastante lineal, dando mucha impor-
tancia a un guión que nos tendrá
absortos en la aventura. Desde las fáciles
misiones iniciales hasta los eventos
finales que nadie podría imaginar, todo
está montado para hacernos sentir en la
piel de Kane.
Las fases duran lo justo, ni son muy
cortas ni tan largas que nos aburran, y
tienen una dificultad muy ajustada. A
esto se le une una amplia variedad de
detalles tanto en los escenarios y en los
diálogos, como en la jugabilidad. En
ciertos momentos conduciremos vehícu-
los con mención especial para los Cami-
nantes, unos pequeños robots de nuestro
bando.
Los enemigos siempre serán stroggs,
en sus diversas formas y variedades, y su
inteligencia artificial está muy basada en
scripts. No harán cosas complejas, sal-
vando que puedan esconderse para
atacarnos después o tendernos
emboscadas prefijadas.
Las armas son las justas, pero todas bas-
tante ajustadas a la situación, vistosas y por
supuesto, se mantienen algunas clásicas de
la saga.
Con amigos mejorEn muchas ocasiones estaremos acom-
pañados de otros soldados que nos ayu-
darán en tramos de nuestras misiones.
Otros simplemente estarán ahí mante-
niendo la posición, pero podremos acer-
carnos y hablarles, escuchando siempre
una respuesta adecuada. Estos compañeros
también podrán realizar tareas autónoma-
mente, como pueden ser los médicos o los
ingenieros, curando heridas o desblo-
queando dispositivos y reparando
armaduras respectivamente. También
conoceremos a algunos miembros del
pelotón Rino.
Que el juego esté traducido y doblado al
castellano consigue introducir al jugador
medio en la historia, y es algo que
opinamos debería ser casi obligado en
todos los juegos, ya que no hubiera sido la
misma experiencia si no hablasen caste-
llano. Lamentablemente para disfrutar del
castellano en Linux tendremos que hacer
uso del siguiente script que os hemos
preparado (ver Listado 1):
¿Unos tiritos?Se ha incluido en el juego un obligado
modo online. Pero claro, los programadores
del juego tenían un problema, y era que la
versión anterior, Quake 3, era una obra
maestra del juego online. Así que, final-
mente decidieron no arriesgarse y optaron
por copiar el modo online del Quake 3 tal
cual en este Quake 4, garantizándose un
resultado satisfactorio, aunque poco sor-
prendente.
El modo online nos permite jugar en
modo Deathmatch (todos contra todos),
TeamDM (equipo contra equipo), Tourney
(uno contra uno), CLB/CTF (captura la
bandera por equipos) y Arena CLB/CTF
(igual pero con reglas ?arena?). Todos ellos
en la linea de lo ya visto en la versión ante-
rior.
¡Vaya gráficos!Sin lugar a dudas, incluso por encima de su
absorbente historia, lo que más llama la
atención de este título son sus gráficos. Son
simplemente geniales. Lógicamente esto
hace necesario un equipo puntero, hasta el
punto de que el modo gráfico ULTRA
requiere una tarjeta gráfica de 512 megas.
Relieve, caras ultra detalladas y demás jus-
tifican la inversión en tamaño hardware.
Pero esto se aplica sólo para el modo his-
toria, ya que en el modo online los gráficos
son notablemente peores, aunque está
hecho a propósito para permitir jugar con
mayor fluidez y reducir los larguísimos
tiempos de carga de cada nivel.
Escuchando las balasEl audio de este juego es muy correcto,
aunque tampoco podemos decir que
destaque en ningún aspecto. El doblaje
español era obligado y ha resultado satis-
factorio, pero perdiendo algo de fuerza en
algunas interpretaciones secundarias. La
música es muy buena en algunos momen-
tos, y bastante ambiental como norma ge-
neral. Los efectos de audio son buenos y
parece que han usado algunos sonidos de
Quake 3.
En resumenJuego trepidante y muy absorbente que
hará las delicias de los shooters, aunque
algún fan de la saga puede sentirse decep-
cionado, no ante un mal producto, sino
ante una cantidad de novedades insufi-
cientes y un modo online calcado al del
Quake 3. Para el resto será un juego de grá-
ficos soberbios, acción a raudales y un
excelente modo online que incluso se
puede conseguir en España [2] en versión
Linux. �
Juegos • LINUX USER
85Número 16W W W . L I N U X - M A G A Z I N E . E S
Lo mejor
• Gráficos sobresalientes
• Absorbentes jugabilidad
y argumento
• Gran variedad
Lo peor
• Requiere un hardware puntero
• Los jugones siguen jugando al Quake3,
de momento
• No ha sorprendido a los fans de la saga
01 #!/bin/sh
02 # Needed to make
symlinks/shortcuts work.
03 # the binaries must run with
correct working directory
04 cd
"/PON_AQUI_LA_RUTA_DEL_JUEGO/"
05 set sys_lang "spanish"
06 export
LD_LIBRARY_PATH=$LD_LIBRARY_PA
TH:.
07 ./quake4.x86 $*
08 exit $?
8,5
[1] Ftp idsoftware: ftp://ftp.idsoftware.
com/idstuff/quake4/linux/
[2] guadagames.com: http://www.
guadagames.com
RECURSOS
Puntuación
Listado 1: Script lanzar enespañol
Figura 1: El doctor Strogg nos va a recetar unas aspirinas.
res. Ninguno de estos problemas son
reales hoy en día, y ni siquiera sé si los
rumores acerca del consumo de memoria
y los gráficos fueron alguna vez verdad,
o simplemente eran parte de la compe-
tencia “creativa” entre ambos grupos y
filosofías.
Hoy día, Gnome consume la misma
cantidad de recursos del sistema que
KDE (si no más), los benchmarks de
rendimiento son equivalentes, los gráfi-
cos son excelentes en ambos escritorios
y sus características (al menos las más
habituales para el usuario medio) son
más o menos idénticas.
Gnome y KDE, sin embargo, usan un
sistema completamente diferente de
dependencias en cuanto a demonios,
servicios y librerías. Yo he llegado a ver
programas de Gnome que requieren 40
dependencias de librerías o más. A veces
resulta imposible usar un programa de
alguno de ellos que no requiera compo-
nentes adicionales que llegan a ocupar
10 veces el tamaño del programa origi-
nal. (Los enlaces estáticos de los progra-
mas de KDE o Gnome fallan más por su
estructura modular que por cualquier
otra razón).
Esto puede llevarnos a sufrir algunos
problemas. Si usamos habitualmente
KDE, y queremos instalar un simple pro-
grama como Gnopernicus, terminaremos
instalando la suite de software Gnome
completa, porque de otra manera no
podremos ejecutar el programa. En el
peor de los casos, Gnome trata de desins-
talar partes de KDE (o viceversa) debido a
conflictos en los servicios de ambos sis-
temas (son casos muy raros, de cualquier
forma).
Bueno, he hecho un poco de trampa
con este ejemplo. Gnopernicus es más un
conjunto de plugins y extensiones de
Gnome que un programa en sí mismo. (Es
un lector gráfico de la pantalla y he-
rramienta de accesibilidad para Gnome).
Pero esto mismo ocurre con aplicaciones
de menor tamaño, como el maravilloso
cliente de videoconferencia GnomeMee-
ting, gnumeric y otros, que seguramente
querríamos tener en la edición Knoppix
CD, basada en KDE, pero que simple-
mente no tienen espacio suficiente debido
a las librerías de las que dependen.
Ocurre lo mismo en el caso contrario: si
queremos instalar un programa KDE en
un sistema Gnome. Pero al menos los pro-
gramas de KDE 3.X tratan de evitar
dependencias innecesarias si es posible.
De cualquier manera, cuando usamos
KDE con aplicaciones de Gnome, o aplica-
ciones de KDE en Gnome, siempre
acabaremos con un montón de librerías y
servicios en segundo plano, objetos rotos
o precargadores de uno u otro sistema.
Afortunadamente, ambos sistemas de
escritorio tratan de no pelearse entre ellos
(en el runtime level), ni tratan de impedir
¿Están Gnome y KDE a lapar?
Gnome y KDE se han presentado siem-
pre como alternativas equivalentes. ¿Son
realmente equivalentes, o hay situa-
ciones en las que uno sea mejor que el
otro? ¿Puedo configurar mi sistema
Linux de manera que se ejecuten tanto
aplicaciones KDE como aplicaciones
Gnome?
Técnicamente hablando, tanto Gnome
como KDE son sistemas de escritorio
altamente configurables con un diseño
interno orientado a objetos, y son muy
fáciles de usar, aún para los usuarios sin
conocimientos técnicos (siempre que
estén configurados correctamente).
Intentaré ser neutral a la hora de respon-
der acerca de qué escritorio es “mejor”
en general. He estado usando Xfce3
durante un cierto tiempo, y aunque sus
funcionalidades son más limitadas,
siempre han sido más que suficientes
para mí.
Siempre hubo discrepancias entre
desarrolladores y usuarios acerca de si
KDE era o no “libre”, debido a la licencia
de Qt (la librería en la que se basa KDE),
que si consumía más memoria que
Gnome, o que si sus gráficos eran peo-
COMUNIDAD · Konsultorio
86 Número 16 W W W . L I N U X - M A G A Z I N E . E S
Gnome versus KDE, Particiones para Expertos, Impresoras
KONSULTORIOKlaus Knopper es el creador de Knoppix y co-fundador de la LinuxTag
Expo. Trabaja en la actualidad como profesor, programador y consultor.
Si tiene algún problema de configuración, o simplemente quiere cono-
cer mejor cómo funciona Linux, no dude en escribir sus preguntas a:
que el otro escritorio ejecute sus progra-
mas. Por lo que, sí, efectivamente es posi-
ble mezclar libremente aplicaciones de
Gnome y de KDE, excepto en algún caso
muy puntual en el que ambos insisten en
arrancar su propio demonio de sonido (a
veces por bloqueo de servicios), y termi-
namos preguntándonos por qué nuestra
tarjeta de sonido de repente no responde
aunque matemos los procesos arrancados
por el “otro” sistema de escritorio. Si nos
encontramos estos problemas, podemos
comprobar quién bloquea nuestro sonido
tecleando
fuser -v /dev/dsp
que identifica el demonio de sonido pro-
blemático, en la mayoría de las ocasiones.
Particiones para ExpertosLos instaladores de Linux han mejorado
mucho con los años, pero la sección de
particiones sigue siendo igual de confusa
que siempre. Ahora, al menos, un asis-
tente “sugiere” una configuración de par-
ticiones, pero sigue pidiendo una
aprobación de dicha configuración, y no
tengo ni idea de qué estoy aprobando.
Suele existir un botón “Sólo para Exper-
tos” que conduce a una nueva página
donde se expresa todo en términos de
nombres de partición y ubicaciones en el
disco. ¿Porqué querría un experto usar
una configuración de particiones dife-
rente y porqué querría yo también hacer
eso? ¿Existe alguna ventaja en cambiar el
tamaño de la zona de swap o la ubicación
de las particiones en el disco?
Existen ciertas ventajas al crear las par-
ticiones de manera óptima para el
propósito de nuestro sistema GNU/Linux.
Si es nuestra primera instalación Linux, y
sólo vamos a usar el sistema para trabajo
cotidiano o juegos, no debemos preocu-
parnos mucho por las opciones avan-
zadas y podemos aceptar las opciones por
defecto.
La configuración manual es preferible
si tenemos planes para realizar tareas más
avanzadas con nuestro ordenador, como
streaming en tiempo real, procesado de
video u otras que requieran un alto grado
de procesamiento de datos, que puedan
necesitar de una configuración más
sofisticada. También es importante saber
si el sistema será usado por muchos
usuarios, o si será un sistema de un solo
usuario.
Yo suelo usar muchas particiones con
objeto de tener varias instalaciones de
prueba separadas, particiones encriptadas
y espacio adicional de swap para oca-
siones en las que haga falta.
Un sistema GNU/Linux puede ajustarse
a una sola partición (que puede incluso
ser una partición virtual dentro de un
archivo). El espacio de intercambio no es
absolutamente necesario para ejecutar un
sistema GNU/Linux, en absoluto (aunque
muchos instaladores insisten en tener una
partición de intercambio).
Discutamos el tema del espacio de
intercambio en primer lugar.
El espacio de intercambio añade espa-
cio a la gestión de la “memoria vitual” del
kernel de Linux. Esto significa que
podemos ejecutar más y mayores progra-
mas que los que cabrían en la memoria
RAM de nuestro ordenador. La pregunta
de cuánto espacio de swap vamos a nece-
sitar depende de lo que deseemos hacer.
La memoria RAM real es siempre mejor,
por supuesto, pero en la mayoría de los
casos, el espacio de intercambio funciona
guardando temporalmente programas en
ejecución y la información que no es
necesaria en esos momentos.
Una característica que potencia el
rendimiento bajo Linux es que la RAM no
utilizada se usa como un sistema de búfer
dinámico de archivos (auto-ajustable).
Los archivos que han sido leídos una vez
permanecen en la veloz caché RAM (y
serán leídos desde allí) hasta que la RAM
sea requerida para algo más urgente
(como un programa en ejecución que
solicite memoria para gráficos, por ejem-
plo).
Como ejemplo de cómo funciona el
uso de la memoria, OpenOffice necesita
unos 100 megas de RAM cuando lo arran-
camos por primera vez. A medida que el
documento de trabajo crece y se le
añaden elementos de otras partes de
OpenOffice, se requieren nuevos compo-
nentes, como hojas de cálculo, progra-
mas de dibujo o de presentaciones.
Podemos terminar usando 300 megas o
más simplemente con ejecutar OpenOf-
fice un rato. El escritorio KDE necesita
también unos 100 MB por sí mismo, y si
abrimos el navegador Firefox, el pro-
grama de edición gráfica The Gimp y
otros programas potencialmente ham-
brientos de memoria, nos situamos en
alrededor de unos 500-1000 MB de
memoria para hacer algo.
Si calculamos a mano el espacio de
intercambio necesario, debemos tratar de
estimar la memoria usada por los progra-
mas (el comando free es útil en estos
casos, pero debemos comprobar los va-
lores SIN los búfers del sistema de
archivos), y añadir otro tercio a esta cifra
para estar seguros. Si nuestro sistema se
queda sin memoria, todo comienza a ir
muy lento y la capacidad de respuesta cae
en picado hasta el punto que lo mejor
será irnos a por un café. Los programas
en ejecución pueden morir si no encuen-
tran la manera de conseguir la memoria
que necesitan. Pero habitualmente, antes
de que suceda esto, ya nos habremos
planteado usar el botón de reset para
reiniciar el sistema, sabiendo que esta no
es la manera más conveniente de liberar
memoria, obviamente. Por lo que habría
que pensar en el espacio de swap en lo
sucesivo.
Si nos damos cuenta a posteriori que
nuestra partición de intercambio es insufi-
ciente, existe un forma sencilla de añadir
más espacio de swap. Simplemente
creamos un archivo, lo marcamos como
swap y lo añadimos a la memoria virtual
como una partición. El siguiente ejemplo
nos muestra esto con un archivo de 100
MB ubicado en /var:
dd if=/dev/zero of=/var/swap U
bs=1024k count=100
mkswap /var/swap
swapon /var/swap
y ya tenemos 100 MB más de memoria
swap. Para que el cambio sea perma-
nente, pondremos la siguiente línea en
/etc/fstab:
/var/swap none swap sw 0 0
Las particiones de swap dedicadas son
mucho más rápidas que los archivos
swap, dado que hay menos sobrecarga
del sistema de archivos. (El kernel escribe
directamente en la partición, en lugar de
llamar a las funciones del sistema de
archivos).
Para las particiones de archivos, separar
la información “frecuentemente escrita”
de la “fundamentalmente estática” puede
ser útil. Con esta precaución nos asegu-
ramos que una partición saturada (con
archivos de log, por ejemplo) no afectará
al resto, y seremos capaces de entrar en el
sistema y arreglar el problema (al menos,
87Número 16W W W . L I N U X - M A G A Z I N E . E S
Konsultorio • COMUNIDAD
documentos. El único problema es que
no tengo los mensajes habituales de la
impresora cuando algo no va bien (atasco
de papel, se ha quedado sin tinta, etc.).
Sólo aparece un mensaje estándar que
dice algo como “Printer Error”. ¿Existe
alguna manera de recibir los mismos
mensajes de error que (según el manual)
reciben los usuarios bajo Windows?
Los mensajes CUPS suelen llegar a
/var/log/cups/error_log y
/var/log/cups/access_log. Su nivel de
detalle depende de la configuración de
LogLevel en /etc/cups/cupsd.conf (véase
la descripción de los log levels en el Lis-
tado 1).
Por tanto, tendremos mayor nivel de
información de los asuntos internos del
driver si fijamos el LogLevel a debug o
incluso a debug2 en /etc/cups/cupsd.conf.
(No debemos olvidar reiniciar CUPS con
/etc/init.d/cupsys reload, en el caso de
Debian).
La clase y visibilidad de la información
ofrecida por el archivo PPD depende real-
mente de su estructura y configuración,
por lo que pueden existir ciertas carac-
terísticas de una impresora que no sean
accesibles directamente desde el interior
de CUPS.
Encontraremos una tabla de impreso-
ras y funcionalidades soportadas en
http://www.linuxprinting.org/, que es
una buena página para investigar.
Más específicamente, para la impresora
en cuestión, linuxprinting.org dice en
http://www.linuxprinting.org/
show_printer.
cgi?recnum=HP-Business_Inkjet_1200
que la impresora funciona perfectamente
con Linux/CUPS, por lo que no sería
necesario ni siquiera un PPD específico,
sólo tener instalado el driver hpijs (y la
versión actualizada de CUPS).
Si buscamos una impresora nueva que
esté bien soportada por CUPS, http://
www.linuxprinting.org/suggested.html
nos muestra un resumen de las impreso-
ras que han demostrado funcionar espe-
cialmente bien.
En algunos casos, el fabricante de
impresoras tiene un programa especial de
monitorización del estado, algo como
“Printer LCD display monitor” para
Linux, que funciona de manera indepen-
diente a CUPS y captura la información
(sólo lectura) directamente del conector
de la impresora. Especialmente en casos
como combinaciones de impresora y
escáner, extensiones de terceros como
ésta nos permiten acceder, o al menos,
ver las “características ocultas” de la
impresora. A mi personalmente no me
gustan demasiado si sólo se ofrecen
como binarios, y sin licencia que me per-
mita analizarlos o modificarlos.
Debemos comprobar el CD con los dri-
vers que vienen con la impresora en
busca de programas de usuario para
Linux, o de nuevo, buscar en linuxprint-
ing.org, que a veces tiene enlaces a
extensiones de terceros o del fabricante
para modelos específicos de impresoras.
Para su impresora HP 1200, linuxprin-
ting.org nos recomienda que busquemos
el driver hplip en sourceforce: http://
hpinkjet.sourceforge.net/ para disponer
de características avanzadas como
reportes de estado y mantenimiento. �
en la mayoría de los casos), sin tener que
recurrir a pasar a un runlevel de admi-
nistrador. Si lo tenemos todo en una sola
partición, por otro lado, tendremos la
ventaja de que el espacio disponible es
compartido por todos y no tenemos que
preocuparnos por cambiar el tamaño de
las particiones cuando una se esté
quedando sin espacio.
Yo suelo utilizar una partición para los
“archivos del sistema” (que contiene el
sistema de archivo raíz y /usr), una parti-
ción para el frecuentemente escrito sis-
tema de archivos /var (contiene también
los archivos de log y /tmp), una partición
encriptada para las claves de autenti-
cación, contraseñas y backups de la
información de usuario, una partición
para mi directorio /home y por último
una más para experimentos e informa-
ción poco importante como instalaciones
de prueba.
Algo como esto:
/dev/hda1 5GB /
/dev/hda5 2GB /var
/dev/hda6 1GB /crypt
/dev/hda7 8GB /home
/dev/hda8 20GB /mnt/scratch
Por supuesto, esta configuración es muy
personal y puede que otra persona tenga
que reparticionar y reconfigurar cada vez
que una partición termine llenándose, o
cada vez que se plantee una actua-
lización del disco.
Si tenemos más de un disco duro, tiene
sentido distribuir las particiones que con-
tienen información usada con frecuencia
por las distintos discos (por ejemplo:
/dev/hda1 con los archivos del sistema y
/dev/hdc1 con el directorio home, /tmp o
/var). Esto disminuye los movimientos
del cabezal del disco duro durante las
operaciones de lectura y escritura
simultáneas. Para tratamiento digital de
video, puede ser esencial distribuir las
particiones por los distintos discos para
alcanzar el rendimiento necesario para
codificar videos en tiempo real.
Problemas de ImpresiónTengo una impresora HP 1200 Business
Inkjet. La caja de la impresora no especi-
fica que sea compatible con Linux, pero
he podido imprimir sin problemas con mi
sistema Linux con KDE utilizando un
archivo PPD que descargué de la Web. La
impresora funciona bien cuando imprime
COMUNIDAD · Konsultorio
88 Número 16 W W W . L I N U X - M A G A Z I N E . E S
01 # Log level (LogLevel)
02 #
03 # Controls the number of
messages logged to the
ErrorLog
04 # file and can be one of the
following:
05 #
06 # debug2: Log everything.
07 # debug: Log almost
everything.
08 # info: Log all requests and
state changes.
09 # warn: Log errors and
warnings.
10 # error: Log only errors.
11 # none: Log nothing.
12 #
13 # ex: info
14 #
15 # Default: LogLevel info
Listado 1: Log Levels
de CUPS
Figura 1: Xfce es una veloz y sencilla alterna-
tiva a Gnome y KDE.
¿Cómo consigues algo que realmente
deseas? Digamos que quieres pedir
prestado el coche a un amigo para ir
de compras. Deberías preguntárselo
amablemente y tentarle con chocolate o
cerveza. Deberías admirar su nuevo corte
de pelo y decirle cuánto te gusta su coche.
Posiblemente no se te ocurriría algo como:
“Tu coche está arañado, vibra cuando lo
conduzco, odio el color y siempre está
sucio ¿Te importa prestármelo?”.
Yo siempre he creído que era vital y nece-
sario una actitud positiva para obtener
cualquier tipo de éxito. Recientemente he
formado parte de una mesa redonda en la
Open Source World Conference celebrada
en Málaga. Cinco mujeres presentamos
nuestras ideas acerca del papel de la mujer
en el mundo del Software Libre. Cada una
de nosotras dispusimos de unos cinco min-
utos para esbozarlas antes de abrir el
debate. Me resultó muy desconcertante el
que una de las ponentes se pasara alrede-
dor de 25 minutos exponiendo sus ideas de
forma extremadamente negativa. Casi la
mitad de los asistentes abandonaron la sala
y yo me sentía muy deprimida cuando
acabó. La oradora llegó al extremo de
increpar verbalmente a los que se iban de
la charla. Un desastre.
Cuando me llegó el turno dije lo que
pensaba. En primer lugar agradecí a los
asistentes su participación en el SL por ser
nuestra comunidad la que está propiciando
un cambio social y de percepciones real a
nivel mundial. Nuestra comunidad está li-
gada a valores fundamentales que nada
tienen que ver con limitaciones o con
estúpidos status quos. Todo lo contrario,
está integrada por gente grandiosa que
ayuda a otros a ser grandes. Se trata de li-
bertad personal y de poderío individual, y
uno de los principales mecanismos que
poseemos para ayudarnos es la meritocra-
cia que subyace a nuestros modelos de
desarrollo. La gente es juzgada no por sus
atribuciones personales, sino más bien por
el esfuerzo que ponen en su trabajo.
También hablé brevemente sobre pre-
juicios activos y pasivos. Generalmente, la
gente de nuestra comunidad no tiene pre-
Mujeres en el Software Libre
MUJERES++
89
Opinión • COMUNIDAD
89Número 16W W W . L I N U X - M A G A Z I N E . E S
mujeres como no-caucásicos han tenido
cabida en orquestas desempeñando distin-
tos roles. La percepción ha cambiado y
ahora no resulta un concepto tan descabe-
llado.
En el mundo del Software Libre, gracias
al anonimato, existen pioneros de muchas
demografías haciendo cosas importantes,
los cuales podrían ser objeto de prejuicios
por algunas comunidades. Esto es cam-
biar las percepciones, esto es motor de
cambio social. Hay mujeres pioneras que
están cambiando las percepciones a lo
largo y ancho del mundo, las saludo e
intento hacer todo lo que está en mi
mano. Los modelos de conducta femeni-
nos hacen maravillas para modificar la
percepción de los niños. Esto lo sé muy
bien, porque mi madre, que tenía una for-
mación técnica, fue mi primer modelo.
Existen también otros pioneros que están
cambiando los prejuicios referentes a
edad, religión, raza, etc.
Hoy día, uno de los cambios más impor-
tantes del papel de las mujeres dentro de
la informática es ser altamente técnica
mientras no se comprometa su feminidad.
Si la comprometemos estamos reforzando
un status quo extraño y haciendo que sea
más difícil para aquéllas mujeres que
quieran integrarse. Necesitamos ayudar a
cambiar los prejuicios limitadores hacia
las mujeres en la informática mediante la
participación en el maravilloso mundo del
Software Libre y haciendo todo el ruido
que podamos. Adopta los valores del Soft-
ware Libre y llévalos al mundo donde la
gente se enfrenta cara a cara, y tendremos
un mundo más justo, con una mejor re-
presentación y que da más poder al indi-
viduo.
Saludos, Pia. �
juicios activos contra nada en particular. La
mayoría de los hombres con los que me he
encontrado están muy dispuestos a con-
seguir que más mujeres se integren en el
mundo del Software Libre, y a nadie le
importa realmente la religión, edad, dis-
capacidades o el color de la piel que se
tenga siempre que se pueda contribuir po-
sitivamente a la comunidad de cualquier
manera posible. He participado en foros o
he estado en listas de correos en los que si
alguien ha hecho un comentario racista o
sexista, ha sido rápidamente reprimido por
los demás. Puedes llevar años trabajando
con un desarrollador y desconocer su nom-
bre real y cualquier cosa acerca de su vida
y, sin embargo, lo respetamos y confiamos
en él gracias a nuestra relación laboral y a
sus contribuciones. Esto significa que no le
damos importancia a aspectos personales,
que sin embargo sí alimentan los prejuicios
en nuestra sociedad. Esto significa que la
gente no está limitada por aquellas cosas
que podrían ser usadas contra ellos en otra
sociedad. Esta comunidad tiende a abrirse
camino a pesar de los prejuicios y permite
que gente de cualquier país, lengua, edad,
religión y género trabajen juntos para
obtener beneficios mutuos.
En términos de prejuicios activos, sa-
limos bastante bien parados. Pero siguen
existiendo los prejuicios pasivos. Esas se
basan en la existencia de percepciones y
suposiciones y pueden ir en contra de un
sector de la población. Para explicarme
mejor usaré el ejemplo real que ocurre en
las orquestas musicales. En un momento
dado se introdujeron las audiciones ciegas
para seleccionar a los músicos que com-
pondrían una orquesta. La audición se
hace desde detrás de una pantalla y la per-
sona está representada por un número, de
manera que no es posible la existencia de
discriminación alguna. De repente, el
número de mujeres y de no-caucásicos que
llegaron a la ronda final de audiciones
aumentó significativamente. Con las audi-
ciones ciegas se eliminaron de un plumazo
los prejuicios activos y pasivos de los jue-
ces evitando perjudicar las interpretaciones
individuales. Desde entonces, tanto
Pia Waugh es
vicepresidenta
de Linux Aus-
tralia (http://linux.
org.au). Es una
apasionada del
SL y trabaja con-
juntamente con
el Gobierno Australiano en su pro-
moción. Da charlas en escuelas y
universidades a geeks en ciernes
sobre las posibilidades del SL y las
oportunidades que presenta en el
campo de la informática. Puedes
leer su blog en http://pipka.org/blog
o visitar su sitio comercial en http://
www.waughpartners.com.au.
LA
AU
TO
RA
que, al menos de palabra, están tomán-
dose más en serio la adopción de mode-
los de negocio diferentes.
Aunque algunas empresas privadas
españolas todavía no parecen tener claro
por donde tirar a este respecto, quienes
sí avanzan a todo tren son las distintas
autonomías, con Extremadura a la
cabeza, donde la migración es ya un
hecho. A diferencia de lo que ocurre en
otros ámbitos, en España la iniciativa y
la mayor apuesta por el software libre
viene de la mano de las instituciones
públicas. En este aspecto, una de las
estrellas del congreso fue la presentación
de Guadalinex v3, la distribución desar-
rollada con los fondos de la Junta de
Andalucía que llegó justo a tiempo para
el evento.
Con un factura impecable (los fondos
y temas azules lucen mucho mejor que
el verdigris de anteriores ediciones), un
nuevo y remozado instalador gráfico y
con un sistema base más moderno
(Ubuntu, en vez del clásico Debian), esta
distribución promete muchas novedades
muy atractivas para el usuario final que
se decida a instalarlo.
Las ponenciasLa ponencia más importante del día de la
inauguración (miércoles 15) fue, sin
duda, la de Michail Bletsas, del proyecto
“One Laptop Per Child”, proyecto aban-
derado por el MIT y Nicholas
Negroponte que pretende desarrollar un
pequeño portátil de muy bajo coste (100
dólares) para ser distribuido entre los
niños y jóvenes de países del Tercer
Mundo. Michail expuso cómo están
logrando poco a poco abaratar costes y
cómo se han desarrollado nuevas tec-
nologías para ello, especialmente en lo
relativo a la pantalla.
Ese mismo día por la tarde tuvo lugar
la mesa redonda relativa a creative com-
mons y patentes de software, aunque la
discusión se polarizó rápidamente en
torno a este último y polémico tema.
Destacar la batalla que mantuvo Alberto
Barrionuevo, representante de la FFII,
frente a Christian Platzer, de la Oficina
Europea de Patentes. Como es habitual
en este tipo de debates, los defensores de
lo indefendible recurrían a las medias
verdades o se escudaban en la ignoran-
cia, cosa que no dudaron en señalar los
otros ponentes.
La jornada del jueves se inició con la
sesión plenaria “El futuro de las grandes
empresas”, con la presencia de los pesos
pesados: IBM, HP, Sun, etc. Las mega-
corporaciones, cómo no, intentaron
transmitir que ellas apuestan completa-
mente por el Software Libre, aunque la
manera de hacerlo de cada una tenga
puntos más que discutibles. Desde
Oracle se defendieron los “ecosistemas
abiertos” (especialmente en cuanto a
estándares y código) y Sun, por su lado,
La conferencia estuvo marcada por
el éxito de asistencia y el elevado
nivel de muchos de los ponentes.
Se presentaron 176 expertos de 26 país-
es. La organización contó con los típicos
contratiempos de estos mega-acontec-
imientos: problemas con el WiFi, caída
de ultima hora de algunos ponentes
(¿alguien vio a Alan Kay?), atasco en las
máquinas de identificación para la pren-
sa y el despiste natural que sobreviene
cuando una ponencia es suspendida. Sin
embargo, estos pequeños inconvenientes
son del todo intrascendentes cuando se
tiene la oportunidad de poder a escuchar
a ponentes de la talla de Bletsas, Galli,
Barrionuevo, Barahona y tantos otros
que compartieron su tiempo y esfuerzo
en discutir y comentar las nuevas de esta
mezcla de tecnología y filosofía que es el
Software Libre.
Por otro lado no se ocultó la importan-
cia que presenta para las pequeñas y
grandes empresas del sector este nuevo
modelo de desarrollo, tal y como ates-
tigua el alto nivel de participación, tanto
en ponentes como en stands, de empre-
sas e instituciones. El cambio y la aper-
tura de fabricantes a los modelos del
software libre se hizo evidente al con-
tarse en la zona de exposición (muy ani-
mada en esta edición) con muchas
empresas que cuentan en su haber con
una larga historia en el desarrollo de
software bajo licencias privativas pero
COMUNIDAD · OSWC II
90 Número 16 W W W . L I N U X - M A G A Z I N E . E S
La recta final de la segunda edición de la
OSWC se celebró en el Palacio de Ferias y
Congresos de Málaga durante los días 15,
16 y 17 de febrero. Linux Magazine estuvo
allí. POR ALBERTO PLANAS Y VÍCTOR
TIENDA.
Conferencia Internacional deSoftware Libre de Málaga
OSWC II
apuntó entre otras ideas que el software
libre es un medio para el fin de dar más
libertad a la sociedad. Novell, ya en otra
sala paralela, dejó claro su postura ante
la moda de reciente aparición de que
cada comunidad tenga su propia dis-
tribución GNU/Linux: todos estos
esfuerzos se verían mejor recompensa-
dos si todas estas distribuciones
autonómicas realizaran un intento de
unificación.
El jueves por la tarde tuvo lugar la
mesa redonda con el título “¿Se están
generando nuevos modelos de
sociedad?”, en la que destacaron las
aportaciones del periodista Francis
Pisani, y del filósofo por la Universidad
Complutense, Javier Bustamante.
Bustamante resumió su postura acerca
del impacto que las nuevas tecnologías
de la información están teniendo en la
sociedad actual y la nueva economía:
explicó cómo la tecnología revitaliza la
vida social y política de las democracias.
Hizo también interesantes aportaciones,
como la posibilidad de estudiar el mode-
lo de Software Libre mediante la Teoría
de Juegos. Francis Pisani, por su parte,
se centró más en aspectos como la
“brecha digital”, de la cual sostuvo que
su principal causa es un problema cul-
tural.
Francis Pisani participó también en la
mesa redonda del viernes por la
mañana, que moderaba nuestro blogger-
foneador favorito, Enrique Dans, bajo el
título “El futuro del software libre: la
visión de los gurús”. Pisani polemizó en
cierta medida al preguntarse acerca de
los posibles elementos de fundamentalis-
mo en el mundo del software libre.
Branden Robinson, líder de Debian,
repasó los tres
ámbitos de desar-
rollo principales
concernientes a la
comunidad del
software libre: tec-
nológico, legal y
social, y sostuvo
que no se puede
restringir la liber-
tad, a la hora de
crear software de
realizar modifica-
ciones a progra-
mas que benefi-
cien a la sociedad.
Por su parte, Alan
Robertsson, del Linux Tehnology Center,
alertó de que uno de los factores princi-
pales en la supervivencia de un proyecto
de código abierto es que llegue a con-
seguir una masa crítica, una comunidad
que pueda llevar adelante el proyecto
cuando sus fundadores no puedan con-
tinuarlo. Por último, Jeff Waugh, de
Ubuntu, defendió la importancia para el
software libre que su filosofía de com-
partir y colaborar llegue a todas las per-
sonas: hay que asumir ese reto de
difundir los valores de la filosofía del
software libre a toda la sociedad.
Anuncios de laAdministraciónPor otro lado se hicieron algunos anun-
cios importantes, como la puesta en mar-
cha de un repositorio de software libre
con más de 270 aplicaciones de la Junta
de Andalucía, donde se volcarán todas
las aplicaciones liberadas del Gobierno
andaluz [1]. En cuanto a los proyectos
de futuro, avanzó que este año se regu-
lará el uso obliga-
torio de los están-
dares abiertos por
parte de la Junta
de Andalucía, con
el objetivo de que
en 2008 todos los
sistemas y docu-
mentos que inter-
cambien adminis-
tración y ciu-
dadanos sean de
estas característi-
cas. También
anunció la
creación del
Centro Andaluz
del Software Libre, con la participación
de las universidades, las empresas y la
administración, y que funcionará como
banco de pruebas de los fabricantes para
sus productos.
Salas ParalelasAl margen de las sesiones plenarias
tuvieron lugar en torno a 20 sesiones
temáticas paralelas y casi 30 talleres.
Sería casi imposible poder resumir de
todo lo que se habló, pero podemos
destacar fugazmente las ponencias de la
gente de KDE, con Antonio Larrosa
como anfitrión de lujo, los talleres de los
miembros de The Apache Software
Fundation y las sesiones de algunas de
las más destacadas figuras del panorama
del software libre español como Ricardo
Galli, de la Universitat de les Illes
Balears. Por último mencionar a Tomeu
Borrás, de BULMA, que expuso la parti-
cular experiencia de BulmaGés y el mod-
elo de negocio en software libre que ellos
han adoptado.
… Y el año que vieneEsta edición de la OSCW puede conside-
rarse todo un éxito. ¿De cara al futuro?
Pues se va a trabajar en potenciar este
evento a nivel internacional para inten-
tar situarlo como referente mundial den-
tro de su categoría. De momento se
anunció que la próxima edición se cele-
brará en Badajoz. ¡Nos vemos allí!
91Número 16W W W . L I N U X - M A G A Z I N E . E S
[1] Repositorio de la Junta de Andalucía:
http://www.juntadeandalucia.es/
repositorio
[2] OSWC: http://www.
opensourceworldconference.com
RECURSOS
OSWC II • COMUNIDAD
#05
#08
#11 #12 #13
#09 #10
#06 #07
a g o t a d o
¡Hazte con tus ejemplares
atrasados!
WWW.LINUX-MAGAZINE.ES/ATRASADOS
#14 #15
¡pídelos ya!
el REPOSITORIOde conocimientos
LINUXmás COMPLETO
¡No esperes aque se agoten!
WWW.LINUX-MAGAZINE.ES/ATRASADOS
94
EVENTOS
94 Número 16 W W W . L I N U X - M A G A Z I N E . E S
LinuxWorld Conf.& ExpoEspañaFecha: 18-19 Abril
Ciudad:Madrid, España.
Sitio Web:
www.linuxworldexpo.com
Debconf 6Fecha: 14-22 Mayo
Ciudad:Oaxtepec,México
Sitio Web:
http://www.debconf.org
Festival Digital de AndalucíaFecha: 10-23 Abril
Ciudad:Málaga,España
Sitio Web:
http://www.festivaldigi-tal.org
Información de Contacto
DirectorPaul C. Brown
CoolaboradoresPaul C. Brown, Jose Manuel González Vida, JuanRafael Fernández, Pedro Orantes, José María Ruíz,Alberto Planas, Jose A. García, Ana Mª Ferreiro
TraductoresPaqui Martín Vergara, Paul C. Brown, AntonioRueda, Víctor Tienda.
MaquetaciónFrancisco Fernández
Diseño de [email protected]
Publicidadwww.linux-magazine.es/pub/
Para EspañaExpresando Comunicaciones [email protected].: (+ 34) 952 216 406Fax.: (+ 34) 952 217 115
Paul C. [email protected].: (+ 34) 951 010 556Fax.: (+ 34) 951 010 516
Para el Resto del MundoBrian Osborn [email protected] Tel.: (+49) 6509 910 495Fax.: (+49) 6509 910 497
Director EditorialPaul C. Brown
Jefe de ProducciónFrancisco Fernández
Subscripciones: www.linux-magazine.es/magazine/subs
Precios Subscripción España: 54,90 €Europa: 64,90 €Resto del Mundo - Euros: 84,90 €
Tel.: (+34) 951 010 556Fax.: (+34) 951 010 516 [email protected]
Linux MagazineLinux New Media Spain, S.L.Avda. Juan López Peñalver, 2129590 - Campanillas Málaga ESPAÑA [email protected].: (+34) 951 010 556Fax.: (+34) 951 010 516
www.linux-magazine.es - Españawww.linux-magazine.com - Mundowww.linux-magazine.de - Alemania
Si bien se toman todas las medidas posibles paragarantizar la precisión del contenido de los artículos publi-cados en Linux Magazine, la editorial no se hace responsable de imprecisiones aparecidas en larevista. Asimismo, Linux Magazine no compartenecesariamente las opiniones vertidas por suscolaboradores en sus artículos. El riesgo derivado del uso del DVD y el material que contiene corren por cuenta del lector. El DVD es estudiado escrupu-losamente para confirmar que está libre de virus y errores.
Copyright y Marcas Registradas © 2004 Linux NewMedia Spain, S.L. Linux New Media Spain S.L. prohíbela reproducción total o parcial de los contenidos deLinux Magazine sin su permiso previo y por escrito.Linux es una Marca Registrada de Linus Torvalds.
Impreso en Alemania
Impresión: Dierichs Druck + Media GmbH
Distribución: SGEL
Depósito Legal: MA-116-2005
ISSN edición impresa: 1576-4079
ISSN edición online: 1699-2237
Calendario de Eventos
Evento Fecha Ciudad Sitio Web
LinuxWorld Conference & Expo Boston 3-6 Abril 06 Boston,MA,EE.UU www.linuxworldexpo.comFestival Digital de Andalucía 10-23 Abril 06 Málaga,España http://www.festivaldigital.orgLinuxWorld Conference & Expo Spain 18-19 Abril 06 Madrid,España www.linuxworldexpo.com7º Fórum Internacional Software Libre 19-22 Abril 06 Porto Alegre,Brasil http://fisl.softwarelivre.orgIII Jorn.Soft. Libre Univ.Cádiz 20-21 Abril 06 Cádiz,España http://osl.uca.es/jornadas/VII Fórum Internacional Software Libre 19-22 Abril 06 Porto Alegre,Brazil http://fisl.softwarelivre.org/LinuxWorld & NetworkWorld Canada 24-26 Abril 06 Toronto,Canada www.lwnwexpo.plumcom.caLinuxWorld Conference & Expo Italy 9-10 Mayo 06 Milan, Italia www.linuxworldexpo.itLinuxWorld Conference & Expo SA 16-19 Mayo 06 ohanesburgo,S.África www.linuxworldexpo.co.zaLinuxWorld Conference & Expo Brazil 23-25 Mayo 06 Sao Paulo,Brasil www.linuxworldexpo.comLinuxWorld Conference & Expo Japan 31 Mayo - 6 Junio 06 Tokio, Japón www.linuxworldexpo.comUSENIX ’06 30 Mayo - 3 Junio 06 Boston,MA,USA www.usenix.org/events/usenix066º Fórum Internacional Software Livre 4-6 Junio 06 Porto Alegre,Brazil http://fisl.softwarelivre.orgLinuxWorld Conference & Expo 5-7 Junio 06 Korea Seúl,Korea www.linuxworldkorea.comRobocup 14-20 Junio 06 Bremen,Alemania www.robocup2006.org/startOSCON 2006 24-28 Julio 06 Portland,EE.UU. http://conferences.oreillynet.comLinuxWorld Conference & Expo 14-17 Agosto 06 San Francisco,EE.UU. www.linuxworldexpo.comLinuxWorld Conference & Expo NL 11-12 Octubre 06 Utrecht,Holanda www.linuxworldexpo.nlLinuxWorld Conference & Expo UK 25-26 Octubre 06 Londres,R.U. www.linuxworldexpo.co.uk
Más del 30% de descuento respecto al precio de portada: Consigue 12 números por 54’90 Euros y todos los DVDs ¡Gratis!
A diferencia de otras publicaciones, Linux Magazine no llenará tu buzón de recordatorios para que renueves tu subscripción. Ésta se renovaráautomáticamente cada año. Recibirás una confirmación aproximadamente 30 días antes del final de tu periodo de subscripción, pero no serequiere que hagas nada para seguir suscrito.
¡No te pierdas Linux Magazine nunca más! La subscripción te asegura que recibas los conocimientos Linux de más alta calidad en tu domiciliocada mes.
Si por cualquier motivo decides dejar de leer Linux Magazine, puedes cancelar tu subscripción en cualquier momento. Te abonaremos el preciode todos los números que no hayas recibido. Sin preguntas, sin fechas de cancelación, sin problemas.
Linux Magazine es algo más que una revista de Linux. Patrocinamos grupos, congresos, proyectos y eventos relacionados con el Software Libre.Suscribiéndote a Linux Magazine garantizas que podamos seguir apoyando al Software Libre allá donde haga falta.
LINUX LOCAL
97Número 16W W W . L I N U X - M A G A Z I N E . E S
Andalucía
Logo Empresa Correo-e Web 1 2 3 4 5 6 7 8
Gesinfo [email protected] www.gesinfoweb.com � � � � � �
BitRock [email protected] bitrock.com � �
Properly Software [email protected] www.properly.es/site � �
GuadaGames [email protected] www.guadagames.com �
Exprecom [email protected] www.exprecom.com � � � � � � �
LINUX LOCALLeyenda
1.- Hardware
2.- Software / Desarollo
3.- Formación
4.- Soporte / Consultoría
5.- Servidores
6.- Redes
7.- Migración
8.- Hospedaje
Cataluña
Logo Empresa Correo-e Web 1 2 3 4 5 6 7 8
IWS [email protected] www.iws.es � � � � � �
Madrid
Logo Empresa Correo-e Web 1 2 3 4 5 6 7 8
Mono::labs [email protected] www.monolabs.com � � � � � �
Datum [email protected] www.datum.ws � � � � � �
Linux Local es tu directorio de servicios y empresas de Linux cerca de ti.
¿Necesitas soporte, hardware, formación? Consulta Linux Local y encuen-
tra quién ofrece qué y dónde. El directorio se divide en regiones autóno-
mas para ayudarte a localizar las empresas que ofrecen servicios cerca de ti. Uti-
liza la leyenda de la derecha para encontrar la empresa que ofrece el servicio
que precises.
Linux Local es tu guía de servicios Linux.
¿Por qué no está su empresa eneste directorio?
LINUX MAGAZINE llega a miles de empresas, profesionales y usuarios cada mes.Si tiene servicios o productos Linux que ofrecer ¡Llámenos!
Tlf.: +34 951 010 556Fax: +34 951 010 516
98
PRÓXIMO NÚMERO
98 Número 16 W W W . L I N U X - M A G A Z I N E . E S
SCRIPTSEl perfume caro se vende en botellas
pequeñas, dicen algunos. Igual que el
veneno, dicen otros. La cuestión es que
los scripts, esas pequeñas joyas de la pro-
gramación que hacen una sola cosa, pero
de una manera super-eficiente, son la
esencia del control sobre un sistema
Linux. En el número 17 de Linux Maga-
zine veremos algunas ideas para opti-
mizar scripts para Bash. Asimismo la
plataforma para desarrollo para red
Twisted, una infraestructura basada en
Python y que habla la mayoría de los
protocolos de Internet.
Terminaremos nuestro repaso a las
novedades en el mundo del scripting con
un artículo sobre RealBasic, un entorno
que permite portar de manera sencilla
scripts realizados en VisualBasic a Linux.
MUDS SENCILLAS
No, no vamos a revolcarnospor el fango. MUD son lassiglas de Multi-User
Database, y con Mudbag esposible crear bases de datosmultiusuario sencillos sinnecesidad de pasar por lascomplicaciones de motoresde bases de datos máscomplejos como MySQL yPostgreSQL.
DOBLE KLIK
Si piensas que instalar software enun sistema Linux es complicado,piénsalo de nuevo, porque llegaKlik, el nuevo concepto deinstalación para KDE, que permitedescargar e instalar con un únicoclic de ratón, sin problemas dedependencia y sin tocar el sistemasubyacente. ¿Imposible? Averiguacómo funciona en el próximonúmero de Linux Magazine.
A LA VENTA: MAYO 2006
Junio 2006: Número 17
PRÓXIMO NÚMERO