Jhon Aroa
Proyecto: Go OS Simulator
Volver al Portfolio

Go OS Simulator

Sistema distribuido con arquitectura de microservicios para simular un sistema operativo completo

Go 1.22 Docker Compose Microservicios Clean Architecture Web UI

Acerca del Proyecto

Sistema implementado en Go con arquitectura de microservicios para simular los componentes principales de un sistema operativo. El proyecto está dividido en varios módulos que interactúan entre sí a través de una red de contenedores (tpso2c-network), proporcionando una experiencia de simulación distribuida realista con interfaces REST.

Arquitectura y Módulos

  • Kernel (3061): Gestor central y planificador de procesos (Sheduler, Quantum, Algoritmos).
  • CPU (3064): Procesamiento y ejecución de instrucciones.
  • Memoria (3062): Gestión de almacenamiento (Esquemas, Particiones, Algoritmos de búsqueda).
  • Filesystem (3063): Gestión de archivos (Bloques, Retardos de acceso).
  • Web (8080): Panel de control para consultar el estado general y visualización de logs de los contenedores en tiempo real.

Características Técnicas

  • Despliegue automatizado de todo el ecosistema con Docker y Docker Compose.
  • Estructura de código basada en Clean Architecture en cada servicio (core, handler, infra).
  • Uso de Go Workspace (go.work) para facilitar el desarrollo local entre módulos sin publicar dependencias.
  • APIs HTTP y endpoints de /health para monitoreo de los servicios.
  • Scripts en Python (cambioconfig.py, setip.py) para cambiar rápidamente perfiles de configuración e IPs.

Despliegue y Ejecución

clonar el repositorio

git clone https://github.com/jhndbr/TPSO2C
cd TPSO2C

El sistema entero se despliega y orquesta fácilmente con Docker Compose. Adicionalmente, se proporcionan Makefiles en cada módulo (make run, make test) para agilizar el entorno de desarrollo local sin contenedores.

docker compose up --build -d

Panel de Control Web

Dashboard del Go OS Simulator

Demostración de Funcionamiento