
linux内核
文章平均质量分 73
绛洞花主敏明
研究生在读,喜欢刺激有挑战。
展开
-
linux内核模块的参数传递
module_param_array(数组名,数组元素类型,&num,变量的访问权限) //num 是一个 char ,int,long 或uchar,uint,ulong类型的变量,用于保存传递给数组的元素个数。module_param(变量名,变量类型,变量的访问权限) //变量的访问权限:变量会文件系统以一个文件形式呈现,这个文件权限属性就是“变量的访问权限”模块安装时候可以给模块中的变量传递数值,安装后,模块中变量的值就是安装时所传入的值 ,没有传递的变量,则使用代码中默认值。转载 2023-08-24 23:23:55 · 282 阅读 · 0 评论 -
register_sysctl_table实现内核数据交互
Sysctl 条目也可以是目录,此时 mode 字段应当设置为 0555,否则通过 sysctl 系统调用将无法访问它下面的 sysctl 条目,child 则指向该目录条目下面的所有条目,对于在同一目录下的多个条目,不必一一注册,用户可以把它们组织成一个 struct ctl_table 类型的数组,然后一次注册就可以。Sysctl是一种用户应用来设置和获得运行时内核的配置参数的一种有效方式,通过这种方式,用户应用可以在内核运行的任何时刻来改变内核的配置参数,也可以在任何时候获得内核的配置参数。转载 2023-08-24 22:39:28 · 492 阅读 · 0 评论 -
创建proc文件的三种方法
在做内核驱动开发的时候,可以使用/proc下的文件,获取相应的信息,以便调试。大多数/proc下的文件是只读的,但为了示例的完整性,都提供了写方法。方法一:使用 create_proc_entry 创建 proc 文件(简单,但写操作有缓冲区溢出的危险);方法二:使用 proc_create 和 seq_file 创建 proc 文件(较方法三简洁);方法三:使用 proc_create_data 和 seq_file 创建 proc 文件(较麻烦,但比较完整);转载 2023-08-24 22:07:34 · 1800 阅读 · 0 评论 -
Linux内核中sk_buff结构详解
sk_buff结构体中的都是sk_buff的控制信息,是网络数据包的一些配置,真正储存数据的是sk_buff结构体中几个指针指向的数据区中,线性数据区的大小 = (skb->end - skb->head),对于每个数据包来说这个大小都是固定不变的,在传输过程中skb->end和skb->head所指向的地址都是不变的,这里要注意这个地址不是本机的地址,如果是本机的地址那么数据包传到其他主机上这个地址就是无效的,所以这个地址是这个skb缓冲区的相对地址。: skb中的分片数据(非线性数据)的长度。转载 2023-06-22 21:57:33 · 1662 阅读 · 0 评论