【摘要】linux用户态的设备驱动开发:并不是所有的设备驱动程序都要在内核编写,有些情况下,在用户空间编写驱动程序能够更好地解决遇到的问题。本文对用户态驱动优缺点进行分析。1、用户空间驱动程序的优点1、可以和整个C库链接。2、在驱动中可以使用浮点数,在某些特殊的硬件中,可能需要使用浮点数,而linux内核并不提供浮点数的支持。如果能在用户态实现驱动,就可以轻松解决这一问题。
3、驱动问题不会导致整...
分类:
系统相关 时间:
2015-07-17 10:06:11
阅读次数:
904
分析基于内核版本2.6.12.6
在什么情况下,会触发调度?
Linux进程的调度主要分为主动调度和被动调度两大类。
◆主动调度
主动调度就是进程自己缺少相应的所申请的资源,显示调用schedule,让出处理器。
◆被动调度
在整个linux运行过程中,被动调度又可细分为两种:
●用户态抢占调度
●内核态抢占调度
下面就结合内核代码分析上述各种调度时机的详细情况。
...
分类:
其他好文 时间:
2015-07-13 22:32:19
阅读次数:
306
Wake Lock是一种锁的机制, 只要有人拿着这个锁,系统就无法进入休眠,可以被用户态程序和内核获得. 这个锁可以是有超时的或者是没有超时的,超时的锁会在时间过去以后自动解锁. 如果没有锁了或者超时了, 内核就会启动休眠的那套机制来进入休眠.(一).内核维护了:1).两个链表,active_wak...
分类:
移动开发 时间:
2015-07-13 21:57:50
阅读次数:
212
浅析 Linux 系统调用用户态、内核态以及中断
具有高执行级别的程序可以执行特权指令
intel X86 CPU 具有4种级别:0 ~ 3
Linux 只用了0和3(0表示内核态,3表示用户态)
特权级的表示:使用 CS 寄存器的低2位
内核态逻辑地址空间:0xc0000000以上
用户态逻辑地址空间:0x00000000 ~ 0xbfffffff
中断是从用户态到内核态的一种方式,即通过系统调...
分类:
系统相关 时间:
2015-07-12 09:44:35
阅读次数:
148
在linux下,CPU利用率分为 用户态、系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。CPU使用率:CPU的使用情况用户时间(User time)
表示CPU执行用户进程的时间,包括nices时间.通常期望用户空间CPU越高越好系统时间(System time)
表示CPU在内核运行时间,包括IRQ和softirq时间,系统CPU占用率高,表...
分类:
其他好文 时间:
2015-07-12 09:42:27
阅读次数:
121
Linux的防火墙工作在网络层,属于典型的包过滤防火墙。netfilter和iptables都是指linux防火墙的,但是他们的区别在于:1.netfilter指的是linux内核中实现包过滤的结构,称为“内核态”2.iptables指的是管理linux防火墙的命令程序,称为“用户态”iptables采用了表和链的分层结..
分类:
其他好文 时间:
2015-07-10 19:17:58
阅读次数:
178
Linux的网络协议栈非常独立,上下通过两个接口分别和用户态以及设备相连,也可以看作是北向和南向接口...北向通过socket接口,南向通过
qdisc接口(你可以认为是上层的netdev
queue,对于接收接口,NAPI的poll队列则是另一个例子),不管是socket还是qdisc,都是基于队列来管理的..
分类:
系统相关 时间:
2015-07-08 09:41:00
阅读次数:
115
Linux的网络协议栈非常独立,上下通过两个接口分别和用户态以及设备相连,也可以看作是北向和南向接口...北向通过socket接口,南向通过qdisc接口(你可以认为是上层的netdev queue,对于接收接口,NAPI的poll队列则是另一个例子),不管是socket还是qdisc,都是基于队列来管理的,也就是说,三个部分是独立的,socket只能看到读写队列,而看不到协议栈本身,socket...
分类:
系统相关 时间:
2015-07-08 08:16:15
阅读次数:
161
android设备上电,引导程序引导进入boot(通常是uboot),加载initramfs、kernel镜像,启动kernel后,进入用户态程序。第一个用户空间程序是init, PID固定是1.在android系统上,init的代码位于/system/core/init下,基本功能有:
管理设备解析并处理启动脚本init.rc实时维护这个init.rc中的服务
init进程的系统初始化...
分类:
移动开发 时间:
2015-07-07 13:04:45
阅读次数:
238
1、errorLNK2001:unresolvedexternalsymbol@__security_check_cookie@4:在vs解决方案中的配置属性下面的链接器->输入->附加依赖项 添加bufferoverflowK.lib 用户态是bufferoverflowU.lib
分类:
其他好文 时间:
2015-07-04 15:24:19
阅读次数:
123