En esta página vas a encontrar el proceso de desarrollo de Balam OS, si quieres una descripción del sistema, instalarlo o simplemente curiosear, te recomiendo que vayas a https://balam.confugiradores.es

Episodio 1 - Bich0lizzer.sh

Todo empezó con un programa llamado bich0lizzer.sh, este programa lo hice con el fin de poder tener un entorno de trabajo adaptado a mis necesidades en cualquier momento partiendo desde una cualquier iso (arch based o debian based). Al principio tan solo instalaba las herramientas que más utilizo y algún tema de personalización, pero rápidamente fue creciendo y haciéndose cada vez más complejo y detallado, instalando gestores de ventanas, modificando el gestor de sesiones… Al final este programa estaba cogiendo una distro cualquiera y transformándola en algo completamente propio, pero tenia un fallo.

Episodio 2 - bich0.iso

Todo iba bien, me permitía crear mi propio entorno y personalizar cualquier instalación de Linux con tan solo ejecutar un programa, pero esto tenía un problema, el tiempo, todos los programas, herramientas, imágenes y temas tenían que descargarse e instalarse y aunque no fuesen muy pesados dependía de la conexión a internet (si es que había) y esto ralentizaba mi trabajo cada vez que tenia que crear una instalación nueva. Todos estos motivos me llevaron a crear una solución más eficiente, mi propia ISO, pero para ello tenia que investigar como hacer un sistema booteable, personalizar todo a mi gusto y que fuese funcional, así que sin mucho tiempo libre pero muchas ganas (Todo esto lo fui haciendo mientras estudiaba la ingeniería informática y la especialización en ciberseguridad) me puse a ello

Episodio 3 - Balaam

Ya que iba a hacer una ISO, por que no compartirla con el mundo?? El primer paso fue elegir el sistema en el que la iba a basar, en mi caso escogí Arch Linux, esto me permitía tener un sistema con los últimos parches de todos los programas, rolling release (bye sudo apt full-upgrade) y con el cual me sentía muy cómodo (llevo usando Arch Linux como mi sistema principal desde 2021). Teniendo claro que distro iba a usar y sabiendo que, aunque con menos soporte que otras distros basadas en Debian como Parrot o Kali, Arch tenia una distro orientada a ciberseguridad llamada Black Arch, la cual me podría facilitar mucho la tarea ya que no tendría que empaquetar cada programa o librería para usarlas con pacman. Ahora tenía que escoger un nombre y que mejor fuente de nombres raros y curiosos que un libro de demonología como Ars Goetia

Tras horas y horas leyendo descripciones, nombres, poderes, rangos…Encontré a Balam (Balaam), un poderoso rey del infierno que gobierna sobre cuarenta legiones de demonios y cual principal poder es responder preguntas del pasado, presente y futuro (Genial, cuando estoy haciendo algún trabajo de ciberseguridad quiero respuestas!!!)

Elegido el nombre, distro de Linux y confirmado que iba a poder dar un soporte sin tener que hacer mis propios mirrors ni adaptaciones, solo quedaba ponerme manos a la obra.

Episodio 4 - Archiso

Mi primer paso fue buscar en la wiki de Arch (fuente inagotable de conocimiento) como modificar una iso de Arch y el primer resultado fue [Archiso](https://wiki.archlinux.org/title/Archiso_(Espa%C3%B1ol), un proyecto que permite hacer justo eso, crear una iso completamente personalizada y booteable.

Podría ir explicando paso a paso como fui adaptando cada parte del sistema y los “parches” que iba aplicando para generar la iso a mi gusto, pero para que aburriros con detalles innecesarios cuando he creado un script que podéis adaptar a vuestro gusto para construir vuestra propia distro de Arch Linux (si queréis mas detalles de como hacerlo, en el README.md del proyecto de Balam podéis encontrar una guía paso a paso para conseguirlo)

Una vez tenia mi primer balam.iso pensaba que ya estaba todo hecho, había conseguido mi propia iso con todas mis herramientas, mis scripts, todo, pero claro, como lo instalo?

Episodio 4 - installer.sh

Este es el punto de la historia en el que el proyecto empieza a tomar el nombre de sistema operativo y deja de ser una capa de personalización, con la instalación también añadí la opción de que cualquiera de vosotros pueda usar Balam y que al instalarlo quede completamente a vuestro gusto, para ello leed el repo de balam-dotfiles

La instalación empezó con el script empleado para la instalación de Black Arch como base, pero había muchas cosas que no me gustaban, faltaban o simplemente estaban mal hechas (bajo mi punto de vista obviamente) y al mas puro estilo de Jack Sparrow y después de leer detenidamente como actuar frente a un repositorio sin licencia clone el repositorio de nuestro gran amigo Levon “noptrix” y me puse a trabajar.

Para no ir leyendo línea a línea un diff entre mi instalador y el de noptrix voy a comentar los cambios más significativos: - Animación para los procesos, parecerá una tontería pero cuando llevas 15 minutos viendo una pantalla en negro y no sabes si se ha bloqueado el script o sigue funcionando, me lo agradeceréis - Confirmaciones para la mayoría de decisiones, si, el original no las tenia, si, no confirmaba muchas cosas, este si, aquí sois humanos y os podéis equivocar. - Soporte para paquetes de AUR y detección de dependencias cíclicas. - Lo mas importante, podéis escoger el tema de personalización, Balam no es un sistema operativo cerrado, lo originé como algo que todo el mundo pudiese disfrutar y así ha sido y será hasta el ultimo push request que se haga.

Probablemente me dejaré alguno, pero seguro que no son importantes o no os daréis ni cuenta de que están ahí.

Episodio 5 - updater.sh

Esta parte del proyecto sigue en curso, es funcional pero todavía no estoy satisfecho con como está así que en los próximos meses iréis viendo cambios, pero básicamente es un script que me permite lanzar parches (si, a mi, no Black Arch, no Arch Linux, ni siquiera a Linus Torvalds, a mi BiCH0), básicamente puedo actualizar archivos de configuración o paquetes o básicamente cualquier cosa que vea que falla, pero no os preocupéis, no soy como Microsoft, yo no os obligo a actualizar, esta parte es completamente opcional y sois vosotros los que tenéis que ejecutarlo para actualizar, os mostrará los cambios que se hacen y si no os convence alguno podéis no aplicarlo.

Final

A veces desearía no haber empezado con este proyecto por todo el tiempo y dolores de cabeza que me dio, pero a día de hoy y escribiendo esto desde él, no puedo estar más contento con como ha resultado. A lo largo de las distintas CTFs que he realizado he ido poniendo a prueba y puliendo cada detalle de Balam hasta lo que es a día de hoy. Os puedo garantizar que no solo es un sistema completamente funcional sino que (para mi) es la mejor experiencia que he tenido usando Linux y os invito a todos los que hayáis leído esto a que lo probéis y si hay algo que no os cuadra o que creáis que se puede mejorar creéis vuestra propia experiencia de Balam

Un saludo a todos y nos vemos en el próximo proyecto!!