linux内核测试_Linux内核的持续集成测试

linux内核测试

借助来自1,700多个不同开发人员的每个版本的14,000个变更集,很明显Linux内核发展Swift,并带来了许多复杂性。 内核错误的范围从小麻烦到大问题,例如系统崩溃和数据丢失。

随着对越来越多的项目进行持续集成(CI)的呼声越来越高, 持续内核集成(CKI)团队朝着一个使命前进:防止错误被合并到内核中。

Linux测试问题

需要时,许多Linux发行版都会测试Linux内核。 该测试通常在发布时或用户发现错误时进行。

有时会出现不相关的问题,维护人员会争先恐后地查找包含成千上万个补丁的变更集中的哪个补丁引起了新的,不相关的错误。 诊断错误可能需要专用的硬件,一系列触发器以及对该内核部分的专业知识。

CI和Linux

大多数现代软件存储库都有某种自动化的CI测试,可以在提交提交到存储库之前测试提交。 通过自动测试,维护人员可以通过查看CI报告来发现软件质量问题以及大多数错误。 诸如Python库之类的更简单的项目附带了大量的工具,可以使此过程变得更容易。

在进行任何测试之前,必须先配置和编译Linux。 这样做会花费时间并计算资源。 此外,该内核必须在虚拟机或裸机上引导以进行测试。 获得对某些系统体系结构的访问权需要额外的花费或非常缓慢的仿真。 从那里,某人必须确定一组触发错误或验证修复的测试。

CKI团队的工作方式

Red Hat的CKI团队目前遵循几个内部内核以及上游内核(例如稳定内核树)的更改。 我们在每个存储库中监视两个关键事件:

  1. 当维护人员合并拉取请求或补丁时,存储库中的最终提交将更改。

  2. 当开发人员提出通过修补程序或稳定的修补程序队列进行合并的更改时。

当这些事件发生时,自动化就付诸行动,并且GitLab CI管道开始测试过程。 一旦管道运行了lint脚本,合并了所有补丁程序并针对多种架构编译了内核,就开始了真正的测试。 我们可以在不到六分钟的时间内为四种架构编译内核,并通常在两个小时或更短的时间内将反馈提交给稳定的邮件列表。 自2019年1月以来,每月运行超过100,000个内核测试,并且已完成超过11,000个GitLab管道。

每个内核都在其本机体系结构上启动,该体系结构包括:

aarch64 :64位ARM ,例如Cavium(现为Marvell)ThunderX

ppc64 / ppc64le :大小端的IBM POWER系统。

s390xIBM Z系列大型机。

x86_64IntelAMD工作站,笔记本电脑和服务器。

在这些内核上运行多种测试,包括Linux Test Project(LTP) ,其中包含使用通用测试工具进行的大量测试。 我的CKI团队开源了44项测试,并且还在进行中。

参与其中

上游内核测试的工作量每天都在增加。 许多公司为各种内核提供测试输出,包括Google ,Intel, LinaroSony 。 每个工作都集中在为上游内核以及每个公司的客户群带来价值上。

如果您或您的公司希望参与其中,请参加在葡萄牙里斯本举行的2019年Linux Plumbers Conference 。 在会议结束后的两天里,加入我们参加Kernel CI hackfest,并推动快速内核测试的未来。

有关更多详细信息,请查看我的Texas Linux Fest 2019演讲中的幻灯片

翻译自: https://opensource.com/article/19/6/continuous-kernel-integration-linux

linux内核测试

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于一个300字的回答来说,涵盖整个 Linux 内核调度器的详细步骤是不太可能的。然而,我可以给你一个大致的概述,让你了解一些关键步骤。 首先,要开始编写一个 Linux 内核调度器,你需要对操作系统的基本原理有一定的理解。你需要了解进程与线程的概念,以及它们在操作系统中的调度和执行。你还需要了解调度算法以及其在进程选择方面的应用。 其次,你需要研究 Linux 内核调度器的源代码。这将涉及到理解 Linux 内核的整体结构以及调度器在其中的位置和功能。你可以从 Linux 的官方源代码仓库中获取这些信息。 一旦你了解了基本原理和调度器的源代码,你可以根据你的需求进行修改或编写新的调度器。这可能包括更改调度算法、优化调度策略或添加新的功能。你可能还需要做一些基准测试,以确保你的调度器在不同的负载情况下表现良好。 最后,你需要将你的调度器集成到 Linux 内核中,并进行测试和验证。这可能涉及到构建和安装整个 Linux 内核,然后在实际系统中运行调度器以进行测试。你可能还需要一些调试工具来帮助你找出任何问题并进行修复。 总结起来,编写一个 Linux 内核调度器是一个复杂的过程,需要深入了解操作系统原理和 Linux 内核的工作机制。这只是一个概述,涉及的步骤远远超过300字的限制。希望这个简短的回答能够给你提供一些指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值