活动介绍
阿里巴巴编程之夏(ASoC)是面向全球 18 岁及以上本科、硕士、博士高校学生的技术普惠计划,旨在鼓励高校学生深度参与开源开发活动,激励学生以第一视角感受开源世界的魅力。ASoC 以阿里巴巴开源技术力量作为媒介,为高校学生们和开源社区搭建桥梁。
本次活动,龙蜥社区共设置了 8 个项目,每个任务均指派了专业导师对同学提供精心指导。有意向选择龙蜥社区项目的同学,可登录项目页了解详细信息,也可以直接联系项目导师咨询。
参与活动可以获得什么?
- 深度参与国际顶级开源项目,获得资深开源导师一对一的指导,了解开源协作流程,提升研发技能。
- 丰厚奖学金和贡献者证书,你的代码更有机会被项目正式采纳在全世界运行。
- 绿色招聘通道:
- 如果你是非应届生,你将有机会获得项目制实习机会。
- 如果你是应届生,ASoC 将为你提供阿里巴巴集团校招“早鸟”内推通道,为你匹配最合适的岗位。
流程:
1、学生报名:5 月 30 日- 6 月 26 日
2、公布入选学生名单:7 月 3 日
3、项目开发:7 月 - 8 月
更多流程,详见:
https://asoc2022.opensource.alibaba.com/#step
项目解析/详情
龙蜥社区(OpenAnolis)是一个操作系统开源社区及创新平台,由 Arm、阿里云、Intel、龙芯、统信和三大运营商等多家操作系统厂商、芯片公司、云计算公司共同发起,致力于通过开放的社区合作,构建自主的 Linux 开源发行版及开源创新技术,推动软、硬件及应用生态繁荣发展。
1、Dragonball-sandbox 项目单元测试完善
项目详情:
https://gitee.com/anolis-education/asoc2022/issues/I5994K?from=project-issue
项目描述:
完善 Kata Containers 项目和 Dragonball-sandbox 项目下的单元测试代码。
kata containers 项目链接:
https://github.com/kata-containers/kata-containers
dragonball-sandbox项目链接:
https://github.com/openanolis/dragonball-sandbox
项目目标:
- 【必选】将 dragonball-sandbox 项目的代码覆盖率提升到 90% 以上。
- 【可选】将 Kata Containers 项目中 Dragonball VMM 中关键模块的代码覆盖率提升到 90%。
难度:基础
2、Dragonball 使用安全固件启动 Linux payload 优化
项目详情:
https://gitee.com/anolis-education/asoc2022/issues/I599PD?from=project-issue
项目描述:
Dragonball 是 rust 编写的轻量级虚拟化项目。在传统的沙箱容器场景下,可以使用 VMM 直接加载和启动 guest os。然而在一些特殊的场景下(比如机密计算),因为用户不信任 VMM, 则必须使用的安全固件加载和启动 guest os。td-shim 就是一个适用于容器场景的,轻量级的安全固件。该任务就是在基于 Dragonball-sandbox,支持 td-shim 安全固件, 并且使用安全固件引导 payload(linux kernel)的启动。
项目目标:
- 【必选】Dragonball 支持使用 td-shim 安全固件引导 payload 启动。
- 【可选】能够支持在多个平台上(Intel/AMD/海光)引导 payload 启动。
- 【可选】优化 payload 启动时间。
难度:基础
3、KeenTune 应用最佳实践之遗传算法 CMA-ES 的集成与实践
项目详情:
https://gitee.com/anolis-education/asoc2022/issues/I599NS?from=project-issue
项目描述:
当前参数自调优相关的算法主要分为贝叶斯优化框架下的算法和遗传算法框架下的算法,近年来学术界对于两种框架下的算法均有较多的理论创新和突破。于此同时,工业界真实场景的实践中,尤其是带有大量复杂参数的系统软件调优领域,相关实践尚比较欠缺。当前 KeenTune 已经继承了多个基于贝叶斯优化原理的算法,并应用在包括内核参数调优、应用参数调优、编译器参数调优等多个实践领域。此课题旨在进一步探索遗传算法框架下的算法在上述场景中的实践效果,基于真实主要场景进行参数调优,对比贝叶斯优化的相关算法,形成最佳实践。
项目产出要求:
- 在 KeenTune 内实现或集成 CMA-ES 算法。
- 在 KeenTune 当前支持的主要场景(内核参数和多种应用参数)中挑选 2-3 个场景,实践对比分析该算法与 KeenTune 支持的贝叶斯优化典型算法。
- 在社区提交该场景的最佳实践手册。
难度:基础
4、基于 Dragonball-sandbox 开源组件搭建简易虚拟机
项目详情:
https://gitee.com/anolis-education/asoc2022/issues/I599ES?from=project-issue
项目描述:
通过 Dragonball-sandbox 组件和上游 rust-vmm 组件在导师的指导下,搭建出一个简易的轻量虚拟机。产出代码 Demo 和文档。
Dragonball-sandbox 组件链接:
https://github.com/openanolis/dragonball-sandbox
rust-vmm 组件链接:https://github.com/rust-vmm
项目目标:
- 【必选】在导师的指导下,将 Dragonball-sandbox 组件和 rust-vmm 组件组合,搭建出一个简易的轻量虚拟机。
难度:进阶
5、KeenTune 应用最佳实践之 tensorflow 场景动态参数调优
项目详情:
https://gitee.com/anolis-education/asoc2022/issues/I599MA?from=project-issue
项目描述:
通过对 tensorflow 的主要应用模型进行分析,确定合适的 Benchmark,集成进 KeenTune。同时调研对 tensorflow 运行时有影响的参数(包括但不限于:内核参数、系统参数、模型超参)及其取值范围,形成参数调优专家知识。并真实基于其中主要场景进行敏感参数识别及参数调优,形成最佳实践。
项目目标:
- 选择合适的 tensorflow 测试套,并适配在 KeenTune 的框架内,能够进行内核参数和 flink 配置参数的调优。
- 分析并形成 flink 配置的专家知识库,并且能够通过敏感参数识别的能力来分析各场景中参数的敏感度及最优取值范围。
- 在社区提交该场景的最佳实践手册。
难度:进阶
6、Enclave Network Gateway: 基于TEE/Enclave实现端到端数据网关
项目详情:
https://github.com/inclavare-containers/inclavare-containers/issues/1566
项目描述:
基于 RATS-TLS 实现对应用无感知的端到端可信数据隧道,确保通过网络传输数据 TLS 通道的信任根来自 TEE/Enclave 而不是传统 CA(比如 TLS 证书)。利用 tap/tun 设备的特点,基于 RATS-TLS 建立通信 App 无感知的安全数据隧道。
项目目标:
- 基于 RATS-TLS 实现 Network Gateway 的技术原型。
难度:基础
7、基于in-toto的供应链安全自动化系统
项目详情:
https://github.com/inclavare-containers/inclavare-containers/issues/1568
项目描述:
本项目需要基于 in-toto 实现在开源软件生产流程中的数据完整性保护框架,可利用 Github CI/CD 的 action 库,对于编程语言为 Github CI/CD 脚本语言。
项目目标:
设计并编写基于 in-toto 的 CI/CD 通用 action 库,要求:
- 【必选】in-toto layout 生成:根据输入参数,生成 layout,申请证书并以社区 root 身份对 layout 签名。
- 【必选】in-toto linkfile 生成:根据输入的 layout 和其他参数,执行 layout 中的某一步骤,然后生成 linkfile,并使用子密钥对linkfile签名。
- 【必选】设计完善的密钥管理系统:将 in-toto 的密钥信任体系与 CI/CD 融合,设计实现(或在符合安全模型假设下使用现有手段)一套能够支持 in-toto 信任模型的 CI/CD 密钥管理系统。
- 【可选】参考 SLSA 规范,考虑如何在现有条件下提供更高 SLSA 等级的构建服务。
- 【可选】将以上设计和安全性考虑以文档形式总结呈现。
难度:基础
8、确定性编译(Deterministic Builds)
项目详情:
https://github.com/inclavare-containers/inclavare-containers/issues/1569
项目描述:
基于 eBPF 的确定性编译系统。利用 eBPF 监控编译程序运行时所有系统调用的执行,拦截并消除其中的非确定性因素,保证编译流程的确定性执行。
本项目的目标场景之一是为机密计算场景下的软件供应链中的构建环节提供更为通用的机制,克服传统的可重复构建的技术阻碍。
项目目标:
- 基于自己编写的的确定性编译工具,实现 Linux kernel 的确定性编译(即编译同一 Linux kernel 源码时,生成的二进制可执行文件哈希值都相同)。
难度:进阶
加入群聊
欢迎扫描下方二维码提交报名信息和加入微信群与导师交流,如果二维码过期,请添加小龙微信(微信号:openanolis_assis),并备注高校,小龙会拉您入群。更多技术交流请打开钉钉搜索(群号:33311793)入群,欢迎各位开发者/用户加入,一起打造一个活跃的、健康的开源操作系统生态!
—— 完 ——
关于龙蜥社区
龙蜥社区(OpenAnolis)由企事业单位、高等院校、科研单位、非营利性组织、个人等在自愿、平等、开源、协作的基础上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、开放的 Linux 上游发行版社区及创新平台。
龙蜥社区成立的短期目标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应对方案,构建一个兼容国际 Linux 主流厂商的社区发行版。中长期目标是探索打造一个面向未来的操作系统,建立统一的开源操作系统生态,孵化创新开源项目,繁荣开源生态。目前,Anolis OS 8.4已发布,支持 X86_64 、Arm64、LoongArch 架构,完善适配 Intel、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。
欢迎下载:https://openanolis.cn/download
加入我们,一起打造面向未来的开源操作系统!https://openanolis.cn