01 PortadaTodoLinux66
7/4/06 13:43
Página 1
Año 6
Número 66 6,95 Euros
Nuevo Sistema Linux FEDORA CORE 5
La Revista mensual para entusiastas de G N U / L I N U X
Software libre Crea tu propia LiveCD con Ubuntu Linux Cómo firmar digitalmente documentos OpenOffice Los mejores IDEs para programar en Linux
8 413042 751717
00066
Configuración de un servidor de correo Arrancando una máquina remota con PXE
PRESS
DVD-ROM: FEDORA CORE 5
TARJETAS NVIDIA
Guía de instalación paso a paso de la nueva Fedora
Configuración y overclocking de tarjetas gráficas
Reportajes: Estado del proyecto Mono / Entrevista a Nat Friedman de Novell
03 EditorialTodoLinux66
7/4/06 13:42
Página 3
Editorial
Todos contra el Canon La Revista mensual para entusiastas de GNU/LINUX
DIRECTOR
Eduardo Toribio etoribio@iberprensa.com
REDACCIÓN
Yenifer Trabadela yenifer@iberprensa.com
COLABORADORES
Rocío Arango, David Santo Orcero, Jesús M. Glez. Barahona, Vicente Matellán, Antonio M. Zugaldía, Fernando Sánchez, Roberto Suárez, Javier Galán, Jorge López, Luis López, Jerónimo Caballo, Xavier Drudis, Jose Alberto Suárez, Arturo Fernández, Marcos Goyeneche, Juanan Pereira, Javier Carmona, Julio Gómez, Álvaro Anguix, Víctor Alonso DISEÑO PORTADA
Antonio Gª Tomé MAQUETACIÓN
Antonio Gª Tomé DIRECTOR DE PRODUCCIÓN
Carlos Peropadre cperopadre@iberprensa.com
ADMINISTRACIÓN
Marisa Cogorro marisa@iberprensa.com
PUBLICIDAD
Fernando Escudero publicidad@iberprensa.com
SUSCRIPCIONES
Tel: 91 628 02 03 suscripciones@iberprensa.com
FILMACIÓN: Fotpreim Duvial IMPRESIÓN: I. G. Printone DUPLICACIÓN CD-ROM: M.P. O.
ecientemente se ha presentado una asociación que tiene como objetivo manifestar unitariamente su repulsa ante el establecimiento de cualquier tipo de imposición en formato de canon sobre los soportes digitales. Esta asociación, Todoscontraelcanon.es, está formada por profesionales del sector de las tecnología de la información, asociaciones empresariales y de consumidores e incluso los sindicatos. Todos ellos entienden que el Canon Digital perjudica el desarrollo de la Sociedad de la Información y a la competitividad de nuestra economía. Entre otras medidas, de las cuales nosotros informaremos, se celebrarán convocatorias y actuaciones ante el Congreso y el Senado y otras manifestaciones con el fin de concienciar lo máximo posible a la sociedad en general sobre la gravedad del asunto. Curiosamente, y paralelamente al anuncio de la presentación de esta asociación a la cual le deseamos la mayor de la suertes, ha surgido una polémica reflejada en diversos medios entre los ministros de Industria y Cultura, sobre la posible conveniencia de aplicar un nuevo canon sobre las líneas ADSL y los discos duros. Parece ser que Montilla, titular de la cartera de Industria, no está de acuerdo y considera que ello supondría un obstáculo en el desarrollo e implantación de Internet en nuestra sociedad, lo cual es bastante malo si consideramos el retraso que llevamos con respecto a nuestros vecinos. Lamentablemente, parece que Carmen Calvo, nuestra Ministra de Cultura, sí se hallaría más cerca de las tesis de la SGAE (Sociedad General de Autores). Hay que significar que España está levemente por debajo en la media de la UE en cuanto a
R
Suscripciones y números atrasados
DISTRIBUCIÓN
S.G.E.L. Avda. Valdelaparra 29 (Pol. Ind.) 28108 Alcobendas (Madrid) Tel.: 91 657 69 00 EDITA:
Studio Press
www.studiopress.es
PRESS
REDACCIÓN, PUBLICIDAD Y ADMINISTRACIÓN
C/ del Río Ter, Nave 13. Polígono “El Nogal” 28110 Algete (Madrid) Tel.: 91 628 02 03* Fax: 91 628 09 35 (Añada 34 si llama desde fuera de España.) Todo Linux no tiene por qué estar de acuerdo con las opiniones escritas por sus colaboradores en los artículos firmados. Los contenidos de Todo Linux son copropiedad de Iberprensa y sus respectivos autores. La mayor parte del software de los CD-ROM se pueden redistribuir libremente por estar sujetos a la licencia GNU/GPL. Linux es una marca registrada de Linus Torvalds. Iberprensa es una marca registrada de Studio Press.
DEPÓSITO LEGAL: M-39535-2000
conexiones de banda ancha, pero significativamente lejos de las cifras que alcanzan los países más desarrollados como Francia, Alemania, Holanda o Reino Unido. Por tanto, queremos reducir la brecha digital y potenciar la Sociedad de la Información, mientras algunos todavía se empeñan en continuar anclados en antiguos modelos de negocio, agarrados a un clavo ardiendo cada vez más pequeño, aunque sea a costa de perjudicar a la mayoría. El canon no soluciona el problema de fondo e incluso para muchos legitima la descarga ilegal, la solución no va a estar en impedir el acceso a las nuevas tecnologías. Pero es que además, mucha gente utiliza solo Internet para navegar y gestionar su correo electrónico, y por supuesto que en la Red existen contenidos sujetos a Copyright, pero también muchos otros que no lo están, como todo lo que se encuentre como CC o licencias libres. Volvemos a estar en el mismo caso que los CDROMs, canon que grava indiscriminadamente como si todos los medios se utilizaran para almacenar contenidos que vulneran la propiedad intelectual. Es solo una anécdota más, pero esta editorial, como cualquier otra, utiliza cientos de CDROMs para realizar copias de seguridad y almacenamiento de todas las publicaciones, cientos de gigas mensuales. Así podríamos seguir en muchos otros sectores. En fin, el asunto es gravísimo y la indignación crece, debemos confiar en nuestros políticos pero las dudas de algunos nos ponen los pelos de punta. La SGAE se ha mostrado muy hábil estos últimos años funcionando como un típico lobby americano. ¿Hasta cuándo?
Eduardo Toribio
En la contraportada se encuentra el cupón de suscripción a doce números de Todo Linux, incluye además información adicional sobre las posibles promociones especiales de cada mes. También es posible conseguir algunos de los números antiguos de la revista dirigiéndose al teléfono de atención 91 628 02 03 o por e-mail a: suscripciones@iberprensa.com. Consulta sobre la disponibilidad de la oferta 2x1.
Servicio Técnico
Escribe a Todo Linux
Todo Linux dispone de un servicio técnico donde se pueden consultar dudas sobre el funcionamiento del CD-ROM. Dicho servicio no incluye asesoramiento sobre Linux y métodos de instalación debido a que no es un proceso estándar y depende de las características del PC de cada lector.
Comparte con nosotros tus dudas, comentarios, e ideas. Solo tienes que enviárnoslas por correo o fax a la siguiente dirección:
todolinux@iberprensa.com
todolinux@iberprensa.com
TODO LINUX, Cartas de los lectores C/ del Río Ter, Nave 13. Polígono “El Nogal” 28110 Algete (Madrid) Fax: 91 628 09 35
Número 66 • Año 6
Copyright 1/07/06 PRINTED IN SPAIN
Número 66
3
04-05 Sumario
7/4/06 13:24
Página 4
Sumario Número 66
Tarjetas NVIDIA Las tarjetas gráficas con chip NVIDIA se han popularizado masivamente en el parquet de ordenadores domésticos, en este número dedicamos dos reportajes a su soporte en GNU/Linux. Guías Mandriva 2006 Ya puedes encontrar en quioscos nuestro monográfico de Todo Linux dedicado a Mandriva 2006. Se trata de una guía completa sobre la instalación, primeros pasos y uso del sistema Mandriva 2006. También puedes solicitarla en: todolinux@ iberprensa.com o en nuestro teléfono 916280203. Suscripciones Suscribirte a Todo Linux supone un ahorro considerable respecto al precio en quiosco, además de regalo puedes elegir uno de los números especiales de nuestra revista con DVD: La guía Fedora Core 4 o la guía Mandriva 2006.
En portada 10
Exprime Internet Todos los recursos ofrecidos en Internet son cubiertos por las completas aplicaciones que ya tenemos disponibles en GNU/Linux, como por ejemplo el navegador Firefox, el gestor de correo electrónico Thunderbird, el cliente de mensajería instantánea aMSN, los programas de descarga P2P aMule y Azureus, la descarga directa de archivos mediante D4X o por FTP con GFTP y la lectura de noticias RSS con aKregator. Este mes dedicamos nuestro reportaje de portada a revisar las principales características y funcionamiento de algunas de estas herramientas tan importantes en la consolidación definitiva de Linux y el software libre.
Zonas de Iniciación y Debian
En Portada
Nuestras secciones dedicadas a los nuevos usuarios del sistema Linux y a todos aquellos que quieren dejar distribuciones comerciales de lado y usar Debian. ZONA INICIACIÓN
16
Imendio Planner La gestión de proyectos es una disciplina que nació para los sectores más implicados con la ingeniería y se ha extendido rápidamente. Vamos a conocer uno de los gestores más populares en Linux.
20
ZONA DEBIAN
Servidor de correo y herramientas de filtrado La instalación de un servidor de correo va a permitir a un usuario utilizar un dominio propio como origen y destino de los correos electrónicos.
64
Contenido DVD-ROM
Fedora Core 5 Nueva versión del sistema operativo Fedora, la distribución desarrollada por una amplia comunidad de voluntarios bajo la tutela de Red Hat. En esta ocasión se aprecian numerosos cambios y mejoras, desde el apartado estético, pasando por la actualización de todos los paquetes importantes, hasta la inclusión de Mono y otras nuevas tecnologías. Además, Fedora Core 5 es un sistema muy sencillo de instalar y por tanto ideal para principiantes en Linux.
4
Número 66
04-05 Sumario
7/4/06 13:24
Página 5
Taller Linux
Sumario Edición de ficheros PDF sin Adobe Acrobat Linux carece de buenas herramientas que permitan editar ficheros PDF, pero sí dispone de visores y otras aplicaciones para manipular este tipo de ficheros como veremos.
30
Crea tu LiveCD con Ubuntu En este taller realizamos un ejercicio práctico paso a paso consistente en crear nuestro propio sistema Ubuntu Live con las aplicaciones que queramos. Esto tiene muchas aplicaciones prácticas.
34
24 El proyecto
Firma digital en Linux 37 Vamos a estudiar en este taller cómo firmar digitalmente paso a paso documentos OpenOffice y mensajes de correo electrónico en Mozilla Thunderbird.
Overclocking de tarjetas NVIDIA Actualmente son muchos los equipos que montan tarjetas NVIDIA, por ello vamos a repasar cómo “tocar” algunos parámetros para optimizar el rendimiento de este dispositivo.
Software Entornos integrados de
Programación en SWT
46
50
Conoceremos las librerías SWT que se han convertido en una de las principales referencias en la programación gráfica a la hora de programar interfaces.
Configurando terminales
41
Configuración de hardware
desarrollo en Linux Los IDEs son una gran herramienta para el programador de aplicaciones, vamos a analizar tres de los más populares que existen actualmente para GNU/Linux: Anjuta, KDevelop y Eclipse.
55
con PXE En nuestro número anterior comenzamos una miniserie sobre terminales tontos presentando el protocolo PXE, ahora descubriremos los servicios necesarios para arrancar una máquina remota.
Tarjeta gráfica NVIDIA 6600 44 Sin duda las tarjetas gráficas con chip NVIDIA son las que mayor rendimiento ofrecen en Linux. Veamos cómo instalar sus drivers en las principales distribuciones.
Noticias del sector
6. Novell presenta sus novedades Linux para la empresa en BrainShare 2006. 6. Galicia instalará el mayor supercomputador de memoria compartida de Europa. 7. Java Expo @ Sun Tech Days 2006. 7. Los sistemas SGI Altix certificados para SAP. 7. Presence lanza sus soluciones bajo Asterisk. 8. Red Hat creará un entorno de virtualización integrada para sus soluciones. 8. El Ayuntamiento de Zaragoza migra a Linux. 8. OptimaJ 4.1 con soporte para Eclipse. 9. Servidor HP Blade ATCA para el sector de las telecomunicaciones. 9. Mandriva One 2006.0. 9. Mobile.java.com. 9. Dell y Novell lanzan una solución para la gestión de Linux. Noticias breves y Linux en el Mundo.
Número 66
Reportaje
Mono Mono es uno de los proyectos libres más populares y también de los más controvertidos. Dedicamos un reportaje completo a analizar su estado actual, repasar su pequeña historia e incluso ver un par de ejemplos prácticos.
Servidores
60 Las tecnologías de cinta de gama alta Seguimos nuestro recorrido por las tecnologías de cinta,en este número llegamos a las de gama alta que han de cumplir las demandas de los usuarios más exigentes.
Entrevista
28 Nat Friedman, Vicepresidente de Linux Desktop en Novell En la reciente presentación a nivel europeo de SUSE DESKTOP en París tuvimos la oportunidad de charlar con Nat Friedman, conocido por ser uno de los fundadores de Ximian y actual encargado del escritorio Linux para Novell.
5
06-09 Noticias
7/4/06 13:57
ACTUALIDAD
LINUX EN EL MUNDO
Oriente Medio Arabtec, una de las mayores constructoras de los Emiratos Árabes Unidos, ha migrado los servidores de correo electrónico de 3.200 empleados al sistema Red Hat Enterprise Linux sobre arquitectura Intel Xeon de HP.Actualmente la compañía está evaluando la posibilidad de migrar todos sus servidores de archivo, sistemas backup, así como la totalidad de sus equipos a esta solución.
Cuba desarrollará un sistema Linux basado en Debian Cuba estudia la aplicación del software libre para el desarrollo de aplicaciones especializadas dirigidas a entornos educativos. Según responsables del Ministerio de Educación de la isla, actualmente se encuentran trabajando en la creación de un sistema Linux basado en Debian que incluya programas útiles para la enseñanza o la gestión en centros educativos.
Venezuela ofrecerá formación en software Libre a sus funcionarios El Ministerio de Ciencia y Tecnología de Venezuela se ha fijado como objetivo para este año 2006 ofrecer formación en el uso y aplicación de software libre a 30.000 funcionarios de los 26 ministerios con los que cuenta la Administración Pública. Los cursos serán desarrollado a través de la Oficina de Tecnologías de Información y versarán sobre lenguajes de programación, sistemas operativos y centros de datos.
6
Página 6
NOTICIAS
Novell presenta sus novedades Linux para la empresa en BrainShare 2006 La plataforma SUSE Linux Enterprise 10 y el nuevo entorno de escritorio como soluciones estrella La edición 2006 del encuentro que Novell celebra anualmente para sus partners se ha centrado este año en el lanzamiento de la plataforma para la Open Enterprise, una arquitectura de software y servicios para ayudar a las empresas en la implantación de código y estándares abiertos. Dentro de esta estrategia, la compañía otorga un papel protagonista a la nueva plataforma SUSE Linux Enterprise 10, a la que complementa el reciente lanzamiento de SUSE Linux Enterprise desktop, un entorno de escritorio con capacidades gráficas avanzadas. SLE 10 se ha presentado como el elemento clave para el nuevo modelo de “empresa abierta”, especialmente por las mejoras que aporta en el nivel de rendimiento, capacidad de gestión y virtualización. En cuanto al nuevo escritorio SUSE, destacan, además de las ya mencionadas mejoras en el interfaz gráfico derivadas del subsistema Xgl (disponible para su descarga en
www.freedektop.org/Software/Xgl), la usabilidad y facilidad de mantenimiento, la inclusión de nuevas herramientas de seguridad (proyecto AppArmor) y multimedia (soporte de tecnología Bluetooth, buscador Beagle), así como el soporte para el formato de documento abierto OpenDocument. Está previsto que la versión definitiva de SUSE Linux Enterprise Desktop esté disponible para el verano de 2006 (más detalles en la entrevista con Nat Friedman, vicepresidente del área de escritorio Linux en Novell en la página 28). Además de las novedades relacionadas con las soluciones SUSE, Brainshare 2006 también fue el escenario elegido para el lanzamiento de nuevas herramientas en las áreas de seguridad, colaboración y gestión de identidades. Las aplicaciones Novell SecureLogin y Storage Manager se presentan como una opción para las empresas a la hora de
mejorar y simplificar la gestión de recursos compartidos en la Red. Por su parte, la herramienta Designer for Novell Identity Manager, basada en el framework de código abierto Eclipse, permite configurar y probar las implementaciones relacionadas con la gestión de identidades. Finalmente destacar la ampliación del programa Market Start de Novell para impulsar y acelerar la adopción de las tecnologías de código abierto. Se han integrado en dicho programa los fabricantes y distribuidores de software Alfresco, Black Duck, EnterpriseDB, SpikeSource y Novacoast. Más información sobre la edición Novell BrainShare 2006 en: http://www.novell.com/brainshare
Galicia instalará el mayor supercomputador de memoria compartida de Europa El proyecto “Finis Terrae” costará sesenta millones de euros y trabajará sobre Linux El Centro de Supercomputación de Galicia (CESGA) ha firmado un convenio de colaboración con HP e Intel, por el cual la Xunta de Galicia y el Consejo Superior de Investigaciones Científicas (CSIC) instalarán en su centro de computación, localizado en Santiago de Compostela, el mayor supercomputador de memoria compartida de Europa. El proyecto, conocido como “Finis Terrae”, tendrá un coste total superior a los sesenta millones de euros y se convertirá en un referente mundial de cálculo científico y técnico. “Finis Terrae” contará con más de 2.500 núcleos de procesador Itanium 2 de última generación, una arquitectura de memoria compartida de más de 19.000 GB y una
red de interconexión de alto rendimiento entre nodos Infiniband.Además, el superordenador trabajará soportado por códigos basados en software libre (Linux, Lustre, Globus,…) y contará con un sistema de almacenamiento jerárquico de 390.000 GB en disco y un Petabyte en librería robotizada de cintas. Actualmente, éste sería el supercomputador con mejor ratio memoria/procesador y la máquina para cálculo científico HP – Intel de mayor capacidad instalada en el mundo, formado por 142 nodos con 16 núcleos de procesadores Intel Itanium 2 y 128 GB de memoria cada uno. Adicionalmente contará con dos nodos de 128 núcleos de procesadores cada uno.
Número 66
Esta iniciativa aportará una potencia de cálculo y almacenamiento capaz de dar respuesta a las necesidades computacionales de los más ambiciosos proyectos científicos en áreas como diseño en ingeniería, física, química, biomedicina y ciencias de la salud, astrofísica, meteorología y climatología. www.cesga.es
06-09 Noticias
7/4/06 13:57
Página 7
NOTICIAS
Java Expo @ Sun Tech Days 2006
LINUX EN EL MUNDO
Red Hat amplía su canal en Europa
Análisis de la importancia de los nuevos modelos de desarrollo en Comunidad El Palacio de Congresos de Madrid acogió la novena edición de la ya tradicional Java Expo, que este año compartía escenario con el foro mundial para desarrolladores Sun Tech Days. Bajo el lema “La Era de la Participación” la compañía propugnó un nuevo modelo muy volcado en el desarrollo en Comunidad como motor del cambio. Entre los puntos centrales en torno a los cuales ha girado esta Java Expo 2006 se encuentran los nuevos modelos de desa-
rrollo open source, las arquitecturas orientadas a servicios (SOA), las herramientas de Gestión de Identidad, o tecnologías clave como AJAX, JBI y OpenSolaris. Asimismo, durante la última jornada tuvieron un lugar destacado NetBeans, el entorno de desarrollo integrado Java de código abierto de Sun y la plataforma Solaris y el proyecto OpenSolaris, para los que se reservaron dos seminarios monográficos. En esta misma línea de apuesta por las tecnologías abiertas y la participación de la comunidad de desarrolladores se situaron las ponencias de apertura del presidente de Sun Microsystems Ibérica,Adolfo Hernández, que sostuvo que este planteamiento es perfectamente compatible con la rentabilidad del negocio. Por su parte Jeff Jackson,Vicepresidente de desarrollo de plataformas Java de la
compañía, incidió en la creciente importancia que está cobrando la participación activa de la Comunidad en la evolución de este lenguaje de desarrollo. Uno de los ejemplos más significativos de estas aportaciones es el proyecto Mustang que, gracias a la colaboración de programadores de todo el mundo, está permitiendo perfeccionar la próxima versión de Java, Platform Standard Edition 6 (Java SE 6). Más información en www.javaexpo.es
Los sistemas SGI Altix Presence lanza sus certificados para SAP soluciones bajo Asterisk La consultora REALTECH supervisará las migraciones Silicon Graphics ha anunciado que las soluciones SAP ya están certificadas, soportadas y disponibles sobre la plataforma de servidor SGI Altix para entornos Linux. Con esta medida, los clientes de SAP podrán beneficiarse de las altas prestaciones y escalabilidad que proporcionan los sistemas Altix para implementar sus soluciones, además de la reducción de costes que supone una plataforma open source con procesadores Intel Itanium 2. Esta gama de servidores son capaces de escalar fácil-
mente de 2 a 64 procesadores, acomodando múltiples terabytes de memoria en un único sistema. Además, su arquitectura de memoria única compartida permite mantener grandes bases de datos en memoria facilitando un rápido acceso a la información. Silicon Graphics también ha firmado un acuerdo con la compañía de software y consultoría tecnológica REALTECH AG, certificando a esta firma como socio tecnológico para la migración de SAP a plataformas SGI.
Centralitas virtuales sobre un servidor Presence Technology desarrollará sus soluciones para Contact Centers bajo la plataforma de telefonía IP open source Asterisk. La compañía comercializará su solución Presence Optimizer Voice sobre este software open source que soporta un amplio rango de protocolos para la gestión y transmisión de interfaces de VoIP, como SIP (Protocolo de Inicialización de Sesiones) y H.323. De esta forma, Presence ofrece una alternativa para aquellos clientes que no cuenten con una centralita
Número 66
ACTUALIDAD
Araceli Aranda, Directora General de Presence Technology.
telefónica pero quieran desplegarla de modo virtual mediante un servidor.Asimismo, es posible implantar esta solución en entornos que ya dispongan de una infraestructura de telefonía propia, ya que las llamadas pueden entrar directamente por esta centralita o a través de Asterisk. Actualmente ya está disponible Presence CRM Voice, una herramienta de voz para Call Center con funcionalidades IP, y está previsto que incorpore utilidades multimedia y de grabación de llamadas antes de que finalice el 2006.A pesar del nuevo modelo basado en open source, el software de Presence continuará distribuyéndose bajo una licencia propietaria.
Red Hat ha anunciado un importante crecimiento de canal de su Programa "Advanced Partner Program" en Europa. La compañía ha logrado un incremento del 450 por ciento de su base de clientes desde el lanzamiento del programa en junio de 2004. Se han sumado socios centrados en el mercado de las Pymes, el sector público, sanidad, I+D, telecomunicaciones, así como especialistas en migraciones Linux.
MapGuide Open Source Autodesk ha presentado la nueva versión de MapGuide Open Source, su software de mapas Web que permite a los usuarios desarrollar y distribuir rápidamente datos espaciales y de diseño a través de Internet. El software está licenciado bajo la GNU Lesser General Public License (LGPL) y disponible para su descarga en https://mapguide. osgeo.org/, hospedado por la Open Source Geospatial Foundation.
La Asamblea venezolana debate la Ley de Software Libre La Asamblea Nacional de Venezuela, en concreto la Comisión Permanente de Ciencia, Tecnología y Comunicación Social, abrieron el debate para diseñar el proyecto de Ley sobre el uso de Software Libre en la Administración. En las jornadas participaron representantes de las asociaciones de usuarios Linux y de compañías como IBM o Microsoft.
7
06-09 Noticias
7/4/06 13:57
ACTUALIDAD
NOTICIAS BREVES
El Corte Inglés venderá equipos con LinEx preistalado La Junta de Extremadura y El Corte Inglés han firmado un convenio de colaboración para la puesta en marcha de un Centro Experto en nuevas tecnologías de la información y la comunicación.Asimismo, y según lo recogido en dicho acuerdo, El Corte Inglés empezará a comercializar sus equipos Inves con gnuLinEx preinstalado.
Gael Duval demanda a Mandriva Gael Duval, uno de los fundadores de la distribución Mandriva, ha confirmado que demandará a la compañía francesa por despido improcedente. Este hecho se produce después de Francois Bancilhon le solicitara el año pasado a Duval que dejara la compañía y finalmente éste pasó a encargarse de mejorar la imagen de Mandriva en la Comunidad. Actualmente Duval se encuentra trabajando en un nuevo proyecto, denominado Ulteo, para facilitar la administración de los sistemas.
Ubuntu 5.10 sufre un importante fallo de seguridad La distribución Ubuntu 5.10 sufrió un importante fallo de seguridad que permitía a cualquier usuario conseguir todas las claves de seguridad del sistema. El fallo, reconocido por los desarrolladores de Ubuntu en su página oficial (www. ubuntu.com), se encontraba en el fichero que almacena las contraseñas y fue rápidamente solucionado.
8
Página 8
NOTICIAS
Red Hat creará un entorno de virtualización integrada para sus soluciones AMD, Intel, Network Appliance y XenSource colaborarán en el proyecto Red Hat ha presentado su nueva estrategia de "Virtualización integrada” para sus soluciones en la que contará con la colaboración de socios tecnológicos como AMD, Intel, Network Appliance y XenSource. El objetivo es crear un entorno de virtualización propio de Red Hat y proporcionar a los clientes herramientas y servicios para simplificar el proceso de despliegue de esta tecnología. Para ello la compañía integrará las funciones de virtualización en su sistema operativo y se asegurará de que todos los aspectos de la plataforma Red Hat Enterprise Linux, desde las herramientas del sistema y la instalación, hasta la gestión del software, permitan a los usuarios crear entornos virtualizados de un modo
sencillo.A esto se suma la integración y soporte para la tecnología de virtualización Xen, desarrollada por la comunidad de código abierto. Un avance de la tecnología de virtualización de Red Hat Enterprise Linux ya está disponible en la recién presentada Fedora Core 5 (incluida en el DVD que acompaña a la revista), y está previsto que a lo largo del verano la compañía lance el Servicio de Migración y Evaluación de la Virtualización junto con la versión beta de la virtualización para la empresa.Y ya para finales de 2006 se espera la nueva versión del sistema Red Hat Enterprise Linux que aportará la virtualización integrada completa.Actualmente tanto AMD como Intel están trabajando con Red Hat en su
desarrollo y en los laboratorios de pruebas para asegurar que sus chipsets estén integrados en la iniciativa del entorno "Virtualización integrada". En concreto, el programa Intel Virtualization Technology dota de soporte para la virtualización al procesador y al chipset, ayudando a acelerar y mejorar la capacidad de gestión, la facilidad en la utilización y la seguridad en el servidor y en las plataformas. Por su parte, la participación de la compañía Network Appliance asegurará la perfecta integración en sus soluciones de almacenamiento y XenSource incluirá la activación de sus herramientas de gestión. Más información sobre el programa Red Hat Integrated Virtualization en http://www.openvirtualization.com
El Ayuntamiento de OptimaJ 4.1 con Zaragoza migra a Linux soporte para Eclipse Contará con la supervisión de la consultora Ándago
La Concejalía de Ciencia y Tecnología del Ayuntamiento de Zaragoza ha puesto en marcha un Plan de Migración a Software Libre de los puestos de escritorio municipales. Para llevar a cabo este proceso, el consistorio contará con la supervisión de la consultora Ándago Ingeniería. La Concejalía de Ciencia y Tecnología ha planteado la migración a software libre en dos fases. Una primera etapa abordará la migración de las herramientas ofimáticas, de forma independiente al sistema operativo del equipo, con la implantación de la suite libre OpenOffice 2.0.Ya en una segunda fase se procederá a la migración de plataforma, de
manera que ambos procesos se desarrollen de manera independiente. El Ayuntamiento de Zaragoza lleva desarrollando ya desde principios de esta década un conjunto de acciones para impulsar tecnológicamente la ciudad e introducirla plenamente en la sociedad de la información.Todas estas acciones, y específicamente aquellas que se desarrollan en el ámbito del software libre, se definen en el plan "Zaragoza Abierta", dentro del proyecto"Zaragoza hacia la Sociedad del Conocimiento".
Número 66
Compuware impulsa este IDE con el proyecto Corona Compuware ha lanzado al mercado una nueva versión de la solución de desarrollo Java OptimalJ 4.1 para ampliar su soporte a la plataforma de código abierto Eclipse. La compañía ha anunciado además la puesta en marcha del proyecto Corona, que permitirá la colaboración de equipos de programadores que hagan uso de este entorno de desarrollo. OptimalJ 4.1 cuenta con implantación nativa de NetBeans y utiliza el desarrollo basado en modelos para diseñar aplicaciones de empresa. Una de las nuevas funcionalidades de la solución es la mejora de las capacidades de modelado UML mediante la integración del sistema MagicDraw UML para visualizar rápidamente
distintos diseños. Además, permite importar directamente Clases y Casos de Uso a los dominios de modelos de OptimalJ para generar el código o la arquitectura de la aplicación. Por lo que se refiere al proyecto Corona, también denominado Tools Services Framework Project, ha sido desarrollado conjuntamente con la Fundación Eclipse. Se trata de un framework que permite a las herramientas basadas en Eclipse compartir información de los proyectos, aplicaciones y eventos. Mediante esta iniciativa se facilita a los equipos de desarrollo una selección de plugins para poder detectar, diagnosticar y resolver problemas de la aplicación más rápidamente.
06-09 Noticias
7/4/06 13:57
Página 9
NOTICIAS
Servidor HP Blade ATCA para el Mandriva One sector de las telecomunicaciones 2006.0 Certificado para la plataforma Red Hat Enterprise Linux 4 HP ha presentado su nuevo servidor Blade ATCA específico para las empresas de telecomunicaciones y basado en el estándar de la industria Advanced Telecom Computing Architecture (AdvancedTCA). El modelo HP bh5700 Blade Server es la primera plataforma integrada de servidores HP Blade ATCA que la compañía garantiza para proporcionar entornos de misión crítica. Dicho sistema ha sido certificado para correr con la solución open source Red Hat Enterprise Linux 4. En cuanto a sus características técnicas, HP bh5700 cuenta con un chasis 13U 14 slot Advanced TCA, backplane e infraestructura switching compliant PICMG 3.1. HP ha estado trabajado con Intel en el desarrollo de servidores blade de dos vías, basados en procesa-
Versión Live e instalable en un CD
dores con tecnología Intel Xeon, con arquitectura de 32 bit y extensiones que permiten ampliaciones a 64 bit. Los próximos servidores incluirán procesador dual core a 32 bit con tecnología Intel Xeon, así como procesadores Itanium a 64 bit. Este nuevo servidor blade se suma a la gama de productos y servicios que se incluyen dentro del proyecto HP Advanced Open Telecom Platform (AOTP). De esta forma, la compañía ofrece el sistema bh5700 como parte de una solución integrada que incluye una completa suite de hardware AdvancedTCA con procesadores Intel y sistema operativo Linux, herramientas de gestión, servicios de consultoría e integración y soporte 24x7. Más información en www.hp.com/go/hpatca
Mandriva ha presentado una versión de su sistema operativo que aúna las funcionalidades de una plataforma Live e instalable en el mismo CD. Está basado en Mandriva Linux 2006 y se caracteriza por su usabilidad y un sistema de instalación muy sencillo, basta con pulsar en el icono que aparece en el escritorio para que un asistente nos guíe paso a paso durante todo el proceso.Además, los archivos creados durante el modo Live se copian automáticamente al disco duro si decidimos instalar Mandriva One. Por otra parte, la compañía francesa ha presentado también Mandriva Kiosk, un servicio de pago por suscripción para miembros del Club que permitirá la instalación de software mediante un solo clic de ratón.
Mobile.java.com Dell y Novell lanzan una solución Web de recursos para móviles para la gestión de Linux Sun ha presentado un nuevo portal web, mobile.java.com, a través del cual los usuarios podrán comprar y descargar aplicaciones para dispositivos móviles basados en Java, así como obtener información para el mercado de consumo sobre esta tecnología. Los desarrolladores de juegos y otros proveedores de contenidos de consumo que deseen promover y comercializar sus aplicaciones pueden enviar sus peticiones a través de la dirección www.java. com/en/dukeszone/featuresubmission.jsp. En mobile.java.com tendrán la posibilidad de establecer sus propias tiendas para suministrar sus productos directamente a los usuarios de móviles de todo el mundo.
Corre en servidores PowerEdge y ofrece soporte para Red Hat y SUSE Las compañías Dell y Novell han desarrollado conjuntamente una herramienta que permite a los usuarios de la primera gestionar de forma centralizada los despliegues Linux dentro de la empresa. La nueva solución Novell ZENworks 7 Linux Management – Dell Edition proporciona funcionalidades integradas de gestión de software y hardware para servidores Dell PowerEdge que funcionan con Linux. Esta edición de Novell ZENworks 7 Linux Management permitirá a los clientes desplegar, gestionar y llevar a cabo el mantenimiento del hardware, sistemas operativos y aplicaciones desde una única consola intuitiva. El objetivo es simplificar así los entornos Linux mediante la consolidación y automatización de la gestión de diversas
fuentes de TI, controlando costes y optimizando el rendimiento. La propuesta de Dell para la gestión de sistemas permite la colaboración con partners para desarrollar productos de alto rendimiento que integran la gestión del software y hardware utilizando aplicaciones OpenManage. El despliegue y los kits de desarrollo de la herramienta permiten automatizar tareas repetitivas a través de instrumentos centralizados de inventario, imagen y control remoto. Novell ZENworks 7 Linux Management – Dell Edition ofrece soporte para las aplicaciones y entornos Red Hat Enterprise Linux y Novell SUSE Linux Enterprise Server.
Número 66
ACTUALIDAD
NOTICIAS BREVES
El MEC quiere eliminar la titulación de Ingeniería telemática El borrador de catálogo de titulaciones oficiales publicado por el Ministerio de Educación no incluye la Ingeniería Telemática, una de las carreras técnicas con mayor demanda por parte de alumnos y empresas. Ante esta situación, se ha creado una plataforma para manifestar la necesidad de mantener este título, que ya cuenta con el apoyo de destacados representantes del mundo empresarial, científico y universitario. http://siatelematica. org
Nace una plataforma contra el canon Un colectivo de asociaciones profesionales, usuarios y empresas del sector, entre ellas el sindicato Comisiones Obreras o la Asociación de Internautas, ha puesto en marcha una plataforma en contra del canon que grava los soportes digitales. Más información en: www. todoscontraelcanon. es.
Cataluña crea una distro Linux para la Educación La Generalitat de Catalunya ha liberado la primera versión beta de Linkat, una distribución GNU/ Linux para la red educativa. El sistema está basado en SUSE y está disponible en tres versiones: ordenador autónomo, servidor de centro y cliente de centro. Mas adelante Linkat contará con una versión LiveCD. El sistema se puede descargar en la web http://linkat.xtec.net
9
10-15 Cover (Exprime Internet)
JORGE LÓPEZ
10
jlopez@iberprensa.com
T
7/4/06 12:32
Página 10
odos los recursos ofrecidos en Internet son cubiertos por las completas aplicaciones disponibles en Linux como el navegador Firefox, el gestor de correo electrónico Thunderbird, el cliente de mensajería instantánea aMSN, los programas de descarga Peer to peer aMule y Azureus, la descarga directa de archivos con Downloader for X y la lectura de noticias RSS con aKregator, herramientas cuyo funcionamiento vamos a revisar a lo largo de este cover. Desde la aparición de Linux, Internet ha sido uno de sus pilares para el continuo avance en la implantación de ordenadores de usuarios y de empresas, por lo que el número de aplicaciones que se han desarrollado destinadas a Internet ha ido creciendo para cubrir todas las funciones disponibles, desde los primeros programas para la consola de texto, hasta las últimas herramientas con funciones multimedia desarrolladas para los escritorios más avanzados. Frente al sistema operativo Windows, el uso de Linux en Internet permite realizar las mismas funciones que en el primero pero solucionando su principal problema, la seguridad, ya que la mayoría de sus aplicaciones poseen errores de programación a través de los cuales se pueden introducir programas dañinos como virus o que usuarios no autorizados accedan al equipo. Algunos de estos programas con errores de seguridad críticos son tan utilizados como Internet Explorer, Outlook o Kazaa. Aunque la opción de utilizar en Windows programas alternativos como Mozilla Firefox para navegar por Internet remedia estos problemas, solo lo hace temporalmente, ya que aún estaremos expuestos a virus, instalación no deseada de aplicaciones o los numerosos programas espía existentes. En consecuencia, no solo es recomendable utilizar Linux siempre que conectemos a Internet por los programas disponibles para él, sino también para evitar todos los problemas que acarrea el uso de otros sistemas operativos para la integridad del propio equipo. Todas las aplicaciones explicadas a lo largo del cover se encuentran en los repositorios oficiales de la mayoría de las distribuciones actuales.
Número 66
NAVEGACIÓN CON FIREFOX La aparición de Mozilla Firefox (http://www. mozilla.com/ firefox) ha provocado una revolución en el mundo de los navegadores en todos los sistemas operativos, ya Mozilla Firefox. que incluye numerosas mejoras frente a Internet Explorer, el más utilizado actualmente. Firefox le aventaja tanto en seguridad como en la velocidad de carga de las páginas, e incluye numerosas prestaciones que se hacen imprescindibles al utilizarlas, como el uso de pestañas para abrir en una misma ventana varias páginas o la instalación de extensiones para complementar sus funciones. Al abrir Firefox nos encontramos con una ventana dividida en: Título: muestra el título de la página que estamos visitando. Barra de menús: agrupa las funciones disponibles en Firefox, como las herramientas de configuración o la posibilidad de imprimir y guardar una página. Barra de iconos: contiene los iconos de avanzar y retroceder las páginas que hemos visitado, recargar la actual, ir a la página de inicio, una sección para escribir la dirección que queramos visitar y un último recuadro para realizar búsquedas directas en páginas predeterminadas, como Google, Wikipedia o Yahoo. Barra de marcadores: son enlaces directos a las páginas que más visitemos. Para añadir una dirección la incluimos en el marcador Bookmarks Toolbar Folder. Área de trabajo: muestra la página visitada. Barra de estado: indica el estado de carga de la página e integra algunas de las extensiones, como el informe meteorológico.
10-15 Cover (Exprime Internet)
7/4/06 12:32
Página 11
INTERNET EN LINUX
■ CONFIGURACIÓN
Podemos acceder a la configuración de Firefox en Editar-> Preferencias, que se encuentra dividida en: General: selecciona la página de inicio y el proxy de conexión. También está disponible la opción Firefox debería comprobar si es el navegador predeterminado al iniciarse, para verificar que Firefox es el navegador por defecto para abrir las páginas de Internet requeridas por el usuario o programas externos. Privacidad: contiene las preferencias internas de Firefox relacionadas con las páginas visitadas por el usuario, como la duración de la fecha del historial, las contraseñas guardadas, el tratamiento de las cookies, el historial de descargas y el tamaño máximo ocupado por la caché. La sección más importante es “Contraseñas”, donde podemos ver todas las claves almacenadas presionando en “Ver contraseñas maestras”, que muestra un listado de las páginas junto a los usuarios utilizados y el botón “Mostrar contraseñas” para que también se listen las claves asociadas, de gran utilidad cuando nos registramos en múltiples páginas como foros o servidores de correo y no recordamos los datos que hemos elegido. Contenido: configura el bloqueo de ventanas emergentes, donde podemos añadir direcciones permitidas a mostrar ventanas; la carga de imágenes, y activar el uso de los lenguajes Java y Javascript. Descargas: elige el directorio donde realizar las descargas y los formatos de archivo que se abrirán automáticamente con los programas predefinidos. Avanzado: configura los parámetros internos de Firefox, por lo que no deben ser modificados si no estamos completamente seguros de los cambios que realicemos.
Configuración de Firefox. ■ UTILIZANDO LAS PESTAÑAS
Gracias al uso de las pestañas, podemos tener abiertas varias páginas en una misma ventana de manera simultánea, navegando por ellas con la simple pulsación del botón izquierdo del ratón sobre sus nombres. Su funcionamiento se centra en utilizar la combinación de teclas “Ctrl+t” para crear una pestaña vacía, el botón central del ratón so-
bre un enlace para abrirlo en una nueva pestaña o presionando el botón derecho y eligiendo la opción Abrir en una nueva pestaña. Para cerrar las pestañas presionamos “Ctrl+w” o utilizamos el botón rojo disponible en la misma barra de los nombres de las pestañas. ■ INSTALACIÓN DE FLASH
El complemento Flash es uno de los más utilizados, por lo que para poder acceder a un número elevado de páginas debemos instalarlo: 1. Vamos a cualquier página que contenga código flash, por ejemplo http://www.alertaantivirus.es. 2. Presionamos sobre la nueva sección mostrada que contiene Presione aquí para descargar el complemento (Click here to download plugin). 3. Se abre una ventana con la opción Macromedia Flash Player activada, continuamos con “Siguiente”. 4. Aceptamos la licencia. 5. Finalizada la descarga se muestra la ventana de estado de la instalación. 6. Por último, reiniciamos Firefox y volvemos a visitar la misma página para comprobar su funcionamiento. ■ APARIENCIA GRÁFICA
Firefox cuenta con el soporte de temas para cambiar su apariencia visual. Para modificarlo hacemos: 1. Presionamos en Herramientas-> Temas. 2. Se muestran los disponibles, por defecto, solo uno: Firefox (default). 3. Para descargar otros adicionales, presionamos en Obtener más temas en esta misma ventana. 4. Se abre una nueva página dividida en secciones, donde elegimos el que queramos. 5. Comprobamos que sea compatible con la versión de Firefox; mostrándose esta información en el icono que indica For Firefox. 6. Presionamos en “Install for Linux” y aceptamos la instalación. 7. Finalizada la descarga, en la ventana de temas se ha añadido uno nuevo con una vista previa. 8. Seleccionamos el nuevo tema y presionamos en “Usar tema”. 9. Cerramos la ventana y Firefox. 10. Por último, volvemos a iniciar el navegador para encontrar activo el tema descargado. ■ COMPLEMENTOS
Las extensiones en Firefox se utilizan para añadir nuevas funciones al navegador, sien-
Número 66
COVER
do algunos de las más utilizados: Flashgot, integra en Firefox el gestor de descarga de archivos que tengamos instalado; Gmail Notifier, enlaza con las cuentas de correo Gmail para informar de la recepción de nuevos mensajes; Adblock, filtra secciones de código que no queramos que se muestren en las páginas, como la publicidad Javascript; Forecastfox, muestra la previsión del tiempo de cualquier lugar del mundo; o Tabbrowser preferences, personaliza el uso de las pestañas al navegar. Para instalar una extensión, por ejemplo Forecastfox, seguimos los pasos: 1. Abrimos la ventana de extensiones en Herramientas->Extensiones. 2. Presionamos en Obtener más extensiones. 3. Se abre una nueva página, dividida en secciones, donde elegimos la que queramos. Para el ejemplo elegimos Forecastfox. 4. Comprobamos los requisitos de versión de Firefox, al lado del enlace de descarga. 5. Presionamos en “Install for Linux”. 6. Aunque se muestre el mensaje No firmado, continuamos con “Instalar para Linux”. 7. Se ha añadido automáticamente la nueva extensión a la lista y reiniciamos Firefox. 8. En el ejemplo, con Forecastfox, se muestra una ventana de configuración donde elegimos Métrica como unidad de medida y seleccionamos la región para mostrar el tiempo en Buscar código, donde escribimos por ejemplo Madrid, Spain. Aceptamos la ciudad que se muestra y volvemos a presionar en “Aceptar”, para mostrar en la barra de estado inferior la previsión del tiempo y el mapa meteorológico. ■ VENTANAS EMERGENTES
Si para alguna página determinada queremos que se muestren las ventanas emergentes, por defecto bloqueadas, por ejemplo aquellas que los enlaces de descarga están dentro de las ventanas de publicidad, presionamos en Editar->Preferencias->Contenido, y en “Sitios permitidos” escribimos la dirección de la página y presionamos en “Permitir” para añadirla. ■ DIFERENCIAS CON INTERNET EXPLORER
La navegación a través de Mozilla Firefox e Internet Explorer es muy similar, siendo sus diferencias la seguridad, al no estar afectado Firefox por los graves errores existentes en el navegador de Microsoft relacionados directamente con el sistema operativo; incluir integradas útiles prestaciones como el soporte de pestañas o el bloqueo de publicidad y nuevas funciones que otros navegadores aún no incorporan, destacando la in-
11
10-15 Cover (Exprime Internet)
COVER
7/4/06 12:33
INTERNET EN LINUX
tegración de los numerosos complementos existentes. Valorando sus prestaciones, es posible comprobar que Mozilla Firefox es un navegador muy superior a Internet Explorer, ya que ofrece sus mismas características más otras muchas funciones, junto a un aumento muy importante de la seguridad global del sistema operativo.
CORREOS ELECTRÓNICOS EN THUNDERBIRD Thunderbird, http://www.mozilla.com/ thunderbird, es el cliente de correo electrónico más completo actualmente para cualquier sistema operativo, gracias a que incluye las mismas funciones que otros gestores de correo existentes, más un aporte adicional de seguridad al no cargar por defecto código dañino junto a los mensajes. Su estructura de trabajo, similar a la de cualquier otra herramienta de correo electrónico, se encuentra dividida en: Barra de menús, accede a todas las opciones del programa, como las herramientas de configuración, filtros, búsquedas y manuales de ayuda. Barra de funciones, contiene los iconos con las funciones más utilizadas, como enviar y recibir correos electrónicos, redactar un mensaje nuevo e imprimirlos. Sección carpetas, contiene las bandejas de entrada, salida, borrador y enviado. Podemos añadir nuevas carpetas presionando con el botón derecho del ratón y eligiendo la opción Crear carpeta. Sección correos, lista todos los mensajes disponibles en las carpetas, mostrando el remitente, asunto y fecha de recepción. Vista de mensajes, muestra el contenido de los correos junto a una cabecera con información adicional.
Mozilla Thunderbird.
■ CONFIGURACIÓN DE UNA CUENTA DE CORREO
En el primer arranque de Thunderbird realizamos un conjunto de configuraciones previas: 1. Seleccionamos si importar las cuentas y correos ya existentes en las aplicaciones
12
Página 12
Nestcape, Mozilla y Outlook, dependiendo del sistema operativo utilizado. 2. Creamos una nueva cuenta de correo, con la opción Cuenta de correo electrónico en la ventana que se muestra. 3. Escribimos el nombre que va a aparecer cuando enviemos un mensaje y nuestro correo electrónico. 4. Activamos el tipo de correo que utiliza el servidor, habitualmente POP, introducimos el servidor de correo entrante que nos ha dado el servidor donde hemos creado el correo electrónico y escribimos el servidor de correo saliente. 5. Escribimos el mismo nombre para utilizar en los servidores entrante y saliente, en la mayoría de las ocasiones es el mismo que el del correo electrónico. 6. Asignamos un nombre a la nueva cuenta, con el que posteriormente vamos a identificarla para recibir y enviar los correos, y terminamos presionando en “Finalizar”. 7. La primera vez que se vayan a descargar los correos se abre una ventana donde escribimos la contraseña del correo electrónico, en la que podemos activar Use el administrador de contraseñas para recordar esta contraseña, para que se quede almacenada y no vuelva a pedirse. 8. Por último abrimos los mensajes disponibles accediendo a la carpeta Bandeja de entrada. Para comprobar los nuevos correos presionamos en el icono Recibir mensajes, ya que los que creemos nosotros se envían automáticamente. Podemos crear nuevas cuentas presionando en Herramientas-> Configuración de las cuentas y dentro de la nueva ventana con el botón “Añadir cuenta”. ■ FILTRADO DE MENSAJES
El correo no deseado, o spam, es el segundo problema para los usuarios de correo electrónico, después de los virus. Para reducir este inconveniente, Thunderbird cuenta con filtros accesibles desde Herramientas-> Filtros de mensajes, donde se muestran las acciones a realizar para cada una de las cuentas de correo configuradas. Para añadir un nuevo filtro presionamos en “Nuevo”, que abre una nueva ventana donde escribimos el nombre que queramos asignar al filtro; determinamos en Para mensajes nuevos, la sección del mensaje que va a contener o no la palabra o frase que definamos y elegimos las acciones que van a producirse cuando se cumpla el filtro en Realizar estas acciones. Si queremos añadir nuevos filtros presionamos en el botón “+”, o en “-” para eliminarlos. También está disponible la opción Herramientas->Controles de correo basura, que
Número 66
Filtros de correo no deseado.
sigue un conjunto de reglas para identificar automáticamente los mensajes no deseados, estando activa la opción Habilitar controles de correo basura de la pestaña “Filtro adaptativo”, mediante el cual creamos nuestras propias reglas al asignar a los mensajes el atributo de correo basura, presionando sobre ellos con el botón derecho del ratón y eligiendo la opción Marcar->Como correo basura, siendo los próximos mensajes recibidos con un contenido similar, identificados como no deseados. ■ EXTENSIONES
A las completas funciones de Thunderbird se le pueden añadir nuevas características mediante la instalación de extensiones, disponibles a descargar a través del propio programa desde la opción Herramientas->Extensiones, presionando en Obtener más extensiones, que abre en una ventana del navegador la página de extensiones de Thunderbird. Algunas de las más destacadas son: Flashgot, enlaza con un gestor de descargas los enlaces a archivos de Internet; FoxyTunes, reproduce la música enviada como archivo adjunto; Mozilla Calendar, añade un calendario a Thunderbird; Update Notifier, avisa de las actualizaciones disponibles de las extensiones y temas instalados; e ImageZoom, permite trabajar con las imágenes recibidas, como realizar zoom sobre ellas. Para instalar una extensión: 1. Entramos en la sección del complemento y presionamos con el botón derecho del ratón en el enlace Install Now para descargar el archivo al disco duro. 2. Desde Thunderbird, presionamos en Herramientas->Extensiones. 3. Presionamos en “Instalar” y seleccionamos el archivo XPI descargado, donde se muestra una ventana de información en la que de nuevo presionamos en “Instalar”. 4. Por último reiniciamos Thunderbird para activar la nueva extensión. Para borrarlas, abrimos la ventana de las extensiones, seleccionamos cada una y presionamos en “Desinstalar”.
10-15 Cover (Exprime Internet)
7/4/06 12:33
Página 13
INTERNET EN LINUX
■ DIFERENCIAS CON OUTLOOK
COVER
mayor de complementos para interactuar con nuestros contactos; por contra, aMSN ofrece una seguridad de la que MSN carece, ya que son varios los programas y virus que afectan al cliente de Microsoft provocando serios problemas al sistema operativo.
Al igual que ocurre con el navegador Firefox, Mozilla Thunderbird incluye las mismas prestaciones que Outlook, pero corrige sus numerosos errores de seguridad e incluye nuevas características gracias al uso de las extensiones que se integran con la aplicación.
DESCARGA DE ARCHIVOS CON D4X MENSAJERÍA INSTANTÁNEA CON AMSN aMSN, http://amsn.sourceforge.net, es el cliente de mensajería instantánea más utilizado para la red MSN como alternativa al de Microsoft. A sus múltiples versiones (está disponible para la mayoría de los sistemas operativos existentes), se le añade una alta compatibilidad con el cliente de Microsoft, incluyendo la información del número de mensajes nuevos en nuestro buzón de correo, la disponibilidad en distintos idiomas y la existencia de complementos como la transmisión de archivos, el uso de imágenes personalizadas, la posibilidad de pintar sobre una pizarra o realizar videoconferencias mediante una cámara web. ■ REALIZANDO LA CONEXIÓN
Los pasos necesarios para conectar a la red MSN con aMSN son: 1. Abrimos la aplicación y cerramos la ventana de créditos que se muestra. 2. Presionamos en Haga click para iniciar la sesión. 3. Presionamos en “Añadir un perfil”, pudiendo crear tantos perfiles como cuentas vayan a utilizarse en el ordenador. 4. Introducimos el nombre de usuario, por ejemplo el correo electrónico, y la contraseña en la ventana Iniciar sesión. 5. Si queremos que se guarde la clave para no tener que volverla a escribir activamos Recordar contraseña. 6. Por último, al presionar en “Aceptar” se realiza la conexión, mostrando nuestros contactos y los nuevos mensajes recibidos, junto a dos nuevos iconos en la barra de trabajo del escritorio, uno de acceso directo a nuestro estado de conexión y otro al correo electrónico. La próxima vez que iniciemos aMSN, automáticamente se muestra un acceso directo a la conexión de la cuenta configurada.
aMSN.
ra que se nos avise cuando un determinado usuario se conecte. Adicionalmente, podemos modificar a nuestros contactos presionando con el botón derecho del ratón sobre cada uno, donde se abre un menú para bloquearlos, enviar mensajes o correos electrónicos y ver sus datos personales. En la ventana principal de aMSN se encuentra disponible la opción Herramientas para configurar las opciones globales, desde donde elegimos el idioma, la apariencia gráfica mostrada, pudiendo descargar un mayor número desde Elegir tema (skin), los complementos que van a estar disponibles, activándolos o eliminándolos con “Habilitar” y “Deshabilitar” respectivamente en Selector de plug-in, y modificar las opciones generales de funcionamiento en Preferencias, como el comportamiento de las conexiones, programas predeterminados o los historiales de las conversaciones, entre otras muchas funciones. ■ REALIZANDO UNA CONVERSACIÓN
Al comenzar a hablar con un usuario, se muestra una ventana de conversación similar a la de MSN Messenger, desde donde podemos enviar los mensajes, emoticonos predefinidos, invitar a usuarios a la conversación y modificar el tipo de fuente utilizada. En la barra de opciones, se encuentra disponible la opción de guardar la conversación con aMSN->Guardar en archivo... y el menú Acciones, desde el que enviamos archivos y realizamos una videoconferencia, configurando previamente la cámara con la opción Configurar webcam, que comprueba la correcta configuración de los puertos y del dispositivo.
A pesar del avance de los programas P2P para descargar archivos, mediante los cuales se evita la saturación de los servidores centrales gracias a que utilizan el ancho de banda de los usuarios, el uso de aplicaciones de descarga no ha decrecido. Esto se debe a que permiten controlar la transferencia a nuestro equipo de archivos, ya sea uno o varios, modificar sus velocidades de descarga para dar prioridad a unos sobre otros o detenerlos para continuar en otro momento. El programa más destacado para Linux de descarga de archivos es Downloader for X (D4X), que podemos encontrar en la página http://www.krasu.ru/soft/chuchelo. ■ REALIZANDO LAS DESCARGAS
El funcionamiento de D4X es sencillo, teniendo que recordar unas pocas funciones para conocer la mayoría de sus características: 1. Existen dos métodos para añadir una descarga: presionando en File->New Download, que abre una ventana donde escribimos la dirección donde se encuentra el archivo y aceptamos, o presionando en la barra de iconos en el último disponible, icono DND, que muestra una pequeña estrella por encima de todas las aplicaciones a las que desde cualquier navegador podemos arrastrar un enlace para descargarlo directamente. 2. Cuando incluimos una nueva descarga y existe más de una cola, se nos pregunta en cuál queremos incluirla, aunque podemos modificarla posteriormente arrastrando con el ratón el archivo a la que queramos. 3. Mientras se realiza la transferencia se muestra en la sección de descargas el nombre del archivo, la velocidad de transferencia, la dirección de origen y el tiempo desde el comienzo de la descarga y el restante para finalizar.
■ CONFIGURACIÓN
Las configuraciones de aMSN se realizan a través de la ventana de trabajo y de la barra de opciones disponibles: presionando sobre la imagen mostrada o nuestro apodo con el botón izquierdo del ratón podemos modificar nuestro estado de conexión, incluso definiendo un nuevo estado con la opción Añadir estado personalizado, el apodo, la imagen a mostrar y la posibilidad de incluir alarmas pa-
■ DIFERENCIAS CON MSN MESSENGER
Comparando aMSN frente a MSN Messenger podemos observar que existen múltiples semejanzas y unas escasas diferencias que sin embargo van a decantarnos por uno u otro. MSN Messenger posee la ventaja de una apariencia gráfica muy cuidada, frente a la austeridad de aMSN, así como un número
Número 66
D4X.
13
10-15 Cover (Exprime Internet)
COVER
7/4/06 12:33
Página 14
INTERNET EN LINUX
4. Al presionar con el botón derecho del ratón sobre el archivo, se muestra un menú donde podemos detener la transferencia, continuarla en caso de encontrarse en pausa, eliminarla o borrar el nombre de las que ya se han descargado para que no se muestren en el programa. 5. En caso de querer una información más detallada de la descarga presionamos dos veces sobre el archivo con el botón izquierdo del ratón. Otra opción destacada es la posibilidad de controlar la velocidad máxima, para lo que se encuentran tres pequeños botones en la barra de iconos, uno rojo, uno amarillo y uno verde, que indican 1024 B/s, 10240 B/s e indefinida respectivamente, valores que podemos modificar desde las opciones de configuración. ■ CONFIGURACIÓN
Las opciones de configuración más importantes de D4X se encuentran en: Queue-> Propierties, asigna el número máximo de descargas activas, el directorio de descarga y el formato mostrado de su tamaño; y en el menú Options->General, para modificar las velocidades predeterminadas, las opciones mostradas en la ventana de trabajo y la integración con el portapapeles. ■ PROGRAMANDO LAS DESCARGAS
Una de las características más destacadas de D4X es la posibilidad de programar acciones para que se activen en la hora y fecha que deseemos, para lo que presionamos en el icono “Planificador” de la sección de funciones, donde presionamos en “Añadir”, que muestra un calendario en el que elegimos la hora y fecha de inicio, la velocidad máxima permitida y en Acción elegimos la tarea a llevar a cabo, estando disponibles un elevado número, como limitar las velocidades, terminar el programa o ejecutar el comando que especifiquemos. ■ DIFERENCIAS CON FLASHGET
La herramienta más completa de descarga disponible en Windows, Flashget, admite las misma funciones que D4X pero con el principal inconveniente de instalar un programa espía, por lo que la seguridad de nuestro equipo se ve afectada e incluir publicidad en su versión gratuita. Aunque es posible eliminar con programas específicos el espía, futuras actualizaciones volverán a instalarlo.
compartir archivos. Después de la desaparición de numerosas redes como Napster, han tomado el relevo nuevas aplicaciones basadas en la independencia de un servidor central que controle las descargas, como es eDonkey, cuyo cliente más utilizado actualmente es eMule, con centenares servidores repartidos a lo largo de Internet, y Bittorrent, con numerosos clientes como BitComet o Azureus, con un funcionamiento cercano a las descargas directas mediante el uso de un tracker que interconecta a los usuarios y la principal finalidad de descargar archivos individualmente. ■ AMULE
Es el más utilizado de los programas de descarga, gracias al elevado número de archivos disponibles. Su página oficial se encuentra en la dirección http://www.amule.org. El entorno de trabajo de aMule se encuentra divido en tres secciones: Barra de iconos: muestra las opciones disponibles en aMule, que al presionarlas van modificando el contenido de la ventana de trabajo. Los iconos disponibles son: Conectar/Desconectar, no muestra ningún elemento en la ventana de trabajo ya que únicamente se utiliza para conectar y desconectar a la red eDoneky; Servidores/Redes, almacena los servidores disponibles junto a nuestra información personal de conexión a la red y muestra en negrita el servidor al que estemos conectados,; Búsquedas, formulario para realizar búsquedas de archivos por su nombre; Tráfico, muestra las transferencias que se están realizando con el nombre del archivo, la velocidad y el tanto por ciento completado; Compartidos, archivos almacenados en el ordenador que pueden descargar los restantes usuarios; Mensajes, avisos entre los usuarios que pueden desactivarse o filtrarse en la opción Preferencias; Estadísticas, muestra un gráfico y los datos actuales y totales de las transferencias realizadas; Preferencias, configura la aplicación; y Acerca de, muestra una pequeña información de aMule. En las últimas versiones de la aplicación también se encuentra disponible la opción Importar, desti-
■ AZUREUS
Entre los programas disponibles para utilizar la red Bittorrent, Azureus, ://azureus. sourceforge.net, es el más completo, gracias a un excelente rendimiento y velocidad a pesar de ejecutarse mediante Java, cuya máquina virtual es necesario instalar.
DESCARGAS P2P El aumento de conexiones de banda ancha ha permitido la aparición de programas de descarga P2P, mediante los cuales dos usuarios conectados a una misma red pueden
14
nada a utilizar archivos PART creados por otras aplicaciones como eMule. Ventana de trabajo: contiene los elementos de la opción elegida en la barra de iconos, es donde se realiza el mayor funcionamiento de la aplicación. Barra de estado: situada en la sección inferior del programa, muestra los estados más importantes por los que aMule pasa, como la conexión a un servidor o el último archivo cuya descarga ha finalizado. El funcionamiento de aMule es uno de los más sencillos, siendo necesario aprender unas pocas funciones para manejarlo: 1. Al abrir el programa automáticamente se conecta a uno de los servidores disponibles, en caso contrario presionamos “Conectar”. Podemos ver nuestro estado de conexión en la opción ServidoresRedes dentro de la pestaña “Info ED2K” 2. A continuación, presionamos en Búsquedas para localizar aquellos archivos que posean el nombre que indiquemos, comenzando la descarga presionando doble clic con el botón izquierdo del ratón sobre su nombre. También podemos insertar los denominados elinks, enlaces directos a archivos, mediante el formulario disponible desde cualquier opción en la sección inferior de la ventana de trabajo, copiando su nombre completo y presionando en “Enviar”. 3. Todas las descargas que se estén realizando se muestran en Tráfico, que podemos ordenar por cada uno de sus campos presionando sobre su nombre. Presionando con el botón derecho del ratón sobre cada uno de los archivos se muestra un nuevo menú destinado a modificar la prioridad de descarga, borrar o pausar un archivo y mostrar los detalles y comentarios para verificar que el archivo que estamos descargando se corresponde con su nombre. 4. Por último, en la opción Estadísticas, presionando en Subidas y Descargas podemos ver las descargas de la sesión actual y desde la instalación de aMule y el porcentaje de transferencia de cada uno de los clientes existentes. En la instalación predeterminada se crean dos directorios dentro de la ruta ~/.aMule, Incoming para almacenar los archivos descargados y Temp para los que se encuentran en descarga. Cada usuario cuenta con un directorio individual de uso.
Amule.
Número 66
10-15 Cover (Exprime Internet)
7/4/06 12:33
Página 15
INTERNET EN LINUX
COVER
Cuando arranca Azureus por primera vez, se inicia el asistente de configuración que contiene varias opciones: en la primera seleccionamos el tipo de conexión a Internet que tiene nuestro equipo, factor del que dependen tanto la velocidad de bajada como la de subida, cuanto más altas sean las dos,
Otros programas disponibles Adicionalmente a las aplicaciones comentadas a lo largo del cover, existen otras muchas que pueden ser de utilidad para usos específicos o por incluir funciones adicionales: Navegación de Internet: aparte de Mozilla Firefox que es el navegador más completo, existe una aplicación desarrollada para cada escritorio; así, si utilizamos KDE, contamos con Konqueror que se integra con el resto de aplicaciones y consume menos recursos del equipo, pero muestra un mayor número de errores en las páginas visitadas; si por el contrario preferimos GNOME existe Epiphany, basado en el motor de Mozilla; y para los restantes gestores de ventanas, contamos con Galeon con un consumo mínimo de recursos. En caso de no contar con el servidor gráfico, es posible navegar desde la consola de texto con links. Correo electrónico: al igual que en los navegadores, los escritorios cuentan con un desarrollo propio, existiendo KMail en KDE y Evolution para GNOME destinado el primero exclusivamente como lector de correos, con características como el filtrado de correos, y el segundo más similar a Outlook, al incorporar funciones adicionales como el pronóstico del tiempo y calendarios. Para la consola de texto, el lector más completo es Mutt. Mensajería instantánea: aunque aMSN es la aplicación más parecida a MSN Messenger, únicamente permite conectar a la red MSN, por lo que si poseemos contactos de otras redes, como Yahoo! o Jabber, es preferible utilizar Kopete o Gaim, que permiten conectar a la mayoría de las existentes e incorporan funciones similares a aMSN. Descargas P2P: todas las personas habituadas a eMule van a encontrar la mejor alternativa en el ya comentado aMule, ya que es una versión portada directamente de su código fuente, al igual que Azureus, del que existe la misma versión en Linux al estar programado en Java. Si por el contrario preferimos probar una nueva aplicación, Mldonkey permite conectar a la mayoría de redes P2P existentes desde un mismo interfaz de trabajo, al que podemos acceder desde un equipo externo para comprobar su estado, ejecutar desde la consola de texto o utilizar un navegador web para manejarlo, siendo su único inconveniente el cambio drástico en el modo de uso.
Azureus.
Lectura de noticias RSS.
más rápido se descargan los ficheros. En la segunda opción elegimos el puerto destinado a realizar las transferencias, por defecto el 6881, existiendo un botón de “Probar”, para verificar que el puerto sea accesible en nuestra conexión. Y en el tercer y último paso seleccionamos el directorio donde se van a almacenar los archivos que se descarguen. Es posible acceder al asistente de configuración en cualquier momento desde la opción Archivo->Asistente de configuración, que se encuentra en la barra de herramientas. Los pasos necesarios para descargar un archivo son: 1. Con el archivo TORRENT en el disco duro, presionamos en Archivo->Abrir->Archivo .torrent y seleccionamos el archivo. 2. Automáticamente se muestra una nueva entrada en la sección de descargas, indicando el estado de la transferencia mediante un pequeño emoticono de color, indicando gris su inactividad, rojo que no está conectado a ningún cliente, azul se encuentra en conexión con el servidor, amarillo está conectado pero algún router o cortafuegos bloquea su correcto funcionamiento y verde indica que todo funciona correctamente. 3. Podemos ver con mayor detalle el archivo presionando dos veces con el botón izquierdo del ratón sobre él, acción que abre una nueva pestaña con información del servidor, detalles de los clientes conectados, partes del archivo en transferencia y archivos contenidos en la descarga en caso de existir más de uno; o mostrar un menú para eliminarlo o pausarlo con el botón derecho. Al estar programado en Java, la misma aplicación existente en Windows es la disponible para Linux.
LECTURA DE NOTICIAS RSS La tecnología RSS permite mostrar en un equipo las noticias, novedades o cambios realizados en cualquier página que incluya soporte sin necesidad de abrirla desde el navegador. RSS está compuesto por dos elementos: un servidor que sindica, comparte las noticias y un agregador, programa que se ejecuta en el ordenador para leer las fuentes RSS.
Número 66
■ APLICACIONES DESTACADAS
Dependiendo del escritorio que utilicemos vamos a contar con distintas herramientas. Para KDE la más utilizada es Akregator, http://akregator.sourceforge.net, mientras que en GNOME destaca Liferea, http://liferea.sourceforge.net. Existen dos tipos de sindicación: aquellas que únicamente muestran el titular de la noticia y redirecciona a la página que incluye la historia completa y otras que incluyen el contenido de las noticias, dependiendo del servidor el uso de una u otra. ■ AKREGATOR
El uso tanto de Akregator como de Liferea es muy similar, siendo la configuración del primero: 1. Iniciamos Akregator desde el menú Internet->Lector de orígenes RSS (Akregator), que adicionalmente a la propia aplicación muestra un nuevo icono en la barra de tareas con el número de artículos sin leer. 2. Añadimos un servidor, por ejemplo el de Barrapunto, presionando en Origen-> Añadir origen. 3. En la nueva ventana mostrada, en URL de origen, escribimos la dirección RSS, http://backends.barrapunto.com/barrapunto. rss, y aceptamos, comprobándose automáticamente si existe contenido disponible. 4. En caso afirmativo se muestra una nueva ventana, dividida en dos pestañas: “General”, donde elegimos el nombre para identificarlo, por ejemplo Barrapunto, y la URL, en la que dejamos la indicada. Activamos Usar el intervalo de actualización personalizado, para comprobar automáticamente cada periodo de tiempo que especifiquemos si existen nuevas noticias, y Notificación de los artículos nuevos, para que nos avise de las nuevas entradas. 5. Automáticamente se ha creado un nueva entrada en la sección Orígenes, que podemos mover a una carpeta distinta presionando sobre ella y arrastrándola. 6. La lectura de las noticias se realiza igual que con el correo electrónico, presionando sobre ellas, marcándose automáticamente como leídas. ■
15
16-19 Iniciacion
7/4/06 13:38
ZONA DE INICIACIÓN
Página 16
IMENDIO PLANNER
Imendio Planner La gestión de proyectos es una disciplina que nació para los sectores más implicados con la ingeniería, y ahora se ha extendido a todos los demás. Existen muchas teorías y métodos para realizar esta labor, y han aparecido programas para cada uno de ellos.
Nosotros vamos a ver uno sencillo y que podemos usar tanto para nuestros proyectos informales como para los que hagamos en el trabajo: Imendio Planner.
PRINCIPIOS DE LA ORGANIZACIÓN DE PROYECTOS Una de las curiosidades sobre la organización de proyectos es que, aunque sus orígenes pueden asociarse a las obras públicas que se llevaban a cabo en Mesopotamia hace miles de años, su popularización tal como hoy la conocemos se debe a la carrera espacial entre EEUU y la extinta URSS. El proyecto Sputnik sorprendió a los estadounidenses que decidieron “ponerse las pilas” y dar un impulso a su carrera espacial. La gestión de proyectos fue estudiada seriamente, y se desarrollaron nuevos modelos y técnicas. De esta iniciativa surgió también, por ejemplo, la DARPA (Defense Advanced Research Projects Agency), que luego crearía Internet. La gestión de proyectos es la ciencia de definir y conseguir objetivos optimizan-
Diagrama PERT, de los primeros usados para la gestión de proyectos.
16
ROBERTO SUÁREZ rsuarez@iberprensa.com
do el uso de recursos (tiempo, dinero, personal, etc.) a lo largo del transcurso de un proyecto. Normalmente, el tiempo es el recurso más escaso, porque no podemos reponerlo. La carga de llevar a cabo esta planificación suele recaer en un director de proyecto, que es el que tendrá que usar herramientas como Imendio Planner para llevar a buen puerto la tarea que le han asignado. En proyectos más grandes puede haber un grupo de directores, y cada uno puede tener su propia parcela sobre la que actuar. La gestión de proyectos es una ciencia compleja, que ha pasado de ser reino de los ingenieros a verse “invadida” por gente con trasfondos en carreras no tecnológicas, como las económicas y empresariales. Algunos de los males de las TI se derivan de directores de proyecto que se encargan únicamente de la dirección y coordinación, sin tener experiencia en “el mundo real” de la tecnología. Aunque un proyecto sencillo, como una merienda familiar, puede organizarse con un cuaderno y un bolígrafo, algo más complejo requiere una herramienta más especializada. En los programas de gestión de proyectos se juega con un elemento principal: las tareas. En su forma más básica, un gestor de proyectos es una lista de tareas a realizar. Pero también nos interesan más elementos de esas tareas, por ejemplo, qué recursos se van a usar en ellas, y cuánto tiempo van a requerir. Los recursos pueden ser personas (aunque parezca sacado de un tratado de la Revolución Industrial), o quizás otras empresas o departamentos. Estos recursos, a su vez, pueden no estar disponibles permanentemente (por ejemplo, el coche familiar en nuestra hipotética merienda), o tal vez (sobre todo, en el caso de las personas) no puedan ser usados al cien por cien en nuestro proyecto. El tiempo, como dice el refrán, es oro: cuanto más invirtamos en el proyecto, más dinero tendremos que gastar. Así que la optimización del tiempo es también uno de los objetivos principales.
Número 66
Con estos tres objetos (tareas, recursos y tiempo) vamos a trabajar en Planner.
EL PROGRAMA ANTERIORMENTE CONOCIDO COMO MR. PROJECT Imendio Planner es la aplicación GNOME que antes era conocida como Mr. Project. La empresa que esponsorizaba el desarrollo de esta herramienta se declaró en bancarrota (eran los años de las puntocom), e Imendio ha tomado las riendas de su desarrollo, albergando la web y pagando a los desarrolladores (actualmente solo uno, Kurt Maute). El nombre del programa cambió para reflejar el cambio de patrocinador. La última versión a la hora de escribir este tutorial, y la usada por los autores, es la 0.13. Planner viene con casi todas las distribuciones de Linux. Por lo tanto, podemos encontrar paquetes binarios con los que instalarla, no teniendo que hacerlo desde los fuentes. Como todas las aplicaciones GNOME, Planner depende de varias librerías de desarrollo, e instalarlo a partir de fuentes es más complicado que con otros programas. ■ INTERFAZ DE PLANNER
Una vez lanzado Planner, contaremos con una ventana diferente para cada proyecto que tengamos abierto. Hay tres divisiones de la ventana principal: la barra de herramientas, en la parte superior; el selector de componentes, a la izquierda; y la pantalla correspondiente a cada uno de ellos, ocupando el resto de la ventana. Cada “componente” es una parte del programa en la que podemos ver y modificar los elementos de nuestro proyecto: diagrama de Gantt, tareas, recursos, y uso de recursos. ■ DIAGRAMA DE GANTT
El componente principal, y donde se muestra visualmente el progreso de nuestro proyecto, es el de diagramas de Gantt (Gantt Chart). Se divide en dos partes: en la derecha vemos el diagrama de Gantt en sí, mientras que en la izquierda se muestra una lista en forma de árbol (el WBS, Work Breakdown
16-19 Iniciacion
7/4/06 13:38
Página 17
IMENDIO PLANNER
Gestor de recursos en Planner. Ventana principal de Planner. ■ GESTOR DE RECURSOS
Structure) de las tareas. En este árbol tenemos el identificador de cada tarea, su descripción y su duración. Cada línea en el árbol está a la misma altura que su línea correspondiente en el diagrama de Gantt. El diagrama de Gantt marca el transcurso en el tiempo de nuestro proyecto. En la parte superior aparece el tiempo, las horas, días y meses en los que lo desarrollaremos. Podemos “estirar” o “encoger” cada línea de tarea (ampliando o disminuyendo el tiempo asignado a ella) pinchando en sus extremos y tirando de ellos hacia un lado u otro. Veremos que hay partes del diagrama con fondo blanco y con fondo gris. Sobre estas últimas no podemos extender las tareas, salvo que lleguen a otra de las partes blancas: son las horas no laborables. Como corresponde a la vida real, Planner supone que nuestros recursos van a estar disponibles según un cierto horario, y solo nos permite asignar tareas mediante intervalos correspondientes a ese horario, aunque éste podemos escogerlo nosotros, modificarlo e incluso asignar uno diferente por cada recurso, como veremos luego. El diagrama de Gantt puede ser acercado o alejado con la función Zoom de Planner, accesible mediante dos botones en la barra de herramientas (que pueden estar ocultos si la ventana del programa no es suficientemente grande). ■ TAREAS
En el componente de tareas (Tasks) vemos éstas en un formato parecido al árbol del primer componente, pero con más detalle. Pinchando dos veces encima de cada una de las tareas podemos editar sus parámetros. Como la explicación de las características de las diferentes tareas es larga, la dejamos para el apartado siguiente. Un buen método para planear nuestro proyecto es usar este componente primero, listando las tareas que vamos a realizar y dividiéndolas según haga falta. Luego podemos volver al diagrama de Gantt y ajustar ahí los tiempos de cada una.
El tercer componente es el gestor de recursos. Como comentamos antes, un recurso puede ser tanto una persona como un objeto, una empresa, o cualquier otro agente de nuestro proyecto. Según la tarea que tengamos entre manos, habrá más de unos o de otros. A la hora de insertar un recurso, Planner nos permite distinguir estos dos tipos marcándolos como trabajo (Work), es decir, alguien que va a realizar un trabajo, o material (Material), un recurso que va a ser utilizado. El último componente nos sirve para ver cómo hemos usado los recursos en nuestro proyecto. Es una vista muy similar a la del diagrama de Gantt, pero en lugar de ordenar las barras por tarea, se hace por recurso. Así podemos ver cuándo y cuánto hemos usado cada uno de ellos.
ZONA DE INICIACIÓN
rea, tiempo de trabajo (Work), tanto por ciento completado, y prioridad. Otros merecen una explicación más larga: la casilla de “hito” (Milestone) nos sirve para marcar esa tarea no como algo que hay que realizar, sino a modo de marcador de progreso. La casilla de duración fija (Fixed duration) asigna una duración inmutable a la tarea. Esto sirve para tareas que tienen obligatoriamente que durar cierto tiempo, como podría ser una película o el trabajo de una máquina. Algo que llama la atención es que hay una casilla para el tiempo de trabajo y otra para la duración de la tarea. Intuitivamente, ambas cosas deberían ser iguales; pero debido a las relaciones con otras tareas, el tiempo real para una tarea puede ser mayor que el tiempo de trabajo neto. Por último, la opción de programación de tarea es por defecto “lo antes posible” (As soon as possible), es decir, que la tarea se realizará en cuanto acabe la anterior de la que depende (si depende de alguna). Esto podríamos cambiarlo si la tarea tuviera que ejecutarse en una fecha determinada.
■ PROPIEDADES DE LAS TAREAS
Pinchando dos veces encima de una tarea, o seleccionando la opción Edit task del menú que sale al hacer clic con el botón derecho encima de ellas, podemos acceder al diálogo de edición de tareas. En él hay cuatro pestañas: “General”, “Resources”, “Predecessors” y “Notes”. Varios de los campos de la primera pestaña son bastante obvios: nombre de la ta-
Editor de propiedades de las tareas.
En la pestaña de recursos (“Resources”) podemos asignar éstos a la tarea. Cada uno puede ser asignado con cierto porcentaje
Diagramas de Gantt La forma más usual de representar los tiempos e interrelaciones entre tareas de un proyecto son los diagramas de Gantt. Reciben su nombre de Henry L. Gantt, que publicó su trabajo en la revista The Engineering Machine en 1910. Un diagrama de Gantt es un diagrama de barras horizontales, en el que se marcan los tiempos que se invierte en cada tarea del proyecto. Cada una de esas tareas ocupa el espacio entre las horas (días o meses) en las que se llevó a cabo. Puede haber tareas que agrupen otras, representando tareas complejas que están compuestas de otras más pequeñas. Las tareas son paralelas cuando puedan ser llevadas a cabo simultáneamente. Pero más frecuentemente, unas dependerán de otras, y estarán anotadas a tal efecto (en Planner, con flechas que muestran la relación de dependencia). Estas relaciones no estaban contempladas inicialmente en los diagramas de Gantt, pero a medida que se extendió su uso, ésta y otras adiciones se hicieron tan comunes que se han convertido en parte del estándar.
Número 66
17
16-19 Iniciacion
7/4/06 13:38
ZONA DE INICIACIÓN
Página 18
IMENDIO PLANNER
de actividad, indicando la implicación de este recurso en la tarea. Una persona podría estar implicada parcialmente, pero ciertos recursos materiales lo estarán al cien por cien (por ejemplo, materias primas). La pestaña de predecesores (“Predecessors”) indica las tareas de las que depende la tarea actual, es decir, las que deben haberse realizado antes de empezarla. Podemos añadir éstas desde el diálogo de edición, pero es más sencillo hacerlo desde el diagrama de Gantt de Planner. Allí podemos pinchar en una tarea y arrastrar, con lo que aparecerá una flecha que, uniéndola a otra tarea, marcará la tarea inicial como predecesora de la final. Los diagramas de Gantt de nuestros proyectos tendrán la forma de varias barras unidas por flechas de este tipo, indicando la interdependencia entre ellas. Una tarea puede tener varios predecesores, y ser a su vez predecesora de otras tareas. Según lo complejo que sea nuestro proyecto, así lo será también su diagrama de Gantt. También tenemos en el editor de predecesores un campo llamado “retraso” (Lag), que podemos usar para indicar que tiene que haber una pausa entre el final de la tarea predecesora y la actual. Por último, cada tarea tiene una pestaña de notas (“Notes”). Aquí podemos anotar nuestras observaciones a medida que se va realizando la tarea. Hay un botón para insertar una marca de tiempo (“Insert timestamp”), con el que podemos asignar fecha y hora a diferentes anotaciones. ■ EDITOR DE CALENDARIOS Y DÍAS
En el menú de Proyecto (Project) de Planner podemos acceder a dos editores especiales: el de calendarios (Manage calendars) y tipos de día (Edit day types). Por defecto, Planner usa un calendario conven-
Editor de calendarios.
cional: los sábados y domingos no se trabaja, y el horario de trabajo en un día laborable es de 8 a 12 y de 13 a 17. Podemos tener varios tipos de calendario en nuestro proyecto, añadiendo alguno más o cambiando los valores del que viene por defecto. Aunque no tendrá mucho sentido si todos nuestros recursos son locales, sí que podría resultar de utilidad si vamos a trabajar con recursos de otros lugares que puedan contar con diferentes días festivos o bien horarios distintos (por ejemplo, empresas en otras ciudades, teletrabajadores, etc.). En el diálogo de calendarios se nos muestra uno pequeño con todos los días del mes actual. Veremos que, por defecto, los fines de semana vienen marcados como días no laborables; pero pinchando en cada día podemos cambiar su estado. Estos estados son “laborable” (working) o “no laborable” (nonworking), pero tenemos la opción de añadir más en el editor de tipos de día. A cada uno de estos tipos de día le corresponde un horario. Así, podríamos tener un día “jornada completa”, otro “media jornada” y otro “no laborable”. Esto sería aplicable por ejemplo para empresas que trabajan un poco más todos los días de la semana para tener un viernes con menos horas, o aquellas que, aparte de jornada completa durante la semana, trabajan el sábado a media jornada. Si
tuviéramos varios turnos diferentes (uno de noche y uno de día, por ejemplo), podríamos tener un horario para cada uno y asignar a nuestros recursos un calendario diferente en el que los días laborables estuvieran regulados por esos turnos. Los botones de la parte de abajo del editor de calendarios nos permiten editar los horarios (Working time) y los días laborables de cada semana (Default week). Un aspecto un tanto incómodo de la edición de horarios es que para crear un nuevo tipo de día hay que irse al editor específico accesible desde el menú de Planner, en el que solo podemos añadir o quitar tipos de día. ■ OTRAS CARACTERÍSTICAS DE LOS
PROYECTOS
Otras características editables de los proyectos de Planner son accesibles mediante las opciones para editar las fases (Edit project phases) y las propiedades (Edit project properties). Las fases del proyecto son etiquetas arbitrarias que usaremos para dar una idea del progreso del mismo. Así, lo normal será que el proyecto pase por una fase inicial de estudio; una de decisión (en la que se decide si realizar o no el proyecto); varias de planificación e implementación, y una de conclusión. Por supuesto, esto es solo lo más habitual: nuestro proyecto podría tener simplemente una fase inicial, una intermedia y una final. Estas fases no serán usadas más que en las propiedades del proyecto para definir su estado actual, lo que hace su uso, al menos en Planner, puramente informativo.
TaskJuggler, una alternativa hecha para KDE Aunque Planner es popular, no es el único software para gestión de proyectos que existe. La otra alternativa es TaskJuggler. Aunque fue creado para KDE, este programa puede ser usado perfectamente fuera de ese entorno (así como Planner fuera de GNOME). Al igual que Planner, permite gestionar recursos, costes y tareas en un solo paquete. Aparte de los diagramas Gantt que genera Planner, también permite los diagramas PERT (no tan populares, pero también usados), y es capaz de exportar ficheros CSV (para usar con hojas de cálculo u otros programas) y XML. El mayor problema de TaskJuggler es su dificultad de uso, mayor que la de Planner. El primer handicap que se encuentran los usuarios noveles es que esta herramienta funciona analizando ficheros de texto en los que se definen las características de los proyectos. No está hecho “a imagen y semejanza” de MS Project, sino usando una filosofía propia (y según sus autores, mejor).
18
Número 66
Editor de propiedades del proyecto.
En las propiedades del proyecto podemos definir los “metadatos” del mismo: nombre, director, fecha de comienzo (que marcará también la fecha inicial en los diagramas de Gantt, obviamente), organización y el calendario que se usará por defecto. También tenemos una pestaña de definiciones personalizadas, “Custom”, los ficheros de Planner son XML, y en esta pestaña podemos añadir atributos o cabeceras al mismo, que luego podemos usar con otros
16-19 Iniciacion
7/4/06 13:38
Página 19
IMENDIO PLANNER
programas para generar informes o estadísticas a partir de los datos del proyecto.
USO DE PLANNER PARA CREAR UN PROYECTO Vamos a ilustrar el uso de Planner creando un proyecto de ejemplo. Suponemos que somos un embajador que quiere dar una cena para las autoridades diplomáticas de otros países. ¿Cómo organizamos este proyecto? Lo primero que deberíamos hacer es decidir, a grandes rasgos, cuáles serán las fases de nuestro proyecto. Aunque “fase inicial”, “fase intermedia” y “fase final” serían nombres válidos, no resultan demasiado descriptivos. Vamos a pensar, en cambio, en varias partes del proyecto que deben llevarse a cabo para que éste finalice con éxito. En nuestra supuesta cena, estas fases podrían ser: “Planear cena”, “Preparar cena”, “Servir cena” y “Conclusiones”. Por lo tanto, iríamos al editor de fases en el menú e introduciríamos estos nombres como fases. Con ellas tendríamos una idea de qué vamos a hacer, que es lo más importante en un proyecto. Es normal que cuando vaya avanzando tengamos que modificar su ámbito para incluir otros objetivos, pero solo ligeramente. Una buena forma de iniciar un proyecto es irse al componente de tareas (Tasks) de Planner e introducir allí las “tareas maestras”, las que van a englobar al resto de tareas necesarias. Aquí vamos a crear cuatro tareas, una con el nombre de cada fase, para aglutinar las demás. Pulsando en el botón “Insert task” se añadirá una nueva línea en la lista de tareas, cuyo nombre podremos editar pinchando dos veces en la columna Name, y cuyas características editamos pinchando dos veces encima del campo WBS o escogiendo Edit task en el menú contextual. No sabemos todavía qué subtareas habrá, pero tal como hemos diseñado este proyecto está claro que cada una de ellas depende de que la anterior se haya finalizado con éxito (por eso les hemos dado el nombre de las fases del proyecto). Por lo tanto, antes de seguir, deberíamos marcar en cada tarea su predecesora, bien mediante el diagrama de Gantt, como dijimos antes, o directamente en el editor de tareas. Una vez que tengamos las tareas principales, es hora de subdividirlas. Tenemos que refinar cada una de ellas para identificar los trabajos “simples” (es decir, no divisibles) que serán desempeñados para llevarlas a cabo. Para ello usaremos la opción de “insertar subtarea” (Insert subtask). Nuestra tarea inicial, “Planear cena”, podría estar divi-
Diagrama de Gantt de un proyecto ejemplo.
dida en “Buscar chef”, “Buscar camareros”, “Buscar músicos” e “Imprimir invitaciones”. Podríamos hacer que esta última tuviera como predecesoras a todas las demás, puesto que no deberíamos imprimir las invitaciones hasta que estuviéramos seguros de que vamos a tener al personal necesario. El resto de las tareas se dividirían de forma parecida. Hecho esto, lo siguiente que tendríamos que hacer es listar nuestros recursos. Ahora ya sabemos qué queremos hacer y cómo, solo nos faltan los medios para ello. Iríamos al componente de recursos (Resources) e introduciríamos los recursos a nuestro alcance. En nuestra hipotética cena, éstos podrían ser tanto la comida necesaria como los trabajadores que se encargarían de todo. Así, nuestros recursos podrían ser: Señor Embajador (como director y planificador de la cena) Comida Chef Camareros Músicos (para dar ambiente) Imprenta (para enviar las invitaciones) Personal de limpieza (para después de la cena) Para la primera tarea maestra, “Planear cena”, podríamos asignar el “recurso” de “Señor Embajador”, representando el tiempo que el embajador tiene que pasarse planeando la cena y buscando al personal necesario. Hilando más fino, y si fuera una cena realmente grande y complicada, podríamos añadir más personal de dirección, haciendo que cada subtarea correspondiera a uno de ellos. Pero para nuestro ejemplo, vamos a suponer que el Señor Embajador es un hombre muy capaz y se basta él solito. Una vez que tenemos los recursos y que los hemos asignado a las tareas, viene la parte más complicada de la planificación: la asignación del tiempo. Es aquí donde la experiencia ayuda mucho. Podemos asignar el tiempo desde el diagrama de Gantt, estirando o encogiendo las barras para cada tarea según veamos conveniente, o acu-
Número 66
ZONA DE INICIACIÓN
diendo a la lista de tareas e introduciendo ahí el tiempo que creemos que puede requerir cada una. Conviene calcular estos tiempos con holgura, porque por mucho que planifiquemos siempre habrá algún imprevisto que complique nuestro proyecto. Con todo esto tendríamos una planificación preliminar del proyecto, y una idea de cuánto tiempo (y dinero) necesitaríamos invertir. A medida que se fuera desarrollando, iríamos modificando los datos para reflejar la realidad, quizás añadiendo o quitando tareas y corrigiendo tiempos. Éste es el verdadero trabajo del gestor de proyectos, y hace falta algo más que un buen programa para hacerlo bien.
CONCLUSIONES Dudamos que Planner vaya a ser usado por un director de proyectos con cientos de empleados a su servicio, y tareas complejas con muchos agentes externos. Hay software comercial de larga trayectoria desarrollado para este trabajo, y además existe el inconveniente de que muchos directores de proyecto no son el tipo de usuario que trabajaría con Linux en primer lugar. Por otro lado, Planner funciona bien. No encontramos ningún bug al ejecutarlo, y lo único que echamos en falta es una buena documentación (problema habitual en los programas open source). Los conceptos que maneja son sencillos de entender, y alguien que no supiera nada de gestión de proyectos podría usarlo de forma eficiente en unas pocas horas. Siendo un émulo de MS Project, los que vinieran desde este programa lo tendrían más fácil todavía. Todo esto hace que Planner sea una buena opción para directores de proyectos de pequeño y mediano tamaño, o incluso para gestionar proyectos personales. El uso de un programa como éste puede ayudar a realizar proyectos de forma ordenada a esos desorganizados incorregibles entre los que se incluyen los autores de este artículo. ■
Referencias Página web de Imendio Planner: http://developer.imendio.com/ wiki/Planner Artículo sobre Planner en Newsforge: http://software.newsforge.com/ software/05/08/09/2111251.shtml Entrada en Wikipedia sobre los diagramas de Gantt: http://en.wikipedia.org/wiki/Gantt
19
20-23 Debian
7/4/06 12:33
ZONA DEBIAN
Página 20
SERVIDOR DE CORREO
Servidor de correo y herramientas de filtrado La instalación de un servidor de correo va a permitir a una empresa o usuario utilizar un dominio propio como origen y destino de los correos electrónicos, pudiendo complementarlo con herramientas para filtrar los mensajes no deseados o que contengan código dañino.
Un servidor de correo tiene el cometido de enviar y recibir los mensajes enviados desde un equipo a otro servidor o recibir los que se le envíen desde servidores externos, permitiendo utilizar un nombre de dominio propio junto a todas las cuentas de correos que creemos. En la transferencia de correos electrónicos participan dos tipos de aplicaciones: MTA (Mail Transport Agent), como Sendmail o qmail, que son los encargados de transportar los mensajes entre los servidores origen y destino, no siendo necesaria la intervención directa de un usuario para su funcionamiento, y MUA (Mail User Agent), como Thunderbird o KMail, los más comunes para los usuarios, ya que son los que muestran en pantalla el contenido de los correos electrónicos y permiten redactar nuevos mensajes o clasificarlos en carpetas. Junto a todo servidor de correo es habitual instalar un conjunto de herramientas que principalmente permiten filtrar los correos entrantes, evitando así la recepción de mensajes de publicidad desde servidores concretos y aquellos correos que puedan ser dañinos, al poseer virus o archivos sospechosos.
SERVIDOR DE CORREO ELECTRÓNICO El número de servidores de correo disponibles para Linux es muy elevado, y aunque en relación a la seguridad y la sencillez de uso destacan otros como qmail, el más completo es Sendmail, gracias a que existe una versión para la mayoría de los sistemas operativos. Se calcula que es el encargado del
20
transporte de aproximadamente el 70 por ciento del número total de correos de Internet, posee una configuración compleja pero adaptable a cualquier entorno, y corrige en un corto periodo de tiempo todos los errores de seguridad que se han localizado.
JORGE LÓPEZ jlopez@iberprensa.com
que también instala los paquetes necesarios para cubrir las dependencias y elimina cualquier otro servidor de correo existente en el sistema. Finalizada la descarga, podemos comprobar su correcta instalación, ejecutando:
sendmail -d0.1 -bt
■ SENDMAIL
Sendmail permite una completa personalización de su funcionamiento, incluyendo múltiples características, entre las que es posible destacar: Uso de colas de correo para almacenar aquellos mensajes que no es posible enviar en el momento. Posibilidad de utilizar alias para nombrar a los distintos usuarios y crear grupos de listas de correo. Funcionamiento como MUA, aunque sin poseer un interfaz de usuario. Si nos encontramos en una red, la instalación de Sendmail se puede realizar independientemente de los sistemas operativos utilizados en los restantes equipos, ya que solo debe realizar las tareas de transporte y filtrado. Esta última función es de vital importancia cuando se cuenta con equipos Windows a los que puedan afectarles virus.
donde -d0.1 indica el grado de depuración que queremos obtener y -bt se utiliza para el modo test.
Comprobación del estado de Sendmail. ■ CONFIGURACIÓN
Al finalizar la instalación se realiza automáticamente una configuración básica y se inicia el servidor, proceso que podemos repetir en cualquier momento ejecutando como root:
sendmailconfig Además, es necesario definir correctamente el nombre del equipo en el sistema, para lo que ejecutamos:
hostname equipo.servidor Sendmail.
Por ejemplo:
■ INSTALACIÓN
hostname correo.red
Como con cualquier otro programa de Debian, la instalación la realizamos mediante la herramienta apt-get, ejecutando:
apt-get install sendmail
Número 66
para un servidor de una empresa, y en el archivo /etc/hosts añadimos:
direcciónIP nombre
20-23 Debian
7/4/06 12:33
Página 21
SERVIDOR DE CORREO
El ejemplo anterior para la dirección IP 192.168.1.33 quedaría como:
192.168.1.33 correo.red pudiendo ser la IP pública o privada, dependiendo de nuestra conexión a Internet. La configuración de Sendmail se realiza a través del archivo /etc/mail/sendmail.cf, pero como podemos comprobar al abrirlo con cualquier editor de texto, su sintaxis es excesivamente compleja. Por ello, se ha creado el archivo /etc/mail/sendmail.mc, que sirve para realizar la configuración y convertirlo a sendmail.cf posteriormente mediante la herramienta m4. La configuración de sendmail.mc se encuentra divida en múltiples líneas que modifican los atributos del servidor. Entre las mostradas, las más importantes son: VERSIONID: identifica el archivo de configuración, siendo habitual mostrar la versión de Sendmail y una línea con comentarios adicionales del administrador. OSTYPE: sistema operativo en el que se va a encontrar Sendmail. Gracias a esta opción es posible generar archivos de configuración para sistemas distintos a aquel en el que nos encontremos. DOMAIN: nombre del dominio asignado al equipo que contiene el servidor. Podemos utilizar el valor general para los usos más comunes. MASQUERADE_AS: permite asignar un nombre de dominio distinto a los correos que enviemos. FEATURE: parámetro destinado a añadir funciones al servidor. DAEMON_OPTIONS: define las opciones generales del demonio de conexión, como el modo de funcionamiento, su nombre y la dirección local del equipo. MAILER: define los agentes de transporte utilizados por Sendmail. Los valores habituales son local y smtp. define: asigna valores a las variables que se definan. Está destinado a controlar parámetros como los tiempos de conexión. include: añade archivos externos a la configuración. Las líneas que comienzan con dnl indican que están comentadas, por lo que no van a ser tenidas en cuenta para la configuración. Al finalizar la configuración debemos crear un nuevo archivo sendmail.cf ejecutando:
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf o mediante el ya comentado sendmailconfig.
Para finalizar, creamos mediante la herramienta adduser cada uno de los usuarios que van a disponer de correo electrónico en el equipo, quedando su nombre en la red de ejemplo como usuario@correo.red. Otros archivos disponibles junto a Sendmail son: /etc/mail/aliases: define sinónimos de nombres para asignar a un mismo usuario. /etc/mail/access: selecciona los usuarios y equipos que van a poder utilizar el servidor de correo. Después de modificarlo es necesario crear un archivo access.db que es el que va a leer Sendmail, ejecutando:
ZONA DEBIAN
También podemos enviar un archivo ejecutando:
cat archivo | sendmail alfonso@correo.red o indicar una cabecera con:
sendmail -t alfonso@correo.red
makemap hash /etc/mail/access < /etc/mail/access En este archivo indicamos los usuarios de los que se acepta el envío de correos mediante el parámetro RELAY o de los que se deniega con REJECT. /var/spool/mqueue: contiene la cola de correo. /var/log/mail.log: estado del servidor con entradas ordenadas por tiempo donde se muestran cada uno de los cambios realizados. Al finalizar la configuración, es necesario reiniciar el servidor ejecutando:
/etc/init.d/sendmail ■ FUNCIONAMIENTO
El uso de Sendmail es externo a los usuarios, siendo necesaria únicamente su configuración por parte de los administradores cuando exista un problema en el servicio o para implementar nuevas características. Si en algún momento no existe conexión y desde cualquier equipo se intenta enviar un correo, automáticamente se almacena en cola, quedando en espera hasta que ejecutemos:
sendmail -q Una última función, menos habitual gracias a la existencia de programas más sencillos de utilizar, es el envío de correos directamente a través de la línea de comandos. Su sintaxis principal es:
sendmail [opciones] usuario Por ejemplo, para enviar un correo electrónico a alfonso@correo.red utilizaríamos el comando:
sendmail alfonso@correo.red
Número 66
Archivo de estado de Sendmail.
FILTRADO DE CORREOS A las numerosas ventajas ofrecidas por el uso del correo electrónico se le ha sumado con el paso de los años su mayor problema, la publicidad no deseada. Ésta alcanza niveles elevados en aquellas direcciones muy extendidas, ya sea por facilitarlas a terceras personas o por la inscripción en foros. La solución para este problema reside en el uso de filtros, ya sean básicos como los aportados por las aplicaciones de lectura de correos, o complejos, gracias a herramientas específicas. ■ SPAMASSASSIN
De todas las herramientas de control de correos disponibles, la más destacada es SpamAssassin, gracias a sus múltiples funciones entre las que destacan el uso de filtros bayesianos para realizar los filtrados a través de los correos no deseados ya conocidos. Algunas de las características ofrecidas por SpamAssassin son: Filtrado de correo personalizable, pudiendo detectar desde remitentes o palabras contenidas hasta el uso de caracteres concretos. Bloqueo mediante direcciones DNS para eliminar aquellos mensajes que varían de remitentes aleatoriamente. Uso de bases de datos con servidores y modelos de mensajes utilizados en correos spam para incorporarlos automáticamente. Al ser una herramienta independiente del servidor de correo, podemos realizar su instalación ejecutando:
21
20-23 Debian
7/4/06 12:33
ZONA DEBIAN
Página 22
SERVIDOR DE CORREO
apt-get install spamassassin donde se muestra el mensaje que el demonio está deshabilitado, por lo que abrimos el archivo /etc/default/spamassassin, modificamos la línea ENABLED=0 por ENABLED=1 y reiniciamos el servicio:
INPUT_MAIL_FILTER(`spamassassin’, `S=local:/var/run/sendmail /spamass.sock, F=, T=S:4m;R=4m;E:10m’)dnl al archivo /etc/mail/sendmail.mc, realizando de nuevo el proceso de activación del servidor de correo.
/etc/init.d/spamassassin restart
CONTROL DE VIRUS
Aunque si no activamos el demonio de SpamAssassin es posible filtrar desde los clientes de correo, su uso permite acelerar el análisis de los mensajes. Todos los mensajes que se filtren muestran una cabecera de información de SpamAssassin junto al contenido del correo original.
La instalación de un antivirus en el servidor de correo es de vital importancia para evitar la entrada de código dañino, especialmente cuando existe al menos un ordenador con sistema operativo Windows que utiliza un programa de descarga de correo con graves vulnerabilidades, como Outlook.
■ CONFIGURACIÓN
■ CLAMAV
En el archivo /etc/spamassassin/local.cf podemos personalizar los filtrados a realizar mediante el uso de distintos parámetros: whitelist_from dirección: permite acceder a todos los mensajes recibidos de la dirección o dominio que se indique, de utilidad cuando se detectan como no deseado correos que sí queremos recibir. score regla valor: SpamAssassin cataloga los correos mediante un conjunto de reglas que si se cumplen, asignan un número determinados de puntos, pudiendo definir cualquier contenido de un correo, como por ejemplo:
El antivirus libre más completo disponible para Debian es ClamAV, que cuenta con versiones para múltiples sistemas operativos y soporte de actualizaciones periódicas mediante los repositorios oficiales de la distribución. Gracias a ClamAV va a ser posible: Actualizar tanto automática como manualmente las nuevas definiciones de virus. Realizar análisis periódicos de virus en equipos con sistemas Linux y Windows. Tratar los mensajes de correo infectados como queramos, ya sea ignorándolos, moviéndolos a la carpeta que escojamos o eliminándolos sin consultar. Para realizar su instalación utilizamos el comando:
score UPPERCASE_20_100
2
que otorga dos puntos a aquellos mensajes cuyo texto posea entre un 20 y un 100 por cien de letras mayúsculas. El número de posibilidades de configuración permite personalizar completamente los filtros. required_hits valor: valor es el número de puntos mediante los cuales se considera un mensaje como no deseado. Podemos ver una lista de todas las opciones disponibles con el comando:
man Mail::SpamAssassin::Conf
■ INTEGRACIÓN EN SENDMAIL
Podemos integrar fácilmente SpamAssassin junto a Sendmail mediante la instalación de un único paquete ejecutando:
apt-get install spamass-milter
■ FUNCIONAMIENTO
Adicionalmente a su configuración como filtro de correo, ClamAV puede funcionar como cualquier otro antivirus a través de comandos en la consola de texto:
clamscan ruta
apt-get install clamav
escanea u archivo o directorio, o
clamscan -r directorio para comprobar recursivamente el contenido completo del directorio. Para realizar las actualizaciones podemos instalar el paquete clamav-freshclam, que comprueba automáticamente las nuevas definiciones de virus disponibles en Internet y las descarga e instala mediante el uso de un demonio propio. ■ INTEGRACIÓN EN SENDMAIL
Al igual que con el filtro de SpamAssassin, para integrar el antivirus junto a Sendmail descargamos el paquete:
apt-get install clamav-milter
Posibles problemas Las herramientas de filtrado no suelen producir errores de manera habitual, centrándose éstos en el funcionamiento del servidor de correo: Se muestra el mensaje “My qualified host name unknown”: el nombre asignado al equipo no es válido. Es necesario que se encuentre indicado junto a su dirección IP en el archivo /etc/hosts y que posea una sintaxis válida, indicando el nombre completo del dominio, como por ejemplo servidorCorreo.com. No es posible enviar mensajes: las configuraciones predeterminadas de Sendmail no permiten el envío desde ordenadores externos al propio equipo que tiene el servidor, por lo que debemos añadir una línea junto al valor RELAY para cada uno de los restantes equipos. Los mensajes no se envían correctamente: si al mandar un correo electrónico el destinatario no lo recibe, existe un error en la configuración de Sendmail. Podemos verificarlo en el archivo /var/log/mail.log, donde deben mostrarse tanto el emisor como el receptor junto a las líneas Sent (OK), indicando los servidores utilizados en la transferencia.
y añadiendo la línea:
22
ClamAV.
Número 66
20-23 Debian
7/4/06 12:34
Página 23
SERVIDOR DE CORREO
y modificamos el archivo sendmail.mc para activar el nuevo filtro. ■ INTEGRACIÓN CON OTRAS
APLICACIONES
La mayoría de los clientes de correo electrónico permiten utilizar ClamAV para escanear los correos recibidos, siendo los pasos necesarios para los más utilizados: KMail: presionamos en Herramientas>Asistente anti-virus, donde se muestran los antivirus disponibles, entre los que elegimos el indicado por Clam Anti-Virus, presionamos en “Adelante”, activamos Comprobar los mensajes utilizando las herramientas antivirus y Mover los mensajes detectados como víricos a la carpeta seleccionada eligiendo una existente para almacenar los correos infectados. Para terminar, presionamos en “Finalizar”. Thunderbird: al contrario que en Kmail, no está disponible una opción específica para comprobar los correos, por lo que debemos instalar el demonio del antivirus ejecutando:
apt-get install clamav-daemon que automáticamente comprobará los mensajes recibidos y eliminará los virus que encuentre. Este mismo método puede utilizarse para cualquier otro lector de correos electrónicos que no incluya la correspondiente opción. ■
ZONA DEBIAN
Actualidad Debian Las últimas novedades en la comunidad Debian destacan por el avance en la cada vez más frecuente arquitectura AMD64 y por la aparición de una nueva beta del futuro instalador de Etch: Cambios en los nombres de núcleos Con el objetivo de conseguir un estándar, la asignación de nombres de los núcleos ha sido modificada, por lo que la cabecera se ha transformado de kernel-image- a linux-image-. Adicionalmente, el grupo de Debian que trabaja en el núcleo ha informado de numerosas novedades relacionadas con el soporte para múltiples procesadores y el soporte de Xen para las versiones 2.6 del mismo. Estado de la versión AMD64 La implantación de la arquitectura AMD64 en Debian prosigue su lento pero continuo avance. El último cambio es el envío a los servidores de los paquetes esenciales, a los que continuarán las restantes aplicaciones, bloqueadas hasta que no finalice el proceso. Debian/kFreeBSD para AMD64 Se ha anunciado la aparición, actualmente en estado experimental, de la distribución Debian/kFreeBSD para la arquitectura AMD64. Para poder ejecutarse requiere de una instalación previa de FreeBSD 6.0 y debe realizarse desde un entorno de trabajo chroot. Reubicación del servidor de paquetes El servidor que almacena los paquetes, http://packages.debian.org, ha sido actualizado, gracias a la aportación de la empresa de hosting en la que se encuentra, con un nuevo equipo Opteron de doble núcleo destinado exclusivamente a usuarios y desarrolladores. Instalador de Etch Beta 2 Se ha liberado una nueva beta del futuro programa de instalación de la próxima versión estable de Debian, Etch, con múltiples errores corregidos. Al no encontrarse aún de forma oficial en la rama testing, debe descargarse por separado. Existen versiones disponibles para CD y DVD en la página http://www.debian.org/devel/debian-installer. Formato utilizado en la documentación Los archivos que contienen la documentación referente al uso de programas, configuración de servidores y Debian, son una de las prioridades de todos los usuarios, por lo que se está debatiendo cuál es el formato idóneo para mostrarlo. Entre los más comentados como PDF, texto plano o PS, destaca HTML, ya que es posible realizar fácilmente búsquedas y existen múltiples visores tanto para el servidor gráfico como para la consola de texto.
Uso de ClamAV en KMail.
En el próximo número revisaremos las numerosas novedades acontecidas en Sid, como el servidor gráfico X.org, versiones del núcleo 2.16 y los escritorios KDE 3.5 y GNOME 2.12, y realizaremos el proceso completo de actualización desde un equipo con Debian Sarge, analizando todos los posibles problemas que vamos a encontrar en el proceso.
Eliminación de debmake El futuro lanzamiento de Etch va a producir la eliminación del paquete debmake de los repositorios testing y unstable, por lo que los desarrolladores de los casi sesenta paquetes que aún utilizan esta herramienta de empaquetado deben migrar a la herramienta debhelper. Ésta realiza las mismas funciones que debmake más otras adicionales. Nuevas aplicaciones Después de solucionar diversos problemas relacionados con la seguridad de los servidores de paquetes y migrar a un nuevo equipo, se han incluido numerosas aplicaciones: CheckGmail, comprueba los correos de Gmail; DSPAM, filtro personalizable de correos no deseados; gnudoq, generador de Sudokus con soporte de impresión; Moto4Lin, programa para interactuar con móviles Motorola; Griffith, catalogador de películas; Morse, programa para aprender código morse; mpt-status, muestra el estado de los dispositivos RAID conectados al equipo; open-cobol, compilador del lenguaje COBOL; Optipng, optimizador de archivos PNG; Pyronman, herramienta de configuración de cortafuegos para redes extensas; Synfig, animación en 2D mediante vectores; WengoPhone, aplicación VozIP; y YICS, cliente de ajedrez Yahoo para utilizar junto a interfaces FICS.
Número 66
23
24-27 Reportaje (Mono)
7/4/06 12:35
Página 24
El Proyecto Mono ono es uno de los proyectos libres más populares y, a la vez, uno de los más controvertidos. En las siguientes páginas haremos un repaso a su historia para después analizar su situación actual. Terminaremos con una visión práctica de esta plataforma de desarrollo, veremos cómo instalar Mono en nuestra maquina, y compilaremos y ejecutaremos un par de ejemplos. Durante años, varios departamentos de Microsoft estuvieron trabajando en mejorar las diferentes tecnologías que distribuía la compañía. En particular, el modelo COM (Component Object Model) y los servicios orientados a la Web eran los que mayor atención estaban recibiendo. En un determinado momento, Microsoft decide terminar toda relación con Sun tras un largo proceso legal. Entonces, inicia por su cuenta la creación de una plataforma de desarrollo que sirviera como alternativa a Java, y que unificara el trabajo que se había venido realizando de forma relativamente independiente. Es así como nace .NET, un modelo de desarrollo similar al planteado por Java, con diferentes mejoras, orientado al sistema operativo Windows y a las tecnologías web. Sin embargo, a diferencia de lo que Microsoft había hecho en otras ocasiones, decide abrir buena parte de las especificaciones de esta iniciativa al público, y así incentivar la participación de otras empresas. Desde la comunidad open source se habían seguido con bastante atención todas las noticias referentes a esta nueva idea de Microsoft. En particular, Miguel de Icaza, que en el año 1997 había sido uno de los creadores del escritorio libre GNOME y que dos años más tarde cofundaría la empresa Helix Code (después Ximian, posteriormente adquirida por Novell), decidió poner en marcha en 2001 el proyecto Mono. Su objetivo era crear una implementación libre y multiplataforma de .NET. El propósito inicial de Icaza era interno: mejorar la productividad de los desarrolladores de Helix Code. Sin embargo, y como es lógico, desde el primer momento Mono recibió mucha atención desde la comunidad open source.
azugaldia@iberprensa.com
que, si bien aún está incompleto, es válido como entorno de desarrollo de producción.
M
24
ANTONIO ZUGALDÍA
¿CÓMO FUNCIONA MONO?
Miguel de Icaza, fundador del proyecto.
De forma ideal, gracias a Mono, todo el software desarrollado en Windows con el .NET de Microsoft funcionaría sin modificación en GNU/Linux (y demás plataformas en las que Mono estuviera disponible), y viceversa, todo el software programado con Mono funcionaría perfectamente en Windows con el .NET de Microsoft. La trayectoria del proyecto Mono (http://www.mono-project.com) no ha estado exenta de dificultades durante todos estos años. Además de tener que implementar prácticamente desde cero una plataforma de desarrollo de esta complejidad, Mono ha sido muy discutido por parte de la propia comunidad open source, que piensa que puede ser una trampa de Microsoft (que tiene patentes de software relacionadas) para frenar el desarrollo de software verdaderamente libre. De hecho, empresas como Red Hat han sido muy cautas a la hora de incluir componentes de Mono en sus distribuciones. Fedora Core ha esperado cinco versiones hasta decidirse a incluirlo. Pese a estos problemas, el proyecto ha estado activo en todo momento, cuenta con el respaldo de diferentes empresas y de una amplia comunidad de desarrolladores y usuarios. Microsoft publicó la versión 1.0 de .NET en el año 2002, y la 2.0 a finales de 2005. Mono alcanzó su versión 1.0 en el año 2004, y a lo largo de este año 2006 se espera la publicación de la 1.2 que, en líneas generales, tendrá características similares a la 2.0 de Microsoft. Por todo esto, se puede decir que Mono es ya un proyecto maduro
Número 66
En la figura inferior podemos ver esquemáticamente la esencia de la arquitectura de Mono. Sobre cada sistema operativo compatible se construye una capa intermedia que se denomina entorno de ejecución de lenguaje común (CLR, Common Language Runtime) o, simplemente, “entorno de ejecución”. Este CLR es el encargado de ejecutar todas las aplicaciones implementadas con .NET. Independientemente del lenguaje de programación con que fueran originalmente programadas, el compilador se ocupa de traducir a una infraestructura de lenguaje común (CLI, Common Language Infraestructure) que es la que entiende el entorno de ejecución.
Arquitectura de capas de Mono.
Todos los lenguajes compatibles con .NET comparten una librería de clases base (BCL, Base Class Library) que proporciona el núcleo de la funcionalidad. Lejos de ser una librería minimalista, su contenido es razonablemente vasto. Incluye funciones matemáticas, de acceso a ficheros, soporte de servicios web, manejo de XML, serialización por diversos métodos, bases de datos y programación orientada al escritorio, por citar solo algunas. Tanto .NET como Mono son plataformas “agnósticas” de lenguaje, esto es, para desarrollar con ellas no es necesario que el programador se ate a un único lenguaje de programación. Por el contrario, la traducción que realiza el compilador a código intermedio permite la utilización de una amplia gama de lenguajes. Sin embargo, es igualmente cierto que .NET define un nuevo lenguaje “marco” llamado C#, extraordinariamente parecido a Java, que se supone es el modo natural de desarrollar en esta plataforma. Tanto CLI co-
24-27 Reportaje (Mono)
7/4/06 12:35
Página 25
EL PROYECTO MONO
mo C# son especificaciones que Microsoft ha publicado a través de la asociación de estandarización ECMA Internacional. Mono incluye su propio compilador de C#, “mcs”, desarrollado también en C#. Entre los demás lenguajes soportados por .NET cabe destacar Visual Basic, C++, JScript, Perl, PHP, Python o el propio Java (en Mono mediante IKVM). Y otros más exóticos como Nemerle y Boo. En realidad, cualquier lenguaje que se acomode a las especificaciones definidas por CLI podrá ser interpretado por el entorno de ejecución. Mono, además de implementar los diferentes elementos de .NET, ha ido añadiendo otros componentes propios. Es el caso de GTK#, el motor de escritorio recomendado (veremos un ejemplo más adelante). También se incluyen adaptaciones de las librerías gráficas Cairo y OpenGL, la librería #ZipLib para el manejo de archivos comprimidos, y la pareja mod_mono/XSP, para utilizar ASP.NET con y sin Apache.
¿QUÉ APLICACIONES FUNCIONAN CON MONO? Desde la aparición de Mono, el número de aplicaciones desarrolladas con esta plataforma se ha ido incrementando rápidamente. Repasemos algunas de las más conocidas.
deja de ser una herramienta avanzada y útil para desarrollar aplicaciones en GNU/Linux. Además de MonoDevelop, si vamos a desarrollar aplicaciones de escritorio nos interesará conocer Glade, un clásico en GTK/GNOME que aunque no está desarrollado en C#, sus archivos XML sí están soportado por GTK# y, por tanto, por Mono. Una magnífica alternativa a Glade es Gazpacho (http://gazpacho.sicem.biz), cuyo desarrollo fue iniciado por la empresa española Sicem, y que utiliza Python como lenguaje primario. Por otro lado, desde Mono se está trabajando en un nuevo Glade. Se llamará Stetic y está siendo reescrito por completo utilizando C#. Aún no hay fecha prevista de publicación. La documentación de desarrollo la podemos consultar en la web (http://www. go-mono.com/docs) o con la aplicación monodoc, que forma parte de la distribución estándar de Mono. Dentro de este programa podemos encontrar la referencia de la librería de clases, de GTK# e incluso la propia especificación de C#. De cara al usuario han aparecido unas cuantas aplicaciones que poco a poco comienzan a integrarse con las diferentes distribuciones. Algunas, de hecho, se están convirtiendo en referentes dentro de su categoría. A modo ilustrativo, listamos diez de ellas: Banshee (http://www.banshee-project. org), reproductor y administrador de música estilo iTunes, compatible con los iPod.
MonoDevelop, el Entorno de Desarrollo Integrado.
Desde el punto de vista del desarrollador hay dos aplicaciones especialmente interesantes. Dado que al fin y al cabo Mono pretende potenciar el desarrollo rápido de aplicaciones, una de las primeras en aparecer fue MonoDevelop (http://www.monodevelop.com), un Entorno de Desarrollo Integrado con una amplia gama de características que facilitan el día a día del programador. Posee coloreo de sintaxis, autocompleción de código, soporte interno de clases y proyectos (permite manejar proyectos de Visual Studio), incluye ayuda integrada y es extensible mediante plugins. Su capacidad para depurar o diseñar visualmente aplicaciones gráficas existe, pero es aún relativamente limitada. MonoDevelop no tiene de ninguna manera la potencia de Visual Studio, pero no
Banshee, reproductor al estilo iTunes.
Beagle (http://www.beaglewiki.org), un buscador para el escritorio tipo Google Desktop o Apple Spotlight. Blam (http://developer.imendio.com/ wiki/Blam), un lector de fuentes RSS. CD Collect (http://cdcollect.sourceforge. net), catalogador de CDs. F-Spot (http://www.f-spot.org), un brillante administrador de fotografías e imágenes. iFolder (http://www.ifolder.com), herramienta desarrollada por Novell para compartir archivos en ambientes corporativos.
Número 66
REPORTAJE
F-Spot, de Larry Ewing, gestor de fotografías.
Muine (http://www.muine-player.org), reproductor musical integrado con Amazon. Second Life (http://www.secondlife. com), creador de mundos virtuales que utiliza Mono internamente para gestionar sus descriptores. SkyNET (http://sky-net.sourceforge.net), herramienta de visualización de cartas astronómicas. Tomboy (http://www.beatniksoftware. com/tomboy), notas para el escritorio que pueden funcionar con filosofía wiki.
EL ESTADO DE LA CUESTIÓN Al cierre de estas líneas, la última versión de Mono es la 1.1.13, siendo a la vez la rama de producción y de desarrollo. Es decir, Mono ha animado a sus usuarios de la rama 1.0.x (estable) a moverse a la 1.1.x (inestable) puesto que la publicación de una versión 1.2 es inminente, y la actual 1.1.x es suficientemente fiable como para hacerse cargo de los desarrollos. De hecho, parece ser que solo el retraso de la parte de Windows.Forms (programación de escritorio nativa de Windows) hace que no se encuentre disponible ya la versión 1.2. El problema es que originalmente este módulo fue desarrollado utilizando Wine (una implementación libre de algunas librerías de Windows). Esta apuesta inicial ha demostrado ser más un parche temporal que una solución definitiva, lo que ha provocado que se tenga que rehacer todo el aparato Windows.Forms. Además, incluso cuando este proceso termine, aún quedará bastante trabajo por delante, puesto que la versión de Windows.Forms que distribuirá Mono 1.2 no será compatible con la nueva versión 2.0 de .NET, sino con la antigua 1.1. Esta situación es preocupante para el desarrollador que desea interoperabilidad completa con Windows. Sin esta librería las aplicaciones que se desarrollan usualmente con Visual Studio no funcionan en absoluto en GNU/Linux. Sin embargo, y a pesar de este contratiempo, el apartado gráfico de Mono ha me-
25
24-27 Reportaje (Mono)
REPORTAJE
7/4/06 12:35
EL PROYECTO MONO
jorado notablemente en las últimas versiones, ya que ha comenzado a utilizar extensamente tanto Cairo como OpenGL. De hecho, la nueva implementación de Windows.Forms descansa sobre GDI+ y ésta, a su vez, sobre Cairo. De la misma manera, GTK+ ha incluido Cairo en sus últimas versiones y, por tanto, así lo hará también GTK#. Precisamente, gracias a la existencia de GTK# las dificultades que plantea Windows.Forms no son tan preocupantes, puesto que esta librería proporciona fundamentalmente las mismas características. A saber, GTK# permite la programación de aplicaciones multiplataforma orientadas al escritorio. También ofrece la posibilidad de manejar widgets complejos, así como crear otros nuevos. Y no solo es libre, sino que además soporta la descripción de interfaces mediante XML y el desarrollo de aplicaciones específicas para el escritorio GNOME. En otro orden de cosas, una de las cuestiones más importantes a la que Mono ha tenido que enfrentarse es la nueva versión 2.0 del framework publicado a finales del año 2005. En este sentido, cabe alegrarse, ya que en el momento que Microsoft anunció las novedades de esta versión, Mono comenzó a trabajar para incluirlas. En lo que se refiere al compilador de C#, el compilador “mcs” implementa todas estas características a excepción de los tipos genéricos, cuestión que sí soporta el nuevo “gmcs”. Como ejemplo, veremos el soporte de métodos anónimos en uno de los programas que estudiaremos a continuación. En lo que se refiere a los cambios introducidos por la 2.0 en otros componentes de la plataforma (como ASP.NET y ADO.NET), la funcionalidad que implementen en la versión 1.2 de Mono dependerá de la fecha de finalización del trabajo de Windows.Forms.
UNA VISIÓN PRÁCTICA DE MONO Probablemente la manera más sencilla de probar Mono es mediante “Mono Live”, una distribución de GNU/Linux basada en Ubuntu que tiene todo lo necesario para echar un vistazo tanto a la plataforma de desarrollo, como a alguna de las aplicaciones más conocidas. Para conseguir Mono Live solo tenemos que descargar la imagen de CD desde su página web, grabarla en un CD-ROM y arrancar el ordenador con ella. Tenemos toda la información en http://www.mono-live.com. ■ INSTALAR MONO
Sin embargo, si queremos utilizar Mono de una manera más estable, lo mejor será que lo instalemos en nuestro sistema operativo. El punto de partida es la página http://www. mono-project.com/Downloads.
26
Página 26
Si estamos utilizando GNU/Linux lo primero que cabe preguntarse es si nuestra distribución posee paquetes preparados de Mono. De hecho, las cuatro distribuciones más utilizadas de acuerdo con DistroWatch (Ubuntu, SUSE, Mandriva y Fedora Core) ya incluyen Mono en sus repositorios. Por tanto, solo tenemos que utilizar la herramienta de instalación de software que tenga nuestra distribución e instalar los paquetes correspondientes. Para ejecutar aplicaciones solo necesitamos el entorno de ejecución (mono). Para desarrollar software necesitaremos además el compilador (mcs/gmcs), y nos serán de utilidad el IDE y la documentación (monodevelop y monodoc). Y si queremos utilizar Windows.Forms no debemos olvidar instalar GDI+ (libgdiplus). Si esto no funciona en nuestra distribución, en la página anterior podemos encontrar los archivos necesarios para instalar Mono en cualquier GNU/Linux. Además de paquetes precompilados para algunas versiones de SUSE y Red Hat (y Fedora Core), tenemos un instalador genérico que debería funcionar con cualquier distribución, solo tenemos que descargarlo y ejecutarlo como haríamos con cualquier otro programa. Como último recurso siempre podemos descargar las fuentes y compilarlas nosotros mismos. Sin embargo, no es la opción más recomendable (aunque hay circunstancias en las que es la única posibilidad, por ejemplo si queremos colaborar con el desarrollo de la propia plataforma). También en la página de Mono podremos encontrar paquetes para máquinas de 64 bits.
“HOLA MUNDO” Para terminar, y aprovechando que anteriormente hemos explicado cómo instalar Mono, vamos a ver dos ejemplos típicos que muestran de manera sencilla la programación en esta plataforma. En primer lugar veremos el “Hola Mundo” en modo texto, el programa con el que se comienza cuando se aprende cualquier lenguaje de programación. Después extenderemos el ejemplo para convertirlo en una aplicación de GNOME. ■ ESTRUCTURA BÁSICA DE UN
lenguajes, C# es bastante abstracto cuando se refiere a librerías del sistema. Mientras que en C, por ejemplo, se referencian directamente ficheros del disco (#include <stdio.h>), C# deja esa tarea al entorno de ejecución. Así, aunque en GNU/Linux el espacio de nombres System puede corresponderse con el fichero /usr/lib/mono/2.0/System.dll, en Windows o Mac OS X el fichero probablemente reciba otro nombre. De esta manera se simplifica la tarea al programador, y se aumenta la portabilidad de la aplicación. La siguiente línea define la única clase que compone el programa. C#, como no podía ser de otro modo, sigue la filosofía de orientación a objetos. En este ejemplo, por sencillez, no instanciamos ninguna clase, y todos los métodos son estáticos. La clase HolaMundo contiene un único método llamado Main. Este método es especial, representa el “punto de entrada” de nuestro programa, el lugar en el que comienza la ejecución. Todo código de C#, salvo que sea una librería, debe definir un método de acceso público con este nombre. Finalmente el programa incluye una única orden dentro del método Main. Esta línea es la encargada de imprimir en pantalla el texto que hay entre comillas. Console es una clase contenida dentro del espacio de nombres System, y WriteLine es uno de sus métodos. Se trata de un método estático, de modo que no es necesario instanciar Console para utilizarlo. En general, cuando accedemos a un método debemos utilizar su dirección completa. En nuestro caso sería System.Console. WriteLine. Gracias a using System; podemos eliminar la primera parte. Espacios de nombres, clases y miembros se separan con puntos. Para compilar el programa simplemente tenemos que llamar al compilador de C#:
$ mcs -out:HolaMundo.exe -codepage:utf8 HolaMundo.cs Además del código fuente (HolaMundo.cs) el compilador recibe otras dos opciones. La primera (-out:) indica el nombre del ejecuta-
PROGRAMA
El código completo del “Hola Mundo” lo tenemos en el Listado 1. El propósito del programa es el de imprimir la cadena de texto que aparece después de Console.WriteLine. La primera línea (using System;) le dice al sistema que a lo largo del programa vamos a utilizar funcionalidades del “espacio de nombres” System. A diferencia de lo que ocurre en otros
Número 66
Listado 1. “Hola Mundo” en modo texto using System; class HolaMundo { static void Main () { Console.WriteLine ("¡Hola Mundo!"); } }
24-27 Reportaje (Mono)
7/4/06 12:35
Página 27
EL PROYECTO MONO
ble final. Nótese que por compatibilidad con Windows los ejecutables arrastran la extensión .EXE. La otra opción (-codepage:) le dice al compilador la codificación de nuestra fuente. Si no la incluimos puede ocurrir que la cadena de texto no se imprima correctamente, ya que la apertura de exclamación (“¡”) no forman parte de la tabla ASCII básica. También sería necesaria esta opción si incluimos alguna tilde. Finalmente, llamamos al entorno de ejecución:
$ mono HolaMundo.exe ¡Hola Mundo! ■ EN COLORES
Ahora complicaremos un poco el código para utilizar las capacidades gráficas de C#. En particular vamos a utilizar “Hola Mundo” hecho en GTK#. la librería GTK#, adaptación de GTK+ a .NET. Esta librería, como es sabido, nació del proyecto GIMP y evolucionó para convertirse en la base del escritorio GNOME. A día de hoy es la librería gráfica libre de referencia, y funciona tanto en Windows como en GNU/Linux. De esta manera, lo que desarrollemos con ella será inmediatamente multiplataforma. El código de este segundo ejemplo lo tenemos también en el Listado 2. En este caso para compilarlo hay que añadir una nueva opción:
$ mcs -out:HolaMundoGrafico.exe -pkg:gtk-sharp-2.0 -codepage:utf8 HolaMundoGrafico.cs El comando -pkg: le dice al compilador que vamos a utilizar elementos de la librería gtk-sharp en su versión 2.0. El programa pkg-config se encargará de decirle automáticamente al compilador dónde se encuentran los archivos correspondientes, de modo que no tengamos que preocuparnos de esos detalles. La ejecución es igual que en el caso anterior:
$ mono HolaMundoGrafico.exe Esto mostrará una ventana como la de la figura de la izquierda. Al pulsar sobre el botón central se imprimirá una cadena de texto en el terminal. La ventana se cierra como cualquier otra al pulsar sobre el aspa en la parte superior derecha. En lo que se refiere al código, la estructura básica es la misma que la del ejemplo anterior. La primera diferencia que podemos notar es que incluimos dos sentencias using, una para System como antes, y otra para GTK#, espacio de nombres en el que se encuentran los componentes gráficos (Application, Window, Button). El código es relativamente sencillo de comprender, aunque no hayamos programado antes con esta librería. Application se encarga de iniciar (Init), ejecutar (Run) y finalizar (Quit) el bucle principal del programa. Primero creamos la ventana principal (Window) y des-
Listado 2. “Hola Mundo” en modo gráfico using Gtk; using System; class HolaMundoGrafico { static void Main () { Application.Init (); Window ventana = new Window ("Hola Mundo en GTK#"); ventana.SetDefaultSize (320, 200); ventana.DeleteEvent += delegate { Application.Quit (); }; Button boton = new Button ("Púlsame, por favor"); boton.Clicked += delegate { Console.WriteLine ("¡Gracias!"); }; ventana.Add (boton); ventana.ShowAll (); Application.Run (); } }
Número 66
REPORTAJE
pués le añadimos un botón (Button). Eso es todo lo que contiene la aplicación. Es especialmente interesante prestar atención al manejo de “señales” y “eventos”, esto es, a cómo responde el programa ante las acciones del usuario. En particular hemos contemplado dos posibilidades, la de pulsar el botón y la de cerrar la ventana principal. Es ilustrativo porque la manera en que lo hemos hecho utiliza los nuevos métodos anónimos:
ventana.DeleteEvent += delegate { Application.Quit (); }; El código anterior simplemente le dice a la ventana que ante el evento Delete, ésta debe reaccionar cerrando la aplicación. Antes era necesario dividir esta definición en dos partes, por un lado la definición del delegado y después, en otra parte del programa, el contenido del mismo. Ahora gracias a que Mono ha implementado los métodos anónimos podemos hacerlo de forma mucho más compacta. Confiamos que estos dos ejemplos hayan servido para ilustrar algunas de las características básicas de esta plataforma de desarrollo.
CONCLUSIONES Confiamos haber podido transmitir una imagen general de Mono y su futuro más inmediato. Los principales esfuerzos, como hemos dicho, están centrados en el necesario soporte de Windows.Forms. La próxima versión 1.2, y la aún lejana 2.0, marcarán los próximos hitos del proyecto Mono. Pese a la larga lista de éxitos que ha acumulado Mono estos años, aún quedan cuestiones pendientes a las que deberá enfrentarse a medio plazo. En particular sigue presente la problemática de las patentes de software. En el ámbito europeo continúa haciendo falta una regulación como la que defiende la Free Software Foundation europea, que sea respetuosa con los intereses del desarrollador de software libre y que, por tanto, no imite el modelo estadounidense. Además, Microsoft planea una nueva versión de su sistema operativo a lo largo del presente año lo que, unido a las recientes maniobras de Apple, hace prever una dura competición en el campo del escritorio. En este sentido, Mono ha querido ser siempre un punto de apoyo para el escritorio GNOME, de modo que esta situación le afectará de alguna manera. Aunque todavía es pronto para saber lo que va a ocurrir, creemos que la existencia de la iniciativa Mono sitúa al software libre en una mejor posición para enfrentarse a estos retos. ■
27
28-29 Entrevista (Friedman)
ACTUALIDAD
7/4/06 12:34
Página 28
ENTREVISTA
Novell: Nat Friedman Vicepresidente de Linux desktop en Novell oincidiendo con la presentación del nuevo SUSE Desktop en París, desde Todo Linux quisimos aprovechar la oportunidad de hablar con Nat Friedman, uno de los fundadores de la empresa Ximian y actual encargado del escritorio Linux en Novell, para conocer sus impresiones sobre el panorama actual de las distribuciones open source, la evolución del escritorio o el estado de algunos proyectos libres en cuyo desarrollo se ha implicado personalmente.
C
“
En el pasado, Linux se dirigía a mercados muy específicos, pero hoy es una opción madura para el escritorio
”
TODO LINUX: Recientemente
Novell ha anunciado nuevas características y funcionalidades para el subsistema gráfico Xgl (X over OpenGL). ¿Qué supondrá este anuncio para el escritorio Linux? Especialmente de cara al usuario final. ■ NAT FRIEDMAN: El desarrollo del framework Xgl ha sido un proyecto muy excitante porque supone la oportunidad en Linux de realizar muchas cosas nuevas. Esta tecnología nos permite trabajar con un entorno mucho más “físico”, más natural, realmente agradable y divertido de usar. En el pasado los desarrolladores controlaban el hardware y el software, con Xgl brindamos a los usuarios la oportunidad de explorar campos y crear efectos visuales que antes estaban reservados a los creadores de las plataformas. TL: A propósito de Xgl, ¿Está
trabajando Novell con otras compañías que están desarrollando iniciativas similares? Por ejemplo el caso de Fedora con el proyecto AIGLX. ■ NF: Xgl supone una gran aportación de Novell al mundo open source en la que llevamos trabajando
28
duramente los últimos meses. Ahora Xgl está listo, es una realidad, y es el momento de plantearse un intercambio o una colaboración con otras compañías como Intel, Red Hat, Mandriva, etc. Se trata de elevar el nivel de calidad del escritorio Linux por encima de lo prometido por Windows Vista. TL: En la próxima versión de la
plataforma SUSE, ¿por qué escritorio se optará como opción favorita? ¿GNOME o KDE? ■ NF: Actualmente tenemos dos productos, la distribución SUSE Linux 10 que fue presentada hace
EDUARDO TORIBIO YÉNIFER TRABADELA
TL: ¿Cómo está contribuyendo
el proyecto OpenSUSE a desarrollar nuevas releases de SUSE Server y en el área desktop? ¿Podrías contarnos algún ejemplo de proyectos desarrollados por la Comunidad OpenSUSE que vayan a ser incluidos en próximas versiones de SUSE Desktop? ■ NF: OpenSUSE es un proyecto puesto en marcha el año pasado que consiste básicamente en abrir el desarrollo de SUSE a la Comunidad open source. Los desarrolladores pueden contribuir de diferentes formas online, participar en los foros, corregir fallos, etc.
Nat Friedman durante la presentación del nuevo SUSE Desktop en París.
seis meses y SUSE Linux Enterprise Desktop 10 más dirigido a empresas, organismos públicos, al área de negocio. SUSE Linux soporta tanto GNOME como KDE para que el usuario pueda elegir el que prefiera, mientras que en la versión Enterprise se soportan también ambos entornos de escritorio, pero el predeterminado es GNOME pensando en la gente que viene del mundo Windows y nunca ha probado un sistema Linux.
Número 66
El proyecto ha sido un gran éxito, cientos de personas contribuyen al desarrollo y evolución de SUSE cada día. Si hablamos de proyectos, los desarrollos son probados en OpenSUSE primero (Xgl, Mono,..) y cuando son estables se incluyen en los productos. TL: Precisamente una de las
herramientas de seguridad recientemente presentadas por
28-29 Entrevista (Friedman)
7/4/06 12:34
Página 29
ENTREVISTA
Novell y que se incluye en el nuevo escritorio es AppArmor. Ésta ha sido muy comentada en la Comunidad, especialmente por la existencia ya de utilidades similares como SELinux ¿Podrías contarnos algo más sobre su funcionamiento? ■ NF: Es una herramienta de seguridad y monitorización muy fácil de manejar que te proporciona información sobre todo lo que ocurre en el sistema. Controla el funcionamiento de las aplicaciones y los accesos para evitar entradas no deseadas. Creo que SElinux es una herramienta de seguridad mucho más complicada de manejar que AppArmor, son alternativas para diferentes usos.
Windows Vista realmente dominaría un parte muy pequeña del mercado para la que Linux todavía no está preparado. TL: ¿Cuáles son los puntos
fuertes de SUSE Linux comparada con Red Hat o Mandriva? ■ NF: Básicamente uno de ellos es la propia compañía Novell. Cuando eliges una distribución Linux buscas además la mejor cobertura, las mejores aplicaciones, los mejores servicios, el soporte más cualificado, en definitiva, la solución más completa. Y esto es lo que ofrece Novell.
paquetes con los drivers, actualizaciones, además de un servicio de soporte. Todo esto no puedes obtenerlo con Debian. Realmente el modelo de Debian es muy bueno para entusiastas o usuarios avanzados de los sistemas Linux. TL: También resulta intere-
sante el auge que están alcanzando proyectos como Ubuntu. ■ NF: No creo que Ubuntu sea verdaderamente muy popular en el mundo Linux. Si la comparamos con SUSE existen muchas diferencias. Nosotros realmente desarrollamos soft-
TL: ¿Cómo afectará al
escritorio open source el futuro lanzamiento de la plataforma Windows Vista? Actualmente ¿es Linux realmente una alternativa seria a Windows en el mercado desktop? ■ NF: En el pasado cuando se hablaba del escritorio Linux existían mercados y tipos de usuarios muy específicos, por ejemplo estaciones de trabajo técnicas para tareas de ingeniería, cálculo, etc., que necesitaban mucha memoria y una gran capacidad de procesamiento. Sin embargo, la mayoría de usuarios medios, trabajadores de oficinas, solo necesitan unas pocas aplicaciones como email, calendario, aplicaciones ofimáticas..., herramientas básicas para trabajar. Antes Linux no satisfacía a este tipo de usuarios, que suponen en torno al ochenta por ciento del mercado, pero ahora es una opción madura. Frente a Windows Vista tiene una plataforma que elimina la dependencia de Microsoft, además es un sistema abierto y mucho más seguro, y todo ello suponer una ventaja.
ACTUALIDAD
encuentra actualmente esta aplicación? ■ NF: Se trata de un buscador que te permite localizar todo lo que puedas imaginar en el sistema: documentos, correos electrónicos, canciones, archivos de todo tipo (con formato OpenOficce, de Microsoft, etc.) Es una herramienta flexible, completa y fácil de utilizar. Actualmente es muy estable y por eso se ha incluido en el nuevo escritorio Suse Desktop 10. TL: Hablando de proyectos en los que te has involucrado, ¿Cuándo veremos la próxima versión de la plataforma de desarrollo Mono? ■ NF: Actualmente se está trabajando en Mono 2.0, pero dependerá de que haya una versión realmente estable de Windows.Forms para incluir soporte a esta tecnología. Se trata en definitiva de que la próxima generación de aplicaciones Windows puedan funcionar correctamente en Linux. TL: Ya para terminar,
Nat Friedman posa con una redactora de Todo Linux.
Además, Novell desarrolla sus propias aplicaciones (Beagle, Xgl, Tomboy,..) y comprueba sus estabilidad a través del proyecto OpenSUSE. TL: ¿Qué opinas sobre el
modelo seguido por Debian? En España este sistema es muy popular y tiene mucha difusión en la Comunidad. ■ NF: Pienso que el modelo de Debian es positivo, aunque las versiones estables de la distribución se liberan cada cuatro años. SUSE lanza una versión cada 18 o 24 meses y ofrece
ware mientras que Ubuntu está controlado por una persona que se limita a empaquetar aplicaciones, cogen software a partir de Debian y crean una distribución. Si quieres un sistema que te ofrezca soporte eliges SUSE, y si lo que buscas es simplemente un paquete de software entonces Ubuntu es una opción. TL: Tú has colaborado per-
sonalmente en el desarrollo de varios proyectos open source, entre ellos el buscador Beagle. ¿En qué estado se
Número 66
¿Cómo ves la importancia que está adquiriendo en algunos países el Sector Público como negocio para Novell? ¿Crees que veremos más casos de migración en Europa como los de las Comunidades Autónomas de Extremadura y Andalucía en España? ■ NF: Existen grandes oportunidades de negocio en el sector público, gobiernos y administración no solo en Europa, en países como China o en Sudamérica hay una gran motivación desde las administraciones hacia las plataformas open source. Incluso hay casos en Estados Unidos como la migración de cientos de escritorios en el estado de Indiana. El caso de China es interesante, hay miles de usuarios ilegales de Windows, pero en el último año se han producido un fenómeno de migración a Linux impulsado desde los gobiernos de distintas ciudades.
29
30-33 Taller (PDF)
7/4/06 13:53
Página 30
>>>
TALLER LINUX FICHEROS PDF
Edición de ficheros PDF sin Adobe Acrobat JUANAN PEREIRA
chessy@iberprensa.com
uestro problema es sencillo de enunciar y comprender, pero en Linux, extremadamente difícil de solucionar: cómo borrar una letra de un fichero PDF sin disponer del documento original que lo generó. Es un hecho, Linux carece de buenas herramientas que permitan editar ficheros PDF. Punto. Sin embargo, este taller no tendría sentido si de la frase anterior eliminásemos la palabra “buenas”. Y ahí está el quid de la cuestión. En Linux, aunque pocas, sí disponemos de utilidades de manipulación de ficheros PDF que, usadas en su conjunto, nos podrán ayudar a realizar nuestro trabajo. En las siguientes líneas presentaremos las más importantes, y explicaremos cómo nos podemos valer de ellas. También es importante subrayar la diferencia entre visor y editor: en Linux sí que disponemos de varias alternativas para visualizar documentos PDF, como son Evince, KPDF, Xpdf, GPdf o el propio Adobe Acrobat Reader. Sin embargo, no disponemos de ningún editor de ficheros PDF que nos permita modificar o manipular el contenido de un documento PDF ya creado, tal y como existen en Windows, siendo Adobe Acrobat el más conocido. Otro detalle más: queremos editar un fichero ya creado, no generar nuevos, para lo que también disponemos de herramientas en Linux, como PDFTeX, o el propio OpenOffice. Nuestro problema es más complejo de lo que parece...
$ pdftk d3.pdf output d3_protegido.pdf owner_pw 123456
N
HACIENDO COLLAGE CON FICHEROS PDF Supongamos que disponemos de dos documentos PDF, el documento d1 y el documento d2, ambos de diez páginas. Nos gustaría conseguir un único documento final d3, formado por la unión de ambos. Esto en Linux ya es un problema, ¿cómo concatenamos dos ficheros PDF? Por otra parte, nos damos cuenta de que la primera hoja de d2 es la misma que la primera de d1, una portada. Nos gustaría que el documento final d3, no tuviera dos portadas, por lo que éste es nuestro segundo reto, eliminar la
30
Figura 1. Sede web de pdftk, una poderosa herramienta para la manipulación de ficheros PDF.
portada de d2 del documento final, obteniendo un documento d3 de 19 páginas. Para resolver este tipo de problemas –y muchos más- con ficheros PDF, el autor del libro PDF Hacks, Sid Steward, desarrolló la herramienta pdftk (PDF Toolkit). Pdftk es la “navaja suiza” de la manipulación de ficheros PDF. Desarrollada como una aplicación multiplataforma de línea de comandos bajo licencia GPL, podremos realizar tareas como mezclar documentos PDF, extraer páginas a un nuevo documento, cumplimentar formularios PDF con datos FDF, aplicar marcas de agua, adjuntar ficheros o reparar documentos defectuosos, entre otras (http://www.accesspdf.com/pdftk/). Los dos problemas que hemos planteado como ejemplo se resuelven con una sola instrucción pdftk:
$ pdftk A=d1.pdf B=d2.pdf cat A B2-10 output d3.pdf Es decir, asignamos d1.pdf y d2.pdf a las variables A y B respectivamente. Después ejecutamos la orden cat de pdftk, tomando como argumentos el documento A completo y las páginas 2 a 10 del documento B. Este comando cat leerá las páginas de los documentos indicados y dejará el resultado (output) en d3.pdf. Una vez creado nuestro documento d3.pdf, supongamos que quisiéramos protegerlo para que nadie copie el contenido, de tal forma que ni tan siquiera se pueda imprimir. Nuestra “navaja suiza” particular nos ayudará de nuevo:
Número 66
Con la orden anterior, hemos cifrado –codificado– el contenido, tomando como base el password 123456, protegiéndolo ante intentos de copiado del texto o gráficos que incluya, así como evitando que funcione la impresión desde un visor de ficheros PDF. No parece muy acorde con la filosofía del software libre, pero es posible que necesitemos hacerlo en alguna ocasión. Supongamos ahora que seguimos recelosos de la seguridad de nuestro documento d3.pdf y queremos protegerlo un poco más, de tal forma que solo aquellos usuarios que sepan la contraseña puedan leerlo. Bien, en ese caso deberíamos de modificar ligeramente la orden anterior:
$ pdftk d3.pdf output d3_protegido.pdf owner_pw 123456 user_pw 98765 Es decir, ¡hemos protegido nuestro documento incluso contra lectura! Solo podrá leerlo aquel que sepa que la contraseña de lectura es 98765, y ésta será solicitada por cualquier visor de ficheros PDF que intente abrir el archivo. Supongamos que nos interesa que los lectores poseedores de la contraseña puedan también imprimir el documento. Basta con añadir una nueva opción (allow printing) a la línea anterior:
$ pdftk d3.pdf output d3_protegido.pdf owner_pw 123456 user_pw 98765 allow printing Otros posibles permisos útiles, aparte de printing, podrían ser ModifyContents (permitirá modificar o retocar el contenido del PDF) o CopyContents (para copiar el contenido en el portapapeles).
AÑADIR TEXTO A UN FICHERO PDF Hemos visto que es posible recortar, proteger, cortar y pegar páginas en ficheros PDF desde Linux. Pero ¿qué hay de la opción de añadir nuevo texto a una página PDF de un
30-33 Taller (PDF)
7/4/06 13:53
Página 31
FICHEROS PDF
Figura 2. Biblioteca open source para la creación de ficheros PDF por programación (está disponible para Java y .NET).
documento? Por ejemplo, para incluir notas en los márgenes, rellenar un formulario, etc. Bien, también podremos hacerlo, con el pseudo editor gráfico de ficheros PostScript flpsed. Como su propio autor indica, más que un editor, flpsed es un pseudo editor gráfico de ficheros PostScript. “Pseudo”, porque no es posible eliminar o modificar elementos (texto, gráficos) preexistentes de un documento. Pero sí podremos añadir texto, en cualquier posición, con cualquier color y tamaño de letra. Además, las líneas de texto que añadamos podrán ser reeditadas posteriormente con la propia aplicación flpsed. En estos momentos el lector se estará preguntando qué tiene que ver un editor PostScript con un editor de ficheros PDF. La respuesta es que un fichero PDF no viene a ser más que un fichero PostScript mejorado. En realidad, el formato PDF es un conjunto reducido del estándar Postscript más algunas características nuevas, tal y como aparece en la definición de este formato que aporta la Wikipedia (ver Cuadro de Referencias de la última página). Es posible realizar conversiones entre ambos formatos, y por tanto, podemos convertir un fichero PDF a formato PostScript (.PS), editarlo con flpsed y volverlo a convertir a PDF. Flpsed está disponible en dos versiones distintas, una rama con la versión 0.3 y otra con la 0.4. La diferencia estriba en que la rama 0.4 utiliza la biblioteca de desarrollo de widgets gráficos fltk en su versión 2.0, con soporte de caracteres internacionales mediante UTF8 y fuentes con antialias, y consideramos que es una rama experimental. Por otro lado, la rama 0.3 de flpsed es más estable, pero carece de las características anteriores (http://www.fltk.org/) En el momento de escribir este tutorial las últimas versiones disponibles de flpsed son la 0.3.6 y la 0.4.1 respectivamente. Recomendamos a los lectores que instalen la biblioteca fltk directamente desde el código fuente, es decir, usando el conjuro mágico ./configure, make, make install, dado que en algunas distribuciones, como Fedora Core por ejemplo, si instalamos fltk desde el paquete RPM, a la hora de compilar poste-
riormente flpsed obtendremos errores de compilación. El procedimiento para añadir texto a un fichero PDF consistirá en abrir el fichero con la opción File / Import PDF, editarlo (añadir el texto que creamos necesario) y guardarlo con Export PDF... En la Figura 3 podemos ver cómo hemos abierto un fichero PDF y añadido un texto en color rojo en el medio de la primera página. También se puede apreciar que estamos usando la versión de la rama 0.3, dado que el texto insertado no tiene aplicado antialias.
IMPRIMIR UN FICHERO PDF A VARIAS PÁGINAS POR HOJA Una necesidad común para los usuarios que trabajamos con ficheros PDF de gran tamaño es la de imprimir dichos documentos a varias páginas por hoja, con el doble objetivo de ahorrar papel y que el documento final, en papel, sea más manejable. En Linux existe una fabulosa utilidad llamada PDFjam que nos permitirá comprimir varias páginas en una sola hoja (por ejemplo, dos páginas por cara, cuatro páginas por cara, etc.) Si este documento final (a dos páginas por hoja, por ejemplo) lo imprimimos a doble cara en la impresora, estaremos evitando la tala de muchos árboles.
TALLER LINUX
binario del que casi todas las distribuciones disponen. Por ejemplo, si usamos Fedora Core, podemos instalarlo mediante una simple orden como:
yum install pdfjam O en Ubuntu con una orden similar a:
apt-get install pdfjam Las utilidades incluidas en este paquete tienen una pequeña pega, los enlaces presentes en los documentos originales se perderán en el PDF final. Teniendo en cuenta este detalle, veamos algunos ejemplos de uso de pdfnup, pdfjoin y pdf90. Convertir un documento a dos páginas por hoja (en horizontal):
$ pdfnup --frame true --nup 2x1 documento.pdf La opción --frame true dibujará una línea vertical que separará las páginas de la hoja. El documento original no se modificará. Pdfnup creará un nuevo documento con el resultado final, llamado documento-2x1.pdf.
$ pdfnup --frame true --nup 1x2 documento.pdf Igual que el caso anterior, pero el resultado será de dos páginas por hoja (en vertical). En lugar de 1x2 o 2x1, podríamos intentar cualquier otra combinación: 2x2, 3x2, 2x4, etc.
$ pdfnup --frame true --nup 1x2 --pages 2,8,4,5 documento.pdf
Figura 3. Flpsed permite añadir texto a ficheros PDF, en distinto tamaño y color, desde un entorno gráfico amigable.
PDFjam es una pequeña colección de shell scripts que ofrecen un interfaz simple a las opciones de trabajo con ficheros PDF del paquete pdfpages. Además de comprimir varias páginas por hoja, usando el script pdfnup, ofrece también los comandos pdfjoin para concatenar las páginas de múltiples documentos en un único fichero PDF final, y pdf90 para rotar el contenido de uno o más ficheros PDF noventa grados en sentido contrario a las agujas del reloj. La forma más sencilla y recomendada de instalar PDFjam es a través del paquete
Número 66
Similar al ejemplo anterior, salvo que indicamos explícitamente las únicas páginas que queremos que formen parte del documento final. Como detalle, podemos apreciar que es posible especificar incluso un orden de páginas no consecutivo. Existen muchas otras opciones más avanzadas que podemos usar con pdfnup. Para leer más al respecto examinamos el resultado de la orden pdfnup --help. Veamos ahora un puñado de ejemplos de utilización de pdfjoin, extraídos directamente de la documentación de ayuda de esta aplicación:
pdfjoin fichero1.pdf fichero2.pdf fichero3.pdf --fitpaper true generará un nuevo fichero, en el directorio actual, concatenación de los tres anteriores, con el nombre fichero3-joined.pdf mante-
31
30-33 Taller (PDF)
TALLER LINUX
7/4/06 13:53
Página 32
FICHEROS PDF
niendo el tamaño original de todas las páginas (opción fitpaper true). También es posible usar pdfjoin para escalar las páginas de los documentos que se quieren unir a un tamaño dado. Por ejemplo, la siguiente orden (debe incluirse toda en la misma línea):
pdfjoin fichero1.pdf fichero2.pdf fichero3.pdf --fitpaper false --paper a4paper --outfile ~/docs/resultado.pdf
escalará todas las página de los ficheros 1, 2 y 3 para que quepan en una hoja de tamaño A4, y dejará el resultado final en un nuevo documento dentro del directorio ~/docs/ (subdirectorio docs dentro del directorio raíz del usuario) con el nombre resultado.pdf. La utilización de pdf90 no conlleva ninguna dificultad:
pdf90 fichero1.pdf --outfile stuff/ficheroRotado.pdf
rotará todas las páginas del fichero1.pdf noventa grados en sentido antihorario y dejará el resultado en el subdirectorio stuff del directorio actual, bajo el nombre ficheroRotado.pdf. Es posible ejecutar pdf90 para que trabaje sobre varios ficheros independientes:
pdf90 file1.pdf file2.pdf creará los ficheros file1-rotated.pdf y file2-rotated.pdf en el directorio actual.
EDICIÓN MANUAL DE UN FICHERO PDF
Cuadro 1. Edición manual de un fichero PDF Un fichero PDF está formado internamente por una cabecera, un cuerpo, una tabla de referencias y una cola. La cabecera identifica el fichero como un documento PDF, mediante un string como %PDF-1.4. El cuerpo es una colección de objetos organizados en forma de árbol, que describirán la estructura de la página, las páginas en concreto y los elementos que forman el contenido (texto, gráficos,...) de las mismas. Cada objeto tiene tres componentes esenciales: un número, una posición fija en el fichero PDF (offset) y su contenido. La tabla de referencias cruzadas permitirá a un parser de ficheros PDF (como Evince o el mismo Acrobat Reader), acceder rápidamente a los objetos. Comienza con la palabra clave xref seguida del número de objetos. Cada entrada en la tabla de referencias contiene básicamente un offset (desplazamiento) para acceder al objeto en el documento y un flag que indicará si el objeto está libre (puede ser reutilizado) u ocupado. Finalmente, la cola, que permite acceder rápidamente a las principales zonas del documento: contiene un puntero al comienzo de la tabla de referencias y los números o identificadores de los principales objetos; en concreto, el objeto root (donde comienzan a definirse las páginas) y el objeto info, que contiene metainformación sobre el documento. Por tanto, podemos ver un fichero PDF como el conjunto de objetos que lo forman: gráficos, texto, tipos de letra, anotaciones, etc. Como hemos indicado, al final de un fichero PDF siempre se incluye una tabla de referencias, donde se especifica en qué posición del documento comienza la definición de cada objeto. Esto quiere decir que si editamos “a mano” un PDF y añadimos o borramos más contenido (es decir, no nos limitamos a sustituir una letra por otra sin cambiar el tamaño final del archivo), hay que reconstruir dicha tabla o romperemos la estructura del documento, y probablemente no podamos visualizarlo con ningún editor. Además, tras reconstruir la tabla (y los datos sobre el tamaño exacto de cada objeto) hay que acordarse de comprimir el resultado final. Todo esto es automatizable usando el plugin para Vim desarrollado por Sid Steward, el mismo programador creador de la estupenda pdftk. De hecho, es descargable desde la misma web de este paquete(ver Cuadro de Referencias). Este plugin nos ahorrará además la descompresión inicial del fichero PDF original. Es decir, cuando queramos editar un fichero PDF “de forma manual”, teniendo previamente instalado el plugin pdftk para Vim, bastará con usar el comando vim documento.pdf. La descompresión será automática. Una vez editado el fichero, bastará con guardarlo (en Vim, con la orden :wq) y el plugin se encargará de reconstruir la tabla de referencias y comprimir el resultado final automáticamente. Para instalar el plugin, en la distribución Fedora Core por ejemplo, basta con descomprimir el mismo (suele estar comprimido con Zip bajo el nombre pdftk.vim.zip) y copiarlo en el directorio /usr/share/vim/vim63/plugin/. La próxima vez que usemos el editor Vim para leer un fichero PDF, éste cargará el plugin pdftk y realizará las acciones anteriormente descritas.
32
Número 66
Veamos ahora un método avanzado (aunque arcaico) de edición. Vamos a editar de forma manual el contenido de un fichero PDF. Para ello, debemos descomprimir previamente su contenido ya que, por ahorrar espacio, los documentos PDF en general guardan su contenido de forma comprimida. Realizaremos un ejemplo sencillo, donde crearemos un documento muy simple con OpenOffice, lo convertiremos a PDF, y tras descomprimirlo usando pdftk, lo editaremos manualmente con el editor Vim. Para cambios más complejos de los que veremos aquí (sustituir una letra por otra), podemos consultar el Cuadro 1. Lo primero que haremos será abrir un nuevo documento con la aplicación OpenOffice.org Writer, donde introduciremos la frase “Esto es una pprueba” (la letra p de la palabra prueba está repetida, será lo que corregiremos después de forma manual en el fichero PDF). Guardaremos el resultado en formato PDF pulsando en File/ Export as PDF... o directamente en el botón de conversión a PDF de la barra de herramientas. Guardaremos el documento en /tmp/prueba.pdf. Si intentamos editar el fichero directamente en Vim, veremos que es un archivo binario (el código PDF original comprimido), cuya edición “a mano” es imposible. Por tanto, lo primero que haremos será cerrar el documento en Vim y desde la línea de comandos descomprimirlo usando pdftk:
$ pdftk prueba.pdf output abierto.pdf uncompress Ahora, abierto.pdf sí será un fichero más editable (alguna partes del mismo siguen en binario, como por ejemplo, el tipo de letra Times New Roman que en este caso el autor usó por defecto en OpenOffice para crear el documento, y que se ha incluido dentro del PDF) En la parte inferior del documento veremos /Root 10 0 R, lo que nos indica que el primer objeto que define nuestro PDF (que está formado por distintos objetos o stre-
30-33 Taller (PDF)
7/4/06 13:53
Página 33
FICHEROS PDF
ams) es el número 10. Por tanto, buscaremos dentro del contenido la línea 10 0 obj (la definición de todo objeto comienza con este patrón, número_número_obj) Este objeto incluye la siguiente instrucción:
<</Pages 2 0 R que nos indica que las páginas del PDF comienzan a definirse en el objeto 2 0. Desde ahí podemos ver la construcción /Kids [1 0 R]. Si buscamos esta referencia (1 0 obj) veremos que incluye un enlace al contenido del PDF, usando la instrucción /Contents 4 0 R. Siguiendo de nuevo dicho enlace (4 0 obj) encontramos las etiquetas de los caracteres que definen el contenido de nuestro documento. Es decir, <01>, <02>, <03>,<04> definirán los caracteres “Esto”; <05> el carácter espacio, <06> y <07> la palabra “es”, etc. Siguiendo este orden, vemos que la etiqueta que define nuestro carácter ‘p’ repetido es <0A>. Más adelante, en el objeto 7 0, se hace un mapeo entre la etiqueta de cada letra y su código ASCII en hexadecimal. Así, vemos que la etiqueta <0A> corresponde al código ASCII en hexadecimal 0x70, que en decimal equivale al código 112, o sea, la letra p minúscula (ver tabla ASCII en lista de referencias) Volviendo al objeto 4 0, vemos que el espacio en blanco tiene la etiqueta <05>. Vamos a sustituir nuestra letra p repetida (con etiqueta <0A>) por un espacio en blanco (etiqueta <05>). Una vez hecho, y tras guardar el fichero (:wq en Vim), podremos abrirlo (no hace falta comprimirlo previamente) con un visor de PDFs como Evince, y comprobar que efectivamente el resultado es el correcto. El lector se preguntará del porqué de la sustitución de un carácter por otro en lugar de borrar directamente el carácter ‘p’ repetido (para una explicación detallada ver Cuadro 1 de la página anterior).
CONCLUSIONES El mundo Linux tiene una asignatura pendiente en cuanto a la disponibilidad de herramientas de edición de ficheros PDF. Tal y como hemos visto, hay varias aplicaciones que permiten realizar ciertas tareas de edición, pero aún estamos muy lejos de la potencia que ofrece Adobe Acrobat. Por ejemplo, no existe ninguna aplicación en Linux libre o de pago que permita borrar una palabra de un PDF, salvo que lo hagamos “a pelo”, es decir, editando el contenido del fichero PDF desde un editor de textos, tal y como hemos comentado, y aún en este caso, el texto no se ajustará al espacio disponible en la página de forma automática. Es decir, tenemos herra-
mientas pero son bastante primitivas, y desde luego no de nivel empresarial. Esperemos que anuncios como el del pasado 23 de febrero por parte de Bruce Chizen
TALLER LINUX
(consejero delegado de Adobe) en el que afirmaba que Adobe desarrollará una versión de Acrobat para Linux, no caigan en saco roto y pronto veamos los resultados. ■
Cuadro 2. Otras herramientas de manipulación de documentos PDF Multivalent PDF Tools (http://multivalent.sourceforge.net/) es un conjunto de herramientas para la manipulación de documentos PDF. Su objetivo es ofrecer parte de la funcionalidad de Adobe Acrobat tanto para Linux, como para Windows y Mac OS X. Entre otras, incluye herramientas para la compresión, descompresión, extracción de información (metadatos), extracción de páginas, mezcla de páginas, encriptación y desencriptación, validación y extracción de texto de un fichero PDF. Además, el proyecto Multivalent ha desarrollado un navegador de documentos PDF que permite añadir comentarios sobre el mismo. Éstos no se incrustan en el PDF, sino que se guardan como ficheros de texto de Multivalent, o en un servidor de anotaciones si queremos compartirlos. Cuando volvamos a abrir el mismo PDF con Multivalent, se cargarán los comentarios que hayamos añadido previamente. MbtpdfASM (http://thierry.schmit.free.fr/dev/mbtPdfAsm/ enMbtPdfAsm2.html) Tras este enrevesado nombre se esconde una potente herramienta open source de manipulación de ficheros PDF, similar a pdftk pero con novedades que ésta última herramienta no permite. Dos de las principales son la inserción de outlines (o tabla de contenido interactiva) y la posibilidad de numerar las páginas de un PDF insertando en la parte inferior de todas ellas el número de página correspondiente. Para instalarla, tras descargar el código fuente, lo descomprimiremos y compilaremos con una simple orden make. Veamos un ejemplo de utilización de mbtpdfASM para numerar las páginas del documento articulo.pdf. El resultado final lo guardaremos en articulo_numerado.pdf:
$ ./mbtPdfAsm -n -N01 -Nx200 -Ny40 -Marticulo.pdf -darticulo_numerado.pdf La opción -M indica cuál es el fichero fuente y -d cuál es el nombre del fichero destino. Con -n se da la orden de numerar el documento. La opción -NOz (donde z es un número entero positivo), indica que la numeración debe empezar desde ese número z, y en concreto en la posición (200,40) (opciones -Nx200 y -Ny40 respectivamente). Existen otros muchos parámetros para afinar en ésta y otra orden dentro de mbtpdfAsm. Recomendamos al lector que consulte la ayuda en la propia web de la herramienta (la ayuda online que se incluye no está actualizada, siendo la web la referencia más actual).
Referencias Wikipedia: información sobre el formato PDF. http://en.wikipedia.org/wiki/Portable_Document_Format Plugin pdftk para VIM. http://www.pdfhacks.com/pdftk/pdftk.vim.zip Flpsed, pseudo-editor de ficheros PS y PDF. http://www.ecademix.com/JohannesHofmann/#flpsed Tabla ASCII. http://www.technology.niagarac.on.ca/courses/comp530/ images/AsciiTable.jpg La biblia del formato PDF, de la mano de Adobe. “PDF Reference, Fifth Edition”. http://partners.adobe.com/public/developer/pdf/index_reference.html Declaraciones de Bruce Chizen, consejero delegado de Adobe, afirmando que desarrollarán una versión de Adobe Acrobat para Linux. http://tinyurl.com/krqmy Buen artículo de PDFPlanet sobre la estructura interna de un fichero PDF. http://www.planetpdf.com/mainpage.asp?WebPageID=63
Número 66
33
34-36 Taller (LiveCD)
7/4/06 12:37
Página 34
>>>
TALLER LINUX LIVECD
Crea tu LiveCD con Ubuntu
JORDI MASSAGUER jmassaguer@iberprensa.com
n LiveCD puede crearse en unas horas. En este taller aprenderemos cómo. Una de las principales ventajas del software libre es precisamente eso, que es libre. Podemos modificarlo y redistribuirlo en algunos casos casi sin esfuerzo, comparado con lo que costaría implementarlo desde cero. Uno de esos casos es crear un LiveCD basado en una distribución Linux ya existente. La complejidad de crear un LiveCD basado en otro es despreciable si lo comparamos con desarrollar todo un sistema operativo, junto con sus aplicaciones, y ejecutable desde un CD. Lo más complicado es saber cómo, pues como ocurre muy a menudo con el software libre, tenemos el código pero la documentación es escasa. Cuando superamos este obstáculo, crear un LiveCD personalizado se convierte en una tarea muy simple, que podemos realizar en cuestión de horas. ¿No resulta despreciable invertir unas horas comparado con los muchos años que tardaríamos en crear un sistema operativo completo desde cero?
U
PREREQUISITOS Las instrucciones aquí presentes son para utilizarlas en un sistema Linux. No hay que confundir el sistema host con el target. El primero es el sistema donde trabajamos, y el target el que queremos crear. Este LiveCD en concreto se ha creado desde un host con una distribución SUSE, aunque en un proyecto anterior se creó desde un Ubuntu. No obstante, el target va a ser un Linux basado en esta última. En realidad, no importa qué distribución se use como host mientras tenga los prerequisitos que explicamos a continuación. Crear una ISO requiere de mucha memoria. En su ausencia, se utiliza memoria virtual, o sea, memoria swap. No hay ninguna formula mágica, pero sí algunos casos representativos. Por ejemplo, si se dispone de 128 MB de RAM, 5 GB de swap serían suficientes. Si no contamos con memoria suficiente, siempre puede crearse un fichero y utilizarlo como swap. Para ello, se haría lo siguiente (como root):
34
dd if=/dev/zero of=/myswap count=10000000 mkswap /myswap swapon /myswap Para construir un LiveCD se han utilizado las siguientes utilidades: rsync cloop-utils (2.00) mkiso (2.01.7) Se necesita también un kernel superior o igual al 2.6.9-7. Finalmente, se trabaja desde una shell sin locale, por lo que debería abrirse un shell y ejecutar:
sudo umount rm Ubuntu_5_10_i386.iso Para personalizar esta base, la estrategia a seguir es modificar el contenido del directorio isosTar, para luego volver a crear una ISO, pero con nuestras modificaciones.
ELIMINANDO LOS PROGRAMAS DE WINDOWS Y empecemos ya con nuestra personalización. Lo primero será eliminar los programas para Windows, que se encuentran en el directorio programs, así como la información de autoejecución (autorun):
export LC_ALL=C Y ya estamos a punto para empezar.
sudo rm -rf programs/ sudo rm start.* sudo rm autorun.inf
BASE DE NUESTRO LIVECD Tal y como hemos avanzado, nuestro LiveCD se basa en uno de la distribución Ubuntu, concretamente la versión 5.10. Obviamente, lo primero que se necesita es una copia de éste. Puede descargarse de http://se.releases.ubuntu.com/5.10/ ubuntu-5.10-live-i386.iso. Una vez descargada la ISO del LiveCD, debe accederse a ella. Para ello se utiliza el comando mount:
sudo mount Ubuntu_5_10_i386.iso mnt -o loop A continuación, se copia todo en un nuevo directorio, por ejemplo isosTar, usando la utilidad rsync:
mkdir isosTar && rsync -a /media/Ubuntu_5_10_i386.iso isosTar/ En este momento, la base de nuestro LiveCD donde vamos a trabajar ya está creada, por lo que puede desmontarse la ISO, e incluso eliminarla:
CAMBIANDO LA BOOTSPLASH Continuemos personalizando nuestro LiveCD, cambiando la primera imagen, bootsplash, que es aquella que vemos al iniciarlo. Esta imagen tiene unas características muy especiales: un número de colores limitado, una resolución y un formato concreto. En www.studiopress.es se dispone de una imagen de dieciséis colores, de 600x200 y en formato PPM: todolinux.ppm. Esta imagen fue creada con GIMP (programa libre de dibujo y retoque fotográfico). Podríamos crear cualquier otra. Esta imagen tiene los colores y una resolución adecuados, pero no el formato. El adecuado es el La primera imagen tendrá características RLE. Para ello, especiales de resolución y de formato. se hace uso de la utilidad ppmtolss16 de la siguiente manera:
Crear un LiveCD personalizado se convierte en una tarea muy simple, que podemos realizar en cuestión de horas Número 66
34-36 Taller (LiveCD)
7/4/06 12:37
Página 35
LIVECD
ppmtolss16 < todolinux.ppm > splash.rle A continuación, copiamos la nueva bootsplash en nuestra personalización:
sudo cp splash.rle isosTar/isolinux/splash.rle
SISTEMA DE FICHEROS RAÍZ EN EL CD Cambiando la bootsplash hemos personalizado aspectos externos del LiveCD, es decir, que no tienen que ver con el sistema Linux instalado en el mismo. Este sistema con su gestor de ventanas GNOME, sus aplicaciones OpenOffice, GIMP, etc., está todo en un solo fichero. El citado archivo contiene un jerarquía de directorios completa, es decir, la jerarquía de directorios del LiveCD, donde está todo instalado, y además, comprimido. Para poder descomprimirlo y ver su contenido se necesitan las utilidades cloop.
extract_compressed_fs isosTar/casper/filesystem.cloop > extracted_fs Este proceso es costoso en CPU y memoria, por lo que hay que tener un poco de paciencia. Una vez terminada la extracción, se puede montar el fichero, igual que se hizo con la ISO:
sudo mount extracted_fs mnt -o loop Si se lista su contenido, puede observarse una jerarquía de directorios típica de Linux:
> ls mnt bin boot cdrom dev etc home initrd (...)
TALLER LINUX
figuran antes ciertos aspectos del sistema. Para ello, debe restaurarse el sistema raíz escribiendo:
exit Lo primero es montar proc y sys:
sudo mount -t proc proc mnt/proc/ sudo mount -t sysfs sysfs mnt/sys Lo segundo, copiar resolv.conf:
cp /etc/resolv.conf mnt/etc/
Una vez tenemos la jerarquía de directorios y los ficheros del sistema Linux, procedemos a la siguiente personalización: añadir programas.
AÑADIENDO PROGRAMAS Para añadir programas se emplea la utilidad chroot, que nos permite cambiar la raíz del sistema y situarla en mnt. De esta forma, se trabaja con el sistema de ficheros del CD.
sudo chroot mnt
Y, por último, editar los repositorios de apt (Listado 1). Ahora sí, ya puede ejecutarse chroot:
sudo chroot mnt Y usar apt:
apt-get apt-get apt-get apt-get apt-get qt4-doc
update install install install install
anjuta eclipse-sdk eric3 qt4-dev-tools
Una vez cambiada la raíz, se podría usar apt-get para instalar programas en el sistema de ficheros del CD. De la misma forma se podrían eliminar. No obstante, instalar y eliminar programas con apt-get no funcionará si no se con-
Comprobación de la descarga de una ISO Cuando descargamos un archivo tan grande como es una ISO de un CD, pueden producirse errores. Para asegurarnos que éste no sea el caso, podemos descargar la suma de comprobación md5, que ha sido previamente calculada por los distribuidores de la ISO para compararla con la que, después de descargar la ISO, calcularemos nosotros. Si las dos sumas son iguales, podemos asegurar que se ha descargado bien. Por ejemplo, para la ISO del LiveCD de Ubuntu 5.10, haríamos:
md5sum ubuntu-5.10-live-i386.iso y si el resultado es:
49f36f8aef009d6403360de23b5a47d4 ubuntu-5.10-live-i386.iso significa que la descarga se realizó con éxito.
En el CD instalaremos, entre otras, la aplicación Anjuta.
PERSONALIZANDO EL ASPECTO GRÁFICO Instalados los programas, vamos a personalizar el fondo de escritorio y la splash-screen de GNOME. Este escritorio nos proporciona una utilidad, gconftool2, que informa de dónde están situadas las imágenes que buscamos. Si se ejecuta aún con el sistema raíz en mnt, se nos informa, entre otras cosas, de lo que buscábamos:
Listado 1. Repositorios de apt echo echo echo echo
“deb http://archive.ubuntu.com/ubuntu breezy main restricted universe multiverse” > mnt/etc/apt/sources.list “deb-src http://archive.ubuntu.com/ubuntu breezy main restricted universe multiverse” >> mnt/etc/apt/sources.list “deb http://security.ubuntu.com/ubuntu breezy-security main restricted” >> mnt/etc/apt/sources.list “deb-src http://archive.ubuntu.com/ubuntu breezy-security main restricted” >> mnt/etc/apt/sources.list
Número 66
35
34-36 Taller (LiveCD)
TALLER LINUX
7/4/06 12:37
Página 36
LIVECD
gconftool-2 --recursive-list / /desktop/gnome/background: primary_color = #4E3E29 secondary_color = #7F7F7F color_shading_type = solid picture_filename = /usr/share/ backgrounds/warty-final-ubuntu.png picture_options = stretched picture_opacity = 100 draw_background = true /apps/gnome-session: /apps/gnome-session/options: show_splash_screen = true splash_image = splash/ubuntu-splash.png logout_option = Logout auto_save_session = false logout_prompt = true allow_tcp_connections = false Nuestra personalización consistirá en sustituir mnt/usr/share/backgrounds/ warty-final-ubuntu.png por nuestra imagen, todolinux.png, y /mnt/usr/share/pixmaps/ splash, por todolinux_splash.png. Ambas imágenes están disponibles en nuestra web. Para poder acceder a ellas debe restaurarse el sistema raíz:
exit umount mnt/sys umount mnt/proc cp todolinux.png mnt/usr/share /backgrouns/warty-final-ubuntu.png cp todolinux_splash.png mnt/usr/share/pixmaps/splash Y con eso terminamos nuestras personalizaciones. Ya solo nos resta volver a empaquetarlo todo y crear una nueva ISO.
CREANDO EL SISTEMA DE FICHEROS Tal y como hemos dicho, ya solo queda volver a empaquetarlo todo. El primer paso será desmontar mnt:
isosTar/casper/filesystem.cloop
CREANDO EL CD Ya tenemos todo en el CD, ya solo nos falta el último paso antes de crear la nueva ISO: crear la suma de comprobación md5:
sudo rm isosTar/md5sum.txt cd isosTar (find . -type f -print0 | xargs -0 md5sum > ../md5sum.txt) sudo mv ../md5sum.txt . Finalmente, el momento de crear la nueva ISO ya ha llegado. Para ello, se utiliza la utilidad mkisofs:
sudo mkisofs -r -V “Todo Linux” -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../todolinux.iso. Hemos creado nuestra primera ISO, pero aquí no termina todo. Hay que probarla, encontrar lo que no nos gusta, lo que no funciona como esperábamos, o quizá algo a mejorar, volver a realizar todo el proceso, llegar a este punto, probarla una vez más, y así tantas veces como haga falta.
PROBANDO EL CD Vamos, pues, a probar la ISO que hemos creado quemándola en un CD. Para ello hemos escogido el programa K3b, que permite llevar a cabo esta operación. Esta forma de testearla puede resultar muy cara, ya que por cada prueba debemos tirar un CD. Otra alternativa, si disponemos de suficiente memoria, es utilizar una máquina virtual. La escogida en este caso es Qemu:
qemu -cdrom todolinux.iso -boot d sudo umount mnt Para crear el sistema de ficheros comprimido ejecutamos:
sudo create_compressed_fs extracted_fs 65536 > filesystem.cloop Paciencia, porque este proceso requiere de CPU y memoria, por lo que puede tardar bastante. Una vez finalizado, se pone de regreso al CD:
sudo cp filesystem.cloop
36
Si no se dispone de conexión a la red, es mejor deshabilitarla. Para ello, puede ejecutarse Qemu de la siguiente forma:
qemu -cdrom todolinux.iso -boot d -nics 0 Utilizar una máquina virtual permite realizar todas las pruebas que queramos sin quemar CDs. El único inconveniente son los recursos requeridos para utilizar una maquina virtual, pues se están ejecutando dos sistemas a la vez en un solo ordenador. Tal y como dijimos en el apartado anterior, éste no es el final. En realidad, es el prin-
Número 66
cipio. Es cuando empezamos a personalizar de verdad nuestro LiveCD, utilizando todo lo explicado hasta aquí, y haciendo las pruebas que hagan falta hasta conseguir lo que buscamos.
CONCLUSIÓN Ahora ya estamos preparados para crear todos los LiveCD que se nos ocurran. Éstos tienen muchas aplicaciones y ventajas que ahora es el momento de analizar. Entre esas ventajas, un LiveCD nos permite demostrar una aplicación, es decir, hacer una demo de la misma que podemos haber programado nosotros, o de la que queremos hacer una curso de formación, sin tener que instalar nada, y en un entorno perfectamente conocido y controlado, en lo que a instalación y configuraciones se refiere. Esto nos ahorra muchos problemas, ya que nuestro programa no va a ejecutarse con distintas bibliotecas, o compilado con diferentes opciones, o con distintos paths o variables de entorno, etc. Otro punto a favor de disponer de ese entorno en un CD-ROM es que podemos utilizar aplicaciones sin instalarlas, como por ejemplo herramientas para recuperar sistemas, en sistemas donde no queremos o no podemos instalar (por no tener el password de superusuario, por ejemplo). Una ventaja derivada del hecho de que un CD-ROM no puede ser reescrito, es que es imposible tener problemas de seguridad (hackers, virus) en ese sistema, pues cada vez que reiniciamos, volvemos al contenido original del CD. Evidentemente, si tenemos un virus en un fichero MSWord que guardamos en un stick usb, ese fichero seguirá infectado, pues un LiveCD no es la panacea. También notar que el ordenador no puede ser afectado por un hacker, pero sí que podría provocar una vulnerabilidad en la red donde se use, y esto aprovecharse para entrar en otro ordenador. Finalmente, decir que una de sus principales ventajas derivadas de que no se instale, puede ser a la vez su peor inconveniente. Solo tenemos que imaginar un ordenador que deba configurarse de una forma distinta a la que viene por defecto. Eso deberá repetirse cada vez que se reinicie el equipo. Llegados a este punto, conocedores ya de la técnica y de sus principales ventajas e inconvenientes, solo nos resta hacer tantos LiveCDs como creamos necesarios. Y quizá atreverse a más, y realizar una personalización de una distribución, aunque eso ya es otra historia. ■
37-40 Taller (Firma Digital)
7/4/06 12:37
Página 37
>>>
TALLER LINUX FIRMA DIGITAL
Firma digital en Linux ada vez se oye hablar más y más de la firma digital, pero ¿cómo usarla en las aplicaciones Linux? En concreto, ¿cómo podemos firmar digitalmente documentos OpenOffice? ¿Cómo mandar mensajes con firma digital desde Thunderbird? El proceso es sencillo: solicitamos un certificado digital y a partir de ahí podremos usarlo para firmar digitalmente nuestros documentos. Bien, ésta es la teoría, pero en la práctica, probablemente la gran mayoría de los usuarios Linux nunca ha probado en su sistema las posibilidades que la certificación digital nos ofrece. En este taller trataremos de dar respuestas sencillas para aquellos usuarios que no quieran preocuparse de los tecnicismos y detalles sobre cómo funciona internamente la firma digital, sino que únicamente quieran conocer cómo usarla en la vida real y con el sistema del pingüino. Vamos allá.
C
¿PARA QUÉ NOS SIRVE LA FIRMA DIGITAL? Autenticación, autorización, verificación. Las tres palabras mágicas. Mediante la autenticación (elemento de seguridad básico) podremos confirmar la identidad de una persona, máquina o compañía. Cuando un autor firma digitalmente un documento, está marcándolo unívocamente, de tal forma que podamos saber con absoluta seguridad que el usuario que lo firmó es de verdad quien dice ser. La autenticación es el paso previo a la autorización. Una vez que la identidad de un sujeto está reconocida, cualquier aplicación podría permitir ejecutar o no un conjunto de operaciones en función de dicha identidad. Por ejemplo, supongamos que al abrir una hoja de cálculo en OpenOffice la aplicación nos alerta de que dicha hoja de cálculo posee macros y que, por tanto, ejecutar estas macros supondría un posible problema de seguridad. También nos puede indicar que la macro está firmada por cierta empresa o desarrollador. En función de quién haya firmado la macro, podríamos indicarle a OpenOffice que confiara en la misma; es más, podríamos indicarle que, a partir de este momento, cada vez que se encuentre con macros firmadas por esta
misma empresa o desarrollador confíe en ellas, y no nos moleste con advertencias de seguridad. Otro ejemplo: podríamos usar la firma digital para autenticarnos en un sitio web protegido. Por ejemplo, para autenticarnos en la web de nuestra empresa, y dependiendo de quiénes seamos, que el sistema nos permita acceder a ciertas carpetas. Alguien puede pensar que para realizar esto bastaría únicamente con disponer de un password. Y es cierto, pero el nivel de seguridad es mucho mayor si además de la clave, el sistema nos pide algún requisito más (el certificado digital). Es decir, nos pide no solo algo que sabemos (el password), sino también algo que tenemos (el certificado digital). Además, éste puede guardar internamente más información sobre nosotros: nombre, apellidos, DNI, organización a la que pertenecemos, cargo, e-mail, etc., así como información sobre el propio certificado y la entidad emisora (Autoridad de Certificación), como son la fecha de emisión, fecha de caducidad, nombre de la entidad emisora, etc. Finalmente, otra de las razones de uso de la firma digital es la posibilidad de verificar la integridad de un documento. Cuando creemos un documento y lo firmemos digitalmente, ambos elementos estarán unidos de por vida siempre que se mantenga la integridad del documento. Es decir, si el documento firmado digitalmente es modificado lo más mínimo, la firma digital se perderá al intentar guardar esta copia modificada. Una vez vistas algunas de las utilidades de la firma digital, tal y como indicábamos al comienzo, no vamos a pararnos a discutir los detalles técnicos de la implementación, sino que nos centraremos en el uso bajo Linux de esta tecnología.
FIRMA DIGITAL EN DOCUMENTOS OPENOFFICE.ORG Para firmar un documento digitalmente, es necesario poseer una clave personal que nos identifique unívocamente, es decir, el
JUANAN PEREIRA chessy@iberprensa.com
Figura 1. Cómo importar un certificado digital en Firefox. Pulsaremos en “View certificates”, y luego en “Import”.
certificado. Esta clave personal se guardará en nuestro ordenador como una combinación de una clave privada, que debe permanecer en secreto, y una clave pública, que será la que añadamos a nuestros documentos para firmarlos. Realmente, distinguimos dos tipos de certificados digitales: los certificados software y los certificados hardware. Los primeros son ficheros (que contienen nuestra clave pública y privada) que guardaremos directamente en el disco duro de nuestro ordenador, mientras que los certificados hardware se almacenarán en un dispositivo especial como una tarjeta, un token USB, etc. Podemos conseguir un certificado digital a través de una autoridad de certificación (AC) de pago, como por ejemplo, a nivel internacional, Thawte, Verisign o GlobalSign o, a nivel nacional, Camerfirma, la Fábrica Nacional de Moneda y Timbre, ipSCA, etc. También podemos obtenerlos gratuitamente a través de organizaciones como Cacert.org. Para que OpenOffice reconozca nuestro certificado digital y nos permita firmar digitalmente los documentos, es necesario haber cargado previamente dicho certificado en nuestro sistema ¿Cómo? A través de cualquiera de estas tres aplicaciones: Thunderbird, Mozilla Suite o Firefox. Por ejemplo, para cargar nuestro certificado digital en la última versión de Firefox (ver Figura 1), seleccionaremos la opción
Una de las razones de uso de la firma digital es la posibilidad de verificar la integridad de un documento Número 66
37
37-40 Taller (Firma Digital)
TALLER LINUX
7/4/06 12:37
Página 38
FIRMA DIGITAL
de menú Edit/Preferences/. Desde aquí, en la zona Advanced, pestaña “Security”, pulsaremos el botón “View Certificates”. Una vez en esta pantalla, pulsaremos “Import” y seleccionaremos el fichero que contiene nuestro certificado digital (nuestros ejemplos se basan en certificados digitales software). Para incluirlo en el gestor de certificados, Firefox nos pedirá introducir la clave de activación, que nos habrá facilitado nuestra CA. OpenOffice seleccionará automáticamente el certificado digital que tengamos instalado en cualquiera de las aplicaciones anteriormente mencionadas. Hay que hacer notar que los tres programas (Thunderbird, Mozilla, Firefox) soportan perfiles de usuario (diferentes configuraciones para cada usuario), por lo que si hemos creado algún perfil y nuestro certificado digital está cargado en un perfil específico, hay que hacérselo saber a OpenOffice, definiendo la variable de entorno MOZILLA_CERTIFICATE_FOLDER. Por ejemplo, si el certificado está cargado en Firefox en el perfil por defecto qn4u061v.default, la orden sería la siguiente:
$ export MOZILLA_CERTIFICATE_FOLDER= ~/.mozilla/firefox/qn4u061v.default Para que no haya que acordarse cada vez de crear la variable de entorno anterior, es recomendable incluirla en el fichero de configuraciones personales .bashrc. Una vez cargado el certificado digital desde Firefox, ya podremos firmar documentos en OpenOffice. Veamos cómo. Para ello, crearemos un nuevo documento (o abriremos uno ya existente) en Writer. Tecleamos algo de contenido y grabamos el fichero (este paso es importante, ya que no podremos firmar digitalmente nada si previamente no lo hemos grabado). Ahora, seleccionamos la opción Digital Signatures del menú File (ver Figura 2). Desde aquí, pulsando en el
Figura 3. Seleccionando un certificado con el que firmar. Figura 5. Detalles de la firma de un documento Writer.
que, por tanto, la firma original se perderá. No es posible modificar un documento firmado digitalmente y mantener la firma original.
FIRMANDO MACROS
Figura 4. Detalles de un certificado.
botón “Add...”, podremos seleccionar la identidad con la que firmaremos el documento. En la Figura 3 observamos cómo hay un único certificado disponible para firmar este documento (el del autor de este artículo). Desde esta misma ventana, pulsando sobre el certificado, podremos ver los detalles del mismo (Figura 4) Una vez seleccionado el certificado y firmado el documento, veremos una ventana con un mensaje como el de la Figura 2. Además, si nos fijamos en el documento recién firmado, podremos observar en la parte inferior derecha (barra de estado), el icono de un lacre rojo (si hacemos doble clic sobre él, se abrirá el cuadro de diálogo con detalles sobre la firma digital que contiene). En el título del documento Writer veremos también la palabra Signed, indicando que el documento efectivamente está firmado (ver Figura 5).
LA FIRMA DIGITAL SE PERDERÁ ANTE UN INTENTO DE MODIFICACIÓN
Figura 2. Ventana de confirmación de firma digital correcta y adición de nuevas firmas.
38
Hagamos un experimento para comprobar cómo se perdería la firma ante un intento de modificación de un documento firmado digitalmente. Para ello, con el documento recién firmado abierto, modificamos el texto, añadiendo lo que se nos ocurra (por ejemplo, un simple espacio en blanco). En cuanto queramos grabar los cambios, OpenOffice nos advertirá que el documento ha sufrido cambios y
Número 66
Tal y como hemos comentado en los primeros ejemplos, es posible firmar digitalmente una macro desarrollada para OpenOffice. El objetivo es ofrecer al usuario garantías de que la macro está programada por una organización o persona de confianza (que demuestra ser quien dice ser firmándola digitalmente). El usuario podrá indicar a OpenOffice que a la hora de ejecutar macros contenidas en un documento, adopte una política de seguridad alta, de tal forma que solo ejecute aquellas que han sido firmadas digitalmente por alguien de confianza. Veamos cómo hacerlo. Supongamos que abrimos un documento Word o Calc que contiene una macro firmada digitalmente. Al hacerlo, nos encontraremos con un mensaje de alerta como el de la Figura 6. Si nos fijamos, podremos ver que el mensaje nos indica que la macro ha sido firmada por “Juan Antonio Pereira” y hay un botón disponible para ver más información sobre dicha firma digital. Una vez examinada la firma, y tras reconocer al firmante como alguien en el que podríamos confiar de aquí en adelante, se lo haremos saber a OpenOffice marcando la casilla Always trust macros from this source de esa misma ventana. Por defecto, cuando OpenOffice se encuentra con una macro de una persona
Figura 6. Alerta de OpenOffice ante el intento de ejecución de una macro.
37-40 Taller (Firma Digital)
7/4/06 12:37
Página 39
FIRMA DIGITAL
AUTENTICACIÓN DEL CLIENTE WEB
Figura 7. Establecer un nivel de seguridad alto para la ejecución de macros.
que no hemos indicado que sea de nuestra confianza, nos alertará con un mensaje. Podemos señalar que solo se ejecuten macros de entidades o personas en las que confiamos (y que no nos moleste con mensajes ante otras de dudosa procedencia), estableciendo un nivel de seguridad alto. Para ello, pulsaremos en Tools/ Options/Security, y en el botón “Macro Security”. Aquí marcaremos nivel de seguridad alto (high) (ver Figura 7). En esta misma ventana podemos pulsar en la pestaña “Trusted Sources” para comprobar cuáles son las personas o entidades en cuyas macros firmadas confiamos actualmente. Lo visto hasta ahora es el procedimiento de actuación ante macros firmadas digitalmente, pero ¿cómo podemos firmar nosotros mismos, como desarrolladores, nuestras propias macros? Para esta tarea debemos de tener a la vista el código fuente de la macro en cuestión, pulsando en Tools/Macros/Organize macros/OpenOffice.org Basic... Seleccionamos la macro a firmar y pulsamos el botón “Edit”. Ahora seguiremos el mismo camino que para firmar un documento Writer, es decir, pulsaremos en File/Digital Signatures... y añadiremos la firma digital asociada a alguno de nuestros certificados digitales. El resultado podemos verlo en la Figura 8.
Figura 8. Macro en OpenOffice.org firmada digitalmente.
Los certificados digitales también pueden usarse para autenticar al cliente frente a un servidor web. Un ejemplo: supongamos que queremos acceder a la web de la Agencia Estatal de Administración Tributaria para consultar nuestras deudas con el fisco. La web de la agencia, disponible en www.aeat.es, contiene ciertas medidas de seguridad, basadas en el uso de certificados digitales por parte del cliente. Así, si pulsamos en Oficina virtual / Consulta de Deudas, el mensaje es claro: “Usted necesita disponer de un certificado de identidad de usuario para acceder a estas opciones”. Es decir, debemos de haber instalado previamente en nuestro navegador, tal y como hemos explicado en los párrafos anteriores, un certificado digital; en concreto, no un certificado cualquiera, sino uno emitido por una AC en la que la Agencia Tributaria confía y por consiguiente autoriza. La lista completa de autoridades de certificación autorizadas por la AEAT está disponible aquí: http://www.aeat.es/ prestelem/certauto.htm. Por tanto, al intentar acceder al apartado Consulta de deudas, si disponemos de un certificado adecuado, nuestro navegador nos mostrará una ventana como la de la Figura 9, indicándonos que elijamos el certificado válido de todos los posibles.
TALLER LINUX
No debemos confundir el certificado digital de cliente, con el certificado de servidor seguro. Cuando nos conectamos a un servidor seguro (protocolo HTTPS), éste se identificará y cifrará las comunicaciones usando un certificado digital de servidor. Todo esto será transparente al usuario sí, y solo sí, el certificado digital de servidor seguro ha sido emitido por una Autoridad de Certificación en la que nuestro navegador confía. Es decir, está incluido en la pestaña “Authorities” del gestor de certificados digitales de nuestro navegador (ver Figura 10). Es muy importante que cuando compremos un certificado de servidor seguro, lo hagamos a una AC cuyos certificados de autoridad ya vengan preinstalados en los navegadores (Firefox, Internet Explorer, Opera...), pues en caso contrario, cuando un usuario entre en nuestra web segura recibirá un aviso del navegador indicando que no dispone aún de información sobre si debe confiar o no en dicha web, más en concreto en el certificado emitido por una Autoridad de Certificación desconocida. Pero este mundo de los certificados digitales de servidor es otro tema que podríamos abordar en un nuevo taller.
Figura 10. Pestaña “Authorities” con los certificados digitales de las Autoridades en las que confiamos.
FIRMA DE MENSAJES DE CORREO
Figura 9. Ventana de Firefox solicitando la selección de un certificado para identificarnos como usuario válido.
Normalmente solo tendremos uno, y para evitar el paso anterior es posible indicar en las opciones de nuestro navegador que se autoseleccione. En Firefox, por ejemplo, esta opción está disponible en Edit / Preferences / Advanced / Security / Certificates. Ahí pulsaremos “Select one automatically” si queremos que Firefox autoseleccione el certificado de cliente cada vez que un servidor web nos pida identificación, o “Ask me every time”, si queremos seleccionarlo manualmente.
Número 66
Para finalizar, veamos uno de los usos más extendidos de la firma digital. Nos referimos a la firma de mensajes de correo electrónico. En estas líneas explicaremos cómo configurar Thunderbird para este menester. Hay que hacer notar que no es necesario disponer de un certificado digital de una AC para firmar digitalmente un mensaje, es posible hacerlo también mediante el uso de GPG, pero Thunderbird está perfectamente preparado de serie para el soporte de firma digital con certificados digitales, y no así para firma con GPG (siendo necesario instalar un plugin para esto último). Para instalar el certificado digital en esta aplicación de correo, seguiremos un camino similar al recorrido en Firefox: Edit / Preferences / Security / View Certificates / Import. Una vez importado el certificado de cliente, debemos de asegurarnos, pulsando en la misma ventana, dentro de la
39
37-40 Taller (Firma Digital)
TALLER LINUX
7/4/06 12:37
Página 40
FIRMA DIGITAL
pestaña “Authorities”, que la AC de la que hemos obtenido el certificado es de nuestra confianza y que, en concreto, la validamos como una AC que emite certificados con los que poder firmar un mensaje de correo. Pincharemos sobre el nombre de la AC y luego en Edit. Obtendremos una ventana como la de la Figura 10 de la página anterior. Debemos asegurarnos de que hemos depositado nuestra confianza en los certificados de dicha AC para permitirnos firmar mensajes de correo. Una vez instalado el certificado, le indicaremos a Thunderbird en qué cuenta de correo electrónico queremos usarlo (los certificados digitales van asociados a una cuenta de correo electrónico, como juanan@diariolinux.com. Solo podremos usar ese certificado para firmar correos de esa cuenta). El proceso es sencillo: pulsaremos en Edit / Account Settings /. A continuación seleccionaremos la cuenta de correo asociada al certificado (en mi caso juanan@diariolinux.com) y desde ahí pulsamos sobre la opción Security. Dentro de la caja “Digital Signing” elegiremos el certificado adecuado pulsando en “Select...” y aceptaremos hasta salir de este cuadro de diálogo. Para firmar un mensaje de correo electrónico con el certificado que acabamos de indicar, crearemos un nuevo mensaje (asegurándonos de que el emisor es el mismo
Figura 11. Desde el icono Security podemos indicar nuestra intención de firmar digitalmente un mensaje en Thunderbird.
Figura 12. Configuración de una cuenta de correo para permitir mensajes firmados digitalmente.
usuario que indica el certificado, en este caso juanan@diariolinux.com) y cuando hayamos terminado, antes de enviarlo, pulsaremos en Options / Security / Digitally sign this message (también disponible en la flechita de la parte derecha del icono Security de la barra de herramientas, como se aprecia en la Figura 11). Para hacer pruebas, recomendamos al lector que se autoenvíe un mensaje de correo electrónico firmado. Al recibirlo, el usuario verá el icono de un lápiz entero en la parte derecha de la cabecera del mensaje, indicando que el mensaje está firmado y se reconoce la firma (disponemos de la clave pública del usuario en nuestro almacén de certificados digitales). Si no tuviéramos la clave de este usuario, el icono del lápiz aparecería roto.
CONCLUSIONES La certificación digital aún sigue siendo un mundo desconocido para el usuario medio, pero cada día más y más personas se ven en la necesidad de hacer uso de esta tecnología que poco a poco se va consolidando. La gran mayoría de las autoridades de certificación solo disponen de información para instalar, configurar y usar certificados digitales en plataformas Windows, pero como hemos visto en este taller, los sistemas operativos Linux y sus aplicaciones están perfectamente preparadas para la firma digital. Esperemos que cuando el DNI digital se implante, las aplicaciones Linux permitan hacer uso del mismo para firmar nuestros documentos e identificarnos como usuarios válidos ante terceros. ■
41-43 Taller (NVClock)
7/4/06 12:38
Página 41
>>>
TALLER LINUX NVCLOCK
Overclocking en Linux de tarjetas NVIDIA JORGE LÓPEZ
jlopez@iberprensa.com
l uso conjunto de los controladores oficiales de NVIDIA y las herramientas de overclocking como NVClock permite aumentar las velocidades predeterminadas de la memoria y el procesador de la tarjeta gráfica para acelerar los juegos y aplicaciones tanto en 2D como en 3D.
http://www.NVIDIA.com en la sección Download drivers, donde seleccionamos la opción Graphics Driver->GeForce and TNT2->Linux IA32 para descargar el paquete correspondiente, con extensión RUN. Cuando realicemos la descarga y su instalación, podemos comprobar su funcionamiento desde la consola de texto con el comando:
E
glxinfo NVClock.
Tarjeta gráfica NVIDIA 6600.
El overclocking ha estado ligado a la historia de los ordenadores desde su origen, ya que permite conseguir velocidades muy superiores a las ofrecidas por los fabricantes para sus productos, especialmente en los microprocesadores y tarjetas gráficas. Esta técnica acelera el funcionamiento de los programas y su rendimiento, siendo su principal desventaja el sobrecalentamiento que produce, que puede originar desde cuelgues del equipo a chips quemados e inutilizados. A pesar de este problema, si se utilizan las herramientas adecuadas a velocidades no excesivas, probando en pequeños rangos un tras otro hasta producir efectos ne-
gativos en el sistema (este factor indica que si se sigue elevando es posible quemar la tarjeta), no representa ningún problema físico y vamos a poder alcanzar velocidades más elevadas que incluso con chips superiores. Como precaución, no es recomendable nunca aumentar en un valor mayor del 25 por ciento ninguna de las frecuencias. Por último, debemos saber que tanto las frecuencias del procesador gráfico como de la memoria no dependen exclusivamente del chip integrado, sino también del montador o la arquitectura interna, pudiendo darse el caso que en un mismo chip, por ejemplo un FX5200 con 128 MB de RAM, la GPU funcione a 250 y en otro a 270, permitiendo mayores rangos en los aumentos de la frecuencia.
REQUISITOS PREVIOS Antes de comenzar a incrementar las velocidades predeterminadas de la tarjeta, es necesario instalar los controladores oficiales de NVIDIA, disponibles en un único paquete para todas las distribuciones desde la página
donde debemos encontrar la línea direct rendering: Yes para verificar la existencia de la nueva aceleración gráfica.
NVCLOCK Es la herramienta más completa disponible en Linux para realizar funciones de overclocking en cualquier tarjeta gráfica que incluya un chip NVIDIA. Entre sus múltiples características es posible destacar: cambio de las velocidades del procesador y la memoria de las tarjetas, control de temperaturas, ajuste de la velocidad de los ventiladores, cambio de la calidad de imagen mostrada y la posibilidad de utilizarse en la consola de texto o mediante un interfaz gráfico para KDE y otro para GNOME. Todos los comandos que ejecutemos con NVClock deben realizarse como superusuario root para que surtan efecto, y no debe estar en ejecución ninguna aplicación o juego que utilice OpenGL para funcionar. Su página oficial se encuentra en http://www.linuxhardware.org/nvclock ■ INSTALACIÓN
El método más sencillo para instalar NVClock es mediante su código fuente, disponible desde su página web en la sección Download. Para realizar la compilación es necesario contar con GCC y G++ y las librerías de desarrollo de GTK2 y QT si queremos utilizar los interfaces gráficos. Finalizada la descarga del programa, realizamos su compilación e instalación, para lo que descomprimimos el archivo:
Nota Modificar las velocidades predeterminadas de la memoria y la GPU puede provocar daños irreversibles en la tarjeta que no son cubiertos por ninguna garantía, siendo responsabilidad de cada usuario los cambios realizados.
tar xvzf nvclock0.8b.tar.gz Descarga de los controladores.
Número 66
41
41-43 Taller (NVClock)
TALLER LINUX
7/4/06 12:38
Página 42
NVCLOCK
Accedemos al nuevo directorio:
■ COMANDOS BÁSICOS
cd nvclock0.8b
Existen un conjuntos de comandos básicos para trabajar con NVClock:
y comprobamos que todas las librerías necesarias estén disponibles con:
./configure Al finalizar se muestra un mensaje con las opciones que van a estar disponibles, separando tanto la herramienta de texto como las gráficas de GTK2 y QT, por lo que compilamos la aplicación:
nvclock muestra los parámetros disponibles para ejecutar en la aplicación.
nvclock -l indica las opciones OpenGL existentes en nuestra tarjeta, y
quen su inestabilidad, como la detención del servidor gráfico o de programas de bajo consumo como el comentado glxgears. Por ejemplo, partiendo de un valor inicial de 300, la modificamos a 310 con:
nvclock -n 310 informándose en pantalla de los nuevos valores utilizados. Si queremos hacer uso de una frecuencia nueva mayor al 25 por ciento del total (acción nunca recomendable), podemos utilizar el parámetro -f para forzarlo, por ejemplo con:
nvclock -r make y por último instalamos los archivos y directorios en las carpetas correspondientes del sistema ejecutando:
make install
nvclock -f -n 400 restaura las velocidades originales de la tarjeta, ya que cualquier cambio que hagamos se queda activo automáticamente hasta que reiniciemos el servidor gráfico o ejecutemos este comando. Si contamos con más de una tarjeta gráfica instalada en el ordenador, podemos especificar cada una de ellas con:
■ INFORMACIÓN DE LA TARJETA
Antes de realizar ningún cambio, es necesario conocer los dos parámetros destinados a obtener las características de la tarjeta, estando disponibles:
nvclock -i muestra toda la información disponible relacionada con la tarjeta, como su arquitectura, ejecución multiproceso, cantidad y tipo de memoria, temperaturas y versión de la BIOS, y
nvclock -s que indica en las líneas Card: nvidia Card number: 1 Memory clock: Mhz GPU clock: Mhz el modelo de tarjeta utilizado, su número de identificación en el sistema, la velocidad de la memoria y la velocidad de la GPU, y la unidad de procesamiento gráfico, siendo éstos sus valores predeterminados que son los que podemos aumentar.
Advertencia en el cambio de la velocidad.
nvclock -c númeroDeTarjeta ■ VELOCIDAD DE LA MEMORIA
siendo númeroDeTarjeta un número entero desde 1 hasta la última tarjeta que poseamos. También podemos comprobar el correcto funcionamiento de la aceleración gráfica ejecutando el programa que se adjunta en OpenGL con el comando:
glxgears que muestra tres pequeñas ruedas girando a gran velocidad, por lo que si su movimiento es lento existe algún problema en la aceleración. Por último, al hacer las distintas pruebas será frecuente que el servidor se quede colgado, pudiendo reiniciarlo con la combinación de teclas “Ctrl+Alt+Backspace”.
42
En las tarjetas gráficas NVIDIA es en la memoria donde mayor cuello de botella se suele originar, por lo que es la frecuencia que mayor rendimiento va a ofrecer, pudiendo modificarse en intervalos de 25 en 25 a partir del valor predeterminado en la tarjeta. Podemos cambiar la velocidad con el comando:
nvclock -m velocidad Por ejemplo:
nvclock -m 550 para la frecuencia 550.
■ VELOCIDAD DE LA GPU
Aumentar la frecuencia del procesador gráfico permite ejecutar un mayor número de instrucciones por segundo, útil principalmente para aquellos juegos o aplicaciones gráficas con un funcionamiento lento. Para modificar la velocidad de la GPU utilizamos el comando:
nvclock -n velocidad
Información de la tarjeta instalada.
para un valor de 400.
siendo velocidad la nueva frecuencia que vamos a activar, siempre partiendo de los valores ofrecidos por la ejecución de nvclock -s y en pequeños valores de aumento de cinco en cinco hasta obtener los resultados que queramos, o errores gráficos que indi-
Número 66
Aumento de la velocidad en el juego Slune. ■ CONTROL DE LAS TEMPERATURAS
Para evitar daños físicos a la tarjeta es necesario comprobar a intervalos regulares de tiempo la temperatura alcanzada por el procesador gráfico, que podemos mostrar con el comando
41-43 Taller (NVClock)
7/4/06 12:38
Página 43
NVCLOCK
nvclock -i en las líneas siguientes: --Sensor info - Sensor: GPU Internal Sensor GPU temperature: 65C siendo necesario que en GPU temperature: 65C nunca se superen los 80ºC para evitar que se queme. Esta información únicamente está disponible en aquellas tarjetas más recientes, con chip NV43, NV44 o NV47, por lo que si contamos con un modelo anterior que no indica su temperatura actual, los intervalos de prueba deben ser lo menores posible.
■ OTROS COMANDOS
NVClock incorpora otros parámetros adicionales a los comentados:
nvclock -P activa nuevas líneas de procesamiento mediante el cambio del número de pipelines utilizados, disponible únicamente en chips NV4X.
TALLER LINUX
se muestra que las velocidades predeterminadas de la tarjeta son: Card: NVIDIA Geforce 6600 Card number: 1 Memory speed: 501.187 MHz Core speed: 299.250 MHz Por lo que vamos a aumentar tanto el procesador como la memoria, probándolo en un principio con:
nvclock -S
nvclock -n 340 -m 550
modifica el brillo de la pantalla, con soporte para las tarjetas gráficas NV4X de los portátiles, y
El rendimiento se ha incrementado, pero no lo suficiente, por lo tanto lo volvemos a aumentar:
nvclock -a opción=valor nvclock -n 370 -m 600
■ VELOCIDAD DEL VENTILADOR
Si nuestro objetivo es reducir el ruido producido por el ventilador incluido en la tarjeta gráfica, NVClock permite adaptar su velocidad, siendo necesario forzar su uso, ejecutando:
cambia los valores utilizados por OpenGL para variar la calidad de la imagen mostrada, con opciones como el alisado de bordes, el sincronismo vertical o los filtros anisotrópicos, cuyos valores podemos ver ejecutando:
siendo ahora una velocidad suficiente, pero al comprobar la temperatura con el juego y la instrucción:
nvclock -f -F valor
nvclock -i nvclock -q opción
donde valor es un número comprendido entre 10 y 100, que indica el porcentaje permitido de su capacidad máxima. ■ HERRAMIENTAS GRÁFICAS
NVClock incorpora dos interfaces gráficos para facilitar su uso, uno para GNOME que iniciamos ejecutando:
nvclock_gtk y otro para KDE ejecutando:
nvclock_qt Ambas herramientas poseen un funcionamiento similar y nos van a permitir obtener una amplia información de la tarjeta gráfica y modificar cada una de Interfaz gráfico en KDE. sus opciones internas, como las frecuencias utilizadas. La herramienta de GNOME destacada por ofrecer opciones adicionales como el cambio en la calidad de la imagen y el monitorizado de las temperaturas; mientras que la de KDE permite generar archivos de configuración para el servidor gráfico con la finalidad de activar características como la salida de televisión.
CASO PRÁCTICO Uno de los últimos juegos en aparecer para Linux, Quake IV, requiere una tarjeta gráfica de última generación para funcionar correctamente, por lo que se ha instalado un modelo con chip 6600, pero no se ha alcanzado el rendimiento esperado, siendo necesario realizar técnicas de overclocking hasta conseguirlo. Al ejecutar:
nvclock -s
se muestra un valor de 87ºC, excesivo para el chip, por lo que reducimos a un valor intermedio, que es el que mejor se adapta a la combinación de tarjeta y juego
nvclock -n 360 -m 580
CONCLUSIONES NVClock permite controlar todo el funcionamiento interno de una tarjeta gráfica NVIDIA. Destacan las posibilidades de aceleración de la misma para poder ejecutar juegos o aplicaciones a una velocidad similar a la alcanzada con un modelo de tarjeta superior. ■
Tabla 1. Pruebas de rendimiento GF FX5200 128 MB y GF 6600 256 MB Para realizar las pruebas de rendimiento mostradas en el taller se han utilizado dos tarjetas gráficas, de menos a más prestaciones: GF FX5200 y GF 6600. En la primera fila de las tablas se muestran las velocidades utilizadas en el procesador y en la memoria, desde las predeterminadas en las tarjetas, hasta los últimos valores estables, mientras que en las restantes filas se indica la aplicación ejecutada junto a la velocidad obtenida. GF FX5200 128 MB GPU/Memoria glxgears Planet Penguin Cube GL-117
250/400 1438 84 189 36
260/400 1440 85 191 36
260/420 1491 87 195 37
270/420 1492 88 196 37
280/420 1493 90 198 37
GF 6600 256 MB GPU/Memoria Glxgears Planet Penguin Cube GL-117
300/500 310/500 4012 4042 260 265 375 390 40 40
Número 66
310/520 4167 275 425 41
320/520 370/520 370/600 4175 4250 4862 280 296 310 425 445 455 41 43 43
43
44-45 Hardware (NVIDIA)
7/4/06 12:39
Página 44
>>>
HARDWARE TARJETA GRÁFICA NVIDIA 6600
Instalación de una tarjeta gráfica NVIDIA 6600 JORGE LÓPEZ
jlopez@iberprensa.com
as tarjetas gráficas con chip NVIDIA son las que mayor rendimiento ofrecen en Linux gracias a su excelente funcionamiento tanto en 2D como en 3D. Aunque es posible utilizarlas con los controladores libres incluidos en el servidor gráfico, éstos no incorporan aceleración gráfica 3D, siendo necesario instalar los controladores propietarios disponibles. La tarjeta instalada, una Club 3D 6600 AGP con 256 MB de memoria RAM, permite ejecutar todos los juegos disponibles en Linux a máxima velocidad, incluyendo aquellos más exigentes como Doom III o emuladores con elevados requisitos como Mugen de la consola Nintendo 64. Adicionalmente, este chip permite realizar overclocking, controlar las temperaturas alcanzadas y modificar la velocidad del ventilador gracias al uso de la herramienta NVClock, explicada en Todo Linux 65.
L
paquetes para arquitecturas de 64 bits con el nombre Linux IA 64 y Linux AMD64/ EMT64. A continuación presionamos en “Go!” y, por último, realizamos la descarga indicada por el enlace en STEP 2, de nombre NVIDIA-Linux-x86-1.0-8178-pkg1.run al escribir este taller, aunque puede cambiar debido a las continuas actualizaciones en las que se incorpora soporte para nuevas tarjetas, optimizaciones en la velocidad, nuevas funciones y mejoras en la estabilidad. En todas las distribuciones se ha partido de una primera instalación en la que el servidor gráfico se ha configurado para utilizar los controladores libres nv, sin aceleración 3D, para posteriormente instalar los oficiales.
DEBIAN
init 3 para volver al servidor gráfico, donde debe mostrarse una pantalla inicial con el logotipo de NVIDIA. Podemos comprobar el correcto funcionamiento de la aceleración ejecutando:
glxinfo
El proceso para aumentar la aceleración en Debian se centra en la instalación de las cabeceras del núcleo para hacer la recompilación del controlador y la posterior ejecución del paquete provisto por NVIDIA: 1. Si nos encontramos en el servidor gráfico presionamos “Ctrl+Alt+F1” para abrir una consola de texto, donde nos identificamos como root y ejecutamos:
init 1
Tarjeta gráfica NVIDIA 6600.
mos de nuevo “No” para que no se descargue un núcleo desde el servidor NVIDIA, por lo que se compila el nuevo módulo con las cabeceras instaladas. Por último, presionamos en “Yes” para que se actualice automáticamente el archivo del servidor gráfico. 5. Para finalizar ejecutamos:
para entrar en modo texto, que detiene todos los procesos en ejecución y nos pide de nuevo la contraseña de root. 2. A continuación instalamos las cabeceras del núcleo ejecutando:
Debe mostrarse la línea:
direct rendering: Yes.
FEDORA Al contrario que en las restantes distribuciones, en Fedora no es necesario utilizar el paquete oficial de NVIDIA, sino que es posible realizar la instalación mediante un repositorio externo: 1. En primer lugar añadimos el repositorio Livna, ejecutando desde una terminal de texto como root:
rpm -ivh http://rpm.livna.org /livna-release4.rpm
CONTROLADORES NECESARIOS Independientemente del chip NVIDIA que integre nuestra tarjeta, existe un paquete que incluye todos los controladores necesarios que, aparte de la aceleración gráfica, permiten activar otras funciones útiles como la salida de vídeo o el uso de dos monitores. Para descargar el controlador, necesario para Debian y Ubuntu, abrimos la página http:/www.nvidia.com; presionamos en DOWNLOAD DRIVERS->Download Drivers; en la sección START HERE elegimos Graphics Driver->GeForce and TNT2->Linux IA32, donde también están disponibles los
44
aptitude install kernel-headers-`uname -r` 3. Accedemos al directorio donde hemos descargado el archivo RUN e iniciamos la instalación:
2. A continuación instalamos los controladores de NVIDIA junto a sus dependencias:
yum install nvidia-glx 3. Y realizamos la configuración del servidor gráfico automáticamente ejecutando:
sh NVIDIA-Linux-x86-1.0-8178-pkg1.run 4. Se muestra el menú de instalación, donde presionamos “No” para continuar en el primer mensaje de información, aceptamos la licencia con “Accept” y selecciona-
Número 66
/usr/sbin/nvidia-config-display enable 4. Por último, reiniciamos el servidor gráfico.
44-45 Hardware (NVIDIA)
7/4/06 12:39
Página 45
TARJETA GRÁFICA NVIDIA 6600
MANDRIVA
export CC=gcc-3.4
Gracias al uso de la herramienta urpmi junto a un repositorio externo, la instalación de los nuevos controladores se realiza sin necesidad de compilar ningún programa: 1. Abrimos una terminal de texto en la que nos identificamos como root, y añadimos el nuevo repositorio ejecutando:
urpmi.addmedia plf-nonfree ftp://ftp.univ-orleans.fr /logiciel-libre/plf/mandriva /2006.0 with hdlist.cz 2. A continuación descargamos el paquete que contiene el controlador:
urpmi nvidia-xorg donde se muestran tres librerías de dependencias, elegimos la primera presionando “1” y “Enter”, y aceptamos la instalación. 3. Finalizado el proceso, abrimos desde cualquier editor de texto el archivo /etc/X11/xorg.conf y en la sección Section Device añadimos el parámetro nvidia a la línea Driver en sustitución del existente. 4. Por último, reiniciamos el servidor gráfico para activar la nueva aceleración.
SUSE SUSE es la distribución en la que más sencilla resulta la instalación de los controladores, ya que la herramienta YaST2 automatiza todos los pasos a seguir: 1. Iniciado el servidor gráfico, abrimos YOU (YaST Online Updater), presionando con el botón derecho del ratón en el icono SUSE Watcher de la barra de tareas y eligiendo la opción Iniciar YOU. 2. Después de escribir la contraseña de root, elegimos cualquier servidor como fuente de la instalación, y presionamos “Siguiente” para actualizar con los parches disponibles. 3. En la nueva ventana, seleccionado el filtro Parches YOU, activamos el paquete indicado por la línea Download NVIDIA(r) Graphics Driver.
Otras tarjetas compatibles Gracias a los controladores suministrados por NVIDIA, en los que se incluye soporte para todos sus chips existentes, podemos conseguir la aceleración con los mismos pasos dados en el taller, independientemente de la tarjeta gráfica que poseamos.
HARDWARE
6. Por último, volvemos al modo gráfico:
sudo init 3 En caso de producirse un error por no encontrar alguna de las herramientas necesarias, podemos instalarlas ejecutando:
sudo aptitude install binutils gcc-3.4 gcc make Selección de los paquetes mediante YOU.
4. Presionamos en “Aceptar” y se muestra la licencia del controlador en la que elegimos “Instalar parche”. 5. Finalizada la descarga, modificamos el archivo /etc/X11/xorg.conf asignando en Section Device el controlador nvidia al parámetro Driver y reiniciamos el servidor gráfico para poder utilizar la nueva aceleración. Si la instalación de SUSE es nueva y el chip de la tarjeta reciente, es posible que no se muestre el servidor gráfico correctamente al utilizar el controlador libre nv, por lo que debemos abrir una consola de texto presionando “Ctrl+Alt+F1”, donde nos identificamos como root, y modificamos el archivo /etc/X11/xorg.conf para utilizar el controlador vesa en su lugar y poder realizar la instalación de los suministrados por NVIDIA.
UBUNTU Al ser una distribución basada en Debian, la instalación en Ubuntu de los nuevos controladores se realiza con pasos similares: 1. Instalamos las cabeceras del núcleo:
sudo aptitude install linux-headers-`uname -r` 3. Abrimos una consola de texto presionando “Ctrl+Alt+F1” y accedemos al modo texto:
sudo init 1 4. Iniciamos la instalación del controlador accediendo previamente a su directorio de descarga:
sh NVIDIA-Linux-x86-1.0-8178 -pkg1.run Al encontrarnos en modo monousuario estamos identificados como root, por lo que no es necesario utilizar el comando sudo. 5. El compilador utilizado debe ser el mismo que el del núcleo, siendo el oficial la versión 3.4, que asignamos ejecutando:
Número 66
Problemas habituales La instalación de los controladores NVIDIA es una de las principales dificultades en las distribuciones Linux para obtener el máximo rendimiento del equipo, siendo los problemas más comunes: La aceleración no está activa. Si al realizar la instalación, al ejecutar:
glxinfo no se indica que esté activada la aceleración, debemos asegurarnos que en el archivo de configuración del servidor gráfico, /etc/X11/ xorg.conf (para todas las distribuciones excepto Debian Sarge que utiliza /etc/X11/XF86Config-4), se encuentre la línea (Section “Device”):
Driver “nvidia” que indica que se utiliza el controlador propietario, y si se encuentran en dicho archivo:
Load “GLcore” Load “dri” debemos eliminarlas para sustituirlas por (Section “Module”):
Load “glx” El sistema produce numerosos cuelgues en el servidor gráfico y en los programas. Las últimas mejoras visuales en el servidor gráfico X.org, como el uso de sombras y transparencias en las ventanas, produce una elevada inestabilidad al utilizar el controlador NVIDIA, que podemos corregir incluyendo la línea:
Option “RenderAccel” “false” dentro de la sección de la tarjeta gráfica del archivo de configuración de X.org.
45
46-49 Software (IDEs)
7/4/06 13:59
Página 46
>>>
SOFTWARE LINUX ENTORNOS DE DESARROLLO
Entornos integrados de desarrollo en GNU/Linux os Entornos Integrados de Desarrollo se han convertido en una herramienta casi imprescindible para la creación de software. Analizamos tres de los más utilizados en GNU/Linux. Un Entorno Integrado de Desarrollo es un programa que incorpora una serie de funcionalidades para facilitar la tarea de desarrollo de software. A este tipo de programas se les conoce como IDEs, que son las siglas de Integrated Development Enviroment. Los IDEs son muy prácticos ya que, como su nombre indica, integran muchas funciones en una sola herramienta, para las que tradicionalmente se requerían varios programas. Básicamente, las principales funciones con las que cuenta un IDE son las siguientes: Editor: Un completo editor de código con número de líneas visible, sintaxis coloreada (syntax highlighting) sensible al lenguaje, identación automática y otras características muy prácticas y útiles para programadores. Depurador: Es muy importante tener acceso al depurador desde el mismo programa desde donde estamos editando el código, ya que nos facilita el trabajo. Habitualmente permiten utilizar ventanas de inspección y puntos de ruptura (breakpoints). Gestor de proyectos: Para agrupar los ficheros que forman parte del mismo proyecto. Compilación y ejecución: Permiten tanto compilar los fuentes como ejecutarlos. Incluso podemos construir un fichero binario. Actualmente los entornos integrados de desarrollo han evolucionado bastante ampliando su funcionalidad. También se caracterizan por tener un intuitivo interfaz gráfico de usuario, aunque los primeros que salieron al mercado ya disponían de uno sencillo. Durante mucho tiempo los IDEs fueron desarrollados exclusivamente por empresas de software propietario como Borland, compañía pionera y que marcó una clara tendencia. Es el caso, por
L
46
ejemplo, del clásico Turbo C o Turbo Pascal. Con el paso del tiempo el software libre ha ido ganando terreno y algunos IDEs libres han superado a sus competidores comerciales. A continuación echaremos un vistazo a tres de los entornos de desarrollo más utilizados en GNU/Linux, dos de ellos, KDevelop y Eclipse, admiten el trabajo con varios lenguajes de programación. El tercero se desarrolló exclusivamente para C/C++ aunque actualmente permite la edición de código de otros lenguajes, su nombre es Anjuta y es un clásico dentro de los editores integrados para Linux.
ANJUTA El nombre completo de este IDE es Anjuta DevStudio y la última versión estable publicada bajo la licencia GPL es la 1.2.4, aunque se está trabajando en el desarrollo de la versión 2. Este entorno se diseñó para utilizarlo con el lenguaje C/C++ y para facilitar la tarea de desarrollo con las librerías GTK+ y con las de GNOME, es por ello que está claramente orientado a este tipo de desarrollo. Anjuta es uno de los entornos que goza de más popularidad en el desarrollo de aplicaciones bajo Linux y, además, con el paso del tiempo va ganando prestigio entre los programadores de aplicaciones GTK+. A continuación destacamos sus principales características: Gestión de proyectos: Permite organizar el código que estamos desarrollando en un proyecto con el objetivo de realizar una gestión más eficiente del mismo. Esta opción solo funciona para ficheros C/C++, aunque Anjuta permite editar también archivos de otros lenguajes como Java, Perl o Pascal. Editor integrado: Sirve para ampliar la personalización al usuario. Incorpora syntax highlighting, identación automá-
ARTURO FERNÁNDEZ afernandez@iberprensa.com
El asistente para tipos de proyecto de Anjuta.
tica y otras características típicas de los editores de código. Asistentes: Son muy prácticos para comenzar a trabajar y nos permiten crear distintos tipos de proyectos: ■ Consola: Aplicación sin interfaz gráfico pensada para ser ejecutada directamente sobre una shell. ■ GTK 2.0: Aplicación con interfaz gráfico de usuario basada en la versión 2.0 de las librerías GTK. ■ LibGlade 2.0: Librerías para el diseñador de interfaces Glade. ■ GTK 2.0 C++: Aplicación C++ con GTK. ■ GNOME 2.0 C++: Aplicación en C++ con las librerías de GNOME. ■ Componente Bonobo: Para crear componentes con la arquitectura Bonobo. ■ wxWindows: Aplicación basada en el toolkit gráfico multiplataforma wxWindows. ■ Xlib: Librería para X-Windows. ■ X Doc. App.: Aplicación tipo docklet para gestores de ventanas o entornos de escritorio. Estos asistentes también nos ofrecen detalles como la opción de incluir una licencia libre de forma automática en cada uno de los ficheros que forman parte del proyecto que va a ser creado.
Anjuta es el IDE abanderado de C/C++ en Linux y KDevelop es una gran herramienta para el desarrollo con Qt/KDE Número 66
46-49 Software (IDEs)
7/4/06 13:59
Página 47
ENTORNOS DE DESARROLLO
Proyecto recién creado con Anjuta y conexión inicial a CVS.
Pantalla inicial de Eclipse.
CVS: Integración con el control de versiones concurrente CVS. Depurador: Integración con el popular depurador gdb, permitiendo utilizar puntos de ruptura, ventanas de depuración y control de la pila de memoria. Glade: El diseño de interfaces gráficos se puede realizar a través de la integración con Glade, la popular utilidad para GTK y GNOME. Así, en el mismo programa podemos trabajar con los archivos de interfaz y con los de código.
está formada por varias compañías líderes en el sector informático como son, entre otras, IBM, HP, Oracle, Rational Software, SUSE, Red Hat y SAP. Eclipse ha evolucionado hasta convertirse en algo más que un editor, es un completo framework de aplicaciones para desarrollar software, ya no solo en Java, sino en otros lenguajes como C/C++ y PHP. Su arquitectura software está estructurada en plugins y el editor incluye un entorno para desarrollar nuestros propios plugins. Gracias a ellos la funcionalidad de Eclipse es bastante completa. Actualmente, el proyecto Eclipse se encuentra dividido en tres subproyectos complementarios: Core del editor integrado de desarrollo: Que incluye, además de un completo editor de código, una plataforma para trabajo colaborativo, un workspace para gestionar proyectos de código y el workbench construido sobre SWT y JFace. SWT (ver página 50) es un toolkit para construir componentes gráficos (widgets) en Java. En realidad, se basa en la idea original de AWT (creado por Sun Microsystems) de crear un toolkit nativo e independiente de la plataforma donde se ejecuta, pero superando sus limitaciones. JFace es otro toolkit desarrollado para complementar a SWT y superar así las limitaciones de AWT y Swing, los principales toolkits de interfaces de usuario existentes en Java. JDT: Son las siglas de Java Development Tooling y es como se denomina a un conjunto de herramientas que añaden funcionalidades muy útiles para el programador de Java. Entre ellas se encuentran la autocompletación de código, la información contextual sobre métodos de clases, la organización del código en proyectos, las distintas vistas de un proyecto (paquetes y ficheros), herramientas para compilar, ejecutar y depurar, las búsquedas de componentes de un
■ INSTALACIÓN
Muchas distros de Linux ofrecen un paquete binario para la instalación de Anjuta. Para la instalación en Debian o una distribución derivada de la misma, basta con ejecutar desde la línea de comandos:
#apt-get install anjuta Si deseamos realizar la instalación a partir del código fuente, debemos disponer básicamente de las librerías de desarrollo de GTK, ya que Anjuta se ha desarrollado con las mismas. La instalación sería como sigue:
$wget http://heanet.dl.sourceforge.net /sourceforge/anjuta /anjuta-1.2.4.tar.gz $tar -xzvf anjuta-1.2.4.tar.gz $cd anjuta-1.2.4 $make #make install
ECLIPSE Eclipse es un entorno de desarrollo inicialmente pensado para programar en el lenguaje Java. Surgió como una alternativa al resto de editores de Java que eran, en su mayoría, propietarios. Con el tiempo se creó la fundación Eclipse, que actualmente es la encargada de gestionar, desarrollar y promocionar el editor. Esta fundación
Número 66
SOFTWARE LINUX
proyecto y la refactorización de código. PDT: Entorno integrado para el desarrollo de plugins (en inglés Plug-in Development Enviroment). Gracias a este entorno podemos añadir nueva funcionalidad al entorno Eclipse de forma fácil. Esta característica lo diferencia de la gran mayoría de IDEs, ya que aunque muchos están orientados a plugins, no incorporan un entorno integrado para el desarrollo de los mismos. A continuación, resumimos de forma breve, las principales características de Eclipse: Orientado a plugins: Son fundamentales en la arquitectura de software de Eclipse y una de las bases gracias a la cual cada día se convierte en un entorno de desarrollo más completo. Completo editor: Funcionalidades como la refactorización de código, la información contextual de componentes o las herramientas de depuración lo hacen muy completo y versátil. Proyectos: El explorador de proyectos se puede visionar en distintas vistas, entre ellas la de componentes y la de ficheros. Servidores de aplicaciones: Existen una serie de plugins para controlar la ejecución de distintos servidores de aplicaciones Java como Tomcat y JBoss. Control de versiones: Integración con CVS y Subversion, entre otros. Ant: Integración con la herramienta Java de compilación y despliegue de aplicaciones, incluyendo la opción de depuración y la importación de proyectos a partir del fichero build.xml. Multiplataforma: Existen versiones para GNU/Linux, Mac OS X, MS Windows y Solaris. Soporte para la versión 5 del JDK. Multilenguaje: A través de plugins podemos utilizar Eclipse para desarrollar en lenguajes distintos a Java. Actualmente soporta lenguajes como PHP, Python, Pascal y C/C++, entre otros muchos. Asistentes: Incluye un completo conjunto de asistentes para crear aplicaciones, importar proyectos y otras funciones. JUnit: Se integra con el popular framework de pruebas unitario para el lenguaje Java. ■ INSTALACIÓN
Para instalar Eclipse necesitaremos tener instalado el entorno de ejecución de Java
47
46-49 Software (IDEs)
SOFTWARE LINUX
7/4/06 13:59
Página 48
ENTORNOS DE DESARROLLO
paquete binario, para ello ejecutaremos desde la línea de comandos:
#apt-get install eclipse
KDEVELOP
Eclipse en acción.
(JRE) y además el kit de desarrollo (SDK) si vamos a utilizarlo para programar en este lenguaje. Podemos encontrar distintos paquetes binarios con SDKs y JREs para las distintas distribuciones de Linux. No obstante, también podemos descargar la implementación, gratuita pero no abierta, del SDK y JRE de Sun Microsystems de su site oficial. En la página oficial de descargas de Sun existe abundante documentación sobre la descarga e instalación de este software. En Debian contamos con varios paquetes con implementaciones libres de Java, como es el caso de la máquina virtual Kaffe (paquete kaffe) y el paquete free-java-sdk, que es un completo SDK para Java. Una vez que tengamos instalado y configurado el entorno Java, podemos pasar a la instalación de Eclipse. La última versión estable liberada es la 3.1 y podemos descargárnosla de su web en la que se distribuye un binario listo para instalar:
$wget http://www.mirror.ac.uk/mirror /download.eclipse.org/eclipse/\ downloads/drops/ \ R-3.1.2 200601181600/eclipse -SDK-3.1.2-linux-gtk.tar.gz Si observamos el nombre del fichero, veremos que contiene las letras gtk, lo que indica que en Linux necesita las librerías gráficas del toolkit GTK+. Estas librerías son un requisito para ejecutar Eclipse en nuestro sistema operativo. Una vez descargado el fichero, pasaremos a descomprimirlo:
$tar -zxvf eclipse-SDK-3.1.2 -linux-gtk.tar.gz Y posteriormente podemos ejecutarlo accediendo al directorio creado y lanzando el binario eclipse. Si utilizamos Debian, podemos realizar la instalación directamente desde el
48
KDevelop es el IDE del proyecto KDE. En el año 1.998 se comenzó a desarrollar este entorno integrado de desarrollo bajo el proyecto del mismo nombre. Actualmente la última versión estable es la 3.3.1 y se distribuye bajo la licencia libre GPL. Inicialmente se pensó para realizar proyectos de desarrollo en el lenguaje C/C++, pero con el tiempo ha evolucionado adaptándose a otros lenguajes como Java, Ruby, Python y PHP.
El diseñador de intefaces de KDevelop.
Interfaz personalizable: El interfaz de KDevelop es totalmente configurable y se puede dividir en distintas zonas de trabajo. Por ejemplo, en la parte izquierda tenemos un explorador de ficheros que forman parte del proyecto, en el centro los archivos que estamos editando y en la parte inferior una ventana para depurar o una shell. Gestión de proyectos: Permite crear proyectos para organizar los distintos archivos con los que estamos trabajando. El archivo de proyecto guarda información sobre los ficheros que forman parte de dicho proyecto y sobre las características comunes que aplicamos a los mismos, manteniendo a la vez la individualidad de cada uno de ellos. Podemos crear un nuevo proyecto desde cero o importar el código que ya tengamos desarrollado creando de forma simultánea un nuevo proyecto con él. Visualizador de clases: Si estamos trabajando con un lenguaje orientado a objetos seguro que utilizamos clases. Pues bien, este visualizador nos será de gran ayuda porque nos permite ver de un vistazo el nombre de las clases, así como sus métodos y atributos y las
Número 66
relaciones entre clases como, por ejemplo, la herencia. Este visualizador organiza las distintas clases a modo de árbol, permitiendo expandir y contraer los distintos elementos de cada clase. Depurador: Permite integrar un depurador en una de las ventanas del editor. En concreto, se integra con GDB y con distintos depuradores de Java, ofreciendo la posibilidad de utilizar puntos de interrupción (breakpoints) o puntos de ruptura condicionales. Documentación: Podemos consultar distintos libros de referencia sobre los lenguajes y librerías que utilizamos gracias a la integración con el editor. Editor: KDevelop utiliza un completo editor de texto con características muy útiles para programadores como la identación automática de código, el coloreado de sintaxis (syntax highlighting) o la opción de utilizar marcadores en distintas líneas de código. Este editor está basado en el popular editor Kate de KDE. Se pueden abrir varios archivos de forma simultánea, y el editor mostrará cada uno en una pestaña (tab) distinta. Plugins: La arquitectura software de KDevelop está basada en plugins, lo que permite añadir o suprimir funcionalidad sin tocar el código con el que estamos trabajando. Control de versiones: Desde el mismo interfaz podemos enlazar nuestro proyecto con un control de versiones. KDevelop permite trabajar con los sistemas libres Subversion y CVS y con los propietarios Clearcase y Perforce. Asistentes: Incorpora distintos asistentes para crear de forma fácil varios tipos de proyectos, en especial de KDE, como por ejemplo aplicaciones simples, componentes KIOSlaves o applets para el panel de este escritorio. Templates: Las plantillas nos permiten crear de forma sencilla y rápida distintos tipos de archivo, en función del lenguaje que estemos utilizando. Autocompletado: A la vez que escribimos código se parsea éste, permitiendo el autocompletado del código en función del contexto y del tipo de lenguaje que estemos utilizando. Esta función es muy útil, ya que nos evita teclear nombre completos de funciones o métodos que empleamos con frecuencia. Visor de documentos: KDevelop integra y utiliza componentes de KDE lo que permite, por ejemplo, ver distintos tipos de archivos y acceder a ellos utili-
46-49 Software (IDEs)
7/4/06 13:59
Página 49
ENTORNOS DE DESARROLLO
zando protocolos diferentes. En general, cualquier tipo de archivo o protocolo soportado por Konqueror también sirve para KDevelop, ya que ambos utilizan los mismos componentes de KDE. Algunos de estos protocolos son FTP, SFTP, HTTP o algunos tipos de archivo como TARBALLS o ficheros comprimidos ZIP. Integración con Doxygen: Éste es un sistema de documentación automática de código. KDevelop permite a través de esta integración ejecutar Doxygen directamente desde el editor y visualizar la documentación generada en formato HTML, man o PDF. KDevelop cuenta también con un diseñador de interfaces gráficos de usuario cuya ejecución es independiente. Este diseñador está orientado a construir widgets utilizando las librerías gráficas de Qt y KDE. ■ INSTALACIÓN
La instalación de KDevelop se puede llevar a cabo desde los paquetes binarios o desde el código fuente. Por simplicidad recomendamos realizar la instalación a partir de los binarios específicos de la distribución de Linux que usemos. Existen binarios para distros como Debian, SUSE, Red Hat o Mandriva. Por ejemplo, en el caso de Debian basta con ejecutar como usuario root en la línea de comandos:
KDevelop editando código PHP.
$./configure $make #make install Antes de ejecutar el script configure, debemos fijar con los valores adecuados las variables de shell que nos indiquen el path absoluto donde se encuentran las librerías de Qt y KDE. Una vez realizada la instalación, lo ejecutamos desde la línea de comandos invocando al ejecutable kdevelop3. Si utilizamos KDE podemos lanzarlo igualmente desde el menú de aplicaciones.
CONCLUSIONES Los entornos integrados de desarrollo son una gran herramienta para el programador de software. Incluso, para algunos, podríamos decir que son una utilidad imprescindible en su trabajo diario. Dentro de la categoría de los entornos integrados de desarrollo, merece la pena
SOFTWARE LINUX
mencionar a Emacs, que aunque no es un IDE propiamente dicho, sí que podemos convertirlo en uno de ellos realizando una configuración adecuada. Emacs es un potente editor de texto con características propias de los IDEs como identación automática y syntax higlighting en función del lenguaje, integración con depuradores y control de versiones, entre otras muchas funcionalidades. La elección de un IDE u otro depende de varios factores, desde el lenguaje en el que se va a trabajar, hasta el tipo de aplicación que se va a desarrollar, pasando por el gusto personal. Por ejemplo, debemos tener en cuenta que no es lo mismo desarrollar una aplicación que no requiere interfaz gráfico de usuario a otra que sí lo precisa. Algunos IDEs incorporan un editor de interfaces que nos simplificará en gran medida el trabajo. Siguiendo con el ejemplo, también influye si vamos a desarrollar una aplicación para el entorno GNOME o KDE, un editor u otro resultará más adecuado, ya que están pensados para ello. Es el caso de KDevelop para el desarrollo KDE y Anjuta para GNOME/GTK+. En la Tabla 1 vemos una sencilla relación entre distintos toolkits gráficos y el soporte que ofrecen los IDEs analizados. Dado que disponemos de IDEs de gran calidad en GNU/Linux, no tenemos excusa para convertir nuestra máquina con nuestro sistema operativo favorito en una potente workstation para el desarrollo de software. ■
#apt-get install kdevelop3 Es recomendable instalar la documentación, así como ciertos plugins que nos pueden ser muy útiles. En el caso de Debian lo tenemos fácil, ejecutamos:
#apt-get install kdevelop3-doc kdevelop3-plugins Si nos decidimos por realizar la instalación compilando el código fuente, deberemos tener en cuenta que es necesario tener instaladas previamente las librerías de desarrollo de KDE y Qt. Para realizar este tipo de instalación utilizando los parámetros por defecto, ejecutaríamos una serie de comandos que mostramos a continuación:
$wget http://download.kde.org /download.php?url=stable/3.5.1 /src/kdevelop-3.3.1.tar.bz2 $bunzip kdevelop-3.3.1.tar.bz2 $tar -xf kdevelop-3.3.1.tar $cd kdevelop-3.3.1
Tabla 1. IDEs y toolkits Toolkit/IDE GTK+/GNOME Qt/KDE wxWindows AWT/Swing
Anjuta x – x –
KDevelop – x – –
Eclipse – – – x
Referencias Site del toolkit gráfico GTK+. http://www.gtk.org Site de la empresa desarrolladora de las librerías Qt. http://www.trolltech.com/ Site del toolkit multiplataforma wxWidgets. http://www.wxwidgets.org/ Editor integrado para trabajar con wxWidgets. http://wxworkshop.sourceforge.net/ CodeDragon, el IDE para wxWindows. http://wxstudio.sourceforge.net/ KDevelop, el IDE de KDE. http://www.kdevelop.org/ Completo Wiki sobre Kdevelop. http://www.kdevelop.org/mediawiki/index.php/Main_Page Web site del IDE Enjuta. http://www.anjuta.org/ Site del proyecto Eclipse. http://www.eclipse.org/ Plugins para Eclipse. http://eclipse-plugins.2y.net/eclipse/ Site principal de Emacs. http://www.gnu.org/software/emacs/
Número 66
49
50-54 Software (Swt)
7/4/06 12:41
Página 50
>>>
SOFTWARE LINUX SWT
Programación en SWT as librerías de desarrollo SWT se han convertido en una de las principales referencias en la programación gráfica, gracias a que están basadas en Java, lo que les permite ejecutarse en cualquier equipo sin necesidad de modificar su código. A esto se suma el hecho de haber implementado una librería nativa para cada sistema, destinado a tener la misma apariencia gráfica que el escritorio para el que se compile. La aparición de SWT ha permitido reemplazar muchos de los lenguajes utilizados para diseñar aplicaciones gráficas por uno solo que, además de ser multiplataforma (siendo únicamente necesaria la instalación de una máquina virtual Java), cuenta con un extenso número de librerías que permiten conservar la misma apariencia gráfica que el resto de los programas (GTK en el caso de Linux), al que contrario que otras GUIs de Java como AWT o Swing. A todas estas características se le suma la licencia libre utilizada por SWT, mediante la cual va a ser posible desarrollar sin ninguna restricción. Para realizar cualquier programa con SWT es recomendable instalar el IDE Eclipse, disponible en la página http://www.eclipse.org, donde también podemos encontrar múltiples programas de ejemplo y documentos de su funcionamiento.
L
que va a mostrar la aplicación y un entorno donde situar los elementos. ■ PANTALLA DE TRABAJO
El objeto Display, necesario en los programas SWT, representa la conexión entre el propio programa y el sistema gráfico utilizado. Se precisa uno solo para cada programa, y es el encargado de mostrar en pantalla las aplicaciones y de registrar los eventos que se suceden. Posee el constructor public Display() que podemos utilizar en los programas con:
Display pantalla = new Display();
■ ENTORNO DE TRABAJO
El objeto Shell representa una ventana que va a contener los distintos elementos del programa, como botones y cajas de texto. Con su constructor más habitual:
JORGE LÓPEZ jlopez@iberprensa.com
ra y un conjunto de clases similar, siendo el código básico:
import io.eclipse.swt.widgets.Display; import io.eclipse.swt.widgets.Shell; import io.eclipse.swt.SWT; que incluye las librerías SWT necesarias para mostrar ventanas, mientras que:
public class Programa { public void main() { Display pantalla = new Display(); Shell entorno = new Shell(entorno); shell.open(); while(!entorno.isDisposed()) { if(!pantalla.readAndDispatch()) { pantalla.sleep(); } } pantalla.dispose(); } }
public Shell(int pantalla, int estilo) podemos utilizar distintos estilos: BORDER, añade un borde; CLOSE, MIN y MAX, incluyen los botones de cerrar, minimizar y maximizar; y TITLE, para añadir un título a la ventana. El código de uso más habitual es crearlo con:
es la base del programa, donde se crea la clase principal main, un entorno de trabajo que al cerrarse libera la memoria ocupada en el sistema.
Shell entorno = new Shell(pantalla); y mostrarlo en la ventana utilizando:
shell.open(); Adicionalmente, la función:
shell.pack();
Programación del código base.
Entorno de desarrollo Eclipse.
produce que la ventana tenga el mismo tamaño que los elementos contenidos, reduciéndola habitualmente de su tamaño predeterminado.
UTILIZANDO SWT
■ ESTRUCTURA PRINCIPAL
Al igual que cualquier otro lenguaje de programación gráfico, SWT está constituido por un conjunto de clases que permiten insertar cada uno de los elementos que vayan a constituir la ventana de trabajo junto a sus distintos métodos disponibles. La única diferencia es el uso necesario de una pantalla
Todos aquellos desarrollos que realicemos con SWT van a poseer una misma estructu-
50
■ ELEMENTOS
Todos los programas que desarrollemos van a estar compuestos de elementos, como botones, cuadros de texto, barras de desplazamientos y menús, para los cuales SWT incorpora un conjunto de constructores con la estructura:
SWT permite utilizar el mismo código para cualquier sistema operativo, usando solo una librería para cada uno Número 66
50-54 Software (Swt)
7/4/06 12:41
Página 51
SWT
elemento(entorno, estilo); donde entorno es la ventana de trabajo creada y estilo un conjunto de propiedades de cada uno de los elementos en los que se definen atributos como su alineación, tamaño, sombreado o niveles de selección. Para añadir un elemento en la ventana podemos utilizar dos métodos:
setMinimum() para definir los valores máximos y mínimos de la barra; y void setSelection() para definir su valor inicial. Por ejemplo, podemos crear una barra horizontal cíclica con el código:
ProgressBar barraProgreso = new ProgressBar(entorno, SWT.HORIZONTAL | SWT.INDETERMINATE);
new elemento(entorno, estilo); crea e inserta el elemento, con el inconveniente de no poder invocar sus métodos a lo largo del programa o:
Elemento variable = new Elemento(entorno, estilo); para crearlo a través de un objeto. Es posible definir múltiples variables de estilo, siempre que no sean incompatibles entre ellas con el carácter ‘|’. Cada elemento incluye múltiples métodos para trabajar, que podemos utilizar incluyéndolos a continuación de su variable cuando se han creado como un objeto independiente:
elemento.método(valor); o creándolo directamente junto al elemento con el código:
new elemento(entorno, estilo) .método(valor) También es necesario incluir en el código del programa la librería correspondiente a los elementos con la línea:
import io.eclipse.swt.widgets.*; Los elementos más importantes disponibles son: Barras de progreso, (ProgressBar): crea una barra que indica el progreso de una determinada acción, como la conversión de un archivo o la carga de un programa. La variable estilo puede contener los valores: SWT.HORIZONTAL y SWT.VERTICAL, que crean una barra horizontal y vertical respectivamente; SWT.SMOOTH, barra continua distinta a la predeterminada que está divida en pequeñas secciones; y SWT.INDETERMINATE para crear una barra cíclica, sin principio ni final. Los métodos disponibles son: int getMaximum(), obtiene el valor máximo de la barra; int getMinimum(), valor mínimo; int getSelection(), devuelve el valor actual de la barra; void setMaximum() e void
Tipos de barras de progreso.
Barras de valor, (Slider): permiten seleccionar un valor mediante el uso de una barra. La variable estilo puede poseer los valores SWT.HORIZONTAL o SWT.VERTICAL para crear una barra horizontal o vertical respectivamente. Algunos de los métodos que admite son: int getIncrement(), selecciona el valor de incremento de la barra; int getSelection(), devuelve el valor actual; void setMaximum(int valor) y void setMinimum(int valor) define los valores máximo y mínimo respectivamente; y void setSelection(int valor), para elegir su valor inicial. Para crear una barra horizontal utilizamos el código:
SOFTWARE LINUX
new Slider(entorno, SWT.HORIZONTAL); Botones, (Button): son uno de los componentes más destacados de cualquier aplicación, ya que a través de ellos va a ser posible seleccionar entre distin- Botones disponibles. tas opciones o realizar una acción al presionarlos. La variable estilo puede contener los valores: SWT.ARROW, muestra una flecha; SWT.CHECK, cuadros de validación; SWT.PUSH, los habituales botones; SWT.RADIO, cuadros de selección exclusivos entre sí; SWT.TOOGLE, botones que cambian de estado al presionarlos; SWT.FLAT, para botones planos; y relativos a su orientación, SWT.UP, SWT.DOWN, SWT.CENTER, SWT.LEFT y SWT.RIGHT. Los métodos disponibles en los botones son: boolean getSelection(), devuelve el valor actual de los estilos CHECK, RADIO y TOOGLE siendo true si están activos; void setAlignment(int alineación), define su alineación; void setSelection(boolean seleccionado), activa un botón haciendo que seleccionado sea true o al contrario con false; y void setText(String cadena), inserta el texto del botón. Podemos crear un botón que contenga texto con el código:
new Button(entorno, SWT.PUSH) .setText(“Botón”); Etiquetas, (Label): insertan en la ventana cadenas de texto que no es posible modificar por el usuario. Los posibles valores de estilo son: SWT.SEPARATOR, línea de separación; SWT.HORIZONTAL y SWT.VERTICAL, sepa-
Compilación de un programa con Eclipse Aunque es posible crear un programa en SWT sin el IDE Eclipse, es recomendable utilizarlo, ya que facilita tanto la inserción del código como su compilación y posterior depuración. Para crear un programa en SWT con Eclipse: 1. Añadimos un nuevo proyecto presionando en File->New->Project, donde elegimos Java Project en el listado de opciones mostradas y le asignamos un nombre. Antes de presionar en “Finish” para terminar su creación, con “Next” accedemos a las propiedades del proyecto, al que en la pestaña “Libraries” debemos añadir la librería gráfica correspondiente a nuestro sistema operativo con el botón “Add External JARs”, siendo org.eclipse.swt.gtk la correspondiente a Linux. 2. A continuación creamos una nueva clase dentro del proyecto presionando con el botón derecho del ratón sobre su nombre y eligiendo New-> Class, a la que también debemos asignar un nombre. 3. Escribimos el código del programa. 4. Y, por último, lo compilamos presionando en Run->Run..., que abre una ventana de ejecución donde de nuevo hacemos clic en el botón “Run”.
Número 66
51
50-54 Software (Swt)
SOFTWARE LINUX
7/4/06 12:41
Página 52
SWT
radores horizontal y vertical; o SWT.CENTER, SWT.LEFT y SWT.RIGHT para alinear el texto. Algunos de sus métodos disponibles son: String getText(), devuelve la cadena de texto de la etiqueta; void setAlignment(int alineación), define la alineación del texto; void setText(String cadena), inserta el texto en el contenido de la etiqueta; y void setImage(Image imagen), inserta una imagen. Por ejemplo, para insertar la cadena de texto Etiqueta, utilizamos la línea de código:
new Label(entorno, SWT.LEFT) .setText(“Etiqueta”); Grupos, (Group): elemento destinado a crear y organizar cuadros de selección donde sea posible elegir uno o más valores entre los distintos mostrados que se han creado mediante el uso de botones. Sus estilos admitidos afectan a su apariencia mediante el cambio de sombreado con SWT.SHADOW_ETCHED_IN, SWT.SHADOW_ETCHED_OUT, SWT.SHADOW_IN, SWT.SHADOW_OUT y SWT.SHADOW_NONE. Aunque por defecto únicamente es posible seleccionar uno de los valores disponibles en el grupo, podemos permitir la elección múltiple con SWT.NO_RADIO_GROUP. Los métodos disponibles son: String getText(), devuelve su valor; y void setText(String cadena), añade un título al grupo. Por ejemplo, para crear un grupo de única selección de título “Elige una ciudad” con tres opciones disponibles, utilizamos:
mentos disponibles; String[] getSelection(), devuelve el elemento o elementos seleccionados; void remove(int número), elimina un elemento; y void select(int número), selecciona un elemento. Por ejemplo, podemos crear una lista con:
List lista = new List(entorno, SWT.BORDER | SWT.SINGLE); y añadir cada uno de sus elementos con el método add:
lista.add(“Elemento1”); Menús, (Menu): elementos de uso indispensable para cualquier aplicación gráfica, están diferenciados en tres tipos: barra de menú, mostrada horizontalmente en la sección superior de la ventana; desplegables, opciones mostradas al presionar en una opción de la barra del menú; y emergentes, menús a los que se accede desde la ventana de trabajo presionando el botón derecho del ratón. Mediante sus distintos estilos elegimos el tipo de menú a mostrar: SWT.BAR, para los de barra; SWT.DROP_DOWN, en los desplegables y SWT.POP_UP para los emergentes. También está disponible SWT.NO_RADIO_GROUP para no permitir la creación de grupos con elementos seleccionables. La creación de los menús está divida en dos constructores:
Menu(entorno, estilo) Group grupoNombres = new Group(entorno, SWT.SHADOW_IN); grupo1.setText(“Elige un nombre”); new Button(grupo1, SWT.RADIO) .setText(“Madrid”); new Button(grupo1, SWT.RADIO) .setText(“París”); new Button(grupo1, SWT.RADIO) .setText(“Roma”); Listas, (List): permiten añadir múltiples líneas de texto donde se puedan seleccionar una o más opciones de las mostradas. Puede tener distintos estilos: SWT.BORDER, añade un borde a la lista; SWT.SINGLE o SWT.MULTI, permite una sola selección o más de una de sus elementos respectivamente; y SWT.H_SCROLL o SWT.V_SCROLL para crear barras de desplazamiento horizontal y vertical. Entre sus múltiples métodos disponibles para utilizar, destacan: void add(String cadena), añade un elemento a la lista; int getItemCount(), devuelve el número de ele-
52
donde entorno puede ser la propia ventana u otro menú existente y estilo define el tipo de menú, y
Barra de menú.
MenuItem(menú, estilo) para añadir las opciones a los menús. La variable estilo de este segundo constructor puede poseer los valores: SWT.CHECK, crea opciones seleccionables con el ratón; SWT.CASCADE, añade una opción del menú que va a poseer otras opciones dentro de ella; SWT.PUSH, para las opciones que pueden presionarse; SWT.RADIO, crea un grupo de opciones donde solo se puede seleccionar una y SWT:SEPARATOR, añade una línea de separación. Aquellas opciones que realizan una determinada acción deben usar el estilo SWT.NONE. Los métodos más importante del constructor MenuItem son: void setImage(Image imagen), añade una imagen a la opción; void setMenu(Menu menú), crea un menú dentro de uno ya existente; y void setText(String texto), para definir el texto de la opción. Por ejemplo, para crear una barra de menú con distintas opciones utilizamos el código del Listado 1. Textos, (Text): añaden cuadros de texto con distintos tamaños que pueden ser modificados por el usuario y poseer una o múltiples líneas.
Listado 1. Una barra de menú Menu menu = new Menu(entorno, SWT.BAR); MenuItem opcionArchivo = new MenuItem(menu, SWT.CASCADE); opcionArchivo.setText(“Archivo”); MenuItem opcionPropiedades = new MenuItem(menu, SWT.CASCADE); opcionArchivo.setText(“Propiedades”); MenuItem opcionAyuda = new MenuItem(menu, SWT.CASCADE); opcionArchivo.setText(“Ayuda”); Menu menuArchivo = new Menu(menu); opcionArchivo.setMenu(menuArchivo); MenuItem opcionNuevo = new MenuItem(menuArchivo, SWT.NONE); opcionNuevo.setText(“Nuevo”); MenuItem opcionGuardar = new MenuItem(menuArchivo, SWT.NONE); opcionGuardar.setText(“Guardar”); new MenuItem(menuArchivo, SWT.SEPARATOR); MenuItem opcionSalir = new MenuItem(menuArchivo, SWT.NONE); opcionSalir.setText(“Salir”);
Número 66
50-54 Software (Swt)
7/4/06 12:41
Página 53
SWT
Estilo puede poseer los valores: SWT.MULTI, crea un cuadro de texto de múltiples líneas; SWT.READ_ONLY, impide modificar su contenido; SWT.BORDER, crea un borde alrededor del cuadro de texto; SWT.SINGLE, crea una sola línea de texto y SWT.PASSWORD, muestra su contenido oculto. La alineación del texto se define con SWT.CENTER, SWT.LEFT y SWT.RIGHT, donde es posible añadir barras de desplazamiento con SWT.H_SCROLL y SWT.V_SCROLL. Algunos de los métodos disponibles son: String getText(), devuelve el texto escrito; void insert(String cadena), añade la cadena al texto existente; void selectAll(), selecciona todo el texto; void setText(String cadena), inserta el texto; y void setTextLimit(int límite), crea un límite en el número máximo de caracteres posibles a escribir. Por ejemplo, creamos un recuadro para introducir una contraseña con el código:
new Text(entorno, SWT.PASSWORD | SWT.BORDER);
permite crear una fila o columna con los elementos. Con el constructor:
GridLayout: es la clase más utilizada para ordenar, ya que permite la mayor personalización junto a un uso muy sencillo. En su constructor:
public FillLayout(int tipo) definimos su valor en tipo con SWT.HORIZONTAL para una fila y SWT.VERTICAL para una columna. Al crear los elementos, éstos se van posicionando automáticamente en la ventana con el mismo tamaño. Por ejemplo, el código necesario para crear tres botones ordenados verticalmente sería:
entorno.setLayout (new FillLayout(SWT.VERTICAL)); new Button(entorno, SWT.PUSH) .swtText(“Madrid”); new Button(entorno, SWT.PUSH) .swtText(“París”); new Button(entorno, SWT.PUSH) .swtText(“Roma”); RowLayout: cumple la misma función que FillLayout, pero permite que cada elemento posea un tamaño distinto mediante el uso de la función RowData. Por ejemplo, modificamos el tamaño de un botón con el código:
Button boton = new Boton(entorno, SWT.PUSH); RowData datos = new RowData(); datos.height = 30; datos.width = 50; boton.setLayoutData(datos);
public GridLayout(int columnas, boolean columnasIguales); definimos el número de columnas y si éstas van a tener el mismo tamaño. Mientras que en sus métodos podemos seleccionar además otras opciones: int horizontalSpacing, espacio horizontal entre los elementos; boolean makeColumnsEqualWidth, tamaño igual o distinto de los elementos; int marginHeight e int marginWidth para los márgenes; int numColumns, número de columnas disponibles e int verticalSpacing, espacio vertical entre los elementos. Un mayor control de la posición de los elementos lo obtenemos con public GridData(int estilo), con el que podemos expandir el tamaño de una columna a las restantes con los métodos int horizontalSpan e int verticalSpan o modificar su tamaño con int heightHint e int widthHint. Algunos de los estilos disponibles son: FILL_BOTH, rellena el tamaño de la columna o fila con el elemento, y HORIZONTAL_ o VERTICAL_ seguidos de ALIGN_BEGINNING, ALIGN_CENTER, ALIGN_END o ALIGN_FILL para las distintas alineaciones. Por ejemplo, para crear cuatro botones en dos columnas con el mismo tamaño, utilizamos el código del Listado 2. Como vemos, no es posible utilizar un mismo objeto GridData para todos los elementos, ya que se solaparían entre sí.
Creación de un editor de textos.
Listado 2. Cuatro botones en dos columnas
■ ORDENACIÓN
GridLayout orden = new GridLayout(); orden.numColumns = 2; orden.makeColumnsEqualWidth = true; entorno.setLayout(orden); GridData datos = new GridData(GridData.FILL_BOTH); Button uno = new Button(entorno, SWT.PUSH); uno.setText(“Madrid”); uno.setLayoutData(datos); datos = new GridData(GridData.FILL_BOTH); Button dos = new Button(entorno, SWT.PUSH); dos.setText(“París”); dos.setLayoutData(datos); datos = new GridData(GridData.FILL_BOTH); Button tres = new Button(entorno, SWT.PUSH); tres.setText(“Roma”); tres.setLayoutData(datos); datos = new GridData(GridData.FILL_BOTH); Button cuatro = new Button(entorno, SWT.PUSH); cuatro.setText(“Atenas”); cuatro.setLayoutData(datos);
Conocidos los distintos elementos que van a constituir los programas, el paso siguiente es aprender las diferentes clases existentes para posicionarlos en la ventana. Antes de verlas, es necesario comprender que existe un método en el objeto Shell, de nombre setLayout, para aplicar esta ordenación, siendo su código habitual:
entorno.setLayout(new claseOrdenación); y que los elementos poseen un método llamado setLayoutData(data), a través del cual se aplican los distintos atributos disponibles en las clases de ordenación para realizar colocaciones más avanzadas. Existen las siguientes clases de ordenación: FillLayout: es el método de ordenación más sencillo disponible, ya que únicamente
SOFTWARE LINUX
Número 66
53
50-54 Software (Swt)
SOFTWARE LINUX
7/4/06 12:41
Página 54
SWT
// acciones a realizar } }); Pulsación de un botón o elemento: realiza una acción al presionar un botón o elemento de un menú. Utiliza el evento de tipo SelectionListener. Por ejemplo, la pulsación de un botón se controlaría con:
Ordenación mediante GridLayout.
Otras clases de ordenación: adicionalmente a las tres vistas, que son los más habituales, existen FormLayout y StackLayout, que presentan una mayor complejidad de uso sin ofrecer ninguna ventaja. En líneas generales, FormLayout permite una personalización completa de la ventana de trabajo, siendo necesario definir la posición de cada uno de los elementos; y StackLayout está destinada a situar varios elementos superpuestos, para que a través de determinados eventos se muestren unos u otros.
boton.addSelectionListener (new SelectionAdapter() { public void widgetSelected (SelectionEvent evento) { // acciones a realizar } });
Por ejemplo, para realizar una pregunta que el usuario debe contestar afirmativa o negativamente, utilizamos el código:
MessageBox mensaje = new MessageBox(entorno, SWT.YES | SWT.NO); mensaje.setMessage(“¿Sobreescribir?”); int resultado = mensaje.open(); siendo resultado la variable para almacenar la opción presionada y setMessage el método para indicar el texto a mostrar en el diálogo.
Ratón: controla tanto su movimiento como la pulsación de los botones mediante el uso de los eventos MouseListener, MouseMoveListener y MouseTrackListener y una función para cada una de las posibles acciones. Diálogo de navegación de directorios.
■ EVENTOS
Los eventos tienen el cometido de ejecutar una determina acción al interactuar el usuario con un elemento de la ventana o dispositivo como un ratón o teclado. En SWT los eventos se relacionan con cada uno de los objetos del programa, siendo necesario especificar el tipo de evento en una función específica dentro del objeto. El uso de estos eventos se realiza mediante una llamada al método correspondiente de un objeto, donde cada uno posee una serie de métodos que pueden utilizarse, junto a un adaptador correspondiente y una función con un objeto de tipo Evento que contiene las acciones a realizar. La librería que debe incluirse para utilizarlos es la siguiente:
import io.eclipse,swt,events.*; Los eventos más importantes y utilizados son tres: Movimiento o redimensionado de la ventana: controla el cambio de tamaño de una ventana o su movimiento para adaptar su contenido. Utiliza el evento ControlListener. Por ejemplo, modificar el tamaño de la ventana se controla con:
entorno.addControlListener (new ControlAdapter() { public void controlResized (ControlEvent evento) {
54
■ IMÁGENES
SWT admite la carga de múltiples formatos de imagen, como GIF, PNG, JPEG, TIFF, BMP, ICO y RLE, por lo que no es necesario desarrollar una nueva clase para utilizarlas, sino que ya está implementada mediante Image, que posee el constructor:
Image(pantalla, ruta); Inserción de un mensaje al reducir la ventana. ■ DIÁLOGOS
Los diálogos permiten abrir ventanas para informar al usuario de alguna situación especial, como salir de un programa sin guardar un archivo creado, seleccionar elementos externos como colores y fuentes de letra o navegar por los directorios. El diálogo más habitual es el mensaje de información, donde se muestra una ventana para confirmarnos un determinado evento, como salir del programa o guardar un archivo cuando ya existe previamente uno con el mismo nombre. Su constructor es:
int MessageBox(entorno, estilo) que devuelve la opción presionada entre las incluidas con la variable estilo, pudiendo tomar los valores: SWT.OK, SWT.CANCEL, SWT.YES, SWT.NO, SWT.RETRY, SWT.ABORT y SWT.IGNORE, concatenados entre sí por el carácter ‘|’.
Número 66
Éste carga la imagen en un objeto para mostrarlo a continuación desde el correspondiente elemento, siendo las etiquetas junto al método setImage el más sencillo. Para poder trabajar con esta clase es necesario incluir la librería de gráficos añadiendo en el programa la línea:
import org.eclipse.swt.graphics.*; Por ejemplo, para cargar la imagen 01.png del directorio /home/imagenes, escribimos:
Image imagen = new Image(pantalla, “/home/imagenes/01.png”); Label etiquetaImagen = new Label(entorno, SWT.NONE); etiquetaImagen.setImage(imagen); siendo necesario haber utilizado una clase para su posicionamiento, como GridLayout, y al finalizar liberar el espacio que ha ocupado en memoria con el método dispose(). ■
55-59 Software (TerminalesX)
7/4/06 12:41
Página 55
>>> Configurando terminales con PXE: la NBP SOFTWARE LINUX TERMINALES CON PXE
DAVID SANTO ORCERO orcero@iberprensa.com
n la anterior entrega de nuestra miniserie sobre terminales tontos aprendimos lo suficiente de PXE como para ordenar la carga de un kernel de Linux y de un fichero initrd a una máquina remota. Ahora vamos a aprender a configurar todos los servicios que necesitaremos para arrancar una máquina remota con PXE. Tal y como estudiamos, el protocolo PXE nos permite indicar remotamente a una máquina cliente que tenga éste en su tarjeta de red (prácticamente todas las tarjetas modernas) de dónde descargaremos el kernel de Linux y la imagen de disco initrd. El problema es que hay muchas tareas que PXE no realiza: no sirve ficheros, ni monta NFS en root, solamente por poner algunos ejemplos. Para ello debemos configurar una serie de servicios adicionales tanto en el kernel de la máquina que mandamos al cliente, como en la máquina que hace de servidor de terminales. En este taller terminaremos de aprender a configurar PXE, y estudiaremos la configuración de todos estos servicios adicionales que necesitamos para poder arrancar de forma completa un sistema Linux sin disco a través de este protocolo.
E
default_address
prompt_timeout
Dirección IP del servidor PXE.
multicast_address Si hemos activado el multicast, se corresponde con la dirección multicast del servidor PXE. Si no empleamos multicast, el valor de este parámetro se ignorará.
mtftp_address Dirección del servidor TFTP desde el que se descargará la imagen del kernel el cliente PXE.
mtftp_client_port Puerto de origen que el cliente debe abrir para la conexión con el servidor TFTP.
mtftp_server_port Puerto de destino que el cliente debe abrir para la conexión con el servidor TFTP.
listen_port Puerto por el que se escuchará PXE.
use_multicast
COMPLETANDO LA CONFIGURACIÓN DE PXE En el número anterior ya explicamos cómo configurar el fichero de configuración de DHCP para PXE. Pero este protocolo tiene un fichero adicional, /etc/pxe.conf, que también tendremos que editar para que funcione adecuadamente. Los distintos parámetros que definimos en el fichero de configuración /etc/pxe.conf son:
interface Interfaz en el que está conectado el servidor PXE. Si no definimos ninguno con este parámetro, PXE escuchará en todos los interfaces.
Un valor de 0 significa que no se usará multicast y un valor de 1 que sí se utilizará.
use_broadcast Un valor de 0 significa que no se usará broadcast y un valor de 1 que sí se utilizará.
prompt Texto que aparecerá en pantalla al preguntar por la opción de arranque.
Tiempo transcurrido entre que aparece en pantalla el menú y se activa automáticamente la opción por defecto.
domain Dominio de la máquina que sirve PXE. Finalmente vamos a estudiar la última opción que falta por ver: la definición de los servicios. Básicamente determina para cada servicio posible sobre qué arquitectura está construido y qué cargará el cliente para él. La sintaxis de cada línea de servicio es:
service=arquitectura,capa inferior, capa superior, nombre, nombre extenso Arquitectura: corresponde con la arquitectura de la máquina cliente que puede activar esta opción. Puede ser X86PC, I64EFI o IA64PC. Ya hablamos del campo de arquitectura en la entrega anterior de nuestra miniserie. Capa inferior: la capa más baja de arranque que se mandará a la máquina remota. Capa superior: la capa más alta de arranque que se mandará a la máquina remota. Respecto a las capas de arranque, tendremos tres: 0: Código de arranque 1: Kernel 2: Disco de arranque initrd Lo normal es que la capa inferior sea 0 y que según lo que queramos nos traigamos más capas. Por ejemplo, indicando la capa superior a 1, nos traeremos solo el kernel, y con la capa superior a 2, también el initrd. Es recomendable este último valor, salvo que tengamos muy claro lo que hacemos. Nombre: nombre de la opción. Si lo ponemos a local, corresponderá con la entrada
El archivo de configuración de NBP, aunque con sintaxis distinta, es análogo al de LILO Número 66
55
55-59 Software (TerminalesX)
SOFTWARE LINUX
7/4/06 12:41
Página 56
TERMINALES CON PXE
a menú del arranque local en la máquina remota que arranca por PXE. En este caso, se ignorarán las opciones de capas. No debemos hacer nada más para dotar a la máquina remota de arranque local como opción de PXE. El firmware de PXE remoto ya sabrá qué hacer con esta opción si la seleccionamos. Nombre extenso: Nombre extenso que tiene la opción. Un ejemplo de fichero pxe.conf válido suponiendo que trabajamos con un servidor PXE en la IP 10.1.1.1 sería el que vemos en el Listado 1. Como observamos, el archivo de configuración de PXE, /etc/pxe.conf, tiene información redundante respecto a los archivos de configuración de DHCP, que explicamos en la anterior entrega, y de NBP, que estudiaremos a continuación. A pesar de que las veces que el autor de este tutorial, por error, ha almacenado información inconsistente en estos archivos, los datos de /etc/pxe.conf son los que han sido ignorados, esto no es recomendable porque pueden ocurrir problemas según como sea el resto de la configuración del sistema, especialmente la del servidor PXE y la del NBP que empleemos. Por ello, es recomendable mantener consistente la configuración de estos tres archivos.
CONFIGURANDO TFTP El protocolo PXE ya está configurado. Ahora debemos configurar el servidor de PXE para que pueda servir los datos al cliente. El servicio tftp normalmente es proporcionado por el superdaemon inetd o xinetd; por lo que tenemos que instalar y dar de alta tftp dentro de los servicios soportados por xinetd. La práctica totalidad de las distribu-
ciones modernas usan xinetd, de modo que nos centraremos en la configuración de tftp bajo este último. Casi siempre al instalar PXE, la distribución instalará correctamente tftp y xinetd, al tirar de dependencias; por lo que no nos debemos preocupar de descargarlos y recompilarlos. En el directorio /etc/xinetd.d editamos el fichero tftp, que deberá contener:
service tftp { disable = socket_type = protocol = wait = user = server = server_args = per_source = cps = flags = }
no dgram udp yes root /usr/sbin/in.tftpd -s /var/lib/tftpboot 11 100 2 IPv4
De estas líneas, las únicas que puede que tengamos que cambiar son:
server =
/usr/sbin/in.tftpd
en la que debemos poner el ejecutable del servidor TFTP con su ruta completa (suele estar en /usr/sbin, y si no, podemos encontrarlo con find). La otra línea que es posible que queramos modificar es:
server_args = -s /var/lib/tftpboot Estamos pasando al servidor la opción -s, con el parámetro /var/lib/tftpboot. Real-
Listado 1. El fichero /etc/pxe.conf interface=eth0 default_address=10.1.1.1 multicast_address=10.1.1.1 mtftp_address=10.1.1.1 mtftp_client_port=1758 mtftp_server_port=1759 listen_port=4011 use_multicast=0 use_broadcast=0 prompt=Pulse F8 para ver el menú de las opciones. prompt_timeout=2 service=X86PC,0,2,memtest,Verifica la memoria service=X86PC,0,2,mandriva,Arranque en PXE de un Mandriva remoto service=X86PC,0,2,instalamandriva, instalar mandriva service=X86PC,0,0,local,Arranque del disco duro local tftpdbase=/ domain=orcero.org
56
Número 66
mente esta opción determina el directorio donde tendremos los datos que se puede bajar el cliente PXE. Salvo que tengamos muy claro por qué lo cambiamos, es mejor dejar /var/lib/tftpboot. Si nuestra distribución no lo ha hecho, creamos este directorio, y dentro de él, uno por cada arquitectura a la que queramos servir con el protocolo PXE por nuestro servidor. Por ejemplo, Mandriva crea dentro de este directorio los subdirectorios IA64PC/ y X86PC/. Dentro de cada arquitectura podemos poner las opciones a las que debe responder el servidor. Por ejemplo, si queremos responder tanto con el kernel de Linux como con el de memtest, y el primero tiene como etiqueta linux y el segundo memtest, debemos tener dos directorios tal y como:
linux memtest Como vemos, para cada línea service del archivo de configuración /etc/pxe.conf para una arquitectura determinada, debemos crear aquí un subdirectorio cuyo nombre sea igual al de la opción. En este directorio pondremos todos los datos que necesite el kernel de esta opción para arrancar. Dentro de dicho directorio, algunos ficheros pueden y deben tener unas extensiones especiales, dependiendo de para qué queramos emplearlos. Las extensiones que podemos encontrar en este directorio son: .0: corresponde con una NBP válida. Habitualmente solamente hay una, que es el programa de arranque de PXE del proyecto PXELinux, el llamado linux.0. .BIN: sector de arranque de CD, útil si empleamos ISOLINUX. .BS: sector de arranque, útil si empleamos SYSLINUX. .BSS: parche al sector de arranque de un superbloque de DOS, útil si empleamos SYSLINUX. .C32: ejecutable COM32 de 32 bits, útil si empleamos COMBOOT. .CBT: imagen COMBOOT, no ejecutable desde DOS, útil si empleamos COMBOOT. .COM: imagen COMBOOT, ejecutable desde DOS, útil si empleamos COMBOOT. .IMG: imagen de disco, útil si empleamos ISOLINUX .PSF: fuente para la terminal remota. Observamos que podemos tener más información que únicamente el kernel y el
55-59 Software (TerminalesX)
7/4/06 12:41
Página 57
TERMINALES CON PXE
initrd de un sistema Linux. Esto es así porque el NBP de PXELinux puede arrancar varios sistemas operativos distintos, no solo Linux. Un poco más adelante veremos cómo podemos hacerlo. En este directorio es lo más común que pongamos la NBP que viene con PXElinux, llamada linux.0; aunque en las instalaciones de algunas distribuciones viene como pxelinux.0. También debemos poner aquí el kernel. Si empleamos la NBP de PXELinux tenemos aún un paso adicional de configuración extremadamente potente, ya que la NBP de PXELinux nos permite traer un fichero de configuración adicional, parsearlo y ejecutarlo. En este caso, las opciones de arranque se extraerán del archivo de configuración de NBP, además, la ubicación de los ficheros estará también indicada por este fichero y no seguirá el estándar aquí explicado. Por ello, vamos a dar un paso más para ver qué hace el sistema y dónde están los ficheros cuando usamos esta NBP.
USANDO LA NBP DE PXELINUX Una vez que el cliente ha arrancado el NBP de PXELinux, éste va a buscar su archivo de configuración. Aún no se han puesto las opciones, ni se ha traído el kernel ni el initrd. El NBP va a buscar su archivo de configuración en el directorio en el que estaba, tal y como indicamos con la opción:
En primer lugar, pregunta por un archivo cuyo nombre sea la MAC del cliente, separando los pares de dígitos hexadecimales por “-”, y poniendo los caracteres alfabéticos en minúsculas. Después, si este archivo no existía, el NBP ejecutándose en el cliente va a tomar su IP, convertirla en hexadecimal y buscar el fichero de configuración dentro de este directorio cuyo nombre coincida con la dirección IP del cliente en hexadecimal. Si tampoco la encuentra, comienza a buscar el archivo de configuración del NBP, retirando sucesivamente el carácter correspondiente con el dígito hexadecimal menos significativo, hasta encontrar un fichero que pueda descargar. En este caso, el NBP que se ejecuta en el cliente lo descargará y lo interpretará como el archivo de configuración. Finalmente, si no encuentra ninguno de los archivos anteriores, el NBP que se ejecu-
SOFTWARE LINUX
ta en el cliente descargará el archivo default e interpretará éste como el archivo de configuración. En el caso particular de nuestro ejemplo, suponiendo que el NBP que se ejecuta en el cliente con la MAC 00:0F:B0:67:8D:0A ganó el alquiler de la dirección 10.0.0.100 al servidor DHCP, los distintos nombres de ficheros que intenta descargar serán, los que aparecen en el Listado 2. El NBP de este ejemplo empleará como archivo de configuración el primer fichero que consiga descargar de esta lista. Todo este proceso tiene su lógica: nos permite tener un mecanismo simple a la hora de establecer ficheros de configuración genéricos del NBP para subredes. De este modo podemos tener un archivo de configuración por defecto para los que no tengan política específica, y también definir uno concreto para aquellos clientes que tengan características excepcionales.
Listado 2. Ficheros a descargar /var/lib/tftpboot/X86PC/linux/pxelinux.cfg/00-0f-b0:67-8d-0a /var/lib/tftpboot/X86PC/linux/pxelinux.cfg/0A000064 /var/lib/tftpboot/X86PC/linux/pxelinux.cfg/0A00006 /var/lib/tftpboot/X86PC/linux/pxelinux.cfg/0A0000 /var/lib/tftpboot/X86PC/linux/pxelinux.cfg/0A000 /var/lib/tftpboot/X86PC/linux/pxelinux.cfg/0A00 /var/lib/tftpboot/X86PC/linux/pxelinux.cfg/0A0 /var/lib/tftpboot/X86PC/linux/pxelinux.cfg/0A /var/lib/tftpboot/X86PC/linux/pxelinux.cfg/0 /var/lib/tftpboot/X86PC/linux/pxelinux.cfg/default
filename “/X86PC/linux/linux.0” del archivo de configuración de DHCP, como ya explicamos en la entrega anterior. Si estamos empleando un archivo de configuración similar al que empleamos en el pasado número, lo encontraremos dentro del directorio:
/DIRECTORIOTFTP/ARQUITECTURA/linux /pxelinux.cfg donde DIRECTORIOFTP corresponde con el directorio donde estén los archivos que descargamos a través de TFTP, y ARQUITECTURA es la arquitectura del cliente. En nuestro ejemplo, la ruta completa sería:
/var/lib/tftpboot/X86PC/linux /pxelinux.cfg Dentro de este directorio, el NBP ejecutándose en el cliente va a intentar descargarse el archivo de configuración de forma un tanto peculiar.
El proyecto COMBOOT COMBOOT es otro de los proyectos derivados de SYSLINUX. Particularmente, se trata de un MBR que permite arrancar directamente programas ejecutables en un formato similar al .COM de MS-DOS de 16 bits. A diferencia de éste, COMBOOT no permite hacer uso del toda API de MS-DOS, al que accedíamos a través de interrupciones, especialmente de la 21h. También soporta un formato de .COM ampliado, COM32, que es similar al de MS-DOS pero para 32 bits. COMBOOT solamente nos permite acceder a un subconjunto del API de MSDOS a través de la interrupción 21h -en particular, algunas operaciones de consola-; pero también trae un API propio con varias funciones muy útiles, fundamentalmente de arranque de programas, operaciones de lectura y escritura sobre disco y operaciones sobre el puerto de comunicaciones. Podemos encontrar más información sobre el proyecto, así como una descripción más detallada de su API, en la página web http://syslinux.zytor.com/ comboot.php
Número 66
57
55-59 Software (TerminalesX)
SOFTWARE LINUX
7/4/06 12:41
TERMINALES CON PXE
Es importante destacar que, en cualquiera de los casos, ninguno de los ficheros de configuración del NBP (incluyendo los especificados en el punto anterior con la IP en formato hexadecimal) debe tener más de 127 caracteres entre su nombre completo y la ruta del fichero. Si falla este proceso, es decir, o no encuentra un fichero de configuración apropiado o falla la descarga de algunos de los componentes cuya descarga está especificada en el fichero de configuración, el NBP pondrá en pantalla el mensaje de error durante cinco minutos. Si no hay ninguna reacción por parte del operador del cliente donde se ejecuta el NBP, dicha máquina es reiniciada por el propio NBP de PXELinux. Falta por responder una pregunta, ¿por qué no hay un mecanismo similar a las subredes pero con las MACs? Por una razón lógica: que dos máquinas tengan MACs consecutivas no significa nada más que probablemente las tarjetas de red pertenecen al mismo fabricante, e incluso al mismo lote. Esto es intrascendente para los problemas de la vida real. Una MAC identifica unívocamente a la tarjeta de red, y por eso en primer lugar el NBP busca el archivo de configuración para su MAC, permitiendo así establecer políticas por nodo, pero el concepto de rango de MACs no tiene sentido en la organización real de una red.
EL ARCHIVO DE CONFIGURACIÓN PARA EL NBP Vamos a estudiar ahora la sintaxis del archivo de configuración del NBP. Las distintas opciones que podemos encontrar en este archivo son:
PROMPT valor Si valor es 0, solamente imprimirá el boot: para preguntar por la opción si se pulsa la techa “Shift”, “Alt”, “Capslock” o “Scrolllock”. Si valor vale 1, siempre se imprimirá el aviso.
NOESCAPE valor Si valor está a 0, no realiza ninguna acción. Si valor está a 1, el NBP ignorará las teclas “Shift”, “Alt”, “Capslock” o “Scrolllock”.
TIMEOUT tiempo Indica, en décimas de segundo, el tiempo entre que el NBP imprime sus avisos en pantalla y que toma la opción de arranque por defecto. El tiempo máximo de cómputo es de 35.996 décimas de segundo (algo menos de una hora). Si pulsamos una tecla en este intervalo, esperará para siempre. Si
58
Página 58
indicamos 0, el NBP no esperará nada, y salta automáticamente a la opción por defecto. El valor por defecto de TIMEOUT es 0. PROMPT a 0, NOESCAPE a 1 y TIMEOUT a 0 se emplean conjuntamente con mucha frecuencia para arrancar automáticamente desde una opción predeterminada.
ONTIMEOUT opciónmenú opcioneskernel Permite especificar qué opción del menú se activará cuando termine el tiempo de espera de la máquina cliente donde se ejecuta el NBP de PXELinux, así como qué parámetros se le pasarán al kernel en dicha circunstancia. En caso de que no especifiquemos una entrada por defecto con ONTIMEOUT, el NBP empleará los valores indicados en la opción DEFAULT. Si ésta tampoco existe, la opción por defecto será linux, sin opciones especiales de kernel.
DEFAULT opciónmenú opcioneskernel Especifica la opción por defecto y sus parámetros, de forma idéntica a ONTIMEOUT. La diferencia es que si hemos definido ONTIMEOUT, DEFAULT solamente determina qué opción se activará cuando pulsemos “Enter” sin teclear un nombre de imagen, al preguntarnos el NBP por la opción de arranque. Si no hemos incluido el parámetro ONTIMEOUT, DEFAULT especifica tanto la opción que tomará el NBR cuando pulsemos “Enter” sin opciones, como el caso en el que sobrepasemos el tiempo de espera.
FONT fichero
DISPLAY fichero Vuelca el contenido del fichero especificado en pantalla, inmediatamente antes de imprimir el texto boot:.
SAY mensaje En lugar de volcar el contenido de un fichero, como hace la opción DISPLAY, vuelca el mensaje indicado como parámetro.
F1 fichero F2 fichero .... F10 fichero Con el comando Fnumero, donde numero es un entero entre el 1 y el 10, podemos volcar un fichero en pantalla cuando se pulsa la correspondiente tecla de función del teclado. Es muy común emplear esto para ficheros de ayuda. Si utilizamos una consola serie definida con SERIAL, podemos activar las opciones de ayuda con “Ctrl+F” y después el dígito menos representativo. Por ejemplo, “Ctrl+F+8” en una consola serie es lo mismo que “F8” en el teclado, y “Ctrl+F+0” en una consola serie es lo mismo que “F10” en el teclado. Debemos recordar que “F11” y “F12” no funcionan en NBP, ni en la consola serie, ni en el teclado. Esto se debe a que “F11” y “F12” internamente no son teclas, sino agrupaciones de teclas; pero esto es otra historia.
IMPLICIT valor
Carga la fuente especificada, descargando primero el fichero con esta fuente (debe estar en formato PSF). El NBP instalará la fuente antes de cualquier otra operación.
KBDMAP mapateclado Carga el mapa de teclado especificado. Habitualmente no es necesario, ya que las imágenes con diacríticos en el nombre suelen dar problemas, y no es conveniente usarlas. Sin embargo, puede ser importante en el caso de que tengamos teclados más extraños, como Dvorak, QWERTZ o AZERTY. También puede ser útil, por la posición de “-”, de “=” y de “/”, si permitimos con ALLOWOPTIONS que el usuario pueda cambiar opciones del kernel en arranque. Podemos obtener el mapa de teclado para el NBP de PXELinux haciendo uso del programa keytab-lilo.pl que acompaña a LILO.
Número 66
Si valor es 0, el NBP no permitirá cargar una imagen del kernel si no está listada específicamente en una etiqueta LABEL. Aunque valor por defecto es 1, es mejor ponerlo a 0 y evitar problemas de seguridad.
ALLOWOPTIONS valor Si valor está a 0, el NBP no pasará las opciones al kernel especificadas desde línea de comandos. Como en el caso de IMPLICIT, aunque el valor por defecto de esta opción es 1, es mejor ponerlo a 0 y evitar problemas de seguridad. Una vez especificadas las opciones genéricas, debemos indicar cada posibilidad de arranque. Declaramos cada arranque posible en el archivo de configuración de NBP con la opción:
LABEL etiqueta donde etiqueta será el nombre de la opción.
55-59 Software (TerminalesX)
7/4/06 12:41
Página 59
TERMINALES CON PXE
Si se trata de un Linux, debemos indicar el nombre del fichero que contiene el kernel con la opción:
KERNEL nombrekernel Para añadir opciones a un kernel específico, de forma similar al append de LILO, emplearemos la opción:
APPEND opcioneskernel Podemos poner un APPEND global a todo el fichero de configuración de NBP; estas opciones se añadirán a todas y cada una de las distintas imágenes. Si para una en particular no queremos añadir ninguna opción al kernel, ni siquiera las especificadas por defecto por el APPEND global, incluiremos la opción de APPEND en la definición de la imagen, pero con un “-”como único parámetro, quedando:
APPEND Otro detalle importante de APPEND se refiere a las pilas de PXE y UNDI. Por defecto, el NBP las libera antes de arrancar el kernel cargado. Pero si queremos mantener las pilas en memoria por alguna razón, debemos añadir como opción al kernel con APPEND la palabra clave keeppxe. Para los usos más comunes de PXE, esto no es en absoluto necesario. Otra opción interesante es:
IPAPPEND parámetro Si parámetro es 1, añade al kernel la opción:
ip=IPcliente:IPservidorarranque: máscaradered generada en caliente respecto a la información que conoce el NBP. Si necesitamos emplear esto con Linux, es que hemos hecho algo mal: lo normal es utilizar dhclient en el initrd, o incluso emplear la opción ip=dhcp como parámetro del kernel. Sin embargo, en algunos escenarios sí puede ser útil. Si parámetro de IPAPPEND es 2, añade al kernel la opción:
BOOTIF=MACtargetadered con la MAC de la tarjeta de red desde la que ha arrancado. Como en el caso anterior, si necesitamos hacer esto es que ya hemos hecho algún paso mal y tenemos que corregir cómo estamos lanzando dhclient en el initrd. En principio, esta opción tiene sentido
solamente cuando contamos con más de una tarjeta de red y por alguna razón éstas se nos cambian arbitrariamente de interfaz. Finalmente, si parámetro de IPAPPEND es 3, añade al kernel tanto la opción ip como BOOTIF, tal y como hemos estudiado. Otra opción es:
LOCALBOOT tipo La emplearemos para especificar que esta etiqueta se refiere a un arranque local. LOCALBOOT sustituye a la opción KERNEL, y tiene un único parámetro numérico, que determina el tipo de arranque local. Este parámetro puede tomar tres valores distintos: 0: arranca normalmente en local. Es lo que la práctica totalidad de los mortales queremos hacer si no arrancamos en red.
SOFTWARE LINUX
4: arrancamos en local, pero manteniendo la pila UNDI (Universal Network Driver Interface) en memoria. 5: arrancamos en local, pero manteniendo la pila UNDI y la pila PXE en memoria.
QUÉ PASA AHORA El kernel está cargado, el initrd se monta..., ya estamos operando como un arranque local, pero lo hemos hecho a través de la red. Si nuestro objetivo era arrancar un memtest, o configurar un servidor de instalación de Linux, ya hemos llegado a nuestro objetivo. Sin embargo, muchos queremos este conocimiento para montar terminales, y para esto necesitamos dar el próximo paso: configurar un cliente y un servidor de NFS en el directorio raíz. Aprenderemos a realizar todo esto en el próximo número. ■
Listado 3. Ejemplo de archivo de configuración del NBP # Preguntamos al usuario sobre lo que quiere hacer PROMPT 1 # Por defecto, arrancamos desde local DEFAULT local # Imprimimos el contenido del fichero pantallapresentacion DISPLAY pantallapresentacion # El tiempo de espera a que el usuario pulse una opción # es de 5 segundos TIMEOUT 50 # Un poquito más de seguridad ALLOWOPTIONS 0 IMPLICIT 0 # En el mensaje pantallapresentación indicamos que pulsando F1, # sale la ayuda. Aquí es donde lo especificamos. F1 ayuda.txt # Para cargar de local, empleamos una línea como esta label local LOCALBOOT 0 # Memtest utiliza una línea como esta label memtest KERNEL memtest APPEND initrd=images/linux/memtest.img # El instalador de Mandriva emplea una línea como esta label instalamandriva KERNEL vmlinuz APPEND initrd=network.rdz ramdisk_size=32000 vga=788 kickstart=Mandrake/base/auto_inst.cfg.pl useless_thing_accepted automatic=method:nfs,network:dhcp,interface:eth0,dns:192.168.100.11,server :192.168.200.1,directory:/install root=/dev/ram3 # Finalmente, para cargar un linux con PXE tenemos que # incluir una línea como esta. label mandriva KERNEL images/vmlinuz-Mandriva-red # Con LTSP, quedará algo parecido a esto # APPEND initrd=images/Mandriva.rdz ramdisk_size=128000 vga=788 root=/dev/ram3 rw # Sin LTSP, se puede parecer algo más a esto APPEND nfsaddrs=10.0.0.1 root=10.0.0.1:/tftpboot/10.0.0.100 # de cualquier forma, esta última línea entra ya en lo que veremos el próximo artículo
Número 66
59
60-63 Servidores
7/4/06 12:42
Página 60
>>> Las tecnologías de cinta de gama alta SERVIDORES CINTA DE GAMA ALTA
DAVID SANTO ORCERO orcero@iberprensa.com
n la entrega anterior estudiamos las tecnologías de cinta de 8mm, que son empleadas con frecuencia por pequeñas y medianas empresas. Las tecnologías de cinta que nos faltan por analizar son las de gama alta, que cumplen las necesidades de aquellos usuarios más exigentes. La tecnología que estudiamos en los anteriores números (DLT y 8mm) son útiles para PYMES. Esto es más que suficiente para el uso que se le dan habitualmente a los discos de los servidores corporativos de estas empresas: las páginas web, backups de los datos de las distintas bases de datos de la empresa, datos ofimáticos corporativos y otros datos adicionales. Aunque estos datos de forma individual no necesiten un gran espacio para copias de seguridad, sumando las necesidades de todos los usuarios de sistemas informáticos de la empresa y los datos corporativos se requiere un volumen considerable. Por ello, el hecho de que aumente el tamaño de la empresa suele hacer necesaria una tecnología capaz de realizar backups de volúmenes masivos de información. Existen también otros escenarios en los que las tecnologías estudiadas no son suficiente ni para una PYME: por ejemplo, en empresas de infografía, donde el volumen de datos generados es tan grande que las tecnologías estudiadas no pueden realizar sus backups de forma eficiente. También en emisoras de radio, productoras o canales de televisión, independientemente de su tamaño: la necesidad de almacenar sus contenidos generados en un formato digital sobrepasa en tamaño lo razonable en dichas tecnologías. Estos tipos de empresa suelen hacer uso de tecnologías de biblioteca de cintas, como la que estudiaremos a continuación.
E
LTO Para la necesidad de backups de cantidades masivas de datos tenemos la gama alta de cintas LTO. Se trata de una tecnología de alta capacidad desarrollada por IBM, HP y
60
Certance LLC (esta última comprada por Quantum). A pesar de haber sido implementada por tres compañías, LTO es un estándar abierto al que cualquier fabricante se puede adherir. Existen dos tipos de formato dentro de LTO: Ultrium, orientado a la alta capacidad, y Accelis, para la alta velocidad de acceso, lectura y escritura. La idea que está detrás de Accelis es reducir el tiempo de acceso a un archivo empleando dos rodillos con cinta en lugar de uno. Esto le permite conseguir tiempos de acceso a un fichero de menos de diez segundos, frente a más de un minuto de promedio que tienen los cartuchos de Ultrium. El problema de Accelis es que el resto de los parámetros de referencia con los que trabaja son similares a Ultrium (20 MB por segundo nativos de tasa de transferencia), además de que tiene una capacidad de almacenamiento ridícula para su segmento de mercado (25 Gigabytes nativos). En la práctica, podemos considerar a Accelis como muerta antes de nacer, y será complicado que encontremos una cinta con esta tecnología. Sin embargo, Ultrium sí ha triunfado en
su segmento de mercado, por lo que la estudiaremos a fondo.
EL FORMATO ULTRIUM Ultrium es el otro formato de la familia LTO y, a diferencia de Accelis, sí ha tenido éxito. Dicho formato utiliza un solo cilindro para almacenar la cinta, que es de media pulgada de ancho y contiene 384 pistas que se dividen en cuatro bandas de 96 pistas cada una. La información en una cinta Ultrium se escribe en las bandas interiores, para proteger los datos de la zona donde es más probable que se dañen por el rozamiento. La información se verifica al mismo tiempo que se escribe. El sistema Ultrium LTO incorpora además el LTO-CM (Cartridge Memory), lo que permite acelerar el acceso a la información. Una de las características nuevas de Ultrium es que emplea la técnica "Timingbased servo" a la hora de grabar la información. Esto supone una mejora en los servos de posicionamiento de los cabezales, gracias a la cual este formato asegura que los cabezales de lectura/escritura estén siempre posicionados de forma precisa, sobre las
Los tipos de cinta AIT y sus precios Existen distintos modelos de cintas AIT con diferentes características básicas: todas comparten treinta años de vida útil archivadas y son cintas de 8 mm., con unas 5,3 micras de grosor de la cinta magnética. Pero hay una serie de características específicas del tipo de cinta AIT. El primer tipo que se desarrolló fueron las cintas AIT-1 que tienen una capacidad de 70 Gigabytes comprimidos (35 Gigabytes sin comprimir) en 170 metros de cinta. La EEPROM de las AIT-1 es de 16 kbits. Estas cintas suelen costar unos 54 euros, lo que supone aproximadamente 1,54 euros por Gigabyte. El sucesor de las AIT-1 son las cintas AIT-2, con 50 Gigabytes nativos (100 Gigabytes comprimidos). Su longitud es de 230 metros, y la EEPROM es de 64 kbits. Suelen costar unos 58 euros, por lo que su precio baja hasta los 1,16 euros por Gigabyte. Las cintas más modernas son las AIT-3, con 100 Gigabytes de capacidad nativa (200 Gigabytes comprimidos), una longitud de cinta también de 230 metros, lo que supone el doble de integración que las AIT-2. La capacidad de la EEPROM de las AIT-2 es de 64 kbits. El coste de una cinta AIT-3 suele rondar los 62 euros, con lo que el precio de por Gigabyte de este tipo de cintas es de 0,62 euros.
Número 66
60-63 Servidores
7/4/06 12:42
Página 61
CINTA DE GAMA ALTA
pistas correctas; minimizando así el retraso producido a la hora de poner el cabezal en la posición adecuada. Los productos Ultrium utilizan además un sistema servo dual, para mejorar la fiabilidad y la robustez de la operación de posicionamiento del cabezal. Otra mejora importante es el algoritmo de compresión: emplea el LTO-DC, que es una versión mejorada del ALDC (Advanced Lossless Data Compression). Entre sus ventajas destacamos que si los datos aumentan en tamaño al comprimirse -algo típico de datos ya comprimidos, como puede ser el vídeo en MPEG4, fotos en JPEG o música en MPEG3-, la compresión se inhabilita automáticamente. Las unidades Ultrium suelen tener un mecanismo mejorado de enganche de cintas en inserción, que evita que “haciendo el salvaje” al insertar una cinta nos la “carguemos”, algo que conocen los que han empleado la DLT. Todas las cintas Ultrium están hechas de partículas de metal sobre una película de PEN (un polietileno), con un ancho de 12.65 milímetros y un grosor de 8.9 micras. Su tamaño exterior es de 2.1 cm. de alto, 11.3 cm. de ancho y 11.1 cm. de largo y pesan unos 285.2 g, aunque las Ultrium3 pueden ser unos gramos más pesadas. La durabilidad de los cartuchos Ultrium suele ser muy alta, normalmente almacenados tienen una vida media de treinta años. Permiten un millón de pasadas por cualquier parte de la cinta, y 20.000 pasadas completas grabando de extremo a extremo; lo que supone en la práctica que se pueden almacenar hasta 260 backups por cartucho. Podemos operar con los cartuchos Ultrium entre 10° y 45° C. Para un almacenaje común de operativa diaria, el rango de temperatura suele oscilar entre 16° y 32° C, pero si queremos almacenarlos con vistas a largo plazo, el rango de temperaturas recomendado es entre 5° y 23° C. El rango de humedad para trabajar con la cinta oscila entre el 10 y el 80 por ciento; aunque para almacenarlos a largo plazo es recomendable que mantengamos estos cartuchos a una humedad relativa de entre el 20 y el 60 por ciento. La tecnología Ultrium, por lo tanto, la podemos considerar lo más alto de la gama. Cuando en nuestra empresa necesitemos sacar backups de un volumen de datos realmente grande, deberemos emplear cintas Ultrium, y si los datos no caben, bibliotecas de estas cintas.
FAMILIAS DE CINTAS ULTRIUM Dentro del formato Ultrium existen tres familias de cintas, con capacidades y caracterís-
ticas distintas: Ultrium (LTO-1), Ultrium2 (LTO2) y Ultrium3 (LTO-3). Las cintas Ultrium tienen una densidad de grabación de 124 kbits por pulgada, 609 metros de longitud de cinta y 312 pistas. Esto permite que tengan una capacidad de 100 Gigabytes nativos (200 Gigabytes comprimidos) y una tasa de transferencia de 15 Mbytes por segundo, lo que puede dar 30 Mbytes comprimidos. Una unidad LTO-1 puede leer y escribir únicamente en los cartuchos Ultrium. Las cintas Ultrium2 tienen una densidad de grabación de 188 kbits por pulgada, 609 metros de longitud de cinta y 584 pistas. Esto permite que tengan una capacidad de 200 Gigabytes nativos (400 Gigabytes comprimidos). Una unidad LTO-2 puede leer y escribir en cartuchos Ultrium2 y Ultrium. La tercera generación es Ultrium3, y se corresponde con la tecnología más moderna; además, será la que encontraremos actualmente con más frecuencia en las tiendas. Es capaz de almacenar 400 Gigabytes nativos por cinta (800 Gigabytes comprimidos) gracias a que han aumentado a 704 el número de pistas, a 680 metros la longitud de la cinta y su densidad de grabación ha subido a 245 kbits por pulgada. Además, tienen una tasa de transferencia de 80 Mbytes por segundo nativos (160 Mbytes por segundo comprimidos). Una unidad LTO-3 puede leer y escribir en cartuchos Ultrium3 y Ultrium2, y puede leer solo los cartuchos Ultrium.
LOS FORMATOS DE TRAVAN Antes de terminar de hablar de las cintas, vamos a tratar algunos temas que nos hemos dejado colgados en anteriores entregas, uno de ellos ha sido las tecnologías QIC y Travan existentes. Los primeros QIC empleaban cintas de un cuarto de pulgada. Dentro de estos cartuchos, destacamos: QIC-11: 20 MB, en una cinta de cuatro pistas.
SERVIDORES
QIC-24: 45 MB o 60 MB en una cinta de nueve pistas. QIC-120: 125 MB en una cinta de 15 pistas. QIC-150: 150 MB en una cinta de 18 pistas. QIC-525: 525 MB en una cinta de 26 pistas. Puede que aún nos encontremos alguno de estos cartuchos en nuestra empresa, pero hace tiempo que no se venden ni unidades ni cartuchos de esta tecnología. Después de QIC, como evolución nació Travan, que utilizaba cintas más anchas -de 8mm- para obtener una capacidad de almacenamiento mayor. Los modelos de Travan más importantes que nos podemos encontrar son: QIC-80: a pesar de su nombre, podemos considerarlo Travan. Permite almacenar entre 80 y 500 MB empleando entre 28 y 36 pistas. TR-1: Permite almacenar 400 MB empleando 36 pistas. Internamente utiliza el formato de cinta de QIC-80. QIC-3010: Su capacidad es de 340 MB, empleando 40 o 50 pistas. TR-2: Permite almacenar 800 MB por cinta en 50 pistas. Internamente usa el formato de cinta de QIC-3010. QIC-3020: Almacena 670 MB por cinta utilizando 40 o 50 pistas. TR-3: Emplea internamente el formato de cinta de QIC-3020 y permite almacenar 1,6 Gigabytes nativos por cinta en 50 pistas. QIC-3080: Con 60 pistas puede almacenar 1,2 Gigabytes nativos, y con 72 pistas hasta 1,6 Gigabytes nativos. QIC-3095: Este formato utiliza 72 pistas y puede almacenar 4 Gigabytes nativos. TR-4: Almacena en cintas de formato QIC-3095 con 72 pistas. Puede almacenar 4 Gigabytes nativos. Los modelos Travan 8 GB y los Travan NS8 tienen la misma capacidad. TR-5: Utilizando 108 pistas, almacena hasta 10 Gigabytes nativos.
Limpiando los cabezales Muchas de las tecnologías que hemos comentado no incluyen el cabezal en la cinta, lo que significa que tendremos un cabezal para todas las operaciones a lo largo de la vida útil de la unidad. Como podemos suponer, el cabezal se ensucia y a medida que esto ocurre su tasa de errores aumenta. Por ello debemos limpiar el cabezal de la unidad de cinta con regularidad. Ésta depende de la tecnología, puesto que unas necesitarán mayores cuidados en la limpieza que otras. De cualquier forma, en todas las tecnologías la frecuencia del limpiado dependerá de la cantidad de uso que le demos a la unidad de cinta.
Número 66
61
60-63 Servidores
SERVIDORES
7/4/06 12:42
Página 62
CINTA DE GAMA ALTA
La unidad LTO-3 Quantum
De las distintas unidades LTO disponibles, destacaremos la Quantum LTO-3. Esta unidad es compatible con Linux y está completamente soportada, incluso su actualizador de firmware está portado para este sistema. Comparte parámetros con las unidades estándares LTO-3: 400 Gigabytes de capacidad nativa, capaz de leer y escribir cintas LTO-3 y LTO2, y de leer cintas LTO-1. Puede soportar transferencias de pico de 160 MBytes por segundo (nativos), y transferencias sostenidas de 69 MBytes por segundo (nativos). El tiempo medio de acceso a un fichero es de 68 segundos. Tiene un buffer de 128 MB internos, y se conecta al bus Ultra160 SCSI de la máquina. Sus parámetros operacionales son similares a los de otras unidades: entre 10ºC y 40ºC, y un máximo de humedad relativa del 80 por ciento. Podemos encontrar esta unidad en varios formatos, todos con conexión Ultra160 SCSI: interna, externa de sobremesa, y para montar en rack. En este último caso, ocupa 2Us. El precio de esta unidad oscila entre los 3.700 euros de la interna, los 4.100 de la externa de sobremesa y los 4.600 de la rackeable. Hay un modelo rackeable dual, de dos unidades en una caja, que podemos encontrar en el mercado por 8.000 euros.
62
Todos estos cartuchos son lo suficientemente antiguos para que no encontremos ni unidades ni cintas en el mercado, aunque en ciertas empresas y universidades pueden existir todavía algunos con backups pasados. De cualquier forma, existen tecnologías Travan que se emplean en la actualidad: NS20 y Travan-40. La primera alcanza 10 Gigabytes nativos (20 comprimidos) con una tasa de transferencia de 2 Megabytes por segundo. Por otro lado, los más modernos y recomendables Travan 40 GB permiten almacenar 20 Gigabytes nativos (20 comprimidos) con una tasa de transferencia de 4 Mbytes por segundo. Estos últimos cartuchos son muy útiles para profesionales freelance, ya que permiten almacenar una cantidad de datos suficiente para este tipo de mercado, con un coste por unidad muy bajo y con cintas que pueden ser reescritas varias veces más que la tecnología DAT, en particular, admiten 10.000 backups completos.
MAGNETO-ÓPTICOS No terminaremos de hablar de backups sin mencionar una tecnología que lleva años en el mercado y, aunque no se acaba de imponer, siempre ha existido como una alternativa de backup a las cintas. El gran problema de las cintas reside en su capacidad de posicionar los cabezales,
ya que no han podido hacer la pista arbitrariamente estrecha. Y la razón no es que no podamos tener cabezales capaces de leer pistas muy pequeñas (los discos duros, por ejemplo, tienen dichos cabezales), sino que por la naturaleza móvil y variable del medio, no se pueden emplear pistas tan pequeñas como los discos duros sin problemas de posicionamiento de los cabezales. Recordemos que en un disco duro las pistas están a distancias conocidas y fijas del cabezal; cuando esta distancia cambia, aunque sea levemente por razón de uso continuado durante años del servo, el disco duro muere entero. Una solución ingeniosa a este problema ha sido emplear pistas ópticas para posicionar el cabezal. Y en esto consisten las unidades magneto-ópticas: cada cierto número de pistas magnéticas, que almacenan datos, hay una pista óptica, con información de posicionamiento. De hecho, el servo de los cabezales lleva un lector óptico, que se encarga de posicionar adecuadamente la pista óptica. Como la distancia entre los cabezales magnéticos entre sí, y entre los cabezales magnéticos y el cabezal óptico es fija y conocida, podemos ajustar la precisión de la lectura a niveles varios órdenes de magnitud superiores a los que nos permite la tecnología de cintas tradicional.
Los precios de las cintas Ultrium Los precios por GB de las cintas Ultrium son: Cinta LTO-1: capacidad de 100/200 GB, 33 euros unidad, 0,33 euros por Gigabyte Cinta LTO-2: capacidad de 200/400 GB, 57 euros unidad, 0,28 euros por Gigabyte Cinta LTO-3: capacidad de 400/800 GB, 132 euros unidad, 0,33 euros por Gigabyte Esto hace que LTO no sea ni el medio más robusto, indisputable a las VXA, ni el más barato, ya que las SDLT-320 tienen un precio de 0,203 euros por Gigabyte. Sin embargo, es el más masivo y a un precio muy competitivo: 0,28 euros por Gigabyte los cartuchos de 200 GB, y 0,33 euros por Gigabyte los de 400 GB; lo que supone almacenar más del doble por cinta que el medio más barato (SDLT-320). Puede sorprendernos el hecho de que los cartuchos de 400 GB valgan un poco más que los de 200 GB, pero no olvidemos que en LTO estamos pagando por un almacenamiento realmente masivo. De hecho, es muy frecuente comprar las cintas LTO en packs de veinte (recordemos que esta tecnología está reservada para empresas que realizan backups constantes de mucha información). En estos casos, podemos conseguir cartuchos de 400 GB por 120 euros, bajando el coste por Gigabyte hasta los 0,30 euros sin problema. Solamente por recordar, los discos duros IDE de 400 GB cuestan el doble que una cinta LTO-3; y los CDs y DVDs con impuesto de la SGAE no compiten en precio (0,8557 y 0,7979 euros el Gigabyte, respectivamente). El DVD tiene cien veces menos capacidad que una cinta LTO-3, por lo que, si unimos que es un medio muy delicado en comparación con una cinta LTO, para almacenamiento masivo de datos audiovisuales éste formato es el rey.
Número 66
60-63 Servidores
7/4/06 12:42
Página 63
CINTA DE GAMA ALTA
A cambio de todo esto, el precio por Gigabyte de las unidades magneto-ópticas de siempre ha sido muy alto. Pero por su comodidad de manejo, su velocidad de acceso (un orden de magnitud más rápido que las disqueteras), el razonablemente moderado precio de las unidades y su fiabilidad aceptable (no tanto como una cinta, pero mucho más que un disco duro) han hecho que estas unidades hayan tenido un nicho de mercado pequeño, pero fiel y constante. ■ IOMEGA
La gran empresa de unidades magneto-ópticas populares ha sido siempre IOMEGA. Sus unidades ZIP y JAZZ, aunque hoy en día sean tecnológicamente obsoletas, se han empleado durante años para realizar backups fiables y aún se usan en muchos lugares. IOMEGA en la actualidad tiene dos soluciones magnetoópticas interesantes: por un lado está el ZIP 750, sucesor de la tecnología ZIP, y que almacena 750 MBytes por disco. Una tecnología muy barata, pensada para almacenar la contabilidad personal, los documentos personales y pocos datos más. Por otro lado, presenta la tecnología REV, aún más interesante que la ZIP 750: es capaz de almacenar 35 Gigabytes por disco a un precio de entrada, principalmente en unidades, muy competitivo. Podemos considerar a las REV como las sucesoras de los discos JAZZ. Las cintas REV de IOMEGA compiten con Travan en el segmento de mercado del profesional independiente. IOMEGA afirma que ha vendido un millón de unidades REV, lo que son muchas unidades de un magneto-óptico de su gama. HP, por su parte, ha sacado UDO (Ultra Density Optical), para suceder a las unidades
MO de la propia compañía. Las UDO de HP llegan a los 30 Gigabytes de capacidad nativa, aunque por precio y por rendimiento no son unidades competitivas y las mencionamos solamente para decir que “hay más gente en la tecnología magneto-óptica”. Pero en la práctica, IOMEGA es el rey absoluto de la tecnología magneto-óptica.
QUÉ VENDRÁ DESPUÉS Las cintas son complicadas por la cantidad de tecnologías existentes, y porque dada su función (backups a muy largo plazo), puede que éstas se hubiesen grabado incluso antes de que nosotros entráramos en la empresa o en el departamento de la universidad. El problema en ese caso es que tenemos entre manos un cartucho de una cinta que tiene unas siglas con su tecnología, pero que no sabemos ni siquiera cómo podríamos leerlo. Además, puede que la cinta no almacene más información que un disquete, e incluso que lo haga en un formato de hace veinte años, pero contiene información crítica a la que es imprescindible acceder (el que escribe este taller se ha enfrentado ya a este problema en la vida real). Sin embargo, después de los últimos números, tenemos ya claro el complejo “ecosistema” de este elemento tan crítico, y con frecuencia tan incomprendido, en el centro de datos como son las cintas; y podremos realizar decisiones de compra sobre tecnologías de cinta y reconocer las principales que es posible encontrar en las empresas. En la próxima entrega (Número 68) de nuestra sección de servidores volveremos a las entrañas de las máquinas, la dedicaremos a Infiniband, una tecnología que seguro dará que hablar. ■
Precios de cintas Travan En la actualidad hay dos tipos de cintas Travan que puede resultar interesante comprar: Travan 20, que suelen costar alrededor de 42 euros, y Travan 40, en torno a 49 euros, aunque se pueden encontrar paquetes con tres cartuchos Travan a 138 euros sin problemas. Todo esto hace que el precio por Gigabyte en euros de Travan 20 sea de 2,1 euros; y el de Travan 40 oscile entre los 1,15 y 1,22 euros. Si comparamos estos precios por Gigabyte con los medios de almacenaje más comunes vemos que no resultan competitivos respecto a DAT ni a los medios ordinarios (disco duro, DVD). La razón de emplear Travan, por lo tanto, no es el coste por Gigabyte bruto ante backups que haremos una vez y almacenaremos durante años. Sin embargo, recordemos que la durabilidad de Travan ante grabaciones sucesivas en la misma cinta es muy superior a DAT, el competidor en su segmento. Una unidad DAT admite 100 reescrituras, mientras que una Travan admite 10.000. Si tenemos unas pocas cintas para hacer backups diarios, y las rotamos, práctica muy común entre profesionales freelance y empresas pequeñas, el TCO de Travan es muy inferior al de DAT.
Número 66
SERVIDORES
La biblioteca de cintas Quantum PX720 Se trata de un sistema masivo que permite almacenar entre cientos y miles de terabytes de datos a través de un brazo robótico, un almacén de cintas y uno o varios lectores. Las bibliotecas de cintas son el único sistema de almacenamiento que permite guardar estas cantidades tan impresionantes de datos, a un coste por terabyte bastante razonable; pueden incluso hacerse a medida para determinados clientes que necesitan más de un millar de terabytes. Pero si una biblioteca de cintas ya es grande: una de tamaño compacto como la Quantum PX720 no va a ser menos. Es una "cajita" de 191cm de altura, 127cm de profundidad y 76 centímetros de anchura, que consume un total de 1.600 vatios. Como unidad de cinta, podemos instalarle entre uno y veinte unidades SDLT320, SDLT 600, DLTS4, LTO-2 o LTO-3. Cada unidad tiene slots para 726 cintas, lo que nos da un total de 14.520 slots. Esto nos permite almacenar más de medio millar de terabytes. El rendimiento, dado que es capaz de operar en paralelo con todas sus unidades, es excelente: hasta 5,8 terabytes por hora en backup, lo que supera el Gigabyte y medio por segundo. La conexión a esta unidad se puede hacer a través de Fibre Channel, SCSI o Gigabit Ethernet. Además, se administra vía web, y soporta alta disponibilidad y redundancia de componentes. Los precios de este tipo de hardware oscilan mucho según a quién se lo compremos y en qué cantidad; pero para que nos hagamos una idea, el precio de una PX720 sin cintas y sin unidades de cinta (que hay que comprar por separado, y sumar el precio a la biblioteca), es de unos 60.000 euros. Las bibliotecas compactas de cintas más modestas bajarán de precio, pero será complicado encontrar una biblioteca de cintas cuyo coste tenga menos de cinco cifras significativas. Por poner un ejemplo: el modelo más barato de Quantum de biblioteca de cintas, la M1500, no baja de los 12.000 euros, y aún así este precio es sin cintas y sin unidades de cinta.
63
64-66 Contenido DVD (Fedora)
18/4/06 16:56
Página 64
>>>
CONTENIDO DVD-ROM FEDORA CORE 5
Fedora Core 5 ras nueve meses de intensa gestación nace la quinta versión de Fedora Core, el proyecto tutelado por Red Hat y desarrollado por una comunidad de voluntarios para crear un sistema operativo Linux fácil, multipropósito, estable, potente y completamente open source que sirva de base a las versiones Enterprise de Red Hat Linux. Si bien no es lo más importante a destacar, lo primero que nos llama la atención es el cambio de look en el proyecto: nuevos logos, tipografías y tema principal que se hace patente desde el instalador, también nuevo, y sin duda de extrema sencillez en su manejo.
bases de datos y capacidades de proxy. Asimismo destacan la inclusión de los gestores de bases de datos libres MySQL 5.0 y PostgreSQL 8.1. En cuanto a utilidades para la monitorización del sistema y análisis de rendimiento, destacan dos aplicaciones nuevas, System Tap y Frysk. A éstas se suma la herramienta system-config-cluster, también incluida por primera vez en Fedora, que permite gestionar la configuración de un clúster en modo gráfico.
T
NOVEDADES Los principales cambios debemos encontrarlos en la actualización de todos los paquetes y la inclusión de nuevas tecnologías y, como acabamos de mencionar, en el remozado aspecto de la distribución. Pero vayamos por partes. ■ ESCRITORIO
En cuanto a los entornos de escritorio, Fedora 5 se aprovecha de las nuevas capacidades de GNOME 2.14 y KDE 3.5. Ejemplos ilustrativos son GNOME User Share, que facilita una gestión simple y eficiente para la compartición de ficheros o GNOME Power Manager y GNOME Screensaver que proporcionan nuevas e integradas capacidades en la gestión de energía. Además, se incluyen los primeros desarrollos del proyecto Fedora Rendering, que deberá proporcionar al escritorio características avanzadas en visualización, rendimiento y facilidad de uso, todo basado en OpenGL. Muy significativo en esta nueva versión de Fedora es que se incluye por primera vez Mono y, por tanto, aplicaciones como Beagle, un buscador para nuestro escritorio; F-Spot, una utilidad para la gestión de fotos y Tomboy, una miniaplicación para la gestión de pequeñas notas. Siguiendo con las novedades a nivel de software de Escritorio, significar que en cuanto a utilidades multimedia destacan la presencia de Gstreamer 0.10 que mejora muy mucho las características de
64
Configurando el cortafuegos y buscando actualizaciones. ■ SISTEMA
las versiones anteriores de esta herramienta, además de una nueva versión del conocido reproductor de películas Totem. En cuanto a software de oficina destacar que Firefox 1.5 es el navegador por defecto y OpenOffice.org 2.0 la suite de ofimática, como no podía ser de otra manera. Una nueva herramienta que se ha incluido es SCIM, se trata de un sistema para facilitar la instalación de Fedora en múltiples lenguajes. Y hablando de instalar, el antiguo gestor gráfico de paquetes ha sido sustituido por la primera versión de una nueva generación de herramientas, entre ellas encontramos Pup, un sencillo interfaz para la actualización del sistema y Pirut, un nuevo gestor de paquetes. Ambos están basados en la utilidad Yum para homogeneizar todo el proceso de actualización y mantenimiento de paquetes del sistema. Para terminar este recorrido sobre las mejoras de Escritorio, destacar que muchos programas de GNOME se aprovechan ya de la librería de gráficos Cairo a la hora de presentar sus nuevos interfaces. ■ ADMINISTRACIÓN
Entre las principales mejoras y novedades que afectan a administradores y desarrolladores encontramos el mayor y mejorado soporte para virtualización con Xen, que incluso se puede instalar y configurar desde el instalador principal del sistema, algo ya incluido en las últimas versiones de SUSE. Importante también la presencia de la nueva versión 2.2 del servidor HTTP Apache. Esta actualización incluye mejoras relativas a la autenticación, soporte de
Número 66
Cabe destacar el importante cambio que se produce al incluirse la nueva versión del sistema gestor de ventanas libre X.org 11 R7.0 con su nueva arquitectura modular. Éste va a proporcionar una actualización de drivers rápida y sencilla, con lo que ello representa a nivel gráfico para los nuevos sistemas Linux en general y Fedora en particular. El compilador por defecto es GCC 4.1 y, de hecho, todos los paquetes en esta release han sido compilados con esta versión, produciéndose una mejora en el rendimiento general del sistema. Finalmente destacar que la versión del núcleo incluida en Fedora 5 es una basada en el 2.6.16 y que se ha añadido soporte para las tarjetas wireless Intel PRO/Wireless 2100 y 2200. Podemos concluir antes de pasar al proceso de instalación que esta nueva versión es un paso adelante muy significativo en Fedora, no es solo el nuevo aspecto y las nuevas utilidades incluidas, es el instalador, mejor y más rápido, la optimización general del sistema, la mejor detección y soporte de hardware y un largo etcétera que seguro iréis descubriendo rápidamente. El punto débil sin duda está en la reproducción del formato DVD y MP3 por defecto.
INSTALANDO FEDORA CORE 5 El instalador ha cambiado en lo referente en su aspecto y si bien se sigue basando en Anaconda, se aprecia una clara evolución y una mayor integración con Yum para todo lo relativo a actualización de paquetes, pero vayamos detallando los principales pasos para instalar Fedora Core 5 en español:
64-66 Contenido DVD (Fedora)
18/4/06 16:56
Página 65
FEDORA CORE 5
PASO 1: COMIENZO
PASO 3: LENGUAJE Y TECLADO
CONTENIDO DVD-ROM
En este momento el instalador nos pregunta si queremos actualizar desde Fedora 3 o Fedora 4 a esta versión o realizar una nueva instalación completa.
PASO 5: PARTICIONADO
Insertamos el DVD en la unidad lectora y reiniciamos el equipo, que deberá estar configurado adecuadamente para que pueda arrancar desde la unidad de CD/DVD. Veremos que se carga una pantalla de presentación donde podemos presionar “ENTER” para proceder con una instalación gráfica normal. Asimismo, se nos informa de las distintas opciones para realizar una instalación; modo texto, sin detección de hardware, parámetros del núcleo, testeo de memoria, etc.
ACPI El hecho de que la instalación falle en uno de los primeros pasos puede deberse a diversas razones, pero una medida recomendable a tomar sería probar a realizar una instalación añadiendo la directiva acpi=off. ACPI es responsable de muchos errores de instalación, y desactivándolo podría completarse algún proceso que hubiera fallado en un paso previo.
Ya estamos en modo gráfico, podemos pulsar en “Release Notes” para leer en inglés notas sobre la instalación y novedades de esta nueva versión. A continuación entramos en la pantalla de selección de lenguajes entre los cuales encontramos el español y el catalán. No están disponibles en este DVD euskera ni gallego, si bien podemos posteriormente buscar paquetes para estos dos lenguajes una vez instalado el sistema desde el menú Escritorio-Administración-Lenguaje (en GNOME). Acto seguido seleccionamos nuestro tipo de teclado.
PASO 4: ACTUALIZACIÓN
PASO 6: CARGADOR DE ARRANQUE Grub es el boot loader o cargador de arranque, este pequeño programa toma
PASO 2: INTEGRIDAD DVD
Ahora podemos proceder a comprobar la integridad del DVD, este paso es necesario y no podemos abortarlo. Una vez pasamos el test, pulsamos en “Continue” para que en unos segundos se cargue Anaconda, el instalador de Fedora.
Si hemos elegido instalar un nuevo sistema, estaremos en este paso donde debemos escoger la partición en la que se instalará Fedora. Vemos que aunque hayamos elegido español como lenguaje de instalación, las distintas opciones de formateo aparecen en inglés. Este pequeño bug no debe suponer mayor problema, ya que las opciones son las habituales que nos ofrece cualquier distro a la hora de particionar: usar todo el disco duro, usar el espacio libre, usar el espacio de una partición Linux antigua o dimensionar el disco duro nosotros mismos. Procedemos con la elección más adecuada a nuestras necesidades (en el cuadro de abajo se detalla más información para el que la necesite) y continuamos con la instalación del sistema.
Particiones En el proceso de partición debemos seleccionar primero a qué disco duro, en caso de tener más de uno, afectará el proceso de instalación. Los discos que no deban ser afectados deben desmarcarse, aunque en caso de disponer de un único disco la casilla aparecerá deshabilitada. Las distintas opciones de particionado son: Remove all partitions on selected drives and create default layout Opción que borrará absolutamente todos los sistemas que haya en el disco duro. Use free space on selected drives and create default layout Con esta opción no se modifica ninguna partición existente. Fedora se instalará en el espacio libre del disco seleccionado en caso de ser posible. Create custom layout Particionado manual, nosotros estableceremos el número de particiones, el tipo y el tamaño de éstas, es la opción adecuada para los más expertos o incluso para cualquiera que ya haya instalado alguna vez un sistema Linux.
Número 66
65
64-66 Contenido DVD (Fedora)
CONTENIDO DVD-ROM
18/4/06 16:56
Página 66
FEDORA CORE 5
Por defecto Fedora asume que trabajaremos con el protocolo DHCP, si preferimos configurar manualmente nuestra tarjeta de red es ahora cuando debemos hacerlo marcando la opción Manual e introduciendo los típicos valores para máscara de red, puerta de enlace y DNSs.
que nos permite personalizar la selección de paquetes. Tras ello comenzará el proceso de copiado de paquetes que durará unos minutos.
PASO 10: PRIMER ARRANQUE
PASO 8: AJUSTES el control cuando encendemos nuestro PC y determina qué sistema operativo, en caso de tener más de uno, se iniciará.
PASO 7: CONFIGURACIÓN DE RED
Ahora configuramos la zona horaria que nos corresponda, introducimos la clave de root o superusuario y continuamos con la instalación.
PASO 9: TIPO DE INSTALACIÓN
Software incluido SISTEMA Kernel 2.6.16 X.org X11R7.0 ESCRITORIO GNOME 2.14 y KDE 3.5 Pirut Beagle OpenOffice 2.0 Nautilus 2.14 MULTIMEDIA Gstreamer 0.10 Helix Player 1.0 Nautilus, K3b DISEÑO The Gimp 2.2.10 F-spot 0.1.10 INTERNET Evolution 2.6.0 Firefox 1.5 BASES DE DATOS MySQL 5.0 y PostgreSQL 8.1 DESARROLLO Eclipse 3.1.2 Mono 1.1 SERVIDOR Apache 2.2 JUEGOS GNOME-Games
66
Anaconda nos pregunta para qué tipo de propósito queremos incluir más software en el proceso de instalación, por defecto viene activado para entorno de oficina, pero también podemos marcar para desarrollo de software o servidor web. Finalmente podemos marcar la opción
Una vez que se ha instalado los paquetes seleccionados pulsamos en “Reiniciar”, y tras ello se cargará Fedora Core 5. Ahora tenemos que configurar algunos parámetros adicionales del sistema. Lo primero es aceptar la licencia de distribución de Fedora Core 5 (GNU GPL), después configuramos las opciones de firewall y SELinux, introducimos la fecha y hora del sistema, seleccionamos una resolución adecuada de pantalla y el tipo de monitor que tenemos, para concluir creando una cuenta de usuario normal con la que trabajaremos habitualmente. Y con esto hemos terminado el proceso de instalación. ■
Aspecto de Fedora Core 5 una vez que hemos concluido la instalación.
Requisitos mínimos Fedora Core 5 está optimizada para Pentium 4 pero soporta versiones anteriores como Pentium Pro, Pentium II, Pentium III, y compatible AMD Mínimo recomendado en modo texto: Pentium 200 MHz Mínimo recomendado en modo gráfico: Pentium II 400 MHz Memoria RAM: en modo texto 128 MB y 256 MB para modo gráfico Disco duro: una instalación mínima ocuparía unos 700 Mb, una instalación típica puede requerir 3 Gb y llegar a 9 Gb
Número 66