Linux内核
红娃子
这个作者很懒,什么都没留下…
展开
-
linux内核链表
一、常用的链表和内核链表的区别1.1 常规链表结构 通常链表数据结构至少应包含两个域:数据域和指针域,数据域用于存储数据,指针域用于建立与下一个节点的联系。按照指针域的组织以及各个节点之间的联系形式,链表又可以分为单链表、双链表、循环链表等多种类型,下面分别给出这几类常见链表类型的示意图:单链表:双链表:1.2 Linux 2原创 2013-06-22 22:59:59 · 1087 阅读 · 0 评论 -
Android电源管理框架
一、wakelock机制Android电源管理使用的wakelock机制:系统中有激活(未释放)的wakelock存在,系统就不能进入休眠状态;如果系统没有激活的wakelcok存在,则系统立即进入到休眠状态。wakelock按加锁的方式有两种:永久锁,这样的锁除非显示的放开,是不会解锁的,所以这种锁的使用是非常小心的;超时锁,这种锁会锁定系统唤醒一段时间,如果这个时间过去了,这个锁会自动原创 2014-11-17 14:03:57 · 2875 阅读 · 0 评论 -
Linux设备模型之device_add
前言linux设备模型是学习linux驱动的很重要的内容。了解这些原创 2014-10-25 23:24:48 · 9838 阅读 · 0 评论 -
Linux内核机制:工作队列
一、应用场景二、常用接口三、应用举例原创 2014-09-26 12:14:14 · 2114 阅读 · 1 评论 -
Linux设备驱动方法之mmap
123原创 2013-12-06 16:26:37 · 1702 阅读 · 0 评论 -
Linux输入子系统(3):evdev.c
evdev.c是input子系统默认的input_handler之一,它能匹配所有的input_dev,并且自动在文件的系统的/dev目录下新建eventxx设备节点。//evdev.c提供了对event事件原始数据的访问#define EVDEV_MINOR_BASE 64//evdev设备的起始次设备#define EVDEV_MINORS 32//input_handler支原创 2013-06-22 23:15:37 · 4604 阅读 · 0 评论 -
Linux输入子系统(2):input.c实现细节
注:内核版本为 kernel-2.6.30.4input_dev input_handler input_handle关系图 一、设备驱动层设备链表建立过程1.获得struct input_dev结构体struct input_dev *input_allocate_device(void)//初始化一个struct input_dev 结构体{原创 2013-06-22 23:13:51 · 2453 阅读 · 0 评论 -
Linux输入子系统(1):总体框架
一、input输入子系统总体框架Linux输入子系统将输入驱动抽象为三层:设备驱动层、核心层、事件处理层。 设备驱动层:将底层的硬件输入事件转化为统一事件形式,向输入核心(Input Core)汇报。核心层:承上启下。为驱动提供设备和驱动注册等操作的函数接口。事件处理层:和用户层交互,提供设备的read和write等函数。二、输入子系统的原创 2013-06-22 23:07:33 · 1904 阅读 · 0 评论 -
linux内存管理浅析
[地址映射](图:左中)linux内核使用页式内存管理,应用程序给出的内存地址是虚拟地址,它需要经过若干级页表一级一级的变换,才变成真正的物理地址。想一下,地址映射还是一件很恐怖的事情。当访问一个由虚拟地址表示的内存空间时,需要先经过若干次的内存访问,得到每一级页表中用于转换的页表项(页表是存放在内存里面的),才能完成映射。也就是说,要实现一次内存访问,实际上内存被访问了N+1次(N=转载 2013-06-09 21:20:39 · 1097 阅读 · 0 评论 -
Linux内核机制之内核通知链
参考文章:http://blog.chinaunix.net/uid-23069658-id-4360706.html一、内核通知链意义通知链的原型就是一个单向链表,内核提供的通知链机制主要用于不同子系统之间通信,基于事件和优先级。考虑这么一种场景:对于网卡驱动子系统来说,经常会发生的情况就是什么?网卡IP地址有变化,网卡状态有变化等等。那么如果有其他子系统,比如路由子系统对网卡IP地址变转载 2014-11-06 18:20:47 · 1296 阅读 · 0 评论