如何搭建kunit环境对linux内核进行单元测试

如何搭建kunit环境对linux内核进行单元测试,第1张

要搭建KUnit环境来对Linux内核进行单元测试,首先要准备一个Linux内核源码树,然后在源码树中添加KUnit文件,最后使用Kconfig文件配置KUnit,并运行make命令来编译内核。为了使KUnit正常工作,还需要准备一个测试框架,并将框架中的测试脚本添加到内核源码树中。最后,运行make命令编译内核,便可在Linux内核上进行单元测试。

最近由于项目的要实现无限级代理的模式,加上要实时统计业绩等等一些业务逻辑,导致对性能这块要求比较高一些,所以趁着这个机会呢,也分享一下实践后和综合一些资料之后的笔记,写得不一定很完美,但是也希望对有需要的朋友一丝丝的帮助。

大多数MySQL都部署在linux系统上,所以 *** 作系统的一些参数也会影响到MySQL性能,以下对linux内核进行适当优化。

1、查看连接数 netstat -na|awk '/^tcp/ {++S[$NF]} END {for(i in S) print i,S[i]}'

2、查找 whereis sysctl.cnf

4、然后执行以下命令让参数生效: /sbin/sysctl -p

1、修改 vim /etc/security/limits.conf * 代表所有用户,也可以指定用户,重启系统生效

2、重启

对待知识领域,我们总喜欢去下一个定义。 *** 作系统是我们每天工作都要使用的东西,由于现代商业 *** 作系统的复杂性和没有统一的标准,若对一个 *** 作系统下定义并不能精确的描述 *** 作系统所属领域。根据经验我们可以认为 *** 作系统就是在整个应用系统中负责最基本功能和系统管理的那部分。包括内核、设备驱动程序、启动引导程序、命令行Shell或者GUI界面、基本文件管理工具和系统工具。

严格的来讲linux只是 *** 作系统内核本身,广义上的linux则常用来指基于linux内二的完整的 *** 作系统,它包括GUI组件和其它许多工具。

GUI其实只是 *** 作系统的表象,内核才是 *** 作系统内在的核心。系统的其它部分必须依靠内核所提供的服务,像管理硬件设备、分配系统资源等,内核有时候被称为管理者或者 *** 作系统核心。

通常一个内核由负责响应中断的中断服务程序,负责进程调度的CPU调度程序,负责管理进程地址空间的内存管理程序以及网络、进程间通信等系统服务共同组成的。

内核在有安全机制的 *** 作系统中不同于普通程序,一般处于系统态(内核态),拥有受保护的内存空间和访问硬件设备的所有权限。这种系统状态和被保护起来的内存空间,统称为 内核空间

与内核空间相对的,用户所执行的应用程序在用户空间执行。用户态的应用程序只能访问允许它们使用的系统资源,并且只使用某些特定的系统功能,不能直接访问硬件,也不能访问内核划分给其它应用程序的内存空间。

应用程序通过系统调用来和内核通信,当一个应用程序发起系统调用时,内核便代其执行。在这种情况下应用程序通过系统调用在内核空间运行,而内核被称为运行在进程上下文中。应用程序通过系统调用进入内核空间时应用完成其工作的基本方式。

*** 作系统内核可分为两大阵营:单内核和微内核。

单内核是一种较为简单的设计,通常以单个静态二进制文件存储在磁盘中,整体上作为一个单独的大过程,所有的内核服务都在这样的一个大内核地址空间上运行。内核服务都处于内核态,并身处同一内核地址空间,之间可以几乎无性能损耗的相互通信。

单内核具有简单和高性能等特点。

微内核根据功能被分割成多个独立的过程,每个过程都叫做一个服务器。所有的服务器都运行在各自的地址空间上(大部分处于用户空间),只有强烈请求特权服务的服务器才运行在特权模式下。

微内核服务器之间不能直接调用函数通信,而是通过 消息传递 通信。系统采用进程间通信(IPC)机制,服务之间各自独立,通过IPC互换消息,有效的避免了服务之间的失败传染。

IPC机制的开销远高于函数调用,而且在运行时还会牵扯到内核空间和用户空间上下文切换,所以消息传递需要一些开销。所以在内核的实际实现上大部分微内核的 *** 作系统也会让大部分的服务放置与内核中,这样就可以直接调用函数,消除消息传递的开销。

windows NT和Mach(Mac OS X)都是典型的微内核,不过在实际实现上,其所有服务都运行在内核空间。

linux是一个单内核,不过linux汲取了微内核的精华,并拥有模块化设计、抢占式内核、支持内核线程以及动态装载内核模块等特性。

linux内核在设计时充分参考了已有的很多UNIX的内核实现,并且有一些创新方案。linux内核和传统的UNIX系统之间存在一些显著的差异:

本文的写作和学习中参考了以下资料

1.《Linux Kenel Development ~ Thrid Edition 》


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7362365.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存