En el mundo del desarrollo de software, pocas experiencias enseñan tanto como construir algo desde cero, sin depender de bibliotecas modernas ni atajos. Este es el espíritu detrás de mi último proyecto: un terminal similar a Bash, pero diseñado completamente a mano, usando C primero y luego migrando a C para obtener el control absoluto sobre la memoria y la ejecución. Este devlog es el primero de una serie donde compartiré las decisiones técnicas, los retos y las lecciones aprendidas. Y, como sucede en cualquier proyecto ambicioso, este viaje me llevó a reflexionar sobre cómo las empresas de tecnología, como Q2BSTUDIO, aplican principios similares al desarrollar aplicaciones a medida que requieren rendimiento, seguridad y escalabilidad.
Desde el principio, mi objetivo fue alejarme de las comodidades de C++ y sumergirme en el mundo de los punteros a caracteres, la gestión manual de memoria y las llamadas al sistema de bajo nivel. ¿Por qué hacerlo de forma tan drástica? Porque quería comprender cómo funciona realmente un ordenador, no solo cómo usar una API. Esto es algo que también valoramos en Q2BSTUDIO cuando trabajamos en proyectos de ciberseguridad o cloud AWS/Azure, donde cada byte cuenta y la integridad de los datos es crítica.
El primer gran desafío fue procesar la entrada del usuario. En lugar de usar std::string, opté por arreglos de caracteres gestionados manualmente. Esto implicaba asignar memoria dinámicamente, vigilar los límites y liberar recursos para evitar fugas. Para organizar el caos, creé una estructura carr (char array) con funciones para inicializar, expandir y eliminar. En C++ podía sobrecargar operadores, pero al migrar a C todo eso desapareció. Tuve que reescribir cada manipulación de cadenas, lo que me obligó a entender a fondo cómo se mueven los datos en la pila y el montón.
Esta experiencia me recordó a los proyectos empresariales donde, para optimizar el rendimiento de una aplicación a medida, a veces es necesario dejar de lado los frameworks y trabajar directamente con el hardware o las capas de sistema operativo. En Q2BSTUDIO aplicamos esa filosofía cuando integramos agentes IA en entornos con restricciones de memoria, o cuando configuramos infraestructuras en la nube que deben escalar sin perder eficiencia.
Otro aspecto interesante fue la personalización de los comandos. En lugar de replicar exactamente Bash, inventé nombres como 'here' para mostrar el directorio actual y 'go' para navegar. Esto no solo le dio identidad al proyecto, sino que me enseñó a diseñar interfaces pensando en la experiencia del usuario desde cero. Algo muy parecido a lo que hacemos en Q2BSTUDIO cuando desarrollamos soluciones de Business Intelligence con Power BI: adaptamos los informes y dashboards a las necesidades específicas del cliente, no al revés.
La migración de C++ a C fue, sin duda, el punto de inflexión. A primera vista, parecía sencillo porque ya había escrito el código con un estilo muy cercano a C. Pero la ausencia de sobrecarga de operadores y funciones miembro me obligó a rediseñar cada interacción con los datos. Aprendí a usar punteros a funciones para simular polimorfismo, y a gestionar la memoria con malloc y free en cada rincón del programa. Esa disciplina es la misma que se necesita cuando se audita un sistema en busca de vulnerabilidades, un servicio que ofrecemos en el área de ciberseguridad.
Al final, el proyecto me dio un control total sobre cada variable, cada dirección de memoria y cada ciclo de CPU. Esa sensación de dominio es la que buscamos transmitir a nuestros clientes en Q2BSTUDIO: que su software no solo funcione, sino que esté optimizado, seguro y preparado para el futuro. Ya sea implementando un agente IA para automatizar procesos, o desplegando una arquitectura en cloud AWS, los fundamentos de bajo nivel marcan la diferencia.
Si estás interesado en explorar el código fuente, puedes visitar mi repositorio en GitHub: github.com/SuleymanSade/MyTerminal. Y si quieres saber cómo aplicamos estas técnicas en proyectos empresariales, no dudes en contactar a Q2BSTUDIO para hablar de ciberseguridad, IA o cloud. Este devlog es solo el comienzo; en las próximas entregas profundizaré en la interpretación de comandos, la gestión de procesos y mucho más.





