zhizhizhiyuan

随笔分类 -  Linux

Linux相关
Linux定时器相关源码分析
摘要:Linux的定时器使用时间轮算法。数据结构不难理解,核心数据结构与散列表及其相似,甚至可以说,就是散列表。事实上,理解其散列表的本质,有助于对相关操作的理解。 数据结构 这里先列出一些宏,稍后解释: 1 #define TVN_BITS (CONFIG_BASE_SMALL ? 4 : 6... 阅读全文

posted @ 2014-04-23 23:18 zhizhizhiyuan 阅读(992) 评论(0) 推荐(0)

Linux驱动之内存映射
摘要:本文参考了http://www.cnblogs.com/geneil/archive/2011/12/08/2281222.html。本文作为学习总结,将主要过程简要描述。 很多驱动实现某些功能都要通过内存映射。 linux下,内存映射通过mmap系统调用实现:void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset); 该系统调用的作用,是将文件描述符fd所对应的文件中的一段内容映射到用户进程的地址空间中。对于设备文件(假设设备名为dev)来讲,该系统调用会调用对应驱动的dev_mmap... 阅读全文

posted @ 2014-04-05 17:16 zhizhizhiyuan 阅读(371) 评论(0) 推荐(0)

Linux驱动之HelloWorld
摘要:最近看android的一些源码,里面有一些功能是用驱动实现的。于是就兴起看了一些驱动相关的东西,准备日后深入。这没有技术含量的水文,仅作为日后的备忘吧。 系统使用的是ubuntu 12.0.04,内核是3.2.0。看很多别人的说法是写驱动之前先要编译内核源码树,但貌似在这个系统上是不要的,直接写C文件和Makefile文件,很快就能测试了。c文件如下: 1 #include 2 #include 3 #include 4 5 MODULE_LICENSE("zhongjinwen BSD/GPL"); 6 static int hello_init(void) 7 { 8 阅读全文

posted @ 2014-04-04 20:44 zhizhizhiyuan 阅读(252) 评论(0) 推荐(0)

导航