feat: integra renaser (kernel SASOS bare-metal) al monorepo
1# =============================================================================
2# renaser :: kernel — el corazon bare-metal que late en el espacio unico
3# -----------------------------------------------------------------------------
4# Este paquete esta EXCLUIDO del espacio de trabajo (ver el Cargo.toml raiz):
5# es codigo puramente bare-metal y solo se compila como dependencia de
6# artefacto de `boot`, que le impone el target `x86_64-unknown-none`. Por eso
7# fija sus versiones de forma explicita, sin herencia del workspace.
8# =============================================================================
9
10[package]
11name = "kernel"
12version = "0.1.0"
13edition = "2021"
14license = "MPL-2.0"
15authors = ["JL Soltech <gerencia@jlsoltech.com>"]
16description = "renaser :: kernel asincrono SASOS — entrada, framebuffer y reactor"
17
18# El kernel es un binario freestanding: sin arnes de pruebas ni de benchmarks.
19[[bin]]
20name = "kernel"
21path = "src/main.rs"
22test = false
23bench = false
24doctest = false
25
26[dependencies]
27# --- Fase 1-2 :: arranque, framebuffer e interrupciones ---
28bootloader_api = "0.11"
29x86_64 = "0.15"
30embedded-graphics = "0.8"
31
32# --- Fase 3 :: heap dinamico, reactor asincrono y texto vectorial ---
33linked_list_allocator = "0.10"
34spin = "0.9"
35crossbeam-queue = { version = "0.3", default-features = false, features = ["alloc"] }
36futures-util = { version = "0.3", default-features = false, features = ["alloc"] }
37# `hashbrown` ACTIVA el modo `no_std` de fontdue; sin el recae en `std`.
38fontdue = { version = "0.9", default-features = false, features = ["hashbrown"] }
39
40# --- Fase 4 :: interprete WebAssembly del userspace aislado ---
41# `wasmi` bare-metal: sin `std`, sin `wat`, sin `simd` (el target no tiene SSE).
42wasmi = { version = "1.0", default-features = false, features = ["hash-collections"] }
43
44# --- Fase 6 :: drivers de hardware — el disco virtio-blk sobre el bus PCI ---
45# `virtio-drivers` bare-metal: el kernel implementa su `trait Hal` para el DMA.
46virtio-drivers = { version = "0.13", default-features = false, features = ["alloc"] }
47
48# --- Fase 6.1c :: el grafo de objetos direccionado por contenido ---
49# `serde` da el rasgo de (de)serializacion; `postcard` lo materializa en un
50# formato binario compacto, pensado para sistemas empotrados — el que viaja al
51# disco. Ambos `no_std`, apoyados en `alloc`.
52serde = { version = "1", default-features = false, features = ["alloc", "derive"] }
53postcard = { version = "1", default-features = false, features = ["alloc"] }
54# `blake3`: la funcion hash que da identidad a cada objeto. Se fuerza la
55# implementacion ESCALAR pura (`pure` + los cuatro `no_*`): el target del kernel
56# corre sin SSE, y un camino SIMD activado por deteccion en tiempo de ejecucion
57# ejecutaria instrucciones que la CPU, sin `CR4.OSFXSR`, rechazaria con un #UD.
58blake3 = { version = "1", default-features = false, features = [
59 "pure", "no_sse2", "no_sse41", "no_avx2", "no_avx512",
60] }
61
62# --- Fase 8 (preparación) :: el compositor ---
63# `mirada-layout` es el motor de teselado del compositor de brahman —
64# geometría pura (rectángulos, foco, Z-order), `no_std`, sin smithay ni
65# Wayland. Vive en el monorepo brahman, en su PROPIO workspace; renaser
66# lo enlaza por `path` cruzando la frontera. La feature `serde` queda
67# APAGADA: el kernel computa el layout en memoria, no lo serializa.
68mirada-layout = { path = "../../crates/modules/mirada/mirada-layout" }