# Chym **Repository Path**: iloverust/chym ## Basic Information - **Project Name**: Chym - **Description**: 让编程跟填空一样简单,跟音乐一样和谐! - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-02-24 - **Last Updated**: 2026-05-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Chym 语言 > WebAssembly 混合编译器 · FASM 自举后端 · 双环混合架构 · 彻底无注释 **版本**: 2026.5.1 **读音**: /kɪm/ **许可证**: 木兰宽松许可证 2.0 (MulanPSL v2) **仓库**: ## 核心特性 - **渐进式设计**: 从简单脚本到系统编程的平滑过渡 - **混合编译器**: 前端 WASM 可移植 + 后端 FASM 自举极致性能 - **双编译目标**: wasm32-mych / x86_64-mych (原生) - **双环混合架构**: Ring1 (WASM 安全沙箱) + Ring0 (FASM 原生性能) - **彻底无注释**: 代码即文档,代码必须自解释 - **.mych 可执行格式**: 尾部自嵌 Markdown,AI 可直接理解 ## 快速开始 ``` git clone https://gitee.com/iloverust/chym.git cd chym python tools/chymc.py examples/test_simple.chym -run ``` ## 工具链家族 ``` ┌─────────────────────────────────────────────────────────────────┐ │ Chym 生态全貌 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ 🔧 编译与构建 │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ chc │ Chym Compiler │ WASM 前端 + FASM 后端 │ │ │ │ chu │ 版本管理 │ 多版本共存、目标器安装 │ │ │ │ chp │ 包管理器 │ 依赖解析、发布拉取、工作区管理 │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ 🖥 交互环境 │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ chymSh │ 默认 Shell │ 即时编译、双环切换、挂载命名空间│ │ │ │ chymCode │ 默认 IDE │ GPU 加速渲染、AI 辅助、实时协作│ │ │ │ chymTerm │ 默认 CLI │ 极致控制、显式诊断、脚本自动化 │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ 📖 文档与知识 │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ chymdoc │ 文档引擎 │ 自举 MyST 解析、尾部 Markdown 生成│ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ ⚙ 运行时 │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ mych-host │ 宿主模式 │ 在非 MyCH 环境下沙箱运行 .mych │ │ │ └─────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ ``` ## 项目结构 ``` chym/ ├── compiler/ │ ├── frontend/ # WASM 前端 │ │ ├── chym-lexer.wat │ │ ├── chym-parser.wat │ │ └── chym-ir.wat │ ├── middle/ # 中端 │ │ ├── optimizer/ │ │ └── ir/ │ └── backend/ # FASM 后端 │ └── chym-codegen-x64.fasm # x86-64 代码生成器 ├── tools/ │ ├── chymc.py # 编译器驱动 (Python + WASM) │ ├── chymCode/ # IDE 工具 │ ├── chymTerm/ # CLI 终端 │ └── chymSh/ # Shell 工具 ├── lib/ │ └── MyCH/ # MyCH 操作系统 ├── examples/ # 示例代码 ├── docs/ # 设计文档 └── tests/ # 测试用例 ``` ## 编译目标与构建命令 | 编译目标 | 输出格式 | 后端 | 适用场景 | |---------|---------|------|---------| | 模块 | .wasm | WASM | Web应用、安全沙箱、跨平台部署 | | 原生可执行 | .mych | FASM | 操作系统、驱动、高性能计算 | | 混合包 | .hybrid | WASM + FASM | 桌面应用、边缘计算、插件系统 | ```bash # WebAssembly 应用 chc build --target=wasm32-mych -o app.wasm # MyCH 原生应用 (FASM 后端) chc build --target=x86_64-mych -o app.mych # 混合应用 chc build --target=hybrid -o app.hybrid ``` ## 双环混合编译架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ Ring1 (接口层 - WASM) │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ 业务逻辑:声明式语法、安全沙箱、纯 Markdown 注释 │ │ │ │ 跨平台可移植、与 Chym AI 工具链无缝集成 │ │ │ └──────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────┘ │ SOA 零拷贝数据流 ▼ ┌─────────────────────────────────────────────────────────────┐ │ Ring0 (实现层 - FASM) │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ 系统核心/热点:手写汇编、直接内存访问、零抽象 │ │ │ │ FASM 自举、极致性能、多格式原生输出 (ELF/PE/COFF) │ │ │ └──────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` ## .mych 可执行格式 .mych 是 Chym 极简哲学的物理载体,让二进制从"数据块"变成"自解释的活文档"。 ``` ┌──────────────────────────────────────┐ │ 1. Header (UTF-8 Magic: "MyCH") │ ← hexdump 一眼识别,无字节序烦恼 │ - Mode: Native / Hosted │ │ - Mounts Offset / Markdown Offset │ ├──────────────────────────────────────┤ │ 2. Mount Manifest (Markdown) │ ← 挂载契约,替代动态库依赖 │ - "/net:tcp" -> required │ │ - "/dev/gpu" -> optional │ ├──────────────────────────────────────┤ │ 3. Segments (FASM/WASM) │ ← 双环数据 │ - __RING0 (FASM/汇编/特权实现) │ │ - __RING1 (WASM/业务接口) │ │ - __SOA_SCHEMA (零拷贝类型布局) │ ├──────────────────────────────────────┤ │ 4. Tail Markdown Zone │ ← AI 可直接读取,文档即二进制一部分 │ - API 文档、协作规则 │ └──────────────────────────────────────┘ ``` ## MyCH 操作系统 MyCH (My Chym Hybrid) 是基于 Chym 语言构建的双模框内核操作系统,作为 Chym 语言的原生运行时环境。 ### 核心定位 MyCH 不是独立的通用操作系统,而是 Chym 语言的"专属沙箱乐园"。 - **JVM 之于 Java**: 提供跨平台运行环境 - **MyCH 之于 Chym**: 提供原生语义环境 + 安全隔离 + 极致性能 ### 双模架构 MyCH 支持两种部署模式: | 模式 | 运行环境 | 启动方式 | 适用场景 | |-----|--------|---------|---------| | Hosted 模式 | Ring 3 (用户态) | `mych-host mych.wasm` | 开发调试、CI/CD、跨平台部署 | | Native 模式 | Ring 0 (内核态) | QEMU/物理机部署 | 机密计算、边缘 AI、硬实时系统 | ### 目录结构 ``` lib/MyCH/ ├── MyCH.chym # 核心模块定义 ├── main.chym # 主程序入口 ├── frame/ # 框架层 (ring0 - FASM) │ ├── frame.chym # 框架原语 │ ├── int/ # 中断处理 │ ├── mm/ # 内存管理 │ └── sched/ # 调度器 ├── service/ # 服务层 (ring1 - WASM) │ ├── registry/ # 注册树系统 │ │ ├── registry_main.chym # 核心注册表 │ │ ├── schema.chym # Schema类型系统 │ │ ├── generation.chym # 世代管理 │ │ ├── transaction.chym # 事务机制 │ │ ├── secrets.chym # 敏感数据加密 │ │ └── soa_view.chym # SOA零拷贝视图 │ ├── vfs/ # 虚拟文件系统 │ ├── net/ # 网络协议栈 │ ├── process/ # 进程管理 │ └── serdes/ # 序列化服务 ├── shell/ # 交互式 Shell (chymSh) │ ├── chymsh.chym # Shell核心 │ └── terminal.chym # 终端支持 ├── desktop/ # 桌面环境 (ChymUI) │ ├── compositor/ # 窗口合成器 │ ├── input/ # 输入处理 │ └── render/ # 渲染引擎 (Ring0 哑渲染器) ├── apps/ # 内置应用 │ ├── chymcode.chym # IDE │ └── chymterm.chym # 终端 ├── baremetal/ # 裸机驱动 └── examples/ # 示例程序 ``` ### 运行 MyCH ```bash # 编译 MyCH chc build --target=wasm32-mych lib/MyCH/main.chym -o mych.wasm # 宿主模式运行 mych-host mych.wasm # 原生模式运行 chc build --target=x86_64-mych lib/MyCH/main.chym -o mych.mych mych.mych ``` ### 设计理念 - **双环融合**: 将 Chym 的 ring0/ring1 安全模型直接映射为内核的特权/非特权架构 - **双模统一**: 同一套内核逻辑,支持"裸机运行"和"宿主沙箱"两种部署模式 - **零妥协纯粹**: 彻底脱离 C 生态,无 FFI、无传统 IPC,所有组件由 Chym 原生构建 - **序列化通信**: 跨边界数据交换仅通过编译时零拷贝序列化完成 - **渲染器即哑设备**: ChymUI 采用 Ring1 逻辑 + Ring0 哑渲染器的分离架构 ### 注册树系统 MyCH 注册树是借鉴 Windows 注册表、NixOS 声明式配置、iOS Keychain 等设计的配置管理系统。 | 特性 | 借鉴来源 | 说明 | |-----|---------|------| | 统一命名空间 | Windows 注册表 | 路径语义的层次结构 | | Schema 类型安全 | NixOS + macOS | 编译时类型校验 | | 世代管理 | NixOS | 原子回滚、版本快照 | | 事务原子性 | Carchive + 数据库 | 批量操作原子提交 | | 敏感数据加密 | iOS Keychain | AES-256-GCM 加密 | | SOA 零拷贝 | MyCH SOA | 跨进程共享无需拷贝 | ```chym import mych::service::registry registry::init() registry::write("/apps/editor/config/theme", "dark".as_bytes(), 0x01) let theme = registry::read("/apps/editor/config/theme") let tx = registry::begin_transaction("更新配置") registry::write("/apps/editor/config/font_size", int_to_bytes(16), 0x02) registry::commit_transaction(&tx) let gen_id = registry::create_generation("备份点") registry::rollback_to_generation(gen_id) registry::store_password("gmail", "user@example.com", "secret123") ``` ### chymSh 交互式 Shell chymSh 是 MyCH 的默认 Shell,灵感来自 TempleOS 的 HolyC,采用即时编译执行模式。 | 特性 | 说明 | |-----|------| | 即时编译 | 代码直接输入即时执行,无需构建步骤 | | 双环切换 | `ring0` / `ring1` 命令切换安全级别 | | WASM 加载 | 支持加载 .wasm 模块 | | 点阵背景 | 可配置的 dot-matrix 视觉效果 | | Matrix 输入 | Ctrl+Alt+Tab 激活 Matrix 风格输入 | ```bash $ chymsh ======================================== ChymSh - HolyC Style Interactive Shell Version: 2026.5.1 Type .help for commands Type ring0/ring1 to switch security mode ======================================== (chym ring1) .help Available commands: .help Show this help .quit Exit shell .build Compile a .chym file .load Load a .wasm module .ast Show AST of input .tokens Show tokens of input .mem Show memory stats ring0 Switch to ring0 mode ring1 Switch to ring1 mode run0 asm{} Execute inline assembly (ring0 only) import Import a module (chym ring1) ring0 Switched to ring0 mode. (chym ring0) run0 asm { mov rax, 42 ret } ``` ### ChymUI 架构 (借鉴 HVML + GMSSH) ChymUI 采用"Ring1 逻辑 + Ring0 哑渲染器"的分离架构,灵感来自 HVML 的渲染器即哑设备理念: | HVML 架构角色 | 对应 Chym 双环 | Chym 实现优势 | |--------------|---------------|---------------| | HVML 解释器 (业务逻辑) | Ring1 (WASM 沙箱) | 绝对安全,组件崩溃不影响系统 | | 界面渲染器 (哑设备) | Ring0 (FASM 原生层) | 直接穿透 Vulkan/Metal/D3D,无系统 UI 框架依赖 | ### GMSSH 集成参考 chymTerm 和 chymCode 的运维能力以 GMSSH 为主要借鉴对象: - **零侵入架构**: 纯 SSH 隧道,服务端什么都不用装 - **MCP 协议**: AI 通过 MCP 感知服务器实时状态 - **桌面级管理**: 类 Windows 图形化桌面,双击打开文件夹、拖拽上传文件 - **插件架构**: 进程隔离 + UDS 通信,某模块崩溃不影响整体 ### 文件关联与右键菜单 chymSh 与操作系统深度集成,支持 `.chym` 文件的右键菜单操作: | 操作 | 命令 | 适用场景 | |-----|------|---------| | 执行 | `chym run ` | 快速验证、演示运行 | | 编辑 | `chymCode ` | 代码开发、调试修改 | 支持 Linux `.desktop` 和 Windows 注册表两种集成方式。 ## 语法规范 ### 关键字 | 关键字 | 用途 | |-------|------| | `fn` | 函数定义 | | `let` | 不可变变量 | | `var` | 可变变量 | | `if/elif/else` | 条件分支 | | `match/case` | 模式匹配 | | `for/while` | 循环结构 | | `return` | 函数返回 | | `true/false` | 布尔字面量 | ### 运算符 | 类别 | 运算符 | |-----|--------| | 算术 | `+`, `-`, `*`, `/`, `%` | | 比较 | `==`, `!=`, `<`, `>`, `<=`, `>=` | | 逻辑 | `&&`, `||` | ### 内置函数 | 函数 | 说明 | |-----|------| | `print_int(x)` | 打印整数 | | `puts(s)` | 打印字符串 | | `println(s)` | 打印字符串并换行 | ## 示例程序 ```chym fn factorial(n: i32) -> i32 { if n <= 1 { return 1; } return n * factorial(n - 1); } fn main() { let x = factorial(5); print_int(x); puts(""); } ``` ## 许可 木兰宽松许可证 2.0 (MulanPSL v2) *** Chym 语言开发团队 · 2026年5月1日