velle999/SYNAPSE

GitHub: velle999/SYNAPSE

一款基于 Arch 的 AI 原生操作系统,将本地 LLM 集成到系统层,实现智能 shell、Wayland 桌面、安全监控和内核级 AI 调度的深度整合。

Stars: 2 | Forks: 0

``` ███████╗██╗ ██╗███╗ ██╗ █████╗ ██████╗ ███████╗███████╗ ██╔════╝╚██╗ ██╔╝████╗ ██║██╔══██╗██╔══██╗██╔════╝██╔════╝ ███████╗ ╚████╔╝ ██╔██╗ ██║███████║██████╔╝███████╗█████╗ ╚════██║ ╚██╔╝ ██║╚██╗██║██╔══██║██╔═══╝ ╚════██║██╔══╝ ███████║ ██║ ██║ ╚████║██║ ██║██║ ███████║███████╗ ╚══════╝ ╚═╝ ╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝ ╚══════╝╚══════╝ ``` # SynapseOS **内核思考之地。** 一款基于 Arch 的操作系统,将本地 LLM 直接接入系统层,而非仅仅作为附加组件。 [![Build](https://static.pigsec.cn/wp-content/uploads/repos/cas/05/052bc9eaea1744e860f382f618f1146be38e27dfd499bb29c253bcd1827fad60.svg)](https://github.com/velle999/SYNAPSE/actions/workflows/build.yml) [![Release](https://img.shields.io/github/v/release/velle999/SYNAPSE)](https://github.com/velle999/SYNAPSE/releases/latest) [![License](https://img.shields.io/badge/license-GPLv2-blue.svg)](#license) ![Platform](https://img.shields.io/badge/platform-x86__64-1793d1) synui — the SynapseOS compositor synui,wlroots compositor:waybar 状态栏、自动隐藏的 dock 以及 CRT 后期处理滤镜。
SynapseOS 将本地 LLM daemon 作为系统服务运行,并允许系统其余部分通过 Unix socket 与其通信:包括 shell、compositor、安全监视器、网络过滤器,以及一个通过 sysfs 导出 syscall 遥测数据和 AI 调度提示的 kernel module。无需网络调用,无需 API 密钥——模型完全在本地机器上运行。 它启动后会进入 `synsh`(一个你可以输入命令或直接说出需求的 shell),以及 `synui`(一个知道 AI daemon 存在的 wlroots compositor)。 ## 快速开始 从 [Releases](https://github.com/velle999/SYNAPSE/releases/latest) 获取最新的 ISO 并启动。默认的 ISO 内嵌了 Mistral 7B Instruct (Q4_K_M, ~4.1 GB),因此 AI 在首次启动时即可使用,无需任何配置。 如果不想影响硬件,想在虚拟环境中体验一下: ``` git clone https://github.com/velle999/SYNAPSE.git && cd SYNAPSE QEMU_RAM=8G ./archiso/build_scripts/qemu-test.sh # auto-detects the newest ISO ``` 该脚本在可用时使用 KVM,通过 OVMF 启动 UEFI(并回退到 BIOS),同时挂载一个 20 GB 的持久化测试磁盘。当内嵌模型时,请为其分配 8 GB 以上的内存。Kernel 和启动输出会同步到串行控制台 —— 在 QEMU 窗口中点击 `View → serial0`。 ## 组件 每个组件都位于其独立的目录中,并拥有自己的 `PKGBUILD`。 | 组件 | 功能 | |---|---| | **`synapd`** | 本地 LLM 推理 daemon (llama.cpp)。管理模型;通过 Unix socket 为所有其他组件提供服务。 | | **`synsh`** | AI 原生 shell。可以自然输入,也可以作为普通 shell 使用。 | | **`synui`** | 基于 wlroots 0.19 的 Wayland compositor —— 支持平铺和 monocle 布局、多显示器工作区、XWayland 和 layer-shell。参见 [`synui/ROADMAP.md`](synui/ROADMAP.md)。 | | **`synguard`** | 安全监视器。对 syscall 事件进行分类,评估威胁,并在 `synui` 订阅的 feed 上发布判定结果。 | | **`synnet`** | 集成 nftables 的网络策略 daemon。 | | **`synapse_kmod`** | Kernel module (DKMS)。进行 syscall 监控并提供 AI 调度提示,通过 sysfs 暴露。 | 辅助组件:`syn-install`、`syn-firstboot`、`syn-model`、`waybar/`(状态栏配置)和 `archiso/`(安装介质)。 ## 架构 ``` User │ ▼ synsh ─── natural language / commands ──┐ │ │ ▼ │ synapd (local LLM — Mistral 7B) │ │ inference over SYN socket protocol │ ├──► synguard security verdicts ─┤ ├──► synnet network policy │ └──► synapse_kmod kernel sysfs │ │ ▼ ▼ synui (Wayland) /sys/kernel/synapse/ syscall_log, ai_hints, stats, status, config, version ``` ## 桌面 `synui` 是专门为此系统编写的 compositor,而非简单移植。它绘制了自己的显示设置面板、壁纸选择器和 dock;支持渲染可选的 CRT 风格后期处理通道;并实时订阅了 `synguard` 的判定 feed 和 `synapd` 的活动状态。 默认设置(可在 `~/.config/synui/synuirc` 或 `/etc/synui/synuirc` 中覆盖): | 按键 | 操作 | |---|---| | `Super`+`Return` | 打开终端 | | `Super`+`Space` | 命令栏 | | `Super`+`Backspace` | 询问 AI | | `Super`+`A` | 神经网络活动覆盖层 | | `Super`+`D` | 显示设置 | | `Super`+`W` | 壁纸选择器 | | `Super`+`E` | 切换视觉效果 | | `Super`+`Escape` | 菜单 | | `Super`+`Tab` | 循环切换布局 | | `Super`+`Q` / `Super`+`Shift`+`Q` | 关闭窗口 / 退出 compositor | | `Super`+`J` / `Super`+`K` | 聚焦下一个 / 上一个 | | `Super`+`H` / `Super`+`L` | 缩小 / 放大主区域 | | `Super`+`F` / `Super`+`M` / `Super`+`N` | 浮动 / 最大化 / 最小化 | | `Super`+`1`–`9` | 切换工作区 | | `Super`+`Shift`+`1`–`9` | 将窗口移动到指定工作区 | ## 服务 所有服务均在开机时启动: ``` systemctl status synapd # AI inference daemon systemctl status synguard # security monitor systemctl status synnet # network policy lsmod | grep synapse_kmod # kernel module cat /sys/kernel/synapse/status ``` ## 模型 使用 `--no-model` 构建的 ISO 体积小了约 4 GB,并会在首次启动时通过 `syn-firstboot` 获取模型。你也可以手动放入模型: ``` cp your-model.gguf /var/lib/synapd/models/synapse.gguf systemctl restart synapd synsh # ⚡ AI 在线 — 自然输入或使用 shell 命令 ``` 任何 llama.cpp 能加载的 GGUF 模型都可以运行;Mistral 7B Instruct 是 prompt 调优时所针对的模型。 ## 构建 **前置条件** —— 一台装有 `archiso`、`base-devel`、`meson`、`ninja`、`wlroots0.19`、`qemu` 和 `ovmf` 的 Arch(或基于 Arch 的)宿主机。如果有内嵌模型,请预留约 22 GB 的可用磁盘空间;如果没有,则大约需要 9 GB。 `archiso/build.sh` 会运行整个流水线:构建 llama.cpp(锁定在标签 `b2722`,与 CI 保持一致),通过各自的 `PKGBUILD` 将每个组件打包到本地 pacman 仓库,获取模型,并调用 `mkarchiso`。 ``` sudo archiso/build.sh # full build, GPU auto-detected sudo archiso/build.sh --no-gpu # CPU-only llama.cpp — use for QEMU-targeted ISOs sudo archiso/build.sh --no-model # slim ISO, model downloaded on first boot sudo archiso/build.sh --no-clean # reuse the previous llama.cpp build ``` 生成的文件将位于 `archiso/out/SynapseOS--x86_64.iso`。 软件包构建以 `synbuild` 用户身份在 `/var/tmp` 下运行,因为它们必须位于 `/home` 之外(权限 0700)。如果软件包构建失败,会立即中止运行,而不会在后续引发令人困惑的 pacstrap 错误。 对于内部循环测试,可以完全跳过 ISO 构建: ``` bash build-all.sh # builds every component against llama-staging/usr/ ``` ### 发布新版本 只需更新 `archiso/profiledef.sh` 中的 **`iso_version`**,其他保持不变 —— 特别需要注意的是,不要修改 `archiso/build.sh` 中的 `SYNAPSEOS_VERSION`,因为它追踪的是组件版本系列,而不是镜像版本。然后运行 `archiso/publish-release.sh`。 ## 协议 `synsh`、`synui`、`synguard`、`synnet` 以及 kernel module 均使用固定的 28 字节二进制头([`synapd/include/synapd.h`](synapd/include/synapd.h)),通过 Unix socket 与 `synapd` 通信: ``` #pragma pack(push, 1) typedef struct { uint32_t magic; // 0x53594E41 "SYNA" uint8_t version; // SYNAPD_PROTOCOL_VER uint8_t msg_type; // QUERY, SYSCALL_EVENT, SCHED_HINT, CONTEXT_PUSH/GET, // STATUS, RELOAD, SHUTDOWN; responses OR SYN_MSG_RESPONSE uint16_t flags; uint32_t payload_len; // bytes following this header, max 1 MiB uint32_t request_id; // echoed in the response uint32_t client_pid; // sender PID, for privilege checks uint64_t timestamp_ns; // CLOCK_MONOTONIC_RAW } syn_msg_header_t; // 28 bytes #pragma pack(pop) ``` ## 许可证 GPLv2 — SynapseOS Project。
标签:DLL 劫持, Linux内核模块, Wayland, 大语言模型, 实时告警, 客户端加密, 操作系统, 本地AI, 身份验证强制, 预握手