Go OS Simulator
Sistema distribuido con arquitectura de microservicios para simular un sistema operativo completo
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
/healthpara 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
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.
Panel de Control Web