Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Contenido

Modulo de Memoria Ram

Provee datos escenciales de memoria ram en tiempo de ejecución.

Este modulo es capaz de ser montado y desmontado por medio de un archivo Makefile, el cual tambien permite la compilacion y limpieza del modulo. Los datos mostrados son:

  • Memoria ram libre en mb
  • Memoria ram total en mb
  • Memoria ram usada en mb
  • Memoria ram usada en porcentaje

Manual Técnico

El codigo se encuentra estructurado por las siguientes librerias:

// Librerias a cargar
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
// Libreria para obtener datos de memoria ram
#include <linux/mm.h>
// Por medio del siguiente metodo se pasa por referencia una variable de tipo syinfo,
// en la cual se almacenaran todos los datos recopilados de la memoria ram
si_meminfo(&memstruct); 

// Dato que el memstruct no retorna los valores en bytes, se realiza una multiplicacion 
// para hacer la conversión
total = memstruct.totalram * 4;
freer = memstruct.freeram * 4; 
used = total - freer;
per = ((used * 100) / total);

// Se escribe en el archivo secuencial m (Por conveniencia en este caso se escribe en
// formato json ya que seran los datos enviados a la API).
seq_printf(m, "{\"Total\":\"%lu\", \"Libre\":\"%lu\", \"Usada\":\"%lu\", \"Porcentaje\":\"%lu\"}", total, freer, used, per);

Manual de usuario

Requisitos

Verificar si los headers se encuentran instalados

$ apt search linux-headers-$(uname -r) 

En caso no se encuentren instalados, se deben instalar a travez del siguiente comando:

$ sudo apt install linux-headers-$(uname -r)

Instalar make y gcc para la compilación

# Instala make
$ sudo apt install make
# Instala gcc
$ sudo apt install gcc

Montaje

Linux: Para el montaje es necesario correr los siguientes comandos, el modulo se insertara en la carpeta /proc

$ make test
# Revisión de montaje correcto
$ ls /proc/rammodule
# Lectura de datos 
$ cat /proc/rammodule

Desmontaje

Remueve el modulo del kernel

make remove

Compilación

Compila el .c y genera todos los archivos necesarios para su ejecución.

make all

Limpieza

Remueve todos los archivos de compilaciones anteriores

make clean