大气层Atmosphere六层架构揭秘:从fusée到troposphère的完整原理
【免费下载链接】Atmosphere-stable大气层整合包系统稳定版项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable
Atmosphere(大气层)是任天堂 Switch 上最经典的定制化系统(定制固件),它采用独特的六层架构设计,每一层都对应地球大气层的一个层级,从底层的安全启动到上层的应用定制,逐层替换并扩展系统组件。本文将用最通俗的方式,带你完整看懂这套从 fusée 引导启动到 troposphère 应用层的六层原理,零基础也能轻松上手理解。
🌍 什么是大气层系统?
简单来说,Atmosphere 是一套运行在 Switch 上的完整定制系统环境:
- 🚀 通过 RCM 漏洞(CVE-2018-6242)注入自定义引导程序
- 🧩 用自研组件逐层替换 Horizon OS(Switch 官方系统)的各个部件
- 📦 支持自研系统模块、金手指、emummc 模拟存储、自制软件等扩展功能
它的设计哲学是**"分层替换"**——不推翻整个系统,而是像洋葱一样,从最底层往上一层层剥离替换。
📊 六层架构总览:一张表看懂
| 层级 | 组件名 | 运行位置 | 核心职责 |
|---|---|---|---|
| 第1层 | fusée(火箭) | RCM 启动 | 硬件初始化、挂载 eMMC、启动 exosphère |
| 第2层 | exosphère(外层空间) | EL3 最高特权级 | 安全监视器、加密操作、电源管理 |
| 第3层 | thermosphère(热层) | EL2 特权级 | 预留的 hypervisor 虚拟化层 |
| 第4层 | mesosphère(中层) | EL1 内核级 | 重新实现的微内核 |
| 第5层 | stratosphère(平流层) | 系统模块级 | 十余个自研系统模块 |
| 第6层 | troposphère(对流层) | 应用级 | 应用层定制与扩展 |
整体架构说明可参考官方文档 docs/main.md,其中完整列出了六大核心组件与 emummc、libraries 两个辅助组件。
🚀 第一层:fusée —— 一切的起点
fusée 是整条链路上第一个运行的代码,它以独立 payload 的形式,通过 RCM 模式被注入 Switch。它承担了最"苦最累"的底层工作:
- ⚡ 完成 Switch 所有低层级硬件初始化
- 🔐 建立系统所需的加密体系
- 💾 挂载并模拟 eMMC 存储
- 📄 注入/修补系统模块,随后拉起 exosphère
源码位于 fusee/ 目录,核心入口见 fusee/program/source/fusee_main.cpp,详细说明见 docs/components/fusee.md。
🔒 第二层:exosphère —— 最高特权的安全管家
exosphère 是对 Horizon OS **Secure Monitor(安全监视器)**的定制重写版,运行在主处理器最高的特权模式EL3,相当于系统里的"保险柜管理员":
- 负责所有敏感加密运算
- 管理每颗 CPU 的电源策略
- 扩展了 3 个自定义 SMC 调用(如 DRAM↔IRAM 内存拷贝、emummc 配置读取),专为自制软件生态服务
- 内置
lp0fw(唤醒)、sc7fw(休眠)、rebootstub(重启到任意 payload)三个小工具
相关实现见 exosphere/,文档见 docs/components/exosphere.md。
🧊 第三层:thermosphère —— 预留的虚拟化层
thermosphère 是一个**开发中的 hypervisor(虚拟机监控程序)**实现,瞄准 Horizon OS 未使用的 EL2 特权级,未来可提供虚拟化能力。
目前它体量很小,核心代码见 thermosphere/src/main.c,文档见 docs/components/thermosphere.md。
⚙️ 第四层:mesosphère —— 重新实现的内核
Switch 官方内核遵循微内核设计、运行在 EL1。mesosphère 是它的定制重写版,分为加载器(kernel_ldr)和主内核两部分:
- 调度线程、管理内存页表
- 实现全部 SVC 系统调用(共 37 个 SVC 实现文件)
- 处理 IPC、进程与地址空间
完整内核对象实现(进程、线程、共享内存、同步原语等)都在 libraries/libmesosphere/,入门文档见 docs/components/mesosphere.md。
📦 第五层:stratosphère —— 系统模块的大本营
这是六层中代码量最大、功能最多的一层,负责在系统级"逐个替换"官方模块。内置 17 个模块,包括:
- loader:重写进程加载器,支持用 SD 卡文件替换/打补丁游戏与系统模块(IPS 补丁、文件覆盖),是金手指和自制软件的基础
- boot:开机动画与电池驱动
- sm / pm / fssrv / htc:系统管理、进程管理、文件系统服务、温度控制等
- ams_mitm:中间人模块,拦截并定制系统服务
- fatal:自定义错误显示界面
模块清单见 docs/components/stratosphere.md,各模块文档在 docs/components/modules/,例如 loader 模块详解。源码目录见 stratosphere/loader/ 与 stratosphere/ams_mitm/。
🎮 第六层:troposphère —— 应用层定制
最外层的 troposphère 面向应用级定制,包含:
reboot_to_payload:一键重启到指定 payload 的示例应用- 自制 UI 界面(如 daybreak、haze 等系统主题)
源码见 troposphere/,文档见 docs/components/troposphere.md。
🎁 加分项:emummc 与公共库
除了六层主体,Atmosphere 还包含两个重要辅助组件:
- emummc:在内存/SD 卡上模拟 eMMC 存储,实现"虚拟系统分区",是虚拟系统玩法的核心,代码见 emummc/
- libraries:四大公共库 ——
libexosphere(硬件抽象)、libmesosphere(内核)、libstratosphere(系统模块)、libvapours(加密与存储驱动),是整个架构的"地基",见 libraries/
📚 延伸阅读:从文档到配置
想深入学习的同学,建议按以下路径进阶:
- 架构总览:docs/main.md
- 构建指南:docs/building.md
- 常见问题:docs/faq.md
- 功能特性:金手指 与 配置项
- 示例配置模板:config_templates/exosphere.ini、config_templates/override_config.ini
总结:Atmosphere 的六层架构并非炫技,而是对 Switch 启动链路的精确映射——fusée 点火起飞,exosphère 守住安全底线,mesosphère 与 stratosphère 撑起系统骨架,troposphère 让一切面向用户可见。理解了这六层,你就掌握了大气层系统的完整原理!🌟
【免费下载链接】Atmosphere-stable大气层整合包系统稳定版项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考