易截截图软件、单文件、免安装、纯绿色、仅160KB

编写嵌入式Linux应用层驱动程序

在研究某一样东西的时候,其实最重要的一点就是了解清楚它的作用,它对自己有没有用,以前刚刚进入大学的时候总是听某某师兄师姐在讲某个课程没啥用,不用认真学,结果自己有时候也把某些人的某些话当真了,再结果我在学习某些课程的时候就没把它当回事,总认为以后没什么用,等到自己大四时才知道那些个所谓的师兄师姐们的脑袋都是被驴给踢过的,当发现最重的东西自己曾经视为无用时,为时晚也…所以在此建议读者以后搞任何东西前都先了解它的用处,对自己有没有用。如果真的是没有用的东西,又何必花费时间在这上面,还不如去当公务员呢。
一.             为什么我们有时会在内核级做driver?有时却在应用层做driver?
让我们一起来看《linux device driver》如何回答我们的。
一个第一次涉及内核问题的 Unix 程序员, 可能会紧张写一个模块. 编写一个用户程序来直接读写设备端口可能容易些.
确实, 有几个论据倾向于用户空间编程, 有时编写一个所谓的用户空间设备驱动对比钻研内核是一个明智的选择. 在本节, 我们讨论几个理由, 为什么你可能在用户空间编写驱动. 本书是关于内核空间驱动的, 但是, 所以我们不超越这个介绍性的讨论.
用户空间驱动的好处在于:
·         完整的 C 库可以连接. 驱动可以进行许多奇怪的任务, 不用依靠外面的程序(实现使用策略的工具程序, 常常随着驱动自身发布).
·         程序员可以在驱动代码上运行常用的调试器, 而不必走调试一个运行中的内核的弯路.
·         如果一个用户空间驱动挂起了, 你可简单地杀掉它. 驱动的问题不可能挂起整个系统, 除非被控制的硬件真的疯掉了.
·         用户内存是可交换的, 不象内核内存. 一个不常使用的却有很大一个驱动的设备不会占据别的程序可以用到的 RAM, 除了在它实际在用时.
·         一个精心设计的驱动程序仍然可以, 如同内核空间驱动, 允许对设备的并行存取.
·         如果你必须编写一个封闭源码的驱动, 用户空间的选项使你容易避免不明朗的许可的情况和改变的内核接口带来的问


相关文档:

Linux 守护进程的编程方法

      Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的。守护进程是生存期长的一种进程,它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事 ......

发布文件到linux的apache服务器

发布文件到linux的apache服务器:
1. 添加映射到httpd文件
(1)打开httpd.conf文件
 vi /etc/httpd/conf/httpd.conf
(2)添加以下内容到httpd.conf文件
Alias /shop/ "/usr/local/tomcat-6.0.16/webapps/ShoppingSearch/images/"
<Directory "/usr/local/tomcat-6.0.16/webapps/ShoppingSea ......

LINUX下如何对一个程序限速

前言:本文环境基于RHEL 5。
 
在有限的带宽条件下,我们自言往往要对占用带宽过大的程度限速,例如,只允许其占用最高1Mbps的带宽,或者使其下载速度不超过200Kbps,等等。因此,我们就需要流量控制(Traffic Control)工具。
我在网上找了一下,了解了几个:trickle,pyshaper,以及LINUX内核自带的tc。
(1)tr ......

几种linux内核文件的区别

vmlinux  编译出来的最原始的内核文件,未压缩。
zImage   是vmlinux经过gzip压缩后的文件。
bzImage bz表示“big zImage”,不是用bzip2压缩的。两者的不同之处在于,zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么采用zImage或bzI ......

linux内核的一些预定义

所有的内核代码,基本都包含了linux\compile.h这个文件,所以它是基础,打算先分析这个文件里的代码看看,有空再分析分析其它的代码。
首先印入眼帘的是对__ASSEMBLY__这个宏的判断,这个变量实际是在编译汇编代码的时候,由编译器使用-D这样的参数加进去 的,AFLAGS这个变量也定义了这个变量,gcc会把这个宏定义为1。用在 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号