Herramienta para el análisis y monitorización de estructuras de memoria en sistemas Linux   Herramienta para el análisis y monitorización de estructuras de memoria en sistemas Linux

 

Herramienta para el análisis y monitorización de estructuras de memoria en sistemas Linux

 

Autor: Miguel Mollejo Sánchez
Tutor: Fernando Pérez Costoya

 


Resumen

La herramienta para el análisis y monitorización de estructuras de memoria en sistemas Linux permite acceder a las estructuras de gestión de memoria del núcleo del sistema Linux y mostrarlas de una manera gráfica, útil e incluso didáctica.

Habitualmente, el sistema operativo Linux (y cualquier otro) mantienen una serie de estructuras necesarias para el correcto funcionamiento de las aplicaciones y del propio sistema, tales como datos acerca de las estructuras de memoria, ficheros abiertos, sockets de comunicaciones... Salvo en algunos casos excepcionales, estas estructuras nunca se muestran a los usuarios o a las aplicaciones, y sólo una parte de esta información se encuentra disponible para el usuario root (administrador) en ubicaciones específicas del sistema de ficheros.

Para esta herramienta se han desarrollado:

  • Un módulo que se integra en el núcleo del sistema operativo Linux, y que de forma transparente al usuario y a las aplicaciones, permite acceder a la información de las diversas estructuras de memoria que el sistema operativo crea y mantiene para los procesos que se quiera monitorizar mientras se ejecutan en la máquina. El mismo módulo permite exportar del núcleo dicha información sobre las estructuras de memoria.

  • Una aplicación de entorno gráfico, que mediante la comunicación con el módulo, permite controlar de forma sencilla e intuitiva para el usuario los procesos monitorizadas, mostrar la información exportada de las estructuras de memoria en diversos formatos tanto textuales como gráficos, y obtener conclusiones y explicaciones didácticas sobre la utilización de la memoria por parte de los procesos monitorizados.

  • Una librería, que a modo de API, permite a los desarrolladores de aplicaciones monitorizar la utilización y estructuras de memoria de sus propias aplicaciones con objeto de controlar y mejorar la gestión de la memoria.

Si bien paralelamente al desarrollo de este proyecto han surgido otros, como las herramientas VMMon (SysInternals/Microsoft) o ProcessHacker (SourceForge), ambos parecen haber detenido su desarrollo en el nivel de regiones de memoria, sin adentrarse en las tablas de páginas como fue objetivo desde el principio en esta herramienta.

Por tanto, en el momento de escribir este texto (Febrero de 2011), la herramienta para el análisis y monitorización de estructuras de memoria en sistemas Linux es la única capaz de obtener, exportar y mostrar las estructuras de gestión de memoria de las aplicaciones de un sistema Linux, incluidas las tablas de páginas y toda la información de cada página de memoria virtual.

Una herramienta de monitorización de estructuras de memoria no sólo resulta útil para administradores de sistemas y programadores (e igualmente para usuarios con simple curiosidad sobre el funcionamiento interno de sus equipos), sino que especialmente tiene una aplicación didáctica directa en la enseñanza de informática y teoría de sistemas operativos.

 

Licencia de la herramienta

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

A copy of the license is included in the file "GNU GPL.txt" in the software package.

 

Licencia de la documentación

Permission is granted to copy, distribute and/or modify this programs documentation under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.

A copy of the license is included in the file "GNU FDL.txt" in the software package.

 

Requisitos del programa:

  • Sistema operativo Linux con kernel 2.6 o superior. (El código del programa es portable y puede ser utilizado en Windows XP o superior y MAC OS únicamente para visualizar información previamente guardada de un sistema Linux.)

  • Los siguientes paquetes deben estar previamente instalados mendiante el gestor de paquetes correspondiente a la distribución del sistema Linux: kernel-source (versión correspondiente al kernel en ejecución), kernel-syms (versión correspondiente al kernel en ejecución), linux-kernel-headers (versión correspondiente al kernel en ejecución), module-init-tools, libqt4 (versión 4.4.3 o superior), libqt4-devel (versión 4.4.3 o superior).

  • Se requieren privilegios de administrador (root) para activar o desactivar el módulo de nivel de núcleo y las operaciones de monitorización sobre procesos.

 

