返回资讯中心
外部精选
软件工程
#开发者实时流

Rocky Linux 创始人用 AI 在 11 天内打造全新「非 Linux」内核 Ginux

来源标题:Rocky Linux Creator Built a New 'Not Linux' Kernel in 11 Days Using AI

Rocky Linux 创始人用 AI 在 11 天内完成了一个名为 Ginux 的 Rust 优先 x86-64 独立内核与操作系统原型,不依赖 Linux 宿主内核,可直接通过 UEFI 启动。它自带内存管理、调度器、VFS、网络与 Linux ABI,主要运行未修改的 Linux 用户空间。项目目前仍是实验性质,Linux ABI 覆盖、设备与文件系统支持等尚不完整,不适合生产环境。

Hacker News 最新signa112026/11/2 · 昨天30 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

Linux 的创造者又出手了:这次用 AI 在 11 天内写了一个「不是 Linux」的内核

一个以 Rust 为核心、围绕原生域(domain)和 Linux 用户空间兼容性构建的 x86-64 操作系统。

Ginux 是一个独立的内核与操作系统原型。它直接通过 UEFI 启动,不依赖 Linux 宿主内核,自带内存管理、调度器、进程模型、VFS、网络、设备支持和 Linux ABI,并在 ring 3 中运行一个内嵌的管理控制器。它的主要工作负载,是在内核原生域中运行未经修改的 Linux 用户空间。

代码仓库包含完整的可启动系统、控制器、原生服务、Linux 兼容层实现、硬件路径、构建工具、架构规范和 QEMU 测试框架。当前的开发目标是 x86-64 Q35 虚拟机,搭配 OVMF、Intel IOMMU 和 virtio 设备。它可以在 x86-64 Linux 宿主机上通过 KVM 运行,也可以在 Apple Silicon 上通过 QEMU TCG 运行。

Ginux 是实验性项目。Linux ABI 覆盖度、设备支持、文件系统、网络、资源限制、安全验证和真实硬件覆盖都还不完整。它适合用于研究、架构实验和测试——不适合生产工作负载,也不能替代 Linux。

这个名字和 Linux 一样是个玩笑:Ginux 结合了 Linux、GPT 和 Greg。为了让作者的自我膨胀控制在配置的资源上限之内,G 这个字母官方代表 GPT。

没有 Linux 在底下,也能跑 Linux 用户空间。Linux 是 Ginux 暴露出来的一种「人格」(personality),而不是宿主内核。

以域作为原生的系统边界。域拥有进程、地址空间、文件系统、设备、资源、权限和生命周期。

自包含的启动镜像。内核、控制器和核心启动所需组件打包在同一个 EFI 发布单元中。

一个小型用户空间控制平面。内嵌控制器负责配置和观测内核,但不在 ring 0 中执行。

显式、可撤销的权限。内核能力(capability)授予对命名对象的访问权,并与域代际绑定,以便在故障后清理。

OCI 只作为传输方式,不作为运行时。OCI 负责交付和组装文件系统;执行和隔离由 Ginux 域提供。

把兼容性当作可观测的契约。真实的 Alpine 和 Rocky Linux 工作负载补充了合成 ABI 测试。

系统描述

+-----------------------------------------------------------------------+ | 内嵌 ring-3 控制器:配置、设备、域、生命周期 | +-----------------------------------------------------------------------+ | Linux 人格域:Alpine、Rocky 及其他 Linux 用户空间 | +-----------------------------------------------------------------------+ | 原生域:所有权 | 能力 | 资源 | 故障策略 | +-----------------------------------------------------------------------+ | Ginux 内核:进程 | VFS | 网络 | 调度 | 内存 | IPC | +-----------------------------------------------------------------------+ | UEFI 固件与经过验证的 x86-64 QEMU 硬件配置 | +-----------------------------------------------------------------------+

启动架构与控制器

UEFI 加载单个 GINUX.EFI 镜像,其中包含内核、启动目录和经过认证的控制器负载。少量汇编边界负责进出 UEFI,安装异常、中断和系统调用入口,并切换特权级和地址空间状态;策略和大部分机制用 Rust 实现。

控制器是单一 EFI 发布单元的一部分,而不是安装在宿主发行版里的服务。启动时,内核把静态链接的控制器映射到 ring 3。它负责配置内核和设备、发现宿主状态、管理网络和持久存储、维护 OCI 缓存、定义域,并控制域的资源、挂载、自启动和生命周期。普通进程行为走 Linux ABI;受保护的管理操作走经过内核校验的、带版本号的设备/ioctl 接口。

这种安排让可启动系统保持自包含,同时控制器不必在 ring 0 中运行。控制器可以转授或撤销由密封启动信封(sealed boot envelope)授予的权限,但不能创建新的内核权限。

域是 Ginux 内核的一个原生对象,也是隔离、所有权、记账、调度、生命周期和故障隔离的外层单元。一个域拥有或被授予:

域是比 OCI 容器或 Linux namespace 更强的边界。OCI 提供初始文件系统;Ginux 提供隔离和执行。单个 Linux 人格域可以看起来像一台常规计算机,systemd 作为 PID 1,上面跑着发行版用户空间。多个域共享同一个 Ginux 内核,同时各自保留内核所有的独立状态。

人格是域内可见的用户空间契约:可执行格式、系统调用、进程、信号、VFS 行为、设备、终端、时钟、网络和 namespace 预期。Linux x86-64 是目前唯一实现的人格。其他的人格(比如 BSD)仍只是架构上的可能性,而非经过测试的特性。

内核 VFS 呈现域本地的根目录,由经过验证的 OCI 层、可写 overlay,以及选定的 tmpfs、procfs 和 devfs 行为组装而成。一个持久化的宿主所有卷在重启之间保存控制器配置和内容寻址的 OCI 缓存。

经过验证的 QEMU 配置包括 virtio 块设备和网络路径、MSI-X 和 VT-d DMA 隔离。经过测量的 Rust 驱动和协议服务可以在独立的 ring 3 域中运行,拥有受限的 MMIO、DMA、队列和数据包权限。通用驱动支持、生产级存储保证、广泛文件系统覆盖和物理硬件矩阵仍属于未来工作。

领域 已演示 重要边界 启动 Q35/OVMF 下的统一 x86-64 UEFI 镜像 没有生产级签名、恢复或物理硬件配置 控制器 内嵌的静态 ring-3 管理进程 没有生产级远程管理平面 域 多个域对象,各自具有独立的进程、地址空间、根、挂载、能力和生命周期状态

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →