谷歌编程之夏与 Zephyr RTOS 项目介绍
| 2022-07-12 10:22:00 评论: 0
谷歌编程之夏(GSoC)是一个谷歌举办的国际年度项目,每年都在夏季举办。当贡献者们参与并完成一个 自由开源软件 的编码项目,谷歌 就会给他们发放 津贴。谷歌编程之夏于 2005 年推出,于每年 5 月至 8 月举行。项目创意由参与开源软件开发的主办组织提交,但学生也可以提出自己的项目创意。
今年,该项目向 18 岁或以上的任何人开放 —— 不仅限于学生和应届毕业生了。参与者通过编写软件获得报酬,其 津贴 的金额取决于他们所在国家/地区的 购买力平价。
LCTT 译注:以往,这个活动只允许在校学生参与,今年条件放开,只需年龄 18+ 即可,对参与者的贡献时长要求也降低了,尽可能地让更多人参与进来。不过,今年的报名通道在 4 月 19 日就截止了,大家有兴趣的话明年可以关注一下。
这也是 Zephyr 项目第一次作为 Linux 基金会的项目,参与到谷歌编程之夏中。让我们一起欢迎这些贡献者及其项目吧!
项目一:基于 Zephyr 的 Arduino 模块
1 个贡献者(350 小时)。
Arduino 是一个流行的框架,它为嵌入式设备编程提供了一个简化的接口。最近,Arduino 采用 mbed OS 作为其一些新设备的基础 RTOS。通过这项工作,他们将 Arduino Core 作为独立的抽象层,从 Arduino Core for mbed 中分离出来。这为在其他操作系统上利用 Arduino Core 开辟了可能性。
该项目的想法就是创建一个利用 Arduino Core 的 Zephyr 模块,以便开发人员在与 Arduino 兼容的设备上使用 Arduino 框架时,可以使用 Zephyr 作为底层操作系统。对用户的好处包括:
- 可以访问 Arduino API 以及高级 Zephyr 功能
- 得益于 Zephyrs 的设备支持,用户可以选择标准 Arduino 生态系统更广泛的设备
- 能够重复使用 Arduino 工具,如 Arduino IDE 和丰富的库
Arduino Core 使用 LGPL 许可证,Zephyr 使用 Apache 2 许可证。这意味着该项目的开发很可能需要脱离主分支,并在单独的仓库中进行,以保持代码和许可证分离。有关这方面的历史讨论,请参阅 #22247,有关 Arduino 核心架构之前的早期尝试,请参阅 soburi/arduino-on-zephyr。
贡献者的任务是:
- 实现一个基于 Arduino Core 的准系统模块,可以为任何目标编译(不具备功能性,可能在 QEMU 中)
- 基于 Zephyr,使用 Arduino API 实现一个通用外围设备,例如 Serial
- 以一个物理板为目标,例如 Arduino Zero
导师:
Jonathan Beri – Golioth 和 Zephyr TSC 的首席执行官 Alvaro Viebrantz – Golioth 和 Google GDE 的创始工程师
代码许可证: LGPL
贡献者详细信息:
- 姓名:Dhruva Gole
- 项目博客:https://dhruvag2000.github.io/Blog-GSoC22/
- 项目海报:(题图)
关于贡献者:
Dhruva 是一名电气工程专业的本科生。他的兴趣广泛,从嵌入式软件开发到硬件设计,在 SBC、微控制器和嵌入式 Linux 平台方面拥有丰富的工作经验。
项目二:Zephyr 的 Apache Thrift 模块
一个贡献者(350 小时)。
Apache Thrift 是一个 IDL 规范、RPC 框架和代码生成器,它抽象出传输和协议细节,让开发者专注于应用逻辑。它适用于所有主流操作系统,支持超过 27 种编程语言、7 种协议和 6 种底层传输方式。最初,它于 2007 年在 Facebook 开发,随后与 Apache 软件基金会共享。
在 Zephyr RTOS 中支持 Thrift 将使社区受益匪浅。它将带来新的软件和硬件技术、新产品以及云集成的其他方式。 Thrift 也可以用于几乎任何传输,因此,它是 Zephyr 支持的许多不同物理通信层的自然选择。该项目的想法是使概念验证 Thrift for Zephyr 模块 形成以供上游使用。为此,贡献者必须:
- 对 Thrift 功能(协议、传输)执行额外的集成
- 使用 supported board 或 Qemu 编写其他示例应用程序
- 使用 Zephyr 测试框架 编写其他测试并生成覆盖率报告
- 确保模块遵循适当的 编码指南 并满足 模块要求
- 将任何必要的改进贡献回 Apache Thrift 项目
- 将任何必要的改进贡献回 Zephyr 项目
导师:
- Christopher Friedt – Meta 的 SWE / ASIC FW 和 Zephyr TSC 成员
- Stephanos Ioannidis – Zephyr CXX 子系统维护者
代码许可证: Apache 2.0
贡献者详细信息:
- 姓名:Young
关于贡献者: Young 是一名通信工程专业的学生,他将攻读计算机工程硕士学位。他兴趣广泛,从前端开发到硬件设计,在 Web、IoT 和嵌入式平台方面拥有丰富的工作经验。2021 年他设计的一款搭载 RISC-V 64 处理器的低成本单板机被多家极客媒体报道。