跳转至

Runtime 架构

Zava Runtime 是静态 x86-64 映像。CLI、HTTP、WebSocket、计时器和信号通过同一个 有界主循环调度,没有后台线程池。

                 +--------------------+
stdin/signals -->| CLI + main loop    |<-- timer
HTTP/WS -------->| poll (19 entries)  |
                 +---------+----------+
                           |
   +----------+------------+-------------+-----------+
   |          |            |             |           |
identity   memory/journal   fs          network     skills
                           |             |           |
                           +--------- communication --+
                                      |
                                  syscall layer
                               Linux / Windows

九个子系统

子系统 关键入口 冻结边界
身份 runtime/identity/identity.asm UUID 16 字节,目录私有
记忆 runtime/memory/journal.asm CRC、追加、fsync
文件 runtime/fs/fs_resolve_path.asm 白名单、selector、fd 表
网络 runtime/net/net_init.asm DNS 校验、16 socket 槽
技能 runtime/skills/skill_init.asm descriptor 160 字节
通信 runtime/comm/shm_init.asm 1 MiB、0600、CRC
CLI runtime/cli/argv_parse.asm 输入 4096 字节、固定命令
HTTP runtime/http/http_server.asm 64 KiB、精确路由
主循环 runtime/main_loop.asm 19 pollfd、50 ms tick

启动顺序

runtime/runtime.asm 依次加载身份、journal、文件、共享内存、网络、技能、信号和 HTTP,最后进入 runtime_main_loop。任一步失败都必须关闭此前已打开的资源。

syscall 抽象

runtime/syscall/syscall_table.asm 声明 20 个统一接口:open/read/write/close、 mmap/munmap、socket/connect/send/recv/bind/listen/accept/poll、fsync/unlink/mkdir/ stat/rename/gettime。Linux 直接使用 syscall;Windows adapter 调用 Kernel32/Winsock, 但上层返回码保持一致。

退出与崩溃

SIGINT/SIGTERM 只设置标志;主循环在安全点停止监听、排空连接、保存 CLI 历史、 刷新审计、关闭共享内存和 journal。SIGSEGV 走一次性崩溃报告并以 139 退出。