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, podemos optimizar un binario mediante (como root) :
prelink binario
Pero para optimizar el sistema entero debemos realizar :
prelink -amvR
Veréis algo así:

Prelink
Aquí una explicación detallada del significado de los parámetros:
Para des-pre-enlazar (desprelinkar) un binario
prelink -u
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
Y por si no me creéis, aquí un vídeo de KDE arrancando en mi sistema :
Watch this video on YouTube.
Datos del Equipo de Prueba
Detalles del sistema:
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
Links de interes
The post Prelink (o como hacer que KDE arranque en 3 segundos) appeared first on Desde Linux.

Continúar leyendo...
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, podemos optimizar un binario mediante (como root) :
prelink binario
Pero para optimizar el sistema entero debemos realizar :
prelink -amvR
Veréis algo así:

Prelink
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) un binario
prelink -u
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
Y por si no me creéis, aquí un vídeo de KDE arrancando en mi sistema :
Watch this video on YouTube.
Datos del Equipo de Prueba
Detalles del sistema:
- HDD a 7200 RPM
- Gentoo
- XFS
- Ksplash desactivado (causa de la pantalla negra del video
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
Links de interes
- ArchWiki
- GentooWiki
- Paginas man de prelink
- Documentacion de Red Hat (autor original) Explicación técnica en PDF.
The post Prelink (o como hacer que KDE arranque en 3 segundos) appeared first on Desde Linux.
Continúar leyendo...