.

Breaking News
recent

-

Iniciar más rápido el O.S (KDE en 3 segundos)


link: http://www.youtube.com/watch?v=FBc-X7NL7N8

Prelink es un programa cuya utilidad es hacer que los programas se abran mas rápido. Aunque la explicación de como lo hace se merecería un articulo entero, podemos decir de una manera tosca que le dice al binario donde buscar primero las librerías dinámicas que necesita cargar.

Así, imaginémonos que tenemos un binario que depende de la librería QtCore, una vez hayamos ejecutado prelink sobre el mismo, buscara primero en el espacio designado por prelink, y en el caso de que no la encuentre (una actualización, por ejemplo) la buscara de la manera tradicional.

Prelink funciona en cualquier sistema que cumpla el estándar POSIX, como GNU/linux o los BSD.
Como aplicar prelink

Optimizar el sistema con prelink es bastante sencillo
para optimizar el sistema entero debemos realizar :

prelink -amvR

Aquí una explicación detallada del significado de los parámetros:

a : equivale a –all, hace que se aplique a todo el sistema
m : equivale a –conserve-memory, la explicación de su funcionamiento es compleja, pero ahorra espacio
v: equivale a –verbose, nos permite saber cuales son las librerías pre-enlazadas
R : equivale a –random, aumenta la seguridad haciendo un valor sea aleatorio. Desconozco los detalles de su funcionamiento


Para des-pre-enlazar (desprelinkar)

Todo el sistema :

prelink -au
Muchas distribuciones como Ubuntu ofrecen un cron que pre-enlaza periódicamente todos los binarios del sistema si prelink esta instalado
Prelink puede causar problemas en varios binarios privativos, por lo que normalmente son omitidos por defecto. De todos modos, asegúrate de que tu archivo /etc/prelink.conf contenga estas lineas:

# Skype
-b /usr/lib32/skype/skype
-b /usr/lib/skype/skype

# Flash Player Plugin
-b /usr/lib/mozilla/plugins/libflashplayer.so

# NVIDIA
-b /usr/lib/libGL.so*
-b /usr/lib32/libGL.so*
-b //usr/lib/libOpenCL.so*
-b //usr/lib32/libOpenCL.so*
-b /usr/lib32/vdpau/
-b /usr/lib/vdpau/
-b /usr/lib/xorg/modules/drivers/nvidia_drv.so
-b /usr/lib/xorg/modules/extensions/libglx.so*
-b /usr/lib/libnvidia-*
-b /usr/lib32/libnvidia-*

# Catalyst
-b /usr/lib/libati*
-b /usr/lib/fglrx*
-b /usr/lib/libAMDXvBA*
-b /usr/lib/libGL.so*
-b /usr/lib/libfglrx*
-b /usr/lib/xorg/modules/dri/fglrx_dri.so
-b /usr/lib/xorg/modules/drivers/fglrx_drv.so
-b /usr/lib/xorg/modules/extensions/fglrx/
-b /usr/lib/xorg/modules/linux/libfglrxdrm.so
-b /usr/lib/xorg/modules/extensions/libglx.so

Optimizar KDE

Lo prometido es deuda. Si ya habías pre-enlazado tu sistema probablemente no notaste ninguna diferencia en los tiempos de carga de KDE. Esto es así porque KDE ser sirve de una utilidad llamada kdeinit para cargar todas las librerías necesarias. Para evitar el uso de esta herramienta debemos hacerle saber a KDE que esta pre-enlazado. Para hacer esto debemos (como root) crear un archivo de variable :

nano /etc/profile.d/kde-prelink.sh

En el que pegamos la siguiente línea

export KDE_IS_PRELINKED=1

Y le damos los permisos adecuados (no queremos que ningún travieso le añada rm -rf /)

chmod 755 /etc/profile.d/kde-prelink.sh

Cron y prelink

Si usas un sistema como Archlinux, en el que las actualizaciones son muy frecuentes, puede ser interesante añadir un cron que ejecute prelink todos los días.

Así, abrimos con nano el archivo cron (como root) :

nano /etc/cron.daily/prelink

Y pegamos lo siguiente:

#!/bin/bash
[[ -x /usr/bin/prelink ]] &&
/usr/bin/prelink -amR &>/dev/null

Despues le damos los permisos adecuados (ya he mencionado que nadie quiere que se alguien le añada código malintencionado):
chmod 755 /etc/cron.daily/prelink

Un buen habito a la hora de leer un articulo es investigar que hace exactamente el script. Un buen habito a la hora de escribirlo es explicar para que sirve. Aquí el despiece

La primera linea sirve para decirle al sistema que es un script en bash y la localización del interprete.
La segunda hace que bash ejecute un subshell en modo debug, desconozco el porque, pero es lo recomendable, se puede eliminar sin riesgo. El && significa que cuando el comando termine, ejecute el siguiente.
Ejecuta prelink con unos parámetros ya explicados, el &>/dev/null redirige cualquier salida a /dev/null, esto es, la desecha

No hay comentarios:

Publicar un comentario

-

Con la tecnología de Blogger.