首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

显示 HN:Kern – 1.5 MB 二进制文件中的容器和资源运行时,无守护程序

2026-08-25 1 阅读 约9分钟阅读 realexweb
分享:
字号:
kern:适用于任何工作负载的快速、无根沙箱和虚拟资源运行时,包括不受信任的人工智能生成的代码。一个真实的、内核强制的容器,在大约 3.5 毫秒内从一个 1.52 MB 的二进制文件中生成,没有守护程序。 0 RAM 空闲 · 无守护进程,无套接字,无需启动 · 一个静态二进制文件,libc 是其唯一的 Rust 依赖项 # 安装发布二进制文件(静态,1.52 MB,由脚本验证校验和)curl -fsSL https://raw.githubusercontent.com/getkern/kern/main/install.sh | sh # 真正 OCI 映像中的一次性 shell:无根、内核强制、几毫秒 kern box dev --image alpine -it -- sh 无本机 Windows:使用 WSL2。安装 。一个管理资源的二进制文件,其中隔离是第一位的。这就是为什么比较表中没有单独的 kern 行:它是一个容器运行时、一个沙箱、一个资源切片器和一个堆栈运行器,大小为 1.52 MB,没有守护程序。一个真正的容器。真正的 OCI 镜像: pull 、从 Dockerfile 构建、提交、推送、保存/加载。图像中的一个框在大约 3.5 毫秒内开始。沙箱,永远无根。用户、PID、挂载、网络、UTS 和 IPC 命名空间、覆盖或只读根转入、默认拒绝的 seccomp 允许列表和 cgroup v2 限制。一个标志 --security-profile untrusted 是整个强化包。资源配置文件,而不仅仅是隔离。 CPU ( vcpu: )、内存、磁盘 ( vdisk: ) 和设备 ( vgpio: ),在 kern.toml 中声明一次并按名称附加。 kern run 对主机上的进程应用相同的上限,根本没有沙箱。 docs/RESOURCES.md 堆栈,采用 kern 自己的格式或 Docker 的格式。 kern compose up 采用 kern-compose.toml ([box.NAME] 表,上面有资源配置文件)或您已有的 docker-compose.yml,无需转换步骤。一个堆栈对应一个 Pod,服务通过名称相互访问。他们周围的工具。 ps、logs、exec、stats、inspect、wait、top(实时 TUI)、doctor,以及一个 Python 和 Node SDK 以及一个用于代理的 MCP 服务器。它的整个 Rust 依赖关系树是 libc :手动解析 JSON 和 OCI 清单,并将 shell 拉出到机器上已有的 curl 和 tar,而不是链接 TLS 堆栈。 (1.52 MB 是大小优化的发行版本;从源进行的普通货物安装是 1.91 MB。)不是虚拟机管理程序。边界是 Linux 内核,因此内核权限提升错误是一种逃避。 Docker 和 Podman 共享这个条件,这就是 gVisor 和 Firecracker 存在的原因。阅读标语,这是从两侧看到的一行:不可信和 AI 生成的代码正是 kern 的用途,因为您选择运行它并拥有爆炸半径(代理工具调用、CI 作业、构建步骤、代码单元)。它不是针对来自陌生人、多租户的敌对代码,在您为其他租户提供服务的内核上。 kern 确实总是以无根方式启动,而 Docker 是选择加入的。不能免于用户交易。它的隔离建立在非特权用户命名空间上,这是内核 LPE 错误的丰富来源。 SECURITY.md 在任何声明之前都声明了这一点。不是围绕您挂载的内容的墙。 -v $HOME:/host 为盒子提供您的主目录:挂载是您做出的信任决定,而不是边界紧邻强制执行。 --net host 和 --privileged 是按名称选择退出的。 (kern 拒绝绑定的唯一路径是它自己的运行时注册表。)不是 Docker 引擎重新实现。它讲的是 Docker 的格式,而不是它的 API:没有覆盖网络,没有插件,没有 Swarm。矩阵:docs/DOCKER-COMPAT.md。不是 Kubernetes 运行时。没有 CRI。使用containerd或CRI-O。不运送 GPU 切片。在路线图上,此版本中没有 GPU 代码,因此这里还没有任何值得信任或攻击的地方。它不知道或尚未执行的内容位于 OPEN_ITEMS.md 中,而不是留给您查找。 kern 需要一个具有非特权用户命名空间和 cgroup v2 的 Linux 内核。它运行在Linux、WSL2和ARM板(Raspberry Pi·Jetson·Arduino UNO Q)上;没有原生 Windows 构建,请使用 WSL2(kern 提供预烘焙的 WSL rootfs)。最快的途径是发布二进制文件:一个静态文件,没有工具链,并且脚本在安装之前验证其 SHA256。卷曲-fsSL https://raw.githubusercontent.com/getkern/kern/main/install.sh | sh 它为您选择 x86_64 或 aarch64,安装到 ~/.local/bin ( /usr/local/bin 作为 root 或 KERN_INSTALL_DIR ),并拒绝安装校验和不匹配的下载。手动验证是两行:curl -fsSLO https://github.com/getkern/kern/releases/latest/download/kern-x86_64-unknown-linux-musl.tar.gz{,.sha256} sha256sum -c kern-x86_64-unknown-linux-musl.tar.gz.sha256 && tar xzf kern-x86_64-unknown-linux-musl.tar.gz 从源代码是另一条路线,整个依赖树是一个板条箱( libc ),因此它很短:在桌面(i7-14700KF)上克隆、构建和安装花费了 36 秒,在小型 ARM 板上花费了更长的时间。 # 如果你还没有 Rust 卷曲 --proto ' =https ' --tlsv1.2 -sSf https://sh.rustup.rs | sh gear install --git https://github.com/getkern/kern getkern --locked 这会将 kern 放入 ~/.cargo/bin 中,rustup 将其添加到您的 PATH 中(打开一个新 shell,或 source "$HOME/
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