EtiquetaGNU/Linux

El que usa software privativo no está respetando su libertad

Siempre ha sido un tema de discusión el tema de la propiedad intelectual, derechos de autor, etc, pero esta véz quiero referirme a algo más allá de eso: el Software Libre.
gnuNo hay que confundir el concepto de Software Libre con Open Source, el primero corresponde a toda una filosofía relacionada a las libertades de las personas y lo segundo, simplemente, a código abierto. Una aplicación puede ser open source sin ser libre. La gran diferencia entre uno y el otro es el tema de las licencias. Para que el software sea libre es necesario que se permita compartir, modificar y adaptar el código.

Usar software libre es bueno porque permite, entre otras cosas, manejar y controlar algo que es tuyo: tu computador y es por éste motivo que nace el dilema entre el hardware y los famosos drivers propietarios/privativos v/s los libres. Para muchas personas el hecho de no poder aprovechar los recursos de su hardware gracias a los drivers libres significa un problema y entonces es cuando deciden usar el driver propietario o privado. El otro día, pensaba que la única forma de promover y mejorar el desarrollo de drivers (o firmwares) libres desde las propios fabricantes es usar los drivres libres ya existentes. Estamos en un proceso de educación y difusión del software libres y de nuestras libertades, si queremos lograr que éste proceso avance debemos sacrificarnos un poco. Imaginemos un mundo ideal, donde todas las personas usan drivers libres y los fabricantes no encuentran qué hacer para que los usuarios compren sus productos, como no se puede exprimir al máximo los recursos del hardware, el usuario no va a necesitar continuar comprando y por ende, los fabricantes se verían obligados a desarrollar ellos mismos un driver que sea libre y que cumpla con todo lo necesario para poder funcionar correctamente. Obviamente, es una utopía.

Seguir leyendo

Useless: Cosas ociosas e inútiles que puedes hacer en GNU/Linux

Aveces nos encontramos en el trabajo o en la universidad frente a la pantalla sin nada que hacer y empezamos a inventar cosas para hacer, probamos comandos, nos mandamos alguna cagadita, en fín, intentamos ocupar nuestro tiempo de ocio en algo. A continuación les mostraré unos cuantos tips para cuando esten aburridos.
Les enseñaré a escuchar como trabaja su disco duro, jugar con el speaker, ver los movimientos -en binario- del mouse y algo más.

La guía del ocio, índice:

  1. Ver los movimientos del mouse
  2. Escuchar como trabaja nuestro disco duro
  3. Jugar con el speaker

Seguir leyendo

Dymamic Window Manager (DWM): Mi nuevo gestor de ventanas

El otro día leí en irc que hablaban sobre ScrotWM y lo probé. En un principio me gustó mucho, demasiado sencillo y ligero, luego de usarlo un par de minutos ya me estába dando problemas con algunas ventanas flotantes y para no quedarme con las ganas entonces lo cambié por Dynamic Window Manager (DWM).

dwm

La gracia de este gestor de ventanas es que es demasiado simple, tiene no mas de 2 mil líneas de código, no usa archivos de configuración y claro, para configurarlo hay que editar directamente el código fuente y volver a compilarlo y re-ejecutarlo para que tome los cambios.

Seguir leyendo

Cómo redimenzionar el tamaño de un disco virtual en Xen

hdd-1

El otro día, jugando un rato con Xen me encontré con el problema de querer redimenzionar el tamaño de disco virtual de las máquinas virtuales y, cabezeandome un rato, lo logré.
En teoría, aumentar el tamaño de un disco es fácil, creamos un fichero del tamaño que queramos usando dd y luego concatenamos con el que ya tenemos, creamos el sistema de ficheros y listo. Pero el disminuirlo me pareció más complejo, pero no fue así.

Seguir leyendo

Tip: Liberar memoria ‘cacheada’, dentries e inodos

Hay veces que los programas (especialmente FF) ocupan mucha memoria y la memoria cacheada aumenta hasta quedarnos sin memoria (o con menos de lo que deberíamos tener), esta memoria se puede liberar para que quede utilizable nuevamente, basta con que le tiremos un echo al fichero /proc/sys/vm/drop_caches con los valores 1, 2 o 3 para liberar el pagecache, inodos y dentries, o los tres, respectivamente.
Esta funcionalidad fue implementada en la version 2.6.16 del kernel de linux.

¿Qué es el pagecache, inodos y dentries?
Los ficheros y directorios se representan, en la memoria, como inodos, de esta misma forma, los dentries corresponden a la representación de la información del path, directorios, etc.
Pueden leer una definición de pagecache más completa en: https://en.wikipedia.org/wiki/Pagecache.

Ejemplo:

echo -n 1 > /proc/sys/vm/drop_caches; # Libera el pagecache
echo -n 2 > /proc/sys/vm/drop_caches; # Liberamos inodos y dentries
echo -n 3 > /proc/sys/vm/drop_caches; # Libera pagecache, inodos y dentries.

Pueden ejecutar el comando free -m para ver la memoria antes y despues de liberar el caché.

Xen: Creación y configuración de una máquina virtual (pt2)

Si la instalación y configuración de Xen resultó ser fácil, lo que mostraré a continuación es mucho más sencillo. Para instalar una máquina nueva (con Debian) debemos ejecutar el siguiente comando:

xen-create-image --hostname=xen1 --size=5Gb --swap=256Mb --ide \
--ip=192.168.0.101 --netmask=255.255.255.0 --gateway=192.168.0.1 --force \
--dir=/vm --memory=128Mb --arch=i386 --kernel=/boot/vmlinuz-2.6.26-2-xen-686 \
--debootstrap --dist=lenny --mirror=https://ftp.cl.debian.org/debian/ --passwd

Si destripamos los parámetros nos damos cuenta que le estamos asignando (en orden) el hostname, tamaño de disco duro, cantidad de swap, tipo de disco, dirección ip, netmask, gateway, el directorio donde instalarla, ram, arquitectura, kernel para usar, metodo de instalación, distribución, mirror para descargar y por último, que nos pregunte la pass de root cuando termine de instalar. Estos parametros se pueden cambiar según los requerimientos.

El archivo de configuración de las máquinas virtuales es algo como:

kernel = '/boot/vmlinuz-2.6.26-2-xen-686'
ramdisk = '/boot/initrd.img-2.6.26-2-xen-686'
maxmem = '256'
memory = '64'
root = '/dev/hda2 ro'
disk = [
'file:/vm/domains/xen01/swap.img,hda1,w',
'file:/vm/domains/xen01/disk.img,hda2,w',
]
name = 'xen01'
# Red
vif = [ 'ip=192.168.20.202,mac=00:16:3E:6F:E3:3B' ]
# Comportamiento
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'

Podemos modificar arbitrariamente las opciones segun lo que nosotros necesitemos, tambien existen más opciones que le podemos agregar, como la asignacion de X cpus, decirles que cpu usen, por ejemplo si tenemos 4 núcleos, asignarle el 1 y el 4.

vcpus = 2;
cpus = '0,3'

De esta forma le estamos asignando 2 núcleos virtuales y le estamos diciendo que use los nucleos 0 y 3.