De computadoras y ordenadores

Desde hoy tengo decidido que voy a utilizar el termino "computadora" para referirme a los artefactos que utilizo a diario. El termino "ordenador" por más que os duela, es incorrecto. Excelentemente tratado en éste artículo se trata el origen del termino, el cual es francés. ¿Qué tienen que ver los franceses en todo esto?
Primero dejemos claro que la informática está escrita en Ingles. Ingles americano para ser más precisos. La gran mayoría de los términos que utilizamos a diario, son ingleses o aberraciones traducidos de estos, por lo que es el Ingles la lingua franca de la informática.
El clavo en el ataúd para el ordenador, está en el mismo termino que dio vida a lo que tenéis allí: el PC o Personal Computer. Nada de ordenador personal.
Por otra parte y aunque en España estas carreras no existen, la ciencia que estudia todo lo relacionado con la computación, se llama "ciencias de la computación" no "ciencias de la ordenación" lo cual sería más acertado para un licenciado de IKEA.
Toda ésta reflexión viene de diversas lecturas y en el hecho de que el proceso más costoso en la computación es, efectivamente, la ordenación. Existen diversos algoritmos para ordenar cosas, objetos, caracteres, números. Esto demuestra que un computador, hace muchas más cosas que "ordenar" y de hecho, esto lo hacen bastante mal.

¿Por qué usas Linux?

Es una pregunta que no tengo muy clara cómo responder. Lo que me hace pensar ¿por qué utilizo Linux? Por mi parte son muchas las razones, pero sencillamente, porque es el mejor sistema operativo que haya utilizado.

Mis razones
Perfecta combinación entre GUI y CLI
Tengo a mi disposición una interfaz gráfica agradable, poderosa y que puedo modificar a mi voluntad. Cuando se requiere de más poder, tienes a tu disposición la más grande y variada línea de comandos que se pueda encontrar.

Aplicaciones que conozco
Muchas de las aplicaciones que utilizo a diario, no se encuentran en otros OS. Quizás los hayan portado a ellos, pero la facilidad de tener todas mis aplicaciones instaladas con un solo comando, sin tener que descargar, instalar, configurar, es impagable.

Nadie me molesta
No tengo ni idea de como quitar un malware en sus distintas variantes, porque por ahora, en Linux no tengo éste problema. Por lo que me piden ayuda en estos menesteres, reduzco mi respuesta a "no tengo ni idea, uso Linux".

Comunidad
Cualquier problema, error o fallo en el software, puede que ya haya sido resuelto por alguien. En caso contrario, hay muchisimas personas que con gusto te ayudarán, incluido yo mismo. Si tienes un problema con Linux, haré todo lo posible por darte una solución.

Software
Aun no he encontrado nada imprescindible, que no pueda hacer con Linux, siempre que no hayan intereses para evitarlo.

Fácil instalación actualización
Vengo utilizando Ubuntu desde la versión 5.10, reinstalando a la ultima versión casi el mismo día del lanzamiento y no he tenido que cambiar mi /home o perder mis documentos (/home en partición aparte, claro). En 40 minutos tengo un nuevo Ubuntu instalado y que es igual al anterior, salvo ciertas mejoras. Ninguna configuración.

Multiplataformas
Ya sea en una PlayStation 3, en una televisión, en un teléfono, en una PDA, en un router, en un servidor, hasta en un PC, podemos encontrar Linux. Sé lo que pasa, sé como funciona (salvo ciertas limitaciones, claro).

Libre
Vale, tengo instalados todos los codecs propietarios y utilizo los drivers de Nvidia, pero por todo lo demás y desde hace mucho tiempo, mi conciencia está tranquila.

Cero rollos
Ya tengo suficientes problemas como para que mi ordenador venga a joder también, ya sea con licencias, drivers, virus, problemas de seguridad y fanboys.

Cada día aprendo algo nuevo
Ya sea sobre el sistema o todo lo que lo rodea, existe una variedad infinita de temas que te son abiertos gracias a utilizar un OS como Linux

Programación
Si vale la pena programar en un lenguaje, probablemente tengas un soporte completo para tu distribución. Todo lo que se necesita para Java, Python, Perl, PHP, HTML, Latex, C, C++, etc. Serán instaladas fácilmente en Linux.


Bueno, estas son mis razones, ¿cuales son las vuestras?

Servidor virtual en Intrepid Ibex

Llevo ya tiempo estudiando las distintas soluciones más populares de virtualización para GNU/Linux: VMWare, VirtualBox, Qemu. Finalmente y después de algunas pruebas (nada científicas o exhaustivas) me decidí por VirtualBox. No porque las otras no sirvan para nada, la verdad es que las tres son excelentes, pero la decisión se basó en el nivel de intrusión que se genera en el sistema operativo local... el cual es mi estación de trabajo y es muy importante para mi.
Por ejemplo, VMWare tiene la manía de querer modificar mi kernel, y eso no me mola nada. VirtualBox utiliza un módulo que ya viene en el kernel Linux.
En fin, la idea de esta entrada es la de un HOWTO para hacer que la máquina virtual sea accesible desde Internet y de la LAN, porque de hecho, será un servidor de aplicaciones de pruebas (Jboss, HTTP/modpy, FTP).
Después de instalar VirtualBox (en Intrepid Ibex la versión es la 2.0.4 OSE) creamos una máquina virtual. A la hora de configurar la red, vamos a utilizar la opción "Host Interface" e introducimos en el campo "Host Interface" lo siguiente: vth0
Genial, ahora tenemos que crear vth0. Esta es sencillamente, una tarjeta de red virtual. Para que ésta tenga conexión, necesitamos crear un "puente" entre vth0 y eth0. Para lo cual creamos el siguiente script:




#!/bin/bash

if [ -z $1 ]; then
echo "Usage: $0 [start|stop]"
exit 1
fi

#Check root

USER=$(id -u)

if [ "$USER" -ne "0" ]; then
echo "Must be root"
exit 1
fi

USER=ubersoldat
TAP=vth0
BR=br0
ETH=eth0

function doStart {
#No parece ser necesario ya que el usuario
#pertenece al grupo virtualbox
#chmod 0666 /dev/vboxdrv
#chmod 0666 /dev/net/tun

#Create the bridge
brctl addbr $BR
ifconfig $ETH 0.0.0.0 promisc
brctl addif $BR $ETH
dhclient $BR

tunctl -t $TAP -u $USER
brctl addif $BR $TAP
ifconfig $TAP up

echo "$TAP ready"
}

function doStop {
ifconfig $BR down
ifconfig $TAP down
tunctl -d $TAP
brctl delbr $BR
dhclient $ETH

echo "Cleaned"
}

case $1 in
start)
doStart
;;

stop)
doStop
;;

*)
echo "Usage: $0 [start|stop]"
;;
esac

exit 0




Ejecutamos como root y tendremos lista vth0 siempre que el DHCP funcione. Al ejecutar la maquina virtual y darle como parámetro nuestra interfaz virtual, el servidor podrá conectarse a Internet y viceversa. Sólo tendréis que configurar un dirección IP estática para la maquina virtual y abrir los puertos en el router.



Me parece importante recalcar que todo el tráfico pasará por eth0 por lo que podemos hacer cualquier modificación o capturarlo desde la estación de trabajo.


Nota:
Según tengo entendido, la versión 2.1 de VirtualBox se "engancha" directamente a eth0 sin la necesidad de realizar todo esto. Pero no es la versión que está en los repositorios de Ubuntu, por lo que hay que apañarse.