16.04.2014 Views

Administración avanzada de GNU/Linux (PDF) - SW Computación

Administración avanzada de GNU/Linux (PDF) - SW Computación

Administración avanzada de GNU/Linux (PDF) - SW Computación

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Administración <strong>avanzada</strong> <strong>de</strong> <strong>GNU</strong>/<strong>Linux</strong><br />

ª FUOC • XP04/90785/00019<br />

cambios (agresivos) pue<strong>de</strong>n no funcionar con todos los kernels.<br />

No intentéis forzar su funcionamiento, ya que podría quedar el<br />

kernel inestable (similar a otros sistemas operativos muy comunes).<br />

10.1.3. Optimizaciones <strong>de</strong> carácter general<br />

Existen una serie <strong>de</strong> optimizaciones <strong>de</strong> índole general que pue<strong>de</strong>n<br />

mejorar las prestaciones <strong>de</strong>l sistema:<br />

1) Bibliotecas estáticas o dinámicas: cuando se compila un programa,<br />

se pue<strong>de</strong> hacer con una biblioteca estática (libr.a),<br />

cuyo código <strong>de</strong> función se incluye en el ejecutable o con una<br />

dinámica (libr.so.xx.x), don<strong>de</strong> se carga la biblioteca en el momento<br />

<strong>de</strong> la ejecución. Si bien las primeras garantizan código<br />

portable y seguro, consumen más memoria. El programador <strong>de</strong>berá<br />

<strong>de</strong>cidir cuál es la a<strong>de</strong>cuada para su programa incluyendo -static<br />

en la opciones <strong>de</strong>l compilador (no ponerlo significa dinámicas) o<br />

--disable-shared, cuando se utiliza el comando configure. Es recomendable<br />

utilizar (casi todas las distribuciones nuevas lo hacen)<br />

la biblioteca estándar libc.a y libc.so <strong>de</strong> versiones 2.2.x o superiores<br />

(conocida como Libc6) que reemplaza a las anteriores.<br />

2) Selección <strong>de</strong>l procesador a<strong>de</strong>cuado: generar código ejecutable<br />

para la arquitectura sobre la cual correrán las aplicaciones.<br />

Algunos <strong>de</strong> los parámetros más influyentes <strong>de</strong>l compilador<br />

son: -march (por ejemplo, march = i686 o - march = k6) haciendo<br />

simplemente gcc -march = i686, el atributo <strong>de</strong> optimización<br />

-O1,2,3 (-O3 generará la versión más rápida <strong>de</strong>l programa,<br />

gcc -O3 -march = i686) y los atributos -f (consultar la documentación<br />

para los diferentes tipos). Existe un archivo general <strong>de</strong><br />

configuración <strong>de</strong>l compilador, con lo cual los cambios se aplicarán<br />

a todos los ejecutables generados a partir <strong>de</strong> aquel momento)<br />

en /usr/lib/gcclib/i386linux/2.95.4/specs que al final<br />

existen unas líneas similares a [Mou01]:<br />

*cpp_cpu_<strong>de</strong>fault:<br />

...<br />

*cc1_cpu:<br />

%{!mcpu*: %{m386:-mcpu = i386 -march = i386}<br />

%{m486:-mcpu = i486 -march = i486}<br />

%{mpentium:-mcpu = pentium}<br />

%{mpentiumpro:mcpu = pentiumpro}}<br />

Nota<br />

Ver: man gcc.<br />

Nota<br />

Optimizaciones generales<br />

Utilizar Libc6 (2.2.x)<br />

Seleccionar procesador<br />

Optimizar disco (avanzados)<br />

ANOTACIONES<br />

405

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!