7695dbf3ce
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>
298 lines
16 KiB
Markdown
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.*
|