1/2004 Linux es un Windows mejor
L
es doy la bienvenida cordial a todos los Lectores de la primera edición europea de la revista Linux+, la única revista sobre Linux acompanada de dos DVDs, disponible en 12 países de Europa. He utilizado Linux tanto en mi casa, como en el trabajo desde hace ya un par de años. Mi aventura con este sistema operativo empezó con Slackware 3.3, que instalé desde disquetes en mi casa: necesitaba un sistema de Unix, porque en la universidad tenía clases relacionadas con esta materia. Linux me gustó, pero decidí cambiar la distribución por Debian, que sigo utilizando hasta ahora. Entre tanto en el trabajo empleaba varias versiones de Red Hat y Mandrake, para quedarme al fin con Aurox. De vez en cuando, observo el funcionamiento de Windows que utilizan unos amigos míos y tengo que decir que Linux dispone de las mismas funciones, pero estoy convencido de que su potencia supera significativamente la de Windows. Últimamente he observado el desarrollo dinámico de herramientas que permiten arrancar las aplicaciones de Windows en Linux. El mejor ejemplo es Wine. Con ayuda de este programa puedo arrancar sin obstáculos programas tan populares como Photoshop o juegos (Diablo II). En el presente número de Linux+ me gustaría mostraros que Linux es una alternativa atractiva al sistema Windows. Primero, junto con el sistema se ofrecen varios equivalentes de Windows (GIMP, MLDonkey, Samba). Segundo, en Linux podemos arrancar los programas desde Windows. Tercero, en Linux podemos trabajar incluso en Windows (CoLinux). En los DVDs hemos insertado populares distribuciones de Linux, preparadas tanto para la instalación (Mandrake 10.0), como para el uso (Linux+ Live DVD). Os invito a la lectura y os ruego nos enviéis vuestras opiniones sobre la revista.
4
Descripción del contenido de DVDs Piotr Truszkowski
Actualidades
8
Novedades
10
Núcleo Linux
12
Debian
14
Mandrake
15
Aurox
16
KDE
18
LinuxFresh
Krzysztof Krawczyk
Maja Królikowska
Grzegorz Prokopski
Daniel Koć
Robert Główczyński
Paweł Biliński
Piotr Machej
Krzysztof Krawczyk Redactor Jefe de Linux+
Bimestral Linux+ está publicado por Software-Wydawnictwo Sp. z o. o. Producción: Monika Godlewska monikag@software.com.pl Redactor jefe: Krzysztof Krawczyk krzysiek@lpmagazine.org Redactor: Piotr Truszkowski piotrt@lpmagazine.org Asistenta de Redacción: Katarzyna Gajewska kasiag@lpmagazine.org Preparación de DVD: Krzysztof Krawczyk, Piotr Truszkowski Diseño portada: Agnieszka Marchocka Publicidad: adv@software.com.pl Suscripción: subscripcion@software.com.pl Maquetación y composición: Marcin Ziółkowski marcin@software.com.pl Traducción: Paulina Stosik Correctores: Rosario Ortega Serrano, Silvia López de Pariza Barbosa, Fernando Escudero García, Mario Plasencia Ortega, Jorge Barrio Alfonso Distribución: SGEL Avda Valdelaparra, No29, Polígono Industrial, 28108 Alcobendas (Madrid), España
2
Linux+ 1/2004
Dirección: Software–Wydawnictwo Sp. z o.o., ul. Lewartowskiego 6, 00-190 Varsovia, Polonia La Redacción se ha esforzado para que el material publicado en la revista y en los DVDs que la acompañan funcionen correctamente. Sin embargo, no se responsabiliza de los posibles problemas que puedan surgir. Todas las marcas comerciales mencionadas en la revista son propiedad de las empresas correspondientes y han sido usadas únicamente con fines informativos. La Redacción usa el sistema de composición automática Imprenta: Stella Maris Los DVDs incluidos en la revista han sido comprobados con el programa AntiVirenKit, producto de la empresa G Data Software Sp. z o.o. ¡Advertencia! Venta del presente número sin el consentimiento del editor es ilícito e ilegal.
Tema del número: Integración de Linux y Windows Entrevista
Primeros pasos
con los creadores de Wine 20 Entrevista y CrossOver Office
48 MLDonkey Piotr Machej
Krzysztof Krawczyk
Gráficos 2.0 26 GIMP Kamila Folta Ya han pasado tres años desde la creación de la primera versión de GIMP, un ramo firme de 1.2.x. Con impaciencia hemos esperado una edición nueva de este conocido programa para tratamiento de gráficos, esta vez basado en la librería GTK+ 2.x. En el artículo vais a encontrar un listado de características de la versión final.
34 Piotr Truszkowski
Photoshop en Linux Muchas personas creen que Photoshop, de la empresa Adobe, es el mejor programa de creación y edición de gráficos. Por desgracia, no existe su versión para Linux. Este problema se puede resolver gracias a la utilización de una herramienta que se llama Wine. En el artículo encontraréis una guía con explicaciones de cómo arrancar con éxito Photoshop 7 en Linux.
Integración de Linux y Windows Linux 38 Cooperative Krzysztof Krawczyk Ya hemos escrito sobre las posibilidades de usar Wine para arrancar aplicaciones Windows bajo Linux, y también del arranque de unos ordenadores virtuales con el sistema Windows con ayuda de VMware. Sin embargo, a veces nos gustaría arrancar Linux bajo Windows. En este caso nos ayudará un proyecto nuevo con el nombre de Cooperative Linux. De una manera simple accederemos a una consola de texto del sistema Linux, p.e. Debian o Gentoo.
Las redes P2P se han difundido gracias a su eficiencia en la descarga de grandes cantidades de datos. Una de estas redes es el popular “borrico”. Con ayuda del cliente más universal de este protocolo MLDonkey.
51 DCGUI-Qt Piotr Truszkowski Direct Connect es una red muy popular P2P. Existen varios clientes de este servicio de Linux. El más popular, y probablemente el mejor de ellos, es DCGUI-Qt.
52 BitTorrent Daniel Koć El rápido protocolo del intercambio de datos con el nombre BitTorrent se empezó a utilizar para facilitar las representaciones ISO de populares distribuciones de Linux, así como de programas grandes para este sistema, p.e. demos de juegos comerciales.
Equipo digital en Linux 54 Cámara Piotr Wolny La mayoría de las cámaras digitales asequibles en el mercado funcionan correctamente con Linux, sobre todo las más nuevas, que soportan el protocolo USB-Storage.
Para programadores programa de mensajería 60 Nuestro instantánea
Marek Sawerwain PYRO es una librería escrita en Python destinada a la creación de unas aplicaciones dispersas. Después de la lectura del artículo vais a saber cómo escribir vuestro propio programa de mensajería instantánea, parecido a Licq (ICQ) o Psi (Jabber).
Linux en la red
Para jugadores
3.0 – un controlador completo del 42 Samba dominio Windows NT
Army 68 America’s Krzysztof Wolski
Rafał Szcześniak La versión nueva de Samba, por primera vez garantiza la funcionalidad completa del controlador del dominio Windows NT bajo la licencia de GNU GPL. Posibilita a los destinatarios sustituir completamente Controlador de Dominio Principal (PDC) que funciona en el sistema Windows NT con un equivalente: el paquete Samba 3.0, en casi cada sistema Unix, p.e. Aurox Linux. Además, el proceso de migración en sí fue elaborado con todos los detalles, por eso, ningún administrador tendrá problemas con él.
¿Te gustaría ingresar en el Ejército Americano? En la realidad no sería tan fácil, pero basta con jugar en America’s Army para comprobar qué nos parece una vida así. Al principio, la vida dura de un recluta: muchos entrenamientos. Luego, se puede tomar parte en varias misiones cada vez más importantes en el territorio del enemigo.
Tournament 2004 70 Unreal Piotr Truszkowski En el juego Unreal Tournament 2004 como siempre disparamos con varias armas contra nuestros enemigos, pero podemos también movernos en todoterrenos y pilotar en sencillos aviones de caza.
www.lpmagazine.org
3
aktualności descripción de DVDs
GNOME 2.6 La última versión estable de este popular entorno gráfico. En comparación con la versión anterior, se subsanaron varios errores molestos, cambió el modo de reconocer los ficheros MIME, se introdujeron varias mejoras que aumentaron la utilidad del entorno. Paquetes fuentes. http://www.gnome.org/ KDE 3.2.1 Paquetes binarios de este entorno gráfico de trabajo más popular en el mundo, destinados para las distribuciones: – Fedora Core 1/Aurox Linux 9.3; – SuSE Linux 9.0. En el disco adicionalmente se encuentran los paquetes fuentes. http://www.kde.org/ Adobe Photoshop, InDesign, Illustrator El conjunto de tres aplicaciones populares, imprescindibles en cada agencia de gráficos (versiones trial): – Adobe Photoshop: programa de tratamiento de ficheros digitales de gráficos (gracias a sus funciones extensas, varias opciones de desarrollo y a la marca de renombre de su fabricante, Adobe Photoshop es el líder indiscutible en el mercado de aplicaciones profesionales de gráficos, destinadas a la edición de ficheros gráficos tipo raster); – Adobe Illustrator: programa de edición de gráficos vectoriales; el competidor más importante de Corel Draw; – Adobe InDesign: programa de composición de textos de enormes posibilidades, se puede desarrollar fácilmente; el competidor más importante de Quark, popular en los ordenadores de Macintosh. Todas estas aplicaciones funcionan bajo WINE, una implementación libre Win32 para plataformas de Unix que incluye Linux. http://www.adobe.com/ UFO: Alien Invasion Algunos jugadores, sin duda, recuerdan el juego UFO: Enemy Unknown. Gracias a la combinación interesante de juego de táctica estratégico, con tema actual de vida extraterrestre, se creó un bestseller mundial. UFO: Alien Invasion tiene mucho en común con su hermano mayor. http://ufo.myexp.de/
disco A
Linux+ Live DVD
L
inux+ Live DVD es una distribución de Linux que arranca con el DVD. No es necesario instalarlo en el disco duro y puede funcionar de manera independiente del sistema operativo ya instalado. Para poner en marcha Linux+ Live, es suficiente indicar en BIOS del ordenador la unidad DVD como herramienta básica de arranque, introducir el DVD con la distribución y volver a arrancar el ordenador. Luego vemos la pantalla de bienvenida. Después de pulsar la tecla [Enter], Linux+ Live DVD arrancará. Podremos seleccionar el idioma que deseamos utilizar en el sistema, entre inglés, francés, español, alemán y polaco. Por ejemplo, para arrancar el sistema con el soporte del idioma inglés, escribimos en y pulsamos [Enter]. El sistema automáticamente detecta nuestro equipo y configura el entorno gráfico. Linux+ Live DVD contiene, entre otros: n
n
n
núcleo Linux 2.4.22 con varios parches que amplian sus funcionalidades; entorno gráfico KDE 3.2.1: nueva versión del entorno gráfico más popular para Linux; Entre varias novedades hay que destacar el nuevo Konqueror (en su versión actual puede competir con Mozilla, a ver que programa llevará el premio), el nuevo menú (simplemente tiene un aspecto más interesante y más moderno, p. ej. incluye pestañas de división de tareas, aplicaciones y herramientas más usadas), KDE Wallet (guarda nuestras contraseñas de forma segura, cifrada) y muchas otras aplicaciones interesantes. En comparación con las versiones antiguas, se aumentó la estabilidad del paquete y se eliminó miles de errores. Comunicadores de mensajería por Internet: comunicadores Psi y Kopete
GIMP y Sodipodi
Linux+ 1/2004
n
n
n
n
n
n
n
OpenOffice.org 1.1.1 La última versión del mejor paquete de oficina Open Source. OpenOffice.org es un paquete que permite el intercambio de datos libre con el software de Microsoft Office. http://www.openoffice.org/
4
Linux+ Live DVD
adjuntos facilitan el contacto con personas que están a cientos kilómetros de nosotros; Psi es uno de los mejores clientes de la red Jabber, en cambio, Kopete es un verdadero multicomunicador con soporte de ICQ, AIM, MSN, Yahoo, IRC, GaduGadu y de SMS. Programas de soporte de la red P2P; Gracias a los programas DCGUI-Qt y MLDonkey se puede descargar varios datos desde Internet durante largas horas. Samba 3: un servidor de ficheros y de impresoras. Su última y la mejor versión; En comparación con otras ediciones, Samba 3 se comunica mejor con los sistemas Windows y garantiza al usuario una mejor eficiencia, y al administrador un trabajo sin interrupciones y sin averías. America’s Army: la versión completa del juego de destreza, en primera persona, basada en el motor de gráficos de popular Unreal; Postal 2 Demo: controversial juego de destreza para adultos; Unreal Tournament 2004 Demo: la demo de la nueva versión del juego de destreza que transformó el mundo de partidos en la Red; aplicaciones de multimedia; y mucho más...
Después de arrancar, hay que entrar en el sistema. Ponemos aurox como login y pulsamos [Enter]. Linux+ Live DVD es una buena oportunidad de presentar Linux en su entorno. Si llevas contigo el disco con esta distribución, puedes utilizarlo en cada lugar donde haya acceso al ordenador. ¡Qué te diviertas!
descripción de DVDs
disco B
Mandrake 10.0 Community DVD
M
andrake Linux es una distribución que goza de estima entre los usuarios principantes de Linux. Se debe entre otros a su instalación sencilla e intuitiva, a su enorme comunidad y a su configuración simple. El sistema está provisto de una cantidad enorme de varios tipos de configuradores, por eso, incluso una persona que empieza su aventura con el ordenador no debería tener problemas con el manejo de su nuevo sistema operativo. En Mandrake Linux 10.0 Community, entre otros, encontraréis: n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
núcleo Linux 2.6.3; librería Glibc 2.3.3; servidor del entorno gráfico XFree86 4.3; entornos gráficos KDE 3.2, GNOME 2.4.2 y IceWM 1.2.13; paquetes de oficina OpenOffice.org 1.1 y KOffice 1.3; navegador web Mozilla 1.6; cliente del correo electrónico Evolution 1.4.5; programa de gráficos GIMP 1.2.5; reproductor de música XMMS 1.2.9; reproductor de películas MPlayer 1.0.0pre3; conjunto de compiladores GCC 3.3.2; servidor web Apache 2.0.48, servidor de ficheros y de impresoras Samba 3.0.2; servidor de bases de datos MySQL 4.0.18; servidor FTP ProFTPD 1.2.9; servidor de correo electrónico Postfix 2.0.18; servidor de acceso remoto OpenSSH 3.6.1p2.
Mandrake Linux 10.0 es un sistema accesible al usuario español. El entero procedimiento de instalación se puede realizar en español y, a partir de ahí, ya tenemos un sistema adaptado a nuestras necesidades idiomáticas. El enorme conjunto de software suministrado junto con la distribución es la siguiente gran ventaja de Mandrake Linux 10.0. Encontraremos aquí literalmente de todo: en totalidad, se nos entregan más de 3.000 paquetes que podemos utilizar a cada instante.
6
Linux+ 1/2004
Mandrake 10.0 Community
En comparación con las versiones anteriores, se nota más la transformación del núcleo del sistema. El nuevo Mandrake está provisto de un núcleo de la serie 2.6.x, lo que llega a ser un estándar entre los fabricantes de distribuciones de Linux. La interfaz, un poco distinta, Mandrake Control Center es una de las nuevas transformaciones, así como la existencia de fuentes del núcleo estándar (faltaron en la edición 9.2 que imposibilitaba, por ejemplo, la instalación de drivers para tarjetas gráficas basadas en chipsets Nvidia), de versiones nuevas de escritorios (entre otros, KDE 3.2) y de aplicaciones. Se eliminaron varios errores, observados desde la publicación de la penúltima versión (entre otros, el problema con las estaciones LG). En resumen, el nuevo Mandrake es más rápido, más estable y más moderno. La versión 10.0 nos ofrece cambios verdaderamente revolucionarios en comparación con las versiones anteriores y os recomendamos calurosamente su actualización. La instalación del nuevo Mandrake es muy sencilla y no debería presentar dificultades, incluso a un usuario principante. Si disponemos de un disco
duro nuevo y limpio, podemos realizarla en diez pasos: n
n
n
n
n
n
n
n
n
n
arrancamos el ordenador con el DVD adjunto; después del arranque del programa de instalación, seleccionamos el idioma; definimos el nivel de seguridad como estándar; dividimos el disco en particiones, por medio de la opción Usar el espacio libre; seleccionamos los grupos de paquetes que se instalarán; aceptamos el comunicado relativo a la seguridad; definimos la contraseña del administrador del sistema y agregamos un usuario nuevo; configuramos los periféricos conectados al ordenador y nuestro entorno gráfico; configuramos el programa de arranque; finalizamos la instalación con el comando Volver a arrancar.
Nos queda desearte, querido Lector, ¡qué te diviertas con la nueva versión de Mandrake Linux! http://mandrakelinux.com/
descripción de DVDs
MEPIS 2004.05.b00
M
EPIS es una distribución de Linux que se desarrolla de modo dinámico y goza cada vez de más estima entre los usuarios (según Distrowatch.com, se halla dentro de las diez primeras distribuciones de Linux más populares). ¿Cuál es la diferencia entre MEPIS y sus competidores? En realidad, la respuesta es muy sencilla: MEPIS es un híbrido muy logrado una distribución tipo Live y de una distribución común que podemos instalar en nuestro disco duro. A decir verdad, existen muchas distribuciones Live que se pueden instalar en el disco duro (por ejemplo Knoppix), pero ninguna de ellas ofrece la posibilidad de usar otro disco con paquetes adicionales. MEPIS es conocido también por sus herramientas de administración; sencillas e innovadoras. Últimamente ha aparecido una versión nueva de esta distribución de Linux, provista de varias novedades y de aplicaciones actuales (entre otros, núcleo Linux 2.6.4 y KDE 3.2.1). Se han introducido muchas modificaciones interesantes, por eso nos hemos decidido a incorporar este sistema en nuestra revista. Recomendamos encarecidamente MEPIS a todos los que quieran probar Linux sin necesidad de instalar el sistema entero en el disco duro y que deseen hacerlo si la distribución testeada les ha gustado. La tecnología de compresión de la imagen ha facilitado que en el sistema aparezcan ¡más de 1.100 programas! Entre ellos, se encuentran aplicaciones multimedia, gráficas, de música, paquetes de oficina, navegadores web y muchos otros.
MEPIS puesto en marcha
Es significativo que MEPIS esté basado en otra distribución muy popular: Debian GNU/Linux. Por eso, después de instalar MEPIS, se nos ofrecerá el acceso a un enorme repositorio de paquetes para Debian. Además, la instalación de MEPIS se limita a un par de clicks con el ratón, mientras que la instalación de Debian no es tan fácil. MEPIS, ya durante el arranque, reconoce el equipo que tenemos en nuestro ordenador y lo configura de modo automático. La situación con el entorno gráfico es similar: toda la configuración se produce durante el arranque y es completamente automática. MEPIS lo componen, entre otros: n
n
n
n
n
n
n
n
n
n
Centro de instalación de MEPIS
n
n
núcleo Linux 2.6.4; servidor del entorno gráfico XFree86 4.3.0; entorno gráfico KDE 3.2.1; conjunto de compiladores GCC 3.3.3; programa de gráficos GIMP 2.0.0; librería Glibc 2.3.2; programa para grabar CD/DVDs K3B 0.11.9; paquete de oficina OpenOffice.org 1.1.1; paquete de oficina KOffice 1.3; navegador web Mozilla 1.6; reproductor de música XMMS 1.2.10; reproductor de películas Xine 1-rc3b.
Podemos asegurar que MEPIS es una distribución interesante y digna de nuestro interés. La facilidad de uso, la gran velocidad y estabilidad, las herramientas de administración interesantes y la creciente popularidad son ventajas que, con certeza, les interesarán a muchos usuarios de Linux, tanto a los futuros como a los actuales. http://www.mepis.org/
Requisitos mínimos de sistema: n
n
n
n
procesador Pentium CPU Frequency a un 1 GHz como mínimo; 256 MB de RAM; tarjeta gráfica con 8 MB de memoria RAM por lo menos; unidad de CD a velocidad mínima de 32x.
www.lpmagazine.org
7
¿Quieres recibir tu revista regularmente? ¿Quieres pagar menos que en el kiosko?
REG
ALO
¡Pide suscripción! LiNUX+ por suscripción es más barata:
86 €
¡En cada número 2 DVDs! Si tienes preguntas, problemas o dudas, escribe a:
subscription@software.com.pl
Pedido
Por favor, rellena este cupón y mándalo por fax: 0048 22 860 17 71 o por correo: Software-Wydawnictwo Sp. z o. o., Lewartowskiego 6, 00-190 Varsovia, Polonia; e-mail: subscription@software.com.pl Nombre(s)
Apellido(s)
Dirección C. P.
Localidad, provincia
Teléfono
Fax
Suscripción a partir del N°
Precio de suscripción anual (12 números) de LiNUX+ – 86 € Realizo el pago con: □ tarjeta de crédito nO
Válida hasta
□ cheque a la dirección de la editorial Software-Wydawnictwo Deseo recibir la factura antes de realizar el pago □
Fecha y firma obligatorios:
actualidades aktualności
Noticias OpenOffice.org 1.1.1 Los programadores del proyecto OpenOffice.org facilitaron la versión 1.1.1 de su paquete de oficina. Incluye las correcciones de los errores detectados (más de 500), pero también se introdujeron unas funcionalidades nuevas: OOoDic Autopilot (descarga de manera automática de uno de 87 diccionarios) y el soporte ampliado para idiomas, en el que se utilizan puntos para dividir las partes decimales de las enteras. http://www.openoffice.org/ GNOME 2.6 Los programadores del proyecto GNOME facilitaron la versión 2.6 de su entorno gráfico de trabajo. Entre la enorme cantidad de nuevas funcionalidades que se encuentran en la versión final podemos destacar la interfaz más intuitiva en el asistente de ficheros (Nautilus); la ventana Ordenador con sistemas de ficheros, portadores y recursos de la red intercambiables (como Mi Ordenador en Windows XP); la ventana de diálogo ampliada para seleccionar un fichero; cambios dinámicos del sistema de teclado, la inclusión de botones multimedia entre las combinaciones de teclas dinámicas (antes accesible en Acme de fuera); facilidades en la selección de la imagen de fondo en el escritorio; varios applets cómodos en el escritorio. Además, en GNOME 2.6 se encuentran nuevas versiones de aplicaciones, entre otras, la del navegador Epiphany y del programa de teleconferencias GnomeMeeting. http://www.gnome.org/start/2.6/ Linspire – nuevo nombre de LindowsOS La lucha en el juzgado por la denominación LindowsOS en algunos países se decidió a favor de la empresa Lindows Inc. (p.e. en Francia), pero en otros a favor de Microsoft, o todavía continúa. No se puede vender el sistema con la misma denominación en todo el mundo, por eso, la empresa decidió cambiar el nombre de su producto por Linspire. De este modo, Microsoft debería acabar con las demandas a la empresa. Dentro de poco, todos productos serán accesibles con la denominación nueva. http://www.linspire.com/
8
Linux+ 1/2004
novedades
SUSE Linux 9.1
D
urante las ferias CeBIT 2004, Novell presentó la versión inicial del sistema SUSE 9.1, esta vez basada en el núcleo de la rama 2.6. ¿Qué tipo de novedades podemos encontrar en el sistema? Aquí tenéis un listado de elementos más importantes de esta distribución de Linux: n
n
n
n
n
n
n
n
n
núcleo Linux 2.6.4; entorno gráfico KDE 3.2.1 y GNOME 2.4.2; servidor de ficheros y de impresión Samba 3; programa de gráficos GIMP 2.0; programa de edición de videos MainActor 5.2; paquete de oficina OpenOffice.org 1.1.1; herramienta para grabar discos CD/ DVD K3b 0.11.7; asistentes de información Kontact 0.8.1 y Ximian Evolution 1.4.6; programa de administración de bases de datos Rekall 2.2.0b1.
El nuevo núcleo del sistema Linux en la versión 2.6 introduce varias soluciones nuevas, p.e. ALSA (Advanced Linux Sound Architecture), una arquitectura avanzada de soporte del sonido por el sistema Linux, la cual es ahora su componente integral. Además, se ha implementado la perfeccionada interfaz ACPI (Advanced Configuration and Power Interface – avanzada intefraz de configuración y administración de la alimentación), que permite administrar con más efectividad la alimentación y deja prolongar el tiempo de funcionamiento de ordenadores portátiles alimentados con batería. En GNOME 2.4.2 se puso hincapié en la utilidad y la comodidad de manejo y, al mismo tiempo, se ofrecieron varias modificaciones importantes, entre otras, la herramienta para grabar CDs, el cliente universal de envío instantáneo de mensajes (Gaim) y la configuración simplificada de impresión (con ayuda del sistema CUPS - Common Unix Printing System). Se implementaron mejoras importantes en el campo de la facilidad de acceso. La nueva infraestructura Gnopernicus facilita el uso del escritorio a las personas invidentes y a las que no ven bien y ofrece herramientas que hacen uso del entorno GNOME más fácil a las personas minusválidas. En KDE 3.2.1 se introdujeron más de diez mil modificaciones, gracias
SUSE 9.1
a que se construyó la versión de escritorio KDE más rápida y más estable. Entre las novedades se encuentra: la nueva versión del organizador personal Kontact, que facilita el acceso a la interfaz unificada para los mensajes de correo electrónico, la agenda, el libro de direcciones y los apuntes. El cliente del envío instántaneo de mensajes Kopete permite contactarse de manera rápida a través de las redes MSN, AIM, ICQ, IRC, Yahoo Messenger y Jabber. Disponemos también de un módulo integrado de verificación de ortografía en formularios enviados por Internet y en los mensajes del correo electrónico. Se ampliaron funcionalidades del programa Konqueror, que permite administrar los ficheros y mirar las páginas web. Con ayuda de Konqueror los usuarios pueden importar las pestañas desde el programa Internet Explorer, mirar de manera rápida los directorios con imágenes, las carpetas y los servicios de la red, copiar CDs con música y mostrar por pantalla las imágenes guardadas en cámaras digitales y en dispositivos portátiles USB con memoria flash. La herramienta KWallet cumple función del repositorio central con contraseñas y datos de acceso. SUSE 9.1 es el primer paquete de Linux que incluye versiones demostrativas del programa de edición de texto Textmaker y de la hoja de cálculo Planmaker de la empresa Softmaker. Otra novedad es la base de datos Rekall y la edición actual del software para el soporte de correo electrónico Moneyplex de la empresa Matrica. La versión Professional SUSE 9.1 permite arrancar este sistema en los procesadores de 32 y 64 bits. Se puede adquirir el sistema SUSE 9.1 a partir de 6 de mayo.
actualidades aktualności
Noticias Escalera al cielo Con Kolivas recientamente ha publicado el desarrollo de su idea, el cual consiste en un nuevo algoritmo de clasificación de procedimientos, llamado por él staircase scheduler. Como se puede esperar de Con, en esta clasificación destaca la importancia de interacción. Scheduler todavía está en la fase de pruebas, pero las primeras pruebas muestran que en muchos casos se comporta de manera parecida, o mejor que el de la serie oficial del núcleo 2.6. Además, asegura una mejor interacción y responsividad. Asimismo, parece que la aplicación arranca más rápido y las prioridades de procesos son reales y más previsibles. http://kerneltrap.org/node/view/2744 Futuro de OSS Durante el desarrollo de los núcleos 2.5, se agregó ALSA (Advanced Linux Sound Architecture) a la línea principal de Linux, la cual llegó a ser el subsistema básico del soporte de sonido en Linux. Antes de esto, una función similar cumplía OSS (Open Sound System), que después de la inclución de un sistema nuevo, reescrtito y perfeccionado se designó como depreciado (ing. deprecated). Todavía hay usuarios de este sistema, incluso dispuestos a mantenerlo, ya que algunas de las tarjetas se soportan solamente por OSS. Los adversarios de mantener OSS en el núcleo argumentan que el uso de dos subsistemas que tengan las mismas funcionalidades no tiene sentido. La suerte de OSS todavía no está predestinada, sin embargo, se lo guardará como un integrante de núcleos de la serie 2.6. http://kerneltrap.org/node/view/2718 Preemptible o no preemptible Hasta hace poco tiempo, era obvio que en un empleo normal en Linux, el núcleo debería ser preemptible. No obstante, el modo de uso de Linux cambió un poco y resulta que un núcleo con el parche que permitiera su preempción simplemente funciona mejor. Sin embargo, no todos son entusiastas de agregar en sus núcleos las opciones CONFIG_PREEMPT. Por ejemplo, Andrea Arcangeli es su adverario y cree que la preempción del núcleo ocasionará sólo un peor rendimiento. Hay que recordar que un núcleo preemptible tiene mejor rendimiento, medido por retrasos medios y no por retraso pesimista. http://kerneltrap.org/node/view/2702
10
Linux+ 1/2004
núcleo Linux
Nuevo VM
T
odas las personas interesadas en el desarrollo del núcleo de la serie 2.4 a lo mejor se acuerdan de un inesperado y muy comentado cambio del subsistema entero de la memoria virtual cuando se publicó la versión 2.4.10. La solución fue propuesta por Andrea Arcangeli. En principio, esta sustitución provocó disputas y mucho ruido, sobre todo porque tuvo lugar en el curso del desarrollo de una serie estable del núcleo. Quizás por eso, todas las mejoras más serias del subsistema de la memoria virtual, ahora y en un futuro cercano, se introducirán con mucha más prudencia. Andrea Arcangeli desde hace ya tiempo se prepara para introducir las siguientes modificaciones. Tienen que ver con la eliminación del proceso inverso (existente en el núcleo 2.6) de mapear la memoria (rmap) y sustituirla por una solución más escalable. Esta sustitución podría mejorar el uso de grandes cantidades de memoria RAM en los procesadores de 32 bits. La necesidad de introducir las modificaciones propuestas surge del hecho de que cada vez más usuarios, sobre todo los de los sistemas comerciales, esperan que Linux dé soporte a una mayor cantidad de memoria RAM que la actual. Andrea Arcangeli, esta vez probablemente como representante de los intereses de SuSE, no es la primera ni la única persona que procura conseguirlo. En los núcleos Red Hat se utiliza el mecanismo 4G/4G, propuesto por Ingo Molnar. Linus Torvalds no lo acceptó al considerar esta solución del problema demasiado rápida y poco elegante y, por tanto, no se incorporó en la serie oficial de núcleos. Andrea Arcangeli empezó a trabajar sobre VM de Linux de manera bastante metódica, beneficiándose de los trabajos anteriores y de los conocimientos de otros programadores. Indicó rmap, o sea, el mapeo inverso de la memoria, como el primer culpable de la falta de posibilidad de soportar 32 GB de memoria en Linux. El objetivo de rmap ha sido la aceleración del intercambio de memoria a través del mantenimiento de listas de revocaciones a las páginas. De este modo se solucionaron algunos problemas de rendimiento, pero a coste de la memoria utilizada con este objetivo. Todas las gestiones que hay que realizar para que
Andrea Arcangeli
rmap utilice menos memoria no tienen éxito y su cantidad crece junto a la RAM disponible y al número de procesos que la utilizan. Por causa de todo esto, el soporte actual del subsistema de memoria virtual no es muy escalable y no es apto para grandes sistemas. Andrea Arcangeli intenta encontrar una solución de esta situación, sirviéndose de la técnica de mapeo inverso de objetos, que al principio propuso Dave McCracken. Gracias a esta solución, no es necesario guardar en la memoria las llamadas cadenas rmap, relativas a los fragmentos de memoria donde están copiados los ficheros. En cuanto a las páginas equivalentes a los ficheros, encontramos las posiciones adecuadas en el array de páginas, utilizando otras estructuras de datos, no relacionadas directamente con el mapeo inverso. Son estructuras que describen
Estructura VMA es suficiente para el núcleo para que encuentre la adecuada página de la memoria
kernel@lpmagazine.org
La situación se complica cuando se ejecuta el proceso hijo
las así llamadas áreas de memoria virtual (VMA - Virtual Memory Areas). Este parche se llama objrmap-core. El parche elaborado se refiere solamente a los ficheros, lo que no permite renunciar del todo al modo corriente de mapeo inverso; junto con los ficheros se mapea también la memoria anónima, o sea, destinada a la pila, o la memoria colocada con ayuda de malloc(), no relacionada con un objeto definido (fichero). El parche que sustituye rmap, destinado a este tipo de memoria, se llama anonvma. Su funcionamiento se basa en el hecho de que las páginas anónimas surgen como resultado del comando de memoria notificado por el procedimiento. Si se produce una situación así, esta memoria no se divide entre los procesos y no necesita la cadena rmap; es suficiente la indicación de VMA oportuno por lo que se puede describir el mapeo en el espacio de direcciones de un proceso determinado. Es más difícil si se ejecuta fork(). En este caso, más arrays de páginas pueden indicar cualquier página de memoria virtual y no se puede usar una sola VMA. Andrea Arcangeli diseñó una nueva estructura de datos para usarla en estas situaciones. Es una lista de estructuras que representan VMA. Si el núcleo quiere desmapear la página, es suficiente pasar por esta lista. Esta solución tiene sus defectos: los cálculos son complicados. Con esta solución, el tiempo de preparación de una página destinada a la área de intercambio, desgraciada-
mente no va a ser estable y va a aumentar con el número de procesos que dividan entre sí la página. En opinión de Ingo Molnar, esto es inadmisible porque disminuye el rendimiento para mejorar el soporte de una cosa que, a su juicio, es completamente anticuada. El tercer parche en el conjunto de Andrea Arcangeli es prio_tree, el cual acelera la búsqueda de VMA adecuadas. De lo que Andrea escribió en linux-kernel resulta que da su obra por terminada. Declaró también que SuSE planifica ubicarla en versiones próximas. Linus Torvalds, en principio, aceptó estos cambios en el subsistema de memoria virtual, pero de esta manera no se lo empleó hasta los trabajos sobre 2.6, es decir, tan sólo después de incluir los parches en los núcleos de la serie -mm. Andrew Morton ya ha aceptado la implementación de modificaciones de Andrea, pero afortunadamente planifica realizarlas poco a poco, de manera sistemática. Aquí merece la pena entender que los parches que transforman los mecanismos de mapeo inverso de la memoria virtual contienen 4.600 líneas de código que se encuentran en 60 ficheros. Es una pena que el autor no quiera introducir algunos cambios revolucionarios de este tipo durante los trabajos sobre los núcleos en desarrollo. Es sorprendente que las modificaciones más significativas casi siempre se realicen en las versiones estables. No sabemos para cuánto tiempo se destabilizará la serie 2.6 con la introducción de las modificaciones descritas. Es curioso, ya que por el contenido de los mensajes de Andrea resulta que él no ve nada malo en esto. Parece como si realizara sus objetivos principales y apenas le preocupara el orden de los trabajos impuesto ¨desde arriba¨. Por desgracia, tales situaciones, entre otras, demuestran los defectos en el desarrollo del modelo de algunos proyectos de Software Libre. http://lwn.net/Articles/77215/ http://lwn.net/Articles/74295/ http://lwn.net/Articles/76338/
sección llevada por Maja Królikowska
Reiser4 Los autores de Reiser4, un sistema de ficheros de contabilidad que va a sustituir a Reiserfs, prometen que su producto ya está preparado para usar. Han anunciado que para que su éxito sea completo sólo les falta corregir dos errores pequeños. Cuando lo hagan, intentarán colocar Reiser4 en los núcleos de la serie 2.6. Por ahora, animan a todo el mundo que pruebe y utilice su software, puesto que ellos mismos ya no pueden llevar a cabo el pad del sistema. La documentación de Reiser4 es especialmente interesante; está llena de nociones matemáticas bastante complicadas y describe unos algoritmos bastante complejos, lo que puede desanimar un poco a los potenciales usuarios. http://www.namesys.com/v4/v4.html PR AMFS Steve Longerbeam ha anunciado que la empresa MontaVista, que se ocupa principalmente de los dispositivos empotrados, ha publicado el sistema de ficheros PRAMFS. Este sistema se utilizará cuando se precise de acceder a fragmentos de memoria RAM, de manera propia de los sistemas de ficheros. La firma MontaVista procura patentar este invento, pero promete no patentar ninguno de los proyectos publicados en GPL. http://kerneltrap.org/node/view/2585 Kref A partir de la versión 2.5.45 se implementó un nuevo tipo Kobject para los objetos del núcleo. En principio, iba a ser un tipo sencillo que facilitaría de modo uniforme contar las revocaciones, etc. En la práctica, Kobject se desarrolló bastante y es un tipo de junta dentro de todo un modelo de dispositivos. Para las personas interesadas solamente en contar revocaciones, Greg Kroah-Hartman inventó el tipo kref, con sus funciones kref_init, kref_ get, kref_put. Andrew Morton muy rápido aprobó Kref y lo incorporó al núcleo oficial. http://lwn.net/Articles/75289/ Netpoll Hace poco, en los núcleos de la serie 2.6, apareció el mecanismo Netpoll, antes disponible en forma de unos parches separados o también en el árbol -mm. Netpoll permite soportar las funciones del núcleo de bajo nivel, que pueden enviar paquetes por la red sin emplear toda la capa de la red y sin activar interrupciones. Algunos ejemplos del empleo de Netpoll son: Kgdbeth, que permite debugar el núcleo a través de la red, y Netconsole, el cual facilita la consola remota. http://lwn.net/Articles/75289/
www.lpmagazine.org
11
actualidades aktualności
Noticias Puro puerto AMD64 de 64 bits A varios developers les interesa mucho la versión doble de Debian de 32 y de 64 bits para AMD64. Técnicamente es posible realizarla, pero, por desgracia, no es nada fácil. Ninguna de las grandes distribuciones realiza este tipo de funciones. Sin embargo, estaría bien si Debian soportara AMD64, por lo menos, como una pura plataforma de 64 bits. Sería más fácil y más rápido realizarlo. Es muy probable que se continúe desarrollando las dos ideas de uso de AMD64. http://lists.debian.org/debian-amd640402/msg00235.html http://lists.debian.org/debian-amd640402/msg00263.html El sistema principal de ficheros en LVM+R AID Uno de los usuarios de Debian escribió que, utilizando un HOWTO disponible en la red, había conseguido configurar Debian de manera que arrancara desde el sistema de ficheros que se encuentra en LVM (Logical Volume Manager), que a su vez estaba en RAID. Resulta que no fue tan difícil ejecutarlo. La descripción detallada de los pasos que realizó este usuario se encontraba en su mensaje. http://lists.debian.org/debian-user-0402/ msg05104.html http://www.midhgard.it/docs/index_ en.html ¿Para qué necesitamos las arquitecturas antiguas? Como ocurre antes de cada publicación de Debian, circulan mensajes en los que se propone lanzarlo con más presteza a costa de eliminar o empeorar el soporte para las arquitecturas antiguas o menos populares. Martin Michlmayr, en respuesta a uno de estos mensajes, ha explicado que va a soportar estas arquitecturas tanto tiempo cuanto haga falta. Además, ha afirmado que los paquetes para estas arquitecturas se construyen de manera automática, de suerte que no reportan gran trabajo a los developers. Aparte de esto, Debian aprovecha la oportunidad de participar activamente en los tests de GCC, XFree86, del núcleo, lo que influye en la mejora de la calidad de Software Libre en todas las arquitecturas. http://lists.debian.org/debian-vote-0403/ msg00851.html http://lists.debian.org/debian-vote-0403/ msg00852.html
12
Linux+ 1/2004
debian
Democracia en Debian
Ú
ltimamente se han organizado dos votaciones importantes: una para determinar el destino de la sección non-free y otra para elegir, como cada año, el Líder del Proyecto. Sin duda, ha sido la primera votación la que ha desatado las emociones más fuertes y las disputas más calientes. Se han presentado dos propuestas opuestas: n
n
retirar el soporte activo de la sección non-free; En la próxima versión de Debian se eliminará la sección non-free, y tampoco habrá más ediciones estables de sección non-free. El proyecto Debian dejará de soportar de manera activa a la sección misma. Se anulará la Cláusula 5. del Contrato Social. reafirmar el soporte para la sección nonfree; Dado que algunos de nuestros usuarios aún tienen que utilizar unos programas que no son conformes a las normas de DFSG (Debian Free Software Guidelines), se reafirma la obligación de mantener las secciones contrib y non-free en el archivo del proyecto. Estas secciones incluyen unas versiones comprimidas de tal software; al mismo tiempo se facilitará la infraestructura de Debian, por ejemplo, el sistema de rastreo de errores y grupos de discución, con el objetivo de ayudar a conservar los paquetes de software de tipo non-free.
Se discutió mucho sobre la interpretación y el significado de la Cláusula 5. del Contrato Social que tiene el siguiente contenido: „Reconocemos que algunos de nuestros usuarios necesitan programas que no sigan las Directrices de Software Libre de Debian. Para este software hemos creado las áreas «contrib» y «non-free» en nuestro archivo de FTP. El software en estos directorios no es parte del sistema Debian, aunque ha sido configurado para usarse con este sistema.” El resultado de la primera de las propuestas votadas fue que se cambiaría un documento básico de Debian: su Contrato Social. Por esta razón, para su aprobación se requiere una mayoría de 3 a 1. La segunda propuesta requirió una mayoría relativa. El modo de contar votos en Debian es bastante atípico y fue descrito en el documento con los resultados de la votación. Basta con
Martin Michlmayr ha vuelto a ser elegido Líder de Debian
decir que la primera propuesta de cambios en el Contrato Social y de eliminación de la sección non-free ni siquiera alcanzó una mayoría relativa, por no hablar de una mayoría de 3:1. Por el contrario, la segunda alcanzó sin problema una mayoría de votos exigida y se la aprobó oficialmente. La elección del Líder del Proyecto fue la segunda votación importante en el entorno de Debian. Ganó claramente Martin Michlmayr, dejando atrás a Branden Robinson. El último lugar lo ocupó, de acuerdo con las previsiones, Gergely Nagy, que tomó parte solo por “el puro placer de participar”. Parece que fue una elección muy buena para Debian. Además, parece que Martin no tendrá una tarea muy difícil a la hora de cumplir con los objetivos de su anuncio electoral, ya que la mayoría de ellos son una continuación natural de actividades que realizaba hasta ahora y que consisten en la mediación, coordinación y mejoramiento de comunicación entre Martin y los developers. ¡Adelante Martin! http://www.debian.org/social_contract.pl.html http://lists.debian.org/debian-devel-announce/ 2004/debian-devel-announce-200403/ msg00019.html http://www.debian.org/vote/2004/platforms/ tbm
debian@lpmagazine.org
Sarge – ¿está cerca? ¿Lejos: en qué punto?
T
eniendo en cuenta que ya es una tradición que las versiones estables de Debian aparezcan una vez cada dos años (sin contar las actualizaciones), no es de sorprender que la próxima edición de Sarge despierta mucho interés. Merece la pena mencionar que Sarge, como distribución de prueba, sigue en fase de evaluación. Las versiones nuevas de paquetes importantes suelen pasar de unstable a testing; por eso, podemos estar seguros de que Sarge en el momento de su publicación lanzará un software bastante nuevo, aunque ya testeado. Sirva de ejemplo GNOME; hace poco un grupo especial de developers se empezó dedicar a GNOME. Hace un mes GNOME 2.4 se encontraba en la distribución testing, mientras tanto se acababa de publicar la versión 2.6. Para asegurarse de que los usuarios de Sarge dispondrán de la mejor versión posible de GNOME, enseguida han decidido crear paquetes de GNOME 2.6 para que pueda encontrarse en testing antes de la publicación Sarge. Lo mismo sucede con XFree86. La versión 4.3 dispone de unas correcciones propias de Debian que le permiten soportar 11 arquitecturas y acaba de entrar en unstable, con el fin de alcanzar testing antes de la publicación de Sarge. Hay que mencionar que no podemos contar con la versión 4.4, procedente del proyecto XFree86, a causa de cambios en el modo de licenciar que han sido rechazados por la mayoría de distribuciones de Linux. El nuevo Instalator de Debian cada semana soporta la mayor cantidad de ar-
Estamos más cerca del lanzamiento de Debian Sarge
quitecturas. Resulta que después de añadir las primeras arquitecturas, la adición de las siguientes ya ha sido mucho más fácil y rápida. Estos trabajos siguen inacabados, pero se nota que el resultado final, imprescindible para la publicación de Sarge, se alcanzará dentro de poco tiempo. Se trabaja también mucho para que el Instalador sea más cómodo en el uso. Joey Hess calculó cuántas veces hay que teclear actualmente para instalar Debian, empleando el nuevo instalador y resulta que es necesario teclear 11 veces, de las que diez son tecleos de [Enter]. Bien conocido es el problema relacionado con el número de errores críticos para la publicación, que siempre es muy visible antes del lanzamiento de cada versión. En este momento están detectados más de 300 errores, pues a los developers les queda mucho trabajo para corregirlos. http://lists.debian.org/debian-devel-announce0402/msg00009.html http://kitenet.net/~joey/blog/entry/11_keystrokes_to_debian-2004-03-04-01-58.html
RapidSVN
S
eguramente, gracias a la facilidad de migración de CVS y una arquitectura bien pensada y coherente, el sistema de control en la versión Subversion gana popularidad cada vez en más proyectos. Hace poco se liberó la versión 1.0. RapidSVN que es un cliente gráfico de este moderno sistema de control de la versión, muy cómodo para el usuario. Ya se puede conseguir en el repositorio de paquetes de Debian. http://packages.debian.org/rapidsvn
RapidSVN
sección llevada por Grzegorz Prokopski
Aplastamiento de bugs Durante un fin de semana de marzo se han celebrado los días de lucha contra los errores. Como siempre, la acción fue coordinada por el canal #debian-bugs en el servidor irc.debian.org. Entre otras cosas, gracias a este tipo de actividades, disminuye el número de errores. http://lists.debian.org/debian-develannounce-0403/msg00012.html http://bugs.debian.org/release-critical/ Paquetes GNOME-Sharp y Mono En Debian unstable aparecieron unos paquetes relacionados con el proyecto Mono, es decir, con una implementación libre creada por la empresa Ximian, del C# de Microsoft. Según las noticias que se oyen, Mono se acerca a la versión 1.0, por eso, ya es hora de instalar estos paquetes en Debian. http://packages.debian.org/gnome-sharp ¿Un APT rápido? ¡NetSelect-APT! Este pequeño programa encuentra automáticamente la fuente de paquetes Debian más rápida por el momento y automáticamente genera un sources.list adecuado que enseguida puede ser utilizado por APT. http://packages.debian.org/netselect-apt BloGTK Esta pequeña aplicación GTK permite de manera cómoda soportar los sistemas Blogger, Movable Types y otros que utilizan MetaWeblog API. En la época de la creciente popularidad de blogs, parece claro la necesidad de construir programas de este tipo. A partir de ahora se pueden encontrar también en Debian. http://packages.debian.org/blogtk Linux 2.6 en Woody Adrian Bunk ha facilitado unos paquetes que permiten arrancar los núcleos de Linux de la serie 2.6 en Debian Woody. Estos paquetes están basados en las versiones de la distribución inestable, pues pueden no resultar tan estables como los paquetes originales de Woody. Además, aunque permitan el uso de núcleos de la serie 2.6, esto no significa que se puedan aprovechar todas las modificaciones nuevas. http://www.fs.tum.de/~bunk/packages/ woody/kernel-26.html Vuelta de GIFs El 7 de julio de este año expira la patente internacional de compresión GIF/LZW. Se ha deliberado si se publicará Sarge antes de aquel plazo, porque en caso contrario se podría iniciar el traslado de programas que contienen el código de este algoritmo de compresión de non-free y contrib a la sección main. http://lists.debian.org/debian-legal-0402/ msg00168.html
www.lpmagazine.org
13
actualidades aktualności
Noticias Mandrake 10.0 en AMD64 Beta1 Como sabe todo el mundo, el futuro de los ordenadores PC está relacionado con los procesadores de 64 bits. Las construcciones AMD gozan de estima, por ahora principalmente en el uso con servidor, pero dentro de un tiempo, con la bajada de precios se encontrarán en los ordenadores de escritorio. Recientemente MandrakeSoft ha lanzado una versión Beta de distribución Mandrake 10.0 Community, justamente para estos procesadores. Junto con todos los rasgos conocidos del procesador de 32 bits, la versión para arquitectura AMD64 contiene un soporte mejorado de la interfaz Serial ATA; esto incluye el soporte para controladores Promise, Silicon Image y VIA, y un soporte experimental con una aceleración de 32 bits GL para tarjetas que funcionan bajo XFree86. Se pueden descargar las imágenes ISO Beta1 desde los servidores FTP o por el cliente del protocolo BitTorrent. http://www.mandrakelinux.com/en/ 100amd64beta.php3 Paquetes GNOME 2.6 para Mandrake Muy pronto, después de publicar el entorno GNOME en la versión 2.6 aparecieron unos paquetes no oficiales para Mandrake 10.0 Community, que no es mucho más antiguo, pero que todavía está provisto de GNOME 2.4. Para agregar el repositorio elaborado a su instalador de paquetes, en la consola del administrador hay que ejecutar el comando siguiente:
urpmi.addmedia gnome-2.6 http:// wwwra.informatik.uni-rostock.de/ ~waschk/Mandrake/GNOME2.6/RPMS with synthesis.hdlist.cz
Se puede continuar la instalación tanto con la ayuda de un instalador gráfico, como en el modo textual con Urpmi. Estos paquetes serán útiles para aquellas personas impacientes que no quieren arriesgarse con un ramo no estable de la distribución que se llama Cooker, en el que pronto aparecerá el nuevo GNOME. En seguida, después de publicarse esta información, aparecieron personas interesadas en la versión GNOME 2.6 para Mandrake 9.2, pero por desgracia no hubo ninguna respuesta a esta petición. http://www.pclinuxonline.com/modules. php?name=News&file=article&sid=8 648
14
Linux+ 1/2004
mandrake
mandrake@lpmagazine.org
sección llevada por Daniel Koć
¡MandrakeSoft vuelve al juego!
E
l 30 de marzo de 2004, la empresa MandrakeSoft volvió a su situación normal; al terminar el período de su protección determinado por ley. La empresa tuvo problemas financieros, ya en los tiempos de su anterior director, que fue demasiado generoso al firmar contratos con sucesivos clientes, sin fijarse en la posibilidad de cumplir con las condiciones de estos contratos, y que tenía demasiadas expectativas acerca de, entre otros, el desarrollo de una sección de capacitación en negocios. El resultado ha sido que los usuarios del sistema no estaban seguros, en aquel tiempo difícil para la empresa, de si su distribución sobreviviría de esta forma. Tampoco ayudó la sustitución de directores; durante mucho tiempo, la empresa MandrakeSoft no ha logrado alcanzar la fluidez financiera, aunque su distribución ha tenido repetidos éxitos. Al final, se presentó en el juzgado una propuesta de un estado especial para la empresa, que la protegiera de la quiebra, hasta que llegara el dinero contante y vivificador.
La empresa MandrakeSoft vuelve también a bolsa
De este modo, después de 14 meses de funcionamiento de la empresa MandrakeSoft, el juzgado aceptó un plan de nueve años para la salida de apuros. La situación mejoró de manera significativa ya a finales de 2003; fue el primer trimestre desde hacía cuatro años provechoso para la empresa. Ayudaron su restructurización, los ahorros y la concentración en la oferta principal, o sea, en la distribución Mandrake Linux. http://www.mandrakesoft.com/company/press/ pr?n=/pr/corporate/2462
PCLinuxOS 2k4 se desarrolla
E
l señalamiento 2k4 en el nombre del sistema PCLinuxOS de la distribución de Linux basada en Mandrake Linux, probablemente signifique el año 2004. Por desgracia, no sabemos cuándo exactamente se estrenará PCLinuxOS. Por ahora, Texstar, su autor se concentra en la actualización rápida del repositorio con paquetes. Por eso, ya podemos descargar paquetes con el nuevo GNOME 2.6 o con el sistema de gráficos XFree86 4.4, que fueron rechazados por gran parte de otras distribuciones (esto incluye, entre otros, el Mandrake materno) a causa de la licencia. La próxima versión, todavía de demostración Preview6, probablemente ya contendrá el núcleo de la serie actual 2.6 y KDE, por lo menos en la versión 3.2.2 (o más nueva). Podemos conocer las soluciones introducidas, instalando Preview5 y actualizando los paquetes hasta el estado existente,
Texstar cuida mucho la presentación gráfica de su distribución de Linux
desde el repositorio de paquetes de Texstar. Si no lo hacemos, sólo nos resta tener paciencia... http://www.pclinuxonline.com/pclos/ index.html http://ftp.ibiblio.org/pub/Linux/distributions/ contrib/texstar/pclinuxos/apt/pclinuxos/2004/
actualidades aktualności
aurox
aurox@lpmagazine.org
Noticias
Aurox 9.4
E
n junio de 2004 aparece la próxima versión de Aurox, una distribución conocida de Linux, desarrollada en Polonia. En Aurox 9.4, como antes, se utilizan paquetes básicos de Fedora Core 1. En comparación con la edición 9.3, el sistema se actualizará de modo significativo. Los nuevos paquetes son accesibles en la sección unstable del repositorio Yuma (para probar los paquetes experimentales, hay que agregar la sección unstable a base y updates). OpenOffice.org, ya en la versión 1.1.1, se construirá con el empleo de scripts desarrollados por Ximian (http://ooo.ximian.com), con una colección de parches separada, destinada para Aurox. La nueva versión de este popular paquete de oficina abre mucho mejor los documentos MS Office. El paquete openoffice.org-i18n, con el soporte de idiomas nacionales, se dividirá en unos paquetes menores, destinados a los idiomas respectivos. De este modo, en una instalación con el soporte de idioma único se ahorrará más de 250 MB. En la distribu-
Aurox Live en revistas En PC Magazin, la revista alemana dedicada a la informática (edición 5/2004 con DVD) salió Aurox Live 1.4.1. La distribución se encontró en una buena compañía: de una edición especial SuSE 9.0 y Knoppix 3.3, con que se presentaron las posibilidades de Linux. http://www.pc-magazin.de/ Nueva presentación gráfica de OpenOffice.org 1.1.1
ción se incluirán también las traducciones de ficheros con ayuda de OpenOffice.org. El nuevo Aurox dispondrá de un entorno KDE en la versión 3.2.1 y con KOffice 1.3 al que se agregarán, entre otros, unos filtros de importación de documentos MS Word. Probablemente se adjunte a la distribución el núcleo 2.6, en un disco adicional; como opción. http://www.aurox.org/
Actualizaciones en Aurox 9.3
S
e han publicado ya las primeras actualizaciones y nuevos paquetes para Aurox 9.3. Desde los repositorios Yuma se pueden descargar: la nueva edición de núcleo, los paquetes XFree86 y otras correciones preparadas para Fedora Core 1, y las nuevas versiones de algunas herramientas de configuración. El núcleo 1.2174.nptl en la actualización de Fedora Core 1 contiene modificaciones de los drivers gamma DRI, SSTFB, aacraid, vt8231, ncpfs. Se ha corregido también el error en la función do_mremap (CAN-2004-0077). En la edición 55 de paquetes Xfree86 se hallan, por ejemplo, algunas correciones de errores de seguridad: CAN-2004-0083, CAN-2004-0084, CAN-2004-0106 en libXfont y un soporte perfeccionado AGP para tarjetas Radeon. En los paquetes con drivers del subsistema de impresión (ghostscript, hpijs, foomatic, gimp-print) se ha actualizado la base de datos sobre los drivers Foomatic para la versión 3.0, el conjunto de drivers de impresoras de tinta Gimp-Print para la versión 4.2.6 y el driver HP Inkjet para la versión 1.5. El paquete hwdata con la base de datos del equipo contiene unos listados actualizados de monitores, posibilitando el uso de
sección llevada por Robert Główczyński
la tarjeta gráfica ATI Radeon 9200SE y de la tarjeta de red de 3com 3c940. El paquete mutt, con un cliente popular del correo electrónico para la consola de texto, contiene una correción trasladada desde la versión 1.4.2 (pad del programa después del recibo de un email especialmente elaborado: CAN-2004-0078). El paquete tcpdump contiene correciones de los errores de descodificación en ISAKMP y RADIUS (CAN-2003-0989, CAN-2004-0055), que pueden llevar a tomar control sobre el sistema por medio de unos paquetes adecuadamente preparados. En el paquete system-config-packages se ha modificado el modo de ordenar paquetes, reduciendo la necesidad de cambio de CDs durante el proceso de agregación de paquetes adicionales al sistema por medio de la herramienta Agregar/Eliminar programas. En el paquete MPlayer se ha mejorado el arranque de la versión con la interfaz gráfica. En los repositorios Yuma se encuentran también, entre otras, las versiones nuevas de los paquetes: SDL (1.2.7), libxine (1.0 RC3b), alsa-lib y alsa-driver (1.0.3), evolution (1.4.6), gnumeric (1.2.8) y kickpim (0.5.3).
Soporte de modems en Aurox Live Las últimas versiones de Aurox Live se completaron con drivers para los winmodems más populares. La versión 1.4.2 permitió conectarse con Internet con ayuda de modems PCI, compatibles con el driver SmartLink (también con algunos chipsets de Intel, como ICH4). En la edición 1.4.4 se agregó la versión de drivers Conexant HSF sin limitar el campo (5.03.27mbs ibeta02122600); se reconocieron también algunos modems SmartLink USB (testeados en ASMAX neo V.92 USB). Asimismo, se corrigió el configurador de la red (con esta herramienta se puede tanto iniciar como finalizar la conexión por medio de winmodem). Conferencias A mediados de marzo “Pingüinos”, una organización que propaga el uso de Linux en Hannover (Alemania), organizó una presentación de Aurox. Se podía obtener información sobre el sistema, y a cada participante se le entregó un disco con Aurox Live. El 23 de marzo se podía también escuchar sobre Aurox, su uso y sus méritos en una conferencia Dev.Con en Varsovia (Polonia). Asimismo, tuvo lugar una conferencia sobre la plataforma .NET en Aurox (el proyecto Mono). Durante LinuxExpo en Praga (República Checa), los visitantes pudieron ver una presentación de Aurox como sistema para casa, oficina o escuela. LinuxTag 2004 Desde el 23 hasta el 26 de junio, se celebrarán las siguientes ferias/ conferencias LinuxTag. Como el último año, tendrán lugar en Karlsruhe (Alemania) y, al igual que hace un año, se podrá encontrar con los programadores de Aurox, intercambiar opiniones o comprar la versión nueva de la distribución. Os invitamos cordialmente a que vengáis al stand de la editorial Software-Wydawnictwo http:// www.linuxtag.org/2004/index.html
www.lpmagazine.org
15
actualidades aktualności
Noticias ¿YaST liberado? YaST, una herramienta básica de configuración de la distribución SuSE, ha de ser disponible bajo licencia de GPL. Aunque estas noticias todavía no se han confirmado, es una buena señal tanto para los usuarios del mismo YaST, como para los de KDE. ¿Por qué? Por una razón muy sencilla: si se lo libera, YaST puede llegar a ser para KDE una herramienta de configuración del sistema independiente, utilizada tanto por los usuarios de SuSE, como también por los de Debian, Slackware o PLD. http://dot.kde.org/1080146702/ KDE 3.2.1 Aunque la siguiente versión de KDE – con el número 3.2.1 – es únicamente una versión “corregida”, que contiene un mil o incluso más errores eliminados, no obstante, son unos errores muy importantes que influían tanto en la estabilidad, como en la seguridad del entorno. Por lo tanto, merece la pena en tiempo libre actualizar nuestro entorno. http://dot.kde.org/1078855423/ Kasablanca A lo mejor el nombre no nos sugiere mucho, pero la tarea principal de esta programa es muy simple: es un sucesivo cliente FTP. La versión 0.3, la última en el momento de escribir el presente texto, junto con unas funciones estándar propias de todos los clientes FTP, dispone ante todo de un soporte para codificar los datos con ayuda de SSL/TLS (los dos sistemas de conexión para la autorización usan los comandos TLS, no SFTP). En resumen, es un cliente sencillo para usuarios exigentes. http://kasablanca.berlios.de/
kde
KBear – cliente FTP
U
n usuario común y corriente de Linux, hasta hace poco, no tenía mucha alternativa en cuanto a los clientes FTP. Sin embargo, esta situación con el paso de tiempo empezó a cambiar. Principalmente, porque cada vez más usuarios necesitaban un cliente FTP sencillo, similar a Total (Windows) Commander. La necesidad agudiza el ingenio, pues se comenzaron a construir cantidades innumerables de clientes FTP, tanto de texto como gráficos, independientes de diferentes entornos gráficos. Hace poco se puso de moda el uso de programas integrados de cualquier modo con el entorno gráfico empleado. Hace mucho tiempo para KDE fue formado Krusader, desarrollado hasta hoy día administrador de ficheros, pero ya se han publicado nuevos programas “especializados” en mirar los recursos FTP. Uno de ellos es precisamente KBear, al cual podemos comparar con el popular GFTP, escrito con ayuda de librería GTK. ¿Qué puede hacer KBear? Casi todo lo que un buen cliente FTP debería poder hacer, pero voy a mencionar sólo sus funciones más importantes: n
n
n
n
KickPIM Aplicación con el nombre KickPIM se define muy bien con palabras: acceso rápido. Este programa, o más bien applet, ha sido creado para posibilitar al usuario el acceso desde el nivel de panel. Applet da soporte al libro de direcciones, al envío de correo electrónico y tiene la función de recordar sobre acontecimientos importantes (p.e. cumpleaños). Un suplemento digno de atención. http://kickpim.sourceforge.net/ Sonido desde DVD servido en bandeja de plata DVD Audio Extractor, que es únicamente un script del programa Kommander, sirve para lo que muchas veces hacen los adictos a p.ej. bandas sonoras: copiar al formato MP3/OGG las rutas de sonido desde nuestro DVD, y luego (como una opción) quemarlas con ayuda de la aplicación K3b para un disco. Sencillo, claro y gratis.
16
Linux+ 1/2004
n
n
n
n
n
n
n
interfaz basada en Qt con sistema de ventanas “interiores” - MDI (Multi Document Interface); soporte del protocolo sftp (FTP protegido con el uso de SSH); soporte de cortafuegos; soporte de proxy/SOCKS; posibilidad de importación de pestañas FTP desde varios clientes; posibilidad de desconectar el programa automáticamente, después de un tiempo determinado /despúes de finalizar la descarga; barras de herramientas configurables y atajos de teclado; “brujo automágico” (wizard) que nos ayuda a configurar el programa después de arrancarlo por primera vez; posibilidad de previsualizar imágenes en miniaturas (thumbnails); disponible traducción al español; logeo del curso de la sesión FTP.
Desde luego, KBear es un programa bajo la licencia GPL (GNU General Public License), pues son asequibles sus fuentes y paquetes binarios para respectivas distribuciones de Linux.
KBear
KBear, a primera vista, me sorprendió, sobre todo, por su modernidad y por sus posibilidades de configuración o de ajuste, según nuestras preferencias (a veces nos falta este tipo de programas para Linux).
Instalación
Empecemos, pues, la instalación de nuestro candidato al cliente FTP usado todos los días. La instalación se limita a unos pasos estándar. Comenzamos como siempre descargando las fuentes de nuestro programa desde la página principal del proyecto (las fuentes también se encuentran en el CD/DVD). A continuación, descomprimimos el archivo descargado a cualquier lugar elegido en el disco duro. Luego pasamos a un directorio con las fuentes y ejecutamos los siguientes comandos: ./configure --prefix=´kde-config --prefix´ make ; make install
Si la instalación se ha realizado sin problemas, elegimos en el menú KDE la posición “Ejecuta el comando...” y escribimos kbear o buscamos nuestro cliente directamente en el menú. Existe la posibilidad de instalar el programa desde paquetes binarios, que se pueden descargar desde la página principal del proyecto (también están incluidos en el CD/DVD). Actualmente los paquetes RPM con la última versión son disponibles solamente para SuSE 9.0. Os deseo que lo paséis bien transmitiendo ficheros, con KBear arrancado, que merece un lugar firme en el listado de programas utilizados a diario. http://kbear.sourceforge.net/ http://www.kde-apps.org/content/show. php?content=10741
kde@lpmagazine.org
KMLDonkey – cliente P2P para KDE
E
n este número me gustaría explicaros unas cuestiones relativas a las aplicaciones P2P (Peer2Peer) destinadas para KDE. Voy a empezar por un programa dedicado al protocolo P2P: es una versión de cliente del popular MLDonkey para el entorno KDE. Miremos las funciones de KMLDonkey: n
n
n
n
n
n
n
“K Borrico” está construido a base de la librería Qt y de librerías kdelibs; es capaz de realizar las mismas funciones que GUI original para MLDonkey; tiene una opción de arranque automático del demonio de MLDonkey durante el inicio del cliente; genera en modo real diagramas gráficos del ancho de banda utilizado; permite controlar nuestro MLDonkey desde el nivel de teléfono móvil por medio de la aplicación MobileMule; facilita el uso de un añidado navegador de sitios web relativos a MLDonkey; contiene el plug-in KIOSlave, que per-
KMLDonkey
mite pasar del nivel del navegador Konqueror a directorios con los ficheros actualmente descargados y con los ficheros cuya descarga se ha finalizado (p.e. mldonkey:/Default/downloading/). El cliente descrito es muy eficiente. El placer de utilizarlo en KDE se intensifica con la posibilidad de descargar un applet especial para panel KDE, el cual nos indica, p.e. el número de ficheros descargados y la velocidad de descarga/transmisión de datos. http://www.kmldonkey.org/ http://mobil.emule-project.net/
Apollon – frontend para GIFT
J
unto a unas aplicaciones especializadas destinadas a mirar los recursos de una red P2P concreta, existen programas con ayuda de los cuales podemos conectar a varias redes al mismo tiempo. Esto supone un rastreo en recursos de muchas redes por medio de un sólo programa y es posible gracias al programa GIFT, que se construyó hace bastante tiempo, pero hasta ahora se puede utilizarlo con éxito para unas tareas tan fáciles como, por ejemplo, la descarga de un solo fichero. La situación cambió gracias al proyecto que se llama Apollon. Es un frontend gráfico para GIFT que de manera significativa nos facilita el trabajo con este programa. Para aprovechar los beneficios del cliente descrito, primero hay que instalar y configurar el mismo GIFT. La instalación básica de este programa nos permitirá contactar a la red OpenFT, pero podemos también ampliar sus funcionalidades por el uso de plug-ins adecuados. Apollon funciona con mucha estabilidad, lo que facilita la creación de unas condiciones convenientes para aprovechar en totalidad las posibilidades de cada protocolo empleado. Tenemos un GUI sencillo, dividido en “subpáginas”. Lo primero que vemos después de arrancar el programa es una página
GIFT
con un resumen y estado de conexiones y con un listado de plug-ins descargados. Otras pestañas son: la página de búsquedas, el listado de ficheros descargados y el navegador de ficheros de sonido descargados. Además, Apollon – como cada aplicación P2P buena – tiene una opción de docking en la bandeja del sistema. Les recomiendo este pequeño y cómodo programa a todos los que quieren encontrar de manera rápida un fichero determinado en recursos de varias redes P2P (esto incluye el popular KaZaA) y descargarlo sin estudiar una tonelada de manuales de sistemas o documentación. http://apollon.sourceforge.net/ http://gift.sourceforge.net/ http://developer.berlios.de/projects/gift-fasttrack/ http://sourceforge.net/project/showfiles. php?group_id=34618&package_id=89837
sección llevada por Paweł Biliński
Monitor ISDN Buena noticia para los usuarios de conexiones ISDN: pronto aparecerá Kisdnmonitor, un pequeño programa que os facilitará la administración y el control de capacidad de conexión. Todos los que tienen ISDNSERVER instalado pueden ver diagramas de su propia conexión, cualquier tipo de archivo y estadísticas, en otras palabras, pueden seguir de cerca su propia ISDN. Es una herramienta útil, sobre todo, en situaciones cuando necesitamos unos logs actuales y correctamente modificados, en realidad, ya desde la instalación de este programa pequeño, pero muy útil. http://www.elogix.ch/linux_en.html ¿ Firefox de plástico? A lo mejor la mayoría de vosotros ya ha visto el estilo de ventanas con el nombre Plastik, que ya se ha empleado como estándar en KDE 3.2. ¿Hay alguien a quién no le gustaría tenerlo por separado, aparte de KDE? No hay ningún impedimiento para poder disfrutar con un diseño “plástico” de nuestros navegadores preferidos: Firefox y Mozilla. Se han generado pieles para los dos, usando los iconos Crystal, cuyo autor es un artista con el seudónimo Everaldo. http://www.kde-look.org/content/ show.php?content=11442 http://www.kde-look.org/content/ show.php?content=11337 Convertamos un poco... Otra aplicación para personas a las que les gusta un manejo fácil. Esta vez, el objetivo de nuestro programa de nombre muy sencillo, Konverter, es la conversión con ayuda de Mencoder exterior de todo tipo de ficheros vídeo en .... otros formatos vídeo y con empleo de varios descodificadores. El Konverter permite además “recortar” un fichero destinado a la conversión o cambiar unos detalles con respecto al formato elegido. http://kde-apps.org/content/ show.php?content=9884 Consejo: KDialog ¿A quién de nosotros no le gustaría crear un programa, incluso muy pequeño, que funcionara en un entorno gráfico y además en KDE. Programadores de este entorno nos lo han facilitado: han creado una herramienta que se llama KDialog. Permite generar de un modo muy sencillo, p.e. un frontend gráfico para nuestro script en Bash. Por ejemplo, con un comando kdialog –msgbox “Hola, mundo” crearemos una ventana con el mensaje “Hola, mundo” y con un sólo click“OK”. http://developer.kde.org/documentation/ tutorials/kdialog/t1.html
www.lpmagazine.org
17
actualidades aktualności
Noticias SCREEM 0.10.0 A los autores de las páginas web que en su trabajo utilizan el programa SCREEM, seguramente les agradará la aparición de la nueva versión de este programa, basada en la línea de desarrollo 0.9.x. Comparándola con la versión estable anterior, obtenemos muchas mejoras en la interfaz del usuario y correcciones de los errores advertidos. Aunque no es un editor tipo WYSIWYG (que tanto les gusta a algunos webmasters), debería interesar a todos los autores. http://freshmeat.net/projects/screem/ GFTP 2.0.17 Este programa es uno de los más populares clientes FTP. Después de unos meses que habían pasado desde la edición de su versión anterior, se amplió con el soporte para el protocolo FTPS. Por ahora, se codifica sólo una conexión de control. Además, se agregaron modificaciones menores que, por ejemplo, permiten mostrar el desarrollo de la acción de copiar en la barra de título o desactivar el soporte para IPV6. http://freshmeat.net/projects/gftp/ GIMP 2.0.1 Por fin ha aparecido la siguiente versión estable del popular editor de gráficos. Es la primera versión con soporte oficial, no sólo en sistemas tipo Unix, sino también en Windows y Mac OS X. Tiene una nueva interfaz basada en la librería GTK+ en versión 2 y, gracias al empleo de la propiedad „cambios de skins”, se puede cambiar el aspecto del programa. Además, la ventana de diálogo ahora tiene la opción de ”docking”. Se ha agregado el soporte para formatos MNG y SVG, así como se ha proporcionado un soporte correcto de datos EXIF (grabados en ficheros JPG por cámaras digitales). http://freshmeat.net/projects/thegimp/ Grip 3.1.8 Desde luego, muchas personas que disponen de colecciones de CDs de música de vez en cuando hacen sus propias mezclas, escogen de varios discos sus canciones preferidas y las graban en uno. Se puede también guardar una mayor cantidad de canciones en el disco duro en forma de ficheros MP3 o OGG, gracias a que no tenemos que cambiar los CDs. En estas situaciones podemos valernos de Grip, que es capaz no sólo de reproducir música , sino también de grabarla en el disco duro. Además, tiene soporte para encoders externos, con lo que podemos grabar rutas en forma de ficheros en formato MP3 o Ogg Vorbis. Hace poco se lanzaron nuevas versiones que incluyen, sobre todo, correcciones de los errores advertidos. http://freshmeat.net/projects/grip/
18
Linux+ 1/2004
linuxfresh
WINE 20040309
A
unque muchas aplicaciones de Windows tienen buenos equivalentes que funcionan bajo Linux, a veces es necesario arrancar un programa determinado desde Windows. Por esta causa se han creado varios proyectos cuyo objetivo es facilitar esta misión. Uno de ellos es WINE (Wine Is Not Emulator). Wine, como su nombre indica, no es un emulador. Es una alternativa a la aplicación de Windows -API (Application Programming Interface). Para la mayoría de los usuarios lo más importante es que este programa posibilite arrancar muchos programas destinados para Windows bajo el control de sistemas tipo Unix. Es sustancial que Wine pueda funcionar sin el sistema Windows instalado, aunque para algunas aplicaciones puede resultar necesario copiar algunas librerías DLL adicionales. En la página web de Wine (http:// www.winehq.org/ ) se puede encontrar un listado de las aplicaciones soportadas (en sección Support-->Applications). Allí se puede también leer la información relativa tanto a la instalación como al modo de arrancar determinados programas. Además, el sitio incluye comentarios de los usuarios, que muchas veces ayudan a resolver nuestros propios problemas con un programa determinado. Podemos instalar Wine desde las fuentes, pero actualmente se ofrecen unos paquetes preparados para las distribuciones más populares. Para arrancar los programas, es suficiente ejecutar el comando: wine nombre_programa.exe. De este modo podemos, por ejemplo, arrancar una copia del popular cliente IRC – mIRC. Basta con pasar al directorio donde está instalado (si todavía tenemos Windows en el disco) y realizar el comando wine mirc.exe. Podemos también (si no disponemos de Windows) arrancar solamente el programa de instalación (p.e. wine config.exe) y volver a instalarlo. Según el programa, puede instalarse enseguida y sin problemas, como p.e. el juego StarCraft, o requerir más esfuerzo. Muchos problemas con el arranque de los programas Windows tienen que ver con la cuestión de escalar la imagen. Si trabajamos, p. ej. con resolución 1024x768, evidentemente no querremos que un juego antiguo cambie su resolución
Juego Zeus bajo Wine
a 640x480. Este problema se puede resolver si forzamos el arranque de programas en la ventana. En el fichero de configuración ~/.wine/config modificamos y configuramos dos opciones: „Managed” = „Y” „Desktop” = „640x480”
Estas opciones se encuentran en la sección [x11drv]. Desde luego, otros programas quizás exijan varios procedimientos. A veces, es necesario introducir en el registro claves determinadas (ficheros con la extensión .reg en el directorio ~/.wine/ ), copiar las librerías DLL necesarias para el programa, o efectuar modificaciones en el fichero de configuración del programa arrancado. Si queremos, podemos servirnos de una línea de comandos parecida a la de Windows. Basta con arrancar el programa wcmd. Las definiciones de discos a las que tenemos acceso se encuentran al principio del fichero. ~/.wine/config. Además, ejecutando algunos comandos de esta línea, podemos arrancar programas. Vámonos, por ejemplo, al disco con el directorio windows (tras ejecutar el comando C:), luego entremos en el directorio (cd windows). Para abrir el Bloc de Notas sólo necesitamos proporcionar su nombre: notepad.exe. En esta versión se han corregido varios errores. Además, se ha simplificado un poco la sintaxis del fichero de configuración (cuestiones relacionadas con el modo de definir los discos ). Se ha mejorado también una parte de librerías DLL. http://freshmeat.net/projects/wine/ http://linux.magma-net.pl/Linux/wine.php
fresh@lpmagazine.org
sección llevada por Piotr Machej
VMWare Workstation 4.5.1
V
MWare Workstation es un software que nos permite arrancar varios sistemas operativos a la vez, dentro de un sólo ordenador. Con más exactitud, crea el llamado ordenador virtual, en el que podemos arrancar varios sistemas: DOS, Windows, Linux, Novell y otros. Gracias a ello, podemos trabajar, por ejemplo, en Aurox con Windows XP y el último Mandrake arrancado en las ventanas. Es más, los ordenadores virtuales pueden conectarse en una red con nuestro ordenador personal (por tanto, pueden también tener acceso a Internet). ¿Entonces, con qué objetivo se puede utilizar? Hay muchas posibilidades de su aplicación. Podemos, por ejemplo, hacer pruebas de una distribución nueva sin necesidad de asignarle una partición en el disco. Esto ocurre porque VMWare guarda los datos de los sistemas particulares, instalados en los ficheros en el disco. Los programadores pueden probar sus aplicaciones en un par de entornos a la vez, y los administradores pueden examinar soluciones nuevas en la red entre máquinas virtuales. Éstos son solamente algunos ejemplos de muchas de sus funcionalidades. Desgraciadamente, VMWare es un producto comercial. Sin embargo, tenemos la posibilidad de probar el programa durante 30 días. Basta con registrarnos en el sitio web de VMWare (http: //www.vmware.com/ ) y descargar la clave de evaluación y los binarios del programa. Después de instalarlo y arrancarlo, podemos agregar nuevos sistemas. Durante el procedimiento de agregar un sistema nuevo (File --> New --> New Virtual Machine), tenemos que responder a unas preguntas. Tras seleccionar una configuración normal (podemos también servirnos de la opción Custom con el objetivo de ajustarla mejor a nuestras necesidades), indicamos qué sistema operativo vamos a instalar. A continuación, introducimos el nombre de nuestro ordenador virtual y el directorio, en el que se colocarán sus ficheros. Este directorio debe hallarse en una partición con mucho espacio libre porque allí también se colocará un fichero con el disco duro virtual, en el que vamos a instalar el sistema huésped. VMWare ofrece varios modos de conectar el ordenador virtual con la red. Si
Windows y Linux codo con codo...
tenemos una dirección IP libre, podemos proporcionarla a nuestro ordenador nuevo y utilizar la conexión tipo redes unidas (bridged networking). En otro caso, NAT debería ser suficiente. Desde luego, si no queremos que el ordenador virtual tenga acceso a la red externa, podemos conectarlo a una red de un solo servidor (hostonly networking) o impedir del todo el acceso a la red (Do not use a network connection). Si hemos elegido la opción Custom, podemos además indicar la cantidad de memoria accesible desde el ordenador virtual y asignar un espacio determinado en el disco. Si queremos que el fichero que contiene el disco duro virtual se amplie, según las necesidades, o sea, incluso si le asignamos 4 GB de espacio, hasta que no llenemos el disco del ordenador virtual, el fichero será relativamente menor. Nos queda ahora arrancar nuestro ordenador (Start this virtual machine) e instalar el sistema que hemos elegido. VMWare es capaz de utilizar tanto las unidades CD, FDD como conexiones USB unidas con nuestro ordenador. Después de instalar el sistema, vale la pena indicar File --> Install VMWare Tools lo que, por ejemplo, nos permitirá mejorar las propiedades gráficas del ordenador virtual. En su nueva versión, VMWare ha mejorado el soporte para las distribuciones de Linux que utilizan el kernel de la serie 2.6, así como el soporte para el sistema Windows 95, arrancado en procesadores rápidos. Además, se ha ampliado la dimensión máxima de memoria accesible para ordenadores virtuales, se ha perfeccionado la implementación SCSI y se han realizado algunas que otras modificaciones más.
PHP 4.3.5 Puesto que cada vez hay más páginas web que utilizan PHP, probablemente no es necesario presentar a nadie este lenguaje de script. Se utiliza con más frecuencia en los sitios web, puesto que ofrece un soporte muy bueno para las bases de datos, y permite tratar datos y mostrarlos de forma adecuada. Por la facilidad de su sintaxis, es fácil aprenderlo, lo que también es una de las causas de su popularidad. La versión actual tiene, ante todo, correcciones de errores (entre otras, las relacionadas con la asignación de memoria). Junto con errores principales, se modificaron más de 140 errores menores y de fuentes de problemas. En muchos sitios web, la seguridad depende en gran medida de PHP y por eso merece la pena actualizar nuestro software. http://freshmeat.net/projects/php/ Ethereal 0.10.3 En el trabajo de un administrador de red es imprescindible usar herramientas tales como analizadores de protocolos de la red, conocidos popularmente como sniffers. Permiten interceptar paquetes remitidos en la red y analizar su contenido, lo que puede ayudar a encontrar fuentes de problemas. Uno de estos programas es Ethereal. El objetivo de sus autores es la creación de un programa abierto que pueda igualar a sus competidores comerciales. A juzgar por el índice de funciones (Ethereal p. ej. se arregla con 500 protocolos y puede utilizar ficheros grabados por otros programas de este tipo), no les falta mucho para conseguirlo. En la versión actual se modificaron algunos errores relacionados con la seguridad. Todos los usuarios de este programa deberían actualizarlo. http://freshmeat.net/projects/ethereal/ FV WM 2.4.18 Hay muchos Asistentes de ventanas. FVWM tiene unos requisitos relativamente pequeños en cuanto al equipo, sin embargo, nos ofrece muchas funcionalidades y la posibilidad de ajustar el aspecto de la interfaz al gusto del usuario. Los usuarios con más experiencia pueden crear sus propios temas nuevos, en cambio, los principantes pueden hacer uso de una gran colección de temas existentes. Disponemos de la transparencia, caracteres alisados, sombras de caracteres, un menú dinámico y muchas otras funciones. La nueva versión incluye mejoras en la seguridad. http://freshmeat.net/projects/fvwm/
http://freshmeat.net/projects/vmware/
www.lpmagazine.org
19
entrevista
Entrevista con Alexandre Julliard, responsable por el proyecto Wine
DVD
Después de arrancar la distribución Linux+ Live DVD en el sistema se podrá acceder a Wine.
En el DVD
En el DVD se encuentran los archivos de fuentes y binarios de la herramienta Wine.
20
Linux+ 1/2004
Krzysztof Krawczyk: ¿Podrías presentarte a nuestros Lectores? ¿A qué te dedicas y qué haces en tu tiempo libre (si lo tienes)? Alexandre Julliard: Tengo 33 años y soy ingeniero de software, actualmente desempeño el cargo de director de tecnología de la empresa CodeWeavers, en la que dirijo el desarrollo del proyecto Wine. Soy de origen suizo, pero ahora vivo cerca de San Francisco. Durante gran parte de mi tiempo libre me ocupo también del trabajo en Wine, hago cosas divertidas por las que nadie me pagaría. Como aficionado, me dedico a la astronomía, aprovechando el tiempo agradable de California, y a viajar en moto a lo largo de la bella costa de California. KK: ¿Cómo empezaste a trabajar en el proyecto Wine? AJ: En 1993, cuando ya me había ocupado un poco de Linux, sentí que debía participar de algún modo en el desarrollo de Software Libre. En aquel tiempo, se reunió un grupo para iniciar trabajos relativos al emulador del sistema Windows. Me pareció una buena ocasión de hacer algo para mejorar Linux. Me junté con ellos y comenzamos a realizar pruebas de arranque del solitario de Windows en Linux. KK: ¿De qué te ocupas principalmente ahora? ¿Creo que no me equivoco al decir que son unas tareas parecidas a las de Linus Torvalds (Andrew Morton, Marcelo Tosatti) en el núcleo de Linux? AJ: Sí, es en gran parte el mismo trabajo: verificación de cambios que nos envía la gente, su aceptación o rechazo y, de vez en cuando, lanzamiento de nuevas versiones. Además, muchas veces invento código propio ante todo de bajo nivel. Me ocupo también del desarrollo de herramientas para CodeWeavers.
KK: ¿Cuánta gente elabora o ayuda en la elaboración de Wine? ¿Conoces a la mayoría de ellos? AJ: Siempre ha sido difícil definir un número exacto de personas involucradas en proyectos de este tipo, pero creo que hay cerca de 50 colaboradores fijos y un gran número de ocasionales. Conozco a la mayoría de los principales programadores porque se han celebrado varias conferencias de creadores de Wine, en las que hemos tenido la oportunidad de conocernos unos a otros. KK: ¿Reciben los programadores principales de Wine (Core Team) un salario por su trabajo? ¿Dónde encontráis fondos para ello? AJ: Nadie recibe dinero directamente del proyecto Wine, pero muchos de los principales programadores de Wine trabajan para la empresa CodeWeavers, donde dedican gran parte del tiempo al desarrollo de Wine. CodeWeavers gana dinero principalmente en la venta de la herramienta CrossOver Office y en el soporte técnico relacionado con Wine. KK: ¿Es difícil administrar un proyecto como Wine? AJ: Bueno, eso requiere mucho tiempo, porque hay varias modificaciones que hay que probar, y algunas de ellas son bastante complicadas. Sin embargo, me gusta mi profesión, pues no resulta tan difícil. KK: ¿Te acuerdas del primer parche que elaboraste? AJ: A lo mejor eso tuvo que ver con la visualización del menú y ocurrió durante los dos primeros años del proyecto. Trabajamos en una pequeña aplicación de Windows, tipo “Hola mundo”, provista de un menú. Mi tarea consistió en hacer visualizarlo en la pantalla. Ya hace mucho tiempo se escribió de nuevo este código en su totalidad.
entrevista con Alexandre Julliard
Figura 1. Alexandre Julliard
KK: ¿Cuál es tu campo preferido de tu trabajo en Wine? AJ: Me gusta ocuparme de las cuestiones relacionadas con bajo nivel, tales como el soporte de hilos, administración de memoria, sistemas de ficheros, etc. Me gusta sobre todo el trabajo con el servidor Wine, que es un procedimiento separado que sustituye el núcleo de Windows. Es más independiente de API Windows y tengo más libertad en el modo de implementarlo. No obstante, tiene muchos aspectos interesantes concernientes al rendimiento. KK: Hace tiempo, corrían rumores sobre el uso de la licencia LGPL para Wine. ¿De qué se trataba? ¿Por qué justamente LGPL? AJ: Anteriormente, Wine tuvo una licencia más liberal, pero hace un par de años algunas empresas empezaron a trabajar en versiones cerradas de Wine. Entonces, decidimos que LGPL sería mejor para Wine, ya que aseguraría que las personas que ganaran con nuestro trabajo, a la vez, tendrían que colaborar y compartir con nosotros sus soluciones. Teniendo en cuenta las características de Wine, es esencial que se facilite el funcionamiento de algunas aplicaciones comerciales con Wine, por eso, todavía no hemos elegido ninguna licencia con más restricciones, como GPL. KK: ¿Qué opinas acerca de los productos TransGaming y CodeWeavers? ¿Es WineX o CrossOver Office muy diferente de vuestro Wine original? ¿Cómo colaboráis? AJ: CrossOver Office no se diferencia en casi nada de Wine porque todas las modificaciones que CodeWeavers introduce en Wine se incluyen en el árbol oficial de Wine. Intentamos estar lo más cerca posible del Wine público, porque en el caso contrario, se producirían problemas innecesarios.
Son más significativas las diferencias en el modo de construir estas herramientas que las de su código. WineX difiere de Wine en que TransGaming ya no participa en el desarrollo de Wine. Por eso, su versión es cada vez más diferente de la nuestra, que en mi opinión es muy desventajoso. KK: Macromedia planifica modificar su software para que funcione de manera correcta con Wine. ¿Qué tipo de problemas existen en actualidad en Flash MX? AJ: No lo sé, porque no he examinado con atención Flash MX. Me imagino que la cuestión tiene que ver con problemas típicos, con los que nos topamos a la hora de ocuparnos de una aplicación nueva, como caídas accidentales, problemas con la visualización de la interfaz, carencia de algunas funciones, etc... Me imagino que nos enteraremos de qué tipo de problemas han sido, cuando veamos las modificaciones que se han tenido que introducir en Wine en esta ocasión. KK: Creo que hace poco he leído que pronto aparecerá la versión 1.0... ¿Cuándo podemos esperarla y por qué se retrasa su publicación? AJ: Primero, queremos terminar muchas funciones, sobre todo en el campo de la interfaz de usuario y de la facilidad de configuración. Además, quedan algunos problemas internos que tienen que solucionarse. El listado completo se puede encontrar en la página http://www.winehq.org/site/todo_lists. Vamos a publicar la versión 1.0, cuando esté lista. Es todo lo que puedo prometer. KK: ¿Tú mismo utilizas Wine? ¿Con qué objetivo? AJ: Lo utilizo de vez en cuando para arrancar el paquete Microsoft Office pero, en verdad, ya no lo necesito. He encontrado los equivalentes de Linux para todas las aplicaciones de Windows que utilizaba. Actualmente principalmente arranco Wine para probarlo y desarrollarlo, pero no como usuario. KK: ¿Utilizas Linux en tu trabajo o en casa? Si es así, ¿qué distribución de Linux y por qué? AJ: Empleo Debian, sobre todo, porque en mi opinión es la distribución más segura. Tengo tanto trabajo con los errores en Wine que no quiero buscarlos en el resto del sistema. KK: ¿En tu opinión qué lugar debería ocupar Wine en un sistema moderno de escritorio? AJ: Creo que Wine es indispensable para facilitar a la gente el “transbordo”
entrevista
a la estación de trabajo Linux; hay tantas aplicaciones Windows que la sociedad Open Source no es capaz de garantizar los equivalentes de todas. Por otro lado, creo que Wine debe ser un componente de una solución completa, asequible de modo paralelo a las aplicaciones nativas de Linux. Si la gente pudiera arrancar todas sus aplicaciones bajo Wine, desde luego, el empleo de Linux no tendría mucho sentido. KK: Existen varias distribuciones de Linux que pretenden ser muy parecidas a Windows. Por ejemplo, se declaraba que Lindows iba a ser casi lo mismo, con ayuda de Wine. ¿Qué opinas de esto? AJ: Creo que es una buena idea crear un producto parecido a Windows, si la intención es atraer a los usuarios actuales de este sistema. Hay muchas cosas que Microsoft construyó bien y no es necesario hacer algo diferente solamente por espíritu de contradicción. Desde luego, hay también muchos campos en los que se puede perfeccionar el estado existente. Por esta razón, está bien tener varias distribuciones que experimentan de muchas maneras con la construcción del entorno. KK: ¿Cuál es tu juego preferido de Linux? AJ: No, no juego, ya que los juegos ocupan demasiado tiempo. En vez de jugar prefiero hacer códigos. KK: ¿Crees que es posible que un día Wine sea “perfecto”? ¿O casi perfecto? Me refiero al siguiente escenario: compro un paquete nuevo con el programa Windows y lo arranco sin problemas en mi distribución de Linux con ayuda de Wine. AJ: Sí, por lo menos eso espero. Nunca será 100% perfecto, pero creo que podemos acercarnos a un estado en el que la mayoría de la gente no notará la diferencia. Pero todavía no es así. KK: ¿Has estado alguna vez en Polonia? ¿Te gustaría visitar nuestro país? AJ: No, no he tenido la oportunidad de visitar Polonia. Espero que algún día lo haga. KK: Gracias por la conversación. AJ: Gracias por el interés.
En Internet: •
Página principal del proyecto Wine: http://www.winehq.org/
www.lpmagazine.org
21
entrevista
Entrevista con Jeremy White, fundador de la empresa CodeWeavers
DVD
Después de arrancar la distribución Linux+ Live DVD, en el sistema se podrá acceder a Wine.
22
Linux+ 1/2004
Krzysztof Krawczyk: ¿Podrías presentarte a nuestros Lectores? ¿A qué te dedicas y qué haces en tu tiempo libre (si lo tienes)? Jeremy White: Soy fundador y presidente de la empresa CodeWeavers, lo que significa que me dedico a buscar maneras de ayudar a la gente a solucionar sus problemas con Wine para que puedan utilizar sus aplicaciones preferidas de Windows en Linux. Esto significa también que pretendo encontrar el modo de tener en mi empresa 15 o más hackers Wine. Total que mi trabajo consiste también en responder al correo todo el día. Trabajo más de lo que debería, pero todo mi tiempo libre lo paso con la familia. Me gusta, sobre todo, jugar con mis dos hijos (6 y 8 años). KK: ¿Por qué has creado CodeWeavers y cuándo has empezado colaborar con Wine? JW: Fundé la empresa CodeWeavers en 1996. Dos años después, durante la búsqueda del emulador Atari 2600, me topé con Wine. En aquel tiempo pensé (y sigo pensando así) que es el proyecto más atrevido que había visto en mi vida. Me prometí que si una vez me tocaba la lotería, me jubilaría y empezaría a desarrollar Wine. En 1999, cuando Linux comenzó a sonar fuerte, cambié completamente los principios de mi empresa: el proyecto
Wine llegó a ser el centro de nuestro interés. Entonces contraté a Alexandre (responsable de Wine) y empecé a ayudar a la gente que comenzaba a trabajar con Linux. KK: ¿Cuántas personas trabajan en tu empresa? JW: Hemos contratado a aproximadamente 20 personas. KK: ¿A qué os dedicáis principalmente ahora? JW: En este momento estamos pasando un período muy ajetreado a causa de la publicación planificada de CrossOver Office 3.0 que dispondrá del soporte para unas aplicaciones totalmente nuevas. Además, destinamos mucha energía en nuestro Centro de Compatibilidad y las herramientas relacionadas con él. Esperamos construir un sistema que permita usar Wine para arrancar la mayoría de las populares aplicaciones. KK: ¿Es rentable tu empresa? JW: Sí. Hemos sobrevivido con los ingresos de los últimos 3 años gracias a la generosidad de la sociedad y de nuestros clientes. KK: ¿Es difícil administrar una empresa de este tipo? JW: Por un lado sí, por otro, no. Es difícil basar tu modelo de negocios en el software Open Source, particularmente, porque en el curso de los últimos años siempre nos ha faltado dinero. De
entrevista con Jeremy White
Figura 1. Jeremy White
todas formas, el primer desafío es tener paciencia en la colaboración con toda esta gente, entusiasmada con el proyecto Wine, porque a la vez hay que buscar a un grupo reducido capaz de ayudar en la financiación del trabajo que estamos realizando. No obstante, ahora trabajo con el mejor equipo de todos con los que he tenido la oportunidad de colaborar, por tanto, estoy entusiasmado por poder dirigir a unos trabajadores así. A Jon, mi director operativo, le gusta repetir de bromas que cualquier imbécil podría dirigir con éxito un grupo tan bueno como el nuestro. KK: ¿Cuál es tu campo preferido del trabajo sobre Wine y cuál fue el reto más difícil que superaste? JW: Oh, es una pregunta difícil. Hay muchas cosas que me gustan en Wine. A decir verdad, siempre me ha impresionado lo bien que funciona Word; lo utilizo todos los días, pues eso siempre me llena de orgullo. Sin embargo, me gusta el soporte de juegos en Wine, principalmente porque es el resultado del trabajo de los voluntarios. Admiro mucho a toda esta gente que dedicó tanto tiempo suyo para posibilitar el arranque de juegos. KK: ¿Qué piensas sobre la empresa TransGaming? ¿Es WineX muy distinto de vuestro producto? JW: TransGaming se enfrentó a los mismos desafíos que nosotros: cómo ganar
dinero con un software Open Source, cuando, a decir verdad, hay poca gente que utiliza Linux en sus ordenadores, y sólo algunos de ellos están dispuestos a pagar por software. Creo que tuvieron que tomar decisiones igual de difíciles, pero, en efecto, se apartaron del Wine oficial. Pues sí, WineX en realidad es bastante diferente del Wine oficial. Tengo esperanza que en un futuro colaboremos todos juntos, Wine y WineX arranquen los juegos sin problemas y no sea necesario instalar Windows. KK: ¿Y cómo colaboráis con WineHQ? ¿Cuáles son las diferencias principales entre el Wine original y vuestro CrossOver Office? JW: Colaboramos bastante estrechamente con WineHQ. En realidad, realizamos nuestros principales trabajos de desarrollo dentro del proyecto Wine, así que todas las correcciones se presentan al público. Las diferencias básicas entre “nuestro” Wine, y el Wine de WineHQ son las siguientes: –
–
en el curso de preparación de la edición siguiente “congelamos” el código, de ahí que nuestros productos son más estables; tenemos un par de parches (al margen, todos accesibles desde nuestra página web), que permiten resolver de un modo poco elegante pero eficaz algunos problemas. En el Wine original, Alexandre nunca aceptaría estos cambios, pero que, a pesar de todo, mejoran el funcionamiento de algunas aplicaciones.
KK: ¿Cuáles son las propiedades principales de la herramienta CrossOver Office 2.1? JW: Bueno, su idea principal es facilitar la instalación y el arranque de un conjunto de programas bien conocidos de Windows, como: MS Office, Notes, Photoshop, Quicken, etc. Dentro de este proyecto el cliente recibe el soporte técnico, de manera que dispone de un grupo de personas a quienes puede acudir si algo falla. Además, si es un cliente potente puede contar con alguien que introduzca en Wine unos cambios esenciales para que soporte sus aplicaciones propias.
entrevista
En efecto, CrossOver es un agente que nuestros clientes pueden utilizar para ayudar en el desarrollo del proyecto. Con casi todo el dinero para CrossOver que se nos entrega, se financia directamente a los programadores de Wine (tenemos sólo 4 empleados que no hacen códigos). KK: ¿Podrías comparar CrossOver Office con Win4Lin o WMware, y también CrossOver Server con MS Terminal Server o con Citrix? JW: Si arrancas la aplicación que soportamos, CrossOver es mejor, sin duda alguna. Las aplicaciones se arrancan igual que si fueran nativas del sistema Linux, p.e. en el menú se ofrecen os iconos apropiados. Todo funciona a una velocidad normal, puedes también reducir la aplicación en el asistente de ventanas del modo que más te guste. Es más, dentro del servidor tienes todas las ventajas de graduación de sistemas Linux: puedes arrancar tres veces más clientes en el mismo equipo. Al mismo tiempo, eliminamos la necesidad de disponer de una licencia del sistema Microsoft y, por consiguiente, la solución obtenida es mucho más barata. Desde luego, existen inconvenientes de este sistema: no arrancaremos todas las aplicaciones ni funcionarán de manera estable. Por eso, Win4Lin, VMWare o MS Terminal Server nos aventajan en su soporte del mayor número de programas del que soportamos nosotros, y también por el hecho de que en la mayoría de los casos funcionen perfectamente. KK: Algunas empresas, p.e. Disney Animation, os pagan para que introduzcáis unas funcionalidades adicionales en Wine. ¿Podrías decir algo al respecto? JW: Claro. Por lo general se dirigen a nosotros empresas grandes para recibir el soporte de unas aplicaciones específicas que utilizan. Generalmente, empezamos evaluando la dificultad de la tarea y luego presentamos una estimación de gastos. Después de regatear un poco y si aceptamos el precio, iniciamos trabajos para mejorar Wine, de modo que soporte sus aplicaciones. Gracias a este tipo de colaboraciones, en Wine aparece el soporte para muchas
www.lpmagazine.org
23
entrevista
aplicaciones diferentes. Lo mejor de todo esto es que el resultado de los trabajos para un cliente determinado lo aprovecharán todos, pues Wine es cada vez más perfecto. A veces cuesta mucho y requiere mucho tiempo, pero para algunos vale la pena: así fue en el caso de Disney. KK: Macromedia planifica modificar su software para que trabaje correctamente bajo Wne. ¿Qué tipo de problemas existen actualmente en Flash MX que exijan una solución así? JW: A decir verdad, Flash MX y Dreamweaver MX funcionan bastante bien en CrossOver. En versiones de estas aplicaciones de 2004 se utilizó una tecnogía licenciada de la que no dispone Wine, por lo que no funcionarán con Wine. KK: ¿Tú mismo utilizas Wine (CrossOver) y con qué objetivo? JW: Claro, que sí. Todos los días. Utilizo Word y Excel con bastante frecuencia: Word para preparar unos documentos de negocios y Excel para elaborar varias análisis. Este último lo utilizo también para seguir progresos del grupo de scouts de mis hijos. Además, a veces participo en la oficina en unas partidas de Diablo II, pero últimamente no hemos tenido tiempo para esto. KK: ¿Utilizas Linux en el trabajo o en tu casa? Si es así ¿cuál distribución de Linux y por qué? JW: Sí, utlizo Linux en el trabajo desde hace casi 7 años, y en mi casa desde hace 5 años. Me he valido de varias distribuciones, entre otras, Slack-
ware, Red Hat, Debian, Caldera (!) o SuSE. Actualmente, trabajo con Red Hat 7.2, muy estable, y no la voy a actualizar porque es tan estable y funciona tan bien que tengo miedo de estropear algo. En casa utilizo Debian unstable (quería tener un programa MythTV que funcione correctamente). KK: ¿Existen varias distribuciones de Linux, que pretenden ser muy similares a Windows. Por ejemplo, Lindows anunciaba que iba a ser casi lo mismo con ayuda de Wine. ¿Qué opinas de esto? JW: Lindows es una distribución bien pensada de Linux. La gente de Lindows quiere preparar Linux para todo el mundo. Trabajan duro para que Linux sea sencillo y, a la vez, fácil de manejar, lo que en realidad supone una buena dirección en el desarrollo de Linux. Además, Michael Robertson y su empresa disponen de un marketing y public relations buenos, dado que propagan la existencia de Linux entre la gente a gran escala, lo que antes nadie KK: ¿Colaboráis estrechamente con Xandros y SuSE. Qué piensas sobre estas distribuciones de Linux? JW: Creo, que las dos son buenas. Xandros tiene una interfaz fácil de manejar para el usuario, y SuSE es una seria distrubución universal. KK: ¿Tuviste un plan de abrir Wine Test Center? ¿Cuál fue la idea de Center? ¿Qué es el Centro de Compatibilidad CrossOver?
JW: Wine Test Center es una de las ideas que voy a realizar cuando me toque la lotería. La idea consiste en comprar 1.000 aplicaciones y facilitar su instalación y arranque bajo Wine. Este tipo de actividades realizaríamos en el centro de pruebas. Centro de Compatibilidad (http:// c4.codeweavers.com/ ) es nuestro primer paso en esta dirección. Queremos posibilitar el surgimiento de sociedades virtuales relacionadas con una aplicación que les gustaría arrancar. Pueden colaborar con nosotros en el desarrollo de unas versiones nuevas de CrossOver y cuidar que sus aplicaciones tengan mejor soporte. Pueden también compartir sus experiencias con otros usuarios. Desde luego, pueden también prestarnos ayuda económica. KK: ¿Tienes tu juego preferido de Linux o de Windows que se arranca en Linux ? JW: Bueno, Tom Wickline acaba de enviarme una parte de Civilización III, la que arrancó con el empleo de CrossOver. Tengo que preguntarle como lo consiguió. KK: ¿Crees que un día CrossOver será “perfecto”? ¿O casi perfecto? Me refiero a un escenario así: compro un paquete nuevo con el programa para Windows y sin problemas lo arranco en mi distribución de Linux con ayuda de Wine. JW: Es mi objetivo principal. ¿Si un día será “perfecto”? No, probablemente no, pero tengo la intención de acercarme lo más posible a este objetivo. Me gustaría alcanzar un estado en el que al cliente le sorprenda y le asombre cuando algo no funcione bien, en vez de una situación de ahora, cuando le sorprende que algo funcione perfectamente. KK: ¿Has estado alguna vez en Polonia? ¿Te gustaría visitar nuestro país? JW: No, todavía no he estado, pero me gustaría ir a Polonia.¿Es una invitación? KK: Desde luego. Gracias por el tiempo que nos has dedicado. JW: No hay de qué. Gracias por tu interés.
En Internet: • Figura 2. Los developers de Wine se reunen todos los años en la conferencia WineCon para hablar del desarrollo del proyecto
24
Linux+ 1/2004
Página principal de la empresa CodeWeavers: http://www.codeweavers.com/
gráficos
GIMP 2.0 Kamila Folta
Y
a han pasado más de tres años desde la publicación de GIMP 1.2, el programa de gráficos más popular para el sistema Linux y familia BSD, equivalente de Photoshop en Windows; el proyecto cambió de modo significativo. La prueba de esto son las descripciones de modificaciones realizadas en las siguientes versiones (ramo de desarrollo – 1.3.x), que se pueden observar en el sitio web http://cvs.gnome.org/lxr/ source/gimp/. Actualmente podemos conocer la primera versión estable del ramo 2.0, publicada el 23 de marzo de 2004. En este artículo voy a presentar las innovaciones más interesantes de GIMP 2.0.
Nuevo GIMP
DVD
Después de arrancar la distribución Linux+ Live DVD en el menú Linux+/Graphics/The GIMP, se podrá acceder a la posición para el arranque de GIMP.
En el DVD En el DVD se encuentran paquetes fuentes de GIMP.
26
Linux+ 1/2004
A la pregunta ¿a quién está dirigido el nuevo GIMP? se puede responder sin vacilar: a todo el mundo. Les interesará ante todo a los diseñadores gráficos, a las personas que se dedican al tratamiento digital de fotos, a los autores de páginas web, ilustradores de libros o creadores de animaciones por ordenador. Todos los que desean ocuparse de la creación de imágenes digitales y, a lo mejor, de su posterior publicación, deberían conocer las funciones de la recién publicada versión 2.0, que resultan muy desarrolladas en comparación con la versión anterior. El uso del programa es muy sencillo, lo que en la práctica significa que el conocimiento del ”taller técnico”ocupa relativamente poco tiempo. Además, GIMP es un producto completamente gratuito, desarrollado como
Software Libre bajo licencia GPL. Frente a unos programas comerciales vendidos en el mercado, destinados al tratamiento de imágenes, para muchos GIMP es una alternativa muy interesante, que funciona muy bien en la práctica. Desde el punto de vista del usuario que ha utilizado las versiones anteriores de GIMP, la versión 2.0 trae muchos cambios importantes: una interfaz coherente basada en la librería GTK+ 2.0, enormes posibilidades de la configuración del entorno de trabajo, una herramienta de rutas perfeccionada, menú visuali-
Propiedades de GIMP 2.0: – – – – – –
– – –
soporte básico del modelo de colores CMYK; soporte del formato SVG en las rutas; soporte para todas las fuentes que se encuentran en el sistema; nueva interfaz del usuario basada en GTK+ 2.0; soporte ampliado del formato .PSD (Adobe Photoshop) y .XCF (GIMP); herramientas nuevas o perfeccionadas para crear y seleccionar rutas y ejecutar operaciones sobre ellas; muchos scripts nuevos (sobre todo filtros); posibilidad de coexistir con GIMP 1.2 en el mismo sistema; asignación de un conjunto de plugins Video a un modulo separado GAP.
gráficos
gimp 2.0
Figura 1. Uso del filtro que descompone la imagen en integrantes de colores
zado en la ventana de la imagen, atajos de teclado para todas las opciones del menú y la posibilidad de redefinirlas, soporte básico del modelo de colores CMYK, soporte del formato SVG, herramienta de texto, escrita enteramente desde el principio y muchos otros. Desde el punto de vista de un programador, un cambio importante es la facilitación del API perfeccionado a las librerías de plug-ins libgimp en el lenguaje Python (extención Gimp-Python). Como resultado, disponemos del acceso directo a objetos tales como imagen, capa o canal; sin necesidad de manipular sus números ID, como sucede en el lenguaje de script Script-Fu. Otra ventaja de la ampliación del producto es que no implica la necesidad de utilizar solamente la base de procedimientos PDB (Procedural Database), porque permite usar toda la librería libgimp y facilita el acceso a muchas funciones de nivel más bajo.
Su funcionamiento consiste en transformar el modelo ”fuente” de colores de la imagen (p.e. RGB) al modelo ”meta” (p.e. CMYK). Después de la transformación, la imagen nueva se compone de una sucesión de capas que representan partes integrantes en el modelo meta. Es interesante que este filtro ofrezca la posibilidad de conversión en otros modelos de colores; en el listado
encontramos, entre otros: RGB, RGBA, CMY, CMYK, HSV, Alfa, LAB, YCbCr_ ITU_R470. La operación de descomponer integrantes del modelo es una operación reversible; para unir las capas sirve el filtro del menú Filtros->Colores->Componer. Es tan sólo un germen del soporte CMYK en GIMP, pero teniendo en cuenta el enorme interés de usuarios por esta funcionalidad, podemos sospechar que se trabajará para desarrollarla. Hay que subrayar que GIMP 2.0 desgraciadamente no soporta el modelo CMYK, tal como lo hace el afamado Photoshop, es decir, como uno de los modos de tratamiento de la imagen. Es probablemente una de las faltas más importantes de GIMP, desde el punto de vista de las personas que quieren utilizarlo en tipografía.
Soporte del formato SVG
La herramienta de GIMP que sirve para crear rutas (descritas con vectores utilizando las curvas de Bezier) en la versión 2.0 se amplió por una función de mucho valor: ahora se puede grabar cada una de las rutas en formato SVG. Además, se puede elaborar una ruta nueva a través de la importación del fichero SVG (Scallable Vector Graphics). SVG es un formato propuesto por W3C y basado en
Soporte básico del modelo de colores CMYK
Una de las novedades interesantes en GIMP, sobre todo para los que desean imprimir su trabajo, es la posibilidad de transformar la imagen creada en el modelo de colores RGB al modelo de colores CMYK. En el menú Filtros->Colores->Descomponer podemos encontrar el filtro adecuado.
Figura 2. Agregación de capas como efecto produce una imagen de entrada
www.lpmagazine.org
27
gráficos
el lenguaje XML para grabar los gráficos vectoriales, que poco a poco llega a ser un estándar en gráficos. La ventaja principal del formato SVG es que las aplicaciones existentes lo soportan universalmente, entre otros, los programas de gráficos de la empresa Adobe. Dentro del proyecto GNOME se ha elaborado un programa perfecto para crear gráficos vectoriales, basado en SVG – Sodipodi. La unión de estos dos
Historia de GIMP
En diciembre de 2000 empezó una nueva era en la historia de uno de los programas más populares de tratamiento gráfico con el nombre de GIMP (GNU Image Manipulation Program). En aquel tiempo, tras la publicación de GIMP 1.2, Sven Neumann y Michael Natterer enviaron a la lista de discusión gimp-developer un documento titulado: ”The future of The GIMP” (”Futuro de GIMP”). Fue una forma de declaración de principios de sus autores acerca de su desarrollo.
GIMP 1.2.x
Todo el mundo reconoció la línea de publicaciones de GIMP 1.2.x como una línea estable (ing. Maintenance Branch). Perteneció al primero de los ramos de GIMP, descritos por autores del documento. Su desarrollo posterior iba a ser limitado a unas pequeñas correciones del código existente, y sus versiones nuevas (versiones 1.2.x) podrían ser publicadas sólo en caso de encontrar errores serios.
GIMP 1.3.x
La línea de GIMP 1.3.x se planificó como una línea ”de trabajo”. Uno de los objetivos principales de esta edición de GIMP fue basar el código en la librería GTK+ en versión 2.0 y limpiar internas estructuras de datos. No se iban a introducir modificaciones importantes tanto del conjunto de tareas realizadas como del aspecto del programa.
GIMP 2.0.x
Los autores dejaron la idea de GIMP 2.0 para un futuro bastante lejano, por eso no se definieron bien los planes respecto a la versión. El uso de librerías GEGL (para la conversión de imagen) y GCim (extensión XML para GTK) pareció lo más importante.
28
Linux+ 1/2004
Figura 3. Utilizando Nautilus se puede rápido mirar las fuentes instaladas en el sistema
excelentes programas de gráficos, de GIMP y Sodipodi, abre nuevas posibilidades para los artistas. Sodipodi ofrece un amplio abanico de herramientas cómodas y eficientes para crear los gráficos vectoriales, que luego en su forma final podemos trasladar a GIMP y componer en una imagen de rastreo.
directorio, donde se encuentra el fichero con la fuente). En GIMP 2.0 se ha puesto mucha atención en la utilización de fuentes True Type con codificación local. Se ha incluido el soporte de unos idiomas tan lejanos a nuestro sistema de codificación, como indonesio o coreano.
Fuentes en GIMP
Fijémonos en la versión final de GIMP 2.0 y las modificaciones más importantes de la interfaz renovada del usuario; además, algunas novedades y curiosidades de las que simplemente vale la pena saber, p.e. el uso del modo de pantalla entera (normalmente a esta opción le corresponde el botón [F11]).
En GIMP 2.0, la importación de información sobre fuentes tipográficas se realiza, como en la mayoría de los programas modernos que funcionan bajo X11, con ayuda de un programa que se llama Font-config. En el fichero de configuración /etc/fonts/font.conf se encuentra la información sobre las fuentes instaladas en el sistema (grabadas en formato XML), y sobre todo las rutas de directorios que las contienen. Una de ellas es ~/.fonts, un subdirectorio del directorio raíz del usuario corriente. Si queremos agregar una fuente al conjunto existente, es suficiente insertarla en este directorio. GIMP utiliza font-config, por eso la fuente agregada se visualizará enseguida (las fuentes se graban en el fichero cache, por eso puede resultar necesario volver a construir un fichero con información sobre fuentes; para ello, hay que arrancar el programa fc-cache con el parámetro que es a la vez el nombre del
Interfaz
Iconos
Ya el primer vistazo a la ventana principal del programa, que contiene un conjunto de iconos de herramientas, basta para apreciar el aspecto estético del uso de GTK+ 2.x. Los nuevos iconos de colores son solamente el principio de una lista de sorpresas. El menú principal desarrollado, las ventanas de diálogo de herramientas para el tratamiento de colores o el menú que permite realizar operaciones sobre la imagen o capa han sido reavivados, gracias a la colocación de iconos que los representan, diseñados con una maestría casi artística.
gráficos
gimp 2.0
Atajos de teclado
Figura 4. La ventana de herramientas del programa GIMP antigua (a la izquierda) y nueva (a la derecha)
Menú
En las versiones anteriores se accedía a las opciones del menú pulsando el botón derecho del ratón en el campo de la ventana con la imagen y en la última versión es posible hacerlo de otro modo. Esto interesará sobre todo a los usuarios de GIMP que opinaban que el uso del menú anterior era incómodo. Ahora podemos verlo en la barra del menú, que se encuentra en la ventana con la imagen. El menú contextual sigue siendo accesible por medio del botón derecho del ratón, por tanto, la modificación no influirá en los hábitos adquiridos de los usuarios avanzados. Las opiniones llenas de entusiasmo de las personas que usan la versión 1.3 demuestran que la modificación ha sido recibida con alegría y, en algunos casos, con un suspiro de alivio.
de diálogo puede ser agregada o eliminada con ayuda del menú contextual de la pestaña. Otras opciones incluidas en este menú permiten cambiar el modo de etiquetar las pestañas. Un elemento visible que identifica la pestaña, puede ser un texto, un icono o un icono + un texto. Hay nueve tamaños diferentes de iconos; elementos que representa la pestaña (p.e. Gradientes, Brochas o Tipografía) podemos visualizarlos en forma de listado o escala (tabla).
Los atajos de teclado definidos en el programa siguen siendo los mismos, al grupo de atajos ya conocidos se han añadido unos nuevos (p.e. la posibilidad de recortar la imagen o capa hasta el límite de área marcada). Los hábitos que hemos adquirido en el trabajo con la versión anterior del programa, a lo mejor muy importantes para nosotros, nos ayudarán mucho también en esta versión. En Internet ha aparecido un listado final de atajos de teclado para los comandos de GIMP 2.0, que se puede conseguir en la dirección htt p: // www.webone.com. au / ~oc /gimp / keybindings.pdf GIMP hace posible una asignación dinámica de los atajos de teclado de comandos que se encuentran en el menú, y permite modificar de manera sencilla los valores predeterminados de los atajos. A modo distinto de la versión 1.2, esta opción está por defecto desactivada. Para poder utilizarla hay que activarla en la ventana ”Preferencias” (Preferencias-> Interfaz->Usar combinaciones de teclas dinámicas). También es posible volver a utilizar los atajos de teclado estándar sin necesidad de volver a arrancar GIMP. Además, disponemos de una opción de grabación automática de atajos cuando cerramos el programa y de importación automática cuando lo arrancamos.
Pestañas
Las pestañas, con ayuda de las cuales se puede configurar el contenido de las ventanas de diálogo, han sido modificadas de manera muy innovadora, la cual permite ajustar el entorno GIMP a las necesidades individuales. La propiedad más importante de las pestañas, respecto a su utilidad, es la movilidad: podemos trasladarlas entre las ventanas de diálogo, con lo que disfrutamos de posibilidades extraoridinarias de configuración del ”puesto de trabajo” al modo más apropriado para cada usuario. Cada una de las pestañas de las ventanas
Figura 5. Resultado de la utilización de la librería GTK+ 2.x, presentado en el ejemplo de ventana de diálogo que sirve para modificar el nivel de colores de la imagen (la antigua: a la iquierda, la nueva: a la derecha)
www.lpmagazine.org
29
gráficos
Figura 6. Las pestañas permiten una configuración libre de herramientas y de las vistas y adaptan el entorno del trabajo a las necesidades actuales (un ejemplo de configuración de pestañas en GIMP, utilizada por la autora)
Preferencias
No se podría adaptar el entorno de trabajo en GIMP a nuestros gustos, sin ayuda de la desarrollada ventana ”Preferencias”. Se ha transformado la división de opciones en categorías de forma que su uso en la versión nueva resulta incluso más cómodo y más intuitivo. Se ha modificado la ubicación de opciones que se encuentran en la categoría ”Sesión” (registro de la ubicación de ventanas o del estado de un dispositivo antes de cerrar el programa): estas opciones han sido trasladadas a la categoría ”Interfaz”. A la opción existente de elegir información visualizada en la barra de título de la ventana con la imagen se ha añadido la posibilidad de configurar la información que aparece en la barra de estado. Para grabar esta información se utiliza un formato de texto sencillo. Un gran número de modelos ofrecidos puede servir de base para definir y grabar sus propios modelos. Se ha agregado también la opción de definir el color que rodea la parte visible del lienzo para dibujar. El color puede ser importado desde el motivo corriente, utilizado en el sistema, puede ser igual que el color del campo seleccionado claro u oscuro, o definido de manera libre por el usuario. Este tipo de ajuste
30
Linux+ 1/2004
se puede aplicar tanto en la vista de la imagen en modo de ventana, como en la vista de pantalla entera.
En cada una de estas vistas se puede además definir la visualización de tales elementos como barras del menú, de estado, y de líneas verticales y horizontales. Se ha añadido también una opción ”Memoria máxima para deshacer” a las opciones que regulan el uso de recursos. Permite definir el tamaño de memoria que puede ser utilizada para guardar información u operaciones ejecutadas durante el trabajo. Si se la explota en su totalidad, la información sobre una parte de las operaciones realizadas anteriormente se perderá y el proceso será irreversible. Otra novedad es la posibilidad de seleccionar cualquiera de los motivos definidos en la categoría ”Interfaz”. Actualmente, junto a un motivo predeterminado, también se encuentra allí el motivo ”Pequeño” que permite reducir el tamaño de elementos gráficos GTK. Gracias a la reducción, en el escritorio queda más espacio libre para colocar p.e. ventanas de gráficos. En la ventana de preferencias se puede también configurar una escala por defecto
Figura 7. Podemos anidar las pestañas en el interior de un modo libre y trasladarlas entre las ventanas llamadas ”puertos”
gráficos
gimp 2.0
de la imagen. Se puede configurar la escala de cada imagen con ayuda de la opción del menú Imagen-->Configurar la rejilla. Casi todos los cambios realizados en la ventana ”Preferencias” son visualizados enseguida, sin necesidad de volver a arrancar el programa. Por eso, se pueden testear los ajustes de GIMP en un instante, y lo más importante, se ahorra nuestro valioso tiempo.
Herramientas
Entre las nuevas herramientas vamos a encontrar verdaderas ”perlas”. Las apreciarán todos los usuarios que trabajan con GIMP a diario y las personas, a las que incluso las modificaciones más pequeñas introducidas en la nueva versión facilitarán el trabajo de modo significativo.
Desplazamiento
Podemos toparnos con novedades entre las herramientas que a primera vista parecen no ofrecernos nada nuevo. Una de estas herramientas es, por ejemplo, ”Mover” (tecla [M]). Podemos utilizarla para desplazar tres tipos de objetos: capas, campos seleccionados y rutas. Podemos mover objetos del tipo elegido en opciones de la herramienta: las obtenemos pulsando con el botón izquierdo el icono de la herramienta (tres iconos representan los tipos de objetos). También es posible cambiar
el tipo de objetos desplazados durante el uso de esta herramienta: ”capa” es un tipo seleccionado por defecto; si pulsamos y retenemos la tecla [Alt], cambiaremos el tipo de objeto en ”campo seleccionado”, en cambio, si pulsamos y retenemos la tecla [Ctrl] se podrá desplazar objetos tipo ”ruta”. Además, se puede cambiar el funcionamiento de la herramienta si pulsamos [Shift], el cual cambia el modo de seleccionar el objeto que queremos desplazar: podemos elegir el objeto (ruta, capa) activo (es decir, elegido del listado de capas/rutas) u objeto sobre el cual en el momento dado se encuentre el indicador del ratón (o de otra herramienta utilizada). ”Mover” puede ser activado en el momento en que se utiliza otra herramienta: para hacerlo hay que pulsar y retener el espacio. El número de todas las combinaciones de posibles modos del funcionamiento de esta herramienta puede provocar dolor de cabeza. Sin embargo, si los conocemos, tenemos gran libertad de actuación y podemos aumentar la eficiencia de nuestro trabajo. Abrimos, por ejemplo, cualquier imagen con la tecla [R] y activamos la selección de campos rectangulares, la marcamos y, después de pulsar la tecla [M] y escoger un tipo adecuado de objeto, desplazamos el campo seleccionado.
Selección
Es difícil imaginarnos el trabajo con un programa de gráficos sin la posibilidad de seleccionar unos campos de la imagen y realizar en ellos operaciones gráficas. Para seleccionar campos en GIMP sirven varias herramientas: selección de campos rectangulares, selección de campos elípticos, selección manual de campos, selección de campos avecinados, selección con ayuda de curvas de Bezier y selección de formas en la imagen. En la ventana de diálogo que presenta las opciones de la herramienta actualmente seleccionada para seleccionar un fragmento de la imagen, se han agregado unos elementos que ofrecen cuatro modos de la herramienta: sustitución, agregación, desmarcación o recorte del campo seleccionado. Vale la pena fijarnos en una curiosidad que servirá a todos los que usen con frecuencia la opción de selección, y que se encuentra en Editor de selección (Diálogos-->Editor de selección), que es una ventana de diálogo nueva, que reune el conjunto de operaciones de selección: seleccionar la imagen entera, renunciar a la selección, desmarcar, grabar en el canal el campo seleccionado, grabar en la ruta el campo seleccionado y recortar el campo seleccionado. Abramos, por ejemplo, cualquier imagen, elijamos con el ratón de entre herramientas la opción de marcar campos según colores. Luego pulsemos cualquier parte de la imagen: se marcará un campo del mismo color.
Transformaciones
Figura 8. La opción de actualizar la mayoría de los ajustes del programa sin necesidad de volver a arrancarlo es una ventaja importante de GIMP; la ventana de preferencias ofrece varias opciones nuevas e interesantes y vale la pena conocerlas
La herramienta que facilitaba escalar, girar, recortar o cambiar de perspectiva (según la opción seleccionada de la herramienta), en GIMP 2.0 ha sido sustituida por una serie de cuatro herramientas. Cada una de ellas es responsable de realizar una de las transformaciones arriba mencionadas. Como resultado de esta modifcación, ha sido posible colocar en la ventana de diálogo ”Opciones de herramienta”: unas opciones propias de transformación determinada. Las propiedades de transformaciones ahora pueden ser guardadas por separado. La posibilidad de seleccionar el algoritmo de interpolación (falta de interpolación, interpolación lineal
www.lpmagazine.org
31
gráficos
Plug-ins
Figura 9. Editor de selección permite su vizualización y realización de operaciones en el campo marcado
y cúbica) es una novedad entre las opciones de las herramientas. Se la utiliza para convertir la imagen transformada y elegir una escala de selección (falta de escala, denominación de número de líneas de escala, denominación de distancia entre líneas de escala), asequibles en forma de listas que se pueden desenvolver. Otra modificación importante es la posibilidad de transformar no sólo la capa corriente, como se podía hacer en GIMP 1.2, sino también el actual campo seleccionado y la actual ruta. Esta última propiedad es particularmente significativa para las personas que utilizan con mucha frecuencia la herramienta destinada a crear rutas. Como ejemplo, abrimos cualquier imagen, con tecla [E] activamos la opción de seleccionar campos elípticos, la seleccionamos y, después de pulsar los botones [Shift]+[R] y escoger el tipo de objeto adecuado, transformamos el campo seleccionado.
y [Ctrl]. Las rutas, tratadas de modo parecido al de las capas, se pueden visualizar u ocultar en la vista general de la imagen, activando o desactivando un icono que ya conocemos: la visibilidad del objeto (que representa un ojo) en el listado de rutas definidas. Además, estas rutas se pueden dibujar utilizando la pincelada en la ruta, cuyos detalles hay que definir con ayuda de la ventana de diálogo ”Seleccione un estilo de trazo”.
A todos los que busquen nuevas sensaciones les recomiendo la página http:// registry.gimp.org/, que contiene un conjunto de plug-ins elaborados por gente que ha llegado a la conclusión que merece la pena aprovechar las modificaciones para GIMP. Los plug-ins que se encuentran allí están divididos por categorías (conversión, ruido, mapas de colores, opciones de canales, transformaciones, derrubio, artísticos) y por tipo (referentes a varias versiones de GIMP y elaboradas en varios lenguajes: Python, Perl o Script-Fu). Por ejemplo, en la categoría de plug-ins ”artísticos” podemos encontrar opciones, gracias a las cuales nuestra imagen va a ser recuadrada o con una serie de puntos ”derrubiados”. Asimismo, se puede introducir efectos de luz (luz de punto o dirigida) y de refracción; desde la categoría ”imagen” se puede descargar un plug-in que posibilita marcar de manera triangular o crear imágenes estereoscópicas, o uno que divide la imagen en n iguales partes rectangulares (n = col * row, col – número de columnas, row - número de filas). Estos plug-ins se han elaborado para las
Herramienta de rutas
Ya a primera vista el manejo de esta herramienta en su nueva versión parece ser más sencillo de aquello al que ya nos hemos acostumbrado. Una interfaz renovada permite manipular con nodos respectivos, de manera que ya no hay que cambiar modos de trabajo en la ventana con opciones de herramienta. Todas las operaciones: agregación, elimación y desplazamiento de nodos, agregación de nuevas rutas, y modificación de la forma de curvas que componen la ruta son accesibles por medio de las teclas [Alt], [Shift]
32
Linux+ 1/2004
Figura 10. Ventana de diálogo ”Selección del estilo de pincelada” permite definir los detalles de pincelada en una ruta escogida
gráficos
gimp 2.0
versiones anteriores de GIMP (de 1.0 a 1.3), pues no tenemos seguridad de que trabajen con la última versión. De todas formas, ya se han oído noticias que los plug-ins se seguirán utilizando (tanto más que se ha creado una API bien documentada que permite escribir los scripts en el lenguaje Python: http://mmmaybe.gimp.org/docs/ python/pygimp.html).
GIMP Animation Package
Antes de lanzar la versión 2.0 GIMP, se publicó la primera versión del paquete de animación en GIMP 2.0 - GIMP Animation Package (ftp://ftp.gimp.org/pub/gimp/ plug-ins/v2.0/gap/testing/ ). Este paquete amplía las posibilidades de GIMP en el campo de creación de animaciones, que se generan en base a un conjunto de recuadros (en la versión 1.2 fue la parte integral de GIMP). Por desgracia, todavía no está disponible una página web destinada a este paquete que incluya su documentación completa junto con ejemplos de su uso. Sin embargo, es uno de los primeros plug-ins escritos para GIMP 2.0, por eso, vamos a examinarlo atentamente. El rasgo más importante de GIMPGAP, que en realidad no es uno, sino un conjunto de plug-ins, es la posibilidad de realizar operaciones sobre un
conjunto de imágenes, de modo parecido a la operación sobre una sola imagen. Cada recuadro de animación puede tener varias capas; se puede pasar de un recuadro a otro con ayuda de un atajo de teclado, y las operaciones realizadas en la imagen pueden ser automáticamente propagadas a todos los recuadros del campo elegido. Se pueden generar los recuadros de vídeo de varios maneras: en base a un sólo fichero (.xcf ) (se crea un definido número de copias), en base a una imagen compuesta de varias capas (entonces cada una de capas llega a ser un recuadro de animación) y en base a un conjunto de ficheros de imágenes existentes en el sistema, siempre que se conserve una composición de nombres determinada (el mismo prefijo, al que sigue el número de recuadro, p.e. anim_001.xcf, anim_002.xcf,etc.). Sin embargo, MovePath pertenece a un grupo de herramientas útiles para generar animaciones. Sirve para definir las rutas por donde se moverán los objetos animados. Los pasos entre los recuardos están descritos con ayuda de una serie de parámetros, que definen escalamiento, rotación o cambio de perspectiva que van a ser aplicados en un objeto animado. Los plug-ins ofrecen también
la posibilidad de convertir recuadros en una imagen de varias capas, de realizar operaciones típicas de una capa a todos los recuadros de un campo determinado (fijar la visibilidad, agregar, cambiar el orden, agregar máscaras de capa) o el uso del efecto bluebox, que permite hacer un color transparente. Con el uso del plug-in Playback se puede visualizar la animación creada y definir los parámetros tales como el tamaño, la rapidez de reproducción, el límite de recuadros animados o el lazo cerrado.
Resumen
El repaso de novedades de GIMP presentado arriba nos da una idea sobre los cambios que se han producido en este proyecto durante los últimos años. Estos cambios al principio tenían que servir para la reorganización de códigos fuente y para pasar a la librería GTK+ en la versión 2.x. Luego empezaron a evolucionar hacia el perfecionamiento de implementaciones existentes y la aplicación de funciones completamente nuevas del programa; en efecto, han originado una herramienta enteramente modificada, enriquecida y, ante todo, en comparación con las versiones anteriores, mucho más cómoda en el uso diario.
En Internet: –
Página principal de GIMP: http://www.gimp.org/
–
Página web de los developers de GIMP:
–
http://developer.gimp.org/ Manual sobre GIMP:
–
http://manual.gimp.org/ Libro sobre GIMP:
–
http://gimp-savvy.com/BOOK/ Grupo de Usuarios de GIMP (Gimp User Group): http://gug.sunsite.dk/
–
Figura 11. Herramienta para definir las rutas por donde se mueven los objetos animados y un conjunto de plug-ins en el paquete GIMP GAP
–
Consejos para gráficos: http://www.handson.nu/ Portal para los gráficos de Linux:
–
http://www.linuxartists.org/ Documento “Futuro de GIMP”: http://kt.zork.net/gimp/gd20010522_ 43.html
www.lpmagazine.org
33
gráficos
Photoshop en Linux Piotr Truszkowski
L
DVD
Después de arrancar la distribución Linux+ Live DVD, podremos utilizar Wine.
En el DVD
En el DVD encontrarás paquetes fuentes Wine y las versiones de evaluación Adobe Photoshop, Adobe InDesign y Adobe Illustrator (las versiones inglesas facilitadas a nuestros Lectores por la empresa Adobe).
34
Linux+ 1/2004
inux, por lo común, no se usa en las agencias de gráficos, ni en oficinas DTP, debido al limitado número de programas destinados a la edición de gráficos y a la composición de textos. Programas como GIMP y Scribus, aunque dispongan de varias funcionalidades útiles, al mismo tiempo tienen muchas faltas que no permiten emplearlos de una manera profesional, p.e. en GIMP falta un verdadero soporte del formato CMYK. Estas soluciones son poco populares, lo que también es un obstáculo. Por esta razón, me gustaría mostraros cómo arrancar bajo Linux el programa más popular de edición de gráficos de mapas de bits (Adobe Photoshop) y un programa menos conocido que goza cada vez de más aprobación entre los profesionales: el paquete Adobe InDesign; una herramienta de composición de textos. Con estos dos programas podemos crear documentos totalmente profesionales. El sistema operativo libre y las aplicaciones Windows juntas. API Win32 para Linux/Unix con denominación Wine vigilará el conjunto de programas. ¿Suena peligroso? Probablemente. Pero en realidad no lo es tanto.
en la página principal del proyecto, con la dirección http://www.winehq.org/. En el menú Download seleccionamos Source y uno de los servidores espejo, del que vamos a descargar la versión de Wine antes mencionada. Despúes de descargar el fichero, ejecutamos el comando tar -xzvf Wine-20031212.tar.gz, con lo que se descomprimirá el archivo. Pasamos al directorio wine-20031212, creado después de descomprimir el directorio: cd wine-20031212
Ahora tenemos que ocuparnos de la compilación de nuestro Wine. Necesitaremos: n
n
n
n
núcleo, por lo menos en la versión 2.2.x; paquete X11 development; GCC en por lo menos la versión 2.7.2; si queremos imprimir, opcionalmente CUPS y CUPS-devel.
Los paquetes antes mencionados se encuentran en la mayoría de las distribuciones populares de Linux. Después de instalar estas herramientas, en el directo-
Wine
Para empezar nuestra aventura con Photoshop, tenemos que disponer del paquete Wine, facilitado por API Windows en sistemas de Unix, que incluye también Linux. Con este objetivo utilizaremos la versión Wine-20031212, porque en algunas de las últimas ediciones se han detectado errores (la versión 20040408 permite arrancar Photoshop solamente con algunas configuraciones del sistema Linux). Empezamos
Figura 1. Arranque de Adobe Photoshop
Adobe Photoshop y Linux
gráficos
Copiamos los ficheros de configuración a nuestro directorio oculto wine:
S
cp wine-20031212/documentation/samples/ *.* /home/nombre_usuario/.wine/
Nos queda construir unos subdirectorios adecuados: mkdir /home/nombre_usuario/.wine/c mkdir /home/nombre_usuario/.wine/c/ windows
S
S
mkdir /home/nombre_usuario/.wine/c/
windows/Fonts mkdir /home/nombre_usuario/.wine/c/
S
windows/system
Figura 2. Las fuentes de Windows
rio con las fuentes Wine (wine-20031212) ejecutamos los comandos siguientes: n
n
n
n
– configuración del programa (variable –prefix= /usr define el lugar de su instalación); make depend – creación de las dependencias adecuadas; make – compilación adecuada; make install – instalación del programa en el sitio que indicamos con la variable --prefix. ./configure –prefix=/usr
de estos ficheros. En el directorio con las fuentes se encuentra el directorio documentation, y en este directorio el subdirectorio samples con los ficheros de configuración para nuestro Wine. Al principio, creamos un directorio oculto con el nombre wine en nuestro directorio personal: cd /home/nombre_usuario
A continuación, nos ocuparemos de la edición de fichero config, que se halla en el directorio oculto .wine, para ajustarlo a las necesidades de nuestro Photoshop. En realidad, nos interesa sólo una variable: ”Windows” = “versión_windows”. En el lugar versión_windows, escribimos win98, como en el Listado 1. Además, tenemos que definir las variables responsables de puntos, como la disquetera y el CD-ROM, así como los discos duros. Guardamos las modificaciones. Nos queda solamente copiar las fuentes de Windows a nuestro directorio oculto wine para que Photoshop muestre por pantalla todos los elementos de modo correcto:
mkdir .wine
Si todo se ha realizado con éxito (no se nos han mostrado ningún error durante la compilación y el programa wine se halla en el directorio /usr/bin/ ), nuestro emulador está casi listo para trabajar.
Configuración de Wine
Pero ¿para qué nos servirá un programa, si no tenemos sus ficheros de configuración? A continuación, nos ocuparemos
Listado 1. Indicación de la versión de Windows [Version] ; Windows version to imitate (win95,win98,winme,nt351) ”Windows” = “win98” ; DOS version to imitate ;”DOS” = “6.22”
S
Figura 3. El trabajo con varios gráficos no da problemas
www.lpmagazine.org
35
gráficos
El procedimiento para instalar el programa no se distingue mucho del presentado en la descripción de Adobe Photoshop. Puede resultar importante copiar el contenido del directorio con la versión de instalación del programa al disco duro. La configuración de WINE presentada arriba no exige cambios. Para instalar el programa, ejecutamos el comando wine Adobe_ InDesign.exe. Se arranca el instalador que nos guiará paso a paso por el proceso de instalación. Os recomiendo instalar el programa en el siguiente sitio: C:/Indesign, con lo que el arranque del paquete con WINE será más fácil. En este caso, para arrancar el programa, ejecutamos el siguiente comando:
S
wine /home/nombre_usuario/.wine/
Figura 4. El soporte completo del formato TIFF supone una enorme ventaja
S
cp /lugar_montar_disco_con_windows/
windows/Fonts/*.*
Nuestro Wine ha sido configurado. Ya es hora de obligar a Photoshop a colaborar con él.
Adobe Photoshop
Nos concentramos en la versión de 30 días de este popular programa de gráficos (se adjunta en el DVD). Para arrancar el instalador, ponemos en marcha la consola del sistema, pasamos al directorio con el instalador y ejecutamos el comando:
Adobe InDesign
Adobe InDesign es un popular programa de composión de textos. Junto con su gran competidor, Qurak, ha llegado a ser un estándar en los departamentos DTP. La gran ventaja de Adobe InDesign es su construcción de módulos. Podemos instalar módulos y plug-ins adicionales y de este modo ampliar el programa con nuevas funcionalidades.
wine Adobe_Photoshop7_trial.exe
Se arrancará el instalador que nos guiará durante todo el proceso de instalación. Merece la pena seleccionar: C:/Photoshop como ruta de instalación; gracias a esta selección no tendremos que escribir una ruta larga para arrancar el programa como tal. Después de la instalación, escribimos:
S
wine /home/nombre_usuario/.wine/c/ Photoshop/Photoshop.exe
Después de un rato deberíamos ver la pantalla de bienvenida del programa recién instalado. Figura 5. Adobe InDesign
36
Linux+ 1/2004
c/Indesign/Indesign.exe
Después de un rato, el programa estará listo para trabajar.
Adobe Type Manager
Para trabajar con fuentes empleadas en el software Adobe Photoshop e InDesign, se construyó el programa Adobe Type Manager. Es una herramienta interesante que sirve para agregar y eliminar fuentes. Realizamos la instalación con ayuda de WINE que ya hemos visto. El modo de instalar se limita a ejecutar
Adobe Photoshop y Linux
Para simplificar...
Si no queremos emplear un comando largo cada vez que arranquemos los programas descritos, podemos crear scripts que lo harán por nosotros. Para preparar un script así, tenemos que escribir los siguientes comandos:
Figura 6. Type Manager preparado para trabajar
el comando: wine Setup.exe y seguir paso a paso los comandos de instalador. Lo mejor es instalar el programa en el directorio C:/TM. Lo arrancamos con el comando:
S
wine /home/nombre_usuario/.wine/c/TM/ atmfm.exe
Adobe Image Ready
Adobe Image Ready es un programa avanzado para elaborar varios tipos de banners, prospectos de publicidad y animaciones. Forma parte del paquete Adobe Photoshop y se instala junto a éste. Para arrancar Adobe Image Ready, escribimos:
S
wine /home/nombre usuario/.wine/c/ Photoshop/ImageReady.exe
–
touch nombre_script.sh – se creará un
–
mcedit nombre_script.sh
fichero con el nombre que indicamos; – se editará el fichero elaborado por nosotros.
Un script de ejemplo del programa Adobe Photoshop será así: #!/bin/bash cd /home/nombre_usuario/.wine/c/Photoshop wine Photoshop.exe
Después de crear el script, lo grabamos pulsando la tecla [F2] y salimos del editor con la tecla [Esc]. Tenemos que atribuir al script los derechos de acceso necesarios: chmod 777 nombre_script.sh
Ahora, para arrancar el programa Adobe Photoshop, es suficiente hacer click en el script. Analogamente, podemos construir scripts del resto de los programas, sólo cambiando la ruta del programa arrancado.
gráficos
Resumen
Adobe Photoshop, InDesign y Type Manager son solamente algunos de los programas destinados para el sistema Windows, que se pueden arrancar sin mayores obstáculos en Linux con ayuda de Wine. La comodidad del trabajo es suficiente y el conjunto trabaja de modo estable, incluso con una sobrecarga. La calidad del trabajo no se difiere de la calidad que tenemos al arrancar Adobe Photoshop en su propia plataforma de sistema, es decir, Microsoft Windows. De todos modos, hay que recordar que Wine no es perfecto y no podemos esperar que arranque todos los programas en Windows. Los problemas los han proporcionado, entre otros, Adobe Illustrator y Corel Draw. Muy a menudo, la misma versión Wine en varias distribuciones de Linux puede funcionar de manera distinta, debido a la diversidad de versiones de librerías utilizadas en distribuciones particulares, y las distintas versiones de núcleos de sistema y de configuración relacionadas a ellos. Querido Lector, espero que la instrucción presentada te posibilite el uso de programas descritos y el trabajo en ellos te proporcione por lo menos tanta alegría cuantos esfuerzos conlleva su arranque. Especialmente para vosotros en nuestra página web (http:// www.lpmagazine.org) os presentamos la configuración de Wine con la que hemos probado el software descrito. Os recomendamos también las ediciones comerciales de Wine, cuyos autores ofrecen una consulta técnica y disponen de un listado de aplicaciones con soporte correcto. A los usuarios que desean utilizar, p. ej. Microsoft Office, les recomendamos CrossOver Office y a los aficionados a la diversión – WineX. ¡Qué lo paséis bien!
En Internet: • •
•
Figura 7. Image Ready. ¿Algún banner?
Página principal del proyecto WINE: http://www.winehq.org/ Página principal del fabricante de CrossOver Office: http://www.codeweavers.com/ Página principal del fabricante WineX: http://www.transgaming.com/
www.lpmagazine.org
37
integración de Linux y Windows
Cooperative Linux Krzysztof Krawczyk
C
ooperative Linux (abreviación: CoLinux) es un proyecto abierto, cuyo fin es la facilitación de arranque nativo en los sistemas Microsoft Windows. Al contrario a otras soluciones de este tipo, como por ejemplo VMware comercial, un driver especial para el sistema central genera el núcleo de CoLinux en el modo privilegiado (del superusuario). Mediante un cambio constante de conexión entre el sistema central y el virtual, CoLinux es tan eficaz y tan funcional, como un Linux normal, puesto en marcha de manera independiente en un ordenador determinado. Además, se utilizó el mismo formato binario de grabación de programas ejecutables y, por eso, no hay problema con el arranque de distribuciones no modificadas de Linux. Actualmente se puede conseguir la versión 0.5.4 de este software. En el artículo, os voy a enseñar cómo utilizar esta solución bajo el sistema Windows XP.
Instalación
En el DVD
En el DVD se hallan unos paquetes fuentes y binarios de CoLinux, como también dos representaciones de unas distribuciones hechas de Linux (Debian y Gentoo).
38
Linux+ 1/2004
Si disponemos de la versión Linux+ con DVD, encontraremos los ficheros necesarios en el directorio Linux+/System/ CoLinux. En caso contrario, en el página del proyecto hay fuentes, así como una versión completa y recompilada de CoLinux. Vamos a elegir la segunda opción. Descomprimimos el fichero colinux20040225-bin.tar.gz bajo Linux o bajo Windows. En el primer caso, realizamos simplemente tar xzvf nombre_paquete, en cambio, en el segundo caso, utilizamos Tar tipo cygwin o WinRAR. En el directorio obtenido colinux20040225-bin vamos a encontrar, entre otros, el subdirectorio TAP-Win32 con un
driver virtual de la red para el sistema Windows, el fichero de configuración default.colinux.xml y el fichero ejecutable colinux-daemon.exe. Todo el contenido del archivo lo copiamos al directorio C: /Colinux (podemos escoger otro directorio, pero entonces tendremos que modificar la ruta en el fichero de configuración).
Driver TAP-Win32
Al principio instalamos el driver TAPWin32. Permite crear una red local interna entre el arrancado CoLinux y Windows. Arrancamos Panel de control y allí elegimos la opción Agregar o eliminar programas. En Asistente para agregar hardware pulsamos el botón Siguiente. El sistema intenta encontrar por sí mismo un equipo nuevo, luego nos pregunta si el equipo ha sido ya conectado (elegimos: sí). En consecuencia, se nos mostrará un listado del equipo instalado. Luego elegimos en el listado: Agregar hardware, después afirmamos que queremos indicar manualmente el equipo para instalar. Nuestro driver ya está preparado, por eso, de Tarjetas ethernet escogimos la posición: Del disco e indicamos la ubicación del driver: fichero OemWin2k.inf del directorio C:\Colinux\TAP-Win32. Es el TAP-Win32 Adapter y después de pulsar Siguiente, finalizamos la acción de agregarlo. Cuando en el Panel de control elijamos ahora Conexiones de red, veremos una conexión local nueva en la categoría: Red LAN o Acceso rápido, relacionada con el driver TAP-Win32. Hasta el momento de arrancar CoLinux, la conexión señalará que el cable de la red está desconectado, pero a pesar de esto, estará activa.
colinux
integración de Linux y Windows
En Internet:
• Sitio web de CoLinux: http://www.colinux.org/
En la opción image definimos el nombre del núcleo de CoLinux, que ya se halla en el directorio C:/Colinux y es un fichero vmlinux. En la penúltima opción (memory), indicamos la cantidad de memoria que deseamos asignar para CoLinux: 32 MB debe ser suficiente en el trabajo con Linux en modo de texto, pero destinamos 64 MB, porque vamos a utilizar el servidor de los X. En la última opción (network) definimos el driver de la red – dejamos TAP.
Figura 1. CoLinux después de arrancar Debian y entrar en el sistema
Configuración
En el fichero default.colinux.xml se halla la configuración de CoLinux. Vamos a utilizar la que se encuentra en el Listado 1; abrir la imagen de la distribución completa de Linux sin activar la memoria de intercambio. En la primera opción (block device) definimos la partición (p.e. /dev/cobd0 es la primera partición montada en CoLinux – index=”0”) y su ubicación en el sistema Windows. Dentro del proyecto CoLinux se han preparado varias imágenes
de distribuciones completas de Linux. Vamos a servirnos del fichero Debian3.0r0.ext3.1gb.bz2 (contiene Debian con unos programas básicos). Después de descomprimirlo, cambiamos su nombre por root_fs y lo movemos al directorio C:/Colinux. En la segunda opción (bootparams) indicamos qué parámetros queremos transmitir al núcleo de Linux. El sistema principal de ficheros se encuentra en una partición antes definida, por eso, admitimos que root=/dev/cobd0.
Figura 2. CoLinux utiliza una conexión con Internet ya existente
Arranque
Tras la preparación de un driver virtual y tras la configuración de CoLinux, podemos arrancar el programa colinuxdaemon.exe. En una consola DOS aparecerán los mensajes sobre la acción de arrancar CoLinux y, después de un rato, se abrirá una ventana adicional con Debian ya iniciado. Cuando se muestra la opción de entrar en el sistema, utilizamos la cuenta root (sin contraseña). En ese momento podemos empezar un trabajo normal con Linux (Figura 1).
Red
Si deseamos utilizar Internet en CoLinux, en Windows tenemos que permitir a otros usuarios de la red que utilicen la conexión con Internet propia de este ordenador. Para hacerlo, en: Panel de control elegimos: Conexiones de red, y luego en: Propiedades de Conexión de área local (con Internet) en la pestaña Avanzadas indicamos la opción adecuada. Volvemos a arrancar CoLinux. Debian dispondrá de una red configurada con la dirección IP 192.168.0.40, y nuestro Windows recibirá la IP 192.168.0.1. Por último, en el fichero /etc/resolv.conf escribimos la IP del servidor DNS que utilizamos normalmente. Cuando realicemos apt-get update, podremos volver a instalar el resto de paquetes necesarios de la red, p.e. apt-get install mc lynx mutt (administrador de ficheros Midnight Commander, navegador web Lynx y cliente del correo Mutt).
www.lpmagazine.org
39
integración de Linux y Windows
Listado 1. Ejemplo de fichero default.colinux.xml <?xml version=“1.0“ encoding=“UTF-8“?> <colinux>
<block_device index=“0“ path=“\DosDevices\c:\Colinux\root_fs“ enabled=“true“> </block_device>
<bootparams>root=/dev/cobd0</bootparams> <image path=“vmlinux“></image> <memory size=“64“></memory>
<network index=“0“ type=“tap“ name=“TAP“></network>
</colinux>
X Window
Ahora en CoLinux tenemos acceso únicamente al modo de texto, por eso, si queremos trabajar en el modo gráfico, tenemos que usar servidor tipo cygwin de los X o la herramienta VNC. Elegimos la segunda opción, porque es la más fácil. Al principio instalamos y configuramos el sistema X Window (apt-get install x-window-system-core): escogemos cualquier driver de gráficos, p.e. VGA, la resolución 1024x768 y la intensidad de colores de 16 bits. Luego instalamos el entorno gráfico, p.e. Window Maker – apt-get install wmaker y el servidor VNC - apt-get install vncserver, y en Windows, el cliente ]VNC desde el sitio web http://www.realvnc.com/. Cuando arancamos el servidor VNC:
tenemos que indicar la contraseña de la sesión. Luego aparecerá el mensaje: New ‚X‘ desktop is colinux:1
En este momento arrancamos el cliente VNC en Windows, escribimos la dirección: 192.168.0.40:1 y la contraseña antes determinada. Se nos mostrará una pantalla vacía del servidor de los X. Cuando escribimos en la consola el comando wmaker, podremos trabajar en el entorno gráfico.
Finalización
CoLinux se encuentra en una temprana etapa de desarrollo, pero ya es útil. Merece la pena conocer este modo de uso de Linux.
vncserver -geometry 1000x685 -depth 16
Figura 3. Trabajo en el entorno gráfico de Linux
40
Linux+ 1/2004
Linux en la red
Samba 3.0 – un controlador completo del dominio Windows NT Rafał Szcześniak
L
DVD
Después de arrancar la distribución Linux+ Live DVD, en el menú Linux+/ se podrá acceder la posición Samba Server. Al principio hay que arrancar el servidor, luego Konqueror u otra herramienta que permita revisar recursos SMB de la red local para entrar en un recurso que facilita el acceso al directorio /tmp en el sistema iniciado.
En el DVD
En el DVD hay paquetes fuentes de Samba, varios suplementos al programa (p.e. configuradores gráficos o herramientas para analizar el funcionamiento de la red local).
42
Linux+ 1/2004
a versión 3.0 del paquete Samba ha supuesto un cambio radical en su campo de uso. Por primera vez se ha facilitado un controlador completo del dominio Windows NT bajo la licencia de GNU GPL. Ha sido un enorme cambio de calidad, ya que permite a los destinatarios la sustitución total del Controlador Principal del Dominio (PDC) que funciona en el sistema Windows NT 4.0 Server por un paquete Samba 3.0, que puede funcionar en cualquier sistema Unix. Este cambio significa no sólo la posibilidad de usar otra plataforma del sistema, sino también de realizar la migración del entorno antiguo a un servidor nuevo. En el presente artículo, os voy a enseñar qué pasos hay que seguir para configurar de manera correcta PDC en Samba y cómo realizar el proceso de migración de datos desde el sistema Windows NT.
¿Por qué merece la pena?
Cuando apareció el sistema Windows 2000, la empresa Microsoft cambió su modelo del dominio, utilizado en los sistemas de la línea NT. Un dominio plano, basado en el mecanismo de cifrar los códigos NTLM y de autorización reto-respuesta, fue sustituido por una estructura jerárquica Active Directory y la autorización en un protocolo modificado Kerberos V. Este cambio supuso el fin del desarrollo de los dominios Windows NT y un fin cercano del soporte técnico para este tipo de soluciones. Al mismo tiempo, en muchas redes que funcionan hoy en día, las posibilidades que ofrece
Windows NT son completamente suficientes, pues la adquisición de una versión nueva del sistema de la empresa Microsoft es un gasto infundado (y considerable). La versión 2.2 de Samba fue una opción, pero el nivel del soporte para mecanismos del dominio Windows NT era demasiado bajo. Las funciones básicas en muchos casos resultaban insuficientes. La edición de Samba 3.0 llenó el vacío dejado por la versión 2.2. El soporte ofrecido para todas las funcionalidades de PDC y muchas de sus propiedades nuevas pueden causar el efecto de que los usuarios finales sustituyan el servidor Windows NT 4.0 en la red por el servidor Samba de manera imperceptible.
Un servidor sencillo – Samba 3.0.x
Una configuración básica de Samba es el primer paso y es muy aconsejable para los administradores de este servidor, y de la red SMB en general, que tienen menos experiencia. Aunque el listado de parámetros en el fichero smb.conf ya tiene más de 300 posiciones, por suerte, la mayoría de ellos tiene valores predeterminados y por eso es realmente fácil alcanzar el mínimo. Cuando iniciamos la configuración, supoListado 1. Configuración sencilla de Samba [global] netbios name = VALHALLA workgroup = SAMBANET
Linux en la red
samba 3.0.x
Listado 2. Configuración de un servidor normal de ficheros [global] netbios name = VALHALLA workgroup = SAMBANET passdb backend = tdbsam [directorio] path = /tmp public = no writeable = yes
nemos que la configuración principal de la red ha sido correcta y por eso será posible realizar conexiones TCP/IP con el servidor nuevo. La configuración más fácil de Samba es un sólo parámetro en el fichero smb.conf. El parámetro define la información relacionada con la dificultad de prever con acierto el valor predeterminado: el nombre del grupo de trabajo, o (dentro de poco) del dominio. Si, a pesar de todo, no se proporciona el nombre, el servidor
Samba predeterminará que el nombre es WORKGROUP. El nombre NetBIOS del servidor será el mismo que el resultado de la realización del comando hostname. Sin embargo, a lo mejor por analogía con los sistemas Windows, se suelen definir los dos nombres; nuestro fichero inicial smb.conf tendrá el mismo contenido que en Listado 1. Desde luego, los nombres expuestos aquí sirven solamente de ejemplo. Este tipo de configuración permite encontrar en el entorno de la red el servidor VALHALLA, que se colocará en el grupo de trabajo SAMBANET. Sin embargo, sólo será posible mirarlo; por dos causas: primero, Samba funciona por defecto con protección a nivel de usuario (security = user) y con contraseñas codificadas. Esto significa que, para conectarse al servidor, es necesaria previa autorización y, para realizar una autorización, hay que tener una cuenta determinada. Segundo, en la configuración básica antes descrita, no hay ningún recurso definido ofrecido por
Listado 3. Primer paso en el camino hacia PDC [global] netbios name = VALHALLA workgroup = SAMBANET passdb backend = tdbsam local master = yes domain master = yes preferred master = yes [directorio] path = /tmp public = yes writeable = yes
el servidor, de ahí que incluso una prueba exitosa de conectarse será inútil. Vamos a agregar unas líneas adicionales a la configuración antes mencionada. (Listado 2). De este modo se amplía la configuración por una coparticipación con el nombre directorio (este nombre se mostrará en la red). Esto permite el uso del directorio /tmp del sistema de ficheros de lservidor destinados a escribir (writeable = yes), solamente para usuarios autorizados de manera correcta, que disponen de Listado 4. Controlador de dominio completo [global] netbios name = VALHALLA workgroup = SAMBANET passdb backend = tdbsam local master = yes domain master = yes preferred master = yes domain logons = yes use spnego = no logon path = \\%L\profiles\%U [NETLOGON] path = /usr/local/samba/netlogon public = no writeable = no [profiles] path = /usr/local/samba/profiles public = no writeable = yes [directorio] path = /tmp public = yes
Figura 1. La conexión con el servidor Samba en marcha
writeable = yes
www.lpmagazine.org
43
Linux en la red
una cuenta (public = no). Samba guarda la cuenta en un fichero especial, y el parámetro passdb backend define el tipo de este fichero. Este parámetro no es necesario porque su valor por defecto hace posible el uso de los ficheros smbpasswd, que hemos conocido en la versión 2.2. Aquí lo hemos utilizado porque el resultado final debe ser Controlador Principal de Dominio y es, entre otros, este modelo de bases de cuentas lo que posibilita el empleo completo de funcionalidades de Samba como PDC. Después de extender el fichero, tenemos que realizar el comando smbpasswd -a admin para crear una cuenta. Por medio de este comando se puede conectar al servidor Samba. Todos los pasos realizados hasta ahora facilitan la conexión con el servidor, que está presentado en la Figura 1. Allí se ve una coparticipación particular Printers que significa que Samba está configurada por defecto para el soporte de impresoras con ayuda de comandos MS-RPC, es decir, utilizando los mismos métodos que los aplicados en sistemas Windows NT/2000/XP/2003. Esta configuración básica ya permite compartir el número indefinido de ficheros con varios usuarios, cada uno de los cuales tendrá una cuenta generada del mismo modo que lo hemos mostrado antes. En esta situación, se puede dar un paso adelante: el servidor asumirá el papel de Controlador Principal de Dominio.
Figura 3. Agregación del sistema Windows 2000 Professional al dominio controlado por el servidor Samba
Ascenso al papel de PDC
El Controlador de Dominio, además de autorizar a los usuarios del dominio, realiza también muchas otras tareas. Una de ellas es la de reunir información sobre los ordenadores conectados y desconec-
Figura 2. Varios métodos de operar con las cuentas en el servidor Samba
44
Linux+ 1/2004
tados en el dominio. Su segunda tarea consiste en guardar las configuraciones de todos los usuarios. Para realizar la primera tarea sin estorbos, el PDC tiene que ser al mismo tiempo ¨Domain Master Browser¨, lo que muchas veces significa una configuración del servidor WINS. Todo esto para crear en el PDC un servicio que convierte los nombres NetBIOS en direcciones IP, del mismo modo a como lo hace el servidor DNS con los nombres de dominios de Internet. Para realizarlo, en el fichero smb.conf hay que introducir unos parámetros nuevos (Listado 3). Gracias a esta configuración, Samba puede ganar “elecciones en Internet” del Domain Master Browser con una pequeña ventaja sobre sus competidores, y permite ojear todo el dominio/grupo de trabajo, que puede extenderse fuera de subred local. El segundo paso que finaliza la configuración del PDC es la facilitación de una coparticipación especial de NETLOGON, perfiles móviles (ing. roaming profiles) y la activación de autorización de los usuarios del dominio. El primer elemento es propio de todos los controladores de dominio Windows NT y sirve para almacenar los scripts de logear y los ficheros de normas del sistema
Linux en la red
samba 3.0.x
(ing. policy files), que se “aglutinan” al contenido del registro del usuario que se está logeando. Los perfiles móviles se almacenan en una coparticipación aparte y guardan el mismo contenido que el directorio “Documents and Settings” en Windows 2000 o “WINNT\Profiles” en Windows NT 4.0. La configuración que va a cumplir todas estas funciones se encuentra en el Listado 4. El servidor iniciado con esta configuración está listo para soportar el dominio. Contiene coparticipaciones necesarias de NETLOGON y profiles, además posibilita el uso de la función del PDC (domain logons = yes) y apaga el soporte de compatibilidad con Active Directory (use spnego = no), que en caso de dominios Windows NT puede producir unos problemas innecesarios.
Cuentas de usuarios y agregación de estaciones de trabajo
Antes de que sea posible agregar al dominio un ordenador, hace falta añadir unas cuentas adecuadas. Partiendo de la versión 3.0, es posible hacerlo de distintas maneras. Se soportan métodos locales, es decir, el comando smbpasswd que ya hemos mencionado, pero funciona también
Listado 5. Parte del resultado obtenido tras la realización del comando pdbedit, respecto a una cuenta creada
Unix username: phobos$ NT username: Account Flags: [W] User SID: S-1-5-21-1495415059-780168309-2423844128-5008 Primary Group SID: S-1-5-21-1495415059-780168309-2423844128-5001 Full Name: PHOBOS$ Home Directory: \\%N\phobos_ HomeDir Drive: Logon Script: Profile Path: \\valhalla\profiles\phobos_ Domain: SAMBANET Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: Fri, 13 Dec 1901 21:45:51 GMT Kickoff time: Fri, 13 Dec 1901 21:45:51 GMT Password last set: Fri, 03 Oct 2003 11:04:46 GMT Password can change: Fri, 03 Oct 2003 11:04:46 GMT Password must change: Fri, 24 Oct 2003 11:04:46 GMT
un soporte para métodos remotos. Con ayuda de unas llamadas a MS-RPC se pueden crear las cuentas necesarias, pero hay que recordar que cada cuenta creada en Samba tiene que disponer de un UID en el sistema operativo local en el que funciona Samba.
Si en el caso de arrancar el Samba únicamente con los sistemas Windows NT 4.0, es suficiente un método local, en el caso de Windows 2000 es imprescindible conocer métodos remotos. Cada uno de los sistemas de estaciones de trabajo tiene que tener una cuenta adecuada en el servidor Samba. Es la llamada cuenta de estación de trabajo confiable (ing. workstation trust account). Como otros tipos de cuentas, puede crearse de forma local o remota. Solamente mediante el segundo método es posible agregar Windows 2000 al dominio. Es así porque la agregación de este sistema en realidad sucede en dos etapas. La primera etapa es la creación de una cuenta de estación de trabajo confiable, y la segunda es la transmisión de contraseñas apropiadas a las cuentas. Para crear una cuenta, hay que introducir el nombre y la contraseña del usuario que podrá hacerlo. Aquí llegamos al grano. El único usuario por defecto que dispone de esta posibilidad es el root, y si nadie tiene derecho a escribir en el fichero de cuentas de Samba, hace falta crear (de forma local) una cuenta para este usuario: smbpasswd -a root
Figura 4. Mensaje que notifica la agregación del sistema al dominio
La contraseña aquí dada puede ser completamente diferente a la utilizada en el sistema. Una cuenta creada de esta
www.lpmagazine.org
45
Linux en la red
Listado 6. El BDC para realizar la migración [global] netbios name = VALHALLA workgroup = NTNET passdb backend = tdbsam
queramos conectar el sistema Windows 2000 con un dominio recién creado (Figura 3 y 4). Con este método se puede agregar al dominio casi cualquier número de sistemas, además de añadir cuentas. Es posible ver el listado completo de las cuentas creadas ejecutando el comando:
local master = yes domain master = no preferred master = yes domain logons = yes use spnego = no logon path = \\%L\profiles\%U [NETLOGON] path = /usr/local/samba/netlogon public = no writeable = no [profiles] path = /usr/local/samba/profiles public = no writeable = yes [directorio] path = /tmp public = yes writeable = yes
manera facilita la realización de operaciones remotas en base a cuentas de usuarios. Se puede hacer con ayuda del sistema Windows o utilizar la herramienta net, que es una novedad en Samba 3.0.x. La ejecución del siguiente comando: net rpc user add <nombre_cuenta> -U root
causará la agregación de una cuenta con el nombre dado. Ya que aquí se utilizan métodos remotos, en otro sistema se puede realizar el comando:
pdbedit -L -v
Se mostrarán todos los detalles respecto a las cuentas que se hallan en el fichero tdbsam (cuyo fragmento se puede ver en el Listado 5). Es digno de mencionar que allí se almacenan varios datos sobre la ubicación del perfil, descripción de la cuenta, etc. La colocación de la base de cuentas en el fichero tdbsam hace posible guardar y modificar toda esta información. El fichero smbpasswd no tiene estas propiedades y, por ello, es menos útil a la hora de crear un servidor PDC.
Migración de un dominio existente
Incluso una configuración simple de PDC, cuya base es Samba, puede resultar inútil si hay que reproducir manualmente el entorno existente del dominio Windows NT. En caso de una red grande, donde hay una cantidad significativa de cuentas de usuarios, la falta de una opción de migrar las bases de cuentas hace imposible el uso de Samba como un PDC nuevo. Por este motivo la capacidad de efectuar este proceso fue una de las condiciones para lanzar la versión 3.0 estable. Para efectuar la migración, hay que realizar los siguientes pasos: – –
net rpc user add <nombre_cuenta> -U root
Como consecuencia de esta llamada, se agregará una cuenta también en el servidor remoto Samba. Por medio del mismo mecanismo se añadirá una cuenta determinada, cuando
–
–
modificar la configuración de Samba cambiando su papel a BDC; crear una cuenta del servidor Samba como BDC en el controlador de dominio que está migrado; desactivar los procesos de Samba y crear unas cuentas adecuadas en el sistema Unix; realizar comandos de descarga del contenido de base de cuentas de
Tabla 1. Los principales grupos del dominio migrado y ejemplos de sus equivalentes
46
Grupo WinNT
Grupo Unix
Domain Admins
root/wheel
Domain Users
users
Domain Guests
nogroup
Linux+ 1/2004
usuarios desde el PDC utilizado hasta ahora. El cambio de configuración en smb.conf significa solamente la eliminación de la funcionalidad de Domain Master Browser (domain master = no). De esta manera el servidor no intenta ¨ganar unas elecciones¨ en el dominio y al mismo tiempo conserva el soporte de logeo en el dominio. En este caso, el servidor Samba es el Controlador de Dominio de Respaldo (ing. Backup Domain Controller - BDC). Desde luego, hay que cambiar el nombre del dominio al nombre del dominio destinado a la migración. El Listado 6 representa el contenido completo. El siguiente paso es la creación de una cuenta BDC apropiada en el controlador principal, que sigue funcionando en el sistema Windows NT 4.0 Server. Esta cuenta se genera con ayuda de una herramienta estandár (se llama Server Manager), que posibilita la agregación del servidor BDC o de un miembro ordinario del dominio. En este caso nos interesa la primera opción. Antes de descargar la información del servidor Windows NT, hay que apagar dos procesos de Samba: nmbd y smbd, y después crear una estructura adecuada de cuentas de grupos. Aunque existe la posiblilidad de realizarlo con ayuda del parámetro add group script, se recomienda la creación manual de grupos respectivos conforme a sus equivalentes al lado de Windows NT. La migración será más cómoda, si al lado del servidor Samba creamos unos grupos que correspondan a los grupos básicos del dominio Windows NT, y los que fueron generados por el administrador en el entorno del dominio. La Tabla 1 presenta un listado de los principales grupos. Por supuesto, el listado de grupos en un caso concreto del dominio migrado es mucho más largo. Las redes más grandes tienen sus grupos de función y, como en cada dominio, los así llamados grupos “bien conocidos”: Administrators, Power Users, etc. Cada uno de estos grupos puede tener su equivalente en forma de un grupo Unix y relacionado con él número GID. Antes de asociar los grupos de WinNT y Unix, es muy importante agregar el servidor Samba al dominio. Con este objetivo ya se ha creado una cuenta BDC en el servidor Windows NT y se ha modificado debi-
Linux en la red
samba 3.0.x
Listado 7. El resultado de una reproducción simple de grupos System Operators (S-1-5-32-549) -> -1 Domain Guests (S-1-5-21-1991581395-1712338148-1893690239-514) -> nogroup Replicators (S-1-5-32-552) -> -1 Guests (S-1-5-32-546) -> -1 Power Users (S-1-5-32-547) -> -1 Print Operators (S-1-5-32-550) -> -1 Domain Users (S-1-5-21-1991581395-1712338148-1893690239-513) -> users Administrators (S-1-5-32-544) -> -1 Account Operators (S-1-5-32-548) -> -1 Backup Operators (S-1-5-32-551) -> -1 Users (S-1-5-32-545) -> -1 Domain Admins (S-1-5-21-1991581395-1712338148-1893690239-512) -> root
damente la configuración de Samba. Así que nos queda ejecutar (como root) el comando: net rpc join NTNET -U admin%sekret
El parámetro “admin%sekret” es simplemente el nombre y la contraseña de un usuario con autorización del administrador por el lado del servidor Windows NT. Si la agregación es exitosa, aparecerá el mensaje: “Joined domain NTNET”. En este momento se descarga el identificador SID del dominio, lo que facilitará hacer una reproducción exacta de sus grupos en los grupos del sistema local. Asimismo, es hora de generar la misma reproducción: net groupmap modify ntgroup=”Domain Admins” net groupmap modify ntgroup=”Domain Users” net groupmap modify ntgroup=”Domain
S S S
Guests”
Para ver el resultado de estos procedimentos, hay que ejecutar el comando net groupmap list. Lo presenta el Listado 7. Merece la pena notar que todos los grupos pertenecientes al dominio han sido reproducidos. Se los reconoce a través de un identificador SID más largo
(S-1-5-21-...). Las tres cifras más grandes componen el SID del dominio, el cual ha sido descargado del servidor Windows NT durante la agregación del servidor Samba al dominio (Figura 5). Ya es hora de descargar las cuentas de usuarios. Hay que recordar que cada cuenta nueva tiene que disponer del UID que le corresponda. Podemos utilizar el parámetro add user script, teniendo en cuenta el carácter diferente de los nombres en Windows NT. La ejecución del comando: net rpc vampire -S NTPDC
descarga unas cuentas particulares de la base SAM del servidor Windows NT con el nombre NTPDC. Cuantas más cuentas se descargan, mayor posibilidad existe de que se produzca un error, por lo general, como resultado de no haber una cuenta de Unix o una conversión. Por eso, puede ocurrir que se consiga realizar el proceso completo tan sólo después de un par de pruebas. El comando “pdbedit -L” permite verificar al corriente el contenido actual de la base de cuentas de usuarios. Las siguientes etapas de migración consistirán en la descarga de perfiles móviles del servidor Windows NT, y este proceso será auxiliado por herramientas de este sistema. Consiste en la realiza-
ción de copias de ficheros, de ahí que hay que prestar atención que los directorios con perfiles almacenados en el servidor Unix tengan el propietario que corresponda al perfil y derecho de acceso que permita una actualización, p.e. del escritorio. Por supuesto, todas estas etapas tienen que producirse después de volver a asignar a Samba el papel de PDC (domain master = yes) y después de arrancar los demonios nmbd y smbd.
Problemas
La mayoría de los usuarios que empiezan a utilizar el servidor nuevo, basado en el sistema Unix y Samba , suponen erróneamente que de manera fácil dispondrán de un equivalente exacto de Windows NT. Olvidan que el sistema Unix tiene un carácter diferente y, donde se pueda, hay que valerse de sus propios mecanismos, entre otras, en cuestiones relacionadas con derechos de acceso, en vez de tratar de ajustarlo a los mecanismos Windows a través de unas exageradas combinaciones de parámetros en smb.conf (aquí el más popular es el parámetro “valid users”). Es igual de sorprendente que muchos administradores realicen la migración sin planificar un modelo nuevo de protección y sin realizar una simulación del comportamiento del entorno. Es una prueba de falta de imaginación y no se pueden justificar estas acciones, incluso si se efectúa una migración del dominio Windows NT a Active Directory. La transformación del entorno PDC en el sistema Unix y Samba abre varias posibilidades como, por ejemplo, almacenamiento de cuentas en una base de datos de relación o el soporte de una red dispersa de servidores de ficheros, pero efectuar este cambio sin una planificación razonable puede llevar a muchas frustraciones.
En Internet: • •
Figura 5. Estructura del identificador SID
Sitio web del proyecto Samba: http://www.samba.org/ Manual sobre Samba: http://www.oreilly.com/catalog/ samba/chapter/book/
www.lpmagazine.org
47
primeros pasos
MLDonkey Piotr Machej
Q
DVD
Después de arrancar la distribución Linux+ Live DVD, en el menú Linux+/P2P accederemos a las posiciones para arrancar el servidor MLDonkey y sus clientes (de texto, de gráficos y a través de la web). Al principio hay que arrancar el servidor, y luego uno de sus clientes, p.e. a través de la web. Si configuramos la red de modo correcto, podremos buscar los ficheros en Internet y marcarlos para bajarlos.
48
Linux+ 1/2004
uizás no sea un secreto para nadie que enorme cantidad de recursos en Internet no son sólo accesible a través de las páginas web, sino también a partir de archivos facilitados por los usuarios. Los programas P2P (Peer to Peer) han sustituido con el paso de tiempo a los populares FTP (File Transfer Protocol). Programas de este tipo se siguen desarrollando y ganando cada vez más popularidad, a pesar de su persecución por parte de los medios de comunicación y de consorcios del ramo de entretenimiento. Ha llegado a tal punto que incluso las distribuciones de Linux se facilitan a través de la red P2P. Cuando necesitamos un fichero determinado, no es difícil: arrancamos el programa y lo descargamos de las personas que, en todo el mundo, lo han facilitado en sus discos. En el presente artículo me gustaría describir el programa MLDonkey, gracias al cual podemos intercambiar nuestros fondos de archivos. MLDonkey (el cliente más potente de la red eDonkey2000) apoya también otras redes, tales como OverNet, BitTorrent, FastTrack, Soulseek, Gnutella, Napster o Direct Connect. Es un cliente universal. Una de sus ventajas es la opción de administración remota (también desde el nivel de clientes en el sistema Windows). Les invito a conocer este programa.
Instalación
Podemos elegir entre un par de modelos del programa MLDonkey. Desde el sitio web del proyecto (véase el recuadro En Internet), tenemos acceso a unos paquetes fuentes. En la página del usuario SpiralVoice, en el foro MLDonkey World, encontraremos los paquetes binarios universales. Podemos también buscarlos en la Red ya preparados, destinados a nuestra distribución de Linux. Voy a describir la instalación de un paquete compilado estáticamente. Si disponemos de la versión Linux+ DVD, los paquetes necesarios se encuentran en el directorio Linux+/MLDonkey/ SpiralVoice. En el caso contrario, empezaremos abriendo en el navegador el sitio web http://www.8ung.at/spiralvoice/. En el momento de escribir este artículo, la versión 2.5-16d era la última; vale la pena comprobarlo en la página principal del proyecto. En el sitio mencionado hay que encontrar un enlace al fichero mldonkey-2.5-16d.static.i386Linux.rar. En caso de que en nuestra distribución Linux no tengamos el programa Unrar, el paquete rarlinux3.3.0.tar.gz es asequible en el DVD en el directorio Linux+/MLDonkey /Unrar, o podemos decargarlo de la página http://www.rarsoft.com/download. htm. Lo descomprimimos (tar xzvf rarlinux-3.3.0.tar.gz) y en el directorio creado rar como root ejecutamos el comando make.
redes p2p
primeros pasos
./mlgui,
arrancaremos un programa basado en la librería GTK. Esta interfaz gráfica es bastante cómoda, pero yo personalmente prefiero la tercera opción, es decir, el acceso a través de la web. Es suficiente abrir una página con la dirección http://127.0.0.1:4080/ en el navegador para conseguir entrar en un sitio en que aparezcan de manera cómoda y clara las instrucciones actualizadas del funcionamiento del servidor. El Lector seleccionará la interfaz: lo mejor es familiarizarnos con todas y luego elegir la que más nos guste. Podemos también buscar en la Red otros clientes para MLDonkey, tanto los que funcionan bajo X11, como en el entorno Windows. Figura 1. Cuando nos hallamos detrás del firewall, podemos tener problemas al conectarnos con los servidores eDonkey2000
El archivo rar, junto con el programa MLDonkey, lo ponemos en un directorio nuevo (p.e. ~/mldonkey, generado con el comando mkdir ~/mldonkey) y lo descomprimimos con el comando unrar x mldonkey-2.5-16d.static.i386-Linux.rar. Obtenemos tanto ficheros ejecutables (servidor y clientes), como unos ficheros de ejemplo de configuración y la documentación. Hay que recordar que no se puede arrancar el servidor MLDonkey, imprescindible para el funcionamiento del programa, desde el nivel del usuario root, sino desde el usuario común (con el comando ./mlnet en el directorio creado). Hay que recordar también que antes de arrancar mlnet siempre hay que pasar al directorio que contiene este programa, porque MLDonkey crea unos ficheros temporales en el subdirectorio temp del directorio corriente, y hace pasar en su totalidad los archivos descargados al subdirectorio incoming, que se encuentra en el directorio corriente. Si arrancáramos el programa cada vez desde un directorio diferente, tendríamos que contar con que no continuaría con la descarga de los ficheros que había empezado a bajar ya antes.
A la primera se puede acceder tras ejecutar el comando telnet 127.0.0.1 4000. Es una interfaz solamente textual, por eso, puede que no les guste a muchos Lectores. Después de realizar los comandos ? y ??, obtenemos una lista de comandos posibles. Si en el segundo caso conseguimos un listado completo de todos los comandos, en el primero sólo salen los que se usan con más frecuencia. Si no nos gusta la interfaz textual, gracias a la ejecución del comando
Configuración básica
Después de instalar el programa podemos utilizarlo inmediatamente, aunque vale la pena conocer las opciones de configuración alcanzables y ajustarlas a nuestras propias necesidades y medios. Todas las opciones de configuración se hallan en los ficheros con la extensión ini, que se encuentran en nuestro ejemplo de directorio ~/mldonkey. Podemos cambiarlas, editando directamente los ficheros o utilizando la interfaz textual o gráfica. A continuación voy a presentar un par de opciones importantes en la interfaz mlgui.
Clientes de MLDonkey
Ya hemos arrancado el servidor, pero no sabemos cómo administrarlo. Podemos escoger entre tres interfaces diferentes.
Figura 2. En eDonkey2000 también se pueden encontrar las distribuciones de Linux
www.lpmagazine.org
49
primeros pasos
Figura 3. Sitio web MLDonkey World, donde se puede encontrar mucha información sobre el programa
Así, después de ejecutar ./mlgui desde el directorio ~/mldonkey, aparecerá la ventana de la interfaz. Por ahora nos interesa el menú File-->Settings o el icono Settings que se halla a la derecha (en la versión nueva). No tocamos la pestaña GUI, que sirve solamente para escoger el aspecto de la interfaz que más nos guste. El campo Password puede llamar nuestra atención, pues se supone que MLDonkey permite conectarse a los clientes sólo desde un ordenador local (127.0.0.1), por eso es mejor no inventar la contraseña: claro, a excepción de que haya más personas que utilicen nuestro ordenador. Vayámonos a la pestaña Client. Aquí se encuentra la mayoría de las opciones esenciales. En la pestaña Main definimos nuestro nombre en la red eDonkey. Hace poco mencionamos el campo Allowed IPs en la pestaña Interfaces. En este campo se comprenden los números IP de los ordenadores, desde los que podemos administrar nuestro servidor MLDonkey. No cambiamos el resto de las opciones de esta pestaña. Las opciones probablemente más importantes para la mayoría de los usuarios de los programas P2P se hallan en la pestaña Bandwidth. Aquí podemos configurar la rapidez máxima de descarga (Maximal Download Bandwidth) y del envío de datos (Maximal Upload Bandwidth). Los valores supuestos son de 50 kB/s y de 7 kB/s. Sin embargo estos valores resultarían „mortales”, por ejemplo, para los usuarios de módems, de ahí que haya que ajustarlos a los parámetros de su propia conexión. Si nuestro ordenador funciona dentro de una red del barrio o de vecinal, vale la pena acordarnos de otros usuarios: no exageremos con una configuración de valores demasiado altos.
50
Linux+ 1/2004
En la pestaña Paths podemos definir dónde se colocarán los ficheros temporales (Temp directory), y dónde se copiarán los ficheros descargados en totalidad (Incoming directory). Si tenemos intención de descargar ficheros grandes, hay que prestar atención a que estos directorios se hallen en una partición con mucho espacio libre. Por fin, la última pestaña, Plugins. Contiene una configuración propia de plug-ins destinados al soporte de las respectivas redes. Merece la pena echar un vistazo a todas las opciones en las pestañas concernientes a las redes que utilicemos. Por ejemplo, en la pestaña eDonkey fijémonos en la opción Force High ID. Si la marcamos, MLDonkey de manera automática se desconectará de los servidores que nos han asignado un ID bajo (Low ID). Es útil, si queremos tener la posibilidad de bajar los ficheros de un modo más rápido. Hay que recordar que si nuestro ordenador está detrás de Masquerade o NAT, y en el router no tenemos acceso a puertos oportunos, nunca conseguiremos un ID alto (High ID). Éste se proporciona solamente a los clientes con los que se puede conectar desde fuera. Si en este caso marcamos la opción arriba mencionada, podemos olvidarnos de la conexión con cualquier servidor eDonkey. Por otra parte, en la pestaña DC (relacionada con la red Direct Connect), hay que prestar atención a la opción Firewalled. Debemos marcarla, cuando, como ya se ha mencionado, estemos detrás de Masquerade o NAT.
Facilidades en Mozilla
Cuando terminemos de configurar nuestro programa, seguramente nos gustará bajarnos algunos archivos. Podemos encontrarlos con ayuda del buscador disponible a los clientes o con ayuda de los sitios web (así llamados link farm), que contienen enlaces a los archivos, a menudo verificados, facilitados en las redes P2P. En caso de utilizar el buscador, probablemente nos parezca bien que MLDonkey recuerde los resultados de la búsqueda. Así, luego podremos volver a mirarlos. Muchos ficheros resultan ser falsos (en vez del buscado, recibimos un fichero completamente diferente con distinto nombre). Por eso, merece la pena utilizar el link farm; por
desgracia, hace poco la policía suiza cerró el más popular, Sharereactor. Los enlaces encontrados allí (con nombres que empiezan con ed2k:), los podemos pegar en el campo de texto que se encuentra en la pestaña Downloads del cliente. Sin embargo, este método no es muy cómodo. Sería mejor si, después de pulsar con el ratón en el enlace ed2k: del sitio web, el fichero estuviera agregado a la cola de descarga en MLDonkey. Si para buscar las páginas web utilizamos Mozilla, no deberíamos tener problemas con la selección de esta opción. Con este objetivo arrancamos Mozilla como usuario privilegiado (root). Abrimos el sitio http://www.informatik. uni-oldenburg.de/~dyna/mldonkey/ y elegimos el enlace a la última versión de archivo responsable de atender el protocolo ed2k: en Mozilla (actualmente es mldonkey_protocol_handler-1.3.xpi, que se puede encontrar en el directorio ~/ mldonkey/ed2k_mozilla/ ). Aparacerá una ventana de advertencia contra posibles peligros resultantes de la descarga del programa desde el sitio web. Pulsamos el icono Instalar. Cuando aparezca la inscripción Instación finalizada, pulsamos el icono OK. Ahora ya podemos cerrar el buscador, y volver a abrirlo desde el nivel de usuario corriente. Si la instalación ha estado libre de errores, después de elegir el enlace ed2k: en el sitio web, MLDonkey iniciará la descarga del fichero elegido.
En Internet: • •
•
•
•
Sitio web de MLDonkey: http://www.nongnu.org/mldonkey/ Información sobre el proyecto MLDonkey: http://savannah.nongnu.org/projects/ mldonkey/ Manejo del protocolo ed2k: en Mozilla: http://www.informatik.unioldenburg.de/~dyna/mldonkey/ Sistema de soporte de MLDonkey World: http://mldonkey.org/ Paquetes binarios de MLDonkey para Linux: http://www.8ung.at/spiralvoice/
primeros pasos
redes p2p
DCGUI-Qt Piotr Truszkowski
D
CGUI-Qt es a lo mejor el cliente más popular de la red Direct Connect para el sistema Linux. En el presente artículo describiré las reglas básicas de trabajo con este programa.
Instalación
El procedimiento de instalación es estándar (./configure, make, make install), pero para funcionar el programa necesita la librería dclib, la cual tendremos que instalar antes, así como el programa.
Configuración
Está bien configurar español como idioma de trabajo. Podemos hacerlo de la manera siguiente: Fichero–>Opciones–> GUI. Después de hacer click en el icono del pececito y después de seleccionar el español, volvemos a arrancar el sistema. Al principio, pasamos al menú de configuración, al que se accede después de elegir Fichero–>Opciones. Nos concentramos en una configuración básica que permitirá conectarnos con el hub. En la pestaña Identificación definimos: –
–
– nuestro alias. Si estamos detrás del cortafuegos, tenemos que agregar un marcador [psv] delante de nuestro apodo. Por ejemplo: [psv]Mar; Velocidad – velocidad de nuestra conexión. Apodo
En la pestaña Descarga, definimos: –
Directorio de descargas
– directorio al que se copiarán los ficheros durante su descarga;
–
Mover descargas terminadas a este
–
– directorio al que se trasladarán los ficheros descargados por completo; Directorios compartidos – con ayuda del icono con una cruz verde agregamos directorios con ficheros que deseamos compartir; directorio
–
– un slot equivale a una persona que puede descargar nuestros ficheros; En la mayoría de los hubs se exige la atribución de tres slots, así que si estamos conectados con dos hubs, tenemos que cambiar la cantidad de slots en 6. Cantidad máxima de slots
En la pestaña Conexión seleccionamos Modo pasivo/modo activo. Si estamos detrás del cortafuegos, tenemos que seleccionar el modo pasivo. Por esta razón aparecerán limitaciones, p. e. no podremos descargar los ficheros de otro usuario que se encuentre detrás del cortafuegos. No obstante, si no nos encontramos detrás del cortafuegos, podemos escoger el modo activo. Así podremos descargar los ficheros de todos los usuarios de la red Direct Connect (si él dispone de unos slots libres). En la pestaña Otros se encuentra Lista de hubs. Es un sitio muy importante. Aquí escribimos las direcciones de listas de hubs con las que intentaremos conectarnos. El programa DCGUI-Qt tiene un listado ya incluido en su interior. Al principio será suficiente porque contiene más de 12.000 hubs. Después de introducir todos estos cambios, hacemos click en el botón Grabar. Hemos configurado un cliente de la red Direct Connect. Ahora podemos dar un paso siguiente: descargar la lista de hubs accesibles para nosotros a nuestro disco duro. Pulsamos en el menú en Mostrar lista de hubs. En este momento el listado está vacío; lo cambiamos. Hacemos click en el segundo icono de la izquierda (con una flecha verde y una caja abierta). Ahora tenemos que esperar un momento. Mientras tanto podemos prepararnos un té. Cuando regresemos, el listado debería estar lleno de hubs.
Búsqueda y descarga de ficheros
El icono con una lupa sirve para buscar los ficheros. Podemos introducir allí la frase que buscamos, definir su tamaño mínimo/
Figura 1. DCGUI-Qt (http://dc.ketelhot.de/)
máximo y su tipo (video, mp3, programa u otro). En la pestaña Hubs vale la pena marcar la opción Hubs públicos, de este modo se buscará en todos los hubs que se hallan en nuestra lista la relación con nuestra frase. Introducimos los datos necesarios y pulsamos en Buscar. La búsqueda en más de 12.000 hubs ocupará poco tiempo (depende de la rapidez de la conexión; puede tardar de un par de minutos a un par de horas). Si varias personas disponen del fichero que buscamos, fijémonos en la cantidad de slots que tiene cada uno de estos usuarios. Tenemos que recordar que un slot equivale a una descarga. Cuantos más slots tienen los usuarios encontrados por nosotros, mejor. Para descargar el slot del usuario, hay que conectar con el hub en el cual se encuentra el fichero (pulsamos con el botón derecho del ratón en una persona seleccionada y elegimos Conectar al hub). Después de conectar con el hub, seleccionamos en el menú los resultados de la búsqueda del usuario determinado, hacemos click con el botón derecho del ratón y elegimos: Descarga. El programa nos preguntará: ¡Puedes iniciar una multidescarga!; vale la pena decir sí, puesto que podremos sumar la transferencia cuando descargamos el mismo fichero desde otros usuarios.
Resumen
El programa DCGUI-Qt es un cliente cómodo de la red DC y por eso merece nuestro interés.
www.lpmagazine.org
51
primeros pasos
BitTorrent Daniel Koć
G
eneralmente, para transferir ficheros se utiliza el protocolo FTP. Sin embargo, la aparición de Napster provocó una auténtica revolución en este campo. Desde el momento de su aparición, como setas después de la lluvia, empezaron a construirse sistemas de intercambio directo de ficheros entre usuarios, que por lo común se llaman P2P (Peer To Peer). Uno de los rasgos básicos de este tipo de redes es su capacidad para descargar ficheros por fragmentos (heredado de FTP), otro rasgo (ya propio de este sistema) es la capacidad para combinar el fichero de destino desde varias fuentes. BitTorrent se puede describir simplemente como la unión entre el método tradicional y el método moderno de compartir los ficheros.
dinámico nuestro ordenador como la siguiente fuente potencial de este fichero. Esto no tiene mucha importancia si somos el único usuario que descarga y todo funciona como durante una sesión normal de FTP. Pero en el caso cuando se conectan otras personas, el tráfico se divide entre el servidor y los clientes. Con este objetivo se utilizan unos algoritmos especiales que provocan, entre otros, la descarga, como primeros en el orden, de los fragmentos de ficheros que son menos accesibles. Es fácil darse cuenta de que el aumento del número de clientes no empeora la capacidad de esta red, ya que
Información básica
Para descargar los ficheros con este sistema, sólo hay que instalar el cliente (el estándar requiere la presencia de Python) y tener acceso a la red. Está bien unir los ficheros con la extensión .torrent por medio del programa de cliente BT bajo nuestro navegador preferido o bajo el cliente de correo. Gracias a este procedimiento, la descarga de ficheros con BitTorrent será tanto o más fácil como a través del FTP normal. El cliente normal es accesible tanto a través de la interfaz gráfica (btdownloadgui.py), como con la de texto (btdownloadcurses.py). La única diferencia entre BitTorrent y FTP consiste en el hecho de que durante la descarga se registra de modo
52
Linux+ 1/2004
Figura 1. BitTorrent en acción
el que recibe es a la vez el que da. Por eso, es fácil escalar el sistema de modo dinámico, sin intervención del operador. Lo utilizan los usuarios que no tienen que esperar en la cola para obtener los ficheros necesarios, y los administradores cuyos servidores no se sobrecargan a causa del tráfico intenso de los paquetes. BitTorrent permite con facilidad empezar a compartir ficheros como servidor de espejo: cada uno de sus clientes a la vez cumple la función de servidor, por eso, basta no cerrar la ventana de descarga después de su finalización o volver a abrirla para registrarnos (no tengáis miedo: no vamos a volver a descargar el mismo fichero si todo está en
redes p2p
Figura 2. Soporte Suprnova.org
orden). La existencia de una sóla dirección del fichero permite evitar la búsqueda de recursos facilitados. Comparado con los servidores espejo tradicionales (ing. mirrors) FTP, éstos se utilizan automáticamente en caso de necesidad. Es también un modo más seguro que otras redes Peer2Peer, puesto que incluso si faltan los usuarios dispuestos a compartir los ficheros, siempre tenemos acceso a los ficheros en el servidor.
Instalación
En las distribuciones de Linux que tengan un paquete construido de BitTorrent sólo hay que instalarlo (por ejemplo, en Mandrake urpmi bittorrent y en Debian apt-get install bittorrent). Si no lo tenemos, simplemente hay que descargar y descomprimir el paquete desde la página del proyecto (http://
bitconjurer.org/BitTorrent/download.html) u otra solución para las personas valientes: descargar la versión de trabajo desde el depósito de CVS. De todos modos, el programa después de descargarlo está inmediatamente listo para funcionar y no es necesario realizar compilación alguna porque se trata de normales scripts de Python (btdownloadcurses.py y btdownloadgui.py). En el paquete se encuentra el conjunto de software para el cliente y para el servidor.
En acción
Para demostrar como se descarga el fichero BitTorrent, realizamos la descarga del fichero del juego Return to Castle Wolfenstein: Enemy Territory. Este fichero grande (más de 250 MB) y popular es un ejemplo perfecto del uso de BitTorrent, además podremos divertirnos después de descargarlo. Si ya hemos instalado BitTorrent, escribimos en el navegador web la dirección http://zerowing.idsoftware.com/BT/torrents/ y pulsamos en el fichero et-linux-2.562.x86.run.torrent. El navegador todavía no sabe qué hacer con el fichero de este tipo; seleccionamos su arranque con ayuda de script btdownloadgui.py. Podemos también grabar el fichero .torrent en nuestro disco, para después ejecutar de la línea de comandos:
primeros pasos
Figura 4. Página principal de BitTorrent
btdownloadgui.py et-linux-2.56-2.x86.run. torrent. A veces es la única solución, en el caso cuando el navegador, en vez de preguntar qué hacer, muestra por pantalla su contenido binario. Ahora solamente hay que indicar el directorio en el que queremos grabar los datos y después esperar un rato largo. La Figura 1 representa la ventana de descarga del fichero por BitTorrent 3.3, llamada desde el navegador Mozilla. Esta versión nos indica no sólo el tiempo estimado de descarga de nuestro juego de ejemplo y el uso de la conexión por los dos lados, sino también el número de bytes descargados y enviados.
Resumen
El estándar alto y la transportabilidad del código, demuestran el gran potencial de BitTorrent. En los usos más sencillos se comporta de modo similar a FTP, por eso parece ser un sucesor de este protocolo. En los últimos meses, a simple vista, se ha notado el aumento del número de ficheros compartidos, ante todo los ficheros grandes y populares, como por ejemplo imágenes ISO de distribuciones populares o paquetes de instalación de juegos, que antes provocaban dolor de cabeza a los administradores y la frustración de los usuarios.
En Internet: • •
•
Figura 3. Esquema de funcionamiento de BitTorrent
Página principal de BitTorrent: http://bitconjurer.org/BitTorrent/ Extensa colección de recursos relativos a BT: http://smiler.no-ip.org/BT/BTlinks.php RTCW: Enemy Territory (versión completa para jugar en la red): http://zerowing.idsoftware.com/ BT/torrents/et-linux-2.562.x86.run.torrent
www.lpmagazine.org
53
equipo
Cámara digital en Linux Piotr Wolny
L
a cámara digital sólo con un ordenador forma parte de una totalidad funcional, pues junto con el equipo obtenemos software y drivers para MS Windows que facilitan la realización de unas operaciones más importantes, es decir, la lectura de las fotos tomadas, su edición básica y la eliminación de la cámara. Además, hace posible el empleo de la memoria de la cámara como un sistema adicional de ficheros. Por lo general, ni en los CDs vendidos con la cámara, ni en las páginas web de sus fabricantes, encontraremos información alguna sobre Linux. Sin embargo, en nuestro sistema operativo hallaremos un software que cumplirá, al menos, la mayoría de las funciones „originales“ de los programas facilitados para funcionar con MS Windows. En este caso, una de las ventajas de Linux es la posibilidad de seleccionar, por lo menos, entre un par de programas adaptados a trabajar en varios entornos: GNOME, KDE y línea de comandos.
Nuestro objetivo DVD Después de arrancar la distribución Linux+ Live DVD, en el menú Linux+/Multimedia se accede a unas posiciones para poner en marcha programas de soporte de cámaras digitales.
En el DVD En el DVD se hallan paquetes fuentes de GPhoto2, así como otras herramientas de soporte de cámaras digitales.
54
Linux+ 1/2004
Después de las tareas relativas a la configuración, el uso de la cámara digital en Linux resultará muy fácil. Tras conectar la cámara, se puede arrancar de manera automática una aplicación determinada, p.e. FlPhoto. Al pulsarla en Import->Camera se importarán miniaturas de todas las fotos a la memoria de la cámara. Podemos marcar todas o una parte de ellas y, a continuación, indicar el nombre del directorio donde se copiarán las imágenes. FlPhoto hace posible, no sólo una visualización de fotos descargadas (p.e. a modo de diaporama), sino también su edición. Disponemos de una serie de
funcionalidades como: la rotación, los ajustes de brillo/contraste, la escala de imágenes, el encuadre, etc. A todas estas opciones se accede a través del menú Image. Las fotos ya editadas enseguida las podemos colocar en ficheros HTML, dispuestos para publicar en Internet. Es suficiente pulsar en Album->Export, escribir la cabecera y el pie de página
¿Qué cámara elegir?
El listado de cámaras que pueden funcionar bajo Linux con ayuda del software GPhoto2 consta, actualmente, de casi 400 cámaras. A este listado hay que agregar, asimismo, un grupo numeroso de cámaras compatibles con USB Storage que no causan problemas en nuestro sistema operativo. Últimamente, los fabricantes principales, tales como Canon o HP, han decidido emplear en sus productos un protocolo común PTP. El soporte de PTP con GPhoto2 ya ha funcionado de modo estable y con la utilización de casi todas sus funcionalidades. Las posibles faltas seguramente serán eliminadas en un futuro cercano. Por esta razón, cuando compramos una cámara digital, podemos guiarnos sobre todo por su calidad y por su precio, porque la mayoría de las cámaras que hay en el mercado funcionan bajo Linux. Para estar totalmente seguros, antes de la compra, vale la pena comprobarlo en una lista de cámaras que funcionan bajo Linux en Internet, que podemos encontrar en el recuadro „En Internet“. En ella veremos las cámaras más populares, como por ejemplo: HP PhotoSmart 320, PhotoSmart 435, Canon PowerShot A60 y PowerShot A70, Canon Powershot S45, Minolta Dimage E223 y muchas otras.
equipo
cámaras digitales
HTML con el álbum y el directorio donde se colocará nuestro trabajo.
¿Cómo funciona en Linux?
Actualmente, cámaras digitales se conectan con mayor frecuencia al enlace USB, soportado en su totalidad por Linux, aunque todavía se pueden encontrar modelos conectados a puertos en serie. Las cámaras más antiguas, conectadas precisamente por “COM“ , utilizan
Protocolo USB Storage
Algunas cámaras fotográficas, generalmente de las empresas Olympus, Nikon, Minolta, Sony y Casio, usan una especificación USB Storage para comunicarse con el ordenador. Como su nombre indica, USB Storage se creó para las memorias masivas. Después de conectar una cámara de este tipo, p.e. en las últimas distribuciones de Mandrake, en nuestro escritorio de forma automática se mostrará un icono que representa el dispositivo de memoria masiva. En la mayoría de los casos de otras distribuciones, podemos „montar“ este tipo de cámara en el sistema de ficheros del mismo modo a como se hace con el disco duro o el CD. Si el núcleo de nuestro Linux fue compilado con el soporte de USB y SCSI, podemos acceder a nuestra cámara con la ayuda de un par de comandos simples:
Figura 1. Esquema del funcionamiento de una cámara fotográfica bajo Linux
sus propios protocolos de transmisión de datos, elaborados por los respectivos fabricantes. En caso de cámaras conectadas por USB, hay cierta estandarización. A decir verdad, muchas cámaras antiguas usan sus propios protocolos, sin embargo, actualmente, la mayoría de productos nuevos usa USB Storage o Picture Transfer Protocol (PTP), cada vez más popular. Por supuesto, la existencia de unas normas seguidas por todos facilita la elaboración de un software que funcione bajo el control de Linux. Como resultado, con Linux instalado, podemos acceder a la cámara fotográfica de dos maneras, según la cámara que tengamos: –
modprobe usb-storage modprobe vfat mkdir /mnt/camara
–
por medio de un soporte para USB Storage, que se encuentra en el núcleo del sistema; con ayuda del programa GPhoto2 (http://www.gphoto.org/ ).
mount -t vfat /dev/sda1 /mnt/camara
Cuando compilamos el núcleo de forma manual, para este tipo de cámaras, debemos escoger SCSI support, SCSI disk support, SCSI generic support y, por supuesto, el soporte USB, es decir, usbuhci o usb-ohci y usb-storage. Hay que prestar atención porque en algunos casos el dispositivo scsi tendrá otro nombre de sda1, del ejemplo arriba mencionado. Sin embargo, el nombre correcto debería aparecer en el fichero /var/log/messages en el momento de conectar la cámara. Puede ser útil también el comando fdisk -l /dev/sga (o sgb, sgc...), por medio del cual vamos a encontrar unas particiones que se pueden montar. Hay que recordar también que la cámara debe ser desmontada antes de desconectar.
A continuación, nos fijaremos en la instalación del modelo Canon PowerShot A60. El dispositivo está reconocido por GPhoto2 a partir de su versión 2.1.2. Si nuestra distribución de Linux no dispone de esta versión, afortunadamente, nuestra cámara también es compatible con el protocolo PTP que posibilita el acceso a ella, usando las versiones más antiguas de GPhoto2, que incluyen las distribuciones populares de Linux. GPhoto2 facilita el soporte completo para cientos de cámaras que aprovechan sus propios protocolos y, a su vez, proporciona un soporte parcial para cámaras que trabajen con PTP. La mayoría de las cámaras que no funcionan con Gphoto2, funcionarán utilizando el driver usb-storage, colocado en el núcleo (el recuadro Protocolo USB Storage).
Preparación indispensable
Sin tomar en consideración la distribución de Linux que utilizamos, deberíamos encontrar en ella unos paquetes hechos con programas básicos. Precisaremos al menos de: •
•
•
hotplug – programa responsable de, entre otros, la instalación „al vuelo“ de dispositivos USB que van a ser conectados; GPhoto2 – drivers de cámaras digitales (en el paquete GPhoto2 se puede también encontrar un programa que funciona desde la línea de comandos gphoto2, que garantiza la ejecución de todas las operaciones); GTKam - un frontend gráfico sobre GPhoto2.
Podemos instalar también FlPhoto, que se halla en varias distribuciones de Linux (un frontend alternativo para GTKam sobre GPhoto2, escrito para GNOME) y GTKamgimp, es decir, un plug-in para GIMP que hace posible la importación directa de una imagen desde la cámara al programa. Los usuarios de versiones nuevas de KDE disponen, además, del programa Kamera. Con ayuda de este programa se facilita el acceso a las fotos en la cámara, después de escribir en el navegador Konqueror la dirección: camera://. Si tenemos una cámara digital más antigua, sobre todo, una de las que se conectan a través del puerto en serie, en lugar de GPhoto2 podemos utilizar GPhoto (la penúltima versión del programa). En caso de cámaras conectadas a USB, también tenemos que facilitar el soporte de este puerto a través del núcleo de Linux. Las distribuciones actuales de Linux disponen del soporte para USB,
www.lpmagazine.org
55
equipo
pero podemos tener problemas cuando nosotros mismos compilemos el núcleo si no marcamos la opción relativa a USB. En el núcleo hay que tener el módulo usb-uhci o usb-ohci, según la placa madre que tengamos, y usbcore. Después de arrancar los módulos y ejecutar el comando gphoto2 --list-ports, en la lista de vuelta debería aparecer usb:. Ahora podemos conectar la cámara digital durante un rato, ajustarla al modo en que podrá intercambiar datos con el ordenador y realizar el comando gphoto2 --auto-detect. Como resultado, obtenemos una línea para nuestra Canon: USB PTP Class Camera
usb:
Si nuestra distribución de Linux incluye libgphoto2 , al menos en la versión 2.1.2, entonces aparecerá: Canon PowerShot A60
usb:
No es más que el principio del proceso de instalación, pero podemos asegurarnos de que el soporte de USB y la conexión a la cámara funcionan de manera correcta.
Funcionamiento de Hotplug
Hotplug es un demonio que funciona en el fondo cuyo objetivo es la instalación de dispositivos USB (y también otro tipo de dispositivos que se vayan conectando en el transcurso del trabajo en el ordenador) „al vuelo“, es decir, sin participación del usuario. En el caso de la cámara digital, su primera y la más importante tarea es la asignación de la autorización de acceso a este dispositivo a un usuario determinado (o a varios usuarios) porque GPhoto2 no puede arrancarse desde la cuenta root. Con ayuda de hotplug también podemos obtener el arranque automático de una aplicación en el momento de conectar la cámara digital. Hablaremos de ello más adelante.
Figura 3. GTKam – programa básico para trabajar con la cámara digital
Cuando en el conjunto de dispositivos USB aparece un dispositivo nuevo, p.e. como resultado de conectar con la cámara digital o en el momento de ponerla en marcha, el demonio hotplug lee el identificador del fabricante (Vendor) y el del producto (Product). Compara estos datos en un listado de los dispositivos que reconoce el sistema, que se encuentra en el fichero /etc/ hotplug/usb.usermap. Si el dispositivo que va a ser conectado no se halla en el listado, no pasa nada. Si una de las líneas /etc/hotplug/ usb.usermap contiene un identificador idéntico al del fabricante y al del producto, se arrancará un script determinado. Su objetivo es la “instalación” del dispositivo. Encontraremos el nombre del script en la primera columna de usb.usermap – en nuestro caso será usbcam. Este script por defecto se encuentra en el directorio /etc/hotplug/ usb/. Vamos a ver como funciona esto en la práctica aplicándolo en dos distribuciones de Linux.
Aurox Linux 9.3
Figura 2. Sitio web del proyecto GPhoto2
56
Linux+ 1/2004
En Aurox 9.3, después de instalar Gphoto2, obtenemos un script hecho /etc/hotplug/ usb/usbcam y el listado de cámaras digitales soportadas en el fichero /etc/hotplug/ usb.usermap. En este momento, podemos activar la visualización de comunicados del sistema en la consola (tail -f /var/ log/messagess) y conectar la cámara . En el caso de nuestra PowerShot A60, aparecen las inscripciones siguientes:
May
7 13:54:11 localhost kernel: hub.c:
May
7 13:54:11 localhost kernel: usb.c:
May
7 13:54:14 localhost /etc/hotplug/
May
7 13:54:14 localhost /etc/hotplug/
usb.agent: usb.agent:
Vemos pues que el dispositivo ha sido reconocido y el script /etc/hotplug/usb/ usbcam ha sido ejecutado. Ahora, ya podemos arrancar una aplicación que nos facilitará el acceso cómodo a las fotos, p.e. descrito a continuación GTKam. Si hotplug enseguida no reconociera nuestra cámara: May
7 20:05:48 aurox /etc/hotplug/ usb.agent:
tendríamos que realizar modificaciones. La línea arriba mencionada es el comunicado del demonio hotplug que nos notifica que en el fichero /etc/hotplug/usb.usermap no se encuentra la línea que describa el dispositivo 0x4a9/0x3074, es decir, nuestra PowerShot A60. Tenemos que „engañar” un poco a nuestro demonio hotplug y decirle que nuestro dispositivo está soportado. Para conseguirlo, podemos abrir cualquier editor /etc/hotplug/usermap y agregar allí la inscripción con nuestra cámara. Para facilitarnos la tarea, podemos, p.e. encontrar la línea donde en la tercera columna aparecerá 0x04a9 y en la cuarta 0x3047
cámaras digitales
equipo
compilarse sin ella, pero no será capaz de trabajar con ninguna cámara USB. El primer paso indispensable si nosotros mismos compilamos GPhoto2 es la eliminación del sistema de su versión anterior. Luego, descomprimimos y compilamos libgphoto2 con los comandos: bunzip2 libgphoto2-2.1.4.tar.bz2 tar xvpf libgphoto2-2.1.4.tar cd libgphoto2-2.1.4 ./configure su [contrasea] make install
A continuación, pasamos al directorio, donde se encuentran importados los ficheros restantes (cd ..). Ejecutamos los comandos: Figura 4. Con ayuda de FlPhoto podemos crear de manera rápida una página HTML con nuestras fotos
(línea responsable de la más antigua Canon Digital IXUS). Entonces, en lugar de 0x3047, que se halla en la cuarta columna, escribimos 0x3074, es decir, el identificador de nuestra cámara digital. Después de conectar la cámara, el sistema la reconocerá de manera correcta.
Mandrake Linux 10
En Mandrake 10 podemos instalar los paquetes necesarios con ayuda del Centro de Control Mandrake->Administración con Software. Después de la instalación, como en Aurox, aparecerán /etc/hotplug/usb.usermap y /etc/hotplug/usb/usbcam que cumplen exactamente la misma función que la antes descrita en Aurox. Si no se menciona nuestra cámara en usb.usermap, lo mejor es realizar los mismos procedimientos que en la descripción anterior en Aurox Linux, o sea, agregar allí la inscripción por nuestra cuenta. Pero si lo que queremos es únicamente el acceso a la cámara, en Mandrake Linux hay un método más sencillo: basta con pulsar en el menú en Configuración->Otros-> Usuarios y añadir a nosotros mismos, o sea, p. ej. al usuario “piotr“, al grupo del sistema usb. Tras esta operación tenemos que deslogearnos y volver a logearnos. Entonces, cuando demos el comando groups, en el listado de los grupos de los que somos miembro estará usb. Esto es suficiente para poder arrancar GTKam u otros programas.
Instalación desde las fuentes
La última versión de GPhoto2 a menudo resulta muy útil, porque cada versión nueva soporta cámaras cada vez más modernas. A veces, nuestro aparato no está soportado completamente por la distribución de Linux que tenemos, por ejemplo, en Debian Woody se incluyó una versión bastante antigua de GPhoto2 que no funcionaba con mi modelo, incluso a través del protocolo PTP. Por suerte, la compilación desde las fuentes resultó ser fácil y rápida. Los programadores del proyecto GPhoto2 actualmente facilitan el resultado de su trabajo: tres paquetes de fuentes, accesibles en la dirección: http:// www.gphoto.org/download/: • •
•
tar xjfvp gphoto2-2.1.4.tar.bz2 cd gphoto2-2.1.4 export PKG_CONFIG_PATH=/usr/lib/
S
pkgconfig:/usr/local/lib/pkgconfig ./configure; make su [contrasea] make install
Compilamos el paquete GTKam del mismo modo que Gphoto2 descrito antes y únicamente cambiamos los nombres de los ficheros y de los directorios. Después de compilar e instalar todos los programas, nos falta configurar el demonio hotplug. Para ejecutarlo, hay que crear dos ficheros: /etc/hotplug/usb.usermap y /etc/hotplug/usb/usbcam. Ya hemos descrito sus propiedades antes. El primero de los ficheros necesarios (usb.usermap) se puede crear mediante el comando /usr/lib/libgphoto2-2/printusb-usermap >/etc/hotplug/usb.usermap.
libgphoto2-2.1.4.tar.bz2 – incluye drivers para los dispositivos; gphoto2-2.1.4.tar.bz2 – incluye el programa gphoto2 que funciona desde la línea de comandos; gtkam-0.1.10.tar.bz2 – frontend gráfico sobre gphoto2, basado en librerías GTK+ 2.0.
Para realizar la compilación, nos faltan en el sistema libusb-dev, pkg-config, y para GTKam: libgtk+-2.0-dev, que seguramente encontraremos en nuestra distribución de Linux. Prestemos atención, sobre todo, a libusb-dev, porque el programa podrá
Figura 5. Página HTML elaborada con el programa FlPhoto
www.lpmagazine.org
57
equipo
“Load from camera“, o bien tomar una foto nueva - “Capture form camera“. El trabajo con este programa es cómodo, sobre todo, cuando queremos editar en GIMP, con la mayor rapidez, las fotos tomadas; entonces no necesitamos arrancar ningún otro programa.
FlPhoto
FlPhoto es una aplicación un poco más avanzada de GTKam con un empleo parecido. Con la ayuda de esta aplicación, podemos, no sólo importar fotos desde la cámara, sino también imprimirlas, mirarlas a modo de diaporama, o exportarlas a las páginas HTML. Con el programa se pueden realizar las operaciones básicas de edición de fotos: encuadre, rotación, escala de imágenes, etc. Figura 6. Después de instalar GTKam-gimp, en GIMP aparecerán unos comandos nuevos relativos a la importación desde la cámara fotográfica
Es un comando relativo a nuevas versiones de GPhoto2, ya que en las antiguas lo ejecutaban con el comando: gphoto2 --print-usb-usermap
S
>/etc/hotplug/usb.usermap.
Como segundo paso ( /etc/hotplug/usb/ usbcam) tenemos que seleccionar un par de ejemplos de ficheros, que encontraremos en las fuentes libgphoto2, en el directorio packaging/linux-hotplug. El que elijamos lo colocaremos en /etc/hotplug/usb/ con el nombre usbcam. En Debian Woody, lo mejor es elegir usbcam.group y luego agregar a todos los usuarios que van a utilizar la cámara digital al grupo del sistema camera. Podemos elegir también usbcam.user, pero hay que escribir en este fichero (en su octava línea) el nombre de un sólo usuario que será quien pueda utilizar la cámara. En otras distribuciones de Linux podemos seleccionar usbcam.console. No podemos olvidar que el fichero /etc/ hotplug/usb/usbcam tiene que tener el atributo de ejecución (chmod a+x /etc/ hotplug/usb/usbcam).
Programas de uso práctico GTKam
El programa principal para el soporte de cámaras fotográficas es GTKam. Antes de
58
Linux+ 1/2004
arrancarlo, hay que conectar la cámara al ordenador y ajustar el modo adecuado para su funcionamiento. Después de arrancar GTKam, en la ventana de la izquierda, deberíamos ver el nombre de nuestra cámara, eventualmente con la inscripción “USB PTP Class Camera“. Si no es así, en el menú Camera hay que elegir la posición “Select camera“ y luego “detect“. Si tampoco tenemos éxito, al final de este artículo se hallan unas sugerencias donde se puede buscar las causas de los posibles problemas. Con la ayuda de GTKam podemos, sobre todo, mirar las fotos en la cámara e importarlas al ordenador. Además, hay otras funciones como: eliminar fotos, tomar fotos (“capture“), grabar el fichero en la cámara, y realizar operaciones en los directorios. Sin embargo, no todas las cámaras disponen de estas las funciones y, en algunos casos, una parte de ellas hasta ahora no cuenta con el soporte de GPhoto2 y al mismo tiempo el de GTKam.
GTKam-gimp
Es un plug-in para GIMP, con el que podemos importar la imagen desde la cámara fotográfica, de un modo parecido a la importación de imágenes desde el escáner. Tenemos la posibilidad de elegir entre dos opciones: importar una foto tomada antes, grabada en la cámara -
Kamera
El programa Kamera se llama también io_slave para el navegador Konqueror. Gracias a este programa, en las versiones nuevas KDE, obtenemos el acceso a los ficheros de la cámara sin la utilización de otros programas adicionales, aparte del propio navegador Konqueror. Es suficiente escribir en él, en vez de una dirección web, camera:// y podremos mirar, copiar, eliminar ficheros de la cámara digital, de un modo parecido a otros archivos en el sistema. El funcionamiento se parece un poco al uso de muchos drivers para MS Windows, donde se procede a la integración con el programa Internet Explorer. Podemos agregar y testear nuestra cámara al mismo tiempo por medio de Centro de Control->Dispositivos periféricos->Cámara digital.
Línea de comandos
Para muchos usuarios el empleo del programa gphoto2 será el modo más cómodo de trabajar con una cámara digital. El programa funciona desde la línea de comandos. Es el método más rápido en muchos casos; es suficiente realizar, p.e. el comando gphoto2 -P para importar todos los ficheros desde la cámara al disco duro. Otros comandos usados con frecuencia son, p.e. gphoto2 -L - que muestra todos los ficheros de la cámara, o gphoto2 -p <nr1>-<nr2> - que importa ficheros de <nr1> a <nr2>.
equipo
cámaras digitales
otras, aquellas que describen nuestra cámara (a su fabricante y a su módelo). La falta de estas líneas significa un problema con el cable, o que no hemos ajustado el modo de la cámara para que pueda intercambiar datos por puerto USB. El error más corriente es la regulación incorrecta de los derechos de acceso a puertos USB. Gphoto2, por lo general, devuelve entonces el comunicado Error (Could not claim the USB device o Could not find USB device) (vendor 0x0000, product 0x0000). Tenemos que volver a mirar los comunicados en el fichero /var/log/messages, que aparecen después de conectar la cámara. Probablemente hayamos cometido un error en la configuración hotplug. Unos comunicados parecidos pueden mostrarse si dos aplicaciones distintas intentan al mismo tiempo acceder a nuestra cámara. Si tenemos problemas con el demonio hotplug, podemos intentar aumentar el número de comunicados que el demonio envía a syslog. Con este objetivo hay que “descomandar“ una línea que empieza por #DEBUG=yes en el fichero /etc/hotplug/usb.agent, sin olvidarnos de los derechos de ejecución del fichero /etc/hotplug/usb/usbcam.
•
Figura 7. Kamera, o sea, un suplemento a Konqueror, gracias al cual tenemos acceso a la cámara a través del navegador
Arranque automático de la aplicación.
Seguramente algunos usuarios deseen tener GTKam u otra aplicación que arranque automáticamente justo después de conectar la cámara al ordenador. Desde luego, no es difícil. Para ello, tenemos que encontrar el script usbcam.x11app que se halla en la distribución fuente libgphoto2, en el directorio packaging/ linux-hotplug, aunque en muchas distribuciones está colocado junto con la documentación GPhoto2, en el directorio /usr/share/doc/libgphoto2. Después hay que copiar este fichero al directorio /etc/hotplug/usb y cambiar su nombre por usbcam. Además, tenemos que realizar algunas modificaciones:
En caso de problemas
•
• • • •
en la línea 8 hay que indicar al usuario distinto de root; en la línea 15 definimos la aplicación que ha de ser arrancada; en la línea 23 tenemos que corregir DIRECTORY= ~$USER por HOME= ~$USER.
En suma, hay que verificar si la ubicación de los programas su y env corresponde a la información de nuestro fichero. Después de grabar el fichero, por supuesto, le asignamos el atributo de ejecucción (chmod a+x /etc/hotplug/ usb/usbcam) y lo testeamos. La información sobre los posibles errores en el script debería hallarse en syslog.
•
Por supuesto, pueden producirse algunos problemas:
•
Si no podemos acceder a nuestras fotos en la cámara, tenemos que verificar en qué lugar aparece el problema. Primero hay que comprobar si GPhoto2 detecta el puerto al que está conectada la cámara, por ejemplo, con el comando gphoto2 --list-ports. Si no encontramos allí nuestro puerto en serie, por supuesto, hay que mirar los ajustes de BIOS del ordenador, verificar si no está ocupado por otra aplicación, etc. En el caso de los puertos USB, tenemos que asegurarnos si se han importado los módulos responsables de soporte del puerto USB (lsmod). Los drivers de cámaras fotográficas de GPhoto2 funcionan en userspace, es decir, no son módulos del núcleo. Tenemos que importar al núcleo el soporte de USB (o los puertos en serie), pero no podemos importar módulos para algunas cámaras digitales (p.e. Kodak dc2xx). Estos módulos, de manera eficaz, imposibilitarán el funcionamiento de GPhoto2. Si GPhoto2 encuentra el puerto USB y seguimos sin ver nuestro cámara en él, podemos comprobar el resultado de la ejecución del comando cat /proc/ bus/usb/devices. Entre muchas líneas que se devuelven tras este comando, deberían encontrarse también, entre
En Internet: •
Sitio web del proyecto GPhoto2, dedicado a todo tipo de software de cámaras digitales para Linux: http://www.gphoto.org/
•
•
Información sobre cámaras Casio y USB Storage: http://www.harald-schreiber.de/ Información sobre cámaras Konica KD-200Z y USB Storage: http://www.willamowius.de/konica_ kd200z.html
•
•
•
Listado general de cámaras que funcionan bajo Linux: http://www.teaser.fr/~hfiguiere/linux/ digicam.html Información sobre dispositivos USB en Linux: http://www.linux-usb.org/ Sitio web del programa FlPhoto, incluye, entre otros, paquete rpm para Red Hat/Aurox: http://www.easysw.com/~mike/ flphoto/
www.lpmagazine.org
59
para programadores
Nuestro programa de mensajería instantánea Marek Sawerwain
P
ython, de modo parecido a Perl, además del lenguaje en sí, ofrece una amplia selección de paquetes adicionales que realizan varias operaciones. PYRO es uno de ellos. PYRO es una librería escrita, desde luego, sólo y exclusivamente en Python, que permite crear aplicaciones dispersas. No se limita a una única plataforma, ya que exige solamente Python y el acceso al protocolo TCP/IP. La idea de esta tecnología es similar a la de CORBA o RMI, pero mucho menos complicada. Basta con decir que el archivo con la librería ocupa poco más de 180 kB. Un tamaño pequeño y unas exigencias reducidas no limitan las posibilidades que ofrece esta librería. Por ejemplo, es posible realizar una migración dinámica de objetos (para ser más específico: su código de bytes) entre los servidores existentes. Las aplicaciones dispersas nos hacen pensar en tecnologías más avanzadas, sin embargo, nadie prohibe su aplicación en otros campos, p.e. para preparar scripts dispersos o sencillas aplicaciones. En este artículo me gustaría presentar como ejemplo una aplicación simple escrita en PYRO.
En el DVD Dentro del DVD se encuentran los ficheros de fuentes del programa, todas las librerías necesarias, así como los listados del artículo.
60
Linux+ 1/2004
Elaboramos un programa de mensajería instantánea
Python es un lenguaje muy bueno (aunque sea un lenguaje de script y no el compilado) y a la vez un rico entorno de ejecución sea cual fuere la plataforma empleada de hardware y de programas. Es una
propiedad característica de Java. Significa que se puede utilizar Python para elaborar aplicaciones completas y que, además, es bastante fácil trasladarlas entre plataformas. Con ayuda de este artículo, vamos a escribir nuestro propio programa de mensajería instantánea (Figura 1) similar a los populares ICQ o Jabber. Para simplificar la creación del programa, vamos a utilizar la librería PYRO para transmitir los mensajes entre usuarios. Desde luego, nosotros mismos podemos comunicarnos por la red, pero PYRO simplificará este problema de manera significativa. Para preparar la interfaz gráfica utilizaremos GTK+, o sea, el paquete PyGtk. Las respectivas ventanas, aunque no son muy complicadas, han sido creadas con el programa GLADE-2. En resumen, para elaborar nuestra aplicación necesitamos dos librerías adicionales: PYRO y PyGtk.
Arquitectura del programa
El programa de mensajería instantánea elaborado por nosotros es en realidad un programa disperso. Existe un objeto central que implementa todos los métodos necesarios para transmitir los mensajes: es nuestro servidor de comunicación. La aplicación se llama TalkSrv (desde luego, el nombre es libre). Los correspondientes clientes se conectan sólo y exclusivamente a un servidor de comunicación determinado. Hablando de otra manera, es una topolo-
pyro
para programadores
PYRO emplea mensajes tipo broadcast de la red TCP/IP, por eso, la red en la que va a trabajar nuestro programa de mensajería tiene que disponer de viabilidad para enviar este tipo de mensajes. Si queremos que nuestro programa funcione en una red real, tenemos que señalar las direcciones URI, indicando las máquinas directas. PYRO no exige las direcciones en cifras, pues también se pueden utilizar direcciones de símbolos.
Empezamos desde el final, es decir, por el servidor
En el Listado 1, como también en el DVD anexo a la revista, se presenta la implementación del servidor de comunicación. La mayoría del código es la clase TalkSrv. Procede de dos clases de base: de la clase Pyro.core.ObjBase, que es una base de Figura 1. Una conversación realizada por medio de nuestro programa de mensajería
gía en estrella, presentada en forma esquemática en la Figura 2. El servidor principal de comunicación no es el único que vamos a aplicar. Hay también otros dos adicionales, relacionados con la infraestructura de PYRO. El primer servidor, muy importante para nuestro programa, es el servidor de eventos (event server). Cumple una función informativa, p.e. informa a un cliente determinado que tiene un mensaje nuevo. El cliente consigue la conexión con el servidor de comunicación y conecta al
servidor de eventos, más específicamente, se inscribe en un canal apropiado donde puede recibir los mensajes dirigidos directamente a él. Se inscribe también en un canal del servidor donde el servidor de comunicación notifica unos mensajes generales dirigidos a todos los clientes. En el curso del inicio de la conexión con el servidor de comunicación o con el servidor de eventos, utilizamos el servidor de nombres que cumple la función de un servidor auxiliar. Indica las direcciones IP de los dos servidores.
Figura 2. Un esquema general/topología del cliente de mensajería creado
Modo de instalar librerías PYRO y PyGtk
La instalación de la librería PyGTK desde luego exige la existencia de GTK+ y de Python, de manera óptima en la versión 2.2 o la última 2.3. Merece la pena instalar el paquete GtkGLArea: así obtendremos el acceso a la librería OpenGL. PyGtk tiene un script configure, por eso la configuración y la compilación, como siempre en estos casos, se limita a tres comandos: ./configure ; make ; make install. No es necesario indicar con ayuda de --prefix el directorio porque el script detectará de manera independiente el Python instalado y colocará el paquete PyGtk en sus directorios. La instalación de la librería PYRO se realiza de manera un poco distinta. Con ayuda del script setup.py instalamos el paquete, realizando el siguiente comando: python setup.py install. Al principio, se nos pregunta si queremos instalar unos scripts adicionales que inician el funcionamiento de los servidores de nombres y de eventos. Por supuesto, lo aprobamos. A continuación, tenemos que indicar el directorio al que se copiarán los scripts. Lo mejor es escribir /usr/bin. Luego se procederá a la compilación de ficheros e instalación del paquete. Merece la pena mencionar que junto con los scripts ns y es, que arrancan los servidores, existe una herramienta gráfica xnsc, con la cual se puede visualizar los servidores arrancados y finalizar o reiniciar dichos servidores de nombres.
www.lpmagazine.org
61
para programadores
Listado 1. Código del servidor de comunicación #! /usr/bin/python (id no está en el listado)”, name
import sys
return -1
import Pyro.core
def UpdateName(self, oldname, newname):
import Pyro.naming
from Pyro.EventService.Clients import Publisher class TalkSrv(Pyro.core.ObjBase, Publisher): def __init__(self):
if self.list.count(name)==0: self.list.append(name)
self.publish(“server”, name+“ register”);
print “llamamiento UpdateName conseguido”, name
Pyro.core.ObjBase.__init__(self)
return 0
Publisher.__init__(self)
else:
self.msg={}
print “llamamiento UpdateName no conseguido
self.list=[] def InfoText(self):
(nuevo id está en el listado)”, name
print “llamamiento lnfoText”
return -1
return “TalkServer v1”
def SendMsg(self, mesg, to_name, from_name):
def GetActiveList(self):
print “llamamiento SendMsg”,mesg,’ a:’,to_name,’
def RegisterName(self, name):
self.msg[to_name]=[mesg, from_name]
return self.list
de:’,from_name;
if self.list.count(name)==0:
self.publish(to_name, “has_msg”)
self.list.append(name)
self.publish(“server”, name+“ register”);
print “llamamiento RegisterName conseguido”, name return 0
else:
print “llamamiento RegisterName no conseguido (id está en el listado)”, name
return -1
return 0;
def GetMsg(self, name):
print “llamamiento GetMsg”, name if self.msg.has_key(name): tmp=self.msg[name] del self.msg[name] return tmp
else:
return Null
def UnregisterName(self, name):
if self.list.count(name)==1:
Pyro.core.initServer()
self.list.remove(name)
ns=Pyro.naming.NameServerLocator().getNS()
self.publish(“server”, name+“ unregister”);
daemon=Pyro.core.Daemon()
print “llamamiento UnregisterName conseguido”, name return 0
else:
print “llamamiento UnregisterName no conseguido
todos los objetos remotos, y de la clase Publisher, que representa el servidor de eventos. Utilizando los métodos de esta última (más concretamente, el método publish) vamos a situar los mensajes en el servidor de eventos. El proceso de arrancar el servidor exige un par de líneas de código que en la mayoría de los casos serán muy parecidas, sin reparar en el servidor empleado. Iniciamos pues el sistema, encontramos el servidor de nombres y obligamos a emplearlo, registramos nuestra clase y arrancamos el bucle principal (Listado 2). Estos son todos los pasos principales que hay que realizar para posibilitar el uso de un dispositivo remoto. Es digno de mencionar que el objeto remoto obtenido de este modo está compartido por todos los clientes. En el caso de nuestro
62
self.list.remove(oldname)
Linux+ 1/2004
daemon.useNameServer(ns) uri=daemon.connect(TalkSrv(), “TalkSrv”) print “TalkServer está dispuesto.” daemon.requestLoop()
programa de mensajería, este tipo de implementación del objeto remoto es imprescindible. La clase TalkSrv realiza los siguientes pasos, relacionados con el soporte de mensajes transmitidos. Primero, el usuario debería registrar su identificador en el servidor de comunicación. Se lo realiza por medio del método RegisterName. Durante el proceso de desconexión del servidor, el programa cliente realiza una operación inversa a través del método UnregisterName. La llamada a estos métodos provoca también el envío de un mensaje al servidor de eventos. Por eso, el software del cliente puede actualizar su listado de usuarios activos. Disponemos también del método UpdateName, destinado a cambiar el identificador.
Todos los identificadores se guardan en un listado que se puede descargar desde el servidor con el método GetActiveList. En este listado siempre aparecen las personas conectadas al servidor en un momento dado. La transmisión de mensajes se realiza con ayuda de dos métodos: SendMsg y GetMsg. El primero, como su nombre indica, permite transmitir el mensaje del cliente al servidor. La llamada de este método ocasiona también la transmisión del mensaje al servidor de eventos, por eso, se informará a un cliente oportuno de que hay un mensaje para él. En nuestro programa, si el cliente recibe una información así, automáticamente se invoca el método GetMsg, o sea, se descarga el mensaje registrado en el servidor. Como vemos, los mensajes se colocan en el directorio msg, pero el
pyro
Listado 2. Arranque del sistema, localización del servidor de nombres , “orden” de su uso, registro de la clase y arranque del bucle principal Pyro.core.initServer() ns=Pyro.naming.NameServerLocator().getNS() daemon=Pyro.core.Daemon() daemon.useNameServer(ns) uri=daemon.connect(TalkSrv(), “TalkSrv”) daemon.requestLoop()
Listado 3. Registro del identificador y verificación de si un identificador determinado no se ha registrado todavía def RegisterName(self, name):
if self.list.count(name)==0: self.list.append(name)
self.publish(“server”, name+” register”);
print “llamamiento RegisterName conseguido”, name return 0
else:
print “llamamiento RegisterName no conseguido (id está en el listado)”, name
return -1
servidor no los guarda; cuando llegue el siguiente mensaje, el anterior será borrado. La implementación de los métodos descritos arriba no es difícil, p.e. el registro del identificador y la verificación de si alguien no lo ha registrado antes se limita a verificar si en el listado ya se encuentra un nombre así (Listado 3).
El proceso de envío del mensaje al servidor consiste en una sola llamada del método publish, donde en el primer argumento, colocamos el tema y en el segundo, el contenido del mensaje: self.publish(“server”, name+” register”);
para programadores
La inicialización correcta de la clase TalkSrv es esencial, por eso en el constructor _ _init_ _ hay que inicializar las clases de base y nuestras variables auxiliares: list con usuarios activos y la variable msg, es decir, el catálogo en el cual guardamos mensajes (Listado 4). La librería PYRO es tan flexible que permitiría el empleo de una instancia del servidor de nombres y el de eventos junto al objeto TalkSrv en un solo script. No obstante, esto haría nuestro script más complicado, por eso tenemos que arrancar ambos servidores auxiliares por sí solos; lo mejor es hacerlo desde consolas separadas para que se observe bien los posibles comunicados sobre errores. Al principio arrancamos el servidor de nombres (comando ns), a continuación, el servidor de eventos (comando es). Cuando estos dos servidores funcionan, sólo nos queda arrancar nuestro servidor de comunicación. La Figura 2 presenta esta situación.
Programa del cliente
El script entero que implementa el servidor de comunicación se escribie bastante rápido y ocupa muy poco espacio. Aunque ofrece tan sólo una función básica: lleva a cabo la transmisión de mensajes en su totalidad. La creación del cliente producirá más problemas (Listado 5). El cliente funciona en el entorno X Window y utiliza la librería GTK+. No ocasionará problemas la comunicación con el servidor (la llamada a los métodos del objeto remoto no está en contradicción con el tratamiento de datos sobre eventos GTK+), sino la recepción de mensajes desde el servidor. Una solución es el empleo de un hilo independiente. Por suerte, GTK+ y PyGTK funcionan bien con hilos, sobre todo si creamos nuestra propia señal y la conectamos con la ventana principal de nuestra aplicación. Esto facilitará Listado 4. Constructor de la clase TalkSrv
Figura 3. Principales eventos que son transformados por el cliente y el servidor
def __init__(self): Pyro.core.ObjBase.__init__(self) Publisher.__init__(self) self.msg={} self.list=[]
www.lpmagazine.org
63
para programadores
Listado 5. Código del cliente #! /usr/bin/python import sys from Pyro.ext import remote from Pyro.EventService.Clients import Subscriber from threading import Thread import gobject import gtk import gtk.glade # variables globales your_nick=’’; talks={} # funciones de retorno def UpdateActiveList(): person_list_data.clear() for i in TalkSrv.GetActiveList(): if i!=your_nick: iter= person_list_data.append() person_list_data.set(iter, 0, i) def OnEndBTN(*args): TalkSrv.UnregisterName(your_nick) ; sys.exit() def OnTalkBTN(*args): global talks ; col= person_list.get_cursor() if col!=None: iter= person_list_data.get_iter(col[0]) active_nick= person_list_data.get_value(iter, 0) t=Talker() ; talks[active_nick]=t t.run(active_nick) def OnCreateTalker(*args): global talks ; active_nick=args[2] t=Talker() ; talks[active_nick]=t iter_end=t.RcvText.get_buffer().get_end_iter() t.RcvText.get_buffer().insert(iter_end, args[3]+’\n’) t.run(active_nick) def OnEndNickBTN(*args): global your_nick, el your_nick=NickEDT.get_text() if TalkSrv.RegisterName(your_nick)==0: el=EventListener() ; el.name=your_nick el.start() ; nickwin.hide() mainwin.show() ; UpdateActiveList() else: dialog=gtk.MessageDialog(nickwin, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, “Este nick pertenece a otra persona,”) dialog.run() dialog.destroy() # clase que soporta los eventos a venir class TalkSrvEvent(Subscriber): def __init__(self): Subscriber.__init__(self) def event(self, event): global talks if event.subject==’server’ and event.msg==your_nick+” unregister”: self.abort() return if event.subject==’server’: UpdateActiveList() if event.subject==your_nick and event.msg==’has_msg’: msg=TalkSrv.GetMsg(your_nick) active_nick=msg[1] if not talks.has_key(active_nick): mainwin.emit(“create_talker”,mainwin,active_ nick, msg[0]) else: t=talks[active_nick]
S
64
Linux+ 1/2004
iter_end=t.RcvText.get_buffer().get_end_iter() t.RcvText.get_buffer().insert(iter_end, msg[0]+’\n’) t.talkwin.show() class EventListener(Thread): def __init__(self): Thread.__init__(self) ; self.setDaemon(1) ; self.name=’’ def run(self): self.listener = TalkSrvEvent() self.pattern = self.name + “|server” self.listener.subscribeMatch(self.pattern) self.listener.listen() # clase responsable de ventana de conversación class Talker: def __init__(self): self.talk_win_xml=gtk.glade.XML(‘TalkWin.glade’) self.talkwin=self.talk_win_xml.get_widget(“TalkWin”) self.EndTalkBTN=self.talk_win_xml.get_widget(“EndTalkBTN”) self.SendTextBTN=self.talk_win_xml.get_widget(“SendTextBTN”) self.RcvText=self.talk_win_xml.get_widget(“RcvText”) self.SendText=self.talk_win_xml.get_widget(“SendText”) def OnEndTalkBTN(self, *args): self.talkwin.hide() def OnSendTextBTN(self, *args): self.iter_begin=self.SendText.get_buffer().get_start_iter() self.iter_end=self.SendText.get_buffer().get_end_iter() self.text=self.SendText.get_buffer().get_text(self.iter_ begin, self.iter_end) TalkSrv.SendMsg(self.text, self.to_nick, your_nick) self.SendText.get_buffer().delete(self.iter_begin, self.iter_end) def run(self,name): self.to_nick=name self.talkwin.set_title(“Conversación con”+name) self.EndTalkBTN.connect(‘clicked’, self.OnEndTalkBTN) self.SendTextBTN.connect(‘clicked’, self.OnSendTextBTN) self.talkwin.show() # importación de los ficheros glade main_win_xml=gtk.glade.XML(‘MainWin.glade’) nick_win_xml=gtk.glade.XML(‘NickWin.glade’) mainwin=main_win_xml.get_widget(“MainWin”) EndBTN=main_win_xml.get_widget(“EndBTN”) lista_osob=main_win_xml.get_widget(“ListaPersonas”) TalkBTN=main_win_xml.get_widget(“TalkBTN”) nickwin=nick_win_xml.get_widget(“NickWin”) EndNickBTN=nick_win_xml.get_widget(“EndNickWinBTN”) NickEDT=nick_win_xml.get_widget(“NickEDT”) mySigID=gobject.signal_new(“create_talker”, gtk.Window, gobject.SIGNAL_RUN_LAST, gobject.TYPE_BOOLEAN, (gtk.Window,
S
S
S
gobject.TYPE_STRING, gobject.TYPE_STRING)) # conexión de señales mainwin.connect(‘destroy’, OnEndBTN) mainwin.connect(‘create_talker’, OnCreateTalker) EndBTN.connect(‘clicked’, OnEndBTN) TalkBTN.connect(‘clicked’, OnTalkBTN) EndNickBTN.connect(‘clicked’, OnEndNickBTN) person_list_data=gtk.ListStore(gobject.TYPE_STRING) person_list.set_model(person_list_data) nick_column=gtk.TreeViewColumn(‘Nick\’s’, gtk.CellRendererText(), text=0) person_list.append_column(nick_column) mainwin.hide() TalkSrv=remote.get_remote_object(‘TalkSrv’) UpdateActiveList() nickwin.show() while gtk.main_iteration_do(False): pass
S
S
para programadores
pyro
Listado 6. Ejemplos de descarga y de conexión de señales en PyGTK person_list=main_win_xml.get_widget(“ListaPersonas”) nickwin=nick_win_xml.get_
S
widget(“NickWin”) EndNickBTN=nick_win_xml.get_widget(“EndNickWinBTN”) NickEDT=nick_win_xml.get_widget(“NickEDT”)
Listado 8. Fragmento del método run con el que se realiza la operación de inscribirse en mensajes determinados. self.pattern = self.name + “|server”
S
self.listener.subscribeMatch(self.
EndNickBTN.connect(“clicked”, OnEndNickBTN)
pattern)
la transmisión de la señal desde el nivel de hilo al bucle principal de aplicación GTK+. El funcionamiento de nuestro programa es el siguiente: el primer paso es la creación de la ventana principal y de la ventana en la cual se introduce el identificador. Después de conectar el soporte de señales, la ventana principal se oculta y nuestro cliente pide el identificador y procura registrarlo. Después del registro, se activa el hilo, en el que se reciben los mensajes desde el servidor de eventos y se muestra la ventana principal. La ventana de conversación aparece en dos casos: cuando el usuario selecciona a una persona activa del listado y pulsa el botón Talk o cuando el programa recibe el comunicado de que hay un mensaje nuevo. Después de leer el mensaje, se lo coloca en la ventana de conversación, que dispone de su propia clase con el nombre Talker.
Construimos la interfaz
self.listener.listen() your_nick=’’ talks={}
En la primera variable se guarda nuestro “nick”, es decir, el identificador. En cambio, la segunda variable (tipo catálogo) cumple una función muy importante: en ella se guardan las ventanas de conversación con otros usuarios. La descarga de las ventanas, la conexión a las señales o la visualización de cualquier ventana es un procedimiento simple que se limita a unas cuantas líneas del código. La descarga de la ventana principal y de la ventana, en la cual solicitamos nuestro identificador (NickWin), se realiza de modo siguiente: main_win_xml=gtk.glade.XML(‘MainWin.glade’) nick_win_xml=gtk.glade.XML(‘NickWin.glade’)
La descarga de widgets o conexión de señales es propio de PyGTK (Listado 6).
El único elemento de GUI que hay que configurar, es el listado de personas activas. Es un widget tipo GtkTreeView, pero este código también es característico de la aplicación GTK+. Todo el proceso está compuesto de tan sólo cuatro líneas. En la primera, creamos el listado en el que guardamos las series de señales: person_list_data=gtk.ListStore
S
(gobject.TYPE_STRING)
luego unimos nuestro listado con el widget person_list: person_list.set_model(person_list_data)
ahora elaboramos otra columna que visualiza el texto y la agregamos al widget: nick_column=gtk.TreeViewColumn(‘Nick\’s’, gtk.CellRendererText(), text=0) person_list.append_column(nick_column)
Es la tarea más fácil, ya que utilizamos el programa GLADE-2 en su versión para GTK+ 2.0. En la documentación de ayuda que se encuentra en el DVD las ventanas están registradas en ficheros separados, pero se puede, como en la Figura 3, colocar las tres ventanas en un solo proyecto. Antes de empezar a construir la interfaz, necesitamos dos variables:
Listado 7. Creación de una nueva señal.
S
mySigID=gobject.signal_new(“create_ talker”,
gtk.Window, gobject.SIGNAL_RUN_LAST, gobject.TYPE_BOOLEAN,
(gtk.Window, gobject.TYPE_STRING,
gobject.TYPE_STRING))
Figura 4. Arrancamos el servidor de nombres, el de eventos y el servidor de comunicación
www.lpmagazine.org
65
para programadores
Listado 9. Método abort – interrupción del funcionamiento del objeto que escucha def event(self, event): if event.subject==’server’ and event.msg==your_nick+” unregister”: self.abort() return
La creación de una nueva señal es muy importante. Con ayuda de esta señal se informará a la ventana principal de la recepción de un nuevo mensaje. En el soporte de esta señal, crearemos una ventana nueva (si la ventana todavía no se ha grabado en el catálogo) o mostraremos las ventanas existentes. En la función signal_new tenemos cuatro argumentos (Listado 7). El primer argumento es el nombre de la señal. El segundo en el que aparece el valor gobject.SIGNAL_RUN_LAST significa el orden de llamar a las señales, en el momento cuando se informa a la ventana sobre su recepción. El valor dado significa que nuestra señal se soportará casi la última (se llama la tercera etapa del soporte de la señal). En el tercer argumento definimos el valor de la función de soporte create_talker (es un valor lógico). En el último, cuarto argumento describimos el aspecto de los argumentos de la función de retorno. Son la clase de la ventana
Linux+ 1/2004
S
Para que el código sea más corto, en nuestro programa de mensajería no se aplican excepciones para detectar situaciones erróneas. Por eso, si no conseguimos referencias, el programa de mensajería no arrancará y en la consola aparecerá información de error. Sin embargo, si todo está bien, podremos registrar nuestro identificador. El registro se realiza con la función OnEndNickBTN : TalkSrv.RegisterName(your_nick)
OnCreateTalker)
Gracias al uso del programa GLADE para construir interfaces, el proceso de su creación se redujo al mínimo y la gran parte del código en el programa de mensajería, respecto a la interfaz, se limita a la conexión del soporte de señales a los widgets.
Registro del identificador
La obtención de referencias para el objeto remoto antecede a todas la operaciones relacionadas con el servidor de comunicación. PYRO simplifica este proceso. Gracias al empleo del servidor
Figura 5. Ejemplo de colocación de tres ventanas en un sólo proyecto
66
TalkSrv=remote.get_remote_object(‘TalkSrv’)
y dos argumentos tipo string. El primero de ellos indica el nick de la persona que remite el mensaje y el segundo argumento, el contenido del mensaje. A la señal creada añadimos la función de retorno para la ventana principal de la aplicación mainwin: mainwin.connect(‘create_talker’,
de nombres, basta con una sóla línea de código:
El código completo de esta función se encuentra en el Listado 5. Allí iniciamos también el hilo que recibe los eventos.
Tratamiento de mensajes recibidos desde el servidor de eventos
La clase que procesa los eventos de manera directa se llama TalkSrvEvent y hereda de la clase PYRO con el nombre Subscriber. En ella hay que definir el método event. Se la llama cuando llega el mensaje. Vale la pena subrayar que TalkSrvEvent es una parte integrante de la clase EventListener, en la cual se inscribe en tipos de mensajes determinados. El servidor de eventos remite varios comunicados, por eso nuestro cliente se inscribe sólo en los mensajes que tengan el texto server en el tema o el valor de nuestro identificador. En este procedimiento utilizamos una expresión regular, de ahí la señal pipe (Listado 8). El hilo, después de su iniciación, llama al método run. El último comando de este método inicia la acción de escuchar; el hilo funcionará hasta que en la clase TalkSrvEvent se llame el método abort(). Esto provocará el cese del trabajo del objeto que escucha y, en consecuencia, el final del trabajo del hilo. Como ya se ha dicho antes, cuando finalizamos el trabajo del cliente, se quita nuestro identificador desde el servidor de comunicación. En resultado, nuestro cliente recibe el mensaje desde el servidor de eventos de que la persona con un determinado identificador ha aban-
pyro
para programadores
Listado 10. Creación de una ventana de conversación o agregación del mensaje recibido del interlocutor. active_nick=msg[1] if not talks.has_key(active_nick): mainwin.emit(“create_talker”,mainwin,active_nick, msg[0]) else: t=talks[active_nick] iter_end=t.RcvText.get_buffer().get_end_iter() t.RcvText.get_buffer().insert(iter_end, msg[0]+’\n’) t.talkwin.show()
donado el sistema. Si comparamos este identificador con el nuestro (la variable your_nick) y son iguales, podemos, por medio del método abort, interrumpir el funcionamiento del objeto que escucha. La función event es como en el Listado 9. Todos los mensajes tipo server conciernen al registro de usuarios, por ello, si no se realiza la susodicha función if, nuestro soporte de eventos actualizará el listado de personas activas: if event.subject==’server’: UpdateActiveList()
El último evento es la recepción del mensaje: msg=TalkSrv.GetMsg(your_nick)
El mensaje recibido debería ubicarse en la ventana de conversación. La variable msg, en realidad, es una lista de dos elementos. Bajo el índice cero se halla el contenido del mensaje y, bajo el primer índice, el identificador del usuario que lo remitió. Hay dos opciones relacionadas con la ventana. La primera: la ventana todavía no existe y hay que construirla, enviando la señal create_talker. La segunda: si la ventana ha sido creada antes, basta con agregar el texto recibido al widget de texto (GtkTextView) y hacer visible la ventana. Para reconocer si la ventana ha sido creada antes, utilizamos el catálogo. Verificamos si existe una clave con el valor equivalente al identificador del usuario con el que hablamos (Listado 10). Para añadir el texto recibido, hay que leer el iterador de la memoria del texto y luego utilizar el método insert. Su primer argumento es el iterador. Como se aprecia en el ejemplo anterior, es un iterador que indica el final del
texto. En cambio, en el segundo argumento indicamos el texto que queremos agregar.
Ventana de conversación
En la clase Talker, que representa la ventana de conversación, gran parte del código está relacionada a la construcción de la interfaz y la agregación de señales. Hay dos funciones importantes de retorno, relacionadas con dos botones. La primera (OnEndTalkBTN) aparece cuando el usuario pulsa el botón End. En este caso la ventana sólo se oculta: self.talkwin.hide(). No se elimina el campo donde se hallan los mensajes recibidos. Cuando aparece nuevo mensaje, con el uso del catálogo talks, verificamos si no se ha abierto la ventana anteriormente y agregamos el mensaje recién recibido a los existentes. Un papel mucho más importante es el que cumple la función OnSendTextBTN, relacionada con el botón Send. Tenemos que volver a utilizar los iteradores para leer el texto que se encuentra en el widget SendText. Puesto que leemos el texto entero, necesitamos los iteradores del principio y del final:
S
self.iter_begin=self.SendText
.get_buffer().get_start_iter()
S
self.iter_end=self.SendText
.get_buffer().get_end_iter()
Cuando disponemos de iteradores, la descarga del texto consiste en llamar la función get_text:
S
self.text=self.SendText.get_buffer()
.get_text(self.iter_begin, self.iter_end)
El proceso de enviar el mensaje consiste en llamar al método SendMsg desde el objeto TalkSrv. Además, eliminamos el contenido de SendText con la función delete, en la que hay que indicar
Figura 6. Página principal del proyecto PyGTK
los límites. En nuestro caso son iteradores del principio y del final antes leídos.
S
TalkSrv.SendMsg(self.text, self.to_nick, your_nick)
S
self.SendText.get_buffer()
.delete(self.iter_begin, self.iter_end)
Resumen
En el programa de mensajería instantánea, como en cualquier otro programa, siempre se puede corregir algo. Podemos utilizar, como en otros programas de mensajería, iconos o podemos formatear el texto. No será difícil, puesto que el componente GtkTextView nos da las mismas posibilidades. El texto en sí puede ser codificado y el proceso de registro y el de transmisión de mensajes debería ser más seguro, por lo menos, poder introducir una contraseña. En esta versión, el servidor recibirá sin impedimientos los mensajes de todos los usuarios porque no hay procedimiento de registro. Además, por medio de la eliminación del servidor de nombres y de la asignación de una dirección invariable URI para los servidores de nombres y de eventos, podemos adaptar el resultado de nuestro trabajo para que funcione en Internet; entonces obtendremos un programa de mensajería instantánea totalmente funcional y, lo que es más importante, escrito por nosotros mismos.
En Internet: • •
Página principal del proyecto PYRO: http://pyro.sourceforge.net/ Página principal del proyecto PyGTK: http://www.daa.com.au/~james/ software/pygtk/
www.lpmagazine.org
67
para jugadores
America’s Army Krzysztof Wolski
¿
Has soñado con ingresar en el Ejército, pero no han aceptado tu candidatura? ¿O, al contrario, has hecho todo lo posible para evitarlo, pero siempre has tenido ganas de ver como es la vida de un soldado? America’s Army es un juego que te permitirá convertirte en un soldado de las Fuerzas Armadas Americanas. Podrás participar en un entrenamiento y, después de su terminación satisfactoria, tomar parte en varias misiones difíciles e interesantes. Podrás jugar con enemigos y compañeros reales, con quienes te comunicarás a través de Internet. Este tipo de sensaciones y muchas otras (p.e. estancia en una cárcel militar por haber tirado por accidente a un soldado de tu grupo) te suministrará el juego descrito en este artículo. America’s Army forma parte de una familia de juegos tipo FPP, es decir, el partido se lo observa con los ojos del héroe. Los jugadores pueden conseguir el juego totalmente gratis.
Instalación
DVD Después de arrancar la distribución Linux+ Live DVD desde el menu Linux+/ Games se podrá acceder a la posición que arranca el juego America’s Army.
68
Linux+ 1/2004
El juego se puede descargar desde la página principal http://www. americasarmy.com/downloads/. Por desgracia, su volúmen representa un obstáculo porque es un fichero comprimido de tamaño de más de 650 MB. Para los que disponen de una conexión permanente, el tiempo puede suponer el único obstáculo para decargarlo. El juego es accesible en versiones para los sistemas Linux, Windows y Macintosh. Desde luego, a nosotros nos interesa la versión para Linux. Después de descargar el fichero, hay que arrancarlo (sh ./myops200-lnx.run) y seguir las instrucciones. El juego descomprimido e instalado ocupa casi 1.6 GB de espacio en el disco, y para funcionar requiere un equipo que cumpla con
los siguientes requisitos mínimos: •
procesador Pentium 1.0 GHz o compatible; 256 MB de memoria RAM; tarjeta gráfica con memoria de 64 MB y con soporte de 3D; CD-ROM; módem u otro tipo de conexión con Internet
• • • •
Pilotaje
Las teclas básicas con las que se puede mover el soldado en el juego son las siguientes: • • •
•
• • • • • • •
• • • • • • • • • •
Shift – andar o correr pulsar dos veces en W/Alt – sprint C – ponerse de cuclillas (si presionamos por segunda vez, volvemos a la posición de pie) X – arrastrarse (si presionamos por segunda vez, volvemos a la posición de pie) A – moverse a la izquierda D – moverse a la derecha S – retroceder ESPACIO – saltar T – hablar con otros participantes del juego (chat) Botón izquierdo del ratón – disparar Botón derecho del ratón – cambiar el modo de funcionamiento de fusil (tiro singular/ráfaga) Movimientos con ratón – volver la cara R – recargar el arma F – desbloquear el fusil que dejó de funcionar Z – acercarse, cuando apuntamos con el fusil 1 – fusil 2 – granada 3 – granada de humo 4 – granada ensordecedora H – quitar el seguro de la granada M – llamar al médico
america’s army
Figura 1. Aspecto de la pantalla del juego
Iniciamos el juego
Antes de empezar el juego, os recomiendo visitar otra vez la página principal del juego; y más precisamente la dirección http://www.americasarmy.com/register.php Merece la pena registrarnos en la página porque de este modo tenemos la posibilidad de guardar nuestros resultados obtenidos en el juego en el servidor. El identificador y que se nos facilite durante el registro la contraseña hay que escribirlos en los campos determinados, después de pulsar el botón Personal Jacket. Antes de empezar el juego con los enemigos, vale la pena prepararnos. Hacemos click en el botón Training y seleccionamos el tipo de entrenamiento que vamos a organizar para nuestro soldado. Todos los tipos de entrenamiento están descritos. Por ejemplo, el primer entrenamiento es el aprendizaje de precisión en la puntería: el soldado aprende a tirar en los blancos estáticos. La tarea consiste en dar en por lo menos 23 de 40 blancos. Disponemos de 2 cargadores: cada uno de ellos con 20 cartuchos. Desde luego, durante todo el entrenamiento nos instruye un soldado con grado militar superior al nuestro, y nos explica paso a paso lo que hay que hacer. Las teclas más útiles en el juego se han ubicado en el recuadro Dirección. Después de terminar con éxito el entrenamiento, podemos remitir el resultado obtenido al servidor. El entrenamiento es una buena preparación para el partido. El acceso a las misiones se consigue mediante el botón Deployment. En ese lugar podemos escoger entre el modo Multiplayer y la misión que queremos jugar: Missions. Como en el entrenamiento, todas las misiones están descritas. Para empezar la misión, hay que hacer click en el botón Deploy. Sin embargo, volvamos al modo multiplayer, donde podemos seleccionar entre el juego por Internet (Internet) o por la red local (LAN). Podemos también ajustar el
filtro de servidores (decidimos qué servidores se mostrarán por pantalla (Filtro)) o chatear (Chat). Si quremos jugar en Internet, tenemos que pulsar el botón Refresh List: buscará servidores con los que podremos conectarnos. Con cada uno de ellos aparece un símbolo que define el tipo de servidor, p.e el servidor oficial de autores del juego. En el listado de servidores, junto con sus denominaciones vamos a encontrar una cantidad máxima de usuarios y una cantidad de usuarios que todavía puede participar en el juego. Después de seleccionar el servidor pulsamos el botón Join y después de un momento nos conectaremos con el servidor. Si se ha realizado la conexión, tenemos que decidirnos a qué grupo queremos unirnos. Además, podemos también familiarizarnos con el objetivo de la misión (y con su identificador), con los enemigos y también con la descripción de la situación. Aparte de esto, podemos conocer los resultados obtenidos hasta ahora. Si pulsamos el botón Autoselect, el servidor puede seleccionar un grupo en vez de nosotros. En el menú principal del juego vamos a encontrar también la configuración del juego. Allí se hallan las opciones: Video (relacionada con la resolución de la pantalla del juego, el brillo, el contraste, etc.), Details (detalles gráficos), Audio (configuración del sonido), Network (tipo de conexión con Internet), Controls (modos de pilotar en el juego), Input (regulación de sensibilidad del ratón) y Hud (regulación del aspecto de pantalla del juego).
Resumen
America’s Army es un juego estupendo. Podemos jugar en Internet, por eso nunca nos aburriremos con él. Podemos también jugar en la red local con nuestros amigos, sin demoras provocadas por el acceso a unos servidores sobrecargados. El juego incluye unos gráficos cuidados y unos sonidos muy realistas. En un ordenador provisto del procesador Athlon 1,4 GHz, tarjeta gráfica GeForce2 64MB y 512 MB RAM se puede jugar sin ningún impedimento a una resolución de 800x600. Si la cambiamos a una resolución más alta, aparecen problemas con los gráficos y con el sonido. Es un juego más que prueba que para Linux también se construyen buenos juegos, como para Windows.
para jugadores
Juego en la red local
La preparación de nuestro propio servidor del juego America’s Army es una actividad realmente muy sencilla, que no debería ocasionar problemas incluso a un usuario principante del ordenador. Arrancamos el servidor desde la consola del sistema, por eso podremos jugar cuando al mismo tiempo nuestro servidor esté funcionando. Merece la pena empezar echando un vistazo en el listado de mapas que podemos utilizar. Con este objetivo realizamos el comando: ls /lugar_instalación_juego/Maps/
Para arrancar el servidor en una red local, hay que efectuar los siguientes comandos: cd /lugar_con_instalación_juego/Sistema ./server-bin lan nombre_mapa.aao
Para arrancar el servidor global (accesible en Internet), en vez del parámetro lan hay que introducir el parámetro global. Aparecerá la línea siguiente: ./server-bin global nombre_mapa.aao
Si queremos jugar en la red local, y no tenemos una conexión con Internet (el juego intentará conectarse con el servidor oficial del fabricante), hay que arrancar el juego (se creará el directorio .armyops200 con ficheros de configuración) y, a continuación, desconectarlo (para editar los ficheros de configuración). Nos ocuparemos de la modificación del fichero que permite jugar sin tener conexión con Internet. Con este objetivo realizamos el siguiente comando: mcedit /home/tu_nombre_usuario/.armyops200/ Sistema/ArmyOps.ini
Nos interesa la variable ServerSetting =AGP_GameMultiPlayer.bRequireAuthorization bRequireAuthorization=true, donde el conte-
nido true lo cambiamos por false. Guardamos los cambios y ya podemos arrancar el servidor del juego.
En Internet: –
Página principal del juego America’s Army: http://www.americasarmy.com/
www.lpmagazine.org
69
para jugadores
Unreal Tournament 2004 Piotr Truszkowski
U
nreal Tournament es un juego de destreza de acción, visto en primera persona (FPS). La edición 2004 es la tercera versión de este título después de Unreal Tournament y de Unreal Tournament 2003. Sin duda, es la mejor y es posible que se convierta en el siguiente bestseller mundial. Es, a la vez, el primer juego a lo grande, pues ya en la caja podemos admirar el logotipo que representa el pingüino que bien conocemos. La trama es muy sencilla (¿Quién requiere que un juego FPS tenga una trama complicada?), como en la mayoría de los juegos de este tipo. Tenemos, pues, un torneo en que solamente los mejores pueden ganar. El mejor de los mejores ganará la copa Unreal Tournament. Podemos ganarla eliminando a todos los oponentes. ¿Sencillo? Sencillo. Entonces hablemos del juego en sí.
los oponentes que dirija el ordenador (unos bots muy bien programados), o de modo Single Player, en que paso a paso vamos a hacer carrera para obtener el rango de maestro. El juego nos ofrece varios modos de partidos: –
–
–
3...2...1...¡Ya!
Podemos elegir entre la versión en DVD o en 6 CDs. No importa la versión que adquiramos, el instalador de Linux se encuentra en cada una de ellas. Para instalar el juego, hay que montar la unidad CD/DVD, dirigirnos al punto de instalación y copiar el fichero linux-installer.sh en nuestro disco duro. A continuación, desmontamos la unidad CD/DVD y en el lugar en que hemos copiado el susodicho instalador, ejecutamos el comando: sh linux-installer.sh.
¡A jugar!
El nuevo Unreal Tournament ya durante el primer arranque causa una muy buena impresión. El menú del juego es claro (un poco al estilo de los tebeos) y contiene las opciones ubicadas de una manera razonable. Aunque Unreal Tournament 2004 se destine, ante todo, a jugar de modo multiplayer, podemos también jugar con
70
Linux+ 1/2004
–
–
run – Este modo consiste en pasar la “pelota” a la base del enemigo y colocarla en la portería. Hay que subrayar que el jugador que tiene la “pelota”, no puede utilizar su arma, por eso el resto del grupo debe cubrirle. Invasion – Tenemos que detener a una ola de enemigos que nos atacan. Los jugadores con experiencia, a lo mejor notan que varios tipos de enemigos fueron traspasados de la primera parte del juego. Onslaught – En mi opinión, es indudablemente el modo más interesante del juego. Tenemos nuestra propia base con un reactor. ”Las plantas eléctricas” rodean nuestra base. Tenemos que tomar tantas “plantas eléctricas” para situarnos lo más cerca posible del reactor en la base del enemigo. Después de conquistar la “planta eléctrica” que se encuentre más cerca de la base del enemigo, el reactor llega a ser sensible a los ataques. Para nosotros es la señal para destruirlo. De este modo podemos movernos en varios vehículos. Nos esperan tanto máquinas terrestres, como voladoras. Para entrar en un vehículo, tenemos que acercarnos a él y pulsar [Enter]. La vuelta en un tanque de verdad causa impresión. Assault – Tenemos que realizar varias tareas. Un modo muy complejo e interesante. Mutant – El primer jugador que mate a alguien se convierte en un mutante. El mutante es dos veces más rápido, tira con más rapidez y es parcialmente Bombing
Figura 1. Los gráficos nos dejan sin respiración
transparente. Tiene sólo un defecto: para sobrevivir tiene que matar, porque si no está activo, pierde su energía de valor. Los otros jugadores intentarán cazarlo, y la persona que lo mate, se convierte ella misma en un mutante.
Impresiones audiovisuales
El nuevo Unreal cautiva con sus gráficos. Aunque algunas personas digan que es demasiado cursi por los colores cálidos, la presentación gráfica está al muy alto nivel. Los efectos especiales son increíbles. Al ver las imágenes del humo o de las explosiones de los vehículos lanzados al aire y que después caen a tierra, uno simplemente queda sin respiración.
Resumen
Unreal Tournament 2004 es un juego crucial. En ningún otro juego de Linux vais a encontrar unos gráficos así y tampoco vais a sentir escalofríos de emoción durante el partido. Podemos jugar día y noche sin parar. ¿Defectos? Seguramente los requisitos del equipo. Necesitamos: un procesador rápido (más de 1 Ghz), una tarjeta gráfica del sistema nVidia con 64 MB de memoria de mínimo (por lo menos GeForce2) y un disco duro acelerado. Te recomiendo calurosamente la adquisición de este juego.
buena lectura
piotrt@lpmagazine.org
sección llevada por Piotr Truszkowski
Linux System Security: The Administrator’s Guide to Open Source Security Tools, Second Edition Autores: Scott Mann, Ellen L. Mitchell, Mitchell Krell, Mitch Krell Editorial: Prentice Hall PTR, 2nd edition (2003) ISBN: 0130470112 Número de páginas: 896 La seguridad del software que utilizamos en nuestro servidor de Internet es una prioridad. Cada administrador de red que se precie debería fijar en ella su atención particular. No obstante, a menudo la diversidad del software Open Source y el número de soluciones posibles, cuyo objetivo es aumentar nuestra seguridad, es tan grande que es difícil seleccionar la mejor solución. Frecuentemente, después de elegir un producto, tenemos problemas con su configuración para que cumpla nuestras exigencias. El libro “Linux System Security”, describe de una manera muy accesible, los aspectos de una configuración segura del software Open Source y, en mi opinión, es la mejor fuente de información relativa a este tema. Fundo esta opinión, entre otros, en el conjunto de temas descritos con muchos detalles y en su diversidad. Podemos leer sobre sistemas de ficheros, derechos de acceso a ellos, contraseñas que se utilizan una sola vez, modos de funcionar de PAM, programas IDS, configuración de cortafuegos (ipchains, iptables) y modos de escuchar el movimiento en la red. Sin embargo, el libro que estás leyendo, querido Lector, será una fuente de conocimientos a la que vas a volver varias veces. Es un libro que te servirá por muchos años, siempre actual e indispensable. Aunque la versión del manual que reseno está escrita en inglés, de verdad la recomiendo calurosamente. Autor de reseña: Piotr Truszkowski (piotrt@lpmagazine.org)
Red Hat Linux 9 -- Professional secrets Autores: Naba Barkakati Editorial: Wiley Publishing, Inc.
ISBN: 0764541311 Número de páginas: 1038
En realidad, este libro tiene un sólo defecto que, desgraciadamente, puede quitarles ganas de leerlo a algunas personas interesadas; está escrito en inglés. No obstante, para los que no tienen dificultades con la lectura en este idioma, el libro será de mucho valor. En más de mil páginas vamos a encontrar la información sobre todos los aspectos del trabajo con el sistema Red Hat Linux. Empezando por la instalación del sistema y por un software adicional, pasando por la configuración de dispositivos, servicios, servidores y, para terminar, cuestiones relacionadas con la programación y la administración. Las instrucciones y las consultas del libro serán útiles tanto a los principantes, como a las personas con conocimiento avanzado de Linux. Vamos a enterarnos qué programas hay que utilizar para realizar tareas determinadas (p.e. programas de oficina, de gráficos) y qué hay que instalar/configurar para disponer de una función particular en nuestro ordenador (programar en Java, arrancar cortafuegos, servidor ftp y muchos otros). El libro va a ayudar a los que desean ocuparse profundamente de Linux, ya que el autor explica qué, cómo y porqué funciona así. El orden del contenido está bien pensado, por eso, sin problema podemos “saltar” de un capítulo a otro y, gracias a las referencias, encontrar los temas que nos interesen. El libro toca muchas cuestiones y, al mismo tiempo, es bastante detallado. Por ejemplo, la descripción de la instalación ocupa más de 50 páginas, porque el autor explica con todos los pormenores qué pasa en cada momento; se presentan también varias opciones y variantes de instalación. Gracias a este método de tratamiento, podemos entender el modo de funcionamiento de cada elemento del sistema y en caso de tener un problema (incluso poco corriente), tendremos más oportunidades de solucionarlo. Debido a esto, el libro es universal. Hay que recordar que la versión 9 de Red Hat Linux es la última edición de este sistema y que además no es muy ”joven”. Sin embargo, el libro no pierde nada de su actualidad, si disponemos de un sistema más moderno, basado en Red Hat (p.e Fedora Core o Aurox). El conocimiento adquirido nos permitirá utilizar de modo cómodo las distribuciones mencionadas y, después de tomar en consideración algunas diferencias, cada distribución de Linux. Junto con el libro se vende la versión del sistema Red Hat Linux 9 en dos discos. Autor de reseña: Jarosław Górny (jgorny@aurox.org)
72
Linux+ 1/2004