Files
brahman/renaser/DIARIO.md
T
sergio 7695dbf3ce feat(renaser): Fase 7b — boot siembra la imagen, muere el include_bytes!
El kernel deja de empotrar el userspace por completo. Ya no carga ni un
solo .wasm: es boot quien siembra el disco con el grafo poblado.

- kernel/almacen.rs y manifiesto.rs migran al nucleo compartido `formato`
  (tipos, postcard, BLAKE3, trazado de registros). El kernel pierde los
  include_bytes!, genesis() y sembrar_genesis().
- boot::sembrar_grafo siembra un disco virgen con el bytecode de las apps
  (deduplicado) y el Manifiesto de Genesis anclado en el superbloque.
- cargar_userspace sin rama de siembra; wasm/mod.rs sin TECHO_MEMORIA.
- alias `cargo kernel` -> --manifest-path (esquiva un ICE de cargo con
  formato compartido entre el kernel y boot via artifact-dep).

Verificado en QEMU (screendump): disco virgen -> boot siembra 5 objetos,
el kernel monta su grafo; segundo arranque -> boot respeta el disco, la
cronista persiste. formato: 5/5 pruebas.

Nota: el crate `formato` y los 3 Cargo.toml entraron antes en 43e6b32 por
un `git add -A` de un trabajo concurrente; este commit cierra el resto.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 18:29:23 +00:00

298 lines
16 KiB
Markdown

