jueves, 20 de marzo de 2008
BigDog: Un robot todoterreno
Ya era hora de ver un robot con movimientos tan increibles como estos y no los tipicos robots que suben escaleras y dicen hola con la mano, se nota que aquí sí ha habido una buena inversion en I+D...
Realmente acojona lo que puede llegar a hacerse con tamaña bestia, porque si es capaz de cargar 150kg a sus espaldas ya me imagino de que acabara cargado, y sus usos militares pueden llegar a ser infinitos. Esperemos que lleguen a usar estos engendros con seriedad y un poco de sentido común.
Salu2!
jueves, 6 de marzo de 2008
Escritorio Remoto con VNC
Hoy quiero hablaros de algo que hará vuestra vida algo mas cómoda, en el caso de que uséis varios PC's separados por una distancia considerable (1,5m ya se considera un desplazamiento grande XD).
El tema esta en conseguir un escritorio remoto de una maquina separada en la distancia (de momento dentro de la misma LAN) desde vuestro Linux. Para ello vamos a usar la aplicación VNC, que nos permitirá obtener estas conexiones de forma fácil y sencilla ;)
Cito de la wikipedia:
VNC es un programa de software libre basado en una estructura cliente-servidor el cual nos permite tomar el control del ordenador servidor remotamente a través de un ordenador cliente. También llamado software de escritorio remoto. VNC permite que el sistema operativo en cada computadora sea distinto: Es posible compartir la pantalla de una máquina de "cualquier" sistema operativo conectando desde cualquier otro ordenador o dispositivo que disponga de un cliente VNC portado.Conociendo mas o menos la idea de lo que es VNC procedemos a obtener los paquetes que nos harán disfrutar de esto (describiré los pasos en Debian/Ubuntu, en otras distros sera similar):
apt-get install vncEsto instalara el paquete virtual de VNC con sus complementos habituales, tales como el vnc, sus librerías, el visor... etc.
Antes de seguir con todo esto, advertiros a los que no lo sepáis, y recordaros a los que ya lo sabéis, que el sistema de escritorios de Linux (Gnome, KDE, Flux, XFace...) utiliza una arquitectura cliente/servidor; lo cual implica que cada sesión de escritorio este escuchando de un puerto distinto y nos pone un impedimento en nuestro quehacer, pues no podremos obtener la pantalla de la sesión activa actualmente, sino que cada vez que conectemos estaremos abriendo una nueva sesión en la maquina remota.
Pero no sufráis... esto tiene solución en forma de paquete .deb ;)
Instalando el x11vnc paliaremos este efecto y podremos tener el escritorio de la sesión actual. Por tanto, antes de instalar el vncserver de toda la vida, recomiendo que instaléis esta versión ;)
La conexion con la maquina servidor se realizara mediante vncviewer, las versiones mas modernas de Ubuntu lanzan un entorno gráfico cuando ejecutas vncviewer por consola, en donde solo tienes que especificar el nombre de la máquina que actúa como servidor y, opcionalmente, el puerto de conexión:
slayer@ErhArD:~$ vncviewer NeMeSiS:8990
La primera vez que inicies el servidor x11vnc te advertirá de que no tienes asignada una contraseña para el servicio, y al mismo tiempo te proporcionara información para asignarla, sigue los pasos, no tiene mayor complicación.
Hay que tener en cuenta que la conexión con VNC no utiliza cifrado, si estamos en una red insegura cualquiera podría ver el password o todos lo que hagamos en el escritorio remoto. Una posible alternativa es utilizar los túneles SSH para que los datos viajen cifrados, para esto es necesario tener un servidor SSH configurado en la máquina que tiene instalado x11vnc.
Desde un PC ejecutaríamos en una consola:
$ ssh -L 2000:servidor:5900 user@servidor -N
Y en otra diferente:
$ vncviewer localhost:2000
El primer comando crea un túnel cifrado entre nuestra máquina y el servidor, los datos que enviemos a nuestro puerto 2000 irán a parar al puerto 5900 del ’servidor’ (también podría ser una IP) y para esto utilizaremos nuestro usuario “user” del servidor “servidor” (el mismo que el anterior). Este tipo de túneles también podríamos utilizarlos para otros servicios diferentes a VNC.
El segundo paso es conectarnos a nuestro puerto local 2000 como si tuviésemos ahí un servidor VNC.
Si buscáis en los posts pasados podréis leer algunos artículos mas sobre SSH si os interesa ;)
Con todo esto ya deberíais estar realizando vuestras propias conexiones con maquinas remotas.
Si tenéis dudas ya sabéis, comentarios o Google ;)
Hasta la próxima!
miércoles, 13 de febrero de 2008
Virtualización de sistemas
---------------------------------------------------------------------------
Parte 1 : Introducción a la virtualización
Parte 2: Maquinas virtuales en Windows
---------------------------------------------------------------------------
Parte 1 : Introducción a la virtualización
En este nuevo articulo, os voy a hablar de una nueva tecnología que esta ahora emergiendo (aunque hace ya años que se esta desarrollando) que puede marcar una época y sobre todo una manera diferente de ver y gestionar las computadoras. Esta nueva tecnología se llama virtualización y nos esta llamando ya a la puerta de casa. Os dejo esta frase, dicha por Robert B. Crooke (Intel), que puede resumir lo que será la virtualización: "la virtualización es una de las tecnologías más revolucionarias de la década, y nuestra tecnología combinada con los esfuerzos conjuntos de la industria ayudarán a llevar esta revolución al mercado masivo de PCs”.
Al usuario doméstico, normal, de ir por casa, lo que quiere es que el tiempo de respuesta de la computadora sea lo mas pequeño posible (es decir, que cuando le demos al botón, se nos muestre la información tan rápido como sea posible). Por contra, a los administradores de sistemas quieren que la productividad de la máquina sea lo mas alta posible, aun cuando aumentemos un poco el tiempo de respuesta. En términos estadísticos podemos decir solo aprovechamos la mitad de la capacidad de cálculo de los servidores, mientras que el tiempo restante, la máquina no hace nada productivo. En ese afán por disminuir ese tiempo "muerto" han surgido ideas como la virtualización para rellenar ese vacío.
La idea principal de la virtualización consiste en montar un sistema operativo virtual encima de un sistema operativo base. Dicho de otra forma, podemos tener un sistema anfitrión Linux y encima de este sistema base, hacer correr otro SO como pueda ser Linux o FreeBSD. Cada nuevo sistema que queramos lanzar encima del SO anfitrión constituirá una nueva maquina virtual, la cual tendrá acceso a todos los recursos del hardware (como si no estuviera montado sobre otro SO), pero a la vez también estará aislada dentro del sistema operativo anfitrión, de manera que si se produce algún fallo en la máquina virtual, este solo afectará a la máquina virtual en cuestión y no a todo el sistema base. Las ventajas que nos ofrece la virtualización son muchas y muy grandes. Por ejemplo, parémonos a pensar en un entorno de una pequeña empresa, que empezó con un servidor que registraba las llamadas. Era un Pentium PRO, y estaba sobrado, pero en seguida tuvieron que agregar otro, ya que los procesos de facturación ahogaban a los procesos de tiempo real (era solo un día al mes, pero ese día perdían registros de llamadas). Luego agregaron otro servidor de backup. Después vino otro para las estadísticas. Luego vino otro, esta vez para Web server, ya que teníamos que separarlo de las bases de datos criticas. Y así así hasta alcanzar unas 50 máquinas. Casi todos usaban la CPU a menos del 5% y aparte había que añadirle la dificultad de la administración los servidores. Aquí es donde entra en juego la virtualización en su mejor faceta. Cojo un servidor, instalo un sistema base y a partir de ahí (sobre él) instalo el sistema operativo que mejor desempeñe nuestra tarea (un sistema para cada tarea si lo vemos oportuno incluso), donde cada uno de estos nuevos sistemas estarán asilados el uno del otro.
Perdonen por esta aburrida historieta, pero no crean que estoy exagerando o que esto no ocurre en la realidad, ya que la historia que les he contado es real (aquí les dejo el enlace) y es un ejemplo perfecto de la gran utilidad que tiene la virtualización.
Y para el usuario doméstico, que es la gran mayoría, ¿cuales son las ventajas que aporta esta nueva tecnología? Para empezar, podremos crear diferentes maquinas virtuales de los diferentes sistemas operativos que queramos para poder hacer nuestras pruebas, con la garantía de que si ocurre un fallo (llámale "destrucción" de parte del sistema operativo, infección de algún tipo de virus, etc., etc.) en la máquina virtual, no afectará para nada en la máquina base (las máquinas están totalmente aisladas). También podremos crear nuestra propia red de ordenador, simulando distintas máquinas virtuales conectadas entre ellas como si fuera una red real (podremos acceder a las máquinas virtuales como si de ordenadores físicos se trataran). Estas y muchas otras cosas son posibles gracias a la virtualización.
Entrando ya de lleno en el tema en si, podríamos distinguir entre dos grandes clases de virtualización: la virtualización por hardware y la virtualización por software (que utiliza o puede aprovecharse de la virtualización por hardware).
Todos hemos escuchado últimamente que Intel ha incorporado a sus nuevos procesadores la tecnología de virtualización. Lo que incorporan estos nuevos procesadores es un nuevo conjunto de instrucciones máquinas que faciliten y mejoren las posibilidades de virtualización. Paralelamente a estas nuevo set de instrucciones, también están saliendo al mercado procesadores de doble núcleo, quad, incluso en un futuro no muy lejano de ocho núcleos. Estos nuevos procesadores permiten dedicar cada procesador a una maquina virtual distinta y aislar la ejecución de los sistemas operativos virtuales y que estos hagan un uso intensivo de su propia cpu.
Tanto para los procesadores Intel como AMD (tanto para servidores, como para usuarios domésticos) la tecnología de virtualización ya esta en el mercado. La tecnología en Intel se llama Intel VT (IVT) y en AMD se llama AMD virtualization (AMD-V ) también llamado Pacifica. Intel ya había incorporado la tecnología de virtualización a sus servidores, pero ahora la extiende a máquinas domésticas.
Repasando un poco la historia, podemos darnos cuenta que hace ya 30 años IBM implementó ya la tecnología de virtualización, pero es ahora con la exportación al usuario doméstico cuando se ha dado a conocer masivamente.
Por lo que respecta a la virtualización por software, me refiero con este término (no se si realmente será el mas adecuado o no) a la instalación de un software sobre un sistema operativo que me permita virtualizar parte o totalmente el sistema. Existen muchas clases de virtualización según el grado en que este emulado el sistema: emulación, virtualización parcial o completa, virtualización de aplicaciones, paravirtualización, virtulización de servidores... . Es decir, podemos emular todo el PC (incluyendo el procesador,RAM,etc), o solo algunas partes básicas del sistema. Nosotros nos centraremos en el tipo de virtualización denominada virtualización completa que nos permite crear una máquina virtual sin virtualizar la CPU. Emularemos en la máquina virtual casi todo el hardware (tarjeta de sonido, tarjeta de red, RAM, disco duro, BIOS,... ) menos la CPU. Para permitir este tipo de virtualización existen múltiples programas que nos lo permiten hacer y que se ejecutan sobre muchos sistemas operativos.
Como hemos estado viendo la virtualización es una opción a tener en cuenta a corto y largo plazo debido a sus múltiples ventajas, a propri para sistemas servidores, pero poco a poco también para el usuario doméstico. Por eso no nos ha de extrañar que empresas como SUN compren Innotek, compañía creadora de VirtualBox.
Vamos pues a ver distintos softwares que tenemos, tanto para la plataforma GNU/Linux como Windows, para la creación de máquinas virtuales.
