首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

开源项目介绍|OpenCloudOS-开源开放中立的操作系统社区

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才会去读取动态模块,并处理动态模块的初始化和加载函数。所以这里有一个优先级的关系,即静态模块的优先级永远高于动态模块的优先级。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OiJ2eHs3XJ0KnPit92CkSe0A0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券