# Diario de renaser
*Una crónica, en lenguaje llano, de cómo va naciendo un sistema operativo.
Cada jornada de trabajo añade aquí su página.*
---
## El primer día — la luz
Todo empezó con un gesto pequeño y luminoso: lograr que la máquina, al
despertar, no mostrara la fría consola de texto de siempre, sino una superficie
limpia y serena, de un azul profundo, casi nocturno. Puede parecer poca cosa,
pero esa superficie es el cimiento de cuanto vendrá: el lienzo en blanco de un
sistema entero.
Junto a esa primera luz nació también una promesa de honestidad. Si alguna vez
algo saliera terriblemente mal, renaser no se quedaría callado: pintaría una
franja roja, ancha y visible, para confesarlo sin rodeos. Una alarma sincera.
## El empaquetado — un cuerpo para viajar
Un sistema no sirve de nada si no puede encenderse en una máquina de verdad.
Así que el segundo paso fue darle a renaser un cuerpo: envolverlo en un disco
capaz de arrancar por sí solo, y enseñar al ordenador a lanzarlo. Desde
entonces, una sola orden basta para verlo cobrar vida ante nuestros ojos.
## Los reflejos — aprender a reaccionar
Hasta aquí, renaser sabía mostrarse, pero no sabía protegerse. La tercera etapa
consistió en darle reflejos: la capacidad de reaccionar ante lo inesperado en
lugar de derrumbarse en silencio. Se le tejió una red de seguridad interna para
que, ante un tropiezo, supiera recogerse con dignidad y avisar de lo ocurrido.
## El latido — sentir el tiempo y escuchar
Un sistema vivo necesita pulso. Se le dio a renaser un latido regular, como un
metrónomo interno, y oídos para escuchar el teclado. Por primera vez el sistema
dejó de estar simplemente quieto: empezó a respirar, a redibujarse con cada
latido y a notar cuándo una mano pulsaba una tecla.
## La memoria y la fluidez — crecer y atender muchas cosas
Para crecer, renaser necesitaba memoria de la que disponer con libertad. Y para
no atascarse, necesitaba aprender a atender varias cosas a la vez sin que unas
estorbaran a otras. En esta etapa recibió ambas. Además aprendió a escribir de
verdad: con una tipografía elegante, dibujando cada letra con esmero. El texto
dejó de ser un molde rígido para volverse, también él, un dibujo.
## La habitación segura — invitar a otros programas
La etapa más ambiciosa hasta ahora: abrir la puerta a que otros programas
vivieran dentro de renaser. Pero no de cualquier modo. Cada programa invitado
entra en una habitación sellada de la que no puede salir; solo puede hacer
aquello para lo que renaser, expresamente, le tiende un puente. Todo lo demás,
sencillamente, no existe para él. La primera visita fue modesta y entrañable:
un cuadrado de color que se desliza por la pantalla obedeciendo al teclado.
## Una jornada de orden — ordenar la casa y guardar la historia
No todo es construir; a veces toca ordenar. Se revisó la estructura del
proyecto y se repartió mejor el trabajo entre sus piezas, para que cada una
tuviera un cometido claro y nítido. Se escribió la documentación que cuenta qué
es renaser y hacia dónde camina. Y se guardó todo el trabajo en un lugar
seguro, donde queda registro fiel de cada cambio, de modo que ninguna jornada
se pierda. Hubo, además, un pequeño susto: una contraseña se coló por error
donde no debía; se retiró de inmediato y se dejó constancia para corregirla.
## El reparto del tiempo — muchos huéspedes, ningún tirano
Hasta esta jornada, el programa invitado de renaser, una vez dentro, se quedaba
con la casa entera: hablaba sin pausa y no dejaba sitio a nadie más. Era un solo
huésped, y se comportaba como dueño.
Esta etapa enseñó a renaser a repartir el tiempo. Se acordó un compás —el latido
del sistema marca, una y otra vez, el turno de cada cual— y se acordó también un
gesto de cortesía: cada programa hace su pequeña tarea, pinta su fotograma y, al
terminar, cede el paso. Así, lo que antes era un único inquilino pasaron a ser
varios, conviviendo en paz, cada uno en su propia ventana de la pantalla.
Pero la cortesía, por sí sola, es frágil: basta un huésped maleducado —uno que
no quiera ceder nunca el turno— para paralizarlo todo. Por eso se añadió una
salvaguarda serena pero firme: a cada programa se le entrega, en cada turno, una
ración medida de tiempo. Si la agota sin terminar —porque se ha enredado en un
bucle sin fin—, renaser le retira el turno con delicadeza, tiñe su ventana de un
púrpura inconfundible y prosigue. El sistema no se cuelga; simplemente despide al
inquilino díscola y sigue atendiendo a los demás, que ni se enteran.
Para comprobarlo se invitó, a propósito, a un huésped díscola: un programa hecho
para enredarse en un bucle eterno. Al arrancar, las dos ventanas honradas
cobraron vida y obedecieron al teclado a la vez, en perfecta armonía; la tercera,
la del díscola, se apagó al instante en un púrpura tranquilo. La promesa quedó
demostrada: renaser es veloz porque confía, pero nunca ingenuo.
## La otra mitad del muro — el espacio, no solo el tiempo
La jornada anterior enseñó a renaser a repartir el tiempo y a contener al que no
quería cederlo. Pero un huésped puede portarse mal de dos maneras: acaparando el
tiempo, sí, o acaparando el espacio. Quedaba media casa por proteger.
En esta etapa se le puso a cada programa un techo a la memoria que puede
reclamar. Mientras se conforme con su habitación, vive tranquilo; si pretende
derribar las paredes para anexarse la casa entera, renaser se lo impide con
serenidad y, como con el díscola, lo despide —esta vez tiñendo su ventana de un
amarillo pálido, para que de un vistazo se distinga al que abusó del espacio del
que abusó del tiempo.
Se cerró además una pequeña negligencia de la jornada anterior: cuando un
huésped era despedido, renaser olvidaba recoger del todo sus cosas. Ahora, al
marcharse cualquier programa, el sistema reclama hasta el último de sus enseres;
no queda rastro. Y se invitó a un nuevo huésped de prueba, una aplicación
glotona hecha para devorar memoria: al arrancar, fue frenada y despedida al
instante, su ventana amarilla junto a la púrpura del díscola, mientras las dos
aplicaciones honradas seguían su baile, ajenas a todo.
Con esto, las dos dimensiones físicas —el tiempo y el espacio— quedan bajo el
gobierno firme y sereno de renaser. El siguiente horizonte es más hondo: dar al
sistema una memoria que perdure, un lugar donde guardar las cosas más allá del
apagado. Pero esa es ya otra página.
## El primer golpe a la roca — encontrar el disco
Dar a renaser una memoria que perdure exige, antes que nada, hablar con un
disco. Y un disco, a diferencia de la pantalla o del teclado, no se le anuncia
al sistema al nacer: hay que salir a buscarlo. Es una empresa grande, así que se
decidió acometerla con prudencia, a pasos cortos y firmes.
El primer paso fue, sencillamente, encontrar el disco. renaser aprendió a
recorrer el bus por el que se enganchan los periféricos de la máquina,
preguntando puerta por puerta «¿quién hay aquí?», hasta dar con el disco virtual
que se le había preparado. Y al hallarlo, lo dijo en voz alta sobre su propia
pantalla: lo había localizado, y supo decir en qué dirección vivía.
Puede parecer un gesto pequeño —una línea de texto—, pero es el primer golpe de
pico contra una roca dura. La conversación con el disco apenas empieza; pero la
puerta, al menos, ya está encontrada.
## La primera palabra del disco — leer lo que se escribió
Encontrada la puerta, faltaba lo más difícil: cruzarla. Hablar de verdad con un
disco no es pedirle las cosas y esperar: es tender con él una memoria
compartida, un terreno común donde el sistema deja una petición y el disco
deposita su respuesta. Montar ese terreno —y aprender el protocolo para usarlo—
fue el trabajo de esta jornada, el más cercano al metal de cuantos renaser ha
acometido.
Para no equivocar el paso se ideó una prueba sencilla y honesta. Al preparar el
disco, el sistema anfitrión grabó en su primer renglón una breve firma, una
palabra clave. Y entonces se le pidió a renaser que, ya por sus propios medios,
abriera el disco y leyera ese mismo renglón. Si la palabra volvía intacta, no
habría duda: el camino completo —encontrar el disco, tender la memoria
compartida, pedir, esperar y recibir— funcionaba de cabo a rabo.
Al arrancar, renaser lo dijo en su pantalla, sereno: había leído el sector
cero, y la palabra que mostró era, letra por letra, la que se había grabado. El
disco había hablado, y renaser lo había entendido. La roca, por fin, cedió.
Queda por delante lo más hermoso: sobre esta conversación recién abierta,
levantar una verdadera memoria duradera —no un archivo de los de antes, sino un
tejido de objetos—. Pero el cimiento ya está puesto, y es firme.
## Un tejido de objetos — la memoria que perdura
La conversación con el disco estaba abierta; faltaba decidir qué contarle. El
mundo que renaser hereda de la informática de siempre habría respondido sin
pensarlo: archivos, carpetas, rutas con barras. renaser eligió otra cosa.
En lugar de un archivero de cajones con etiquetas, se tejió un grafo de
objetos. Cada objeto es un puñado de datos y unos cuantos hilos que lo enlazan
con otros. Y —esta es la idea hermosa— ningún objeto lleva un nombre que
alguien le haya puesto: su nombre es su contenido. De cada uno se calcula una
huella única, irrepetible, y esa huella es su identidad. Dos cosas idénticas
tienen la misma huella, de modo que nada se guarda dos veces; y si una se
corrompe, su huella deja de cuadrar y la mentira se delata sola.
Para que esa memoria mereciera el nombre de duradera hubo que pulir el trato
con el disco: enseñarle a renaser no solo a leer, sino a escribir. Y poner
orden en la despensa de la que el sistema toma prestada memoria para hablar con
el hardware — que ahora, al terminar cada gestión, devuelve lo que tomó en vez
de acumularlo sin fin.
Y entonces llegó la prueba más bonita. Se escribió una pequeña aplicación, una
cronista, con un único oficio: llevar la cuenta de las veces que el sistema
despierta. En cada arranque consulta el grafo, encuentra el último apunte,
añade el suyo —enlazado al anterior, como el eslabón nuevo de una cadena— y
pinta una casilla por cada despertar registrado.
Se apagó la máquina y se volvió a encender. Y otra vez. La cronista dibujó
primero una casilla, luego dos, luego tres. La cuenta no se perdía con el
apagón: vivía en el disco, en el tejido de objetos, y cada reinicio la
encontraba intacta y la hacía crecer. Por primera vez, renaser recordaba algo
de una vida a la siguiente.
La memoria duradera ya no es una promesa. Es un tejido, y tiene sus primeros
hilos.
## El disco que avisa — la espera que ya no congela
Hablar con el disco, hasta esta jornada, tenía un precio oculto. Cada vez que
renaser le pedía un bloque, el sistema entero contenía el aliento: el procesador
se quedaba mirando fijamente al disco, preguntando una y otra vez «¿ya?, ¿ya?»,
sin hacer nada más, hasta que la respuesta llegaba. Para una lectura suelta
apenas se notaba. Pero el futuro de renaser —cargar aplicaciones enteras desde
el disco— habría convertido esos instantes en tirones visibles, en pequeños
congelamientos de la imagen.
Así que se le enseñó al disco a AVISAR. En lugar de que el sistema vigile, ahora
es el disco quien, al terminar, da un golpecito en el hombro del kernel —una
interrupción— para decir «listo». Y mientras tanto, renaser no aguarda de brazos
cruzados: si hay trabajo, lo hace; si no, se adormece un instante, y el propio
golpecito del disco lo despierta. Ni un ciclo malgastado.
Para no equivocar el paso se escribió una pequeña sonda: una tarea que pide al
disco su primer bloque y, en vez de quedarse esperando, cede el turno. Las
aplicaciones de la pantalla siguieron pintándose, fluidas, mientras el disco
trabajaba por su cuenta; y cuando el bloque estuvo listo, su aviso reanudó la
sonda. En la pantalla quedó escrito: la lectura se había atendido por aviso, no
por vigilancia.
Es un cambio que casi no se ve —la cronista sigue contando arranques, una
casilla más cada vez— pero que se sentirá en todo lo que venga después. El disco
y renaser ya no se miran fijamente: se hablan, y entre frase y frase, cada cual
atiende lo suyo.
## El plano antes de la obra — abrir la Fase 7
Hay jornadas en las que no se levanta un muro: se dibuja. Esta fue una de
ésas. Antes de tocar el corazón del kernel hubo que decidir, con calma,
hacia dónde mover la siguiente piedra.
La pregunta era vieja y conocida: las aplicaciones de renaser todavía viajan
escondidas dentro del propio kernel, cosidas a su binario. Pero renaser tiene
un disco que recuerda, un tejido de objetos que perdura entre apagones. ¿Por
qué, entonces, las apps no nacen de ahí, como todo lo demás?
Se escribió el plano de esa mudanza —el plan de la Fase 7— y se dejó puesta
la primera viga: un cuaderno nuevo, el «Manifiesto», donde algún día estará
escrito qué programas deben despertar, cuánta memoria se les presta y en qué
rincón de la pantalla viven. Por ahora el cuaderno está en blanco y sus
páginas son sólo molde; pero el molde ya tiene la forma exacta de lo que
vendrá. La casa no cambió aún — sólo sabe, por fin, hacia dónde va a crecer.
## Las casas dejan de venir en la maleta — el userspace nace del disco
Durante seis fases, renaser cargó a sus inquilinos consigo. Las aplicaciones
viajaban cosidas dentro del propio kernel, como muebles dentro de la maleta de
quien se muda: prácticas de llevar, pero imposibles de cambiar sin rehacer la
maleta entera.
Hoy eso terminó. El kernel abrió el cuaderno que ayer era sólo molde —el
Manifiesto— y escribió en él quiénes viven en la casa, en qué habitación y
cuánto sitio se les presta. Luego dejó a los inquilinos donde siempre
debieron estar: en el disco, en el tejido de objetos que perdura. Cuando
renaser despierta, ya no desempaca nada; abre el cuaderno, va al disco, y va
trayendo a cada uno a su cuarto.
Si el disco está en blanco —una casa recién construida—, el kernel siembra él
mismo la primera versión: escribe a los inquilinos y su cuaderno. Y si alguna
vez encontrara a un inquilino corrompido, con la cara que no le corresponde,
sencillamente no le abre la puerta: enciende su señal de alarma en esa
habitación y sigue acomodando a los demás. La casa nunca se cae por una
puerta que no quiso abrirse.
A los ojos casi no cambió nada —las mismas cinco ventanas, encendiéndose—.
Pero por dentro la mudanza fue total: las casas ya no vienen en la maleta.
## El último mueble sale de la maleta
La jornada pasada presumió de una mudanza completa, y mintió un poco. Era
cierto que el kernel ya abría su cuaderno y traía a los inquilinos desde el
disco; pero guardaba, doblada en un bolsillo, una copia de todos ellos. Por si
acaso: si alguna vez despertaba en una casa vacía —un disco recién estrenado—,
sacaría esa copia y amueblaría él mismo la casa desde cero.
Hoy ese bolsillo se vació. El kernel ya no lleva encima a nadie: ni una copia,
ni una semilla, ni un recuerdo. Viaja, por fin, ligero de verdad.
¿Y quién amuebla entonces la casa nueva? Quien la construye. Antes, el albañil
—el que funde los planos y levanta los muros— entregaba las llaves de una casa
desnuda. Ahora, antes de entregarlas, entra, sienta a cada inquilino en su
habitación y deja sobre la mesa el cuaderno que dice quién vive dónde y cuánto
sitio se le presta. El kernel, al llegar, ya no encuentra una casa vacía que
llenar: encuentra un hogar tibio, y sólo tiene que abrir las puertas.
Para que esto fuera posible hubo que hacer algo callado pero esencial: que el
albañil y el inquilino hablaran el mismo idioma. Se redactó un pequeño
diccionario común —cómo se nombra una habitación, cómo se describe a un
inquilino, cómo se anota una página del cuaderno— y se entregó una copia a
cada uno. Así, lo que el albañil escribe es, letra por letra, lo que el kernel
lee: ninguna palabra se pierde en la traducción, porque ya no hay traducción.
Hay una sola lengua.
A los ojos, otra vez, casi nada cambió: las mismas cinco ventanas. Pero la
maleta del kernel, esta vez sí, está del todo vacía.
---
*El diario continúa. La próxima página la escribirá la próxima jornada.*