¿Buscás dejar atrás los pantallazos azules, los virus, los seriales, los cracks, etc.? Entonces, no dudes en pasarte a Linux. Si recién empezás, te recomendamos echarle un vistazo a nuestra sección Distribuciones. También contamos con un listado de programas para reemplazar a los más utilizados en Windows.

Close

Para hacer la historia corta, hace unos días uno de los desarrolladores del kernel subió un patch (de 200 líneas de código) que permitía mejorar considerablemente (casi una 10 veces) el rendimiento del sistema, especialmente al lidiar con el multitasking durante la ejecución de una tarea pesada (como compilar el kernel). Linus felicitó a este desarrollador por su gran aporte. No obstante, un desarrollador de Red Hat, Lennar Poettering, no estaba de acuerdo en implementar esa mejora directo desde el kernel; para él era mejor hacer los cambios en el espacio de usuario (~/.bashrc). Linus se enojó e increpó a este desarrollador, diciéndole que los resultados hablaban por sí mismos. Lennar, en vez de responder con palabras duras, se sentó e ideó una alternativa (que no precisa de parchear el kernel) y que ocupa apenas 4 líneas. En definitiva, le cerraron el pico a Linus... 


Nota: este método requiere de soporte a grupos de tareas en el Kernel Linux (cgroups), es decir, solamente usuarios con Kernel superior a 2.6.36 podrían aplicarlo.

Cómo aplicar el parche en Fedora

1.- Editá el archivo ~/.bashrc.

gedit ~/.bashrc

2.- Pegá el siguiente código al final del archivo:

if [ "$PS1" ] ; then
           mkdir -m 0700 /sys/fs/cgroup/cpu/user/$$
           echo $$ > /sys/fs/cgroup/cpu/user/$$/tasks
fi

3.- Ejecutá los siguientes comandos:

mount -t cgroup cgroup /sys/fs/cgroup/cpu -o cpu
mkdir -m 0777 /sys/fs/cgroup/cpu/user

Cómo aplicar el parche en Ubuntu

En Ubuntu la cosa es un poquito más complicada...

1.- Editá el archivo rc.local con este comando:

sudo gedit /etc/rc.local

y pegá antes de donde dice "exit 0", lo siguiente:

mkdir -p /dev/cgroup/cpu
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777 /dev/cgroup/cpu/user
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent

2.- Guardá el archivo y otorgale permisos de ejecución:

sudo chmod +x /etc/rc.local

3.- Editá el archivo ~/.bashrc:

gedit ~/.bashrc

4.- Pegá el siguiente código al final del archivo:

if [ "$PS1" ] ;
then mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $$ > /dev/cgroup/cpu/user/$$/tasks
echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release
fi

5.- Modificá el archivo cgroup_clean:

sudo gedit /usr/local/sbin/cgroup_clean

6.- Pegá el siguiente código al final del archivo:

#!/bin/sh
if [ "$*" != "/user" ]; then
rmdir /dev/cgroup/cpu/$*
fi

7.- Guardá el archivo y otorgale permisos de ejecución:

sudo chmod +x /usr/local/sbin/cgroup_clean

8.- Reiniciá el sistema.

Nota: si ves la carpeta /dev/cgroup/ vas a notar una mejora considerable en la gestión de la multitarea.

Leave a Reply