65
TARJETAS NVIDIA DVD-ROM: FEDORA CORE 5 La Revista mensual para entusiastas de GNU/LINUX Año 6 Número 66 6, 95 Euros Software libre Crea tu propia LiveCD con Ubuntu Linux Cómo firmar digitalmente documentos OpenOffice Los mejores IDEs para programar en Linux Configuración de un servidor de correo Arrancando una máquina remota con PXE Reportajes: Estado del proyecto Mono / Entrevista a Nat Friedman de Novell Nuevo Sistema Linux FEDORA CORE 5 8 4 1 3 0 4 2 7 5 1 7 1 7 0 0 0 6 6 PRESS Guía de instalación paso a paso de la nueva Fedora Configuración y overclocking de tarjetas gráficas

Todo Linux 66

  • Upload
    edu-edu

  • View
    359

  • Download
    10

Embed Size (px)

DESCRIPTION

La revista mensual Todo Linux para entusiastas del software libre

Citation preview

Page 1: Todo Linux 66

TARJETAS NVIDIADVD-ROM: FEDORA CORE 5

La Rev is ta mensua l para entus ias tas de G N U / L I N U X

Año 6

Número 666,95 Euros

Software libre

Crea tu propia LiveCDcon Ubuntu Linux

Cómo firmar digitalmentedocumentos OpenOffice

Los mejores IDEs paraprogramar en Linux

Configuración de unservidor de correo

Arrancando una máquinaremota con PXE

Reportajes: Estado del proyecto Mono / Entrevista a Nat Friedman de Novell

Nuevo Sistema LinuxFEDORA CORE 5

84

13

04

27

51

71

7

00

06

6

PRESS

Guía de instalaciónpaso a paso de lanueva Fedora

Configuración yoverclocking detarjetas gráficas

01 PortadaTodoLinux66 7/4/06 13:43 Página 1

Page 2: Todo Linux 66

La Revista mensual para entusiastas de GNU/LINUX

DIRECTOREduardo [email protected]

REDACCIÓNYenifer [email protected]

COLABORADORESRocío Arango, David Santo Orcero,Jesús M. Glez. Barahona, VicenteMatellán, Antonio M. Zugaldía,Fernando Sánchez, RobertoSuárez, Javier Galán, Jorge López,Luis López, Jerónimo Caballo,Xavier Drudis, Jose Alberto Suárez,Arturo Fernández, MarcosGoyeneche, Juanan Pereira, JavierCarmona, Julio Gómez, ÁlvaroAnguix, Víctor Alonso

DISEÑO PORTADAAntonio Gª Tomé

MAQUETACIÓNAntonio Gª Tomé

DIRECTOR DE PRODUCCIÓNCarlos [email protected]

ADMINISTRACIÓNMarisa [email protected]

PUBLICIDADFernando [email protected]

SUSCRIPCIONESTel: 91 628 02 [email protected]

FILMACIÓN: Fotpreim DuvialIMPRESIÓN: I. G. PrintoneDUPLICACIÓN CD-ROM: M.P.O.

DISTRIBUCIÓNS.G.E.L.Avda. Valdelaparra 29 (Pol. Ind.)28108 Alcobendas (Madrid)Tel.: 91 657 69 00

EDITA: Studio Presswww.studiopress.es

REDACCIÓN, PUBLICIDAD YADMINISTRACIÓNC/ 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 conlas opiniones escritas por sus colaboradores en losartículos firmados.Los contenidos de Todo Linux son copropiedad deIberprensa y sus respectivos autores. La mayor partedel software de los CD-ROM se pueden redistribuirlibremente 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

Número 66 • Año 6Copyright 1/07/06PRINTED IN SPAIN

Editorial

Todos contra el Canon

Eduardo Toribio

PRESS

3Número 66

�� Servicio TécnicoTodo Linux dispone de un servicio técnicodonde se pueden consultar dudas sobre elfuncionamiento del CD-ROM. Dicho serviciono incluye asesoramiento sobre Linux ymétodos de instalación debido a que no esun proceso estándar y depende de las carac-terísticas del PC de cada lector.

[email protected]

�� Escribe a Todo LinuxComparte con nosotros tus dudas, comenta-rios, e ideas. Solo tienes que enviárnoslas porcorreo o fax a la siguiente dirección:

TODO LINUX, Cartas de los lectoresC/ del Río Ter, Nave 13. Polígono “El Nogal”

28110 Algete (Madrid)Fax: 91 628 09 35

[email protected]

�� Suscripciones ynúmeros atrasados

En la contraportada se encuentra el cupón desuscripción a doce números de Todo Linux,incluye además información adicional sobre lasposibles promociones especiales de cada mes.También es posible conseguir algunos de losnúmeros antiguos de la revista dirigiéndose alteléfono de atención 91 628 02 03 o pore-mail a: [email protected] sobre la disponibilidad de la oferta 2x1.

Recientemente se ha presentado una aso-ciación que tiene como objetivo manifes-tar unitariamente su repulsa ante el esta-blecimiento de cualquier tipo de imposi-

ción en formato de canon sobre los soportes digi-tales. Esta asociación, Todoscontraelcanon.es,está formada por profesionales del sector de lastecnología de la información, asociacionesempresariales y de consumidores e incluso lossindicatos. Todos ellos entienden que el CanonDigital perjudica el desarrollo de la Sociedad de laInformación y a la competitividad de nuestra eco-nomía. Entre otras medidas, de las cuales noso-tros informaremos, se celebrarán convocatorias yactuaciones ante el Congreso y el Senado y otrasmanifestaciones con el fin de concienciar lomáximo posible a la sociedad en general sobre lagravedad del asunto.

Curiosamente, y paralelamente al anuncio dela presentación de esta asociación a la cual ledeseamos la mayor de la suertes, ha surgido unapolémica reflejada en diversos medios entre losministros de Industria y Cultura, sobre la posibleconveniencia de aplicar un nuevo canon sobre laslíneas ADSL y los discos duros. Parece ser queMontilla, titular de la cartera de Industria, no estáde acuerdo y considera que ello supondría unobstáculo en el desarrollo e implantación deInternet en nuestra sociedad, lo cual es bastantemalo si consideramos el retraso que llevamos conrespecto a nuestros vecinos. Lamentablemente,parece que Carmen Calvo, nuestra Ministra deCultura, sí se hallaría más cerca de las tesis de laSGAE (Sociedad General de Autores).

Hay que significar que España está levemen-te por debajo en la media de la UE en cuanto a

conexiones de banda ancha, pero significativa-mente lejos de las cifras que alcanzan los paísesmás desarrollados como Francia, Alemania,Holanda o Reino Unido. Por tanto, queremosreducir la brecha digital y potenciar la Sociedadde la Información, mientras algunos todavía seempeñan en continuar anclados en antiguosmodelos de negocio, agarrados a un clavoardiendo cada vez más pequeño, aunque sea acosta de perjudicar a la mayoría. El canon nosoluciona el problema de fondo e incluso paramuchos legitima la descarga ilegal, la solución nova a estar en impedir el acceso a las nuevas tec-nologías.

Pero es que además, mucha gente utilizasolo Internet para navegar y gestionar su correoelectrónico, y por supuesto que en la Red existencontenidos sujetos a Copyright, pero tambiénmuchos otros que no lo están, como todo lo quese encuentre como CC o licencias libres.Volvemos a estar en el mismo caso que los CD-ROMs, canon que grava indiscriminadamentecomo si todos los medios se utilizaran para alma-cenar contenidos que vulneran la propiedad inte-lectual. Es solo una anécdota más, pero esta edi-torial, como cualquier otra, utiliza cientos de CD-ROMs para realizar copias de seguridad y alma-cenamiento de todas las publicaciones, cientosde gigas mensuales. Así podríamos seguir enmuchos otros sectores.

En fin, el asunto es gravísimo y la indignacióncrece, debemos confiar en nuestros políticospero las dudas de algunos nos ponen los pelosde punta. La SGAE se ha mostrado muy hábilestos últimos años funcionando como un típicolobby americano. ¿Hasta cuándo?

03 EditorialTodoLinux66 7/4/06 13:42 Página 3

Page 3: Todo Linux 66

� Tarjetas NVIDIALas tarjetas gráficas con chipNVIDIA se han popularizadomasivamente en el parquetde ordenadores domésti-cos, en este número dedica-mos dos reportajes a susoporte en GNU/Linux.

� Guías Mandriva 2006 Ya puedes encontrar enquioscos nuestro monográfi-co de Todo Linux dedicadoa Mandriva 2006. Se tratade una guía completa sobrela instalación, primeros pasosy uso del sistema Mandriva2006. También puedessolicitarla en: [email protected] o ennuestro teléfono916280203.

� SuscripcionesSuscribirte a Todo Linuxsupone un ahorro conside-rable respecto al precio enquiosco, además de regalopuedes elegir uno de los nú-meros especiales de nues-tra revista con DVD: La guíaFedora Core 4 o la guíaMandriva 2006.

En Portada �

Sumario

4 Número 66

Número 66

10 Exprime InternetTodos los recursos ofrecidos en Internet son cubiertos por las completas aplicaciones que yatenemos disponibles en GNU/Linux, como por ejemplo el navegador Firefox, el gestor decorreo electrónico Thunderbird, el cliente de mensajería instantáneaaMSN, los programas de descarga P2P aMule y Azureus, la descargadirecta de archivos mediante D4X o por FTP con GFTP y la lectura de noti-cias RSS con aKregator. Este mes dedicamos nuestro reportaje de porta-da a revisar las principales características y funcionamiento de algunas deestas herramientas tan importantes en la consolidación definitiva de Linuxy el software libre.

64 ��� Contenido DVD-ROM

Fedora Core 5Nueva versión del sistema operativo Fedora, la distribución desarrollada poruna amplia comunidad de voluntarios bajo la tutela de Red Hat. En esta oca-sión se aprecian numerosos cambios y mejoras, desde el apartado estéti-co, pasando por la actualización de todos los paquetes importantes, hastala inclusión de Mono y otras nuevas tecnologías. Además, Fedora Core 5 esun sistema muy sencillo de instalar y por tanto ideal para principiantes enLinux.

Nuestras secciones dedicadas a los nuevos usuarios del sistema Linux y a todosaquellos que quieren dejar distribuciones comerciales de lado y usar Debian.

ZONA INICIACIÓN 16Imendio PlannerLa gestión de proyectos es una disciplina que nació paralos sectores más implicados con la ingeniería y se haextendido rápidamente. Vamos a conocer uno de losgestores más populares en Linux.

ZONA DEBIAN 20Servidor de correo y herramientasde filtradoLa instalación de un servidor de correo va a permitir a unusuario utilizar un dominio propio como origen y destinode los correos electrónicos.Z

on

as d

e In

icia

ció

n y

De

bia

n

En portada

04-05 Sumario 7/4/06 13:24 Página 4

Page 4: Todo Linux 66

Edición de ficheros PDF sin Adobe Acrobat 30Linux carece de buenas herramientas que permitan editar ficherosPDF, pero sí dispone de visores y otras aplicaciones para manipulareste tipo de ficheros como veremos.

Crea tu LiveCD con Ubuntu 34En este taller realizamos un ejercicio práctico paso a paso consisten-te en crear nuestro propio sistema Ubuntu Live con las aplicacionesque queramos. Esto tiene muchas aplicaciones prácticas.

Firma digital en Linux 37Vamos a estudiar en este taller cómo firmar digitalmente paso apaso documentos OpenOffice y mensajes de correo electrónico enMozilla Thunderbird.

Overclocking de tarjetas NVIDIA 41Actualmente son muchos los equipos que montan tarjetas NVIDIA,por ello vamos a repasar cómo “tocar” algunos parámetros paraoptimizar el rendimiento de este dispositivo.

Sumario

5Número 66

Ta

lle

r L

inu

x

Software �

� Entornos integrados de 46desarrollo en LinuxLos IDEs son una granherramienta para el progra-mador de aplicaciones,vamos a analizar tres de losmás populares que existen actualmente paraGNU/Linux: Anjuta, KDevelop y Eclipse.

� Programación en SWT 50Conoceremos las librerías SWT que sehan convertido en una de las principalesreferencias en la programación gráfica ala hora de programar interfaces.

� Configurando terminales 55con PXE

En nuestro número anteriorcomenzamos una miniseriesobre terminales tontospresentando el protocoloPXE, ahora descubriremoslos servicios necesarios

para arrancar una máquina remota.

� Tarjeta gráfica NVIDIA 6600 44Sin duda las tarjetas gráfi-cas con chip NVIDIA sonlas que mayor rendimientoofrecen en Linux. Veamoscómo instalar sus driversen las principales distribuciones.

6. Novell presenta sus novedades Linux para la empre-sa en BrainShare 2006.

6. Galicia instalará el mayor supercomputador dememoria 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 teleco-

municaciones.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.

Noticias del sector �

Configuración de hardware �

24 �� El proyectoMono

Mono esuno de losproyectoslibres máspopulares ytambién delos máscontroverti-dos. Dedicamos un reporta-je completo a analizar suestado actual, repasar supequeña historia e inclusover un par de ejemplosprácticos.

� Reportaje

28 �� Nat Friedman,Vicepresidentede Linux Desktopen Novell

En la recien-te presenta-ción a niveleuropeo deSUSEDESKTOPen Parístuvimos la oportunidad decharlar con Nat Friedman,conocido por ser uno de losfundadores de Ximian yactual encargado del escri-torio Linux para Novell.

� Entrevista

60 �� Las tecno-logías de cintade gama alta

Seguimos nuestro recorridopor las tecnologías decinta,en este número llega-mos a las de gama alta quehan de cumplir las deman-das de los usuarios más exi-gentes.

� Servidores

04-05 Sumario 7/4/06 13:24 Página 5

Page 5: Todo Linux 66

LINUX EN EL MUNDO Novell presenta sus novedades Linuxpara la empresa en BrainShare 2006La plataforma SUSE Linux Enterprise 10 y el nuevo entorno de escritorio como soluciones estrellaLa edición 2006 del encuentro que Novellcelebra anualmente para sus partners seha centrado este año en el lanzamiento dela plataforma para la Open Enterprise, unaarquitectura de software y servicios paraayudar a las empresas en la implantaciónde código y estándares abiertos. Dentrode esta estrategia, la compañía otorga unpapel protagonista a la nueva plataformaSUSE Linux Enterprise 10, a la que com-plementa el reciente lanzamiento de SUSELinux Enterprise desktop, un entorno deescritorio con capacidades gráficas avan-zadas. SLE 10 se ha presentado como elelemento clave para el nuevo modelo de“empresa abierta”, especial-mente por las mejoras queaporta en el nivel de rendimien-to, capacidad de gestión y vir-tualización. En cuanto al nuevoescritorio SUSE, destacan, ade-más de las ya mencionadasmejoras en el interfaz gráficoderivadas del subsistema Xgl(disponible para su descarga en

www.freedektop.org/Software/Xgl),la usabilidad y facilidad de mantenimien-to, la inclusión de nuevas herramientas deseguridad (proyecto AppArmor) y multi-media (soporte de tecnología Bluetooth,buscador Beagle), así como el soporte pa-ra el formato de documento abiertoOpenDocument. Está previsto que la ver-sión definitiva de SUSE Linux EnterpriseDesktop esté disponible para el verano de2006 (más detalles en la entrevista conNat Friedman, vicepresidente del área deescritorio Linux en Novell en la página 28).Además de las novedades relacionadascon las soluciones SUSE, Brainshare 2006

también fue el escenario elegi-do para el lanzamiento denuevas herramientas en lasáreas de seguridad, colabo-ración y gestión de identi-dades. Las aplicacionesNovell SecureLogin yStorage Manager se presen-tan como una opción paralas empresas a la hora de

mejorar y simplificar la gestión de recur-sos compartidos en la Red. Por su parte, laherramienta Designer for Novell IdentityManager, basada en el framework de có-digo abierto Eclipse, permite configurar yprobar las implementaciones relaciona-das con la gestión de identidades.Finalmente destacar la ampliación delprograma Market Start de Novell para im-pulsar y acelerar la adopción de las tec-nologías de código abierto. Se han inte-grado en dicho programa los fabricantesy distribuidores de software Alfresco,Black Duck, EnterpriseDB, SpikeSource yNovacoast.Más información sobre la edición NovellBrainShare 2006 en:http://www.novell.com/brainshare

Galicia instalará el mayor supercomputador dememoria compartida de EuropaEl proyecto “Finis Terrae” costará sesenta millones de euros y trabajará sobre LinuxEl Centro de Supercomputación de Galicia(CESGA) ha firmado un convenio de cola-boración con HP e Intel, por el cual laXunta de Galicia y el Consejo Superior deInvestigaciones Científicas (CSIC) instala-rán en su centro de computación, localiza-do en Santiago de Compostela, el mayorsupercomputador de memoria compartidade Europa. El proyecto, conocido como“Finis Terrae”, tendrá un coste total supe-rior a los sesenta millones de euros y seconvertirá en un referente mundial de cál-culo científico y técnico.“Finis Terrae” contará con más de 2.500núcleos de procesador Itanium 2 de últimageneración, una arquitectura de memoriacompartida de más de 19.000 GB y una

red de interconexión de alto rendimientoentre nodos Infiniband.Además, el supe-rordenador trabajará soportado por códi-gos basados en software libre (Linux,Lustre, Globus,…) y contará con un siste-ma de almacenamiento jerárquico de390.000 GB en disco y un Petabyte en li-brería robotizada de cintas.Actualmente, éste sería el supercomputa-dor con mejor ratio memoria/procesador yla máquina para cálculo científico HP –Intel de mayor capacidad instalada en elmundo, formado por 142 nodos con 16núcleos de procesadores Intel Itanium 2 y128 GB de memoria cada uno.Adicionalmente contará con dos nodos de128 núcleos de procesadores cada uno.

Esta iniciativa aportará una potencia decálculo y almacenamiento capaz de darrespuesta a las necesidades computacio-nales de los más ambiciosos proyectoscientíficos en áreas como diseño en inge-niería, física, química, biomedicina y cien-cias de la salud, astrofísica, meteorologíay climatología. www.cesga.es

Oriente MedioArabtec, una de las ma-yores constructoras delos Emiratos ÁrabesUnidos, ha migrado losservidores de correoelectrónico de 3.200empleados al sistemaRed Hat Enterprise Linuxsobre arquitectura IntelXeon de HP.Actualmentela compañía está eva-luando la posibilidad demigrar todos sus servi-dores de archivo, siste-mas backup, así como latotalidad de sus equiposa esta solución.

Cuba desarrollará unsistema Linux basadoen DebianCuba estudia la aplica-ción del software librepara el desarrollo deaplicaciones especiali-zadas dirigidas a entor-nos educativos. Segúnresponsables del Minis-terio de Educación de laisla, actualmente seencuentran trabajandoen la creación de unsistema Linux basadoen Debian que incluyaprogramas útiles para laenseñanza o la gestiónen centros educativos.

Venezuela ofreceráformación en softwareLibre a sus funcionariosEl Ministerio de Ciencia yTecnología de Venezuelase ha fijado como objeti-vo para este año 2006ofrecer formación en eluso y aplicación de soft-ware libre a 30.000 fun-cionarios de los 26 mi-nisterios con los quecuenta la AdministraciónPública. Los cursos se-rán desarrollado a travésde la Oficina de Tecnolo-gías de Información yversarán sobre lengua-jes de programación,sistemas operativos ycentros de datos.

6 Número 66

ACTUALIDAD NOTICIAS

06-09 Noticias 7/4/06 13:57 Página 6

Page 6: Todo Linux 66

LINUX EN EL MUNDO

Red Hat amplía sucanal en Europa Red Hat ha anunciadoun importante creci-miento de canal de suPrograma "AdvancedPartner Program" enEuropa. La compañía halogrado un incrementodel 450 por ciento de subase de clientes desdeel lanzamiento del pro-grama en junio de 2004.Se han sumado socioscentrados en el mercadode las Pymes, el sectorpúblico, sanidad, I+D,telecomunicaciones, asícomo especialistas enmigraciones Linux.

MapGuide Open SourceAutodesk ha presentadola nueva versión deMapGuide Open Source,su software de mapasWeb que permite a losusuarios desarrollar ydistribuir rápidamentedatos espaciales y dediseño a través de Inter-net. El software está li-cenciado bajo la GNULesser General PublicLicense (LGPL) y dispo-nible para su descargaen https://mapguide.osgeo.org/, hospedadopor la Open SourceGeospatial Foundation.

La Asamblea venezolanadebate la Ley deSoftware LibreLa Asamblea Nacionalde Venezuela, en con-creto la Comisión Per-manente de Ciencia,Tecnología y Comunica-ción Social, abrieron eldebate para diseñar elproyecto de Ley sobre eluso de Software Libreen la Administración. Enlas jornadas participa-ron representantes delas asociaciones deusuarios Linux y decompañías como IBM oMicrosoft.

Java Expo @ Sun Tech Days 2006Análisis de la importancia de los nuevos modelos de desarrollo en ComunidadEl Palacio de Congresos de Madrid acogióla novena edición de la ya tradicional JavaExpo, que este año compartía escenariocon el foro mundial para desarrolladoresSun Tech Days. Bajo el lema “La Era de laParticipación” la compañía propugnó unnuevo modelo muy volcado en el desarro-llo en Comunidad como motor del cambio.Entre los puntos centrales en torno a loscuales ha girado esta Java Expo 2006 seencuentran los nuevos modelos de desa-

rrollo open source, las arquitecturas orien-tadas a servicios (SOA), las herramientasde Gestión de Identidad, o tecnologías cla-ve como AJAX, JBI y OpenSolaris.Asimismo, durante la última jornada tuvie-ron un lugar destacado NetBeans, el en-torno de desarrollo integrado Java de có-digo abierto de Sun y la plataforma Solarisy el proyecto OpenSolaris, para los que sereservaron dos seminarios monográficos.En esta misma línea de apuesta por lastecnologías abiertas y la participación dela comunidad de desarrolladores se situa-ron las ponencias de apertura del presi-dente de Sun Microsystems Ibérica,AdolfoHernández, que sostuvo que este plantea-miento es perfectamente compatible conla rentabilidad del negocio.Por su parte Jeff Jackson,Vicepresidentede desarrollo de plataformas Java de la

compañía, incidió en la creciente impor-tancia que está cobrando la participaciónactiva de la Comunidad en la evolución deeste lenguaje de desarrollo. Uno de losejemplos más significativos de estasaportaciones es el proyecto Mustang que,gracias a la colaboración de programado-res de todo el mundo, está permitiendoperfeccionar 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 Altixcertificados para SAPLa consultora REALTECH supervisará las migraciones Silicon Graphics ha anuncia-do que las soluciones SAP yaestán certificadas, soporta-das y disponibles sobre laplataforma de servidor SGIAltix para entornos Linux. Conesta medida, los clientes deSAP podrán beneficiarse delas altas prestaciones yescalabilidad queproporcionan lossistemas Altix paraimplementar sussoluciones, ade-más de lareducción decostes quesupone unaplataformaopen sourcecon procesado-res IntelItanium 2.Esta gama deservidores soncapaces deescalar fácil-

mente de 2 a 64 procesado-res, acomodando múltiplesterabytes de memoria en unúnico sistema. Además, suarquitectura de memoriaúnica compartida permitemantener grandes bases dedatos en memoria facilitandoun rápido acceso a la infor-

mación.Silicon Graphicstambién ha fir-mado un acuer-do con la com-pañía de soft-ware y consul-toría tecnológi-ca REALTECHAG, certifican-do a estafirma comosocio tecno-lógico parala migraciónde SAP aplatafor-mas SGI.

Presence Technologydesarrollará sus solu-ciones para ContactCenters bajo la plata-forma de telefonía IPopen source Asterisk.La compañía comer-cializará su solución PresenceOptimizer Voice sobre estesoftware open source que so-porta un amplio rango de pro-tocolos para la gestión y trans-misión de interfaces de VoIP,como SIP (Protocolo deInicialización de Sesiones) yH.323. De esta forma,Presence ofrece una alternati-va para aquellos clientes queno cuenten con una centralita

telefónica pero quie-ran desplegarla demodo virtual medianteun servidor.Asimismo,

es posible implantar esta solu-ción en entornos que ya dis-pongan de una infraestructurade telefonía propia, ya que lasllamadas pueden entrar direc-tamente por esta centralita o através de Asterisk.Actualmente ya está disponi-ble Presence CRM Voice, unaherramienta de voz para CallCenter con funcionalidades IP,y está previsto que incorporeutilidades multimedia y degrabación de llamadas antesde que finalice el 2006.A pe-sar del nuevo modelo basadoen open source, el software dePresence continuará distribu-yéndose bajo una licencia pro-pietaria.

7Número 66

ACTUALIDADNOTICIAS

Araceli Aranda, DirectoraGeneral de PresenceTechnology.

Presence lanza sussoluciones bajo AsteriskCentralitas virtuales sobre un servidor

06-09 Noticias 7/4/06 13:57 Página 7

Page 7: Todo Linux 66

NOTICIAS BREVES Red Hat creará un entorno de virtualizaciónintegrada para sus solucionesAMD, Intel, Network Appliance y XenSource colaborarán en el proyectoRed Hat ha presentado su nueva estrate-gia de "Virtualización integrada” para sussoluciones en la que contará con la cola-boración de socios tecnológicos comoAMD, Intel, Network Appliance yXenSource. El objetivo es crear un entornode virtualización propio de Red Hat y pro-porcionar a los clientes herramientas yservicios para simplificar el proceso dedespliegue de esta tecnología.Para ello la compañía integrará las funcio-nes de virtualización en su sistema opera-tivo y se asegurará de que todos los as-pectos de la plataforma Red HatEnterprise Linux, desde las herramientasdel sistema y la instalación, hasta la ges-tión del software, permitan a los usuarioscrear entornos virtualizados de un modo

sencillo.A esto se suma la integración ysoporte para la tecnología de virtualiza-ción Xen, desarrollada por la comunidadde código abierto.Un avance de la tecnología de virtualiza-ción de Red Hat Enterprise Linux ya estádisponible en la recién presentada FedoraCore 5 (incluida en el DVD que acompañaa la revista), y está previsto que a lo largodel verano la compañía lance el Serviciode Migración y Evaluación de laVirtualización junto con la versión beta dela virtualización para la empresa.Y ya pa-ra finales de 2006 se espera la nueva ver-sión del sistema Red Hat Enterprise Linuxque aportará la virtualización integradacompleta.Actualmente tanto AMD comoIntel están trabajando con Red Hat en su

desarrollo y en los laboratorios de pruebaspara asegurar que sus chipsets estén in-tegrados en la iniciativa del entorno"Virtualización integrada". En concreto, elprograma Intel Virtualization Technologydota de soporte para la virtualización alprocesador y al chipset, ayudando a ace-lerar y mejorar la capacidad de gestión, lafacilidad en la utilización y la seguridad enel servidor y en las plataformas.Por su parte, la participación de la compa-ñía Network Appliance asegurará la per-fecta integración en sus soluciones de al-macenamiento y XenSource incluirá la ac-tivación de sus herramientas de gestión.Más información sobre el programa RedHat Integrated Virtualization enhttp://www.openvirtualization.com

La Concejalía de Ciencia yTecnología del Ayuntamientode Zaragoza ha puesto enmarcha un Plan de Migracióna Software Libre de los pues-tos de escritorio municipales.Para llevar a cabo este proce-so, el consistorio contará conla supervisión de la consultoraÁndago Ingeniería.La Concejalía de Ciencia yTecnología ha planteado la mi-gración a software libre en dosfases. Una primera etapaabordará la migración de lasherramientas ofimáticas, deforma independiente al siste-ma operativo del equipo, conla implantación de la suite li-bre OpenOffice 2.0.Ya en unasegunda fase se procederá ala migración de plataforma, de

manera que ambos procesosse desarrollen de manera in-dependiente.El Ayuntamiento de Zaragozalleva desarrollando ya desdeprincipios de esta década unconjunto de acciones para im-pulsar tecnológicamente laciudad e introducirla plena-mente en la sociedad de la in-formación.Todas estas accio-nes, y específicamente aque-llas que se desarrollan en elámbito del software libre, sedefinen en el plan "ZaragozaAbierta", dentro del proyec-to"Zaragoza hacia la Sociedaddel Conocimiento".

Compuware halanzado al mer-cado una nuevaversión de la so-lución de desa-rrollo Java OptimalJ 4.1 paraampliar su soporte a la plata-forma de código abiertoEclipse. La compañía ha anun-ciado además la puesta enmarcha del proyecto Corona,que permitirá la colaboraciónde equipos de programadoresque hagan uso de este entornode desarrollo.OptimalJ 4.1 cuenta con im-plantación nativa de NetBeansy utiliza el desarrollo basadoen modelos para diseñar apli-caciones de empresa. Una delas nuevas funcionalidades dela solución es la mejora de lascapacidades de modeladoUML mediante la integracióndel sistema MagicDraw UMLpara visualizar rápidamente

distintos diseños.Además, permiteimportar directa-mente Clases yCasos de Uso a

los dominios de modelos deOptimalJ para generar el códi-go o la arquitectura de la apli-cación.Por lo que se refiere al proyec-to Corona, también denomina-do Tools Services FrameworkProject, ha sido desarrolladoconjuntamente con laFundación Eclipse. Se trata deun framework que permite alas herramientas basadas enEclipse compartir informaciónde los proyectos, aplicacionesy eventos. Mediante esta ini-ciativa se facilita a los equiposde desarrollo una selección deplugins para poder detectar,diagnosticar y resolver proble-mas de la aplicación más rápi-damente.

El Corte Inglés venderáequipos con LinExpreistaladoLa Junta de Extremaduray El Corte Inglés han fir-mado un convenio de co-laboración para la puestaen marcha de un CentroExperto en nuevas tecno-logías de la información yla comunicación.Asimis-mo,y según lo recogidoen dicho acuerdo,ElCorte Inglés empezará acomercializar sus equi-pos Inves con gnuLinExpreinstalado.

Gael Duval demanda aMandriva Gael Duval, uno de losfundadores de la distri-bución Mandriva, haconfirmado que deman-dará a la compañía fran-cesa por despido impro-cedente. Este hecho seproduce después deFrancois Bancilhon lesolicitara el año pasadoa Duval que dejara lacompañía y finalmenteéste pasó a encargarsede mejorar la imagen deMandriva en la Comuni-dad.Actualmente Duvalse encuentra trabajandoen un nuevo proyecto,denominado Ulteo, parafacilitar la administra-ción de los sistemas.

Ubuntu 5.10 sufre unimportante fallo deseguridadLa distribución Ubuntu5.10 sufrió un importantefallo de seguridad quepermitía a cualquierusuario conseguir todaslas claves de seguridaddel sistema.El fallo, reco-nocido por los desarrolla-dores de Ubuntu en supágina oficial (www.ubuntu.com), se en-contraba en el ficheroque almacena las contra-señas y fue rápidamentesolucionado.

8 Número 66

ACTUALIDAD NOTICIAS

El Ayuntamiento deZaragoza migra a LinuxContará con la supervisión de la consultora Ándago

OptimaJ 4.1 consoporte para EclipseCompuware impulsa este IDE con el proyecto Corona

06-09 Noticias 7/4/06 13:57 Página 8

Page 8: Todo Linux 66

ACTUALIDADNOTICIAS

NOTICIAS BREVES

El MEC quiere eliminarla titulación deIngeniería telemáticaEl borrador de catálogode titulaciones oficialespublicado por elMinisterio de Educaciónno incluye la IngenieríaTelemática, una de lascarreras técnicas conmayor demanda porparte de alumnos y em-presas.Ante esta situa-ción, se ha creado unaplataforma para mani-festar la necesidad demantener este título,que ya cuenta con elapoyo de destacadosrepresentantes delmundo empresarial,científico y universitario.http://siatelematica.org

Nace una plataformacontra el canonUn colectivo de aso-ciaciones profesionales,usuarios y empresas delsector, entre ellas el sin-dicato ComisionesObreras o la Asociaciónde Internautas, ha pues-to en marcha una plata-forma en contra del ca-non que grava los so-portes digitales. Más in-formación en: www.todoscontraelcanon.es.

Cataluña crea una distroLinux para la EducaciónLa Generalitat deCatalunya ha liberado laprimera versión beta deLinkat, una distribuciónGNU/ Linux para la rededucativa. El sistema es-tá basado en SUSE y estádisponible en tres versio-nes: ordenador autóno-mo, servidor de centro ycliente de centro. Masadelante Linkat contarácon una versión LiveCD.El sistema se puede des-cargar en la webhttp://linkat.xtec.net

Servidor HP Blade ATCA para elsector de las telecomunicacionesCertificado para la plataforma Red Hat Enterprise Linux 4HP ha presentado su nuevo servidor BladeATCA específico para las empresas de te-lecomunicaciones y basado en el estándarde la industria Advanced TelecomComputing Architecture (AdvancedTCA). Elmodelo HP bh5700 Blade Server es la pri-mera plataforma integrada de servidoresHP Blade ATCA que la compañía garantizapara proporcionar entornos de misión crí-tica. Dicho sistema ha sido certificado pa-ra correr con la solución open source RedHat Enterprise Linux 4.En cuanto a sus característicastécnicas, HP bh5700 cuentacon un chasis 13U 14 slotAdvanced TCA, backplane e in-fraestructura switching com-pliant PICMG 3.1. HP ha estadotrabajado con Intel en el desa-rrollo de servidores blade dedos vías, basados en procesa-

dores con tecnología Intel Xeon, con arqui-tectura de 32 bit y extensiones que permi-ten ampliaciones a 64 bit. Los próximosservidores incluirán procesador dual corea 32 bit con tecnología Intel Xeon, así co-mo procesadores Itanium a 64 bit.Este nuevo servidor blade se suma a lagama de productos y servicios que se in-cluyen dentro del proyecto HP AdvancedOpen Telecom Platform (AOTP). De estaforma, la compañía ofrece el sistemabh5700 como parte de una solución inte-

grada que incluye una com-pleta suite de hardwareAdvancedTCA con procesado-res Intel y sistema operativoLinux, herramientas de ges-tión, servicios de consultoría eintegración y soporte 24x7.Más información enwww.hp.com/go/hpatca

Sun ha presentado un nuevo portal web,mobile.java.com, a través del cual losusuarios podrán comprar y descargaraplicaciones para dispositivos móvilesbasados en Java, así como obtenerinformación para el mercado de consu-mo sobre esta tecnología.Los desarrolladores de juegos y otros pro-veedores de contenidos de consumo quedeseen promover y comercializar susaplicaciones pueden enviar sus peticio-nes a través de la dirección www.java.com/en/dukeszone/featuresubmis-sion.jsp. En mobile.java.com tendrán laposibilidad de establecer sus propiastiendas para suministrar sus productosdirectamente a los usuarios de móviles detodo el mundo.

Mandriva ha presentado una versión desu sistema operativo que aúna las funcio-nalidades de una plataforma Live e insta-lable en el mismo CD. Está basado enMandriva Linux 2006 y se caracteriza porsu usabilidad y un sistema de instalaciónmuy sencillo, basta con pulsar en el iconoque aparece en el escritorio para que unasistente nos guíe paso a paso durantetodo el proceso.Además, los archivos cre-ados durante el modo Live se copian au-tomáticamente al disco duro si decidimosinstalar Mandriva One. Por otra parte, lacompañía francesa ha presentado tam-bién Mandriva Kiosk, un servicio de pagopor suscripción para miembros del Clubque permitirá la instalación de softwaremediante un solo clic de ratón.

Dell y Novell lanzan una soluciónpara la gestión de LinuxCorre en servidores PowerEdge y ofrece soporte para Red Hat y SUSELas compañías Dell y Novell han desa-rrollado conjuntamente una herramientaque permite a los usuarios de la primeragestionar de forma centralizada los des-pliegues Linux dentro de la empresa. Lanueva solución Novell ZENworks 7 LinuxManagement – Dell Editionproporciona funcionalidadesintegradas de gestión desoftware y hardware paraservidores Dell PowerEdgeque funcionan con Linux.Esta edición de NovellZENworks 7 LinuxManagement permitirá a losclientes desplegar, gestionary llevar a cabo el manteni-miento del hardware, siste-mas operativos y aplicacio-nes desde una única consola intuitiva.El objetivo es simplificar así los entornosLinux mediante la consolidación y auto-matización de la gestión de diversas

fuentes de TI, controlando costes y opti-mizando el rendimiento.La propuesta de Dell para la gestión desistemas permite la colaboración conpartners para desarrollar productos dealto rendimiento que integran la gestión

del software y hardwa-re utilizando aplicacio-nes OpenManage. Eldespliegue y los kits dedesarrollo de la herra-mienta permiten auto-matizar tareas repetiti-vas a través de instru-mentos centralizadosde inventario, imagen ycontrol remoto.

Novell ZENworks 7Linux Management

– Dell Edition ofrecesoporte para las aplicaciones y entornosRed Hat Enterprise Linux y Novell SUSELinux Enterprise Server.

9Número 66

Mandriva One2006.0Versión Live e instalable en un CD

Mobile.java.comWeb de recursos para móviles

06-09 Noticias 7/4/06 13:57 Página 9

Page 9: Todo Linux 66

Todos los recursos ofrecidos en Internet son cu-biertos por las completas aplicaciones disponi-bles en Linux como el navegador Firefox, el ges-tor de correo electrónico Thunderbird, el clientede mensajería instantánea aMSN, los programasde descarga Peer to peer aMule y Azureus, ladescarga directa de archivos con Downloaderfor X y la lectura de noticias RSS con aKregator,herramientas cuyo funcionamiento vamos a revi-sar a lo largo de este cover.

Desde la aparición de Linux, Internet ha sido uno de suspilares para el continuo avance en la implantación de orde-nadores de usuarios y de empresas, por lo que el númerode aplicaciones que se han desarrollado destinadas a Inter-net ha ido creciendo para cubrir todas las funciones disponi-bles, desde los primeros programas para la consola de tex-to, hasta las últimas herramientas con funciones multimediadesarrolladas para los escritorios más avanzados.

Frente al sistema operativo Windows, el uso de Linux enInternet permite realizar las mismas funciones que en el pri-mero pero solucionando su principal problema, la seguridad,ya que la mayoría de sus aplicaciones poseen errores deprogramación a través de los cuales se pueden introducirprogramas dañinos como virus o que usuarios no autoriza-dos accedan al equipo. Algunos de estos programas conerrores de seguridad críticos son tan utilizados como Inter-net Explorer, Outlook o Kazaa.

Aunque la opción de utilizar en Windows programas al-ternativos como Mozilla Firefox para navegar por Internet re-media estos problemas, solo lo hace temporalmente, yaque aún estaremos expuestos a virus, instalación no desea-da de aplicaciones o los numerosos programas espía exis-tentes. En consecuencia, no solo es recomendable utilizarLinux siempre que conectemos a Internet por los progra-mas disponibles para él, sino también para evitar todos losproblemas que acarrea el uso de otros sistemas operativospara la integridad del propio equipo.

Todas las aplicaciones explicadas a lo largo del cover seencuentran en los repositorios oficiales de la mayoría de lasdistribuciones actuales.

NAVEGACIÓN CON FIREFOXLa apariciónde MozillaFirefox(http://www.mozilla.com/firefox) ha pro-vocado unarevolución enel mundo delos navegado-res en todoslos sistemasoperativos, yaque incluye numerosas mejoras frente a Internet Explorer, elmás utilizado actualmente. Firefox le aventaja tanto en segu-ridad como en la velocidad de carga de las páginas, e inclu-ye numerosas prestaciones que se hacen imprescindibles alutilizarlas, como el uso de pestañas para abrir en una mismaventana varias páginas o la instalación de extensiones paracomplementar sus funciones.

Al abrir Firefox nos encontramos con una ventana dividi-da en:�� Título: muestra el título de la página que estamos visitando.�� Barra de menús: agrupa las funciones disponibles enFirefox, como las herramientas de configuración o la posibili-dad de imprimir y guardar una página.�� Barra de iconos: contiene los iconos de avanzar y re-troceder las páginas que hemos visitado, recargar la actual,ir a la página de inicio, una sección para escribir la direcciónque queramos visitar y un último recuadro para realizar bús-quedas directas en páginas predeterminadas, como Goo-gle, Wikipedia o Yahoo.�� Barra de marcadores: son enlaces directos a las pági-nas que más visitemos. Para añadir una dirección la inclui-mos 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áginae integra algunas de las extensiones, como el informe mete-orológico.

JOR

GE

LÓP

EZ

jlop

ez@

ibe

rpre

nsa

.co

m

10 Número 66

Mozilla Firefox.

10-15 Cover (Exprime Internet) 7/4/06 12:32 Página 10

Page 10: Todo Linux 66

■ CONFIGURACIÓN

Podemos acceder a la configuración de Fire-fox en Editar-> Preferencias, que se encuen-tra dividida en:�� General: selecciona la página de inicio y elproxy de conexión. También está disponiblela opción Firefox debería comprobar si es elnavegador predeterminado al iniciarse, paraverificar que Firefox es el navegador por de-fecto para abrir las páginas de Internet reque-ridas por el usuario o programas externos.�� Privacidad: contiene las preferencias in-ternas de Firefox relacionadas con las pági-nas visitadas por el usuario, como la duraciónde la fecha del historial, las contraseñas guar-dadas, el tratamiento de las cookies, el histo-rial de descargas y el tamaño máximo ocu-pado por la caché. La sección más importan-te es “Contraseñas”, donde podemos ver to-das las claves almacenadas presionando en“Ver contraseñas maestras”, que muestra unlistado de las páginas junto a los usuarios utili-zados y el botón “Mostrar contraseñas” paraque también se listen las claves asociadas,de gran utilidad cuando nos registramos enmúltiples páginas como foros o servidoresde correo y no recordamos los datos quehemos elegido.�� Contenido: configura el bloqueo de ven-tanas emergentes, donde podemos añadirdirecciones permitidas a mostrar ventanas; lacarga de imágenes, y activar el uso de loslenguajes Java y Javascript.�� Descargas: elige el directorio donde rea-lizar las descargas y los formatos de archivoque se abrirán automáticamente con los pro-gramas predefinidos. �� Avanzado: configura los parámetros in-ternos de Firefox, por lo que no deben sermodificados si no estamos completamenteseguros de los cambios que realicemos.

■ UTILIZANDO LAS PESTAÑAS

Gracias al uso de las pestañas, podemos te-ner abiertas varias páginas en una mismaventana de manera simultánea, navegandopor ellas con la simple pulsación del botón iz-quierdo del ratón sobre sus nombres.

Su funcionamiento se centra en utilizar lacombinación de teclas “Ctrl+t” para crear unapestaña vacía, el botón central del ratón so-

bre un enlace para abrirlo en una nueva pes-taña o presionando el botón derecho y eli-giendo la opción Abrir en una nueva pestaña.

Para cerrar las pestañas presionamos“Ctrl+w” o utilizamos el botón rojo disponibleen la misma barra de los nombres de laspestañas.

■ INSTALACIÓN DE FLASH

El complemento Flash es uno de los más uti-lizados, por lo que para poder acceder a unnúmero elevado de páginas debemos insta-larlo:�� 1. Vamos a cualquier página que contengacódigo flash, por ejemplo http://www.alerta-antivirus.es.�� 2. Presionamos sobre la nueva secciónmostrada que contiene Presione aquí paradescargar el complemento (Click here todownload plugin).�� 3. Se abre una ventana con la opción Ma-cromedia Flash Player activada, continuamoscon “Siguiente”.�� 4. Aceptamos la licencia.�� 5. Finalizada la descarga se muestra laventana de estado de la instalación.�� 6. Por último, reiniciamos Firefox y volve-mos a visitar la misma página para compro-bar su funcionamiento.

■ APARIENCIA GRÁFICA

Firefox cuenta con el soporte de temas paracambiar su apariencia visual. Para modificarlohacemos:�� 1. Presionamos en Herramientas-> Temas.�� 2. Se muestran los disponibles, por defec-to, solo uno: Firefox (default).�� 3. Para descargar otros adicionales, pre-sionamos en Obtener más temas en estamisma ventana.�� 4. Se abre una nueva página dividida ensecciones, donde elegimos el que quera-mos.�� 5. Comprobamos que sea compatiblecon la versión de Firefox; mostrándose estainformación en el icono que indica ForFirefox.�� 6. Presionamos en “Install for Linux” yaceptamos la instalación.�� 7. Finalizada la descarga, en la ventana detemas se ha añadido uno nuevo con una vis-ta previa.�� 8. Seleccionamos el nuevo tema y presio-namos en “Usar tema”.�� 9. Cerramos la ventana y Firefox.�� 10. Por último, volvemos a iniciar el nave-gador para encontrar activo el tema descar-gado.

■ COMPLEMENTOS

Las extensiones en Firefox se utilizan paraañadir nuevas funciones al navegador, sien-

do algunos de las más utilizados: Flashgot,integra en Firefox el gestor de descarga dearchivos que tengamos instalado; Gmail No-tifier, enlaza con las cuentas de correo Gmailpara informar de la recepción de nuevosmensajes; Adblock, filtra secciones de códi-go que no queramos que se muestren en laspáginas, como la publicidad Javascript; Fo-recastfox, muestra la previsión del tiempo decualquier lugar del mundo; o Tabbrowserpreferences, personaliza el uso de las pesta-ñas al navegar.

Para instalar una extensión, por ejemploForecastfox, seguimos los pasos:�� 1. Abrimos la ventana de extensiones enHerramientas->Extensiones.�� 2. Presionamos en Obtener más exten-siones.�� 3. Se abre una nueva página, dividida ensecciones, donde elegimos la que quera-mos. Para el ejemplo elegimos Forecastfox.�� 4. Comprobamos los requisitos de versiónde Firefox, al lado del enlace de descarga.�� 5. Presionamos en “Install for Linux”.�� 6. Aunque se muestre el mensaje No fir-mado, continuamos con “Instalar para Linux”.�� 7. Se ha añadido automáticamente la nue-va extensión a la lista y reiniciamos Firefox.�� 8. En el ejemplo, con Forecastfox, semuestra una ventana de configuración don-de elegimos Métrica como unidad de medi-da y seleccionamos la región para mostrar eltiempo en Buscar código, donde escribimospor ejemplo Madrid, Spain. Aceptamos laciudad que se muestra y volvemos a presio-nar en “Aceptar”, para mostrar en la barra deestado inferior la previsión del tiempo y elmapa meteorológico.

■ VENTANAS EMERGENTES

Si para alguna página determinada quere-mos que se muestren las ventanas emer-gentes, por defecto bloqueadas, por ejem-plo aquellas que los enlaces de descarga es-tán dentro de las ventanas de publicidad,presionamos en Editar->Preferencias->Con-tenido, y en “Sitios permitidos” escribimos ladirecció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 eInternet Explorer es muy similar, siendo susdiferencias la seguridad, al no estar afectadoFirefox por los graves errores existentes enel navegador de Microsoft relacionados di-rectamente con el sistema operativo; incluirintegradas útiles prestaciones como el so-porte de pestañas o el bloqueo de publici-dad y nuevas funciones que otros navega-dores aún no incorporan, destacando la in-

COVERINTERNET EN LINUX

11Número 66

Configuración de Firefox.

10-15 Cover (Exprime Internet) 7/4/06 12:32 Página 11

Page 11: Todo Linux 66

tegración de los numerosos complementosexistentes.

Valorando sus prestaciones, es posiblecomprobar que Mozilla Firefox es un navega-dor muy superior a Internet Explorer, ya queofrece sus mismas características más otrasmuchas funciones, junto a un aumento muyimportante de la seguridad global del sistemaoperativo.

CORREOS ELECTRÓNICOS ENTHUNDERBIRDThunderbird, http://www.mozilla.com/thunderbird, es el cliente de correo electróni-co más completo actualmente para cual-quier sistema operativo, gracias a que incluyelas mismas funciones que otros gestores decorreo existentes, más un aporte adicionalde seguridad al no cargar por defecto códigodañino junto a los mensajes.

Su estructura de trabajo, similar a la decualquier otra herramienta de correo electró-nico, se encuentra dividida en:�� Barra de menús, accede a todas las op-ciones del programa, como las herramientasde configuración, filtros, búsquedas y ma-nuales de ayuda.�� Barra de funciones, contiene los iconoscon las funciones más utilizadas, como en-viar y recibir correos electrónicos, redactarun mensaje nuevo e imprimirlos.�� Sección carpetas, contiene las bande-jas de entrada, salida, borrador y enviado.Podemos añadir nuevas carpetas presionan-do con el botón derecho del ratón y eligiendola opción Crear carpeta.�� Sección correos, lista todos los mensa-jes disponibles en las carpetas, mostrando elremitente, asunto y fecha de recepción. �� Vista de mensajes, muestra el conteni-do de los correos junto a una cabecera coninformación adicional.

■ CONFIGURACIÓN DE UNA CUENTA

DE CORREO

En el primer arranque de Thunderbird realiza-mos un conjunto de configuraciones previas:�� 1. Seleccionamos si importar las cuentas ycorreos ya existentes en las aplicaciones

Nestcape, Mozilla y Outlook, dependiendodel sistema operativo utilizado.�� 2. Creamos una nueva cuenta de correo,con la opción Cuenta de correo electrónicoen la ventana que se muestra.�� 3. Escribimos el nombre que va a apare-cer cuando enviemos un mensaje y nuestrocorreo electrónico.�� 4. Activamos el tipo de correo que utiliza elservidor, habitualmente POP, introducimos elservidor de correo entrante que nos ha dadoel servidor donde hemos creado el correoelectrónico y escribimos el servidor de co-rreo saliente.�� 5. Escribimos el mismo nombre para utili-zar en los servidores entrante y saliente, en lamayoría de las ocasiones es el mismo que eldel correo electrónico.�� 6. Asignamos un nombre a la nueva cuen-ta, con el que posteriormente vamos a iden-tificarla para recibir y enviar los correos, y ter-minamos presionando en “Finalizar”.�� 7. La primera vez que se vayan a descar-gar los correos se abre una ventana dondeescribimos la contraseña del correo electró-nico, en la que podemos activar Use el admi-nistrador de contraseñas para recordar estacontraseña, para que se quede almacenaday no vuelva a pedirse.�� 8. Por último abrimos los mensajes dispo-nibles accediendo a la carpeta Bandeja deentrada.

Para comprobar los nuevos correos pre-sionamos en el icono Recibir mensajes, yaque los que creemos nosotros se envían au-tomáticamente. Podemos crear nuevascuentas presionando en Herramientas->Configuración de las cuentas y dentro de lanueva ventana con el botón “Añadir cuenta”.

■ FILTRADO DE MENSAJES

El correo no deseado, o spam, es el segun-do problema para los usuarios de correoelectrónico, después de los virus. Para redu-cir este inconveniente, Thunderbird cuentacon filtros accesibles desde Herramientas->Filtros de mensajes, donde se muestran lasacciones a realizar para cada una de lascuentas de correo configuradas.

Para añadir un nuevo filtro presionamosen “Nuevo”, que abre una nueva ventanadonde escribimos el nombre que queramosasignar al filtro; determinamos en Para men-sajes nuevos, la sección del mensaje que vaa contener o no la palabra o frase que defina-mos y elegimos las acciones que van a pro-ducirse cuando se cumpla el filtro en Realizarestas acciones. Si queremos añadir nuevosfiltros presionamos en el botón “+”, o en “-”para eliminarlos.

También está disponible la opción Herra-mientas->Controles de correo basura, que

sigue un conjunto de reglas para identificarautomáticamente los mensajes no desea-dos, estando activa la opción Habilitar con-troles de correo basura de la pestaña “Filtroadaptativo”, mediante el cual creamos nues-tras propias reglas al asignar a los mensajesel atributo de correo basura, presionando so-bre ellos con el botón derecho del ratón y eli-giendo la opción Marcar->Como correo ba-sura, siendo los próximos mensajes recibi-dos con un contenido similar, identificadoscomo no deseados.

■ EXTENSIONES

A las completas funciones de Thunderbird sele pueden añadir nuevas características me-diante la instalación de extensiones, disponi-bles a descargar a través del propio progra-ma desde la opción Herramientas->Exten-siones, presionando en Obtener más exten-siones, que abre en una ventana del navega-dor la página de extensiones de Thunderbird.

Algunas de las más destacadas son:Flashgot, enlaza con un gestor de descargaslos enlaces a archivos de Internet; FoxyTunes,reproduce la música enviada como archivoadjunto; Mozilla Calendar, añade un calenda-rio a Thunderbird; Update Notifier, avisa delas actualizaciones disponibles de las exten-siones 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 comple-mento y presionamos con el botón derechodel ratón en el enlace Install Now para des-cargar el archivo al disco duro.�� 2. Desde Thunderbird, presionamos enHerramientas->Extensiones.�� 3. Presionamos en “Instalar” y selecciona-mos el archivo XPI descargado, donde semuestra una ventana de información en laque de nuevo presionamos en “Instalar”.�� 4. Por último reiniciamos Thunderbird paraactivar la nueva extensión.

Para borrarlas, abrimos la ventana de lasextensiones, seleccionamos cada una y pre-sionamos en “Desinstalar”.

COVER INTERNET EN LINUX

12 Número 66

Mozilla Thunderbird.

Filtros de correo no deseado.

10-15 Cover (Exprime Internet) 7/4/06 12:33 Página 12

Page 12: Todo Linux 66

■ DIFERENCIAS CON OUTLOOK

Al igual que ocurre con el navegador Firefox,Mozilla Thunderbird incluye las mismas pres-taciones que Outlook, pero corrige sus nu-merosos errores de seguridad e incluye nue-vas características gracias al uso de las ex-tensiones que se integran con la aplicación.

MENSAJERÍA INSTANTÁNEA CON AMSNaMSN, http://amsn.sourceforge.net, es elcliente de mensajería instantánea más utiliza-do para la red MSN como alternativa al deMicrosoft. A sus múltiples versiones (está dis-ponible para la mayoría de los sistemas ope-rativos existentes), se le añade una alta com-patibilidad con el cliente de Microsoft, inclu-yendo la información del número de mensa-jes nuevos en nuestro buzón de correo, ladisponibilidad en distintos idiomas y la exis-tencia de complementos como la transmi-sión de archivos, el uso de imágenes perso-nalizadas, la posibilidad de pintar sobre unapizarra o realizar videoconferencias median-te una cámara web.

■ REALIZANDO LA CONEXIÓN

Los pasos necesarios para conectar a la redMSN con aMSN son:�� 1. Abrimos la aplicación y cerramos la ven-tana de créditos que se muestra.�� 2. Presionamos en Haga click para iniciarla sesión.�� 3. Presionamos en “Añadir un perfil”, pu-diendo crear tantos perfiles como cuentasvayan a utilizarse en el ordenador.�� 4. Introducimos el nombre de usuario, porejemplo el correo electrónico, y la contrase-ña en la ventana Iniciar sesión.�� 5. Si queremos que se guarde la clave pa-ra no tener que volverla a escribir activamosRecordar contraseña.�� 6. Por último, al presionar en “Aceptar” serealiza la conexión, mostrando nuestros con-tactos y los nuevos mensajes recibidos, juntoa dos nuevos iconos en la barra de trabajodel escritorio, uno de acceso directo a nues-tro estado de conexión y otro al correo elec-trónico.

La próxima vez que iniciemos aMSN, au-tomáticamente se muestra un acceso direc-to a la conexión de la cuenta configurada.

■ CONFIGURACIÓN

Las configuraciones de aMSN se realizan através de la ventana de trabajo y de la barrade opciones disponibles: presionando sobrela imagen mostrada o nuestro apodo con elbotón izquierdo del ratón podemos modificarnuestro estado de conexión, incluso defi-niendo un nuevo estado con la opción Añadirestado personalizado, el apodo, la imagen amostrar y la posibilidad de incluir alarmas pa-

ra que se nos avise cuando un determinadousuario se conecte.

Adicionalmente, podemos modificar anuestros contactos presionando con el bo-tón derecho del ratón sobre cada uno, don-de se abre un menú para bloquearlos, enviarmensajes o correos electrónicos y ver susdatos personales.

En la ventana principal de aMSN se en-cuentra disponible la opción Herramientas pa-ra configurar las opciones globales, desdedonde elegimos el idioma, la apariencia gráficamostrada, pudiendo descargar un mayor nú-mero desde Elegir tema (skin), los comple-mentos que van a estar disponibles, activán-dolos o eliminándolos con “Habilitar” y “Desha-bilitar” respectivamente en Selector de plug-in,y modificar las opciones generales de funcio-namiento en Preferencias, como el comporta-miento de las conexiones, programas prede-terminados o los historiales de las conversa-ciones, entre otras muchas funciones.

■ REALIZANDO UNA CONVERSACIÓN

Al comenzar a hablar con un usuario, semuestra una ventana de conversación similara la de MSN Messenger, desde donde pode-mos enviar los mensajes, emoticonos prede-finidos, invitar a usuarios a la conversación ymodificar el tipo de fuente utilizada.

En la barra de opciones, se encuentradisponible la opción de guardar la conversa-ción con aMSN->Guardar en archivo... y elmenú Acciones, desde el que enviamos ar-chivos y realizamos una videoconferencia,configurando previamente la cámara con laopción Configurar webcam, que compruebala correcta configuración de los puertos y deldispositivo.

■ DIFERENCIAS CON MSN

MESSENGER

Comparando aMSN frente a MSN Messen-ger podemos observar que existen múltiplessemejanzas y unas escasas diferencias quesin embargo van a decantarnos por uno uotro. MSN Messenger posee la ventaja deuna apariencia gráfica muy cuidada, frente ala austeridad de aMSN, así como un número

mayor de complementos para interactuarcon nuestros contactos; por contra, aMSNofrece una seguridad de la que MSN carece,ya que son varios los programas y virus queafectan al cliente de Microsoft provocandoserios problemas al sistema operativo.

DESCARGA DE ARCHIVOS CON D4XA pesar del avance de los programas P2Ppara descargar archivos, mediante los cualesse evita la saturación de los servidores cen-trales gracias a que utilizan el ancho de ban-da de los usuarios, el uso de aplicaciones dedescarga no ha decrecido. Esto se debe aque permiten controlar la transferencia anuestro equipo de archivos, ya sea uno o va-rios, modificar sus velocidades de descargapara dar prioridad a unos sobre otros o dete-nerlos para continuar en otro momento. Elprograma más destacado para Linux dedescarga de archivos es Downloader for X(D4X), que podemos encontrar en la páginahttp://www.krasu.ru/soft/chuchelo.

■ REALIZANDO LAS DESCARGAS

El funcionamiento de D4X es sencillo, tenien-do que recordar unas pocas funciones paraconocer la mayoría de sus características:�� 1. Existen dos métodos para añadir unadescarga: presionando en File->New Down-load, que abre una ventana donde escribi-mos la dirección donde se encuentra el archi-vo y aceptamos, o presionando en la barra deiconos en el último disponible, icono DND,que muestra una pequeña estrella por enci-ma de todas las aplicaciones a las que desdecualquier navegador podemos arrastrar unenlace para descargarlo directamente.�� 2. Cuando incluimos una nueva descargay existe más de una cola, se nos pregunta encuál queremos incluirla, aunque podemosmodificarla posteriormente arrastrando conel ratón el archivo a la que queramos.�� 3. Mientras se realiza la transferencia semuestra en la sección de descargas el nombredel archivo, la velocidad de transferencia, la di-rección de origen y el tiempo desde el comien-zo de la descarga y el restante para finalizar.

COVERINTERNET EN LINUX

13Número 66

aMSN.

D4X.

10-15 Cover (Exprime Internet) 7/4/06 12:33 Página 13

Page 13: Todo Linux 66

�� 4. Al presionar con el botón derecho delratón sobre el archivo, se muestra un menúdonde podemos detener la transferencia,continuarla en caso de encontrarse en pau-sa, eliminarla o borrar el nombre de las queya se han descargado para que no se mues-tren en el programa. �� 5. En caso de querer una información másdetallada de la descarga presionamos dosveces sobre el archivo con el botón izquierdodel ratón.

Otra opción destacada es la posibilidadde controlar la velocidad máxima, para lo quese encuentran tres pequeños botones en labarra de iconos, uno rojo, uno amarillo y unoverde, que indican 1024 B/s, 10240 B/s e in-definida respectivamente, valores que pode-mos modificar desde las opciones de confi-guración.

■ CONFIGURACIÓN

Las opciones de configuración más impor-tantes de D4X se encuentran en: Queue->Propierties, asigna el número máximo dedescargas activas, el directorio de descargay el formato mostrado de su tamaño; y en elmenú Options->General, para modificar lasvelocidades predeterminadas, las opcionesmostradas en la ventana de trabajo y la inte-gración con el portapapeles.

■ PROGRAMANDO LAS DESCARGAS

Una de las características más destacadasde D4X es la posibilidad de programar accio-nes para que se activen en la hora y fechaque deseemos, para lo que presionamos enel icono “Planificador” de la sección de fun-ciones, donde presionamos en “Añadir”, quemuestra un calendario en el que elegimos lahora y fecha de inicio, la velocidad máximapermitida y en Acción elegimos la tarea a lle-var a cabo, estando disponibles un elevadonúmero, como limitar las velocidades, termi-nar el programa o ejecutar el comando queespecifiquemos.

■ DIFERENCIAS CON FLASHGET

La herramienta más completa de descargadisponible en Windows, Flashget, admite lasmisma funciones que D4X pero con el princi-pal inconveniente de instalar un programaespía, por lo que la seguridad de nuestroequipo se ve afectada e incluir publicidad ensu versión gratuita. Aunque es posible elimi-nar con programas específicos el espía, futu-ras actualizaciones volverán a instalarlo.

DESCARGAS P2PEl aumento de conexiones de banda anchaha permitido la aparición de programas dedescarga P2P, mediante los cuales dos usua-rios conectados a una misma red pueden

compartir archivos. Después de la desapari-ción de numerosas redes como Napster, hantomado el relevo nuevas aplicaciones basa-das en la independencia de un servidor centralque controle las descargas, como es eDon-key, cuyo cliente más utilizado actualmente eseMule, con centenares servidores repartidosa lo largo de Internet, y Bittorrent, con nume-rosos clientes como BitComet o Azureus, conun funcionamiento cercano a las descargasdirectas mediante el uso de un tracker que in-terconecta a los usuarios y la principal finalidadde descargar archivos individualmente.

■ AMULE

Es el más utilizado de los programas de des-carga, gracias al elevado número de archivosdisponibles. Su página oficial se encuentra enla dirección http://www.amule.org.

El entorno de trabajo de aMule se en-cuentra divido en tres secciones:�� Barra de iconos: muestra las opcionesdisponibles en aMule, que al presionarlas vanmodificando el contenido de la ventana detrabajo. Los iconos disponibles son: Conec-tar/Desconectar, no muestra ningún elemen-to en la ventana de trabajo ya que únicamen-te se utiliza para conectar y desconectar a lared eDoneky; Servidores/Redes, almacenalos servidores disponibles junto a nuestra in-formación personal de conexión a la red ymuestra en negrita el servidor al que estemosconectados,; Búsquedas, formulario para re-alizar búsquedas de archivos por su nombre;Tráfico, muestra las transferencias que se es-tán realizando con el nombre del archivo, lavelocidad y el tanto por ciento completado;Compartidos, archivos almacenados en el or-denador que pueden descargar los restantesusuarios; Mensajes, avisos entre los usuariosque pueden desactivarse o filtrarse en la op-ción Preferencias; Estadísticas, muestra ungráfico y los datos actuales y totales de lastransferencias realizadas; Preferencias, confi-gura la aplicación; y Acerca de, muestra unapequeña información de aMule. En las últimasversiones de la aplicación también se en-cuentra disponible la opción Importar, desti-

nada a utilizar archivos PART creados porotras aplicaciones como eMule.�� Ventana de trabajo: contiene los ele-mentos de la opción elegida en la barra deiconos, es donde se realiza el mayor funcio-namiento de la aplicación.�� Barra de estado: situada en la seccióninferior del programa, muestra los estadosmás importantes por los que aMule pasa,como la conexión a un servidor o el último ar-chivo cuya descarga ha finalizado.

El funcionamiento de aMule es uno de losmás sencillos, siendo necesario aprenderunas pocas funciones para manejarlo:�� 1. Al abrir el programa automáticamentese conecta a uno de los servidores disponi-bles, en caso contrario presionamos “Co-nectar”. Podemos ver nuestro estado de co-nexión en la opción ServidoresRedes dentrode la pestaña “Info ED2K”�� 2. A continuación, presionamos en Bús-quedas para localizar aquellos archivos queposean el nombre que indiquemos, comen-zando la descarga presionando doble clic conel botón izquierdo del ratón sobre su nombre.

También podemos insertar los denomi-nados elinks, enlaces directos a archivos,mediante el formulario disponible desdecualquier opción en la sección inferior de laventana de trabajo, copiando su nombrecompleto y presionando en “Enviar”.�� 3. Todas las descargas que se estén reali-zando se muestran en Tráfico, que podemosordenar por cada uno de sus campos pre-sionando sobre su nombre. Presionandocon el botón derecho del ratón sobre cadauno de los archivos se muestra un nuevomenú destinado a modificar la prioridad dedescarga, borrar o pausar un archivo y mos-trar los detalles y comentarios para verificarque el archivo que estamos descargando secorresponde con su nombre.�� 4. Por último, en la opción Estadísticas,presionando en Subidas y Descargas pode-mos ver las descargas de la sesión actual ydesde la instalación de aMule y el porcentajede transferencia de cada uno de los clientesexistentes.

En la instalación predeterminada se cre-an dos directorios dentro de la ruta ~/.aMule,Incoming para almacenar los archivos des-cargados y Temp para los que se encuen-tran en descarga. Cada usuario cuenta conun directorio individual de uso.

■ AZUREUS

Entre los programas disponibles para utilizarla red Bittorrent, Azureus, ://azureus.sourceforge.net, es el más completo, graciasa un excelente rendimiento y velocidad a pe-sar de ejecutarse mediante Java, cuya má-quina virtual es necesario instalar.

COVER INTERNET EN LINUX

14 Número 66

Amule.

10-15 Cover (Exprime Internet) 7/4/06 12:33 Página 14

Page 14: Todo Linux 66

Cuando arranca Azureus por primeravez, se inicia el asistente de configuraciónque contiene varias opciones: en la primeraseleccionamos el tipo de conexión a Internetque tiene nuestro equipo, factor del que de-penden tanto la velocidad de bajada como lade subida, cuanto más altas sean las dos,

más rápido se descargan los ficheros. En lasegunda opción elegimos el puerto destina-do a realizar las transferencias, por defecto el6881, existiendo un botón de “Probar”, paraverificar que el puerto sea accesible en nues-tra conexión. Y en el tercer y último paso se-leccionamos el directorio donde se van a al-macenar los archivos que se descarguen.

Es posible acceder al asistente de confi-guración en cualquier momento desde la op-ción Archivo->Asistente de configuración, quese encuentra en la barra de herramientas.

Los pasos necesarios para descargar unarchivo son:�� 1. Con el archivo TORRENT en el disco du-ro, presionamos en Archivo->Abrir->Archivo.torrent y seleccionamos el archivo.�� 2. Automáticamente se muestra una nue-va entrada en la sección de descargas, indi-cando el estado de la transferencia medianteun pequeño emoticono de color, indicandogris su inactividad, rojo que no está conecta-do a ningún cliente, azul se encuentra en co-nexión con el servidor, amarillo está conecta-do pero algún router o cortafuegos bloqueasu correcto funcionamiento y verde indicaque todo funciona correctamente.�� 3. Podemos ver con mayor detalle el ar-chivo presionando dos veces con el botónizquierdo del ratón sobre él, acción que abreuna nueva pestaña con información del ser-vidor, detalles de los clientes conectados,partes del archivo en transferencia y archivoscontenidos en la descarga en caso de existirmás de uno; o mostrar un menú para elimi-narlo o pausarlo con el botón derecho.

Al estar programado en Java, la mismaaplicación existente en Windows es la dispo-nible para Linux.

LECTURA DE NOTICIAS RSSLa tecnología RSS permite mostrar en un equi-po las noticias, novedades o cambios realiza-dos en cualquier página que incluya soportesin necesidad de abrirla desde el navegador.

RSS está compuesto por dos elementos:un servidor que sindica, comparte las noticiasy un agregador, programa que se ejecuta enel ordenador para leer las fuentes RSS.

■ APLICACIONES DESTACADAS

Dependiendo del escritorio que utilicemosvamos a contar con distintas herramientas.Para KDE la más utilizada es Akregator,http://akregator.sourceforge.net, mientrasque en GNOME destaca Liferea, http://life-rea.sourceforge.net.

Existen dos tipos de sindicación: aquellasque únicamente muestran el titular de la noti-cia y redirecciona a la página que incluye lahistoria completa y otras que incluyen el con-tenido de las noticias, dependiendo del servi-dor el uso de una u otra.

■ AKREGATOR

El uso tanto de Akregator como de Liferea esmuy similar, siendo la configuración del pri-mero:�� 1. Iniciamos Akregator desde el menú In-ternet->Lector de orígenes RSS (Akregator),que adicionalmente a la propia aplicaciónmuestra un nuevo icono en la barra de tareascon el número de artículos sin leer.�� 2. Añadimos un servidor, por ejemplo elde Barrapunto, presionando en Origen->Añadir origen.�� 3. En la nueva ventana mostrada, en URLde origen, escribimos la dirección RSS,http://backends.barrapunto.com/barrapunto.rss, y aceptamos, comprobándose automáti-camente si existe contenido disponible.�� 4. En caso afirmativo se muestra una nuevaventana, dividida en dos pestañas: “General”,donde elegimos el nombre para identificarlo,por ejemplo Barrapunto, y la URL, en la que de-jamos la indicada. Activamos Usar el intervalode actualización personalizado, para compro-bar automáticamente cada periodo de tiempoque especifiquemos si existen nuevas noticias,y Notificación de los artículos nuevos, para quenos avise de las nuevas entradas.�� 5. Automáticamente se ha creado unnueva entrada en la sección Orígenes, quepodemos mover a una carpeta distinta pre-sionando sobre ella y arrastrándola.�� 6. La lectura de las noticias se realiza igualque con el correo electrónico, presionandosobre ellas, marcándose automáticamentecomo leídas. ■

COVERINTERNET EN LINUX

15Número 66

Adicionalmente a las aplicaciones comentadasa lo largo del cover, existen otras muchas quepueden ser de utilidad para usos específicos opor incluir funciones adicionales:�� Navegación de Internet: aparte de MozillaFirefox que es el navegador más completo,existe una aplicación desarrollada para cadaescritorio; así, si utilizamos KDE, contamos conKonqueror que se integra con el resto de apli-caciones y consume menos recursos del equi-po, pero muestra un mayor número de erroresen las páginas visitadas; si por el contrariopreferimos GNOME existe Epiphany, basado enel motor de Mozilla; y para los restantes gesto-res de ventanas, contamos con Galeon con unconsumo mínimo de recursos. En caso de nocontar con el servidor gráfico, es posible nave-gar desde la consola de texto con links.�� Correo electrónico: al igual que en losnavegadores, los escritorios cuentan con undesarrollo propio, existiendo KMail en KDE yEvolution para GNOME destinado el primeroexclusivamente como lector de correos, concaracterísticas como el filtrado de correos, y elsegundo más similar a Outlook, al incorporarfunciones adicionales como el pronóstico deltiempo y calendarios. Para la consola de texto,el lector más completo es Mutt.�� Mensajería instantánea: aunque aMSN esla aplicación más parecida a MSN Messenger,únicamente permite conectar a la red MSN,por lo que si poseemos contactos de otrasredes, como Yahoo! o Jabber, es preferible uti-lizar Kopete o Gaim, que permiten conectar ala mayoría de las existentes e incorporan fun-ciones similares a aMSN.�� Descargas P2P: todas las personas habi-tuadas a eMule van a encontrar la mejor alter-nativa en el ya comentado aMule, ya que esuna versión portada directamente de su códigofuente, al igual que Azureus, del que existe lamisma versión en Linux al estar programadoen Java. Si por el contrario preferimos probaruna nueva aplicación, Mldonkey permiteconectar a la mayoría de redes P2P existentesdesde un mismo interfaz de trabajo, al quepodemos acceder desde un equipo externopara comprobar su estado, ejecutar desde laconsola de texto o utilizar un navegador webpara manejarlo, siendo su único inconvenienteel cambio drástico en el modo de uso.

Otros programas disponibles �

Azureus. Lectura de noticias RSS.

10-15 Cover (Exprime Internet) 7/4/06 12:33 Página 15

Page 15: Todo Linux 66

Nosotros vamos a ver uno sencillo y quepodemos usar tanto para nuestros proyec-tos informales como para los que hagamosen el trabajo: Imendio Planner.

PRINCIPIOS DE LAORGANIZACIÓN DEPROYECTOS

Una de las curiosidades sobre la organiza-ción de proyectos es que, aunque sus orí-genes pueden asociarse a las obras públi-cas que se llevaban a cabo en Mesopota-mia hace miles de años, su popularizacióntal como hoy la conocemos se debe a la ca-rrera espacial entre EEUU y la extinta URSS.El proyecto Sputnik sorprendió a los esta-dounidenses que decidieron “ponerse laspilas” y dar un impulso a su carrera espacial.La gestión de proyectos fue estudiada se-riamente, y se desarrollaron nuevos mode-los y técnicas. De esta iniciativa surgió tam-bién, por ejemplo, la DARPA (DefenseAdvanced Research Projects Agency), queluego crearía Internet.

La gestión de proyectos es la cienciade definir y conseguir objetivos optimizan-

do el uso de recursos (tiempo, dinero,personal, etc.) a lo largo del transcurso deun proyecto. Normalmente, el tiempo es elrecurso más escaso, porque no podemosreponerlo. La carga de llevar a cabo estaplanificación suele recaer en un directorde proyecto, que es el que tendrá queusar herramientas como Imendio Plannerpara llevar a buen puerto la tarea que lehan asignado. En proyectos más grandespuede haber un grupo de directores, ycada uno puede tener su propia parcelasobre la que actuar. La gestión de proyec-tos es una ciencia compleja, que ha pasa-do de ser reino de los ingenieros a verse“invadida” por gente con trasfondos encarreras no tecnológicas, como las eco-nómicas y empresariales. Algunos de losmales de las TI se derivan de directores deproyecto que se encargan únicamente dela dirección y coordinación, sin tenerexperiencia en “el mundo real” de la tec-nología.

Aunque un proyecto sencillo, como unamerienda familiar, puede organizarse con uncuaderno y un bolígrafo, algo más complejorequiere una herramienta más especializa-da. En los programas de gestión de proyec-tos se juega con un elemento principal: lastareas. En su forma más básica, un gestorde proyectos es una lista de tareas a reali-zar. Pero también nos interesan más ele-mentos de esas tareas, por ejemplo, quérecursos se van a usar en ellas, y cuántotiempo van a requerir. Los recursos puedenser personas (aunque parezca sacado deun tratado de la Revolución Industrial), o qui-zás otras empresas o departamentos.Estos recursos, a su vez, pueden no estardisponibles permanentemente (por ejem-plo, el coche familiar en nuestra hipotéticamerienda), o tal vez (sobre todo, en el casode las personas) no puedan ser usados alcien por cien en nuestro proyecto. El tiem-po, como dice el refrán, es oro: cuanto másinvirtamos en el proyecto, más dinero ten-dremos que gastar. Así que la optimizacióndel tiempo es también uno de los objetivosprincipales.

Con estos tres objetos (tareas, recursosy tiempo) vamos a trabajar en Planner.

EL PROGRAMAANTERIORMENTE CONOCIDOCOMO MR. PROJECT

Imendio Planner es la aplicación GNOMEque antes era conocida como Mr. Project.La empresa que esponsorizaba el desarro-llo de esta herramienta se declaró en ban-carrota (eran los años de las puntocom), eImendio ha tomado las riendas de su desa-rrollo, albergando la web y pagando a losdesarrolladores (actualmente solo uno, KurtMaute). El nombre del programa cambiópara reflejar el cambio de patrocinador. Laúltima versión a la hora de escribir este tuto-rial, y la usada por los autores, es la 0.13.

Planner viene con casi todas las distribu-ciones de Linux. Por lo tanto, podemos en-contrar paquetes binarios con los que ins-talarla, no teniendo que hacerlo desde losfuentes. Como todas las aplicaciones GNO-ME, Planner depende de varias librerías dedesarrollo, e instalarlo a partir de fuentes esmás complicado que con otros programas.

■ INTERFAZ DE PLANNER

Una vez lanzado Planner, contaremos conuna ventana diferente para cada proyectoque tengamos abierto. Hay tres divisionesde la ventana principal: la barra de herra-mientas, en la parte superior; el selector decomponentes, a la izquierda; y la pantallacorrespondiente a cada uno de ellos, ocu-pando el resto de la ventana. Cada “compo-nente” es una parte del programa en la quepodemos ver y modificar los elementos denuestro proyecto: diagrama de Gantt, tare-as, recursos, y uso de recursos.

■ DIAGRAMA DE GANTT

El componente principal, y donde se mues-tra visualmente el progreso de nuestro pro-yecto, es el de diagramas de Gantt (GanttChart). Se divide en dos partes: en la dere-cha vemos el diagrama de Gantt en sí, mien-tras que en la izquierda se muestra una listaen forma de árbol (el WBS, Work Breakdown

La gestión de proyectos es unadisciplina que nació para lossectores más implicados con laingeniería, y ahora se ha exten-dido a todos los demás. Existenmuchas teorías y métodos pararealizar esta labor, y han apare-cido programas para cada unode ellos.

ImendioPlanner

16 Número 66

ROBERTO SUÁREZ

[email protected]

ZONA DE INICIACIÓN IMENDIO PLANNER

Diagrama PERT, de los primeros usados para la gestión deproyectos.

16-19 Iniciacion 7/4/06 13:38 Página 16

Page 16: Todo Linux 66

Structure) de las tareas. En este árbol tene-mos el identificador de cada tarea, su des-cripción y su duración. Cada línea en el árbolestá a la misma altura que su línea corres-pondiente en el diagrama de Gantt.

El diagrama de Gantt marca el transcur-so en el tiempo de nuestro proyecto. En laparte superior aparece el tiempo, las horas,días y meses en los que lo desarrollaremos.Podemos “estirar” o “encoger” cada líneade tarea (ampliando o disminuyendo eltiempo asignado a ella) pinchando en susextremos y tirando de ellos hacia un lado uotro. Veremos que hay partes del diagramacon fondo blanco y con fondo gris. Sobreestas últimas no podemos extender las ta-reas, salvo que lleguen a otra de las partesblancas: son las horas no laborables. Comocorresponde a la vida real, Planner suponeque nuestros recursos van a estar disponi-bles según un cierto horario, y solo nos per-mite asignar tareas mediante intervalos co-rrespondientes a ese horario, aunque éstepodemos escogerlo nosotros, modificarlo eincluso asignar uno diferente por cada re-curso, como veremos luego. El diagrama deGantt puede ser acercado o alejado con lafunción Zoom de Planner, accesible me-diante dos botones en la barra de herra-mientas (que pueden estar ocultos si la ven-tana del programa no es suficientementegrande).

■ TAREAS

En el componente de tareas (Tasks) vemoséstas en un formato parecido al árbol delprimer componente, pero con más detalle.Pinchando dos veces encima de cada unade las tareas podemos editar sus paráme-tros. Como la explicación de las caracterís-ticas de las diferentes tareas es larga, la de-jamos para el apartado siguiente. Un buenmétodo para planear nuestro proyecto esusar este componente primero, listando lastareas que vamos a realizar y dividiéndolassegún haga falta. Luego podemos volver aldiagrama de Gantt y ajustar ahí los tiemposde cada una.

■ GESTOR DE RECURSOS

El tercer componente es el gestor de recur-sos. Como comentamos antes, un recursopuede ser tanto una persona como un obje-to, una empresa, o cualquier otro agente denuestro proyecto. Según la tarea que tenga-mos entre manos, habrá más de unos o deotros. A la hora de insertar un recurso,Planner nos permite distinguir estos dos tiposmarcá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 vercómo hemos usado los recursos en nues-tro proyecto. Es una vista muy similar a la deldiagrama de Gantt, pero en lugar de orde-nar las barras por tarea, se hace por recur-so. Así podemos ver cuándo y cuánto he-mos usado cada uno de ellos.

■ PROPIEDADES DE LAS TAREAS

Pinchando dos veces encima de una tarea,o seleccionando la opción Edit task del me-nú que sale al hacer clic con el botón dere-cho encima de ellas, podemos acceder aldiálogo de edición de tareas. En él hay cua-tro pestañas: “General”, “Resources”,“Predecessors” y “Notes”.

Varios de los campos de la primera pes-taña son bastante obvios: nombre de la ta-

rea, tiempo de trabajo (Work), tanto porciento completado, y prioridad. Otros mere-cen una explicación más larga: la casilla de“hito” (Milestone) nos sirve para marcar esatarea no como algo que hay que realizar, si-no a modo de marcador de progreso. Lacasilla de duración fija (Fixed duration) asig-na una duración inmutable a la tarea. Estosirve para tareas que tienen obligatoriamen-te que durar cierto tiempo, como podría seruna película o el trabajo de una máquina.Algo que llama la atención es que hay unacasilla para el tiempo de trabajo y otra parala duración de la tarea. Intuitivamente, am-bas cosas deberían ser iguales; pero debidoa las relaciones con otras tareas, el tiemporeal para una tarea puede ser mayor que eltiempo de trabajo neto. Por último, la opciónde programación de tarea es por defecto“lo antes posible” (As soon as possible), esdecir, que la tarea se realizará en cuantoacabe la anterior de la que depende (si de-pende de alguna). Esto podríamos cambiar-lo si la tarea tuviera que ejecutarse en unafecha determinada.

En la pestaña de recursos (“Resources”)podemos asignar éstos a la tarea. Cada unopuede ser asignado con cierto porcentaje

17Número 66

ZONA DE INICIACIÓNIMENDIO PLANNER

La forma más usual de representar los tiempos e interrelaciones entretareas de un proyecto son los diagramas de Gantt. Reciben su nombre deHenry L. Gantt, que publicó su trabajo en la revista The EngineeringMachine en 1910.Un diagrama de Gantt es un diagrama de barras horizontales, en el que semarcan los tiempos que se invierte en cada tarea del proyecto. Cada una deesas tareas ocupa el espacio entre las horas (días o meses) en las que sellevó a cabo. Puede haber tareas que agrupen otras, representando tareascomplejas que están compuestas de otras más pequeñas. Las tareas sonparalelas cuando puedan ser llevadas a cabo simultáneamente. Pero másfrecuentemente, unas dependerán de otras, y estarán anotadas a tal efecto(en Planner, con flechas que muestran la relación de dependencia). Estas re-laciones no estaban contempladas inicialmente en los diagramas de Gantt,pero a medida que se extendió su uso, ésta y otras adiciones se hicieron tancomunes que se han convertido en parte del estándar.

Diagramas de Gantt �

Ventana principal de Planner.

Gestor de recursos en Planner.

Editor de propiedades de las tareas.

16-19 Iniciacion 7/4/06 13:38 Página 17

Page 17: Todo Linux 66

de actividad, indicando la implicación de es-te recurso en la tarea. Una persona podríaestar implicada parcialmente, pero ciertosrecursos materiales lo estarán al cien porcien (por ejemplo, materias primas).

La pestaña de predecesores(“Predecessors”) indica las tareas de las quedepende la tarea actual, es decir, las quedeben haberse realizado antes de empe-zarla. Podemos añadir éstas desde el diálo-go de edición, pero es más sencillo hacerlodesde el diagrama de Gantt de Planner. Allípodemos pinchar en una tarea y arrastrar,con lo que aparecerá una flecha que, unién-dola a otra tarea, marcará la tarea inicial co-mo predecesora de la final. Los diagramasde Gantt de nuestros proyectos tendrán laforma de varias barras unidas por flechas deeste tipo, indicando la interdependencia en-tre ellas. Una tarea puede tener varios pre-decesores, y ser a su vez predecesora deotras tareas. Según lo complejo que seanuestro proyecto, así lo será también su dia-grama de Gantt. También tenemos en eleditor de predecesores un campo llamado“retraso” (Lag), que podemos usar para in-dicar que tiene que haber una pausa entreel final de la tarea predecesora y la actual.

Por último, cada tarea tiene una pestañade notas (“Notes”). Aquí podemos anotarnuestras observaciones a medida que se varealizando la tarea. Hay un botón para inser-tar una marca de tiempo (“Insert times-tamp”), con el que podemos asignar fecha yhora a diferentes anotaciones.

■ EDITOR DE CALENDARIOS Y DÍAS

En el menú de Proyecto (Project) dePlanner podemos acceder a dos editoresespeciales: el de calendarios (Manage ca-lendars) y tipos de día (Edit day types). Pordefecto, Planner usa un calendario conven-

cional: los sábados y domingos no se traba-ja, y el horario de trabajo en un día laborablees de 8 a 12 y de 13 a 17. Podemos tener va-rios tipos de calendario en nuestro proyec-to, añadiendo alguno más o cambiando losvalores del que viene por defecto. Aunqueno tendrá mucho sentido si todos nuestrosrecursos son locales, sí que podría resultarde utilidad si vamos a trabajar con recursosde otros lugares que puedan contar con di-ferentes días festivos o bien horarios distin-tos (por ejemplo, empresas en otras ciuda-des, teletrabajadores, etc.).

En el diálogo de calendarios se nosmuestra uno pequeño con todos los días delmes actual. Veremos que, por defecto, los fi-nes de semana vienen marcados como díasno laborables; pero pinchando en cada díapodemos cambiar su estado. Estos estadosson “laborable” (working) o “no laborable”(nonworking), pero tenemos la opción deañadir más en el editor de tipos de día. A ca-da uno de estos tipos de día le correspondeun horario. Así, podríamos tener un día “jor-nada completa”, otro “media jornada” y otro“no laborable”. Esto sería aplicable por ejem-plo para empresas que trabajan un pocomás todos los días de la semana para tenerun viernes con menos horas, o aquellas que,aparte de jornada completa durante la se-mana, trabajan el sábado a media jornada. Si

tuviéramos varios turnos diferentes (uno denoche y uno de día, por ejemplo), podríamostener un horario para cada uno y asignar anuestros recursos un calendario diferente enel que los días laborables estuvieran regula-dos por esos turnos.

Los botones de la parte de abajo deleditor de calendarios nos permiten editarlos horarios (Working time) y los días labora-bles de cada semana (Default week). Un as-pecto un tanto incómodo de la edición dehorarios es que para crear un nuevo tipo dedía hay que irse al editor específico accesi-ble desde el menú de Planner, en el que so-lo podemos añadir o quitar tipos de día.

■ OTRAS CARACTERÍSTICAS DE LOS

PROYECTOS

Otras características editables de los pro-yectos de Planner son accesibles mediantelas opciones para editar las fases (Edit pro-ject phases) y las propiedades (Edit projectproperties). Las fases del proyecto son eti-quetas arbitrarias que usaremos para daruna idea del progreso del mismo. Así, lo nor-mal será que el proyecto pase por una faseinicial de estudio; una de decisión (en la quese decide si realizar o no el proyecto); variasde planificación e implementación, y una deconclusión. Por supuesto, esto es solo lomás habitual: nuestro proyecto podría tenersimplemente una fase inicial, una intermediay una final. Estas fases no serán usadas másque en las propiedades del proyecto paradefinir su estado actual, lo que hace su uso,al menos en Planner, puramente informati-vo.

En las propiedades del proyecto pode-mos definir los “metadatos” del mismo:nombre, director, fecha de comienzo (quemarcará también la fecha inicial en los dia-gramas de Gantt, obviamente), organiza-ción y el calendario que se usará por defec-to. También tenemos una pestaña de defini-ciones personalizadas, “Custom”, los fiche-ros de Planner son XML, y en esta pestañapodemos añadir atributos o cabeceras almismo, que luego podemos usar con otros

18 Número 66

ZONA DE INICIACIÓN IMENDIO PLANNER

Aunque Planner es popular, no es el único software para gestión de pro-yectos que existe. La otra alternativa es TaskJuggler.Aunque fue creado para KDE, este programa puede ser usado perfecta-mente fuera de ese entorno (así como Planner fuera de GNOME). Al igualque Planner, permite gestionar recursos, costes y tareas en un solopaquete. Aparte de los diagramas Gantt que genera Planner, también per-mite los diagramas PERT (no tan populares, pero también usados), y escapaz de exportar ficheros CSV (para usar con hojas de cálculo u otrosprogramas) y XML.El mayor problema de TaskJuggler es su dificultad de uso, mayor que lade Planner. El primer handicap que se encuentran los usuarios noveles esque esta herramienta funciona analizando ficheros de texto en los que sedefinen las características de los proyectos. No está hecho “a imagen ysemejanza” de MS Project, sino usando una filosofía propia (y según susautores, mejor).

TaskJuggler, una alternativa hecha para KDE �

Editor de calendarios.

Editor de propiedades del proyecto.

16-19 Iniciacion 7/4/06 13:38 Página 18

Page 18: Todo Linux 66

programas para generar informes o esta-dísticas a partir de los datos del proyecto.

USO DE PLANNER PARACREAR UN PROYECTO

Vamos a ilustrar el uso de Planner creandoun proyecto de ejemplo. Suponemos quesomos un embajador que quiere dar unacena para las autoridades diplomáticas deotros países. ¿Cómo organizamos esteproyecto?

Lo primero que deberíamos hacer esdecidir, a grandes rasgos, cuáles serán lasfases de nuestro proyecto. Aunque “faseinicial”, “fase intermedia” y “fase final” seríannombres válidos, no resultan demasiadodescriptivos. Vamos a pensar, en cambio,en varias partes del proyecto que deben lle-varse a cabo para que éste finalice con éxi-to. En nuestra supuesta cena, estas fasespodrían ser: “Planear cena”, “Preparar ce-na”, “Servir cena” y “Conclusiones”. Por lotanto, iríamos al editor de fases en el menúe introduciríamos estos nombres como fa-ses. Con ellas tendríamos una idea de quévamos a hacer, que es lo más importante enun proyecto. Es normal que cuando vayaavanzando tengamos que modificar su ám-bito para incluir otros objetivos, pero solo li-geramente.

Una buena forma de iniciar un proyectoes irse al componente de tareas (Tasks) dePlanner e introducir allí las “tareas maestras”,las que van a englobar al resto de tareas ne-cesarias. Aquí vamos a crear cuatro tareas,una con el nombre de cada fase, para aglu-tinar las demás. Pulsando en el botón “Inserttask” se añadirá una nueva línea en la listade tareas, cuyo nombre podremos editarpinchando dos veces en la columna Name,y cuyas características editamos pinchandodos veces encima del campo WBS o esco-giendo Edit task en el menú contextual.

No sabemos todavía qué subtareas ha-brá, pero tal como hemos diseñado esteproyecto está claro que cada una de ellasdepende de que la anterior se haya finaliza-do con éxito (por eso les hemos dado elnombre de las fases del proyecto). Por lotanto, antes de seguir, deberíamos marcaren cada tarea su predecesora, bien me-diante el diagrama de Gantt, como dijimosantes, o directamente en el editor de tareas.

Una vez que tengamos las tareas princi-pales, es hora de subdividirlas. Tenemosque refinar cada una de ellas para identificarlos trabajos “simples” (es decir, no divisibles)que serán desempeñados para llevarlas acabo. Para ello usaremos la opción de “in-sertar subtarea” (Insert subtask). Nuestratarea inicial, “Planear cena”, podría estar divi-

dida en “Buscar chef”, “Buscar camareros”,“Buscar músicos” e “Imprimir invitaciones”.Podríamos hacer que esta última tuviera co-mo predecesoras a todas las demás, pues-to que no deberíamos imprimir las invitacio-nes hasta que estuviéramos seguros deque vamos a tener al personal necesario. Elresto de las tareas se dividirían de forma pa-recida.

Hecho esto, lo siguiente que tendríamosque hacer es listar nuestros recursos. Ahoraya sabemos qué queremos hacer y cómo,solo nos faltan los medios para ello. Iríamosal componente de recursos (Resources) eintroduciríamos los recursos a nuestro al-cance. En nuestra hipotética cena, éstospodrían ser tanto la comida necesaria comolos trabajadores que se encargarían de to-do. Así, nuestros recursos podrían ser:�� Señor Embajador (como director y planifi-

cador 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 tiem-po que el embajador tiene que pasarse pla-neando la cena y buscando al personal ne-cesario. Hilando más fino, y si fuera una ce-na realmente grande y complicada, podría-mos añadir más personal de dirección, ha-ciendo que cada subtarea correspondiera auno de ellos. Pero para nuestro ejemplo, va-mos a suponer que el Señor Embajador esun hombre muy capaz y se basta él solito.

Una vez que tenemos los recursos yque los hemos asignado a las tareas, vienela parte más complicada de la planificación:la asignación del tiempo. Es aquí donde laexperiencia ayuda mucho. Podemos asig-nar el tiempo desde el diagrama de Gantt,estirando o encogiendo las barras para ca-da tarea según veamos conveniente, o acu-

diendo a la lista de tareas e introduciendoahí el tiempo que creemos que puede re-querir cada una. Conviene calcular estostiempos con holgura, porque por muchoque planifiquemos siempre habrá algún im-previsto que complique nuestro proyecto.

Con todo esto tendríamos una planifica-ción preliminar del proyecto, y una idea decuánto tiempo (y dinero) necesitaríamos in-vertir. A medida que se fuera desarrollando,iríamos modificando los datos para reflejar larealidad, quizás añadiendo o quitando tare-as y corrigiendo tiempos. Éste es el verda-dero trabajo del gestor de proyectos, y ha-ce falta algo más que un buen programapara hacerlo bien.

CONCLUSIONESDudamos que Planner vaya a ser usado porun director de proyectos con cientos deempleados a su servicio, y tareas complejascon muchos agentes externos. Hay softwa-re comercial de larga trayectoria desarrolla-do para este trabajo, y además existe el in-conveniente de que muchos directores deproyecto no son el tipo de usuario que tra-bajaría con Linux en primer lugar.

Por otro lado, Planner funciona bien. Noencontramos ningún bug al ejecutarlo, y loúnico que echamos en falta es una buenadocumentación (problema habitual en losprogramas open source). Los conceptosque maneja son sencillos de entender, y al-guien que no supiera nada de gestión deproyectos podría usarlo de forma eficienteen unas pocas horas. Siendo un émulo deMS Project, los que vinieran desde este pro-grama lo tendrían más fácil todavía.

Todo esto hace que Planner sea unabuena opción para directores de proyectosde pequeño y mediano tamaño, o inclusopara gestionar proyectos personales. El usode un programa como éste puede ayudar arealizar proyectos de forma ordenada a esosdesorganizados incorregibles entre los quese incluyen los autores de este artículo. ■

19Número 66

ZONA DE INICIACIÓNIMENDIO PLANNER

� Página web de Imendio Planner: http://developer.imendio.com/wiki/Planner

� Artículo sobre Planner enNewsforge:http://software.newsforge.com/software/05/08/09/2111251.shtml

� Entrada en Wikipedia sobre losdiagramas de Gantt:http://en.wikipedia.org/wiki/Gantt

Referencias �

Diagrama de Gantt de un proyecto ejemplo.

16-19 Iniciacion 7/4/06 13:38 Página 19

Page 19: Todo Linux 66

Un servidor de correo tiene el cometidode enviar y recibir los mensajes enviadosdesde un equipo a otro servidor o recibir losque se le envíen desde servidores externos,permitiendo utilizar un nombre de dominiopropio junto a todas las cuentas de correosque creemos.

En la transferencia de correos electróni-cos participan dos tipos de aplicaciones:MTA (Mail Transport Agent), como Sendmailo qmail, que son los encargados de trans-portar los mensajes entre los servidores ori-gen y destino, no siendo necesaria la inter-vención directa de un usuario para su fun-cionamiento, y MUA (Mail User Agent), co-mo Thunderbird o KMail, los más comunespara los usuarios, ya que son los que mues-tran en pantalla el contenido de los correoselectrónicos y permiten redactar nuevosmensajes o clasificarlos en carpetas.

Junto a todo servidor de correo es habi-tual instalar un conjunto de herramientasque principalmente permiten filtrar los corre-os entrantes, evitando así la recepción demensajes de publicidad desde servidoresconcretos y aquellos correos que puedanser dañinos, al poseer virus o archivos sos-pechosos.

SERVIDOR DE CORREOELECTRÓNICO

El número de servidores de correo disponi-bles para Linux es muy elevado, y aunque enrelación a la seguridad y la sencillez de usodestacan otros como qmail, el más comple-to es Sendmail, gracias a que existe una ver-sión para la mayoría de los sistemas operati-vos. Se calcula que es el encargado del

transporte de aproximadamente el 70 porciento del número total de correos deInternet, posee una configuración complejapero adaptable a cualquier entorno, y corri-ge en un corto periodo de tiempo todos loserrores de seguridad que se han localizado.

■ SENDMAIL

Sendmail permite una completa personaliza-ción de su funcionamiento, incluyendo múlti-ples características, entre las que es posibledestacar:�� Uso de colas de correo para almacenar

aquellos mensajes que no es posible en-viar en el momento.

�� Posibilidad de utilizar alias para nombrar alos distintos usuarios y crear grupos de lis-tas de correo.

�� Funcionamiento como MUA, aunque sinposeer un interfaz de usuario.

Si nos encontramos en una red, la insta-lación de Sendmail se puede realizar inde-pendientemente de los sistemas operativosutilizados en los restantes equipos, ya quesolo debe realizar las tareas de transporte yfiltrado. Esta última función es de vital impor-tancia cuando se cuenta con equiposWindows a los que puedan afectarles virus.

■ INSTALACIÓN

Como con cualquier otro programa deDebian, la instalación la realizamos mediantela herramienta apt-get, ejecutando:

apt-get install sendmail

que también instala los paquetes necesariospara cubrir las dependencias y elimina cual-quier otro servidor de correo existente en elsistema.

Finalizada la descarga, podemos com-probar su correcta instalación, ejecutando:

sendmail -d0.1 -bt

donde -d0.1 indica el grado de depuraciónque queremos obtener y -bt se utiliza para elmodo test.

■ CONFIGURACIÓN

Al finalizar la instalación se realiza automáti-camente una configuración básica y se iniciael servidor, proceso que podemos repetir encualquier momento ejecutando como root:

sendmailconfig

Además, es necesario definir correcta-mente el nombre del equipo en el sistema,para lo que ejecutamos:

hostname equipo.servidor

Por ejemplo:

hostname correo.red

para un servidor de una empresa, y en el ar-chivo /etc/hosts añadimos:

direcciónIP nombre

La instalación de un servidor decorreo va a permitir a una empre-sa o usuario utilizar un dominiopropio como origen y destino delos correos electrónicos, pudien-do complementarlo con herra-mientas para filtrar los mensajesno deseados o que contengancódigo dañino.

Servidor de correo yherramientas de filtrado

ZONA DEBIAN SERVIDOR DE CORREO

20 Número 66

JORGE LÓPEZ

[email protected]

Sendmail.

Comprobación del estado de Sendmail.

20-23 Debian 7/4/06 12:33 Página 20

Page 20: Todo Linux 66

El ejemplo anterior para la dirección IP192.168.1.33 quedaría como:

192.168.1.33 correo.red

pudiendo ser la IP pública o privada, depen-diendo de nuestra conexión a Internet.

La configuración de Sendmail se realiza através del archivo /etc/mail/sendmail.cf, perocomo podemos comprobar al abrirlo concualquier editor de texto, su sintaxis es exce-sivamente compleja. Por ello, se ha creado elarchivo /etc/mail/sendmail.mc, que sirve pararealizar la configuración y convertirlo a send-mail.cf posteriormente mediante la herra-mienta m4. La configuración de sendmail.mcse encuentra divida en múltiples líneas quemodifican los atributos del servidor. Entre lasmostradas, las más importantes son:�� VERSIONID: identifica el archivo de confi-

guración, siendo habitual mostrar la ver-sión de Sendmail y una línea con comen-tarios adicionales del administrador.

�� OSTYPE: sistema operativo en el que seva a encontrar Sendmail. Gracias a estaopción es posible generar archivos deconfiguración para sistemas distintos aaquel en el que nos encontremos.

�� DOMAIN: nombre del dominio asignadoal equipo que contiene el servidor.Podemos utilizar el valor general para losusos más comunes.

�� MASQUERADE_AS: permite asignar unnombre de dominio distinto a los correosque enviemos.

�� FEATURE: parámetro destinado a añadirfunciones al servidor.

�� DAEMON_OPTIONS: define las opcio-nes generales del demonio de conexión,como el modo de funcionamiento, sunombre y la dirección local del equipo.

�� MAILER: define los agentes de transpor-te utilizados por Sendmail. Los valores ha-bituales son local y smtp.

�� define: asigna valores a las variables quese definan. Está destinado a controlar pa-rámetros como los tiempos de conexión.

�� include: añade archivos externos a laconfiguración.

Las líneas que comienzan con dnl indi-can que están comentadas, por lo que novan a ser tenidas en cuenta para la configu-ración.

Al finalizar la configuración debemos cre-ar un nuevo archivo sendmail.cf ejecutando:

m4 /etc/mail/sendmail.mc >/etc/mail/sendmail.cf

o mediante el ya comentadosendmailconfig.

Para finalizar, creamos mediante la herra-mienta adduser cada uno de los usuariosque van a disponer de correo electrónico enel equipo, quedando su nombre en la red deejemplo como [email protected].

Otros archivos disponibles junto aSendmail 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 servi-dor de correo. Después de modificarlo esnecesario crear un archivo access.db quees el que va a leer Sendmail, ejecutando:

makemap hash /etc/mail/access </etc/mail/access

En este archivo indicamos los usuariosde los que se acepta el envío de correosmediante el parámetro RELAY o de los quese deniega con REJECT.�� /var/spool/mqueue: contiene la cola de

correo.�� /var/log/mail.log: estado del servidor

con entradas ordenadas por tiempo don-de se muestran cada uno de los cambiosrealizados.

Al finalizar la configuración, es necesarioreiniciar el servidor ejecutando:

/etc/init.d/sendmail

■ FUNCIONAMIENTO

El uso de Sendmail es externo a los usuarios,siendo necesaria únicamente su configura-ción por parte de los administradores cuan-do exista un problema en el servicio o paraimplementar nuevas características.

Si en algún momento no existe conexióny desde cualquier equipo se intenta enviarun correo, automáticamente se almacenaen cola, quedando en espera hasta que eje-cutemos:

sendmail -q

Una última función, menos habitual gra-cias a la existencia de programas más senci-llos de utilizar, es el envío de correos directa-mente a través de la línea de comandos.

Su sintaxis principal es:

sendmail [opciones] usuario

Por ejemplo, para enviar un correo elec-trónico a [email protected] utilizaríamos elcomando:

sendmail [email protected]

También podemos enviar un archivo eje-cutando:

cat archivo | [email protected]

o indicar una cabecera con:

sendmail -t [email protected]

FILTRADO DECORREOS

A las numerosas ventajas ofrecidas por eluso del correo electrónico se le ha sumadocon el paso de los años su mayor problema,la publicidad no deseada. Ésta alcanza nive-les elevados en aquellas direcciones muyextendidas, ya sea por facilitarlas a terceraspersonas o por la inscripción en foros.

La solución para este problema resideen el uso de filtros, ya sean básicos como losaportados por las aplicaciones de lectura decorreos, o complejos, gracias a herramien-tas específicas.

■ SPAMASSASSIN

De todas las herramientas de control de co-rreos disponibles, la más destacada esSpamAssassin, gracias a sus múltiples fun-ciones entre las que destacan el uso de filtrosbayesianos para realizar los filtrados a travésde los correos no deseados ya conocidos.

Algunas de las características ofrecidaspor SpamAssassin son:�� Filtrado de correo personalizable, pudien-

do detectar desde remitentes o palabrascontenidas hasta el uso de caracteresconcretos.

�� Bloqueo mediante direcciones DNS paraeliminar aquellos mensajes que varían deremitentes aleatoriamente.

�� Uso de bases de datos con servidores ymodelos de mensajes utilizados en correosspam para incorporarlos automáticamente.

Al ser una herramienta independiente delservidor de correo, podemos realizar su ins-talación ejecutando:

ZONA DEBIANSERVIDOR DE CORREO

21Número 66

Archivo de estado de Sendmail.

20-23 Debian 7/4/06 12:33 Página 21

Page 21: Todo Linux 66

apt-get install spamassassin

donde se muestra el mensaje que el demo-nio está deshabilitado, por lo que abrimos elarchivo /etc/default/spamassassin, modifi-camos la línea ENABLED=0 por ENABLED=1y reiniciamos el servicio:

/etc/init.d/spamassassin restart

Aunque si no activamos el demonio deSpamAssassin es posible filtrar desde losclientes de correo, su uso permite acelerarel análisis de los mensajes.

Todos los mensajes que se filtren mues-tran una cabecera de información deSpamAssassin junto al contenido del correooriginal.

■ CONFIGURACIÓN

En el archivo /etc/spamassassin/local.cf po-demos personalizar los filtrados a realizarmediante el uso de distintos parámetros:�� whitelist_from dirección: permite ac-

ceder a todos los mensajes recibidos dela dirección o dominio que se indique, deutilidad cuando se detectan como nodeseado correos que sí queremos reci-bir.

�� score regla valor: SpamAssassin cata-loga los correos mediante un conjunto dereglas que si se cumplen, asignan un nú-mero determinados de puntos, pudiendodefinir cualquier contenido de un correo,como por ejemplo:

score UPPERCASE_20_100 2

que otorga dos puntos a aquellos mensa-jes cuyo texto posea entre un 20 y un 100por cien de letras mayúsculas. El númerode posibilidades de configuración permitepersonalizar completamente los filtros.�� required_hits valor: valor es el núme-

ro de puntos mediante los cuales seconsidera un mensaje como no desea-do.Podemos ver una lista de todas las op-

ciones disponibles con el comando:

man Mail::SpamAssassin::Conf

■ INTEGRACIÓN EN SENDMAIL

Podemos integrar fácilmente SpamAssassinjunto a Sendmail mediante la instalación de unúnico paquete ejecutando:

apt-get install spamass-milter

y añadiendo la línea:

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, realizandode nuevo el proceso de activación del servi-dor de correo.

CONTROL DEVIRUS

La instalación de un antivirus en el servidorde correo es de vital importancia para evitarla entrada de código dañino, especialmentecuando existe al menos un ordenador consistema operativo Windows que utiliza unprograma de descarga de correo con gra-ves vulnerabilidades, como Outlook.

■ CLAMAV

El antivirus libre más completo disponiblepara Debian es ClamAV, que cuenta conversiones para múltiples sistemas operati-vos y soporte de actualizaciones periódicasmediante los repositorios oficiales de la dis-tribución.

Gracias a ClamAV va a ser posible:�� Actualizar tanto automática como ma-

nualmente las nuevas definiciones de vi-rus.

�� Realizar análisis periódicos de virus enequipos con sistemas Linux y Windows.

�� Tratar los mensajes de correo infectadoscomo queramos, ya sea ignorándolos,moviéndolos a la carpeta que escojamoso eliminándolos sin consultar.

Para realizar su instalación utilizamos elcomando:

apt-get install clamav

■ FUNCIONAMIENTO

Adicionalmente a su configuración como fil-tro de correo, ClamAV puede funcionar co-mo cualquier otro antivirus a través de co-mandos en la consola de texto:

clamscan ruta

escanea u archivo o directorio, o

clamscan -r directorio

para comprobar recursivamente el conteni-do completo del directorio.

Para realizar las actualizaciones pode-mos instalar el paquete clamav-freshclam,que comprueba automáticamente las nue-vas definiciones de virus disponibles enInternet y las descarga e instala mediante eluso de un demonio propio.

■ INTEGRACIÓN EN SENDMAIL

Al igual que con el filtro de SpamAssassin,para integrar el antivirus junto a Sendmaildescargamos el paquete:

apt-get install clamav-milter

ZONA DEBIAN SERVIDOR DE CORREO

22 Número 66

Las herramientas de filtrado no suelen producir errores de manera habi-tual, 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 indica-do junto a su dirección IP en el archivo /etc/hosts y que posea una sinta-xis válida, indicando el nombre completo del dominio, como por ejemploservidorCorreo.com.

�� No es posible enviar mensajes: las configuraciones predeterminadas deSendmail no permiten el envío desde ordenadores externos al propioequipo que tiene el servidor, por lo que debemos añadir una línea juntoal valor RELAY para cada uno de los restantes equipos.

�� Los mensajes no se envían correctamente: si al mandar un correo elec-trónico el destinatario no lo recibe, existe un error en la configuración deSendmail. Podemos verificarlo en el archivo /var/log/mail.log, dondedeben mostrarse tanto el emisor como el receptor junto a las líneasSent (OK), indicando los servidores utilizados en la transferencia.

Posibles problemas �

ClamAV.

20-23 Debian 7/4/06 12:33 Página 22

Page 22: Todo Linux 66

y modificamos el archivo sendmail.mc paraactivar el nuevo filtro.

■ INTEGRACIÓN CON OTRAS

APLICACIONES

La mayoría de los clientes de correo electró-nico permiten utilizar ClamAV para escanearlos correos recibidos, siendo los pasos ne-cesarios para los más utilizados:�� KMail: presionamos en Herramientas-

>Asistente anti-virus, donde se muestranlos antivirus disponibles, entre los queelegimos el indicado por Clam Anti-Virus,presionamos en “Adelante”, activamosComprobar los mensajes utilizando lasherramientas antivirus y Mover los men-sajes detectados como víricos a la carpe-ta seleccionada eligiendo una existentepara almacenar los correos infectados.Para terminar, presionamos en “Finalizar”.

�� Thunderbird: al contrario que en Kmail,no está disponible una opción específicapara comprobar los correos, por lo quedebemos instalar el demonio del antivirusejecutando:

apt-get install clamav-daemon

que automáticamente comprobará losmensajes recibidos y eliminará los virus queencuentre.

Este mismo método puede utilizarse paracualquier otro lector de correos electrónicosque no incluya la correspondiente opción. ■

ZONA DEBIANSERVIDOR DE CORREO

23Número 66

En el próximo número revisare-mos las numerosas novedadesacontecidas en Sid, como el ser-vidor gráfico X.org, versiones delnúcleo 2.16 y los escritorios KDE3.5 y GNOME 2.12, y realizare-mos el proceso completo de ac-tualización desde un equipo conDebian Sarge, analizando todoslos posibles problemas que va-mos a encontrar en el proceso.

Las últimas novedades en la comunidad Debian destacan por el avance en la cadavez más frecuente arquitectura AMD64 y por la aparición de una nueva beta delfuturo instalador de Etch:

�� Cambios en los nombres de núcleosCon el objetivo de conseguir un estándar, la asignación de nombres de los núcleosha sido modificada, por lo que la cabecera se ha transformado de kernel-image- alinux-image-. Adicionalmente, el grupo de Debian que trabaja en el núcleo ha infor-mado de numerosas novedades relacionadas con el soporte para múltiples proce-sadores y el soporte de Xen para las versiones 2.6 del mismo.

�� Estado de la versión AMD64La implantación de la arquitectura AMD64 en Debian prosigue su lento pero continuoavance. El último cambio es el envío a los servidores de los paquetes esenciales, a losque continuarán las restantes aplicaciones, bloqueadas hasta que no finalice el proceso.

�� Debian/kFreeBSD para AMD64Se ha anunciado la aparición, actualmente en estado experimental, de la distribuciónDebian/kFreeBSD para la arquitectura AMD64. Para poder ejecutarse requiere de unainstalación previa de FreeBSD 6.0 y debe realizarse desde un entorno de trabajo chroot.

�� Reubicación del servidor de paquetesEl servidor que almacena los paquetes, http://packages.debian.org, ha sido actuali-zado, gracias a la aportación de la empresa de hosting en la que se encuentra, conun nuevo equipo Opteron de doble núcleo destinado exclusivamente a usuarios ydesarrolladores.

�� Instalador de Etch Beta 2Se ha liberado una nueva beta del futuro programa de instalación de la próxima versiónestable de Debian, Etch, con múltiples errores corregidos. Al no encontrarse aún de for-ma oficial en la rama testing, debe descargarse por separado. Existen versiones dispo-nibles para CD y DVD en la página http://www.debian.org/devel/debian-installer.

�� Formato utilizado en la documentaciónLos archivos que contienen la documentación referente al uso de programas, confi-guració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 losmás comentados como PDF, texto plano o PS, destaca HTML, ya que es posiblerealizar fácilmente búsquedas y existen múltiples visores tanto para el servidor gráfi-co como para la consola de texto.

�� Eliminación de debmakeEl futuro lanzamiento de Etch va a producir la eliminación del paquete debmake de losrepositorios testing y unstable, por lo que los desarrolladores de los casi sesenta paque-tes que aún utilizan esta herramienta de empaquetado deben migrar a la herramientadebhelper. Ésta realiza las mismas funciones que debmake más otras adicionales.

�� Nuevas aplicacionesDespués de solucionar diversos problemas relacionados con la seguridad de los servido-res de paquetes y migrar a un nuevo equipo, se han incluido numerosas aplicaciones:CheckGmail, comprueba los correos de Gmail; DSPAM, filtro personalizable de correosno deseados; gnudoq, generador de Sudokus con soporte de impresión; Moto4Lin, pro-grama 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 dispositi-vos RAID conectados al equipo; open-cobol, compilador del lenguaje COBOL; Optipng,optimizador de archivos PNG; Pyronman, herramienta de configuración de cortafuegospara redes extensas; Synfig, animación en 2D mediante vectores; WengoPhone, aplica-ción VozIP; y YICS, cliente de ajedrez Yahoo para utilizar junto a interfaces FICS.

Actualidad Debian �

Uso de ClamAV en KMail.

20-23 Debian 7/4/06 12:34 Página 23

Page 23: Todo Linux 66

ono es uno de los proyectoslibres más populares y, a lavez, uno de los más contro-

vertidos. En las siguientes páginasharemos un repaso a su historia pa-ra después analizar su situación ac-tual. Terminaremos con una visiónpráctica de esta plataforma de de-sarrollo, veremos cómo instalarMono en nuestra maquina, y compi-laremos y ejecutaremos un par deejemplos.

Durante años, varios departamentos deMicrosoft estuvieron trabajando en mejorarlas diferentes tecnologías que distribuía lacompañía. En particular, el modelo COM(Component Object Model) y los serviciosorientados a la Web eran los que mayoratención estaban recibiendo. En un determi-nado momento, Microsoft decide terminartoda relación con Sun tras un largo procesolegal. Entonces, inicia por su cuenta la crea-ción de una plataforma de desarrollo que sir-viera como alternativa a Java, y que unificarael trabajo que se había venido realizando deforma relativamente independiente. Es asícomo nace .NET, un modelo dedesarrollo similar al planteadopor Java, con diferentes mejo-ras, orientado al sistema opera-tivo Windows y a las tecnologí-as web. Sin embargo, a diferen-cia de lo que Microsoft habíahecho en otras ocasiones, de-cide abrir buena parte de las es-pecificaciones de esta iniciativaal público, y así incentivar la par-ticipación de otras empresas.

Desde la comunidad open source se ha-bían seguido con bastante atención todaslas noticias referentes a esta nueva idea deMicrosoft. En particular, Miguel de Icaza, queen el año 1997 había sido uno de los crea-dores del escritorio libre GNOME y que dosaños más tarde cofundaría la empresa HelixCode (después Ximian, posteriormente ad-quirida por Novell), decidió poner en marchaen 2001 el proyecto Mono. Su objetivo eracrear una implementación libre y multiplata-forma de .NET. El propósito inicial de Icazaera interno: mejorar la productividad de losdesarrolladores de Helix Code. Sin embargo,y como es lógico, desde el primer momentoMono recibió mucha atención desde la co-munidad open source.

De forma ideal, gracias a Mono, todo elsoftware desarrollado en Windows con el.NET de Microsoft funcionaría sin modifica-ción en GNU/Linux (y demás plataformas enlas que Mono estuviera disponible), y vice-versa, todo el software programado conMono funcionaría perfectamente enWindows con el .NET de Microsoft.

La trayectoria del proyecto Mono(http://www.mono-project.com) no ha esta-do exenta de dificultades durante todos es-

tos años. Además de tenerque implementar práctica-mente desde cero una plata-forma de desarrollo de estacomplejidad, Mono ha sidomuy discutido por parte de lapropia comunidad open sour-ce, que piensa que puede seruna trampa de Microsoft (quetiene patentes de software re-lacionadas) para frenar el de-sarrollo de software verdade-

ramente libre. De hecho, empresas comoRed Hat han sido muy cautas a la hora de in-cluir componentes de Mono en sus distribu-ciones. Fedora Core ha esperado cinco ver-siones hasta decidirse a incluirlo.

Pese a estos problemas, el proyecto haestado activo en todo momento, cuentacon el respaldo de diferentes empresas y deuna amplia comunidad de desarrolladores yusuarios. Microsoft publicó la versión 1.0 de.NET en el año 2002, y la 2.0 a finales de2005. Mono alcanzó su versión 1.0 en el año2004, y a lo largo de este año 2006 se espe-ra la publicación de la 1.2 que, en líneas ge-nerales, tendrá características similares a la2.0 de Microsoft. Por todo esto, se puededecir que Mono es ya un proyecto maduro

que, si bien aún está incompleto, es válidocomo entorno de desarrollo de producción.

¿CÓMO FUNCIONA MONO?En la figura inferior podemos ver esquemáti-camente la esencia de la arquitectura deMono. Sobre cada sistema operativo com-patible se construye una capa intermediaque se denomina entorno de ejecución delenguaje común (CLR, Common LanguageRuntime) o, simplemente, “entorno de eje-cución”. Este CLR es el encargado de ejecu-tar todas las aplicaciones implementadascon .NET. Independientemente del lenguajede programación con que fueran original-mente programadas, el compilador se ocu-pa de traducir a una infraestructura de len-guaje común (CLI, Common LanguageInfraestructure) que es la que entiende el en-torno de ejecución.

Todos los lenguajes compatibles con .NETcomparten una librería de clases base (BCL,Base Class Library) que proporciona el núcleode la funcionalidad. Lejos de ser una librería mi-nimalista, su contenido es razonablementevasto. Incluye funciones matemáticas, de ac-ceso a ficheros, soporte de servicios web,manejo de XML, serialización por diversos mé-todos, bases de datos y programación orien-tada al escritorio, por citar solo algunas.

Tanto .NET como Mono son plataformas“agnósticas” de lenguaje, esto es, para desa-rrollar con ellas no es necesario que el progra-mador se ate a un único lenguaje de progra-mación. Por el contrario, la traducción que rea-liza el compilador a código intermedio permitela utilización de una amplia gama de lenguajes.

Sin embargo, es igualmente cierto que.NET define un nuevo lenguaje “marco” lla-mado C#, extraordinariamente parecido aJava, que se supone es el modo natural dedesarrollar en esta plataforma. Tanto CLI co-

El Proyecto Mono

24 Número 66

M

ANTONIO ZUGALDÍA

[email protected]

Miguel de Icaza, fundador del proyecto.

Arquitectura de capas de Mono.

24-27 Reportaje (Mono) 7/4/06 12:35 Página 24

Page 24: Todo Linux 66

mo C# son especificaciones que Microsoftha publicado a través de la asociación de es-tandarización ECMA Internacional. Mono in-cluye su propio compilador de C#, “mcs”,desarrollado también en C#.

Entre los demás lenguajes soportadospor .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 es-pecificaciones definidas por CLI podrá ser in-terpretado por el entorno de ejecución.

Mono, además de implementar los dife-rentes elementos de .NET, ha ido añadiendootros componentes propios. Es el caso deGTK#, el motor de escritorio recomendado(veremos un ejemplo más adelante).También se incluyen adaptaciones de las li-brerías gráficas Cairo y OpenGL, la librería#ZipLib para el manejo de archivos compri-midos, y la pareja mod_mono/XSP, para utili-zar ASP.NET con y sin Apache.

¿QUÉ APLICACIONES FUNCIONAN CONMONO?Desde la aparición de Mono, el número deaplicaciones desarrolladas con esta platafor-ma se ha ido incrementando rápidamente.Repasemos algunas de las más conocidas.

Desde el punto de vista del desarrolladorhay dos aplicaciones especialmente intere-santes. Dado que al fin y al cabo Mono pre-tende potenciar el desarrollo rápido de apli-caciones, una de las primeras en aparecerfue MonoDevelop (http://www.monodeve-lop.com), un Entorno de Desarrollo Integra-do con una amplia gama de característicasque facilitan el día a día del programador.Posee coloreo de sintaxis, autocompleciónde código, soporte interno de clases y pro-yectos (permite manejar proyectos de VisualStudio), incluye ayuda integrada y es exten-sible mediante plugins. Su capacidad paradepurar o diseñar visualmente aplicacionesgráficas existe, pero es aún relativamente li-mitada. MonoDevelop no tiene de ningunamanera la potencia de Visual Studio, pero no

deja de ser una herramienta avanzada y útilpara desarrollar aplicaciones en GNU/Linux.

Además de MonoDevelop, si vamos adesarrollar aplicaciones de escritorio nos in-teresará conocer Glade, un clásico enGTK/GNOME que aunque no está desarro-llado en C#, sus archivos XML sí están so-portado por GTK# y, por tanto, por Mono.Una magnífica alternativa a Glade esGazpacho (http://gazpacho.sicem.biz), cu-yo desarrollo fue iniciado por la empresa es-pañola Sicem, y que utiliza Python como len-guaje primario. Por otro lado, desde Monose está trabajando en un nuevo Glade. Sellamará Stetic y está siendo reescrito porcompleto utilizando C#. Aún no hay fechaprevista de publicación.

La documentación de desarrollo la po-demos consultar en la web (http://www.go-mono.com/docs) o con la aplicaciónmonodoc, que forma parte de la distribuciónestándar de Mono. Dentro de este progra-ma podemos encontrar la referencia de la li-brería de clases, de GTK# e incluso la propiaespecificación de C#.

De cara al usuario han aparecido unascuantas aplicaciones que poco a poco co-mienzan a integrarse con las diferentes dis-tribuciones. Algunas, de hecho, se estánconvirtiendo en referentes dentro de su ca-tegoría. A modo ilustrativo, listamos diez deellas:�� Banshee (http://www.banshee-project.

org), reproductor y administrador de mú-sica estilo iTunes, compatible con los iPod.

�� Beagle (http://www.beaglewiki.org), unbuscador para el escritorio tipo GoogleDesktop 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 brillanteadministrador de fotografías e imágenes.

�� iFolder (http://www.ifolder.com), herra-mienta desarrollada por Novell para com-partir archivos en ambientes corporativos.

�� Muine (http://www.muine-player.org), re-productor musical integrado con Amazon.

�� Second Life (http://www.secondlife.com), creador de mundos virtuales queutiliza Mono internamente para gestionarsus descriptores.

�� SkyNET (http://sky-net.sourceforge.net),herramienta de visualización de cartas as-tronómicas.

�� Tomboy (http://www.beatniksoftware.com/tomboy), notas para el escritorio quepueden funcionar con filosofía wiki.

EL ESTADO DE LA CUESTIÓNAl cierre de estas líneas, la última versión deMono es la 1.1.13, siendo a la vez la rama deproducción y de desarrollo. Es decir, Monoha 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.2es inminente, y la actual 1.1.x es suficiente-mente fiable como para hacerse cargo delos desarrollos.

De hecho, parece ser que solo el retrasode la parte de Windows.Forms (programa-ción de escritorio nativa de Windows) haceque no se encuentre disponible ya la versión1.2. El problema es que originalmente estemódulo fue desarrollado utilizando Wine(una implementación libre de algunas librerí-as de Windows). Esta apuesta inicial ha de-mostrado ser más un parche temporal queuna solución definitiva, lo que ha provocadoque se tenga que rehacer todo el aparatoWindows.Forms. Además, incluso cuandoeste proceso termine, aún quedará bastan-te trabajo por delante, puesto que la versiónde Windows.Forms que distribuirá Mono 1.2no será compatible con la nueva versión 2.0de .NET, sino con la antigua 1.1.

Esta situación es preocupante para eldesarrollador que desea interoperabilidadcompleta con Windows. Sin esta librería lasaplicaciones que se desarrollan usualmentecon Visual Studio no funcionan en absolutoen GNU/Linux.

Sin embargo, y a pesar de este contra-tiempo, el apartado gráfico de Mono ha me-

REPORTAJEEL PROYECTO MONO

25Número 66

Banshee, reproductor al estilo iTunes.

MonoDevelop, el Entorno de Desarrollo Integrado.

F-Spot, de Larry Ewing, gestor de fotografías.

24-27 Reportaje (Mono) 7/4/06 12:35 Página 25

Page 25: Todo Linux 66

jorado notablemente en las últimas versio-nes, ya que ha comenzado a utilizar extensa-mente tanto Cairo como OpenGL. De hecho,la nueva implementación de Windows.Formsdescansa sobre GDI+ y ésta, a su vez, sobreCairo. De la misma manera, GTK+ ha incluidoCairo en sus últimas versiones y, por tanto,así lo hará también GTK#.

Precisamente, gracias a la existencia deGTK# las dificultades que planteaWindows.Forms no son tan preocupantes,puesto que esta librería proporciona funda-mentalmente las mismas características. Asaber, GTK# permite la programación deaplicaciones multiplataforma orientadas alescritorio. También ofrece la posibilidad demanejar widgets complejos, así como crearotros nuevos. Y no solo es libre, sino queademás soporta la descripción de interfacesmediante XML y el desarrollo de aplicacio-nes específicas para el escritorio GNOME.

En otro orden de cosas, una de las cues-tiones más importantes a la que Mono ha te-nido que enfrentarse es la nueva versión 2.0del framework publicado a finales del año2005. En este sentido, cabe alegrarse, yaque en el momento que Microsoft anunciólas novedades de esta versión, Mono co-menzó a trabajar para incluirlas. En lo que serefiere al compilador de C#, el compilador“mcs” implementa todas estas caracterís-ticas 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 programasque estudiaremos a continuación.

En lo que se refiere a los cambios intro-ducidos por la 2.0 en otros componentes dela plataforma (como ASP.NET y ADO.NET), lafuncionalidad que implementen en la versión1.2 de Mono dependerá de la fecha de finali-zación del trabajo de Windows.Forms.

UNA VISIÓN PRÁCTICA DE MONOProbablemente la manera más sencilla deprobar Mono es mediante “Mono Live”, unadistribución de GNU/Linux basada en Ubuntuque tiene todo lo necesario para echar un vis-tazo tanto a la plataforma de desarrollo, comoa alguna de las aplicaciones más conocidas.Para conseguir Mono Live solo tenemos quedescargar la imagen de CD desde su páginaweb, grabarla en un CD-ROM y arrancar el or-denador con ella. Tenemos toda la informa-ción en http://www.mono-live.com.

■ INSTALAR MONO

Sin embargo, si queremos utilizar Mono deuna manera más estable, lo mejor será quelo instalemos en nuestro sistema operativo.El punto de partida es la página http://www.mono-project.com/Downloads.

Si estamos utilizando GNU/Linux lo prime-ro que cabe preguntarse es si nuestra distri-bución posee paquetes preparados de Mono.De hecho, las cuatro distribuciones más utiliza-das de acuerdo con DistroWatch (Ubuntu,SUSE, Mandriva y Fedora Core) ya incluyenMono en sus repositorios. Por tanto, solo te-nemos que utilizar la herramienta de instala-ción de software que tenga nuestra distribu-ción e instalar los paquetes correspondientes.

Para ejecutar aplicaciones solo necesita-mos el entorno de ejecución (mono). Paradesarrollar software necesitaremos ademásel compilador (mcs/gmcs), y nos serán deutilidad el IDE y la documentación (monode-velop y monodoc). Y si queremos utilizarWindows.Forms no debemos olvidar instalarGDI+ (libgdiplus).

Si esto no funciona en nuestra distribu-ción, en la página anterior podemos encon-trar los archivos necesarios para instalarMono en cualquier GNU/Linux. Además depaquetes precompilados para algunas ver-siones de SUSE y Red Hat (y Fedora Core),tenemos un instalador genérico que deberíafuncionar con cualquier distribución, solo te-nemos que descargarlo y ejecutarlo comoharíamos con cualquier otro programa.

Como último recurso siempre podemosdescargar las fuentes y compilarlas nosotrosmismos. Sin embargo, no es la opción másrecomendable (aunque hay circunstanciasen las que es la única posibilidad, por ejem-plo si queremos colaborar con el desarrollode la propia plataforma). También en la pági-na de Mono podremos encontrar paquetespara máquinas de 64 bits.

“HOLA MUNDO”Para terminar, y aprovechando que anterior-mente hemos explicado cómo instalarMono, vamos a ver dos ejemplos típicos quemuestran de manera sencilla la programa-ción en esta plataforma. En primer lugar ve-remos el “Hola Mundo” en modo texto, elprograma con el que se comienza cuandose aprende cualquier lenguaje de programa-ción. Después extenderemos el ejemplo pa-ra convertirlo en una aplicación de GNOME.

■ ESTRUCTURA BÁSICA DE UN

PROGRAMA

El código completo del “Hola Mundo” lotenemos en el Listado 1. El propósitodel programa es el de imprimir la cade-na de texto que aparece después deConsole.WriteLine.

La primera línea (using System;) ledice al sistema que a lo largo del pro-grama vamos a utilizar funcionalidadesdel “espacio de nombres” System. Adiferencia de lo que ocurre en otros

lenguajes, C# es bastante abstracto cuandose refiere a librerías del sistema. Mientrasque en C, por ejemplo, se referencian direc-tamente ficheros del disco (#include<stdio.h>), C# deja esa tarea al entorno deejecución. Así, aunque en GNU/Linux el es-pacio de nombres System puede corres-ponderse con el fichero/usr/lib/mono/2.0/System.dll, en Windows oMac OS X el fichero probablemente recibaotro nombre. De esta manera se simplifica latarea al programador, y se aumenta la porta-bilidad de la aplicación.

La siguiente línea define la única claseque compone el programa. C#, como nopodía ser de otro modo, sigue la filosofía deorientación a objetos. En este ejemplo, porsencillez, no instanciamos ninguna clase, ytodos los métodos son estáticos.

La clase HolaMundo contiene un únicométodo llamado Main. Este método es es-pecial, representa el “punto de entrada” denuestro programa, el lugar en el que co-mienza la ejecución. Todo código de C#, sal-vo que sea una librería, debe definir un mé-todo de acceso público con este nombre.

Finalmente el programa incluye una úni-ca orden dentro del método Main. Esta líneaes la encargada de imprimir en pantalla eltexto que hay entre comillas. Console es unaclase contenida dentro del espacio de nom-bres System, y WriteLine es uno de sus mé-todos. Se trata de un método estático, demodo que no es necesario instanciarConsole 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; podemoseliminar la primera parte. Espacios de nom-bres, clases y miembros se separan conpuntos.

Para compilar el programa simplementetenemos 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. Laprimera (-out:) indica el nombre del ejecuta-

REPORTAJE EL PROYECTO MONO

26 Número 66

using System;class HolaMundo{static void Main (){Console.WriteLine ("¡Hola Mundo!");

} }

Listado 1. “Hola Mundo” en modo texto

24-27 Reportaje (Mono) 7/4/06 12:35 Página 26

Page 26: Todo Linux 66

REPORTAJEEL PROYECTO MONO

27Número 66

ble final. Nótese que por compatibilidad conWindows los ejecutables arrastran la exten-sión .EXE. La otra opción (-codepage:) le diceal compilador la codificación de nuestra fuen-te. Si no la incluimos puede ocurrir que la ca-dena de texto no se imprima correctamente,ya que la apertura de exclamación (“¡”) noforman parte de la tabla ASCII básica.También sería necesaria esta opción si inclui-mos alguna tilde.

Finalmente, llamamos al entorno de eje-cución:

$ mono HolaMundo.exe¡Hola Mundo!

■ EN COLORES

Ahora complicare-mos un poco el có-digo para utilizar lascapacidades gráfi-cas de C#. En parti-cular vamos a utilizarla librería GTK#,adaptación de GTK+ a .NET. Esta librería, co-mo es sabido, nació del proyecto GIMP yevolucionó para convertirse en la base delescritorio GNOME. A día de hoy es la libreríagráfica libre de referencia, y funciona tantoen Windows como en GNU/Linux. De estamanera, lo que desarrollemos con ella seráinmediatamente multiplataforma.

El código de este segundo ejemplo lo te-nemos también en el Listado 2. En este ca-so para compilarlo hay que añadir una nuevaopción:

$ mcs -out:HolaMundoGrafico.exe-pkg:gtk-sharp-2.0 -codepage:utf8HolaMundoGrafico.cs

El comando -pkg: le dice al compiladorque vamos a utilizar elementos de la libreríagtk-sharp en su versión 2.0. El programapkg-config se encargará de decirle automá-ticamente al compilador dónde se encuen-tran los archivos correspondientes, de mo-do que no tengamos que preocuparnos deesos detalles. La ejecución es igual que en elcaso anterior:

$ mono HolaMundoGrafico.exe

Esto mostrará una ventana como la de lafigura de la izquierda. Al pulsar sobre el bo-tón central se imprimirá una cadena de textoen el terminal. La ventana se cierra comocualquier otra al pulsar sobre el aspa en laparte superior derecha. En lo que se refiereal código, la estructura básica es la mismaque la del ejemplo anterior.

La primera diferencia que podemos no-tar es que incluimos dos sentencias using,una para System como antes, y otra paraGTK#, espacio de nombres en el que se en-cuentran los componentes gráficos(Application, Window, Button).

El código es relativamente sencillo decomprender, aunque no hayamos programa-do antes con esta librería. Application se en-carga de iniciar (Init), ejecutar (Run) y finalizar(Quit) el bucle principal del programa. Primerocreamos la ventana principal (Window) y des-

pués le añadimos un botón (Button). Eso estodo lo que contiene la aplicación.

Es especialmente interesante prestaratención al manejo de “señales” y “eventos”,esto es, a cómo responde el programa antelas acciones del usuario. En particular hemoscontemplado dos posibilidades, la de pulsarel botón y la de cerrar la ventana principal. Esilustrativo porque la manera en que lo hemoshecho utiliza los nuevos métodos anónimos:

ventana.DeleteEvent += delegate{Application.Quit ();

};

El código anterior simplemente le dice a laventana que ante el evento Delete, ésta debereaccionar cerrando la aplicación. Antes eranecesario dividir esta definición en dos partes,por un lado la definición del delegado y des-pués, en otra parte del programa, el contenidodel mismo. Ahora gracias a que Mono ha im-plementado los métodos anónimos podemoshacerlo de forma mucho más compacta.

Confiamos que estos dos ejemplos hayanservido para ilustrar algunas de las caracterís-ticas básicas de esta plataforma de desarrollo.

CONCLUSIONESConfiamos haber podido transmitir una ima-gen general de Mono y su futuro más inme-diato. Los principales esfuerzos, como he-mos dicho, están centrados en el necesariosoporte de Windows.Forms. La próxima ver-sión 1.2, y la aún lejana 2.0, marcarán lospróximos hitos del proyecto Mono.

Pese a la larga lista de éxitos que ha acu-mulado Mono estos años, aún quedancuestiones pendientes a las que deberá en-frentarse a medio plazo. En particular siguepresente la problemática de las patentes desoftware. En el ámbito europeo continúa ha-ciendo falta una regulación como la que de-fiende la Free Software Foundation europea,que sea respetuosa con los intereses deldesarrollador de software libre y que, portanto, no imite el modelo estadounidense.

Además, Microsoft planea una nuevaversión de su sistema operativo a lo largo delpresente año lo que, unido a las recientesmaniobras de Apple, hace prever una duracompetición en el campo del escritorio. Eneste sentido, Mono ha querido ser siempreun punto de apoyo para el escritorio GNO-ME, de modo que esta situación le afectaráde alguna manera.

Aunque todavía es pronto para saber loque va a ocurrir, creemos que la existenciade la iniciativa Mono sitúa al software libre enuna mejor posición para enfrentarse a estosretos. ■

“Hola Mundo” hecho en GTK#.

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 ();

} }

Listado 2. “Hola Mundo” en modo gráfico

24-27 Reportaje (Mono) 7/4/06 12:35 Página 27

Page 27: Todo Linux 66

C oincidiendo con la presenta-ción del nuevo SUSE Desktopen París, desde Todo Linuxquisimos aprovechar la opor-

tunidad de hablar con NatFriedman, uno de los fundadoresde la empresa Ximian y actualencargado del escritorio Linux enNovell, para conocer sus impresio-nes sobre el panorama actual delas distribuciones open source, laevolución del escritorio o el estadode algunos proyectos libres encuyo desarrollo se ha implicadopersonalmente.

� TODO LINUX: RecientementeNovell ha anunciado nuevascaracterísticas y funcionalidadespara el subsistema gráfico Xgl (Xover OpenGL). ¿Qué supondráeste anuncio para el escritorioLinux? Especialmente de cara alusuario final.■ NAT FRIEDMAN: El desarrollo delframework Xgl ha sido un proyectomuy excitante porque supone laoportunidad en Linux de realizarmuchas cosas nuevas. Esta tecno-logía nos permite trabajar con unentorno mucho más “físico”, másnatural, realmente agradable ydivertido de usar.

En el pasado los desarrollado-res controlaban el hardware y elsoftware, con Xgl brindamos a losusuarios la oportunidad de explorarcampos y crear efectos visualesque antes estaban reservados a loscreadores de las plataformas.

� TL: A propósito de Xgl, ¿Estátrabajando Novell con otras com-pañías que están desarrollandoiniciativas similares? Por ejem-plo el caso de Fedora con el pro-yecto AIGLX.■ NF: Xgl supone una gran aporta-ción de Novell al mundo open sour-ce en la que llevamos trabajando

duramente los últimos meses.Ahora Xgl está listo, es una reali-dad, y es el momento de plantearseun intercambio o una colaboracióncon otras compañías como Intel,Red Hat, Mandriva, etc. Se trata deelevar el nivel de calidad del escri-torio Linux por encima de lo prome-tido por Windows Vista.

� TL: En la próxima versión de laplataforma SUSE, ¿por qué escri-torio se optará como opciónfavorita? ¿GNOME o KDE?■ NF: Actualmente tenemos dosproductos, la distribución SUSELinux 10 que fue presentada hace

seis meses y SUSE Linux EnterpriseDesktop 10 más dirigido a empre-sas, organismos públicos, al áreade negocio. SUSE Linux soportatanto GNOME como KDE para queel usuario pueda elegir el que pre-fiera, mientras que en la versiónEnterprise se soportan tambiénambos entornos de escritorio, peroel predeterminado es GNOME pen-sando en la gente que viene delmundo Windows y nunca ha proba-do un sistema Linux.

� TL: ¿Cómo está contribuyendoel proyecto OpenSUSE a desarro-llar nuevas releases de SUSEServer y en el área desktop?¿Podrías contarnos algún ejem-plo de proyectos desarrolladospor la Comunidad OpenSUSE quevayan a ser incluidos en próxi-mas versiones de SUSE Desktop?■ NF: OpenSUSE es un proyectopuesto en marcha el año pasadoque consiste básicamente en abrirel desarrollo de SUSE a laComunidad open source. Los desa-rrolladores pueden contribuir dediferentes formas online, participaren los foros, corregir fallos, etc.

El proyecto ha sido un granéxito, cientos de personas contribu-yen al desarrollo y evolución deSUSE cada día.

Si hablamos de proyectos, losdesarrollos son probados enOpenSUSE primero (Xgl, Mono,..) ycuando son estables se incluyen enlos productos.

� TL: Precisamente una de lasherramientas de seguridadrecientemente presentadas por

ACTUALIDAD ENTREVISTA

Novell: Nat FriedmanVicepresidente de Linux desktop en Novell

“En el pasado,Linux se dirigíaa mercados muyespecíficos,pero hoy es unaopción madurapara elescritorio

28 Número 66

EDUARDO TORIBIO

YÉNIFER TRABADELA

Nat Friedman durante la presentación del nuevo SUSE Desktop en París.

28-29 Entrevista (Friedman) 7/4/06 12:34 Página 28

Page 28: Todo Linux 66

Novell y que se incluye en elnuevo escritorio es AppArmor.Ésta ha sido muy comentadaen la Comunidad, especial-mente por la existencia ya deutilidades similares comoSELinux ¿Podrías contarnosalgo más sobre su funciona-miento?■ NF: Es una herramienta deseguridad y monitorización muyfácil de manejar que te propor-ciona información sobre todo loque ocurre en el sistema.Controla el funcionamiento delas aplicaciones y los accesospara evitar entradas no desea-das.

Creo que SElinux es unaherramienta de seguridadmucho más complicada demanejar que AppArmor, sonalternativas para diferentesusos.

� TL: ¿Cómo afectará alescritorio open source elfuturo lanzamiento de la pla-taforma Windows Vista?Actualmente ¿es Linux real-mente una alternativa seria aWindows en el mercadodesktop?■ NF: En el pasado cuando sehablaba del escritorio Linuxexistían mercados y tipos deusuarios muy específicos, porejemplo estaciones de trabajotécnicas para tareas de ingenie-ría, cálculo, etc., que necesita-ban mucha memoria y una grancapacidad de procesamiento.Sin embargo, la mayoría deusuarios medios, trabajadoresde oficinas, solo necesitan unaspocas aplicaciones como e-mail, calendario, aplicacionesofimáticas..., herramientas bási-cas para trabajar.

Antes Linux no satisfacía aeste tipo de usuarios, que supo-nen en torno al ochenta porciento del mercado, pero ahoraes una opción madura.

Frente a Windows Vistatiene una plataforma que elimi-na la dependencia de Microsoft,además es un sistema abierto ymucho más seguro, y todo ellosuponer una ventaja.

Windows Vista realmentedominaría un parte muy peque-ña del mercado para la queLinux todavía no está prepara-do.

� TL: ¿Cuáles son los puntosfuertes de SUSE Linux compa-rada con Red Hat o Mandriva? ■ NF: Básicamente uno de elloses la propia compañía Novell.Cuando eliges una distribuciónLinux buscas además la mejorcobertura, las mejores aplica-ciones, los mejores servicios, elsoporte más cualificado, endefinitiva, la solución más com-pleta. Y esto es lo que ofreceNovell.

Además, Novell desarrollasus propias aplicaciones(Beagle, Xgl, Tomboy,..) y com-prueba sus estabilidad a travésdel proyecto OpenSUSE.

� TL: ¿Qué opinas sobre elmodelo seguido por Debian?En España este sistema esmuy popular y tiene muchadifusión en la Comunidad.■ NF: Pienso que el modelo deDebian es positivo, aunque lasversiones estables de la distri-bución se liberan cada cuatroaños. SUSE lanza una versióncada 18 o 24 meses y ofrece

paquetes con los drivers, actua-lizaciones, además de un servi-cio de soporte. Todo esto nopuedes obtenerlo con Debian.Realmente el modelo de Debianes muy bueno para entusiastaso usuarios avanzados de lossistemas Linux.

� TL: También resulta intere-sante el auge que estánalcanzando proyectos comoUbuntu.■ NF: No creo que Ubuntu seaverdaderamente muy popularen el mundo Linux. Si la compa-ramos con SUSE existenmuchas diferencias. Nosotrosrealmente desarrollamos soft-

ware mientras que Ubuntu estácontrolado por una persona quese limita a empaquetar aplica-ciones, cogen software a partirde Debian y crean una distribu-ción.

Si quieres un sistema que teofrezca soporte eliges SUSE, ysi lo que buscas es simplemen-te un paquete de softwareentonces Ubuntu es una opción.

� TL: Tú has colaborado per-sonalmente en el desarrollode varios proyectos opensource, entre ellos el busca-dor Beagle. ¿En qué estado se

encuentra actualmente estaaplicación?■ NF: Se trata de un buscadorque te permite localizar todo loque puedas imaginar en el sis-tema: documentos, correoselectrónicos, canciones, archi-vos de todo tipo (con formatoOpenOficce, de Microsoft, etc.)Es una herramienta flexible,completa y fácil de utilizar.Actualmente es muy estable ypor eso se ha incluido en elnuevo escritorio Suse Desktop10.TL: Hablando de proyectos enlos que te has involucrado,¿Cuándo veremos la próximaversión de la plataforma dedesarrollo Mono?■ NF: Actualmente se está tra-bajando en Mono 2.0, perodependerá de que haya unaversión realmente estable deWindows.Forms para incluirsoporte a esta tecnología. Setrata en definitiva de que la pró-xima generación de aplicacio-nes Windows puedan funcionarcorrectamente en Linux.

� TL: Ya para terminar,¿Cómo ves la importancia queestá adquiriendo en algunospaíses el Sector Público comonegocio para Novell? ¿Crees que veremos máscasos de migración en Europacomo los de las ComunidadesAutónomas de Extremadura yAndalucía en España?■ NF: Existen grandes oportuni-dades de negocio en el sectorpúblico, gobiernos y administra-ción no solo en Europa, en paí-ses como China o en Sudamé-rica hay una gran motivacióndesde las administracioneshacia las plataformas opensource. Incluso hay casos enEstados Unidos como la migra-ción de cientos de escritorios enel estado de Indiana.

El caso de China es intere-sante, hay miles de usuarios ile-gales de Windows, pero en elúltimo año se han producido unfenómeno de migración a Linuximpulsado desde los gobiernosde distintas ciudades.

ACTUALIDADENTREVISTA

29Número 66

Nat Friedman posa con una redactora de Todo Linux.

28-29 Entrevista (Friedman) 7/4/06 12:34 Página 29

Page 29: Todo Linux 66

uestro problema es sencillode enunciar y comprender,pero en Linux, extremada-

mente difícil de solucionar: cómoborrar una letra de un fichero PDFsin disponer del documento originalque lo generó.

Es un hecho, Linux carece de buenasherramientas que permitan editar ficherosPDF. Punto.

Sin embargo, este taller no tendría senti-do si de la frase anterior eliminásemos la pala-bra “buenas”. Y ahí está el quid de la cuestión.En Linux, aunque pocas, sí disponemos deutilidades de manipulación de ficheros PDFque, usadas en su conjunto, nos podrán ayu-dar a realizar nuestro trabajo. En las siguien-tes líneas presentaremos las más importan-tes, y explicaremos cómo nos podemos va-ler de ellas. También es importante subrayarla diferencia entre visor y editor: en Linux síque disponemos de varias alternativas paravisualizar documentos PDF, como sonEvince, KPDF, Xpdf, GPdf o el propio AdobeAcrobat Reader. Sin embargo, no dispone-mos de ningún editor de ficheros PDF quenos permita modificar o manipular el conteni-do de un documento PDF ya creado, tal y co-mo existen en Windows, siendo AdobeAcrobat el más conocido. Otro detalle más:queremos editar un fichero ya creado, no ge-nerar nuevos, para lo que también dispone-mos de herramientas en Linux, comoPDFTeX, o el propio OpenOffice. Nuestro pro-blema es más complejo de lo que parece...

HACIENDO COLLAGE CON FICHEROSPDFSupongamos que disponemos de dos do-cumentos PDF, el documento d1 y el docu-mento d2, ambos de diez páginas. Nos gus-taría conseguir un único documento final d3,formado por la unión de ambos. Esto enLinux ya es un problema, ¿cómo concate-namos dos ficheros PDF? Por otra parte,nos damos cuenta de que la primera hoja ded2 es la misma que la primera de d1, unaportada. Nos gustaría que el documento fi-nal d3, no tuviera dos portadas, por lo queéste es nuestro segundo reto, eliminar la

portada de d2 del documento final, obte-niendo un documento d3 de 19 páginas.Para resolver este tipo de problemas –y mu-chos más- con ficheros PDF, el autor del libroPDF Hacks, Sid Steward, desarrolló la herra-mienta pdftk (PDF Toolkit).

Pdftk es la “navaja suiza” de la manipula-ción de ficheros PDF. Desarrollada como unaaplicación multiplataforma de línea de co-mandos bajo licencia GPL, podremos realizartareas como mezclar documentos PDF, ex-traer páginas a un nuevo documento, cum-plimentar formularios PDF con datos FDF,aplicar marcas de agua, adjuntar ficheros oreparar documentos defectuosos, entreotras (http://www.accesspdf.com/pdftk/).

Los dos problemas que hemos plantea-do como ejemplo se resuelven con una solainstrucción pdftk:

$ pdftk A=d1.pdf B=d2.pdfcat A B2-10 output d3.pdf

Es decir, asignamos d1.pdf y d2.pdf a lasvariables A y B respectivamente. Despuésejecutamos la orden cat de pdftk, tomandocomo argumentos el documento A comple-to y las páginas 2 a 10 del documento B.Este comando cat leerá las páginas de losdocumentos indicados y dejará el resultado(output) en d3.pdf.

Una vez creado nuestro documentod3.pdf, supongamos que quisiéramos pro-tegerlo para que nadie copie el contenido,de tal forma que ni tan siquiera se pueda im-primir. Nuestra “navaja suiza” particular nosayudará de nuevo:

$ pdftk d3.pdf output d3_protegido.pdfowner_pw 123456

Con la orden anterior, hemos cifrado–codificado– el contenido, tomando comobase el password 123456, protegiéndoloante intentos de copiado del texto o gráficosque incluya, así como evitando que funcionela impresión desde un visor de ficheros PDF.No parece muy acorde con la filosofía delsoftware libre, pero es posible que necesite-mos hacerlo en alguna ocasión.

Supongamos ahora que seguimos rece-losos de la seguridad de nuestro documen-to d3.pdf y queremos protegerlo un pocomás, de tal forma que solo aquellos usuariosque sepan la contraseña puedan leerlo.Bien, en ese caso deberíamos de modificarligeramente la orden anterior:

$ pdftk d3.pdf output d3_protegido.pdfowner_pw 123456 user_pw 98765

Es decir, ¡hemos protegido nuestro do-cumento incluso contra lectura! Solo podráleerlo aquel que sepa que la contraseña delectura es 98765, y ésta será solicitada porcualquier visor de ficheros PDF que intenteabrir el archivo.

Supongamos que nos interesa que loslectores poseedores de la contraseña pue-dan también imprimir el documento. Bastacon añadir una nueva opción (allow printing)a la línea anterior:

$ pdftk d3.pdf output d3_protegido.pdfowner_pw 123456 user_pw98765 allow printing

Otros posibles permisos útiles, aparte deprinting, podrían ser ModifyContents (permi-tirá modificar o retocar el contenido del PDF)o CopyContents (para copiar el contenidoen el portapapeles).

AÑADIR TEXTO A UN FICHERO PDFHemos visto que es posible recortar, prote-ger, cortar y pegar páginas en ficheros PDFdesde Linux. Pero ¿qué hay de la opción deañadir nuevo texto a una página PDF de un

TALLER LINUXFICHEROS PDF

Edición de ficheros PDF sinAdobe Acrobat

>>>

30 Número 66

N

JUANAN PEREIRA

[email protected]

Figura 1. Sede web de pdftk, una poderosa herramienta parala manipulación de ficheros PDF.

30-33 Taller (PDF) 7/4/06 13:53 Página 30

Page 30: Todo Linux 66

documento? Por ejemplo, para incluir notasen los márgenes, rellenar un formulario, etc.Bien, también podremos hacerlo, con elpseudo editor gráfico de ficheros PostScriptflpsed.

Como su propio autor indica, más que uneditor, flpsed es un pseudo editor gráfico deficheros PostScript. “Pseudo”, porque no esposible eliminar o modificar elementos (texto,gráficos) preexistentes de un documento.Pero sí podremos añadir texto, en cualquierposición, con cualquier color y tamaño de le-tra. Además, las líneas de texto que añada-mos podrán ser reeditadas posteriormentecon la propia aplicación flpsed.

En estos momentos el lector se estarápreguntando qué tiene que ver un editorPostScript con un editor de ficheros PDF. Larespuesta es que un fichero PDF no viene aser más que un fichero PostScript mejorado.En realidad, el formato PDF es un conjuntoreducido del estándar Postscript más algu-nas características nuevas, tal y como apa-rece en la definición de este formato queaporta la Wikipedia (ver Cuadro de Refe-rencias de la última página). Es posible rea-lizar conversiones entre ambos formatos, ypor tanto, podemos convertir un fichero PDFa formato PostScript (.PS), editarlo con flp-sed y volverlo a convertir a PDF.

Flpsed está disponible en dos versionesdistintas, una rama con la versión 0.3 y otracon la 0.4. La diferencia estriba en que la ra-ma 0.4 utiliza la biblioteca de desarrollo dewidgets gráficos fltk en su versión 2.0, consoporte de caracteres internacionales me-diante UTF8 y fuentes con antialias, y consi-deramos que es una rama experimental. Porotro lado, la rama 0.3 de flpsed es más esta-ble, pero carece de las características ante-riores (http://www.fltk.org/)

En el momento de escribir este tutoriallas últimas versiones disponibles de flpsedson la 0.3.6 y la 0.4.1 respectivamente.Recomendamos a los lectores que instalenla biblioteca fltk directamente desde el códi-go fuente, es decir, usando el conjuro mági-co ./configure, make, make install, dado queen algunas distribuciones, como FedoraCore por ejemplo, si instalamos fltk desde elpaquete RPM, a la hora de compilar poste-

riormente flpsed obtendremos errores decompilación.

El procedimiento para añadir texto a unfichero PDF consistirá en abrir el fichero conla opción File / Import PDF, editarlo (añadir eltexto que creamos necesario) y guardarlocon Export PDF...

En la Figura 3 podemos ver cómo he-mos abierto un fichero PDF y añadido untexto en color rojo en el medio de la primerapágina. También se puede apreciar que es-tamos usando la versión de la rama 0.3, da-do que el texto insertado no tiene aplicadoantialias.

IMPRIMIR UN FICHERO PDF A VARIASPÁGINAS POR HOJAUna necesidad común para los usuarios quetrabajamos con ficheros PDF de gran tama-ño es la de imprimir dichos documentos avarias páginas por hoja, con el doble objetivode ahorrar papel y que el documento final,en papel, sea más manejable. En Linux exis-te una fabulosa utilidad llamada PDFjam quenos permitirá comprimir varias páginas enuna sola hoja (por ejemplo, dos páginas porcara, cuatro páginas por cara, etc.) Si estedocumento final (a dos páginas por hoja, porejemplo) lo imprimimos a doble cara en laimpresora, estaremos evitando la tala demuchos árboles.

PDFjam es una pequeña colección deshell scripts que ofrecen un interfaz simple alas opciones de trabajo con ficheros PDF delpaquete pdfpages. Además de comprimirvarias páginas por hoja, usando el script pdf-nup, ofrece también los comandos pdfjoinpara concatenar las páginas de múltiplesdocumentos en un único fichero PDF final, ypdf90 para rotar el contenido de uno o másficheros PDF noventa grados en sentidocontrario a las agujas del reloj.

La forma más sencilla y recomendadade instalar PDFjam es a través del paquete

binario del que casi todas las distribucionesdisponen. Por ejemplo, si usamos FedoraCore, podemos instalarlo mediante una sim-ple orden como:

yum install pdfjam

O en Ubuntu con una orden similar a:

apt-get install pdfjam

Las utilidades incluidas en este paquetetienen una pequeña pega, los enlaces pre-sentes en los documentos originales se per-derán en el PDF final. Teniendo en cuentaeste detalle, veamos algunos ejemplos deuso de pdfnup, pdfjoin y pdf90.

Convertir un documento a dos páginaspor hoja (en horizontal):

$ pdfnup --frame true --nup 2x1documento.pdf

La opción --frame true dibujará una líneavertical que separará las páginas de la hoja.El documento original no se modificará.Pdfnup creará un nuevo documento con elresultado final, llamado documento-2x1.pdf.

$ pdfnup --frame true --nup 1x2documento.pdf

Igual que el caso anterior, pero el resulta-do será de dos páginas por hoja (en vertical).

En lugar de 1x2 o 2x1, podríamos intentarcualquier otra combinación: 2x2, 3x2, 2x4,etc.

$ pdfnup --frame true --nup 1x2--pages 2,8,4,5 documento.pdf

Similar al ejemplo anterior, salvo que indi-camos explícitamente las únicas páginasque queremos que formen parte del docu-mento final. Como detalle, podemos apre-ciar que es posible especificar incluso un or-den de páginas no consecutivo.

Existen muchas otras opciones másavanzadas que podemos usar con pdfnup.Para leer más al respecto examinamos el re-sultado de la orden pdfnup --help.

Veamos ahora un puñado de ejemplosde utilización de pdfjoin, extraídos directa-mente de la documentación de ayuda deesta aplicación:

pdfjoin fichero1.pdf fichero2.pdffichero3.pdf --fitpaper true

generará un nuevo fichero, en el directorioactual, concatenación de los tres anteriores,con el nombre fichero3-joined.pdf mante-

TALLER LINUXFICHEROS PDF

31Número 66

Figura 2. Biblioteca open source para la creación de ficherosPDF por programación (está disponible para Java y .NET).

Figura 3. Flpsed permite añadir texto a ficheros PDF, en dis-tinto tamaño y color, desde un entorno gráfico amigable.

30-33 Taller (PDF) 7/4/06 13:53 Página 31

Page 31: Todo Linux 66

niendo el tamaño original de todas las pági-nas (opción fitpaper true). También es posi-ble usar pdfjoin para escalar las páginas delos documentos que se quieren unir a un ta-maño dado. Por ejemplo, la siguiente orden(debe incluirse toda en la misma línea):

pdfjoin fichero1.pdf fichero2.pdffichero3.pdf --fitpaper false--paper a4paper--outfile ~/docs/resultado.pdf

escalará todas las página de los ficheros 1, 2y 3 para que quepan en una hoja de tamañoA4, y dejará el resultado final en un nuevodocumento dentro del directorio ~/docs/(subdirectorio docs dentro del directorio raízdel usuario) con el nombre resultado.pdf.

La utilización de pdf90 no conlleva ningu-na dificultad:

pdf90 fichero1.pdf--outfile stuff/ficheroRotado.pdf

rotará todas las páginas del fichero1.pdf no-venta grados en sentido antihorario y dejará elresultado en el subdirectorio stuff del directo-rio actual, bajo el nombre ficheroRotado.pdf.

Es posible ejecutar pdf90 para que tra-baje sobre varios ficheros independientes:

pdf90 file1.pdf file2.pdf

creará los ficheros file1-rotated.pdf y file2-ro-tated.pdf en el directorio actual.

EDICIÓN MANUAL DE UN FICHERO PDFVeamos ahora un método avanzado (aun-que arcaico) de edición. Vamos a editar deforma manual el contenido de un ficheroPDF. Para ello, debemos descomprimir pre-viamente su contenido ya que, por ahorrarespacio, los documentos PDF en generalguardan su contenido de forma comprimida.Realizaremos un ejemplo sencillo, dondecrearemos un documento muy simple conOpenOffice, lo convertiremos a PDF, y trasdescomprimirlo usando pdftk, lo editaremosmanualmente con el editor Vim. Para cam-bios más complejos de los que veremosaquí (sustituir una letra por otra), podemosconsultar el Cuadro 1.

Lo primero que haremos será abrir unnuevo documento con la aplicaciónOpenOffice.org Writer, donde introducire-mos la frase “Esto es una pprueba” (la letra pde la palabra prueba está repetida, será loque corregiremos después de forma ma-nual en el fichero PDF). Guardaremos el re-sultado en formato PDF pulsando en File/Export as PDF... o directamente en el botónde conversión a PDF de la barra de herra-mientas. Guardaremos el documento en/tmp/prueba.pdf.

Si intentamos editar el fichero directa-mente en Vim, veremos que es un archivobinario (el código PDF original comprimido),cuya edición “a mano” es imposible. Por tan-to, lo primero que haremos será cerrar el do-cumento en Vim y desde la línea de coman-dos descomprimirlo usando pdftk:

$ pdftk prueba.pdf outputabierto.pdf uncompress

Ahora, abierto.pdf sí será un fichero máseditable (alguna partes del mismo siguen enbinario, como por ejemplo, el tipo de letraTimes New Roman que en este caso el au-tor usó por defecto en OpenOffice para cre-ar el documento, y que se ha incluido dentrodel PDF)

En la parte inferior del documento vere-mos /Root 10 0 R, lo que nos indica que elprimer objeto que define nuestro PDF (queestá formado por distintos objetos o stre-

TALLER LINUX FICHEROS PDF

32 Número 66

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 unstring como %PDF-1.4.El cuerpo es una colección de objetos organizados en forma de árbol, quedescribirán la estructura de la página, las páginas en concreto y los elemen-tos que forman el contenido (texto, gráficos,...) de las mismas. Cada objetotiene tres componentes esenciales: un número, una posición fija en el ficheroPDF (offset) y su contenido.La tabla de referencias cruzadas permitirá a un parser de ficheros PDF (co-mo 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 en-trada en la tabla de referencias contiene básicamente un offset (desplaza-miento) para acceder al objeto en el documento y un flag que indicará si elobjeto está libre (puede ser reutilizado) u ocupado. Finalmente, la cola, que permite acceder rápidamente a las principales zo-nas del documento: contiene un puntero al comienzo de la tabla de referen-cias 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, quecontiene metainformación sobre el documento. Por tanto, podemos ver un fichero PDF como el conjunto de objetos que loforman: gráficos, texto, tipos de letra, anotaciones, etc. Como hemos indica-do, 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ónde cada objeto. Esto quiere decir que si editamos “a mano” un PDF y añadi-mos o borramos más contenido (es decir, no nos limitamos a sustituir una le-tra por otra sin cambiar el tamaño final del archivo), hay que reconstruir di-cha tabla o romperemos la estructura del documento, y probablemente nopodamos visualizarlo con ningún editor.Además, tras reconstruir la tabla (y los datos sobre el tamaño exacto de ca-da objeto) hay que acordarse de comprimir el resultado final. Todo esto esautomatizable usando el plugin para Vim desarrollado por Sid Steward, elmismo programador creador de la estupenda pdftk. De hecho, es descarga-ble desde la misma web de este paquete(ver Cuadro de Referencias).Este plugin nos ahorrará además la descompresión inicial del fichero PDForiginal. Es decir, cuando queramos editar un fichero PDF “de forma ma-nual”, teniendo previamente instalado el plugin pdftk para Vim, bastará conusar 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 elresultado final automáticamente.Para instalar el plugin, en la distribución Fedora Core por ejemplo, basta condescomprimir el mismo (suele estar comprimido con Zip bajo el nombrepdftk.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á elplugin pdftk y realizará las acciones anteriormente descritas.

Cuadro 1. Edición manual de un fichero PDF �

30-33 Taller (PDF) 7/4/06 13:53 Página 32

Page 32: Todo Linux 66

ams) es el número 10. Por tanto, buscare-mos dentro del contenido la línea 10 0 obj (ladefinición de todo objeto comienza con estepatró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 co-mienzan a definirse en el objeto 2 0.

Desde ahí podemos ver la construcción/Kids [1 0 R]. Si buscamos esta referencia (10 obj) veremos que incluye un enlace al con-tenido del PDF, usando la instrucción/Contents 4 0 R.

Siguiendo de nuevo dicho enlace (4 0obj) encontramos las etiquetas de los carac-teres que definen el contenido de nuestrodocumento. Es decir, <01>, <02>, <03>,<04>definirán los caracteres “Esto”; <05> el carác-ter espacio, <06> y <07> la palabra “es”, etc.Siguiendo este orden, vemos que la etiquetaque define nuestro carácter ‘p’ repetido es<0A>. Más adelante, en el objeto 7 0, se haceun mapeo entre la etiqueta de cada letra y sucódigo ASCII en hexadecimal. Así, vemosque la etiqueta <0A> corresponde al códigoASCII en hexadecimal 0x70, que en decimalequivale al código 112, o sea, la letra p minús-cula (ver tabla ASCII en lista de referencias)

Volviendo al objeto 4 0, vemos que el es-pacio en blanco tiene la etiqueta <05>.Vamos a sustituir nuestra letra p repetida(con etiqueta <0A>) por un espacio en blan-co (etiqueta <05>). Una vez hecho, y trasguardar el fichero (:wq en Vim), podremosabrirlo (no hace falta comprimirlo previamen-te) con un visor de PDFs como Evince, ycomprobar que efectivamente el resultadoes el correcto.

El lector se preguntará del porqué de lasustitución de un carácter por otro en lugarde borrar directamente el carácter ‘p’ repeti-do (para una explicación detallada verCuadro 1 de la página anterior).

CONCLUSIONESEl mundo Linux tiene una asignatura pen-diente en cuanto a la disponibilidad de herra-mientas de edición de ficheros PDF. Tal y co-mo hemos visto, hay varias aplicaciones quepermiten realizar ciertas tareas de edición,pero aún estamos muy lejos de la potenciaque ofrece Adobe Acrobat. Por ejemplo, noexiste ninguna aplicación en Linux libre o depago que permita borrar una palabra de unPDF, salvo que lo hagamos “a pelo”, es decir,editando el contenido del fichero PDF desdeun editor de textos, tal y como hemos co-mentado, y aún en este caso, el texto no seajustará al espacio disponible en la página deforma automática. Es decir, tenemos herra-

mientas pero son bastante primitivas, y des-de luego no de nivel empresarial.Esperemos que anuncios como el del pasa-do 23 de febrero por parte de Bruce Chizen

(consejero delegado de Adobe) en el queafirmaba que Adobe desarrollará una ver-sión de Acrobat para Linux, no caigan en sa-co roto y pronto veamos los resultados. ■

TALLER LINUXFICHEROS PDF

33Número 66

�� Multivalent PDF Tools (http://multivalent.sourceforge.net/) es un conjuntode herramientas para la manipulación de documentos PDF. Su objetivo esofrecer parte de la funcionalidad de Adobe Acrobat tanto para Linux, comopara Windows y Mac OS X. Entre otras, incluye herramientas para la compre-sión, descompresión, extracción de información (metadatos), extracción depáginas, mezcla de páginas, encriptación y desencriptación, validación y ex-tracción de texto de un fichero PDF. Además, el proyecto Multivalent ha desa-rrollado un navegador de documentos PDF que permite añadir comentariossobre el mismo. Éstos no se incrustan en el PDF, sino que se guardan comoficheros de texto de Multivalent, o en un servidor de anotaciones si queremoscompartirlos. Cuando volvamos a abrir el mismo PDF con Multivalent, se car-garán los comentarios que hayamos añadido previamente.

�� MbtpdfASM (http://thierry.schmit.free.fr/dev/mbtPdfAsm/enMbtPdfAsm2.html) Tras este enrevesado nombre se esconde unapotente herramienta open source de manipulación de ficheros PDF, similara pdftk pero con novedades que ésta última herramienta no permite. Dosde las principales son la inserción de outlines (o tabla de contenido interac-tiva) y la posibilidad de numerar las páginas de un PDF insertando en la par-te inferior de todas ellas el número de página correspondiente. Para ins-talarla, tras descargar el código fuente, lo descomprimiremos y compilare-mos con una simple orden make.

Veamos un ejemplo de utilización de mbtpdfASM para numerar las páginas del do-cumento 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 delfichero destino. Con -n se da la orden de numerar el documento. Laopción -NOz (donde z es un número entero positivo), indica que la nume-ración debe empezar desde ese número z, y en concreto en la posición(200,40) (opciones -Nx200 y -Ny40 respectivamente). Existen otrosmuchos parámetros para afinar en ésta y otra orden dentro dembtpdfAsm. Recomendamos al lector que consulte la ayuda en la propiaweb de la herramienta (la ayuda online que se incluye no está actualizada,siendo la web la referencia más actual).

Cuadro 2. Otras herramientas de manipulación dedocumentos PDF �

�� 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, afirman-

do 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

Referencias �

30-33 Taller (PDF) 7/4/06 13:53 Página 33

Page 33: Todo Linux 66

TALLER LINUXLIVECD

Crea tu LiveCDcon Ubuntu

>>>

34 Número 66

JORDI MASSAGUER

[email protected]

n LiveCD puede crearse enunas horas. En este talleraprenderemos cómo.

Una de las principales ventajas del soft-ware libre es precisamente eso, que es libre.Podemos modificarlo y redistribuirlo en algu-nos casos casi sin esfuerzo, comparado conlo que costaría implementarlo desde cero.Uno de esos casos es crear un LiveCD basa-do en una distribución Linux ya existente.

La complejidad de crear un LiveCD ba-sado en otro es despreciable si lo compara-mos con desarrollar todo un sistema opera-tivo, junto con sus aplicaciones, y ejecutabledesde un CD. Lo más complicado es sabercómo, pues como ocurre muy a menudocon el software libre, tenemos el código pe-ro la documentación es escasa.

Cuando superamos este obstáculo, cre-ar un LiveCD personalizado se convierte enuna tarea muy simple, que podemos realizaren cuestión de horas.

¿No resulta despreciable invertir unashoras comparado con los muchos años quetardaríamos en crear un sistema operativocompleto desde cero?

PREREQUISITOSLas instrucciones aquí presentes son para uti-lizarlas en un sistema Linux. No hay que con-fundir el sistema host con el target. El primeroes el sistema donde trabajamos, y el target elque queremos crear. Este LiveCD en concre-to se ha creado desde un host con una distri-bución SUSE, aunque en un proyecto anteriorse creó desde un Ubuntu. No obstante, el tar-get va a ser un Linux basado en esta última.En realidad, no importa qué distribución seuse como host mientras tenga los prerequisi-tos que explicamos a continuación.

Crear una ISO requiere de mucha memo-ria. En su ausencia, se utiliza memoria virtual, osea, memoria swap. No hay ninguna formulamágica, pero sí algunos casos representati-vos. Por ejemplo, si se dispone de 128 MB deRAM, 5 GB de swap serían suficientes.

Si no contamos con memoria suficiente,siempre puede crearse un fichero y utilizarlocomo swap. Para ello, se haría lo siguiente(como root):

dd if=/dev/zero of=/myswapcount=10000000mkswap /myswapswapon /myswap

Para construir un LiveCD se han utilizadolas siguientes utilidades:�� rsync�� cloop-utils (2.00)�� mkiso (2.01.7)

Se necesita también un kernel superior oigual al 2.6.9-7. Finalmente, se trabaja desdeuna shell sin locale, por lo que debería abrir-se un shell y ejecutar:

export LC_ALL=C

Y ya estamos a punto para empezar.

BASE DE NUESTRO LIVECD Tal y como hemos avanzado, nuestroLiveCD se basa en uno de la distribuciónUbuntu, concretamente la versión 5.10.

Obviamente, lo primero que se necesitaes una copia de éste. Puede descargarsede 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 elcomando mount:

sudo mount Ubuntu_5_10_i386.isomnt -o loop

A continuación, se copia todo en un nue-vo directorio, por ejemplo isosTar, usando lautilidad rsync:

mkdir isosTar && rsync -a/media/Ubuntu_5_10_i386.iso isosTar/

En este momento, la base de nuestroLiveCD donde vamos a trabajar ya está cre-ada, por lo que puede desmontarse la ISO, eincluso eliminarla:

sudo umountrm Ubuntu_5_10_i386.iso

Para personalizar esta base, la estrategiaa seguir es modificar el contenido del direc-torio isosTar, para luego volver a crear unaISO, pero con nuestras modificaciones.

ELIMINANDO LOS PROGRAMAS DEWINDOWSY empecemos ya con nuestra personaliza-ción. Lo primero será eliminar los programaspara Windows, que se encuentran en el di-rectorio programs, así como la informaciónde autoejecución (autorun):

sudo rm -rf programs/sudo rm start.*sudo rm autorun.inf

CAMBIANDO LA BOOTSPLASH Continuemos personalizando nuestroLiveCD, cambiando la primera imagen,bootsplash, que es aquella que vemos al ini-ciarlo. Esta imagen tiene unas característicasmuy especiales: un número de colores limi-tado, una resolución y un formato concreto.

En www.studiopress.es se dispone deuna imagen de dieciséis colores, de600x200 y en formato PPM: todolinux.ppm.Esta imagen fue creada con GIMP (progra-ma libre de dibujo y retoque fotográfico).Podríamos crear cualquier otra.

Esta ima-gen tiene loscolores y unaresoluciónadecuados,pero no el for-mato. El ade-cuado es elRLE. Para ello,se hace uso dela utilidad ppmtolss16 de la siguiente manera:

U

La primera imagen tendrá característicasespeciales de resolución y de formato.

Crear un LiveCD personalizado se convierte en una tareamuy simple, que podemos realizar en cuestión de horas

34-36 Taller (LiveCD) 7/4/06 12:37 Página 34

Page 34: Todo Linux 66

ppmtolss16 < todolinux.ppm >splash.rle

A continuación, copiamos la nueva bo-otsplash en nuestra personalización:

sudo cp splash.rleisosTar/isolinux/splash.rle

SISTEMA DE FICHEROS RAÍZ EN EL CDCambiando la bootsplash hemos personali-zado aspectos externos del LiveCD, es de-cir, que no tienen que ver con el sistemaLinux instalado en el mismo. Este sistemacon su gestor de ventanas GNOME, susaplicaciones OpenOffice, GIMP, etc., está to-do en un solo fichero. El citado archivo con-tiene un jerarquía de directorios completa,es decir, la jerarquía de directorios delLiveCD, donde está todo instalado, y ade-más, comprimido. Para poder descompri-mirlo y ver su contenido se necesitan las utili-dades cloop.

extract_compressed_fsisosTar/casper/filesystem.cloop >extracted_fs

Este proceso es costoso en CPU y me-moria, por lo que hay que tener un poco depaciencia.

Una vez terminada la extracción, se pue-de montar el fichero, igual que se hizo con laISO:

sudo mount extracted_fs mnt -o loop

Si se lista su contenido, puede observar-se una jerarquía de directorios típica deLinux:

> ls mntbinbootcdromdevetchomeinitrd(...)

Una vez tenemos la jerarquía de directo-rios y los ficheros del sistema Linux, proce-demos a la siguiente personalización: añadirprogramas.

AÑADIENDO PROGRAMASPara añadir programas se emplea la utilidadchroot, que nos permite cambiar la raíz delsistema y situarla en mnt. De esta forma, setrabaja con el sistema de ficheros del CD.

sudo chroot mnt

Una vez cambiada la raíz, se podría usarapt-get para instalar programas en el siste-ma de ficheros del CD. De la misma formase podrían eliminar.

No obstante, instalar y eliminar progra-mas con apt-get no funcionará si no se con-

figuran antes ciertos aspectos del sistema.Para ello, debe restaurarse el sistema raízescribiendo:

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/

Y, por último, editar los repositorios deapt (Listado 1).

Ahora sí, ya puede ejecutarse chroot:

sudo chroot mnt

Y usar apt:

apt-get updateapt-get install anjuta apt-get install eclipse-sdkapt-get install eric3apt-get install qt4-dev-toolsqt4-doc

PERSONALIZANDO EL ASPECTOGRÁFICOInstalados los programas, vamos a personali-zar el fondo de escritorio y la splash-screen deGNOME. Este escritorio nos proporciona unautilidad, gconftool2, que informa de dónde es-tán situadas las imágenes que buscamos.

Si se ejecuta aún con el sistema raíz enmnt, se nos informa, entre otras cosas, de loque buscábamos:

TALLER LINUXLIVECD

35Número 66

Cuando descargamos un archivo tan grande como es una ISO de un CD, pue-den producirse errores. Para asegurarnos que éste no sea el caso, podemosdescargar la suma de comprobación md5, que ha sido previamente calculadapor los distribuidores de la ISO para compararla con la que, después de des-cargar la ISO, calcularemos nosotros. Si las dos sumas son iguales, podemosasegurar que se ha descargado bien. Por ejemplo, para la ISO del LiveCD deUbuntu 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.

Comprobación de la descarga de una ISO �

En el CD instalaremos, entre otras, la aplicación Anjuta.

echo “deb http://archive.ubuntu.com/ubuntu breezy main restricted universe multiverse” > mnt/etc/apt/sources.listecho “deb-src http://archive.ubuntu.com/ubuntu breezy main restricted universe multiverse” >> mnt/etc/apt/sources.listecho “deb http://security.ubuntu.com/ubuntu breezy-security main restricted” >> mnt/etc/apt/sources.listecho “deb-src http://archive.ubuntu.com/ubuntu breezy-security main restricted” >> mnt/etc/apt/sources.list

Listado 1. Repositorios de apt

34-36 Taller (LiveCD) 7/4/06 12:37 Página 35

Page 35: Todo Linux 66

gconftool-2 --recursive-list //desktop/gnome/background:primary_color = #4E3E29secondary_color = #7F7F7Fcolor_shading_type = solidpicture_filename = /usr/share/backgrounds/warty-final-ubuntu.pngpicture_options = stretchedpicture_opacity = 100draw_background = true

/apps/gnome-session:/apps/gnome-session/options:show_splash_screen = truesplash_image =splash/ubuntu-splash.pnglogout_option = Logoutauto_save_session = falselogout_prompt = trueallow_tcp_connections = false

Nuestra personalización consistirá ensustituir mnt/usr/share/backgrounds/warty-final-ubuntu.png por nuestra imagen,todolinux.png, y /mnt/usr/share/pixmaps/splash, por todolinux_splash.png. Ambasimágenes están disponibles en nuestra web.Para poder acceder a ellas debe restaurarseel sistema raíz:

exitumount mnt/sysumount mnt/proccp todolinux.png mnt/usr/share/backgrouns/warty-final-ubuntu.pngcp todolinux_splash.pngmnt/usr/share/pixmaps/splash

Y con eso terminamos nuestras perso-nalizaciones. Ya solo nos resta volver a em-paquetarlo todo y crear una nueva ISO.

CREANDO EL SISTEMA DE FICHEROSTal y como hemos dicho, ya solo queda vol-ver a empaquetarlo todo. El primer paso se-rá desmontar mnt:

sudo umount mnt

Para crear el sistema de ficheros compri-mido ejecutamos:

sudo create_compressed_fsextracted_fs 65536 >filesystem.cloop

Paciencia, porque este proceso requierede CPU y memoria, por lo que puede tardarbastante. Una vez finalizado, se pone de re-greso al CD:

sudo cp filesystem.cloop

isosTar/casper/filesystem.cloop

CREANDO EL CDYa tenemos todo en el CD, ya solo nos faltael último paso antes de crear la nueva ISO:crear la suma de comprobación md5:

sudo rm isosTar/md5sum.txtcd isosTar(find . -type f -print0 | xargs -0md5sum > ../md5sum.txt)sudo mv ../md5sum.txt .

Finalmente, el momento de crear la nue-va ISO ya ha llegado. Para ello, se utiliza la uti-lidad 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, pe-ro aquí no termina todo. Hay que probarla,encontrar lo que no nos gusta, lo que nofunciona como esperábamos, o quizá algo amejorar, volver a realizar todo el proceso, lle-gar a este punto, probarla una vez más, y asítantas veces como haga falta.

PROBANDO EL CDVamos, pues, a probar la ISO que hemoscreado quemándola en un CD. Para ello he-mos escogido el programa K3b, que permi-te llevar a cabo esta operación.

Esta forma de testearla puede resultarmuy cara, ya que por cada prueba debemostirar un CD. Otra alternativa, si disponemosde suficiente memoria, es utilizar una máqui-na virtual. La escogida en este caso esQemu:

qemu -cdrom todolinux.iso -boot d

Si no se dispone de conexión a la red, esmejor deshabilitarla. Para ello, puede ejecu-tarse Qemu de la siguiente forma:

qemu -cdrom todolinux.iso -boot d-nics 0

Utilizar una máquina virtual permite reali-zar todas las pruebas que queramos sinquemar CDs. El único inconveniente son losrecursos requeridos para utilizar una maqui-na virtual, pues se están ejecutando dos sis-temas a la vez en un solo ordenador.

Tal y como dijimos en el apartado ante-rior, éste no es el final. En realidad, es el prin-

cipio. Es cuando empezamos a personalizarde verdad nuestro LiveCD, utilizando todo loexplicado hasta aquí, y haciendo las pruebasque hagan falta hasta conseguir lo que bus-camos.

CONCLUSIÓNAhora ya estamos preparados para crear to-dos los LiveCD que se nos ocurran. Éstostienen muchas aplicaciones y ventajas queahora es el momento de analizar.

Entre esas ventajas, un LiveCD nospermite demostrar una aplicación, es de-cir, hacer una demo de la misma que po-demos haber programado nosotros, o dela que queremos hacer una curso de for-mación, sin tener que instalar nada, y enun entorno perfectamente conocido ycontrolado, en lo que a instalación y confi-guraciones se refiere. Esto nos ahorra mu-chos problemas, ya que nuestro progra-ma no va a ejecutarse con distintas biblio-tecas, o compilado con diferentes opcio-nes, o con distintos paths o variables deentorno, etc.

Otro punto a favor de disponer de eseentorno en un CD-ROM es que podemosutilizar aplicaciones sin instalarlas, como porejemplo herramientas para recuperar siste-mas, en sistemas donde no queremos o nopodemos instalar (por no tener el passwordde superusuario, por ejemplo).

Una ventaja derivada del hecho de queun CD-ROM no puede ser reescrito, es quees imposible tener problemas de seguridad(hackers, virus) en ese sistema, pues cadavez que reiniciamos, volvemos al contenidooriginal del CD.

Evidentemente, si tenemos un virus enun fichero MSWord que guardamos en unstick usb, ese fichero seguirá infectado,pues un LiveCD no es la panacea. Tambiénnotar que el ordenador no puede ser afecta-do por un hacker, pero sí que podría provo-car una vulnerabilidad en la red donde seuse, y esto aprovecharse para entrar en otroordenador.

Finalmente, decir que una de sus princi-pales ventajas derivadas de que no se ins-tale, puede ser a la vez su peor inconve-niente. Solo tenemos que imaginar un orde-nador que deba configurarse de una formadistinta a la que viene por defecto. Eso de-berá repetirse cada vez que se reinicie elequipo.

Llegados a este punto, conocedores yade la técnica y de sus principales ventajas einconvenientes, solo nos resta hacer tantosLiveCDs como creamos necesarios. Y quizáatreverse a más, y realizar una personaliza-ción de una distribución, aunque eso ya esotra historia. ■

TALLER LINUX LIVECD

36 Número 66

34-36 Taller (LiveCD) 7/4/06 12:37 Página 36

Page 36: Todo Linux 66

ada vez se oye hablar más ymás de la firma digital, pero¿cómo usarla en las aplica-

ciones Linux? En concreto, ¿cómopodemos firmar digitalmentedocumentos OpenOffice? ¿Cómomandar mensajes con firma digitaldesde Thunderbird?

El proceso es sencillo: solicitamos uncertificado digital y a partir de ahí podremosusarlo para firmar digitalmente nuestrosdocumentos. Bien, ésta es la teoría, peroen la práctica, probablemente la gran ma-yoría de los usuarios Linux nunca ha proba-do en su sistema las posibilidades que lacertificación digital nos ofrece. En este tallertrataremos de dar respuestas sencillas pa-ra aquellos usuarios que no quieran preo-cuparse de los tecnicismos y detalles so-bre cómo funciona internamente la firmadigital, sino que únicamente quieran cono-cer cómo usarla en la vida real y con el sis-tema del pingüino. Vamos allá.

¿PARA QUÉ NOS SIRVE LA FIRMADIGITAL?Autenticación, autorización, verificación.Las tres palabras mágicas.

Mediante la autenticación (elementode seguridad básico) podremos confirmarla identidad de una persona, máquina ocompañía. Cuando un autor firma digital-mente un documento, está marcándolounívocamente, de tal forma que podamossaber con absoluta seguridad que elusuario que lo firmó es de verdad quiendice ser.

La autenticación es el paso previo a laautorización. Una vez que la identidad deun sujeto está reconocida, cualquier aplica-ción podría permitir ejecutar o no un con-junto de operaciones en función de dichaidentidad. Por ejemplo, supongamos que alabrir una hoja de cálculo en OpenOffice laaplicación nos alerta de que dicha hoja decálculo posee macros y que, por tanto, eje-cutar estas macros supondría un posibleproblema de seguridad. También nos pue-de indicar que la macro está firmada porcierta empresa o desarrollador. En funciónde quién haya firmado la macro, podríamosindicarle a OpenOffice que confiara en lamisma; es más, podríamos indicarle que, apartir de este momento, cada vez que seencuentre con macros firmadas por esta

misma empresa o desarrollador confíe enellas, y no nos moleste con advertenciasde seguridad.

Otro ejemplo: podríamos usar la firmadigital para autenticarnos en un sitio webprotegido. Por ejemplo, para autenticar-nos en la web de nuestra empresa, ydependiendo de quiénes seamos, que elsistema nos permita acceder a ciertascarpetas. Alguien puede pensar que pararealizar esto bastaría únicamente con dis-poner de un password. Y es cierto, pero elnivel de seguridad es mucho mayor siademás de la clave, el sistema nos pidealgún requisito más (el certificado digital).Es decir, nos pide no solo algo que sabe-mos (el password), sino también algo quetenemos (el certificado digital). Además,éste puede guardar internamente másinformación sobre nosotros: nombre,apellidos, DNI, organización a la que perte-necemos, cargo, e-mail, etc., así comoinformación sobre el propio certificado y laentidad emisora (Autoridad deCertificación), como son la fecha de emi-sión, fecha de caducidad, nombre de laentidad emisora, etc.

Finalmente, otra de las razones de usode la firma digital es la posibilidad de verifi-car la integridad de un documento.Cuando creemos un documento y lo fir-memos digitalmente, ambos elementosestarán unidos de por vida siempre quese mantenga la integridad del documento.Es decir, si el documento firmado digital-mente es modificado lo más mínimo, lafirma digital se perderá al intentar guardaresta copia modificada.

Una vez vistas algunas de las utilida-des de la firma digital, tal y como indicába-mos al comienzo, no vamos a pararnos adiscutir los detalles técnicos de la imple-mentación, sino que nos centraremos enel uso bajo Linux de esta tecnología.

FIRMA DIGITAL EN DOCUMENTOSOPENOFFICE.ORG Para firmar un documento digitalmente, esnecesario poseer una clave personal quenos identifique unívocamente, es decir, el

certificado. Esta clave personal se guarda-rá en nuestro ordenador como una combi-nación de una clave privada, que debe per-manecer en secreto, y una clave pública,que será la que añadamos a nuestros do-cumentos para firmarlos. Realmente, dis-tinguimos dos tipos de certificados digita-les: los certificados software y los certifica-dos hardware. Los primeros son ficheros(que contienen nuestra clave pública y pri-vada) que guardaremos directamente enel disco duro de nuestro ordenador, mien-tras que los certificados hardware se alma-cenarán en un dispositivo especial comouna tarjeta, un token USB, etc.

Podemos conseguir un certificadodigital a través de una autoridad de certifi-cación (AC) de pago, como por ejemplo, anivel internacional, Thawte, Verisign oGlobalSign o, a nivel nacional, Camerfirma,la Fábrica Nacional de Moneda y Timbre,ipSCA, etc. También podemos obtenerlosgratuitamente a través de organizacionescomo Cacert.org.

Para que OpenOffice reconozca nues-tro certificado digital y nos permita firmardigitalmente los documentos, es necesa-rio haber cargado previamente dicho cer-tificado en nuestro sistema ¿Cómo? A tra-vés de cualquiera de estas tres aplicacio-nes: Thunderbird, Mozilla Suite o Firefox.

Por ejemplo, para cargar nuestro certi-ficado digital en la última versión de Firefox(ver Figura 1), seleccionaremos la opción

Firma digital en Linux

TALLER LINUXFIRMA DIGITAL >>>

37Número 66

C

JUANAN PEREIRA

[email protected]

Una de las razones de uso de la firma digital es laposibilidad de verificar la integridad de un documento

Figura 1. Cómo importar un certificado digital en Firefox.Pulsaremos en “View certificates”, y luego en “Import”.

37-40 Taller (Firma Digital) 7/4/06 12:37 Página 37

Page 37: Todo Linux 66

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 quecontiene nuestro certificado digital (nues-tros ejemplos se basan en certificadosdigitales software). Para incluirlo en el ges-tor de certificados, Firefox nos pediráintroducir la clave de activación, que noshabrá facilitado nuestra CA.

OpenOffice seleccionará automática-mente el certificado digital que tengamosinstalado en cualquiera de las aplicacionesanteriormente mencionadas. Hay quehacer notar que los tres programas(Thunderbird, Mozilla, Firefox) soportanperfiles de usuario (diferentes configura-ciones para cada usuario), por lo que sihemos creado algún perfil y nuestro certi-ficado digital está cargado en un perfilespecífico, hay que hacérselo saber aOpenOffice, definiendo la variable deentorno MOZILLA_CERTIFICATE_FOLDER.Por ejemplo, si el certificado está cargadoen Firefox en el perfil por defectoqn4u061v.default, la orden sería la siguien-te:

$ export MOZILLA_CERTIFICATE_FOLDER=~/.mozilla/firefox/qn4u061v.default

Para que no haya que acordarse cadavez de crear la variable de entorno ante-rior, es recomendable incluirla en el ficherode configuraciones personales .bashrc.

Una vez cargado el certificado digitaldesde Firefox, ya podremos firmar docu-mentos en OpenOffice. Veamos cómo.Para ello, crearemos un nuevo documen-to (o abriremos uno ya existente) enWriter. Tecleamos algo de contenido ygrabamos el fichero (este paso es impor-tante, ya que no podremos firmar digital-mente nada si previamente no lo hemosgrabado). Ahora, seleccionamos la opciónDigital Signatures del menú File (verFigura 2). Desde aquí, pulsando en el

botón “Add...”, podremos seleccionar laidentidad con la que firmaremos el docu-mento. En la Figura 3 observamos cómohay un único certificado disponible parafirmar este documento (el del autor deeste artículo).

Desde esta misma ventana, pulsandosobre el certificado, podremos ver losdetalles del mismo (Figura 4)

Una vez seleccionado el certificado yfirmado el documento, veremos una ven-tana con un mensaje como el de laFigura 2. Además, si nos fijamos en eldocumento recién firmado, podremosobservar 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 lafirma digital que contiene). En el título deldocumento Writer veremos también lapalabra Signed, indicando que el docu-mento efectivamente está firmado (verFigura 5).

LA FIRMA DIGITAL SE PERDERÁ ANTEUN INTENTO DE MODIFICACIÓNHagamos un experimento para compro-bar cómo se perdería la firma ante unintento de modificación de un documen-to firmado digitalmente. Para ello, con eldocumento recién firmado abierto, modi-ficamos el texto, añadiendo lo que se nosocurra (por ejemplo, un simple espacioen blanco). En cuanto queramos grabarlos cambios, OpenOffice nos advertiráque el documento ha sufrido cambios y

que, por tanto, la firma original se perde-rá. No es posible modificar un documen-to firmado digitalmente y mantener lafirma original.

FIRMANDO MACROSTal y como hemos comentado en los pri-meros ejemplos, es posible firmar digital-mente una macro desarrollada paraOpenOffice. El objetivo es ofrecer al usua-rio garantías de que la macro está progra-mada por una organización o persona deconfianza (que demuestra ser quien diceser firmándola digitalmente). El usuariopodrá indicar a OpenOffice que a la horade ejecutar macros contenidas en undocumento, adopte una política de segu-ridad alta, de tal forma que solo ejecuteaquellas que han sido firmadas digitalmen-te por alguien de confianza. Veamoscómo hacerlo. Supongamos que abrimosun documento Word o Calc que contieneuna macro firmada digitalmente. Al hacer-lo, nos encontraremos con un mensaje dealerta como el de la Figura 6. Si nos fija-mos, podremos ver que el mensaje nosindica que la macro ha sido firmada por“Juan Antonio Pereira” y hay un botón dis-ponible para ver más información sobredicha firma digital. Una vez examinada lafirma, y tras reconocer al firmante comoalguien en el que podríamos confiar deaquí en adelante, se lo haremos saber aOpenOffice marcando la casilla Alwaystrust macros from this source de esamisma ventana.

Por defecto, cuando OpenOffice seencuentra con una macro de una persona

TALLER LINUX FIRMA DIGITAL

38 Número 66

Figura 5. Detalles de la firma de un documento Writer.

Figura 6. Alerta de OpenOffice ante el intento de ejecución deuna macro.

Figura 2. Ventana de confirmación de firma digital correcta yadición de nuevas firmas.

Figura 3. Seleccionando un certificado con el que firmar.

Figura 4. Detalles de un certificado.

37-40 Taller (Firma Digital) 7/4/06 12:37 Página 38

Page 38: Todo Linux 66

que no hemos indicado que sea de nues-tra confianza, nos alertará con un mensa-je. Podemos señalar que solo se ejecutenmacros de entidades o personas en lasque confiamos (y que no nos moleste conmensajes ante otras de dudosa proce-dencia), estableciendo un nivel de seguri-dad alto. Para ello, pulsaremos en Tools/Options/Security, y en el botón “MacroSecurity”. Aquí marcaremos nivel de segu-ridad alto (high) (ver Figura 7). En estamisma ventana podemos pulsar en lapestaña “Trusted Sources” para compro-bar cuáles son las personas o entidadesen cuyas macros firmadas confiamosactualmente.

Lo visto hasta ahora es el procedi-miento de actuación ante macros firma-das digitalmente, pero ¿cómo podemosfirmar nosotros mismos, como desarrolla-dores, nuestras propias macros? Paraesta tarea debemos de tener a la vista elcódigo fuente de la macro en cuestión,pulsando en Tools/Macros/Organizemacros/OpenOffice.org Basic... Seleccio-namos la macro a firmar y pulsamos elbotón “Edit”. Ahora seguiremos el mismocamino que para firmar un documentoWriter, es decir, pulsaremos en File/DigitalSignatures... y añadiremos la firma digitalasociada a alguno de nuestros certifica-dos digitales. El resultado podemos verloen la Figura 8.

AUTENTICACIÓN DEL CLIENTE WEB Los certificados digitales también puedenusarse para autenticar al cliente frente aun servidor web. Un ejemplo: suponga-mos que queremos acceder a la web dela Agencia Estatal de AdministraciónTributaria para consultar nuestras deudascon el fisco. La web de la agencia, dispo-nible en www.aeat.es, contiene ciertasmedidas de seguridad, basadas en el usode certificados digitales por parte delcliente. Así, si pulsamos en Oficina virtual /Consulta de Deudas, el mensaje es claro:“Usted necesita disponer de un certificadode identidad de usuario para acceder aestas opciones”. Es decir, debemos dehaber instalado previamente en nuestronavegador, tal y como hemos explicadoen los párrafos anteriores, un certificadodigital; en concreto, no un certificado cual-quiera, sino uno emitido por una AC en laque la Agencia Tributaria confía y por con-siguiente autoriza.

La lista completa de autoridades decertificación autorizadas por la AEAT estádisponible aquí: http://www.aeat.es/prestelem/certauto.htm. Por tanto, alintentar acceder al apartado Consulta dedeudas, si disponemos de un certificadoadecuado, nuestro navegador nos mos-trará una ventana como la de la Figura 9,indicándonos que elijamos el certificadoválido de todos los posibles.

Normalmente solo tendremos uno, ypara evitar el paso anterior es posible indi-car en las opciones de nuestro navegadorque se autoseleccione. En Firefox, porejemplo, esta opción está disponible enEdit / Preferences / Advanced / Security /Certificates. Ahí pulsaremos “Select oneautomatically” si queremos que Firefox au-toseleccione el certificado de cliente cadavez que un servidor web nos pida identifi-cación, o “Ask me every time”, si quere-mos seleccionarlo manualmente.

No debemos confundir el certificadodigital de cliente, con el certificado de ser-vidor seguro. Cuando nos conectamos aun servidor seguro (protocolo HTTPS),éste se identificará y cifrará las comunica-ciones usando un certificado digital deservidor. Todo esto será transparente alusuario sí, y solo sí, el certificado digital deservidor seguro ha sido emitido por unaAutoridad de Certificación en la que nues-tro navegador confía. Es decir, está inclui-do en la pestaña “Authorities” del gestorde certificados digitales de nuestro nave-gador (ver Figura 10). Es muy importanteque cuando compremos un certificado deservidor seguro, lo hagamos a una ACcuyos certificados de autoridad ya venganpreinstalados en los navegadores (Firefox,Internet Explorer, Opera...), pues en casocontrario, cuando un usuario entre ennuestra web segura recibirá un aviso delnavegador indicando que no dispone aúnde información sobre si debe confiar o noen dicha web, más en concreto en el cer-tificado emitido por una Autoridad deCertificación desconocida. Pero estemundo de los certificados digitales de ser-vidor es otro tema que podríamos abor-dar en un nuevo taller.

FIRMA DE MENSAJES DE CORREOPara finalizar, veamos uno de los usosmás extendidos de la firma digital. Nosreferimos a la firma de mensajes decorreo electrónico. En estas líneas expli-caremos cómo configurar Thunderbirdpara este menester. Hay que hacer notarque no es necesario disponer de un certi-ficado digital de una AC para firmar digital-mente un mensaje, es posible hacerlotambién mediante el uso de GPG, peroThunderbird está perfectamente prepara-do de serie para el soporte de firma digitalcon certificados digitales, y no así parafirma con GPG (siendo necesario instalarun plugin para esto último).

Para instalar el certificado digital enesta aplicación de correo, seguiremos uncamino similar al recorrido en Firefox: Edit/ Preferences / Security / View Certificates/ Import. Una vez importado el certificadode cliente, debemos de asegurarnos, pul-sando en la misma ventana, dentro de la

TALLER LINUXFIRMA DIGITAL

39Número 66

Figura 7. Establecer un nivel de seguridad alto para la ejecu-ción de macros.

Figura 8. Macro en OpenOffice.org firmada digitalmente.

Figura 9. Ventana de Firefox solicitando la selección de uncertificado para identificarnos como usuario válido.

Figura 10. Pestaña “Authorities” con los certificados digita-les de las Autoridades en las que confiamos.

37-40 Taller (Firma Digital) 7/4/06 12:37 Página 39

Page 39: Todo Linux 66

pestaña “Authorities”, que la AC de laque hemos obtenido el certificado es denuestra confianza y que, en concreto, lavalidamos como una AC que emite certifi-cados con los que poder firmar un men-saje de correo. Pincharemos sobre elnombre de la AC y luego en Edit. Obten-dremos una ventana como la de la Figura10 de la página anterior. Debemos asegu-rarnos de que hemos depositado nuestraconfianza en los certificados de dicha ACpara permitirnos firmar mensajes decorreo.

Una vez instalado el certificado, le indi-caremos a Thunderbird en qué cuenta decorreo electrónico queremos usarlo (loscertificados digitales van asociados a unacuenta de correo electrónico, como [email protected]. Solo podremos usarese certificado para firmar correos de esacuenta). El proceso es sencillo: pulsare-mos en Edit / Account Settings /. A conti-nuación seleccionaremos la cuenta decorreo asociada al certificado (en mi [email protected]) y desde ahí pulsa-mos sobre la opción Security. Dentro de lacaja “Digital Signing” elegiremos el certifi-cado adecuado pulsando en “Select...” yaceptaremos hasta salir de este cuadrode diálogo.

Para firmar un mensaje de correo elec-trónico con el certificado que acabamos deindicar, crearemos un nuevo mensaje (ase-gurándonos de que el emisor es el mismo

usuario que indica el certificado, en estecaso [email protected]) y cuando ha-yamos terminado, antes de enviarlo, pulsa-remos en Options / Security / Digitally signthis message (también disponible en la fle-chita de la parte derecha del icono Securityde la barra de herramientas, como se apre-cia en la Figura 11).

Para hacer pruebas, recomendamosal lector que se autoenvíe un mensaje decorreo electrónico firmado. Al recibirlo, elusuario verá el icono de un lápiz entero enla parte derecha de la cabecera del men-saje, indicando que el mensaje está firma-do y se reconoce la firma (disponemos dela clave pública del usuario en nuestroalmacén de certificados digitales). Si notuviéramos la clave de este usuario, elicono del lápiz aparecería roto.

CONCLUSIONESLa certificación digital aún sigue siendo unmundo desconocido para el usuariomedio, pero cada día más y más perso-nas se ven en la necesidad de hacer usode esta tecnología que poco a poco se vaconsolidando. La gran mayoría de lasautoridades de certificación solo disponende información para instalar, configurar yusar certificados digitales en plataformasWindows, pero como hemos visto en estetaller, los sistemas operativos Linux y susaplicaciones están perfectamente prepa-radas para la firma digital. Esperemos quecuando el DNI digital se implante, las apli-caciones Linux permitan hacer uso delmismo para firmar nuestros documentose identificarnos como usuarios válidosante terceros. ■

TALLER LINUX FIRMA DIGITAL

Figura 11. Desde el icono Security podemos indicar nuestraintención de firmar digitalmente un mensaje en Thunderbird.

Figura 12. Configuración de una cuenta de correo para per-mitir mensajes firmados digitalmente.

37-40 Taller (Firma Digital) 7/4/06 12:37 Página 40

Page 40: Todo Linux 66

l uso conjunto de los contro-ladores oficiales de NVIDIA ylas herramientas de overcloc-

king como NVClock permite aumen-tar las velocidades predeterminadasde la memoria y el procesador de latarjeta gráfica para acelerar los jue-gos y aplicaciones tanto en 2D co-mo en 3D.

El overclocking ha estado ligado a la his-toria de los ordenadores desde su origen, yaque permite conseguir velocidades muy su-periores a las ofrecidas por los fabricantespara sus productos, especialmente en losmicroprocesadores y tarjetas gráficas. Estatécnica acelera el funcionamiento de los pro-gramas y su rendimiento, siendo su principaldesventaja el sobrecalentamiento que pro-duce, que puede originar desde cuelgues delequipo a chips quemados e inutilizados.

A pesar de este problema, si se utilizanlas herramientas adecuadas a velocidadesno excesivas, probando en pequeños ran-gos un tras otro hasta producir efectos ne-

gativos en el sistema (este factor indica quesi se sigue elevando es posible quemar latarjeta), no representa ningún problema físi-co y vamos a poder alcanzar velocidadesmás elevadas que incluso con chips supe-riores. Como precaución, no es recomenda-ble nunca aumentar en un valor mayor del25 por ciento ninguna de las frecuencias.

Por último, debemos saber que tanto lasfrecuencias del procesador gráfico como dela memoria no dependen exclusivamente delchip integrado, sino también del montador ola arquitectura interna, pudiendo darse el ca-so que en un mismo chip, por ejemplo unFX5200 con 128 MB de RAM, la GPU funcio-ne a 250 y en otro a 270, permitiendo mayo-res rangos en los aumentos de la frecuencia.

REQUISITOS PREVIOSAntes de comenzar a incrementar las veloci-dades predeterminadas de la tarjeta, es ne-cesario instalar los controladores oficiales deNVIDIA, disponibles en un único paquete pa-ra todas las distribuciones desde la página

http://www.NVIDIA.com en la secciónDownload drivers, donde seleccionamos laopción Graphics Driver->GeForce andTNT2->Linux IA32 para descargar el paque-te correspondiente, con extensión RUN.

Cuando realicemos la descarga y su insta-lación, podemos comprobar su funcionamien-to desde la consola de texto con el comando:

glxinfo

donde debemos encontrar la línea directrendering: Yes para verificar la existencia dela nueva aceleración gráfica.

NVCLOCKEs la herramienta más completa disponibleen Linux para realizar funciones de overcloc-king en cualquier tarjeta gráfica que incluyaun chip NVIDIA.

Entre sus múltiples características es po-sible destacar: cambio de las velocidades delprocesador y la memoria de las tarjetas, con-trol de temperaturas, ajuste de la velocidadde los ventiladores, cambio de la calidad deimagen mostrada y la posibilidad de utilizarseen la consola de texto o mediante un interfazgráfico para KDE y otro para GNOME.

Todos los comandos que ejecutemoscon NVClock deben realizarse como supe-rusuario root para que surtan efecto, y nodebe estar en ejecución ninguna aplicacióno juego que utilice OpenGL para funcionar.

Su página oficial se encuentra enhttp://www.linuxhardware.org/nvclock

■ INSTALACIÓN

El método más sencillo para instalarNVClock es mediante su código fuente, dis-ponible desde su página web en la secciónDownload. Para realizar la compilación esnecesario contar con GCC y G++ y las librerí-as de desarrollo de GTK2 y QT si queremosutilizar los interfaces gráficos.

Finalizada la descarga del programa, re-alizamos su compilación e instalación, paralo que descomprimimos el archivo:

tar xvzf nvclock0.8b.tar.gz

Overclocking en Linux detarjetas NVIDIA

TALLER LINUXNVCLOCK >>>

41Número 66

E

JORGE LÓPEZ

[email protected]

Tarjeta gráfica NVIDIA 6600.

NVClock.

Descarga de los controladores.

Modificar las velocidades prede-terminadas de la memoria y laGPU puede provocar daños irre-versibles en la tarjeta que no soncubiertos por ninguna garantía,siendo responsabilidad de cadausuario los cambios realizados.

Nota �

41-43 Taller (NVClock) 7/4/06 12:38 Página 41

Page 41: Todo Linux 66

Accedemos al nuevo directorio:

cd nvclock0.8b

y comprobamos que todas las librerías ne-cesarias estén disponibles con:

./configure

Al finalizar se muestra un mensaje conlas opciones que van a estar disponibles, se-parando tanto la herramienta de texto comolas gráficas de GTK2 y QT, por lo que compi-lamos la aplicación:

make

y por último instalamos los archivos y direc-torios en las carpetas correspondientes delsistema ejecutando:

make install

■ INFORMACIÓN DE LA TARJETA

Antes de realizar ningún cambio, es necesa-rio conocer los dos parámetros destinados aobtener las características de la tarjeta, es-tando disponibles:

nvclock -i

muestra toda la información disponible relacio-nada con la tarjeta, como su arquitectura, eje-cución multiproceso, cantidad y tipo de me-moria, 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: Mhzel modelo de tarjeta utilizado, su número deidentificación en el sistema, la velocidad de lamemoria y la velocidad de la GPU, y la uni-dad de procesamiento gráfico, siendo éstossus valores predeterminados que son losque podemos aumentar.

■ COMANDOS BÁSICOS

Existen un conjuntos de comandos básicospara trabajar con NVClock:

nvclock

muestra los parámetros disponibles paraejecutar en la aplicación.

nvclock -l

indica las opciones OpenGL existentes ennuestra tarjeta, y

nvclock -r

restaura las velocidades originales de la tar-jeta, ya que cualquier cambio que hagamosse queda activo automáticamente hastaque reiniciemos el servidor gráfico o ejecute-mos este comando.

Si contamos con más de una tarjeta grá-fica instalada en el ordenador, podemos es-pecificar cada una de ellas con:

nvclock -c númeroDeTarjeta

siendo númeroDeTarjeta un número enterodesde 1 hasta la última tarjeta que poseamos.

También podemos comprobar el co-rrecto funcionamiento de la aceleración grá-fica ejecutando el programa que se adjuntaen OpenGL con el comando:

glxgears

que muestra tres pequeñas ruedas girandoa gran velocidad, por lo que si su movimien-to es lento existe algún problema en la ace-leración.

Por último, al hacer las distintas pruebasserá frecuente que el servidor se quede col-gado, pudiendo reiniciarlo con la combina-ción de teclas “Ctrl+Alt+Backspace”.

■ VELOCIDAD DE LA GPU

Aumentar la frecuencia del procesador gráfi-co permite ejecutar un mayor número deinstrucciones por segundo, útil principal-mente para aquellos juegos o aplicacionesgráficas con un funcionamiento lento. Paramodificar la velocidad de la GPU utilizamos elcomando:

nvclock -n velocidad

siendo velocidad la nueva frecuencia quevamos a activar, siempre partiendo de losvalores ofrecidos por la ejecución de nvclock-s y en pequeños valores de aumento decinco en cinco hasta obtener los resultadosque queramos, o errores gráficos que indi-

quen su inestabilidad, como la detención delservidor gráfico o de programas de bajoconsumo como el comentado glxgears.

Por ejemplo, partiendo de un valor inicialde 300, la modificamos a 310 con:

nvclock -n 310

informándose en pantalla de los nuevos va-lores utilizados.

Si queremos hacer uso de una frecuencianueva mayor al 25 por ciento del total (acciónnunca recomendable), podemos utilizar elparámetro -f para forzarlo, por ejemplo con:

nvclock -f -n 400

para un valor de 400.

■ VELOCIDAD DE LA MEMORIA

En las tarjetas gráficas NVIDIA es en la me-moria donde mayor cuello de botella se sue-le originar, por lo que es la frecuencia quemayor rendimiento va a ofrecer, pudiendomodificarse en intervalos de 25 en 25 a par-tir del valor predeterminado en la tarjeta.

Podemos cambiar la velocidad con elcomando:

nvclock -m velocidad

Por ejemplo:

nvclock -m 550

para la frecuencia 550.

■ CONTROL DE LAS TEMPERATURAS

Para evitar daños físicos a la tarjeta es nece-sario comprobar a intervalos regulares detiempo la temperatura alcanzada por el pro-cesador gráfico, que podemos mostrar conel comando

TALLER LINUX NVCLOCK

42 Número 66

Información de la tarjeta instalada.

Advertencia en el cambio de la velocidad.

Aumento de la velocidad en el juego Slune.

41-43 Taller (NVClock) 7/4/06 12:38 Página 42

Page 42: Todo Linux 66

nvclock -i

en las líneas siguientes:--Sensor info --�� Sensor: GPU Internal Sensor�� GPU temperature: 65Csiendo necesario que en GPU temperature:65C nunca se superen los 80ºC para evitarque se queme.

Esta información únicamente está dispo-nible en aquellas tarjetas más recientes, conchip NV43, NV44 o NV47, por lo que si con-tamos con un modelo anterior que no indicasu temperatura actual, los intervalos deprueba deben ser lo menores posible.

■ VELOCIDAD DEL VENTILADOR

Si nuestro objetivo es reducir el ruido produ-cido por el ventilador incluido en la tarjeta grá-fica, NVClock permite adaptar su velocidad,siendo necesario forzar su uso, ejecutando:

nvclock -f -F valor

donde valor es un número comprendido en-tre 10 y 100, que indica el porcentaje permiti-do de su capacidad máxima.

■ HERRAMIENTAS GRÁFICAS

NVClock incorpora dos interfaces gráficospara facilitar su uso, uno para GNOME queiniciamos ejecutando:

nvclock_gtk

y otro para KDE ejecutando:

nvclock_qt

Ambasherramientasposeen unfunciona-miento simi-lar y nos vana permitir ob-tener unaamplia infor-mación de latarjeta gráficay modificarcada una desus opcionesinternas, como las frecuencias utilizadas.

La herramienta de GNOME destacadapor ofrecer opciones adicionales como elcambio en la calidad de la imagen y el moni-torizado de las temperaturas; mientras quela de KDE permite generar archivos de confi-guración para el servidor gráfico con la finali-dad de activar características como la salidade televisión.

■ OTROS COMANDOS

NVClock incorpora otros parámetros adicio-nales a los comentados:

nvclock -P

activa nuevas líneas de procesamiento me-diante el cambio del número de pipelines utili-zados, disponible únicamente en chips NV4X.

nvclock -S

modifica el brillo de la pantalla, con soporte pa-ra las tarjetas gráficas NV4X de los portátiles, y

nvclock -a opción=valor

cambia los valores utilizados por OpenGL pa-ra variar la calidad de la imagen mostrada,con opciones como el alisado de bordes, elsincronismo vertical o los filtros anisotrópicos,cuyos valores podemos ver ejecutando:

nvclock -q opción

CASO PRÁCTICOUno de los últimos juegos en aparecer paraLinux, Quake IV, requiere una tarjeta gráficade última generación para funcionar correc-tamente, por lo que se ha instalado un mo-delo con chip 6600, pero no se ha alcanza-do el rendimiento esperado, siendo necesa-rio realizar técnicas de overclocking hastaconseguirlo.

Al ejecutar:

nvclock -s

se muestra que las velocidades predetermi-nadas 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 elprocesador como la memoria, probándoloen un principio con:

nvclock -n 340 -m 550

El rendimiento se ha incrementado, perono lo suficiente, por lo tanto lo volvemos a au-mentar:

nvclock -n 370 -m 600

siendo ahora una velocidad suficiente, peroal comprobar la temperatura con el juego yla instrucción:

nvclock -i

se muestra un valor de 87ºC, excesivo parael chip, por lo que reducimos a un valor inter-medio, que es el que mejor se adapta a lacombinación de tarjeta y juego

nvclock -n 360 -m 580

CONCLUSIONESNVClock permite controlar todo el funciona-miento interno de una tarjeta gráfica NVIDIA.Destacan las posibilidades de aceleración dela misma para poder ejecutar juegos o apli-caciones a una velocidad similar a la alcanza-da con un modelo de tarjeta superior. ■

TALLER LINUXNVCLOCK

43Número 66

Interfaz gráfico en KDE.

Para realizar las pruebas de rendimiento mostradas en el taller se han utilizadodos 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 pro-cesador y en la memoria, desde las predeterminadas en las tarjetas, hasta losúltimos valores estables, mientras que en las restantes filas se indica la aplica-ción ejecutada junto a la velocidad obtenida.

Tabla 1. Pruebas de rendimiento GF FX5200 128 MB yGF 6600 256 MB

GPU/Memoria 250/400 260/400 260/420 270/420 280/420

GF FX5200 128 MB

�� glxgears 1438 1440 1491 1492 1493�� Planet Penguin 84 85 87 88 90�� Cube 189 191 195 196 198�� GL-117 36 36 37 37 37

GPU/Memoria 300/500 310/500 310/520 320/520 370/520 370/600

GF 6600 256 MB

�� Glxgears 4012 4042 4167 4175 4250 4862�� Planet Penguin 260 265 275 280 296 310�� Cube 375 390 425 425 445 455�� GL-117 40 40 41 41 43 43

41-43 Taller (NVClock) 7/4/06 12:38 Página 43

Page 43: Todo Linux 66

as tarjetas gráficas con chipNVIDIA son las que mayorrendimiento ofrecen en Linux

gracias a su excelente funciona-miento tanto en 2D como en 3D.Aunque es posible utilizarlas con loscontroladores libres incluidos en elservidor gráfico, éstos no incorpo-ran aceleración gráfica 3D, siendonecesario instalar los controladorespropietarios disponibles.

La tarjeta instalada, una Club 3D 6600AGP con 256 MB de memoria RAM, permiteejecutar todos los juegos disponibles enLinux a máxima velocidad, incluyendo aque-llos más exigentes como Doom III o emula-dores con elevados requisitos como Mugende la consola Nintendo 64. Adicionalmente,este chip permite realizar overclocking, con-trolar las temperaturas alcanzadas y modifi-car la velocidad del ventilador gracias al usode la herramienta NVClock, explicada enTodo Linux 65.

CONTROLADORES NECESARIOSIndependientemente del chip NVIDIA que in-tegre nuestra tarjeta, existe un paquete queincluye todos los controladores necesariosque, aparte de la aceleración gráfica, permi-ten activar otras funciones útiles como la sa-lida de vídeo o el uso de dos monitores.

Para descargar el controlador, necesariopara Debian y Ubuntu, abrimos la páginahttp:/www.nvidia.com; presionamos enDOWNLOAD DRIVERS->Download Drivers;en la sección START HERE elegimosGraphics Driver->GeForce and TNT2->LinuxIA32, donde también están disponibles los

paquetes para arquitecturas de 64 bits conel nombre Linux IA 64 y Linux AMD64/EMT64. A continuación presionamos en“Go!” y, por último, realizamos la descargaindicada por el enlace en STEP 2, de nombreNVIDIA-Linux-x86-1.0-8178-pkg1.run al es-cribir este taller, aunque puede cambiar de-bido a las continuas actualizaciones en lasque se incorpora soporte para nuevas tar-jetas, optimizaciones en la velocidad, nuevasfunciones y mejoras en la estabilidad.

En todas las distribuciones se ha partidode una primera instalación en la que el servi-dor gráfico se ha configurado para utilizar loscontroladores libres nv, sin aceleración 3D,para posteriormente instalar los oficiales.

DEBIANEl proceso para aumentar la ace-leración en Debian se centra en la

instalación de las cabeceras del núcleo parahacer la recompilación del controlador y laposterior ejecución del paquete provisto porNVIDIA:�� 1. Si nos encontramos en el servidor gráfi-co presionamos “Ctrl+Alt+F1” para abrir unaconsola de texto, donde nos identificamoscomo root y ejecutamos:

init 1

para entrar en modo texto, que detiene to-dos los procesos en ejecución y nos pide denuevo la contraseña de root.�� 2. A continuación instalamos las cabece-ras del núcleo ejecutando:

aptitude installkernel-headers-`uname -r`

�� 3. Accedemos al directorio donde hemosdescargado el archivo RUN e iniciamos lainstalación:

sh NVIDIA-Linux-x86-1.0-8178-pkg1.run

�� 4. Se muestra el menú de instalación,donde presionamos “No” para continuar enel primer mensaje de información, acepta-mos la licencia con “Accept” y selecciona-

mos de nuevo “No” para que no se descar-gue un núcleo desde el servidor NVIDIA, porlo que se compila el nuevo módulo con lascabeceras instaladas.

Por último, presionamos en “Yes” paraque se actualice automáticamente el archivodel servidor gráfico.�� 5. Para finalizar ejecutamos:

init 3

para volver al servidor gráfico, donde debemostrarse una pantalla inicial con el logotipode NVIDIA.

Podemos comprobar el correcto funcio-namiento de la aceleración ejecutando:

glxinfo

Debe mostrarse la línea:

direct rendering: Yes.

FEDORAAl contrario que en las restantesdistribuciones, en Fedora no es

necesario utilizar el paquete oficial de NVI-DIA, sino que es posible realizar la instalaciónmediante un repositorio externo:�� 1. En primer lugar añadimos el repositorioLivna, ejecutando desde una terminal detexto como root:

rpm -ivh http://rpm.livna.org/livna-release4.rpm

�� 2. A continuación instalamos los controla-dores de NVIDIA junto a sus dependencias:

yum install nvidia-glx

�� 3. Y realizamos la configuración del servi-dor gráfico automáticamente ejecutando:

/usr/sbin/nvidia-config-displayenable

�� 4. Por último, reiniciamos el servidor gráfi-co.

HARDWARETARJETA GRÁFICA NVIDIA 6600

Instalación de una tarjetagráfica NVIDIA 6600

>>>

44 Número 66

L

JORGE LÓPEZ

[email protected]

Tarjeta gráfica NVIDIA 6600.

44-45 Hardware (NVIDIA) 7/4/06 12:39 Página 44

Page 44: Todo Linux 66

MANDRIVAGracias al uso de la herramientaurpmi junto a un repositorio exter-

no, la instalación de los nuevos controlado-res se realiza sin necesidad de compilar nin-gún programa:�� 1. Abrimos una terminal de texto en la quenos identificamos como root, y añadimos elnuevo repositorio ejecutando:

urpmi.addmedia plf-nonfreeftp://ftp.univ-orleans.fr/logiciel-libre/plf/mandriva/2006.0 with hdlist.cz

�� 2. A continuación descargamos el paque-te que contiene el controlador:

urpmi nvidia-xorg

donde se muestran tres librerías de depen-dencias, elegimos la primera presionando “1”y “Enter”, y aceptamos la instalación.�� 3. Finalizado el proceso, abrimos desdecualquier editor de texto el archivo/etc/X11/xorg.conf y en la sección SectionDevice añadimos el parámetro nvidia a la lí-nea Driver en sustitución del existente.�� 4. Por último, reiniciamos el servidor gráfi-co para activar la nueva aceleración.

SUSESUSE es la distribución en la quemás sencilla resulta la instalación

de los controladores, ya que la herramientaYaST2 automatiza todos los pasos a seguir:�� 1. Iniciado el servidor gráfico, abrimosYOU (YaST Online Updater), presionandocon el botón derecho del ratón en el iconoSUSE Watcher de la barra de tareas y eli-giendo la opción Iniciar YOU.�� 2. Después de escribir la contraseña deroot, elegimos cualquier servidor comofuente de la instalación, y presionamos“Siguiente” para actualizar con los parchesdisponibles.�� 3. En la nueva ventana, seleccionado elfiltro Parches YOU, activamos el paquete in-dicado por la línea Download NVIDIA(r)Graphics Driver.

�� 4. Presionamos en “Aceptar” y se mues-tra la licencia del controlador en la que elegi-mos “Instalar parche”.�� 5. Finalizada la descarga, modificamos elarchivo /etc/X11/xorg.conf asignando enSection Device el controlador nvidia al pará-metro Driver y reiniciamos el servidor gráficopara poder utilizar la nueva aceleración.

Si la instalación de SUSE es nueva y elchip de la tarjeta reciente, es posible que nose muestre el servidor gráfico correctamen-te al utilizar el controlador libre nv, por lo quedebemos abrir una consola de texto presio-nando “Ctrl+Alt+F1”, donde nos identifica-mos como root, y modificamos el archivo/etc/X11/xorg.conf para utilizar el controla-dor vesa en su lugar y poder realizar la insta-lación de los suministrados por NVIDIA.

UBUNTUAl ser una distribución basada enDebian, la instalación en Ubuntu

de los nuevos controladores se realiza conpasos similares:�� 1. Instalamos las cabeceras del núcleo:

sudo aptitude installlinux-headers-`uname -r`

�� 3. Abrimos una consola de texto presio-nando “Ctrl+Alt+F1” y accedemos al modotexto:

sudo init 1

�� 4. Iniciamos la instalación del controladoraccediendo previamente a su directorio dedescarga:

sh NVIDIA-Linux-x86-1.0-8178-pkg1.run

Al encontrarnos en modo monousuarioestamos identificados como root, por lo queno es necesario utilizar el comando sudo.�� 5. El compilador utilizado debe ser el mis-mo que el del núcleo, siendo el oficial la ver-sión 3.4, que asignamos ejecutando:

export CC=gcc-3.4

�� 6. Por último, volvemos al modo gráfico:

sudo init 3

En caso de producirse un error por noencontrar alguna de las herramientas nece-sarias, podemos instalarlas ejecutando:

sudo aptitude install binutilsgcc-3.4 gcc make

HARDWARETARJETA GRÁFICA NVIDIA 6600

45Número 66

La instalación de los controladoresNVIDIA es una de las principales di-ficultades en las distribucionesLinux para obtener el máximo ren-dimiento del equipo, siendo los pro-blemas más comunes:�� La aceleración no está activa.Si al realizar la instalación, al ejecutar:

glxinfo

no se indica que esté activada laaceleración, debemos asegurarnosque en el archivo de configuracióndel servidor gráfico, /etc/X11/xorg.conf (para todas las distribu-ciones excepto Debian Sarge queutiliza /etc/X11/XF86Config-4), se en-cuentre la línea (Section “Device”):

Driver “nvidia”

que indica que se utiliza el controla-dor propietario, y si se encuentranen dicho archivo:

Load “GLcore”Load “dri”

debemos eliminarlas para sustituir-las por (Section “Module”):

Load “glx”

�� El sistema produce numero-sos cuelgues en el servidorgráfico y en los programas.Las últimas mejoras visuales en elservidor gráfico X.org, como el usode sombras y transparencias en lasventanas, produce una elevadainestabilidad al utilizar el controla-dor NVIDIA, que podemos corregirincluyendo la línea:

Option “RenderAccel” “false”

dentro de la sección de la tarjetagráfica del archivo de configuraciónde X.org.

Problemas habituales �

Gracias a los controladoressuministrados por NVIDIA, en losque se incluye soporte para todossus chips existentes, podemosconseguir la aceleración con losmismos pasos dados en el taller,independientemente de la tarjetagráfica que poseamos.

Otras tarjetas compatibles �

Selección de los paquetes mediante YOU.

44-45 Hardware (NVIDIA) 7/4/06 12:39 Página 45

Page 45: Todo Linux 66

os Entornos Integrados deDesarrollo se han converti-do en una herramienta casi

imprescindible para la creación desoftware. Analizamos tres de losmás utilizados en GNU/Linux.

Un Entorno Integrado de Desarrollo esun programa que incorpora una serie defuncionalidades para facilitar la tarea dedesarrollo de software. A este tipo de pro-gramas se les conoce como IDEs, queson las siglas de Integrated DevelopmentEnviroment. Los IDEs son muy prácticosya que, como su nombre indica, integranmuchas funciones en una sola herramien-ta, para las que tradicionalmente serequerían varios programas. Básicamente,las principales funciones con las quecuenta un IDE son las siguientes:�� Editor: Un completo editor de código

con número de líneas visible, sintaxiscoloreada (syntax highlighting) sensibleal lenguaje, identación automática yotras características muy prácticas yútiles para programadores.

�� Depurador: Es muy importante teneracceso al depurador desde el mismoprograma desde donde estamos edi-tando el código, ya que nos facilita eltrabajo. Habitualmente permiten utilizarventanas de inspección y puntos deruptura (breakpoints).

�� Gestor de proyectos: Para agruparlos ficheros que forman parte delmismo proyecto.

�� Compilación y ejecución: Permitentanto compilar los fuentes como ejecu-tarlos. Incluso podemos construir unfichero binario.Actualmente los entornos integrados

de desarrollo han evolucionado bastanteampliando su funcionalidad. También secaracterizan por tener un intuitivo interfazgráfico de usuario, aunque los primerosque salieron al mercado ya disponían deuno sencillo. Durante mucho tiempo losIDEs fueron desarrollados exclusivamentepor empresas de software propietariocomo Borland, compañía pionera y quemarcó una clara tendencia. Es el caso, por

ejemplo, del clásico Turbo C o TurboPascal. Con el paso del tiempo el softwarelibre ha ido ganando terreno y algunosIDEs libres han superado a sus competi-dores comerciales.

A continuación echaremos un vistazoa tres de los entornos de desarrollo másutilizados en GNU/Linux, dos de ellos,KDevelop y Eclipse, admiten el trabajo convarios lenguajes de programación. El ter-cero se desarrolló exclusivamente paraC/C++ aunque actualmente permite laedición de código de otros lenguajes, sunombre es Anjuta y es un clásico dentrode los editores integrados para Linux.

ANJUTAEl nombrecompleto de este IDE es Anjuta DevStudioy la última versión estable publicada bajo lalicencia GPL es la 1.2.4, aunque se está tra-bajando en el desarrollo de la versión 2.Este entorno se diseñó para utilizarlo con ellenguaje C/C++ y para facilitar la tarea dedesarrollo con las librerías GTK+ y con lasde GNOME, es por ello que está claramen-te orientado a este tipo de desarrollo.Anjuta es uno de los entornos que goza demás popularidad en el desarrollo de aplica-ciones bajo Linux y, además, con el pasodel tiempo va ganando prestigio entre losprogramadores de aplicaciones GTK+.

A continuación destacamos sus princi-pales características:�� Gestión de proyectos: Permite orga-

nizar el código que estamos desarro-llando en un proyecto con el objetivo derealizar una gestión más eficiente delmismo. Esta opción solo funciona paraficheros C/C++, aunque Anjuta permiteeditar también archivos de otros len-guajes como Java, Perl o Pascal.

�� Editor integrado: Sirve para ampliar lapersonalización al usuario. Incorporasyntax highlighting, identación automá-

tica y otras características típicas de loseditores de código.

�� Asistentes: Son muy prácticos paracomenzar a trabajar y nos permitencrear distintos tipos de proyectos:■ Consola: Aplicación sin interfaz grá-

fico pensada para ser ejecutadadirectamente sobre una shell.

■ GTK 2.0: Aplicación con interfazgráfico de usuario basada en la ver-sió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++ conGTK.

■ GNOME 2.0 C++: Aplicación enC++ con las librerías de GNOME.

■ Componente Bonobo: Para crearcomponentes con la arquitecturaBonobo.

■ wxWindows: Aplicación basada enel toolkit gráfico multiplataformawxWindows.

■ Xlib: Librería para X-Windows.■ X Doc. App.: Aplicación tipo docklet

para gestores de ventanas o entor-nos de escritorio.

Estos asistentes también nos ofrecendetalles como la opción de incluir unalicencia libre de forma automática en cadauno de los ficheros que forman parte delproyecto que va a ser creado.

SOFTWARE LINUXENTORNOS DE DESARROLLO

Entornos integrados dedesarrollo en GNU/Linux

Anjuta es el IDE abanderado de C/C++ en Linux y KDevelopes una gran herramienta para el desarrollo con Qt/KDE

>>>

ARTURO FERNÁNDEZ

[email protected]

L

46 Número 66

El asistente para tipos de proyecto de Anjuta.

46-49 Software (IDEs) 7/4/06 13:59 Página 46

Page 46: Todo Linux 66

�� CVS: Integración con el control de ver-siones concurrente CVS.

�� Depurador: Integración con el populardepurador gdb, permitiendo utilizarpuntos de ruptura, ventanas de depu-ración y control de la pila de memoria.

�� Glade: El diseño de interfaces gráficosse puede realizar a través de la integra-ción con Glade, la popular utilidad paraGTK y GNOME. Así, en el mismo pro-grama podemos trabajar con los archi-vos de interfaz y con los de código.

■ INSTALACIÓN

Muchas distros de Linux ofrecen unpaquete binario para la instalación deAnjuta. Para la instalación en Debian o unadistribución derivada de la misma, bastacon ejecutar desde la línea de comandos:

#apt-get install anjuta

Si deseamos realizar la instalación apartir del código fuente, debemos dispo-ner básicamente de las librerías de desa-rrollo de GTK, ya que Anjuta se ha desa-rrollado con las mismas. La instalaciónsería como sigue:

$wgethttp://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

ECLIPSEEclipse es un entornode desarrollo inicialmen-te pensado para programar en el lenguajeJava. Surgió como una alternativa al restode editores de Java que eran, en sumayoría, propietarios. Con el tiempo secreó la fundación Eclipse, que actualmen-te es la encargada de gestionar, desarro-llar y promocionar el editor. Esta fundación

está formada por varias compañías líderesen el sector informático como son, entreotras, IBM, HP, Oracle, Rational Software,SUSE, Red Hat y SAP.

Eclipse ha evolucionado hasta conver-tirse en algo más que un editor, es uncompleto framework de aplicaciones paradesarrollar software, ya no solo en Java,sino en otros lenguajes como C/C++ yPHP.

Su arquitectura software está estruc-turada en plugins y el editor incluye unentorno para desarrollar nuestros propiosplugins. Gracias a ellos la funcionalidad deEclipse es bastante completa. Actualmen-te, el proyecto Eclipse se encuentra dividi-do en tres subproyectos complementa-rios:�� Core del editor integrado de desarrollo:

Que incluye, además de un completoeditor de código, una plataforma paratrabajo colaborativo, un workspacepara gestionar proyectos de código y elworkbench construido sobre SWT yJFace. SWT (ver página 50) es un tool-kit para construir componentes gráficos(widgets) en Java. En realidad, se basaen la idea original de AWT (creado porSun Microsystems) de crear un toolkitnativo e independiente de la plataformadonde se ejecuta, pero superando suslimitaciones. JFace es otro toolkit desa-rrollado para complementar a SWT ysuperar así las limitaciones de AWT ySwing, los principales toolkits de interfa-ces de usuario existentes en Java.

�� JDT: Son las siglas de JavaDevelopment Tooling y es como sedenomina a un conjunto de herramien-tas que añaden funcionalidades muyútiles para el programador de Java.Entre ellas se encuentran la autocom-pletación de código, la informacióncontextual sobre métodos de clases, laorganización del código en proyectos,las distintas vistas de un proyecto(paquetes y ficheros), herramientaspara compilar, ejecutar y depurar, lasbúsquedas de componentes de un

proyecto y la refactorización de códi-go.

�� PDT: Entorno integrado para el desarro-llo de plugins (en inglés Plug-inDevelopment Enviroment). Gracias a es-te entorno podemos añadir nueva fun-cionalidad al entorno Eclipse de formafácil. Esta característica lo diferencia de lagran mayoría de IDEs, ya que aunquemuchos están orientados a plugins, noincorporan un entorno integrado para eldesarrollo de los mismos.

A continuación, resumimos de formabreve, las principales características deEclipse:�� Orientado a plugins: Son fundamen-

tales en la arquitectura de software deEclipse y una de las bases gracias a lacual cada día se convierte en un entor-no de desarrollo más completo.

�� Completo editor: Funcionalidadescomo la refactorización de código, lainformación contextual de componen-tes o las herramientas de depuración lohacen muy completo y versátil.

�� Proyectos: El explorador de proyec-tos se puede visionar en distintas vistas,entre ellas la de componentes y la deficheros.

�� Servidores de aplicaciones: Existenuna serie de plugins para controlar laejecución de distintos servidores deaplicaciones Java como Tomcat yJBoss.

�� Control de versiones: Integracióncon CVS y Subversion, entre otros.

�� Ant: Integración con la herramientaJava de compilación y despliegue deaplicaciones, incluyendo la opción dedepuración y la importación de proyec-tos a partir del fichero build.xml.

�� Multiplataforma: Existen versionespara GNU/Linux, Mac OS X, MSWindows y Solaris.

�� Soporte para la versión 5 del JDK.�� Multilenguaje: A través de plugins

podemos utilizar Eclipse para desarro-llar en lenguajes distintos a Java.Actualmente soporta lenguajes comoPHP, Python, Pascal y C/C++, entreotros muchos.

�� Asistentes: Incluye un completo con-junto de asistentes para crear aplicacio-nes, importar proyectos y otras funcio-nes.

�� JUnit: Se integra con el popular frame-work de pruebas unitario para el len-guaje Java.

■ INSTALACIÓN

Para instalar Eclipse necesitaremos tenerinstalado el entorno de ejecución de Java

SOFTWARE LINUXENTORNOS DE DESARROLLO

47Número 66

Proyecto recién creado con Anjuta y conexión inicial a CVS. Pantalla inicial de Eclipse.

46-49 Software (IDEs) 7/4/06 13:59 Página 47

Page 47: Todo Linux 66

(JRE) y además el kit de desarrollo (SDK)si vamos a utilizarlo para programar eneste lenguaje. Podemos encontrar distin-tos paquetes binarios con SDKs y JREspara las distintas distribuciones de Linux.No obstante, también podemos descar-gar la implementación, gratuita pero noabierta, del SDK y JRE de SunMicrosystems de su site oficial. En la pági-na oficial de descargas de Sun existeabundante documentación sobre la des-carga e instalación de este software.

En Debian contamos con variospaquetes con implementaciones libres deJava, como es el caso de la máquina vir-tual Kaffe (paquete kaffe) y el paquetefree-java-sdk, que es un completo SDKpara Java. Una vez que tengamos instala-do y configurado el entorno Java, pode-mos pasar a la instalación de Eclipse. Laúltima versión estable liberada es la 3.1 ypodemos descargárnosla de su web en laque se distribuye un binario listo para ins-talar:

$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, loque indica que en Linux necesita las librerí-as gráficas del toolkit GTK+. Estas libreríasson un requisito para ejecutar Eclipse ennuestro sistema operativo.

Una vez descargado el fichero, pasa-remos a descomprimirlo:

$tar -zxvf eclipse-SDK-3.1.2-linux-gtk.tar.gz

Y posteriormente podemos ejecutarloaccediendo al directorio creado y lanzan-do el binario eclipse.

Si utilizamos Debian, podemos realizarla instalación directamente desde el

paquete binario, para ello ejecutaremosdesde la línea de comandos:

#apt-get install eclipse

KDEVELOPKDevelop es el IDE delproyecto KDE. En elaño 1.998 se comenzó a desarrollar esteentorno integrado de desarrollo bajo elproyecto del mismo nombre. Actualmentela última versión estable es la 3.3.1 y sedistribuye bajo la licencia libre GPL.Inicialmente se pensó para realizar pro-yectos de desarrollo en el lenguaje C/C++,pero con el tiempo ha evolucionado adap-tándose a otros lenguajes como Java,Ruby, Python y PHP.

�� Interfaz personalizable: El interfaz deKDevelop es totalmente configurable yse puede dividir en distintas zonas detrabajo. Por ejemplo, en la parte izquier-da tenemos un explorador de ficherosque forman parte del proyecto, en elcentro los archivos que estamos edi-tando y en la parte inferior una ventanapara depurar o una shell.

�� Gestión de proyectos: Permite crearproyectos para organizar los distintos ar-chivos con los que estamos trabajando.El archivo de proyecto guarda informa-ción sobre los ficheros que forman partede dicho proyecto y sobre las caracterís-ticas comunes que aplicamos a los mis-mos, manteniendo a la vez la individuali-dad de cada uno de ellos. Podemos cre-ar un nuevo proyecto desde cero o im-portar el código que ya tengamos desa-rrollado creando de forma simultánea unnuevo proyecto con él.

�� Visualizador de clases: Si estamostrabajando con un lenguaje orientado aobjetos seguro que utilizamos clases.Pues bien, este visualizador nos será degran ayuda porque nos permite ver deun vistazo el nombre de las clases, asícomo sus métodos y atributos y las

relaciones entre clases como, porejemplo, la herencia. Este visualizadororganiza las distintas clases a modo deárbol, permitiendo expandir y contraerlos distintos elementos de cada clase.

�� Depurador: Permite integrar un depu-rador en una de las ventanas del editor.En concreto, se integra con GDB y condistintos depuradores de Java, ofre-ciendo la posibilidad de utilizar puntosde interrupción (breakpoints) o puntosde ruptura condicionales.

�� Documentación: Podemos consultardistintos libros de referencia sobre loslenguajes y librerías que utilizamos gra-cias a la integración con el editor.

�� Editor: KDevelop utiliza un completoeditor de texto con características muyútiles para programadores como laidentación automática de código, elcoloreado de sintaxis (syntax highligh-ting) o la opción de utilizar marcadoresen distintas líneas de código. Este edi-tor está basado en el popular editorKate de KDE. Se pueden abrir variosarchivos de forma simultánea, y el edi-tor mostrará cada uno en una pestaña(tab) distinta.

�� Plugins: La arquitectura software deKDevelop está basada en plugins, loque permite añadir o suprimir funciona-lidad sin tocar el código con el queestamos trabajando.

�� Control de versiones: Desde elmismo interfaz podemos enlazar nues-tro proyecto con un control de versio-nes. KDevelop permite trabajar con lossistemas libres Subversion y CVS y conlos propietarios Clearcase y Perforce.

�� Asistentes: Incorpora distintos asis-tentes para crear de forma fácil variostipos de proyectos, en especial de KDE,como por ejemplo aplicaciones sim-ples, componentes KIOSlaves o appletspara el panel de este escritorio.

�� Templates: Las plantillas nos permitencrear de forma sencilla y rápida distintostipos de archivo, en función del lenguajeque estemos utilizando.

�� Autocompletado: A la vez que escri-bimos código se parsea éste, permi-tiendo el autocompletado del código enfunción del contexto y del tipo de len-guaje que estemos utilizando. Esta fun-ción es muy útil, ya que nos evita tecle-ar nombre completos de funciones ométodos que empleamos con frecuen-cia.

�� Visor de documentos: KDevelopintegra y utiliza componentes de KDE loque permite, por ejemplo, ver distintostipos de archivos y acceder a ellos utili-

SOFTWARE LINUX ENTORNOS DE DESARROLLO

48 Número 66

Eclipse en acción.

El diseñador de intefaces de KDevelop.

46-49 Software (IDEs) 7/4/06 13:59 Página 48

Page 48: Todo Linux 66

zando protocolos diferentes. En gene-ral, cualquier tipo de archivo o protoco-lo soportado por Konqueror tambiénsirve para KDevelop, ya que ambos uti-lizan los mismos componentes de KDE.Algunos de estos protocolos son FTP,SFTP, HTTP o algunos tipos de archivocomo TARBALLS o ficheros comprimi-dos ZIP.

�� Integración con Doxygen: Éste esun sistema de documentación automá-tica de código. KDevelop permite a tra-vés de esta integración ejecutarDoxygen directamente desde el editory visualizar la documentación generadaen formato HTML, man o PDF.

KDevelop cuenta también con undiseñador de interfaces gráficos de usua-rio cuya ejecución es independiente. Estediseñador está orientado a construir wid-gets utilizando las librerías gráficas de Qt yKDE.

■ INSTALACIÓN

La instalación de KDevelop se puede lle-var a cabo desde los paquetes binarios odesde el código fuente. Por simplicidadrecomendamos realizar la instalación apartir de los binarios específicos de la dis-tribución de Linux que usemos. Existenbinarios para distros como Debian, SUSE,Red Hat o Mandriva. Por ejemplo, en elcaso de Debian basta con ejecutar comousuario root en la línea de comandos:

#apt-get install kdevelop3

Es recomendable instalar la documen-tación, así como ciertos plugins que nospueden ser muy útiles. En el caso deDebian lo tenemos fácil, ejecutamos:

#apt-get install kdevelop3-dockdevelop3-plugins

Si nos decidimos por realizar la instala-ción compilando el código fuente, debere-mos tener en cuenta que es necesariotener instaladas previamente las libreríasde desarrollo de KDE y Qt. Para realizareste tipo de instalación utilizando los pará-metros por defecto, ejecutaríamos unaserie de comandos que mostramos acontinuació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

$./configure$make#make install

Antes de ejecutar el script configure,debemos fijar con los valores adecuadoslas variables de shell que nos indiquen elpath absoluto donde se encuentran laslibrerías de Qt y KDE.

Una vez realizada la instalación, lo eje-cutamos desde la línea de comandosinvocando al ejecutable kdevelop3. Si utili-zamos KDE podemos lanzarlo igualmentedesde el menú de aplicaciones.

CONCLUSIONESLos entornos integrados de desarrollo sonuna gran herramienta para el programa-dor de software. Incluso, para algunos,podríamos decir que son una utilidadimprescindible en su trabajo diario.

Dentro de la categoría de los entornosintegrados de desarrollo, merece la pena

mencionar a Emacs, que aunque no es unIDE propiamente dicho, sí que podemosconvertirlo en uno de ellos realizando unaconfiguración adecuada. Emacs es unpotente editor de texto con caracterís-ticas propias de los IDEs como identaciónautomática y syntax higlighting en funcióndel lenguaje, integración con depuradoresy control de versiones, entre otrasmuchas funcionalidades.

La elección de un IDE u otro dependede varios factores, desde el lenguaje en elque se va a trabajar, hasta el tipo de apli-cación que se va a desarrollar, pasandopor el gusto personal. Por ejemplo, debe-mos tener en cuenta que no es lo mismodesarrollar una aplicación que no requiereinterfaz gráfico de usuario a otra que sí loprecisa. Algunos IDEs incorporan un editorde interfaces que nos simplificará en granmedida el trabajo. Siguiendo con el ejem-plo, también influye si vamos a desarrollaruna aplicación para el entorno GNOME oKDE, un editor u otro resultará más ade-cuado, ya que están pensados para ello.Es el caso de KDevelop para el desarrolloKDE y Anjuta para GNOME/GTK+. En laTabla 1 vemos una sencilla relación entredistintos toolkits gráficos y el soporte queofrecen los IDEs analizados.

Dado que disponemos de IDEs degran calidad en GNU/Linux, no tenemosexcusa para convertir nuestra máquinacon nuestro sistema operativo favorito enuna potente workstation para el desarrollode software. ■

SOFTWARE LINUXENTORNOS DE DESARROLLO

49Número 66

�� 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/

Referencias �

Tabla 1. IDEs y toolkitsToolkit/IDE Anjuta KDevelop Eclipse�� GTK+/GNOME x – –�� Qt/KDE – x –�� wxWindows x – –�� AWT/Swing – – x

KDevelop editando código PHP.

46-49 Software (IDEs) 7/4/06 13:59 Página 49

Page 49: Todo Linux 66

as librerías de desarrolloSWT se han convertido enuna de las principales re-

ferencias en la programación gráfi-ca, gracias a que están basadas enJava, lo que les permite ejecutarseen cualquier equipo sin necesidadde modificar su código. A esto sesuma el hecho de haber implemen-tado una librería nativa para cadasistema, destinado a tener la mismaapariencia gráfica que el escritoriopara el que se compile.

La aparición de SWT ha permitido reem-plazar muchos de los lenguajes utilizadospara diseñar aplicaciones gráficas por unosolo que, además de ser multiplataforma(siendo únicamente necesaria la instalaciónde una máquina virtual Java), cuenta con unextenso número de librerías que permitenconservar la misma apariencia gráfica que elresto de los programas (GTK en el caso deLinux), al que contrario que otras GUIs deJava como AWT o Swing. A todas estas ca-racterísticas se le suma la licencia libre utiliza-da por SWT, mediante la cual va a ser posibledesarrollar sin ninguna restricción.

Para realizar cualquier programa con SWTes recomendable instalar el IDE Eclipse, dis-ponible en la página http://www.eclipse.org,donde también podemos encontrar múltiplesprogramas de ejemplo y documentos de sufuncionamiento.

UTILIZANDO SWTAl igual que cualquier otro lenguaje de pro-gramación gráfico, SWT está constituido porun conjunto de clases que permiten insertarcada uno de los elementos que vayan aconstituir la ventana de trabajo junto a susdistintos métodos disponibles. La única dife-rencia es el uso necesario de una pantalla

que va a mostrar la aplicación y un entornodonde situar los elementos.

■ PANTALLA DE TRABAJO

El objeto Display, necesario en los progra-mas SWT, representa la conexión entre elpropio programa y el sistema gráfico utiliza-do. Se precisa uno solo para cada progra-ma, y es el encargado de mostrar en panta-lla las aplicaciones y de registrar los eventosque se suceden.

Posee el constructor public Display() quepodemos utilizar en los programas con:

Display pantalla = new Display();

■ ENTORNO DE TRABAJO

El objeto Shell representa una ventana queva a contener los distintos elementos delprograma, como botones y cajas de texto.

Con su constructor más habitual:

public Shell(int pantalla, int estilo)

podemos utilizar distintos estilos: BORDER,añade un borde; CLOSE, MIN y MAX, incluyenlos 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 crearlocon:

Shell entorno = new Shell(pantalla);

y mostrarlo en la ventana utilizando:

shell.open();

Adicionalmente, la función:

shell.pack();

produce que la ventana tenga el mismo ta-maño que los elementos contenidos, redu-ciéndola habitualmente de su tamaño pre-determinado.

■ ESTRUCTURA PRINCIPAL

Todos aquellos desarrollos que realicemoscon SWT van a poseer una misma estructu-

ra y un conjunto de clases similar, siendo elcó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 paramostrar 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();}

}

es la base del programa, donde se crea laclase principal main, un entorno de trabajoque al cerrarse libera la memoria ocupadaen el sistema.

■ ELEMENTOS

Todos los programas que desarrollemos vana estar compuestos de elementos, comobotones, cuadros de texto, barras de des-plazamientos y menús, para los cuales SWTincorpora un conjunto de constructores conla estructura:

SOFTWARE LINUXSWT

Programación en SWT

SWT permite utilizar el mismo código para cualquiersistema operativo, usando solo una librería para cada uno

>>>JORGE LÓPEZ

[email protected]

L

50 Número 66

Entorno de desarrollo Eclipse.

Programación del código base.

50-54 Software (Swt) 7/4/06 12:41 Página 50

Page 50: Todo Linux 66

elemento(entorno, estilo);

donde entorno es la ventana de trabajo cre-ada y estilo un conjunto de propiedades decada uno de los elementos en los que sedefinen atributos como su alineación, tama-ño, sombreado o niveles de selección.

Para añadir un elemento en la ventanapodemos utilizar dos métodos:

new elemento(entorno, estilo);

crea e inserta el elemento, con el inconve-niente de no poder invocar sus métodos a lolargo 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 incompatiblesentre ellas con el carácter ‘|’.

Cada elemento incluye múltiples méto-dos para trabajar, que podemos utilizar inclu-yéndolos a continuación de su variablecuando se han creado como un objeto inde-pendiente:

elemento.método(valor);

o creándolo directamente junto al elementocon el código:

new elemento(entorno, estilo).método(valor)

También es necesario incluir en el códigodel programa la librería correspondiente alos elementos con la línea:

import io.eclipse.swt.widgets.*;

Los elementos más importantes disponi-bles son:�� Barras de progreso, (ProgressBar):crea una barra que indica el progreso de unadeterminada acción, como la conversión deun archivo o la carga de un programa.

La variable estilo puede contener los va-lores: SWT.HORIZONTAL y SWT.VERTICAL,que crean una barra horizontal y vertical res-pectivamente; SWT.SMOOTH, barra conti-nua distinta a la predeterminada que está di-vida en pequeñas secciones; y SWT.IN-DETERMINATE para crear una barra cíclica,sin principio ni final.

Los métodos disponibles son: intgetMaximum(), obtiene el valor máximo dela barra; int getMinimum(), valor mínimo;int getSelection(), devuelve el valor actualde la barra; void setMaximum() e void

setMinimum() para definir los valores máxi-mos y mínimos de la barra; y voidsetSelection() para definir su valor inicial.

Por ejemplo, podemos crear una barrahorizontal cíclica con el código:

ProgressBar barraProgreso = newProgressBar(entorno, SWT.HORIZONTAL |SWT.INDETERMINATE);

�� Barras de valor, (Slider): permiten se-leccionar un valor mediante el uso de unabarra.

La variable estilo puede poseer los valo-res SWT.HORIZONTAL o SWT.VERTICAL pa-ra crear una barra horizontal o vertical res-pectivamente.

Algunos de los métodos que admite son:int getIncrement(), selecciona el valor de in-cremento de la barra; int getSelection(), de-vuelve el valor actual; void setMaximum(intvalor) y void setMinimum(int valor) define losvalores máximo y mínimo respectivamente;y void setSelection(int valor), para elegir suvalor inicial.

Para crear una barra horizontal utiliza-mos el código:

new Slider(entorno, SWT.HORIZONTAL);

�� Botones, (Button): sonuno de los componentesmás destacados de cual-quier aplicación, ya que através de ellos va a ser posi-ble seleccionar entre distin-tas opciones o realizar unaacción al presionarlos.

La variable estilo puede contener los va-lores: SWT.ARROW, muestra una flecha;SWT.CHECK, cuadros de validación;SWT.PUSH, los habituales botones; SWT.RA-DIO, cuadros de selección exclusivos entresí; SWT.TOOGLE, botones que cambian deestado al presionarlos; SWT.FLAT, para bo-tones planos; y relativos a su orientación,SWT.UP, SWT.DOWN, SWT.CENTER,SWT.LEFT y SWT.RIGHT.

Los métodos disponibles en los botonesson: boolean getSelection(), devuelve el va-lor actual de los estilos CHECK, RADIO y TO-OGLE siendo true si están activos; voidsetAlignment(int alineación), define su aline-ación; void setSelection(boolean selecciona-do), activa un botón haciendo que seleccio-nado sea true o al contrario con false; y voidsetText(String cadena), inserta el texto delbotón.

Podemos crear un botón que contengatexto con el código:

new Button(entorno, SWT.PUSH).setText(“Botón”);

�� Etiquetas, (Label): insertan en la venta-na cadenas de texto que no es posible mo-dificar por el usuario.

Los posibles valores de estilo son:SWT.SEPARATOR, línea de separación;SWT.HORIZONTAL y SWT.VERTICAL, sepa-

SOFTWARE LINUXSWT

51Número 66

Botones disponibles.

Tipos de barras de progreso.

Aunque es posible crear un programa en SWT sin el IDE Eclipse, es recomen-dable utilizarlo, ya que facilita tanto la inserción del código como su compila-ció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 asignamosun 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 nuestrosistema operativo con el botón “Add External JARs”, siendoorg.eclipse.swt.gtk la correspondiente a Linux.

�� 2. A continuación creamos una nueva clase dentro del proyecto presio-nando 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”.

Compilación de un programa con Eclipse �

50-54 Software (Swt) 7/4/06 12:41 Página 51

Page 51: Todo Linux 66

radores horizontal y vertical; o SWT.CENTER,SWT.LEFT y SWT.RIGHT para alinear el texto.

Algunos de sus métodos disponiblesson: String getText(), devuelve la cadena detexto de la etiqueta; void setAlignment(int ali-neación), define la alineación del texto; voidsetText(String cadena), inserta el texto en elcontenido de la etiqueta; y voidsetImage(Image imagen), inserta una ima-gen.

Por ejemplo, para insertar la cadena detexto Etiqueta, utilizamos la línea de código:

new Label(entorno, SWT.LEFT).setText(“Etiqueta”);

�� Grupos, (Group): elemento destinado acrear y organizar cuadros de selección don-de sea posible elegir uno o más valores en-tre los distintos mostrados que se han crea-do mediante el uso de botones.

Sus estilos admitidos afectan a su apa-riencia mediante el cambio de sombreadocon SWT.SHADOW_ETCHED_IN, SWT.SHA-DOW_ETCHED_OUT, SWT.SHADOW_IN,SWT.SHADOW_OUT y SWT.SHADOW_NO-NE. Aunque por defecto únicamente es po-sible seleccionar uno de los valores disponi-bles en el grupo, podemos permitir la elec-ción múltiple con SWT.NO_RADIO_GROUP.

Los métodos disponibles son: StringgetText(), devuelve su valor; y voidsetText(String cadena), añade un título algrupo.

Por ejemplo, para crear un grupo de úni-ca selección de título “Elige una ciudad” contres opciones disponibles, utilizamos:

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 seleccionaruna o más opciones de las mostradas.

Puede tener distintos estilos: SWT.BOR-DER, añade un borde a la lista; SWT.SINGLEo SWT.MULTI, permite una sola selección omás de una de sus elementos respectiva-mente; y SWT.H_SCROLL o SWT.V_SCROLLpara crear barras de desplazamiento hori-zontal y vertical.

Entre sus múltiples métodos disponiblespara utilizar, destacan: void add(String cade-na), añade un elemento a la lista; intgetItemCount(), devuelve el número de ele-

mentos disponibles; String[] getSelection(),devuelve el elemento o elementos seleccio-nados; void remove(int número), elimina unelemento; y void select(int número), selec-ciona un elemento.

Por ejemplo, podemos crear una listacon:

List lista = new List(entorno,SWT.BORDER | SWT.SINGLE);

y añadir cada uno de sus elementos con elmétodo add:

lista.add(“Elemento1”);

�� Menús, (Menu): elementos de uso in-dispensable para cualquier aplicación gráfi-ca, están diferenciados en tres tipos: barrade menú, mostrada horizontalmente en lasección superior de la ventana; desplega-bles, opciones mostradas al presionar enuna opción de la barra del menú; y emer-gentes, menús a los que se accede desde laventana de trabajo presionando el botón de-recho del ratón.

Mediante sus distintos estilos elegimos eltipo de menú a mostrar: SWT.BAR, para losde barra; SWT.DROP_DOWN, en los desple-gables y SWT.POP_UP para los emergentes.También está disponibleSWT.NO_RADIO_GROUP para no permitir lacreación de grupos con elementos selec-cionables.

La creación de los menús está divida endos constructores:

Menu(entorno, estilo)

donde entorno puede ser la propia ventanau otro menú existente y estilo define el tipode menú, y

MenuItem(menú, estilo)

para añadir las opciones a los menús.La variable estilo de este segundo cons-

tructor 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 deella; SWT.PUSH, para las opciones que pue-den presionarse; SWT.RADIO, crea un grupode opciones donde solo se puede seleccio-nar una y SWT:SEPARATOR, añade una líneade separación. Aquellas opciones que reali-zan una determinada acción deben usar elestilo SWT.NONE.

Los métodos más importante del cons-tructor MenuItem son: void setImage(Imageimagen), añade una imagen a la opción; voidsetMenu(Menu menú), crea un menú den-tro de uno ya existente; y void setText(Stringtexto), para definir el texto de la opción.

Por ejemplo, para crear una barra demenú con distintas opciones utilizamos elcódigo del Listado 1.�� Textos, (Text): añaden cuadros de textocon distintos tamaños que pueden ser mo-dificados por el usuario y poseer una o múlti-ples líneas.

SOFTWARE LINUX SWT

52 Número 66

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”);

Listado 1. Una barra de menú

50-54 Software (Swt) 7/4/06 12:41 Página 52

Page 52: Todo Linux 66

Estilo puede poseer los valores:SWT.MULTI, crea un cuadro de texto de múl-tiples líneas; SWT.READ_ONLY, impide modi-ficar su contenido; SWT.BORDER, crea unborde alrededor del cuadro de texto;SWT.SINGLE, crea una sola línea de texto ySWT.PASSWORD, muestra su contenidooculto. La alineación del texto se define conSWT.CENTER, SWT.LEFT y SWT.RIGHT,donde es posible añadir barras de desplaza-miento con SWT.H_SCROLL ySWT.V_SCROLL.

Algunos de los métodos disponibles son:String getText(), devuelve el texto escrito;void insert(String cadena), añade la cadenaal texto existente; void selectAll(), seleccionatodo el texto; void setText(String cadena), in-serta el texto; y void setTextLimit(int límite),crea un límite en el número máximo de ca-racteres posibles a escribir.

Por ejemplo, creamos un recuadro paraintroducir una contraseña con el código:

new Text(entorno, SWT.PASSWORD |SWT.BORDER);

■ ORDENACIÓN

Conocidos los distintos elementos que van aconstituir los programas, el paso siguientees aprender las diferentes clases existentespara posicionarlos en la ventana.

Antes de verlas, es necesario compren-der que existe un método en el objeto Shell,de nombre setLayout, para aplicar esta or-denación, siendo su código habitual:

entorno.setLayout(new claseOrdenación);

y que los elementos poseen un método lla-mado setLayoutData(data), a través del cualse aplican los distintos atributos disponiblesen las clases de ordenación para realizar co-locaciones más avanzadas.

Existen las siguientes clases de ordena-ción:�� FillLayout: es el método de ordenaciónmás sencillo disponible, ya que únicamente

permite crear una fila o columna con los ele-mentos.

Con el constructor:

public FillLayout(int tipo)

definimos su valor en tipo con SWT.HORI-ZONTAL para una fila y SWT.VERTICAL parauna columna. Al crear los elementos, éstosse van posicionando automáticamente en laventana con el mismo tamaño.

Por ejemplo, el código necesario paracrear tres botones ordenados verticalmenteserí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ónque FillLayout, pero permite que cada ele-mento posea un tamaño distinto medianteel uso de la función RowData.

Por ejemplo, modificamos el tamaño deun 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);

�� GridLayout: es la clase más utilizada pa-ra ordenar, ya que permite la mayor perso-nalización junto a un uso muy sencillo.

En su constructor:

public GridLayout(int columnas,boolean columnasIguales);

definimos el número de columnas y si éstasvan a tener el mismo tamaño. Mientras queen sus métodos podemos seleccionar ade-más otras opciones: int horizontalSpacing,espacio horizontal entre los elementos; boo-lean makeColumnsEqualWidth, tamañoigual o distinto de los elementos; intmarginHeight e int marginWidth para losmárgenes; int numColumns, número de co-lumnas disponibles e int verticalSpacing, es-pacio vertical entre los elementos.

Un mayor control de la posición de loselementos lo obtenemos con publicGridData(int estilo), con el que podemos ex-pandir el tamaño de una columna a las res-tantes con los métodos int horizontalSpan eint verticalSpan o modificar su tamaño conint heightHint e int widthHint. Algunos de losestilos disponibles son: FILL_BOTH, rellena eltamaño de la columna o fila con el elemento,y HORIZONTAL_ o VERTICAL_ seguidos deALIGN_BEGINNING, ALIGN_CENTER,ALIGN_END o ALIGN_FILL para las distintasalineaciones.

Por ejemplo, para crear cuatro botonesen dos columnas con el mismo tamaño, utili-zamos el código del Listado 2.

Como vemos, no es posible utilizar unmismo objeto GridData para todos los ele-mentos, ya que se solaparían entre sí.

SOFTWARE LINUXSWT

53Número 66

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);

Listado 2. Cuatro botones en dos columnasCreación de un editor de textos.

50-54 Software (Swt) 7/4/06 12:41 Página 53

Page 53: Todo Linux 66

SOFTWARE LINUX SWT

54 Número 66

�� Otras clases de ordenación: adicional-mente a las tres vistas, que son los más habi-tuales, existen FormLayout y StackLayout,que presentan una mayor complejidad deuso sin ofrecer ninguna ventaja. En líneas ge-nerales, FormLayout permite una personali-zación completa de la ventana de trabajo,siendo necesario definir la posición de cadauno de los elementos; y StackLayout estádestinada a situar varios elementos super-puestos, para que a través de determinadoseventos se muestren unos u otros.

■ EVENTOS

Los eventos tienen el cometido de ejecutaruna determina acción al interactuar el usua-rio con un elemento de la ventana o disposi-tivo como un ratón o teclado. En SWT loseventos se relacionan con cada uno de losobjetos del programa, siendo necesario es-pecificar el tipo de evento en una función es-pecífica dentro del objeto.

El uso de estos eventos se realiza me-diante una llamada al método correspon-diente de un objeto, donde cada uno poseeuna serie de métodos que pueden utilizarse,junto a un adaptador correspondiente y unafunción con un objeto de tipo Evento quecontiene las acciones a realizar.

La librería que debe incluirse para utilizar-los es la siguiente:

import io.eclipse,swt,events.*;

Los eventos más importantes y utiliza-dos son tres:�� Movimiento o redimensionado de laventana: controla el cambio de tamaño deuna ventana o su movimiento para adaptarsu contenido. Utiliza el eventoControlListener.

Por ejemplo, modificar el tamaño de laventana se controla con:

entorno.addControlListener(new ControlAdapter() {public void controlResized(ControlEvent evento) {

// acciones a realizar}

});

�� Pulsación de un botón o elemento:realiza una acción al presionar un botón oelemento de un menú. Utiliza el evento de ti-po SelectionListener.

Por ejemplo, la pulsación de un botón secontrolaría con:

boton.addSelectionListener(new SelectionAdapter() {public void widgetSelected(SelectionEvent evento) {// acciones a realizar

}});

�� Ratón: controla tanto su movimiento co-mo la pulsación de los botones mediante eluso de los eventos MouseListener,MouseMoveListener y MouseTrackListenery una función para cada una de las posiblesacciones.

■ DIÁLOGOS

Los diálogos permiten abrir ventanas parainformar al usuario de alguna situación espe-cial, como salir de un programa sin guardarun archivo creado, seleccionar elementosexternos como colores y fuentes de letra onavegar por los directorios.

El diálogo más habitual es el mensaje deinformación, donde se muestra una ventanapara confirmarnos un determinado evento,como salir del programa o guardar un archi-vo cuando ya existe previamente uno con elmismo nombre. Su constructor es:

int MessageBox(entorno, estilo)

que devuelve la opción presionada entre lasincluidas con la variable estilo, pudiendo to-mar los valores: SWT.OK, SWT.CANCEL,SWT.YES, SWT.NO, SWT.RETRY, SWT.ABORTy SWT.IGNORE, concatenados entre sí por elcarácter ‘|’.

Por ejemplo, para realizar una preguntaque el usuario debe contestar afirmativa onegativamente, utilizamos el código:

MessageBox mensaje = newMessageBox(entorno, SWT.YES | SWT.NO);mensaje.setMessage(“¿Sobreescribir?”);int resultado = mensaje.open();

siendo resultado la variable para almacenarla opción presionada y setMessage el méto-do para indicar el texto a mostrar en el diálo-go.

■ IMÁGENES

SWT admite la carga de múltiples formatosde imagen, como GIF, PNG, JPEG, TIFF,BMP, ICO y RLE, por lo que no es necesariodesarrollar una nueva clase para utilizarlas,sino que ya está implementada medianteImage, que posee el constructor:

Image(pantalla, ruta);

Éste carga la imagen en un objeto paramostrarlo a continuación desde el corres-pondiente elemento, siendo las etiquetasjunto al método setImage el más sencillo.

Para poder trabajar con esta clase esnecesario incluir la librería de gráficos aña-diendo en el programa la línea:

import org.eclipse.swt.graphics.*;

Por ejemplo, para cargar la imagen01.png del directorio /home/imagenes, es-cribimos:

Image imagen = new Image(pantalla,“/home/imagenes/01.png”);Label etiquetaImagen =new Label(entorno, SWT.NONE);etiquetaImagen.setImage(imagen);

siendo necesario haber utilizado una clasepara su posicionamiento, como GridLayout,y al finalizar liberar el espacio que ha ocupa-do en memoria con el método dispose(). ■

Ordenación mediante GridLayout.

Inserción de un mensaje al reducir la ventana.

Diálogo de navegación de directorios.

50-54 Software (Swt) 7/4/06 12:41 Página 54

Page 54: Todo Linux 66

n la anterior entrega de nues-tra miniserie sobre terminalestontos aprendimos lo sufi-

ciente de PXE como para ordenar lacarga de un kernel de Linux y de unfichero initrd a una máquina remota.Ahora vamos a aprender a configu-rar todos los servicios que necesita-remos para arrancar una máquinaremota con PXE.

Tal y como estudiamos, el protocoloPXE nos permite indicar remotamente auna máquina cliente que tenga éste en sutarjeta de red (prácticamente todas las tar-jetas modernas) de dónde descargaremosel kernel de Linux y la imagen de discoinitrd.

El problema es que hay muchas tareasque PXE no realiza: no sirve ficheros, ni mon-ta NFS en root, solamente por poner algu-nos ejemplos. Para ello debemos configuraruna serie de servicios adicionales tanto en elkernel de la máquina que mandamos alcliente, como en la máquina que hace deservidor de terminales.

En este taller terminaremos de aprendera configurar PXE, y estudiaremos la configu-ración de todos estos servicios adicionalesque necesitamos para poder arrancar deforma completa un sistema Linux sin disco através de este protocolo.

COMPLETANDO LA CONFIGURACIÓNDE PXEEn el número anterior ya explicamos cómoconfigurar el fichero de configuración deDHCP para PXE. Pero este protocolo tieneun fichero adicional, /etc/pxe.conf, que tam-bién tendremos que editar para que funcio-ne adecuadamente.

Los distintos parámetros que definimosen el fichero de configuración /etc/pxe.confson:

interface

Interfaz en el que está conectado el ser-vidor PXE. Si no definimos ninguno con esteparámetro, PXE escuchará en todos los in-terfaces.

default_address

Dirección IP del servidor PXE.

multicast_address

Si hemos activado el multicast, se co-rresponde con la dirección multicast del ser-vidor PXE. Si no empleamos multicast, el va-lor de este parámetro se ignorará.

mtftp_address

Dirección del servidor TFTP desde el quese descargará la imagen del kernel el clientePXE.

mtftp_client_port

Puerto de origen que el cliente debeabrir para la conexión con el servidor TFTP.

mtftp_server_port

Puerto de destino que el cliente debeabrir para la conexión con el servidor TFTP.

listen_port

Puerto por el que se escuchará PXE.

use_multicast

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 pre-guntar por la opción de arranque.

prompt_timeout

Tiempo transcurrido entre que apareceen pantalla el menú y se activa automática-mente 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 losservicios. Básicamente determina para cadaservicio 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 arqui-tectura de la máquina cliente que puede ac-tivar esta opción. Puede ser X86PC, I64EFIo IA64PC. Ya hablamos del campo de arqui-tectura en la entrega anterior de nuestra mi-niserie.�� Capa inferior: la capa más baja dearranque que se mandará a la máquina re-mota.�� Capa superior: la capa más alta dearranque que se mandará a la máquina re-mota.

Respecto a las capas de arranque, ten-dremos tres:

�� 0: Código de arranque�� 1: Kernel�� 2: Disco de arranque initrdLo normal es que la capa inferior sea 0 y

que según lo que queramos nos traigamosmás capas. Por ejemplo, indicando la capasuperior a 1, nos traeremos solo el kernel, ycon la capa superior a 2, también el initrd. Esrecomendable este último valor, salvo quetengamos muy claro lo que hacemos.�� Nombre: nombre de la opción. Si lo po-nemos a local, corresponderá con la entrada

Configurando terminalescon PXE: la NBP

El archivo de configuración de NBP, aunque con sintaxisdistinta, es análogo al de LILO

SOFTWARE LINUXTERMINALES CON PXE >>>

DAVID SANTO ORCERO

[email protected]

E

55Número 66

55-59 Software (TerminalesX) 7/4/06 12:41 Página 55

Page 55: Todo Linux 66

a menú del arranque local en la máquina re-mota que arranca por PXE. En este caso, seignorarán las opciones de capas. No debe-mos hacer nada más para dotar a la máqui-na remota de arranque local como opciónde PXE. El firmware de PXE remoto ya sabráqué hacer con esta opción si la selecciona-mos.�� Nombre extenso: Nombre extenso quetiene la opción.

Un ejemplo de fichero pxe.conf válidosuponiendo que trabajamos con un servidorPXE en la IP 10.1.1.1 sería el que vemos en elListado 1.

Como observamos, el archivo de confi-guración de PXE, /etc/pxe.conf, tiene infor-mación redundante respecto a los archivosde configuración de DHCP, que explicamosen la anterior entrega, y de NBP, que estu-diaremos a continuación. A pesar de que lasveces que el autor de este tutorial, por error,ha almacenado información inconsistenteen estos archivos, los datos de/etc/pxe.conf son los que han sido ignora-dos, esto no es recomendable porque pue-den ocurrir problemas según como sea elresto de la configuración del sistema, espe-cialmente la del servidor PXE y la del NBPque empleemos. Por ello, es recomendablemantener consistente la configuración deestos tres archivos.

CONFIGURANDO TFTPEl protocolo PXE ya está configurado. Ahoradebemos configurar el servidor de PXE paraque pueda servir los datos al cliente.

El servicio tftp normalmente es propor-cionado por el superdaemon inetd o xinetd;por lo que tenemos que instalar y dar de altatftp dentro de los servicios soportados porxinetd. La práctica totalidad de las distribu-

ciones modernas usan xinetd, de modo quenos centraremos en la configuración de tftpbajo este último.

Casi siempre al instalar PXE, la distribu-ción instalará correctamente tftp y xinetd, altirar de dependencias; por lo que no nos de-bemos preocupar de descargarlos y recom-pilarlos.

En el directorio /etc/xinetd.d editamos elfichero tftp, que deberá contener:

service tftp{disable = nosocket_type = dgramprotocol = udpwait = yesuser = rootserver = /usr/sbin/in.tftpdserver_args = -s /var/lib/tftpbootper_source = 11cps = 100 2flags = IPv4

}

De estas líneas, las únicas que puedeque tengamos que cambiar son:

server = /usr/sbin/in.tftpd

en la que debemos poner el ejecutable delservidor TFTP con su ruta completa (sueleestar en /usr/sbin, y si no, podemos encon-trarlo con find).

La otra línea que es posible que quera-mos modificar es:

server_args = -s /var/lib/tftpboot

Estamos pasando al servidor la opción-s, con el parámetro /var/lib/tftpboot. Real-

mente esta opción determina el directoriodonde tendremos los datos que se puedebajar el cliente PXE. Salvo que tengamosmuy claro por qué lo cambiamos, es mejordejar /var/lib/tftpboot.

Si nuestra distribución no lo ha hecho,creamos este directorio, y dentro de él, unopor cada arquitectura a la que queramosservir con el protocolo PXE por nuestro ser-vidor.

Por ejemplo, Mandriva crea dentro deeste directorio los subdirectorios IA64PC/ yX86PC/.

Dentro de cada arquitectura podemosponer las opciones a las que debe respon-der el servidor. Por ejemplo, si queremosresponder tanto con el kernel de Linux co-mo con el de memtest, y el primero tienecomo etiqueta linux y el segundo memtest,debemos tener dos directorios tal y como:

linuxmemtest

Como vemos, para cada línea servicedel archivo de configuración /etc/pxe.confpara una arquitectura determinada, debe-mos crear aquí un subdirectorio cuyo nom-bre sea igual al de la opción. En este directo-rio pondremos todos los datos que necesiteel kernel de esta opción para arrancar.

Dentro de dicho directorio, algunos fi-cheros pueden y deben tener unas exten-siones especiales, dependiendo de paraqué queramos emplearlos. Las extensionesque podemos encontrar en este directorioson:�� .0: corresponde con una NBP válida.

Habitualmente solamente hay una, que esel programa de arranque de PXE del pro-yecto PXELinux, el llamado linux.0.

�� .BIN: sector de arranque de CD, útil siempleamos ISOLINUX.

�� .BS: sector de arranque, útil si emplea-mos SYSLINUX.

�� .BSS: parche al sector de arranque de unsuperbloque de DOS, útil si empleamosSYSLINUX.

�� .C32: ejecutable COM32 de 32 bits, útil siempleamos COMBOOT.

�� .CBT: imagen COMBOOT, no ejecutabledesde DOS, útil si empleamos COMBO-OT.

�� .COM: imagen COMBOOT, ejecutabledesde DOS, útil si empleamos COMBO-OT.

�� .IMG: imagen de disco, útil si empleamosISOLINUX

�� .PSF: fuente para la terminal remota.

Observamos que podemos tener másinformación que únicamente el kernel y el

SOFTWARE LINUX TERMINALES CON PXE

56 Número 66

interface=eth0default_address=10.1.1.1multicast_address=10.1.1.1mtftp_address=10.1.1.1mtftp_client_port=1758mtftp_server_port=1759listen_port=4011use_multicast=0use_broadcast=0prompt=Pulse F8 para ver el menú de las opciones.prompt_timeout=2service=X86PC,0,2,memtest,Verifica la memoriaservice=X86PC,0,2,mandriva,Arranque en PXE de un Mandriva remotoservice=X86PC,0,2,instalamandriva, instalar mandrivaservice=X86PC,0,0,local,Arranque del disco duro localtftpdbase=/domain=orcero.org

Listado 1. El fichero /etc/pxe.conf

55-59 Software (TerminalesX) 7/4/06 12:41 Página 56

Page 56: Todo Linux 66

initrd de un sistema Linux. Esto es así porqueel NBP de PXELinux puede arrancar variossistemas operativos distintos, no solo Linux.Un poco más adelante veremos cómo po-demos hacerlo.

En este directorio es lo más común quepongamos la NBP que viene con PXElinux,llamada linux.0; aunque en las instalacionesde algunas distribuciones viene como pxeli-nux.0. También debemos poner aquí el ker-nel.

Si empleamos la NBP de PXELinux tene-mos aún un paso adicional de configuraciónextremadamente potente, ya que la NBP dePXELinux nos permite traer un fichero deconfiguración adicional, parsearlo y ejecutar-lo.

En este caso, las opciones de arranquese extraerán del archivo de configuración deNBP, además, la ubicación de los ficherosestará también indicada por este fichero yno seguirá el estándar aquí explicado. Porello, vamos a dar un paso más para ver quéhace el sistema y dónde están los ficheroscuando usamos esta NBP.

USANDO LA NBP DE PXELINUXUna vez que el cliente ha arrancado el NBPde PXELinux, éste va a buscar su archivode configuración. Aún no se han puesto lasopciones, ni se ha traído el kernel ni elinitrd.

El NBP va a buscar su archivo de confi-guración en el directorio en el que estaba, taly como indicamos con la opción:

filename “/X86PC/linux/linux.0”

del archivo de configuración de DHCP, co-mo ya explicamos en la entrega anterior. Siestamos empleando un archivo de configu-ración similar al que empleamos en el pasa-do número, lo encontraremos dentro del di-rectorio:

/DIRECTORIOTFTP/ARQUITECTURA/linux/pxelinux.cfg

donde DIRECTORIOFTP corresponde con eldirectorio donde estén los archivos que des-cargamos a través de TFTP, y ARQUITECTU-RA es la arquitectura del cliente.

En nuestro ejemplo, la ruta completa se-ría:

/var/lib/tftpboot/X86PC/linux/pxelinux.cfg

Dentro de este directorio, el NBP ejecu-tándose en el cliente va a intentar descar-garse el archivo de configuración de formaun tanto peculiar.

En primer lugar, pregunta por un archivocuyo nombre sea la MAC del cliente, sepa-rando los pares de dígitos hexadecimalespor “-”, y poniendo los caracteres alfabéticosen minúsculas.

Después, si este archivo no existía, elNBP ejecutándose en el cliente va a tomarsu IP, convertirla en hexadecimal y buscar elfichero de configuración dentro de este di-rectorio cuyo nombre coincida con la direc-ción IP del cliente en hexadecimal.

Si tampoco la encuentra, comienza abuscar el archivo de configuración del NBP,retirando sucesivamente el carácter corres-pondiente con el dígito hexadecimal menossignificativo, hasta encontrar un fichero quepueda descargar. En este caso, el NBP quese ejecuta en el cliente lo descargará y lo in-terpretará como el archivo de configura-ción.

Finalmente, si no encuentra ninguno delos archivos anteriores, el NBP que se ejecu-

ta en el cliente descargará el archivo defaulte interpretará éste como el archivo de confi-guración.

En el caso particular de nuestro ejemplo,suponiendo que el NBP que se ejecuta en elcliente con la MAC 00:0F:B0:67:8D:0A ganóel alquiler de la dirección 10.0.0.100 al servi-dor DHCP, los distintos nombres de ficherosque intenta descargar serán, los que apare-cen en el Listado 2.

El NBP de este ejemplo empleará comoarchivo de configuración el primer ficheroque consiga descargar de esta lista.

Todo este proceso tiene su lógica: nospermite tener un mecanismo simple a la ho-ra de establecer ficheros de configuracióngenéricos del NBP para subredes. De estemodo podemos tener un archivo de confi-guración por defecto para los que no tenganpolítica específica, y también definir uno con-creto para aquellos clientes que tengan ca-racterísticas excepcionales.

SOFTWARE LINUXTERMINALES CON PXE

57Número 66

COMBOOT es otro de los proyectosderivados de SYSLINUX. Particular-mente, se trata de un MBR que per-mite arrancar directamente progra-mas ejecutables en un formato simi-lar al .COM de MS-DOS de 16 bits. Adiferencia de éste, COMBOOT nopermite hacer uso del toda API deMS-DOS, al que accedíamos a travésde interrupciones, especialmente dela 21h. También soporta un formatode .COM ampliado, COM32, que essimilar al de MS-DOS pero para 32bits.COMBOOT solamente nos permite acceder a un subconjunto del API de MS-DOS a través de la interrupción 21h -en particular, algunas operaciones deconsola-; pero también trae un API propio con varias funciones muy útiles,fundamentalmente de arranque de programas, operaciones de lectura y es-critura sobre disco y operaciones sobre el puerto de comunicaciones.Podemos encontrar más información sobre el proyecto, así como una des-cripción más detallada de su API, en la página web http://syslinux.zytor.com/comboot.php

El proyecto COMBOOT �

/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

Listado 2. Ficheros a descargar

55-59 Software (TerminalesX) 7/4/06 12:41 Página 57

Page 57: Todo Linux 66

Es importante destacar que, en cual-quiera de los casos, ninguno de los ficherosde configuración del NBP (incluyendo los es-pecificados en el punto anterior con la IP enformato hexadecimal) debe tener más de127 caracteres entre su nombre completo yla ruta del fichero.

Si falla este proceso, es decir, o no en-cuentra un fichero de configuración apropia-do o falla la descarga de algunos de loscomponentes cuya descarga está especifi-cada en el fichero de configuración, el NBPpondrá en pantalla el mensaje de error du-rante cinco minutos. Si no hay ninguna reac-ción por parte del operador del cliente don-de se ejecuta el NBP, dicha máquina es reini-ciada por el propio NBP de PXELinux.

Falta por responder una pregunta, ¿porqué no hay un mecanismo similar a las su-bredes pero con las MACs? Por una razónlógica: que dos máquinas tengan MACsconsecutivas no significa nada más que pro-bablemente las tarjetas de red pertenecen almismo fabricante, e incluso al mismo lote.Esto es intrascendente para los problemasde la vida real. Una MAC identifica unívoca-mente a la tarjeta de red, y por eso en primerlugar el NBP busca el archivo de configura-ción para su MAC, permitiendo así estable-cer políticas por nodo, pero el concepto derango de MACs no tiene sentido en la orga-nización real de una red.

EL ARCHIVO DE CONFIGURACIÓNPARA EL NBPVamos a estudiar ahora la sintaxis del archi-vo de configuración del NBP. Las distintasopciones que podemos encontrar en estearchivo son:

PROMPT valor

Si valor es 0, solamente imprimirá elboot: para preguntar por la opción si se pulsala 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 ac-ción. Si valor está a 1, el NBP ignorará las te-clas “Shift”, “Alt”, “Capslock” o “Scrolllock”.

TIMEOUT tiempo

Indica, en décimas de segundo, el tiem-po entre que el NBP imprime sus avisos enpantalla y que toma la opción de arranquepor defecto. El tiempo máximo de cómputoes de 35.996 décimas de segundo (algomenos de una hora). Si pulsamos una teclaen este intervalo, esperará para siempre. Si

indicamos 0, el NBP no esperará nada, y sal-ta automáticamente a la opción por defecto.El valor por defecto de TIMEOUT es 0.

PROMPT a 0, NOESCAPE a 1 y TIMEOUTa 0 se emplean conjuntamente con muchafrecuencia para arrancar automáticamentedesde una opción predeterminada.

ONTIMEOUT opciónmenú opcioneskernel

Permite especificar qué opción del menúse activará cuando termine el tiempo de es-pera de la máquina cliente donde se ejecutael NBP de PXELinux, así como qué paráme-tros se le pasarán al kernel en dicha circuns-tancia. En caso de que no especifiquemosuna entrada por defecto con ONTIMEOUT,el NBP empleará los valores indicados en laopción DEFAULT. Si ésta tampoco existe, laopción por defecto será linux, sin opcionesespeciales de kernel.

DEFAULT opciónmenú opcioneskernel

Especifica la opción por defecto y susparámetros, de forma idéntica a ONTIME-OUT. La diferencia es que si hemos definidoONTIMEOUT, DEFAULT solamente determi-na qué opción se activará cuando pulsemos“Enter” sin teclear un nombre de imagen, alpreguntarnos el NBP por la opción de arran-que. Si no hemos incluido el parámetroONTIMEOUT, DEFAULT especifica tanto laopción que tomará el NBR cuando pulse-mos “Enter” sin opciones, como el caso enel que sobrepasemos el tiempo de espera.

FONT fichero

Carga la fuente especificada, descar-gando primero el fichero con esta fuente(debe estar en formato PSF). El NBP instala-rá la fuente antes de cualquier otra opera-ción.

KBDMAP mapateclado

Carga el mapa de teclado especificado.Habitualmente no es necesario, ya que lasimágenes con diacríticos en el nombre sue-len dar problemas, y no es convenienteusarlas. Sin embargo, puede ser importanteen el caso de que tengamos teclados másextraños, como Dvorak, QWERTZ oAZERTY. También puede ser útil, por la posi-ción de “-”, de “=” y de “/”, si permitimos conALLOWOPTIONS que el usuario pueda cam-biar opciones del kernel en arranque.

Podemos obtener el mapa de tecladopara el NBP de PXELinux haciendo uso delprograma keytab-lilo.pl que acompaña aLILO.

DISPLAY fichero

Vuelca el contenido del fichero especifi-cado en pantalla, inmediatamente antes deimprimir el texto boot:.

SAY mensaje

En lugar de volcar el contenido de un fi-chero, como hace la opción DISPLAY, vuelcael mensaje indicado como parámetro.

F1 ficheroF2 fichero....F10 fichero

Con el comando Fnumero, donde nu-mero es un entero entre el 1 y el 10, pode-mos volcar un fichero en pantalla cuando sepulsa la correspondiente tecla de función delteclado. Es muy común emplear esto paraficheros de ayuda. Si utilizamos una consolaserie definida con SERIAL, podemos activarlas opciones de ayuda con “Ctrl+F” y des-pués el dígito menos representativo. Porejemplo, “Ctrl+F+8” en una consola serie eslo 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” nofuncionan en NBP, ni en la consola serie, nien el teclado. Esto se debe a que “F11” y“F12” internamente no son teclas, sino agru-paciones de teclas; pero esto es otra histo-ria.

IMPLICIT valor

Si valor es 0, el NBP no permitirá cargaruna imagen del kernel si no está listada es-pecíficamente en una etiqueta LABEL.Aunque valor por defecto es 1, es mejor po-nerlo a 0 y evitar problemas de seguridad.

ALLOWOPTIONS valor

Si valor está a 0, el NBP no pasará las op-ciones al kernel especificadas desde líneade comandos. Como en el caso deIMPLICIT, aunque el valor por defecto de es-ta opción es 1, es mejor ponerlo a 0 y evitarproblemas de seguridad.

Una vez especificadas las opciones ge-néricas, debemos indicar cada posibilidadde arranque. Declaramos cada arranqueposible en el archivo de configuración deNBP con la opción:

LABEL etiqueta

donde etiqueta será el nombre de la opción.

SOFTWARE LINUX TERMINALES CON PXE

58 Número 66

55-59 Software (TerminalesX) 7/4/06 12:41 Página 58

Page 58: Todo Linux 66

Si se trata de un Linux, debemos indicarel nombre del fichero que contiene el kernelcon la opción:

KERNEL nombrekernel

Para añadir opciones a un kernel especí-fico, de forma similar al append de LILO, em-plearemos la opción:

APPEND opcioneskernel

Podemos poner un APPEND global a to-do el fichero de configuración de NBP; estasopciones se añadirán a todas y cada una delas distintas imágenes. Si para una en parti-cular no queremos añadir ninguna opción alkernel, ni siquiera las especificadas por de-fecto por el APPEND global, incluiremos laopción de APPEND en la definición de laimagen, pero con un “-”como único pará-metro, quedando:

APPEND -

Otro detalle importante de APPEND serefiere a las pilas de PXE y UNDI. Por defec-to, el NBP las libera antes de arrancar el ker-nel cargado. Pero si queremos mantener laspilas en memoria por alguna razón, debe-mos añadir como opción al kernel con AP-PEND la palabra clave keeppxe. Para losusos más comunes de PXE, esto no es enabsoluto necesario.

Otra opción interesante es:

IPAPPEND parámetro

Si parámetro es 1, añade al kernel la op-ción:

ip=IPcliente:IPservidorarranque:máscaradered

generada en caliente respecto a la informa-ción que conoce el NBP. Si necesitamosemplear esto con Linux, es que hemos he-cho algo mal: lo normal es utilizar dhclient enel initrd, o incluso emplear la opción ip=dhcpcomo parámetro del kernel. Sin embargo,en algunos escenarios sí puede ser útil.

Si parámetro de IPAPPEND es 2, añadeal kernel la opción:

BOOTIF=MACtargetadered

con la MAC de la tarjeta de red desde la queha arrancado. Como en el caso anterior, sinecesitamos hacer esto es que ya hemoshecho algún paso mal y tenemos que corre-gir cómo estamos lanzando dhclient en elinitrd. En principio, esta opción tiene sentido

solamente cuando contamos con más deuna tarjeta de red y por alguna razón éstasse nos cambian arbitrariamente de interfaz.

Finalmente, si parámetro de IPAPPENDes 3, añade al kernel tanto la opción ip comoBOOTIF, tal y como hemos estudiado.

Otra opción es:

LOCALBOOT tipo

La emplearemos para especificar queesta etiqueta se refiere a un arranque local.LOCALBOOT sustituye a la opción KERNEL,y tiene un único parámetro numérico, quedetermina el tipo de arranque local. Este pa-rámetro puede tomar tres valores distintos:�� 0: arranca normalmente en local. Es lo

que la práctica totalidad de los mortalesqueremos hacer si no arrancamos en red.

�� 4: arrancamos en local, pero mantenien-do la pila UNDI (Universal Network DriverInterface) en memoria.

�� 5: arrancamos en local, pero mantenien-do la pila UNDI y la pila PXE en memoria.

QUÉ PASA AHORAEl kernel está cargado, el initrd se monta...,ya estamos operando como un arranque lo-cal, pero lo hemos hecho a través de la red.Si nuestro objetivo era arrancar un memtest,o configurar un servidor de instalación deLinux, ya hemos llegado a nuestro objetivo.Sin embargo, muchos queremos este cono-cimiento para montar terminales, y para estonecesitamos dar el próximo paso: configurarun cliente y un servidor de NFS en el directo-rio raíz. Aprenderemos a realizar todo estoen el próximo número. ■

SOFTWARE LINUXTERMINALES CON PXE

59Número 66

# Preguntamos al usuario sobre lo que quiere hacerPROMPT 1# Por defecto, arrancamos desde localDEFAULT local# Imprimimos el contenido del fichero pantallapresentacionDISPLAY pantallapresentacion# El tiempo de espera a que el usuario pulse una opción# es de 5 segundosTIMEOUT 50# Un poquito más de seguridadALLOWOPTIONS 0IMPLICIT 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 estalabel local

LOCALBOOT 0# Memtest utiliza una línea como estalabel memtest

KERNEL memtestAPPEND initrd=images/linux/memtest.img

# El instalador de Mandriva emplea una línea como estalabel instalamandrivaKERNEL vmlinuzAPPEND initrd=network.rdz ramdisk_size=32000 vga=788kickstart=Mandrake/base/auto_inst.cfg.pl useless_thing_acceptedautomatic=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 estoAPPEND 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 elpróximo artículo

Listado 3. Ejemplo de archivo de configuración del NBP

55-59 Software (TerminalesX) 7/4/06 12:41 Página 59

Page 59: Todo Linux 66

n la entrega anterior estudia-mos las tecnologías de cintade 8mm, que son empleadas

con frecuencia por pequeñas y me-dianas empresas. Las tecnologíasde cinta que nos faltan por analizarson las de gama alta, que cumplenlas necesidades de aquellos usua-rios más exigentes.

La tecnología que estudiamos en los an-teriores números (DLT y 8mm) son útiles pa-ra PYMES. Esto es más que suficiente parael uso que se le dan habitualmente a los dis-cos de los servidores corporativos de estasempresas: las páginas web, backups de losdatos de las distintas bases de datos de laempresa, datos ofimáticos corporativos yotros datos adicionales. Aunque estos datosde forma individual no necesiten un gran es-pacio para copias de seguridad, sumandolas necesidades de todos los usuarios desistemas informáticos de la empresa y losdatos corporativos se requiere un volumenconsiderable. Por ello, el hecho de que au-mente el tamaño de la empresa suele hacernecesaria una tecnología capaz de realizarbackups de volúmenes masivos de informa-ción.

Existen también otros escenarios en losque las tecnologías estudiadas no son sufi-ciente ni para una PYME: por ejemplo, enempresas de infografía, donde el volumende datos generados es tan grande que lastecnologías estudiadas no pueden realizarsus backups de forma eficiente. También enemisoras de radio, productoras o canales detelevisión, independientemente de su tama-ño: la necesidad de almacenar sus conteni-dos generados en un formato digital sobre-pasa en tamaño lo razonable en dichas tec-nologías. Estos tipos de empresa suelen ha-cer uso de tecnologías de biblioteca de cin-tas, como la que estudiaremos a continua-ción.

LTOPara la necesidad de backups de cantida-des masivas de datos tenemos la gama altade cintas LTO. Se trata de una tecnología dealta capacidad desarrollada por IBM, HP y

Certance LLC (esta última comprada porQuantum). A pesar de haber sido implemen-tada por tres compañías, LTO es un están-dar abierto al que cualquier fabricante sepuede adherir.

Existen dos tipos de formato dentro deLTO: Ultrium, orientado a la alta capacidad, yAccelis, para la alta velocidad de acceso,lectura y escritura.

La idea que está detrás de Accelis es re-ducir el tiempo de acceso a un archivo em-pleando dos rodillos con cinta en lugar deuno. Esto le permite conseguir tiempos deacceso a un fichero de menos de diez se-gundos, frente a más de un minuto de pro-medio que tienen los cartuchos de Ultrium.

El problema de Accelis es que el resto delos parámetros de referencia con los quetrabaja son similares a Ultrium (20 MB porsegundo nativos de tasa de transferencia),además de que tiene una capacidad de al-macenamiento ridícula para su segmento demercado (25 Gigabytes nativos). En la prác-tica, podemos considerar a Accelis comomuerta antes de nacer, y será complicadoque encontremos una cinta con esta tecno-logía. Sin embargo, Ultrium sí ha triunfado en

su segmento de mercado, por lo que la es-tudiaremos a fondo.

EL FORMATO ULTRIUMUltrium es el otro formato de la familia LTO y,a diferencia de Accelis, sí ha tenido éxito.Dicho formato utiliza un solo cilindro para al-macenar la cinta, que es de media pulgadade ancho y contiene 384 pistas que se divi-den en cuatro bandas de 96 pistas cadauna. La información en una cinta Ultrium seescribe en las bandas interiores, para prote-ger los datos de la zona donde es más pro-bable que se dañen por el rozamiento. La in-formación se verifica al mismo tiempo quese escribe. El sistema Ultrium LTO incorporaademás el LTO-CM (Cartridge Memory), loque permite acelerar el acceso a la informa-ción.

Una de las características nuevas deUltrium es que emplea la técnica "Timing-based servo" a la hora de grabar la informa-ción. Esto supone una mejora en los servosde posicionamiento de los cabezales, gra-cias a la cual este formato asegura que loscabezales de lectura/escritura estén siem-pre posicionados de forma precisa, sobre las

SERVIDORESCINTA DE GAMA ALTA

Las tecnologías de cinta degama alta

>>>

DAVID SANTO ORCERO

[email protected]

E

60 Número 66

Existen distintos modelos de cintas AIT con diferentes característicasbásicas: todas comparten treinta años de vida útil archivadas y son cintasde 8 mm., con unas 5,3 micras de grosor de la cinta magnética. Pero hayuna serie de características específicas del tipo de cinta AIT.El primer tipo que se desarrolló fueron las cintas AIT-1 que tienen unacapacidad de 70 Gigabytes comprimidos (35 Gigabytes sin comprimir) en170 metros de cinta. La EEPROM de las AIT-1 es de 16 kbits. Estas cintassuelen costar unos 54 euros, lo que supone aproximadamente 1,54 eurospor Gigabyte.El sucesor de las AIT-1 son las cintas AIT-2, con 50 Gigabytes nativos (100Gigabytes comprimidos). Su longitud es de 230 metros, y la EEPROM esde 64 kbits. Suelen costar unos 58 euros, por lo que su precio baja hastalos 1,16 euros por Gigabyte.Las cintas más modernas son las AIT-3, con 100 Gigabytes de capacidadnativa (200 Gigabytes comprimidos), una longitud de cinta también de 230metros, lo que supone el doble de integración que las AIT-2. La capacidadde la EEPROM de las AIT-2 es de 64 kbits. El coste de una cinta AIT-3suele rondar los 62 euros, con lo que el precio de por Gigabyte de estetipo de cintas es de 0,62 euros.

Los tipos de cinta AIT y sus precios �

60-63 Servidores 7/4/06 12:42 Página 60

Page 60: Todo Linux 66

pistas correctas; minimizando así el retrasoproducido a la hora de poner el cabezal en laposición adecuada. Los productos Ultriumutilizan además un sistema servo dual, paramejorar la fiabilidad y la robustez de la opera-ción de posicionamiento del cabezal.

Otra mejora importante es el algoritmode compresión: emplea el LTO-DC, que esuna versión mejorada del ALDC (AdvancedLossless Data Compression). Entre sus ven-tajas destacamos que si los datos aumentanen tamaño al comprimirse -algo típico de da-tos ya comprimidos, como puede ser el ví-deo en MPEG4, fotos en JPEG o música enMPEG3-, la compresión se inhabilita auto-máticamente.

Las unidades Ultrium suelen tener unmecanismo mejorado de enganche de cin-tas en inserción, que evita que “haciendo elsalvaje” al insertar una cinta nos la “cargue-mos”, algo que conocen los que han emple-ado la DLT.

Todas las cintas Ultrium están hechas departículas de metal sobre una película dePEN (un polietileno), con un ancho de 12.65milímetros y un grosor de 8.9 micras. Su ta-maño exterior es de 2.1 cm. de alto, 11.3 cm.de ancho y 11.1 cm. de largo y pesan unos285.2 g, aunque las Ultrium3 pueden serunos gramos más pesadas.

La durabilidad de los cartuchos Ultriumsuele ser muy alta, normalmente almacena-dos tienen una vida media de treinta años.Permiten un millón de pasadas por cualquierparte de la cinta, y 20.000 pasadas comple-tas grabando de extremo a extremo; lo quesupone en la práctica que se pueden alma-cenar hasta 260 backups por cartucho.Podemos operar con los cartuchos Ultriumentre 10° y 45° C. Para un almacenaje co-mún de operativa diaria, el rango de tem-peratura suele oscilar entre 16° y 32° C, perosi queremos almacenarlos con vistas a largoplazo, el rango de temperaturas recomen-dado es entre 5° y 23° C. El rango de hume-dad para trabajar con la cinta oscila entre el10 y el 80 por ciento; aunque para almace-narlos a largo plazo es recomendable quemantengamos estos cartuchos a una hu-medad relativa de entre el 20 y el 60 porciento.

La tecnología Ultrium, por lo tanto, la po-demos considerar lo más alto de la gama.Cuando en nuestra empresa necesitemossacar backups de un volumen de datos real-mente grande, deberemos emplear cintasUltrium, y si los datos no caben, bibliotecasde estas cintas.

FAMILIAS DE CINTAS ULTRIUMDentro del formato Ultrium existen tres fami-lias de cintas, con capacidades y caracterís-

ticas distintas: Ultrium (LTO-1), Ultrium2 (LTO-2) y Ultrium3 (LTO-3).�� Las cintas Ultrium tienen una densidad de

grabación de 124 kbits por pulgada, 609metros de longitud de cinta y 312 pistas.Esto permite que tengan una capacidadde 100 Gigabytes nativos (200 Gigabytescomprimidos) y una tasa de transferenciade 15 Mbytes por segundo, lo que puededar 30 Mbytes comprimidos. Una unidadLTO-1 puede leer y escribir únicamente enlos cartuchos Ultrium.

�� Las cintas Ultrium2 tienen una densidadde grabación de 188 kbits por pulgada,609 metros de longitud de cinta y 584 pis-tas. Esto permite que tengan una capaci-dad de 200 Gigabytes nativos (400Gigabytes comprimidos). Una unidadLTO-2 puede leer y escribir en cartuchosUltrium2 y Ultrium.

�� La tercera generación es Ultrium3, y secorresponde con la tecnología más mo-derna; además, será la que encontrare-mos actualmente con más frecuencia enlas tiendas. Es capaz de almacenar 400Gigabytes nativos por cinta (800Gigabytes comprimidos) gracias a quehan aumentado a 704 el número de pis-tas, a 680 metros la longitud de la cinta ysu densidad de grabación ha subido a245 kbits por pulgada. Además, tienenuna tasa de transferencia de 80 Mbytespor segundo nativos (160 Mbytes por se-gundo comprimidos). Una unidad LTO-3puede leer y escribir en cartuchosUltrium3 y Ultrium2, y puede leer solo loscartuchos Ultrium.

LOS FORMATOS DE TRAVANAntes de terminar de hablar de las cintas, va-mos a tratar algunos temas que nos hemosdejado colgados en anteriores entregas,uno de ellos ha sido las tecnologías QIC yTravan existentes.

Los primeros QIC empleaban cintas deun cuarto de pulgada. Dentro de estos car-tuchos, destacamos:�� QIC-11: 20 MB, en una cinta de cuatro

pistas.

�� QIC-24: 45 MB o 60 MB en una cinta denueve pistas.

�� QIC-120: 125 MB en una cinta de 15 pis-tas.

�� QIC-150: 150 MB en una cinta de 18 pis-tas.

�� QIC-525: 525 MB en una cinta de 26 pis-tas.

Puede que aún nos encontremos algu-no de estos cartuchos en nuestra empresa,pero hace tiempo que no se venden ni uni-dades ni cartuchos de esta tecnología.

Después de QIC, como evolución nacióTravan, que utilizaba cintas más anchas -de8mm- para obtener una capacidad de alma-cenamiento mayor.

Los modelos de Travan más importantesque nos podemos encontrar son:�� QIC-80: a pesar de su nombre, pode-

mos considerarlo Travan. Permite alma-cenar entre 80 y 500 MB empleando en-tre 28 y 36 pistas.

�� TR-1: Permite almacenar 400 MB emple-ando 36 pistas. Internamente utiliza el for-mato de cinta de QIC-80.

�� QIC-3010: Su capacidad es de 340 MB,empleando 40 o 50 pistas.

�� TR-2: Permite almacenar 800 MB porcinta en 50 pistas. Internamente usa elformato de cinta de QIC-3010.

�� QIC-3020: Almacena 670 MB por cintautilizando 40 o 50 pistas.

�� TR-3: Emplea internamente el formatode cinta de QIC-3020 y permite almace-nar 1,6 Gigabytes nativos por cinta en 50pistas.

�� QIC-3080: Con 60 pistas puede almace-nar 1,2 Gigabytes nativos, y con 72 pistashasta 1,6 Gigabytes nativos.

�� QIC-3095: Este formato utiliza 72 pistasy puede almacenar 4 Gigabytes nativos.

�� TR-4: Almacena en cintas de formatoQIC-3095 con 72 pistas. Puede almace-nar 4 Gigabytes nativos. Los modelosTravan 8 GB y los Travan NS8 tienen lamisma capacidad.

�� TR-5: Utilizando 108 pistas, almacenahasta 10 Gigabytes nativos.

SERVIDORESCINTA DE GAMA ALTA

61Número 66

Muchas de las tecnologías que hemos comentado no incluyen el cabezal enla cinta, lo que significa que tendremos un cabezal para todas las operacio-nes a lo largo de la vida útil de la unidad. Como podemos suponer, el cabezalse 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 cuida-dos en la limpieza que otras. De cualquier forma, en todas las tecnologías lafrecuencia del limpiado dependerá de la cantidad de uso que le demos a launidad de cinta.

Limpiando los cabezales �

60-63 Servidores 7/4/06 12:42 Página 61

Page 61: Todo Linux 66

La unidad LTO-3 Quantum

De las distintas unidades LTO disponibles, des-tacaremos la Quantum LTO-3. Esta unidad escompatible con Linux y está completamentesoportada, incluso su actualizador de firmwareestá portado para este sistema.Comparte parámetros con las unidades están-dares LTO-3: 400 Gigabytes de capacidad nati-va, capaz de leer y escribir cintas LTO-3 y LTO-2, y de leer cintas LTO-1. Puede soportar trans-ferencias de pico de 160 MBytes por segundo(nativos), y transferencias sostenidas de 69MBytes por segundo (nativos). El tiempo mediode acceso a un fichero es de 68 segundos.Tiene un buffer de 128 MB internos, y se co-necta al bus Ultra160 SCSI de la máquina.Sus parámetros operacionales son similares alos de otras unidades: entre 10ºC y 40ºC, y unmáximo de humedad relativa del 80 por ciento.Podemos encontrar esta unidad en varios for-matos, todos con conexión Ultra160 SCSI: inter-na, externa de sobremesa, y para montar enrack. En este último caso, ocupa 2Us.El precio de esta unidad oscila entre los 3.700euros de la interna, los 4.100 de la externa desobremesa y los 4.600 de la rackeable. Hay unmodelo rackeable dual, de dos unidades en unacaja, que podemos encontrar en el mercado por8.000 euros.

Todos estos cartuchos son lo suficiente-mente antiguos para que no encontremos niunidades ni cintas en el mercado, aunque enciertas empresas y universidades puedenexistir todavía algunos con backups pasados.

De cualquier forma, existen tecnologíasTravan que se emplean en la actualidad:NS20 y Travan-40. La primera alcanza 10Gigabytes nativos (20 comprimidos) con unatasa de transferencia de 2 Megabytes porsegundo. Por otro lado, los más modernos yrecomendables Travan 40 GB permiten al-macenar 20 Gigabytes nativos (20 compri-midos) con una tasa de transferencia de 4Mbytes por segundo. Estos últimos cartu-chos son muy útiles para profesionales free-lance, ya que permiten almacenar una canti-dad de datos suficiente para este tipo demercado, con un coste por unidad muy bajoy con cintas que pueden ser reescritas variasveces más que la tecnología DAT, en particu-lar, admiten 10.000 backups completos.

MAGNETO-ÓPTICOSNo terminaremos de hablar de backups sinmencionar una tecnología que lleva años enel mercado y, aunque no se acaba de impo-ner, siempre ha existido como una alternati-va de backup a las cintas.

El gran problema de las cintas reside ensu capacidad de posicionar los cabezales,

ya que no han podido hacer la pista arbitra-riamente estrecha. Y la razón no es que nopodamos tener cabezales capaces de leerpistas muy pequeñas (los discos duros, porejemplo, tienen dichos cabezales), sino quepor la naturaleza móvil y variable del medio,no se pueden emplear pistas tan pequeñascomo los discos duros sin problemas de po-sicionamiento de los cabezales.Recordemos que en un disco duro las pistasestán a distancias conocidas y fijas del cabe-zal; cuando esta distancia cambia, aunquesea levemente por razón de uso continuadodurante años del servo, el disco duro muereentero.

Una solución ingeniosa a este problemaha sido emplear pistas ópticas para posicio-nar el cabezal. Y en esto consisten las unida-des magneto-ópticas: cada cierto númerode pistas magnéticas, que almacenan da-tos, hay una pista óptica, con información deposicionamiento. De hecho, el servo de loscabezales lleva un lector óptico, que se en-carga de posicionar adecuadamente la pistaóptica. Como la distancia entre los cabeza-les magnéticos entre sí, y entre los cabeza-les magnéticos y el cabezal óptico es fija yconocida, podemos ajustar la precisión de lalectura a niveles varios órdenes de magnitudsuperiores a los que nos permite la tecnolo-gía de cintas tradicional.

SERVIDORES CINTA DE GAMA ALTA

62 Número 66

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 GigabyteEsto 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 porGigabyte. 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 porGigabyte los de 400 GB; lo que supone almacenar más del doble por cintaque el medio más barato (SDLT-320). Puede sorprendernos el hecho deque 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 almacenamientorealmente masivo. De hecho, es muy frecuente comprar las cintas LTO enpacks de veinte (recordemos que esta tecnología está reservada paraempresas que realizan backups constantes de mucha información). Enestos 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 dobleque una cinta LTO-3; y los CDs y DVDs con impuesto de la SGAE no com-piten en precio (0,8557 y 0,7979 euros el Gigabyte, respectivamente). ElDVD 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 cintaLTO, para almacenamiento masivo de datos audiovisuales éste formatoes el rey.

Los precios de las cintas Ultrium �

60-63 Servidores 7/4/06 12:42 Página 62

Page 62: Todo Linux 66

La biblioteca de cintasQuantum PX720Se trata de un sistema masivo que permite al-macenar entre cientos y miles de terabytes dedatos a través de un brazo robótico, un almacénde cintas y uno o varios lectores.Las bibliotecas de cintas son el único sistemade almacenamiento que permite guardar estascantidades tan impresionantes de datos, a uncoste por terabyte bastante razonable; puedenincluso hacerse a medida para determinadosclientes que necesitan más de un millar de te-rabytes.Pero si una biblioteca de cintas ya es grande:una de tamaño compacto como la QuantumPX720 no va a ser menos. Es una "cajita" de191cm de altura, 127cm de profundidad y 76centímetros de anchura, que consume un totalde 1.600 vatios.Como unidad de cinta, podemos instalarle entreuno y veinte unidades SDLT320, SDLT 600, DLT-S4, LTO-2 o LTO-3. Cada unidad tiene slots para726 cintas, lo que nos da un total de 14.520slots. Esto nos permite almacenar más de me-dio millar de terabytes.El rendimiento, dado que es capaz de operar enparalelo con todas sus unidades, es excelente:hasta 5,8 terabytes por hora en backup, lo quesupera el Gigabyte y medio por segundo. La co-nexión a esta unidad se puede hacer a travésde Fibre Channel, SCSI o Gigabit Ethernet.Además, se administra vía web, y soporta altadisponibilidad y redundancia de componentes.Los precios de este tipo de hardware oscilanmucho según a quién se lo compremos y enqué cantidad; pero para que nos hagamos unaidea, el precio de una PX720 sin cintas y sinunidades de cinta (que hay que comprar por se-parado, y sumar el precio a la biblioteca), es deunos 60.000 euros. Las bibliotecas compactasde cintas más modestas bajarán de precio, peroserá complicadoencontrar una bi-blioteca de cintascuyo coste tengamenos de cincocifras significati-vas. Por poner unejemplo: el mo-delo más baratode Quantum debiblioteca de cin-tas, la M1500, nobaja de los12.000 euros, yaún así este pre-cio es sin cintas ysin unidades decinta.

A cambio de todo esto, el precio porGigabyte de las unidades magneto-ópticasde siempre ha sido muy alto. Pero por su co-modidad de manejo, su velocidad de acce-so (un orden de magnitud más rápido quelas disqueteras), el razonablemente mode-rado precio de las unidades y su fiabilidadaceptable (no tanto como una cinta, peromucho más que un disco duro) han hechoque estas unidades hayan tenido un nichode mercado pequeño, pero fiel y constante.

■ IOMEGA

La gran empresa de unidades magneto-óp-ticas populares ha sido siempre IOMEGA.Sus unidades ZIP y JAZZ, aunque hoy en díasean tecnológicamente obsoletas, se hanempleado durante años para realizar bac-kups fiables y aún se usan en muchos luga-res. IOMEGA en la actualidad tiene dos solu-ciones magnetoópticas interesantes: por unlado está el ZIP 750, sucesor de la tecnolo-gía ZIP, y que almacena 750 MBytes por dis-co. Una tecnología muy barata, pensada pa-ra almacenar la contabilidad personal, losdocumentos personales y pocos datosmás. Por otro lado, presenta la tecnologíaREV, aún más interesante que la ZIP 750: escapaz de almacenar 35 Gigabytes por discoa un precio de entrada, principalmente enunidades, muy competitivo. Podemos con-siderar a las REV como las sucesoras de losdiscos JAZZ.

Las cintas REV de IOMEGA compitencon Travan en el segmento de mercado delprofesional independiente. IOMEGA afirmaque ha vendido un millón de unidades REV,lo que son muchas unidades de un magne-to-óptico de su gama.

HP, por su parte, ha sacado UDO (UltraDensity Optical), para suceder a las unidades

MO de la propia compañía. Las UDO de HPllegan a los 30 Gigabytes de capacidad nati-va, aunque por precio y por rendimiento noson unidades competitivas y las menciona-mos solamente para decir que “hay másgente en la tecnología magneto-óptica”.Pero en la práctica, IOMEGA es el rey abso-luto de la tecnología magneto-óptica.

QUÉ VENDRÁ DESPUÉSLas cintas son complicadas por la cantidadde tecnologías existentes, y porque dadasu función (backups a muy largo plazo),puede que éstas se hubiesen grabado in-cluso antes de que nosotros entráramos enla empresa o en el departamento de la uni-versidad. El problema en ese caso es quetenemos entre manos un cartucho de unacinta que tiene unas siglas con su tecnolo-gía, pero que no sabemos ni siquiera cómopodríamos leerlo. Además, puede que lacinta no almacene más información que undisquete, e incluso que lo haga en un for-mato de hace veinte años, pero contieneinformación crítica a la que es imprescindi-ble acceder (el que escribe este taller se haenfrentado ya a este problema en la vidareal). Sin embargo, después de los últimosnúmeros, tenemos ya claro el complejo“ecosistema” de este elemento tan crítico, ycon frecuencia tan incomprendido, en elcentro de datos como son las cintas; y po-dremos realizar decisiones de compra so-bre tecnologías de cinta y reconocer lasprincipales que es posible encontrar en lasempresas.

En la próxima entrega (Número 68) denuestra sección de servidores volveremos alas entrañas de las máquinas, la dedicare-mos a Infiniband, una tecnología que segurodará que hablar. ■

SERVIDORESCINTA DE GAMA ALTA

63Número 66

En la actualidad hay dos tipos de cintas Travan que puede resultar intere-sante comprar: Travan 20, que suelen costar alrededor de 42 euros, yTravan 40, en torno a 49 euros, aunque se pueden encontrar paquetescon tres cartuchos Travan a 138 euros sin problemas.Todo esto hace que el precio por Gigabyte en euros de Travan 20 sea de2,1 euros; y el de Travan 40 oscile entre los 1,15 y 1,22 euros. Si compara-mos estos precios por Gigabyte con los medios de almacenaje máscomunes vemos que no resultan competitivos respecto a DAT ni a losmedios ordinarios (disco duro, DVD). La razón de emplear Travan, por lotanto, no es el coste por Gigabyte bruto ante backups que haremos unavez y almacenaremos durante años.Sin embargo, recordemos que la durabilidad de Travan ante grabacionessucesivas en la misma cinta es muy superior a DAT, el competidor en susegmento. Una unidad DAT admite 100 reescrituras, mientras que unaTravan admite 10.000. Si tenemos unas pocas cintas para hacer backupsdiarios, y las rotamos, práctica muy común entre profesionales freelance yempresas pequeñas, el TCO de Travan es muy inferior al de DAT.

Precios de cintas Travan �

60-63 Servidores 7/4/06 12:42 Página 63

Page 63: Todo Linux 66

ras nueve meses de intensagestación nace la quintaversión de Fedora Core, el

proyecto tutelado por Red Hat ydesarrollado por una comunidadde voluntarios para crear un siste-ma operativo Linux fácil, multipro-pósito, estable, potente y comple-tamente open source que sirva debase a las versiones Enterprise deRed Hat Linux.

Si bien no es lo más importante a des-tacar, lo primero que nos llama la atenciónes el cambio de look en el proyecto: nue-vos logos, tipografías y tema principal quese hace patente desde el instalador, tam-bién nuevo, y sin duda de extrema senci-llez en su manejo.

NOVEDADESLos principales cambios debemos encon-trarlos en la actualización de todos lospaquetes y la inclusión de nuevas tecnolo-gías y, como acabamos de mencionar, enel 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 ca-pacidades de GNOME 2.14 y KDE 3.5.Ejemplos ilustrativos son GNOME UserShare, que facilita una gestión simple y efi-ciente para la compartición de ficheros oGNOME Power Manager y GNOMEScreensaver que proporcionan nuevas eintegradas capacidades en la gestión deenergía. Además, se incluyen los primerosdesarrollos del proyecto Fedora Rendering,que deberá proporcionar al escritorio ca-racterísticas avanzadas en visualización,rendimiento y facilidad de uso, todo basa-do en OpenGL.

Muy significativo en esta nueva ver-sión de Fedora es que se incluye por pri-mera vez Mono y, por tanto, aplicacionescomo Beagle, un buscador para nuestroescritorio; F-Spot, una utilidad para la ges-tión de fotos y Tomboy, una miniaplica-ción para la gestión de pequeñas notas.Siguiendo con las novedades a nivel desoftware de Escritorio, significar que encuanto a utilidades multimedia destacanla presencia de Gstreamer 0.10 quemejora muy mucho las características de

las versiones anteriores de esta herra-mienta, además de una nueva versión delconocido reproductor de películas Totem.En cuanto a software de oficina destacarque Firefox 1.5 es el navegador pordefecto y OpenOffice.org 2.0 la suite deofimática, como no podía ser de otramanera.

Una nueva herramienta que se haincluido es SCIM, se trata de un sistemapara facilitar la instalación de Fedora enmúltiples lenguajes. Y hablando de instalar,el antiguo gestor gráfico de paquetes hasido sustituido por la primera versión deuna nueva generación de herramientas,entre ellas encontramos Pup, un sencillointerfaz para la actualización del sistema yPirut, un nuevo gestor de paquetes.Ambos están basados en la utilidad Yumpara homogeneizar todo el proceso deactualización y mantenimiento de paque-tes del sistema.

Para terminar este recorrido sobre lasmejoras de Escritorio, destacar que mu-chos programas de GNOME se aprove-chan ya de la librería de gráficos Cairo a lahora de presentar sus nuevos interfaces.

■ ADMINISTRACIÓN

Entre las principales mejoras y novedadesque afectan a administradores y desarro-lladores encontramos el mayor y mejora-do soporte para virtualización con Xen,que incluso se puede instalar y configurardesde el instalador principal del sistema,algo ya incluido en las últimas versionesde SUSE.

Importante también la presencia de lanueva versión 2.2 del servidor HTTPApache. Esta actualización incluye mejo-ras relativas a la autenticación, soporte de

bases de datos y capacidades de proxy.Asimismo destacan la inclusión de losgestores de bases de datos libres MySQL5.0 y PostgreSQL 8.1.

En cuanto a utilidades para la monitori-zación del sistema y análisis de rendimien-to, destacan dos aplicaciones nuevas,System Tap y Frysk. A éstas se suma laherramienta system-config-cluster, tam-bién incluida por primera vez en Fedora,que permite gestionar la configuración deun clúster en modo gráfico.

■ SISTEMA

Cabe destacar el importante cambio quese produce al incluirse la nueva versión delsistema gestor de ventanas libre X.org 11R7.0 con su nueva arquitectura modular.Éste va a proporcionar una actualizaciónde drivers rápida y sencilla, con lo que ellorepresenta a nivel gráfico para los nuevossistemas Linux en general y Fedora en par-ticular.

El compilador por defecto es GCC 4.1 y,de hecho, todos los paquetes en esta rele-ase han sido compilados con esta versión,produciéndose una mejora en el rendi-miento general del sistema. Finalmentedestacar que la versión del núcleo incluidaen Fedora 5 es una basada en el 2.6.16 yque se ha añadido soporte para las tarjetaswireless Intel PRO/Wireless 2100 y 2200.

Podemos concluir antes de pasar alproceso de instalación que esta nuevaversión es un paso adelante muy significa-tivo en Fedora, no es solo el nuevo aspec-to y las nuevas utilidades incluidas, es elinstalador, mejor y más rápido, la optimiza-ción general del sistema, la mejor detec-ción y soporte de hardware y un largoetcétera que seguro iréis descubriendorápidamente.

El punto débil sin duda está en lareproducción del formato DVD y MP3 pordefecto.

INSTALANDO FEDORA CORE 5El instalador ha cambiado en lo referenteen su aspecto y si bien se sigue basandoen Anaconda, se aprecia una clara evolu-ción y una mayor integración con Yumpara todo lo relativo a actualización depaquetes, pero vayamos detallando losprincipales pasos para instalar FedoraCore 5 en español:

CONTENIDO DVD-ROMFEDORA CORE 5

Fedora Core 5>>>

64 Número 66

T

Configurando el cortafuegos y buscando actualizaciones.

64-66 Contenido DVD (Fedora) 18/4/06 16:56 Página 64

Page 64: Todo Linux 66

� PASO 1:

COMIENZO

Insertamos el DVD en la unidad lectora yreiniciamos el equipo, que deberá estarconfigurado adecuadamente para quepueda arrancar desde la unidad deCD/DVD. Veremos que se carga una pan-talla de presentación donde podemospresionar “ENTER” para proceder con unainstalación gráfica normal. Asimismo, senos informa de las distintas opciones pararealizar una instalación; modo texto, sindetección de hardware, parámetros delnúcleo, testeo de memoria, etc.

� PASO 2:

INTEGRIDAD DVD

Ahora podemos proceder a comprobar laintegridad del DVD, este paso es necesa-rio y no podemos abortarlo. Una vezpasamos el test, pulsamos en “Continue”para que en unos segundos se cargueAnaconda, el instalador de Fedora.

� PASO 3:

LENGUAJE Y TECLADO

Ya estamos en modo gráfico, podemospulsar en “Release Notes” para leer en in-glés notas sobre la instalación y novedadesde esta nueva versión. A continuación en-tramos en la pantalla de selección de len-guajes entre los cuales encontramos el es-pañol y el catalán. No están disponibles eneste DVD euskera ni gallego, si bien pode-mos posteriormente buscar paquetes paraestos dos lenguajes una vez instalado el sis-tema desde el menú Escritorio-Administra-ción-Lenguaje (en GNOME). Acto seguidoseleccionamos nuestro tipo de teclado.

� PASO 4:

ACTUALIZACIÓN

En este momento el instalador nos pre-gunta si queremos actualizar desdeFedora 3 o Fedora 4 a esta versión o reali-zar una nueva instalación completa.

� PASO 5:

PARTICIONADO

Si hemos elegido instalar un nuevo siste-ma, estaremos en este paso donde debe-mos escoger la partición en la que se insta-lará Fedora. Vemos que aunque hayamoselegido español como lenguaje de instala-ción, las distintas opciones de formateoaparecen en inglés. Este pequeño bug nodebe suponer mayor problema, ya que lasopciones son las habituales que nos ofrececualquier distro a la hora de particionar:usar todo el disco duro, usar el espacio li-bre, usar el espacio de una partición Linuxantigua o dimensionar el disco duro noso-tros mismos. Procedemos con la elecciónmás adecuada a nuestras necesidades (enel cuadro de abajo se detalla más informa-ción para el que la necesite) y continuamoscon la instalación del sistema.

� PASO 6:

CARGADOR DE ARRANQUE Grub es el boot loader o cargador dearranque, este pequeño programa toma

CONTENIDO DVD-ROMFEDORA CORE 5

65Número 66

El hecho de que la instalación falleen uno de los primeros pasos pue-de deberse a diversas razones,pero una medida recomendable atomar sería probar a realizar unainstalación añadiendo la directivaacpi=off. ACPI es responsable demuchos errores de instalación, ydesactivándolo podría completar-se algún proceso que hubiera falla-do en un paso previo.

ACPI �

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 dis-cos que no deban ser afectados deben desmarcarse, aunque en caso dedisponer 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 dis-co duro.

�� Use free space on selected drives and create default layoutCon esta opción no se modifica ninguna partición existente. Fedora se ins-talará en el espacio libre del disco seleccionado en caso de ser posible.

�� Create custom layoutParticionado manual, nosotros estableceremos el número de particio-nes, el tipo y el tamaño de éstas, es la opción adecuada para los másexpertos o incluso para cualquiera que ya haya instalado alguna vez unsistema Linux.

Particiones �

64-66 Contenido DVD (Fedora) 18/4/06 16:56 Página 65

Page 65: Todo Linux 66

el control cuando encendemos nuestroPC y determina qué sistema operativo, encaso de tener más de uno, se iniciará.

� PASO 7:

CONFIGURACIÓN DE RED

Por defecto Fedora asume que trabaja-remos con el protocolo DHCP, si preferi-mos configurar manualmente nuestratarjeta de red es ahora cuando debemoshacerlo marcando la opción Manual eintroduciendo los típicos valores paramáscara de red, puerta de enlace yDNSs.

� PASO 8:

AJUSTES

Ahora configuramos la zona horaria quenos corresponda, introducimos la clave deroot o superusuario y continuamos con lainstalación.

� PASO 9:

TIPO DE INSTALACIÓN

Anaconda nos pregunta para qué tipo depropósito queremos incluir más softwareen el proceso de instalación, por defectoviene activado para entorno de oficina,pero también podemos marcar paradesarrollo de software o servidor web.Finalmente podemos marcar la opción

que nos permite personalizar la selecciónde paquetes. Tras ello comenzará el pro-ceso de copiado de paquetes que duraráunos minutos.

� PASO 10:

PRIMER ARRANQUE

Una vez que se ha instalado los paquetesseleccionados pulsamos en “Reiniciar”, ytras ello se cargará Fedora Core 5. Ahoratenemos que configurar algunos pará-metros adicionales del sistema. Lo prime-ro es aceptar la licencia de distribución deFedora Core 5 (GNU GPL), después con-figuramos las opciones de firewall ySELinux, introducimos la fecha y hora delsistema, seleccionamos una resoluciónadecuada de pantalla y el tipo de monitorque tenemos, para concluir creando unacuenta de usuario normal con la que tra-bajaremos habitualmente. Y con estohemos terminado el proceso de instala-ción. ■

CONTENIDO DVD-ROM FEDORA CORE 5

66 Número 66

SISTEMA� Kernel 2.6.16� X.org X11R7.0ESCRITORIO� GNOME 2.14 y KDE 3.5� Pirut� Beagle� OpenOffice 2.0� Nautilus 2.14MULTIMEDIA� Gstreamer 0.10� Helix Player 1.0� Nautilus, K3bDISEÑO� The Gimp 2.2.10� F-spot 0.1.10INTERNET� Evolution 2.6.0� Firefox 1.5BASES DE DATOS� MySQL 5.0 y PostgreSQL 8.1DESARROLLO� Eclipse 3.1.2� Mono 1.1SERVIDOR� Apache 2.2JUEGOS� GNOME-Games

Software incluido �

Aspecto de Fedora Core 5 una vez que hemos concluido lainstalación.

�� Fedora Core 5 está optimizada para Pentium 4 pero soporta versionesanteriores 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 instala-

ción típica puede requerir 3 Gb y llegar a 9 Gb

Requisitos mínimos �

64-66 Contenido DVD (Fedora) 18/4/06 16:56 Página 66