Linux 内核编程
文章平均质量分 90
不会游泳的鱼star
目前从事网络安全行业,Linux C/Rust开发
展开
-
kmalloc kzalloc vmalloc malloc 和get_free_page()的区别
一、简述1、 kmalloc申请的是较小的连续的物理内存,虚拟地址上也是连续的。kmalloc和get_free_page最终调用实现是相同的,只不过在调用最终函数时所传的flag不同而已。除非被阻塞否则他执行的速度非常快,而且不对获得空间清零。2、get_free_page()申请的内存是一整页,一页的大小一般是128K。3、kzalloc 先是用 kmalloc() 申请空间 ,原创 2013-12-30 17:28:22 · 5269 阅读 · 0 评论 -
Linux netlink机制介绍
一、简介Netlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE 但又远比它的功能强大,目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多,包括:路由 daemon(NETLINK_ROUTE),1-wire 子系统(NETLINK_W1),用户态 socket 协议(NETLINK_US转载 2013-12-25 16:12:55 · 1790 阅读 · 0 评论 -
alloc_skb申请函数分析
alloc_skb()用于分配缓冲区的函数。由于"数据缓冲区"和"缓冲区的描述结构"(sk_buff结构)是两种不同的实体,这就意味着,在分配一个缓冲区时,需要分配两块内存(一个是缓冲区,一个是缓冲区的描述结构sk_buff)。首先看alloc_skbstatic inline struct sk_buff *alloc_skb(unsigned int size,原创 2013-12-26 18:23:39 · 11657 阅读 · 0 评论 -
Linux协议栈skb操作函数介绍
接字缓冲区函数函数名功能函数形成参数描述skb_queue_empty检查队列是否为空int skb_queue_empty (struct sk_buff_head * list)list为队列头如果队列为空返回真,否则返回假skb_get转载 2013-12-27 10:23:24 · 5927 阅读 · 0 评论