El kernel deja de empotrar las apps. Las cinco aplicaciones ya no llegan por include_bytes! en main.rs: nacen del grafo, gobernadas por un Manifiesto de Génesis que también vive en el grafo. - almacen: el SuperBloque gana el ancla `manifiesto: Option<Hash>` (gemela de `raiz`, del lado del kernel) + accesores. VERSION 1→2 — un disco v1 se reformatea. - manifiesto.rs: implementados `cargar` (lee el manifiesto del grafo) y `sembrar_genesis` (puebla un disco virgen con las 5 apps de génesis). El bytecode viaja empotrado AÚN, sólo como semilla transitoria (la Fase 7b lo mueve al constructor de imagen `boot`). - kernel_main: `cargar_userspace` reemplaza las 5 `encender_app` escritas a mano; `encender_app` recupera el bytecode del grafo — `recuperar` verifica el hash, un módulo corrupto se niega y el arranque sigue. - wasm: el techo de memoria pasa a ser por-app (del manifiesto). Compila limpio. Verificación en QEMU pendiente (la corre el operador): la pantalla debe verse idéntica a la Fase 6.2 + la línea «manifiesto». Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
14 KiB
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 diario continúa. La próxima página la escribirá la próxima jornada.