2023腾讯犀牛鸟开源人才培养计划
开源项目介绍
扫码填写问卷报名,提交OpenCloudOS项目申请书
加入开发实践
与导师一起成长这一夏
OpenCloudOS 项目介绍
OpenCloudOS的子项目EMF(ebpf-module-framework)的目标是使ebpf程序的构建和管理更加简单。OpenCloudOS的子项目lkp-extent的目标是构建基于容器的自动部署和测试框架,其会作为云原生OS的一部分。
OpenCloudOS 项目导师寄语
彭浩,OpenCloudOS社区子项目负责人
OpenCloudOS是一个中立开放的社区,其中基于Linux内核开源了多个独立项目。如nettrace,EMF(ebpf module framework),lkp-extent(LisaOS的自动化测试组件),LiKeX(即之前的RustKvm)以及即将完全开源的LisaOS的构建组件和升级组件等等,欢迎同学们积极加入开源项目的开发。
OpenCloudOS 相关资料
OpenCloudOS 官网地址:
http://www.opencloudos.org
OpenCloudOS 文档集合:
https://docs.opencloudos.tech
OpenCloudOS 任务实战项目
编程任务
中级任务
lkp-extent容器测试框架(https://github.com/OpenCloudOS/lkp-extent)
lkp-server/lkp-node 两个组件的框架开发。lkp-extent容器测试框架需要一个server node(lkp-server)和若干个client node(lkp-node)。server node会进入监听模式,client node会根据自身的服务器配置相继接入对应的server node。lkp-node上运行包含了lkp测试套件(https://github.com/OpenCloudOS/lkp-tests)的容器。当前项目初步框架已经开发完成.
低级任务
lkp-extent实现一系列命令集合(https://github.com/OpenCloudOS/lkp-extent)在lkp-server中执行命令,从而对指定的lkp-node发起命令,使lkp-node对包含lkp测试套件的容器执行相应命令。这些命令包含:
查看有哪些待测服务器
$ lkp-ctl list # 返回client-node的nodeid,arch类型和内存等信息
更新测试组件
$ lkp-ctl update # 更新本机的测试组件,包括lkp-extent和lkp两个repo
$ lkp-ctl update all # 更新所有node的测试组件
$ lkp-ctl update -n nodeid #更新id号是nodeid的node的测试组件
下发测试指令
$ lkp-ctl run testcase # 所有node都执行testcase
$ lkp-ctl -n nodeid run testcase # id是nodeid的服务器执行testcase
$ lkp-ctl -n nodeid -c containerCount run testcase # id是nodeid的服务器开containerCount个容器,并在容器里面执行testcase
下发测试集
$ lkp-ctl run testcluster # testcluster是一堆testcase的组合,用于进行多组合测试
$ lkp-ctl -n nodeid run testcluster # 对指定测试机进行组合测试
$ lkp-ctl -n nodeid -c contaierCount run testcluster # 对指定测试机进行容器内的组合测试
推送自定义测试case
$ lkp-ctl push testscript # 向所有测试机推送名字为testscript的脚本
$ lkp-ctl -n nodeid push testscript # 向指定测试机推送名字为testscript的脚本
收集测试结果
$ lkp-ctl result # 收集所有测试机的测试结果
$ lkp-ctl -n nodeid result # 收集指定的测试机的测试结果
中级任务
EMF(ebpf-module-framework)(https://github.com/OpenCloudOS/EMF-ebpf-module-framework)
实现一个ebpf的构建和管理框架. EMF支持两种加载模式:一、EMF模块静态链接;二、EMF模块动态加载。通常,在入口函数main启动后(core/emf.c),EMF框架会去主动查找静态模块,分别去执行静态模块的初始化函数和加载函数;然后EMF才会去读取动态模块,并处理动态模块的初始化和加载函数。所以这里有一个优先级的关系,即静态模块的优先级永远高于动态模块的优先级。
OpenCloudOS 开源项目交流群
Apache InLong 开源项目交流群
(该二维码至7月17日前有效)
Cherry Markdown 开源项目交流群
ncnn 开源项目交流群
Pocky QQ群(MLIR YES!)677104663(超多大佬)
答案: multilevel intermediate representation
Telegram Group https://t.me/ncnnyes
Discord Channel https://discord.gg/YRsxgmF
OMI 开源项目交流群
(该二维码至7月17日前有效)
TencentOS Tiny 开源项目交流群
TDesign 开源项目交流群
(该二维码至7月17日前过期)
Tencent KonaJDK 开源项目交流群
(该二维码至7月17日前有效)
3TS 开源项目交流群
(该二维码至7月17日前有效)
更多开源项目信息,
尽在“腾讯开源人才社区”
扫码加入,解锁所有学习资料
🔍学生指南Q&A:
https://github.com/Tencent/OpenSourceTalent/issues/24
🔍官方QQ群:
859260607 (加群请备注学校+专业)
腾讯犀牛鸟开源人才培养计划官网
https://opensource.tencent.com/summer-of-code
(点击文末阅读原文直接访问)
合作或疑问欢迎联系:tencentopen@tencent.com