linux
文章平均质量分 75
DaisyChioa
这个作者很懒,什么都没留下…
展开
-
netlink内核与用户空间双向通信
一开始学习netlink时找了一些附有完整代码的例子,但是在自己的机器上跑不起来。由于不擅长看内核源码,只好在各个论坛上找教程帖子对比着看,后来终于发现问题,从2.6.24开始,linux内部对netlink的实现机制和调用接口进行了很大的调整,特别是函数 netlink_kernel_create(),最新的参数有6个之多。而网上大多数的教程和例子程序都是针对2.6.12以前版本的内核,甚至2.原创 2012-11-18 17:08:41 · 937 阅读 · 0 评论 -
运行不息的内核线程kthread
要创建一个内核线程有许多种方法,我们这里要学的是最简单的一种。打开include/linux/kthread.h,你就看到了它全部的API,一共三个函数。 struct task_struct kthread_run(int (*threadfn)(void *data), void *data, const char namefmt[],...)转载 2012-11-18 15:40:22 · 440 阅读 · 0 评论 -
IP地址hash-移位异或Hash函数和素数乘法Hash函数
在系统实现中,我们多处用到Hash表,如连接的查找和虚拟服务的查找。选择Hash表优先Tree等复杂数据结构的原因是Hash表的插入和删除的复杂度为O(1),而Tree的复杂度为O(log(n))。Hash表的查找复杂度为O(n/m),其中n为Hash表中对象的个数,m为Hash表的桶个数。当对象在Hash表中均匀分布和Hash表的桶个数与对象个数一样多时,Hash表的查找复杂度可以接近O(1)。转载 2012-11-20 09:58:52 · 4990 阅读 · 0 评论