ArchSetup System Monitor: Monitor de Sistema para Arch Linux
ArchSetup System Monitor es una herramienta CLI escrita en C que desarrollé para Arch Linux. Proporciona información detallada del sistema con una interfaz colorida en terminal, nacida de la necesidad de tener un monitor más personalizado y ligero que las alternativas existentes.
Capturas de Pantalla

Monitor de sistema en acción

Vista detallada de procesos
El Problema
Los monitores de sistema tradicionales como htop o neofetch son excelentes, pero:
- Algunos muestran información genérica sin personalización
- Otros consumen recursos innecesarios para tareas simples
- No todos permiten modo watch con intervalo personalizable
- La mayoría no ofrece opciones modulares para mostrar solo lo necesario
ArchSetup System Monitor resuelve esto siendo minimalista, rápido y altamente configurable.
Características Principales
1. Información de CPU Detallada
- Modelo del procesador: Leído desde /proc/cpuinfo
- Número de núcleos: Físicos y lógicos
- Uso por núcleo: Porcentaje individual de cada core
- Temperatura: Lectura desde /sys/class/thermal/
2. Memoria RAM y SWAP
Muestra información detallada con barras de progreso visuales:
- Total, usado, disponible y libre
- Porcentaje de uso con colores dinámicos
- Información de SWAP si está activada
- Barras de progreso ASCII para visualización rápida
3. Uptime del Sistema
Muestra el tiempo que lleva encendido el sistema en formato legible (días, horas, minutos).
4. Estadísticas de Disco
Información del filesystem raíz:
- Espacio total, usado y disponible
- Porcentaje de uso
- Lectura mediante statvfs()
5. Top Procesos
Muestra los 5 procesos que más consumen:
- CPU: Procesos con mayor uso de procesador
- Memoria: Procesos con mayor consumo de RAM
- Incluye PID, nombre y porcentaje de uso
Interfaz Colorida con Códigos ANSI
ArchSetup utiliza códigos de color ANSI para una visualización clara:
- ● Verde: Uso normal (< 60%)
- ● Amarillo: Uso moderado (60-80%)
- ● Rojo: Uso alto (> 80%)
- ● Azul: Información de CPU
- ● Magenta: Información de memoria
Modos de Uso
Modo Normal
ArchSetup
# Solo CPU
ArchSetup --cpu
# Solo memoria
ArchSetup --memory
# Combinaciones
ArchSetup --cpu --memory --processes
Modo Watch (Actualización Continua)
ArchSetup --watch
# Watch solo con CPU y memoria
ArchSetup --watch --cpu --memory
Lectura de Fuentes del Sistema
ArchSetup lee información directamente desde el filesystem de Linux:
- /proc/cpuinfo: Modelo e información del CPU
- /proc/stat: Estadísticas de uso de CPU
- /proc/meminfo: Información de memoria RAM/SWAP
- /proc/uptime: Tiempo de ejecución del sistema
- /sys/class/thermal/: Temperatura del CPU
- /proc/[pid]/: Información de procesos individuales
- statvfs(): Estadísticas del filesystem
Stack Tecnológico
- Lenguaje: C (C99 standard)
- Compilador: GCC
- Build System: Makefile personalizado
- Dependencias: Solo bibliotecas estándar de C
- Sistema Objetivo: Linux (optimizado para Arch)
Instalación
git clone https://github.com/OOMrConrado/ArchSetup
cd ArchSetup
# Compilar
make
# Instalación local (sin sudo)
./install_local.sh
source ~/.bashrc
# Uso
ArchSetup
Estructura del Proyecto
- main.c - Programa principal y parseo de argumentos
- sysmon.h - Definiciones y estructuras de datos
- sysmon.c - Funciones de visualización
- cpu_info.c - Lectura de información de CPU
- memory_info.c - Lectura de memoria desde /proc/meminfo
- system_info.c - Uptime, disco y procesos
- Makefile - Compilación y tareas
- install_local.sh - Script de instalación local
💡 Desafío Técnico Resuelto
El mayor reto fue calcular el uso de CPU por núcleo de forma eficiente. La solución fue leer /proc/stat dos veces con un intervalo, calcular la diferencia de jiffies y aplicar la fórmula: uso = 100 * (1 - idle_delta / total_delta). Esto permite obtener porcentajes precisos sin consumir recursos del sistema.
Personalización
El código está diseñado para ser fácilmente personalizable:
- Colores: Modificar defines en sysmon.h
- Intervalos: Cambiar tiempo de actualización en main.c
- Formato: Ajustar funciones de display en sysmon.c
- Métricas adicionales: Agregar nuevas fuentes de datos
Comparación con Alternativas
| Herramienta | Pros | Contras |
|---|---|---|
| ArchSetup | Ligero, modular, personalizable | Solo para Linux |
| htop | Interactivo, maduro | Más pesado, menos personalizable |
| neofetch | Bonito, informativo | No interactivo, sin watch mode |
Roadmap Futuro
- ✅ Monitor completo de sistema (CPU, RAM, disco, procesos)
- ✅ Modo watch con actualización continua
- ✅ Opciones modulares para mostrar información específica
- 🔄 Soporte para múltiples discos
- 📋 Exportar métricas a archivo log
- 🌐 Información de red (interfaces, tráfico)
- 🔧 Soporte para otras distribuciones Linux
Enlaces del Proyecto
ArchSetup System Monitor es perfecto para usuarios de Linux que buscan una herramienta ligera, rápida y personalizable para monitorear su sistema. ¡Contribuciones bienvenidas!