CASO 07 / Ingeniería de software

Simulador de disco virtual y sistema de archivos estilo EXT2

Un proyecto individual en Go que vuelve tangibles discos, particiones, inodos y operaciones de archivos.

Contexto
Laboratorio académico · Proyecto individual
Mi rol
Implementación integral
Periodo
2024
Estado
Simulador implementado
Arquitectura general · relaciones simplificadas
  1. Comandos
  2. Disco + particiones
  3. Metadatos + inodos
  4. Bloques de archivos
  5. Reportes

El problema

Crear un archivo parece simple desde la perspectiva del usuario. Por debajo, implica metadatos, asignación de espacio, entradas de directorio y relaciones entre estructuras. Este proyecto de Manejo e Implementación de Archivos explora esas ideas mediante un simulador de disco virtual y sistema de archivos.

Mi contribución

Implementé el proyecto de forma individual. Go se encarga de las operaciones de disco y sistema de archivos, mientras que los reportes y la interfaz web facilitan inspeccionar las estructuras subyacentes.

Arquitectura técnica

La implementación modela estructuras MBR y EBR, particiones, superbloque, inodos, bloques de directorio, bloques de archivo y bitmaps de asignación. Las operaciones leen y escriben estructuras binarias en offsets calculados dentro de archivos de disco virtual.

La capa de comandos expone operaciones como formatear, crear directorios, crear archivos y leer contenido. Los reportes en Graphviz ofrecen vistas estructurales del disco simulado y sus metadatos.

Trabajo con estructuras binarias

Cada estructura tiene un rol para describir dónde vive la información y cómo se conecta. Una entrada de directorio vincula un nombre con un inodo; un inodo conecta metadatos con bloques; el superbloque describe el layout general del sistema de archivos.

El proyecto convierte esas relaciones en código explícito, en lugar de delegarlas por completo a una API de sistema de archivos existente.

Resultados y alcance

El resultado es un simulador educativo estilo EXT2 implementado, con operaciones de disco virtual, manejo de archivos/directorios y reportes. No se presenta como un sistema de archivos montable en Linux, ni como una implementación EXT2 completa o EXT3 con journaling.

El repositorio incluye el código en Go y artefactos de interfaz. Su documentación es más breve que su implementación, por lo que este caso de estudio aporta el contexto arquitectónico necesario para explorarlo.

Lecciones de ingeniería

El almacenamiento es un punto de encuentro útil entre ingeniería de software e infraestructura. Comprender offsets, metadatos y asignación da una visión más concreta de lo que el sistema operativo hace por las aplicaciones.

Explorar la implementación

SEGUIR EXPLORANDO

Proyectos relacionados.

Todos los proyectos
Ingeniería de software2025

Construir el sistema y su entrega

Un proyecto e-commerce que conecta implementación de servicios, integraciones externas, construcción de imágenes de contenedor y despliegue en Kubernetes.

  • Go
  • gRPC
  • Docker
  • GitHub Actions
Seguridad e investigación2026

Comprender la exposición inalámbrica

Una plataforma portátil Linux que convierte observaciones pasivas de Wi-Fi en investigación estructurada de seguridad.

  • Linux
  • Kismet
  • Python
  • PostgreSQL