Instalación y desinstalación

La herramienta para el análisis y monitorización de estructuras de memoria en sistemas Linux se distribuye mediante un fichero binario instalador y desinstalador "InstallJammer" para realizar de forma sencilla y automatizada estas operaciones.

 

Si no desea o no puede utilizar el programa de instalación y desinstalación automátizado, la herramienta se distribuye tambien mediante un archivo comprimido .tgz. En caso de utilizar este fichero comprimido, las operaciones relativas a la compilación de los ficheros ejecutables y de librería de la herramienta deberán ser realizadas manualmente por el usuario.

Para instalar manualmente la herramienta mediante el fichero comprimido .tgz deberá realizar las siguientes operaciones (no necesita realizar ninguna de estas operaciones si utiliza el fichero binario instalador, ya que se realizarán automáticamente):

  • Extraiga todos los ficheros contenidos en el fichero .tgz al directorio en el cual desee instalar la herramienta (por ejemplo: /opt/memoria).

  • Acceda a la subcarpeta /src y compile el fichero ejecutable de la aplicación de nivel de usuario ejecutando las órdenes qmake y seguidamente make. El fichero binario pfc se situará en la subcarpeta /bin (de no ser así, cópielo a dicha subcarpeta). Copie los ficheros de idioma *.qm deseados a la subcarpeta /bin donde se encuentra el fichero binario de la aplicación.

  • Acceda a la subcarpeta /src/ayuda y compile el fichero ejecutable de la ayuda para la aplicación de nivel de usuario ejecutando las órdenes qmake y seguidamente make. El fichero binario ayuda se situará en la subcarpeta /bin/ayuda (de no ser así, cópielo a dicha subcarpeta). Copie los ficheros de idioma *.qm deseados y los ficheros de documentación *.html deseados a la subcarpeta /bin/ayuda donde se encuentra el fichero binario de la ayuda.

  • Acceda a la subcarpeta /src/modulo y modifique apropiadamente el fichero Makefile si ha instalado la herramienta en un directorio distinto de /opt/memoria. Compile el módulo de nivel de núcleo ejecutando la orden make. Copie los ficheros de módulos *.ko a la subcarpeta /bin donde se encuentra el fichero binario de la aplicación.

  • Opcionalmente, acceda a la subcarpeta /src/libreria y compile la librería ejecutando las órdenes qmake y seguidamente make. Copie los ficheros de librería *.a a la subcarpeta /lib. Si desea generar una librería dinámica, modifique apropiadamente el fichero memoria.pro antes de realizar la compilación de la librería.

  • Opcionalmente, acceda a la subcarpeta /src/prueba y compile el programa de pruebas ejecutando las órdenes qmake y seguidamente make. El fichero binario prueba se situará en la subcarpeta /bin (de no ser así, cópielo a dicha subcarpeta).

Para desinstalar manualmente la herramienta únicamente deberá eliminar el directorio donde se encuentren instalados los ficheros de la herramienta (no necesita realizar esta operación manualmente si utilizó el fichero binario instalador, ya que dispone de un desintalador automatizado):

 

Ejecución

Si instaló la herramienta para el análisis y monitorización de estructuras de memoria en sistemas Linux mediante el fichero binario instalador bajo un entorno de escritorio gráfico, dispondrá de iconos para ejecutar la aplicación.

 

Si realizó una instalación manual, no dispone o no desea utilizar los iconos para ejecutar la aplicación, sitúese en el directorio de los ficheros binarios de la aplicación (por ejemplo: /opt/memoria/bin), de forma que dicho directorio sea el directorio de trabajo, y ejecute el fichero binario pfc. Si utiliza otro directorio de trabajo o el fichero del módulo de nivel de núcleo modulo_memoria.ko se encuentra en otro directorio, ejecute la aplicación escribiendo como parámetro el directorio donde se encuentre el fichero del módulo de nivel de núcleo (por ejemplo: /opt/memoria/pfc /opt/memoria/bin).

 

 

Si desea más información sobre el programa, realizar una consulta o notificar un problema, por favor, escriba a la dirección de correo electrónico que se muestra a continuación.

 

Descargar herramienta   Descargar "Herramienta para el análisis y monitorización de estructuras de memoria en sistemas Linux".
Página principal   Regresar a la página principal