feat(renaser): Fase 19 — voz del userspace hacia la red (pregon)
Tres capacidades nuevas en wasm/env (12-14): - sys_net_mac(salida) -> i32: escribe los seis bytes del MAC del dispositivo. 0 OK, -1 si no hay red. - sys_net_enviar(ptr, len) -> i32: envia un frame Ethernet crudo. Valida rango contra la memoria lineal del modulo. - sys_net_recibir(salida, capacidad) -> i32: drena UN paquete por llamada hacia el buffer del modulo. Devuelve los bytes copiados, 0 si nada pendiente, codigos negativos diagnosticos. Añadida red::recibir_en(buf) -> usize como su contraparte del driver: gemelo cooperativo de drenar_rx que aterriza en un buffer del usuario. App nueva pregon (apps/pregon/, 4.2 KiB WASM): lienzo 480x160, tipografia 8x8 (font8x8) escalada x2. Al init pide su MAC y anuncia su presencia con un broadcast Ethernet — destino FF:FF:FF:FF:FF:FF, EtherType experimental 0x88B5, payload ASCII 'renaser :: hola desde mi red'. En cada tick drena un paquete con sys_net_recibir y muestra el titulo, el MAC propio, las cuentas TX/RX, y los datos del ultimo frame entrante. GENESIS 8 -> 9 apps (pregon en posicion 2 detras de bitacora); CELDA_TASKBAR_ANCHO 130 -> 116 px para que las nueve pestañas + lanzador + reloj caben holgadas en 1280 px. tarea_red del kernel ya no drena RX (la cola pertenece al userspace), conserva solo el envio del ARP de prueba al arrancar. Verificada en QEMU con -object filter-dump. El pcap captura tres frames en orden: (1) broadcast 88B5 de pregon con su payload, (2) ARP request del kernel, (3) ARP reply del gateway 52:55:0a:00:02:02. La consola anuncia 'manifiesto :: 9 apps nacidas del grafo'. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+6
-3
@@ -28,7 +28,7 @@ Reconstruir una app WASM del userspace tras tocarla. Los `.wasm` viven en
|
||||
modulo `hello_wasm` se copia como `app.wasm`, el resto conserva su nombre:
|
||||
|
||||
```sh
|
||||
cd apps/<app> # hello_wasm, discola, glotona, cronista, memoriosa, pulso, tonada, bitacora
|
||||
cd apps/<app> # hello_wasm, discola, glotona, cronista, memoriosa, pulso, tonada, bitacora, pregon
|
||||
cargo build --target wasm32-unknown-unknown --release
|
||||
cp target/wasm32-unknown-unknown/release/<app>.wasm ../../kernel/assets/<app>.wasm
|
||||
# (hello_wasm es la excepcion: su destino es kernel/assets/app.wasm)
|
||||
@@ -90,9 +90,12 @@ arrancar, repique al lanzar o cerrar, bajo al desalojar, con prioridad
|
||||
sobre `sys_tono`— la Fase 16 COMPLETA —la barra viva: botón «+»
|
||||
lanzador a la izquierda y reloj `mm:ss` a la derecha que late cada
|
||||
segundo— la Fase 17 COMPLETA —`bitacora`, editor de texto que persiste entre
|
||||
arranques en el grafo de objetos (tipografía 8×8 embebida)— y la Fase 18
|
||||
arranques en el grafo de objetos (tipografía 8×8 embebida)— la Fase 18
|
||||
COMPLETA —red: virtio-net + ARP al gateway de QEMU + recepción de
|
||||
paquetes registrada por COM1—. Todo verificado en QEMU. Ver `ROADMAP.md`.
|
||||
paquetes registrada por COM1— y la Fase 19 COMPLETA —voz del userspace
|
||||
hacia la red: capacidades `sys_net_mac` / `sys_net_enviar` / `sys_net_recibir`
|
||||
+ la app `pregon` que pregona su presencia con un broadcast Ethernet
|
||||
y muestra el tráfico entrante—. Todo verificado en QEMU. Ver `ROADMAP.md`.
|
||||
|
||||
## Flujo de trabajo
|
||||
|
||||
|
||||
Reference in New Issue
Block a user