1. S-CORE 是什么?
Eclipse S-CORE(Safe Open Vehicle CORE)是由 Eclipse Foundation 主持的开源汽车软件平台项目,定位为软件定义汽车(SDV)的核心运行时栈。它由多家汽车主机厂(OEM)、Tier 供应商、软件供应商和服务提供商共同开发,目标是建立一个面向高性能计算平台(HCP)的、安全可认证的中间件层。
核心特征:
- 开源 + 代码驱动(不是规范驱动,区别于 AUTOSAR)
- 面向"动态核心"组件,桥接 OS 与应用层之间的空白
- 专为安全关键场景设计:ADAS、车身、底盘
- 支持 ISO 26262(功能安全,目标 ASIL_B) 和 ISO/SAE 21434(信息安全) 合规
- 编程语言:C++17(含 C++20 部分特性)和 Rust 安全子集
- 主要面向 HCP(高性能计算平台),不适用于 32 位微控制器
- 操作系统支持:QNX、Red Hat AutoSD Linux、EB corbos Linux for Safety Applications
2. 当前发布版本与已实现的功能
最新版本:v0.5.0-beta(2025-12-19 发布)
前一版本:v0.5.0-alpha(2025-11-17 发布)
⚠️ 当前为早期 beta 版本,仅用于实验和反馈,尚未"production release",没有完整的安全论证。
已集成的软件模块(v0.5-beta)
| 模块 | 版本 | 功能描述 |
|---|---|---|
| Communication | v0.1.1 | 零拷贝、共享内存 IPC;支持 mixed-criticality;服务发现;pub/sub;field-based 通信;tracing 支持 |
| FEO(Fixed Execution Order Framework) | v1.0.2 | 用于数据驱动/时间驱动应用(ADAS 域),支持固定执行顺序和可重现处理 |
| Baselibs | v0.1.3 | 基础 C++ 工具库集合 |
| Persistency | v0.2.1 | 数据持久化存储 |
| Orchestrator (Kyron + Orchestration Framework) | Rust 异步运行时 + 任务链编排框架 |
文档/规划中的特性(Features)
S-CORE 文档列出了以下功能领域(部分仍在规划/开发中):
- AI Platform
- Analysis Infrastructure
- Base Libraries (v0.5 beta) ✅
- Code Generation
- Communication (v0.5 beta) ✅
- IPC, SOME/IP Gateway, ABI Compatible Data Types
- Configuration
- Diagnostic and Fault Management
- Frameworks (FEO ✅)
- Infrastructure (Bazel registry, Config as code)
- Integration
- Lifecycle
- Orchestration (v0.5 beta) ✅
- Persistency (v0.5 beta) ✅
- Security & Cryptography
- Time
实现进度估计:在约 15 个特性领域中,约 5 个模块已经发布了首个可用的 beta 版本,其它仍处于需求/架构定义阶段。v1.0 目标是包含"自动驾驶平台所有通用模块"。
路线图
- Project setup(项目搭建)
- 平台架构与 v1.0 特性需求定义
- 首批模块的公开实现(如 IPC) 当前阶段
- v1.0 完整发布 包含自动驾驶平台所有通用模块
来源:S-Core v0.5-beta release notes
3. S-CORE vs Adaptive AUTOSAR(ara)对比
| 维度 | S-CORE | Adaptive AUTOSAR |
|---|---|---|
| 本质 | 开源代码栈(code-based) | 规范标准(specification-based) |
| 许可 | Apache 2.0 / EPL,免费 | AUTOSAR 联盟成员制,付费 |
| 实现 | 直接提供可运行代码 | 各供应商各自实现(RTA-VRTE、Vector、Elektrobit 等) |
| 语言 | C++17/20 + Rust 安全子集 | 主要 C++14/17 |
| 目标硬件 | HCP(不支持 MCU) | HCP(不支持 MCU) |
| 安全标准 | ISO 26262 ASIL_B(目标) | ISO 26262 ASIL_B/D |
| 通信 | 零拷贝共享内存 IPC + SOME/IP Gateway | ara::com(SOME/IP / DDS) |
| 持久化 | Persistency 模块 | ara::per |
| 诊断 | Diagnostic and Fault Management(规划) | ara::diag |
| 状态管理 | Lifecycle | ara::sm / ara::exec |
| 成熟度 | v0.5-beta,早期阶段 | 多年量产应用 |
S-CORE 的优势 ✅
- 开源、透明:所有代码、需求、架构文档完全公开,可在 GitHub 审阅
- 代码先行:规范和实现同步推进,避免"规范-实现不一致"问题
- 支持 Rust:原生支持 Rust 安全子集,更适合现代内存安全要求
- 协作开发:OEM/Tier1 共同参与,降低重复开发成本
- 现代工具链:Bazel、Sphinx、GitHub CI/CD,开发体验现代化
- 无需付费会员:任何人/任何公司均可使用和贡献
S-CORE 的劣势 ❌
- 不成熟:v0.5-beta,不能用于量产,许多模块仍在规划
- 安全认证不完整:尚无独立安全评估和认证证据
- 生态系统小:第三方工具、培训、集成商支持远不及 AUTOSAR
- 特性覆盖不全:相比 AUTOSAR Adaptive 的完整 functional cluster,许多功能(Cryptography、Update & Config Management、Time Sync 等)尚未实现
- 稳定性风险:release notes 明确说明可能出现 breaking changes
4. 如何使用 S-CORE?
第 1 步:阅读 Eclipse S-CORE Book
官方"how-to"入门指南,引导你逐步构建
scrample
演示应用。 👉 Eclipse S-CORE Handbook
第 2 步:获取代码
所有代码托管在 GitHub:
- 主仓库:https://github.com/eclipse-score/score
- 演示应用:https://github.com/eclipse-score/scrample
- 各功能模块:https://github.com/eclipse-score(communication、feo、persistency 等独立仓库)
第 3 步:搭建构建环境
- 构建系统:Bazel(自动化构建、克隆仓库、测试)
- 文档:Sphinx + sphinx-needs
- 图表:PlantUML、draw.io
- 测试:gtest / gmock
- 支持语言:C++ 和 Rust
第 4 步:选择参考镜像运行
v0.5 提供以下实验性参考镜像:
- QNX
- Red Hat AutoSD Linux
- EB corbos Linux for Safety Applications
第 5 步:开发应用
基于已有模块(Communication、FEO、Persistency 等)开发应用,参考
scrample 示例。
参与贡献
-
邮件列表: score-dev@eclipse.org
-
Slack 频道:#score-project-channel-public
-
GitHub Discussions:https://github.com/orgs/eclipse-score/discussions
-
需要 Eclipse Foundation 账号
来源:
总结建议
| 场景 | 推荐 |
|---|---|
| 当前量产项目 | 使用 Adaptive AUTOSAR(如 RTA-VRTE 3.9.0) |
| 预研、原型、未来项目(2027+) | 评估和试用 S-CORE |
| 希望影响汽车软件标准 | 加入 S-CORE 贡献 |
| 需要 Rust 安全栈 | S-CORE 是目前最有希望的开源选择 |
如需进一步了解某个具体模块(如 Communication 的零拷贝 IPC、FEO 的执行模型)或希望对比某个 AUTOSAR functional cluster 与 S-CORE 模块的具体差异,请告诉我,我可以做更深入的分析或生成架构对比图。