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

《LINUX设备驱动程序》学习札记(二)

总结章节:第三节 字符设备驱动
这一章主要是讲一些字符设备驱动程序的相关知识。在进行字符设备驱动程序学习之前,我们必须得弄明白一个问题:驱动程序时给谁用的。
很多驱动程序的初学者,按照一般编程语言(C,java等等)编写应用程序的经验,函数就是用来调用的。这种调用关系,在应用空间来看,限制不是很明显。很多初学者都会误认为,在驱动程序中写的函数是为了以后应用程序来调用,比如:在驱动中程序中实现了switch()函数的功能,按照应用程序的观念,在应用程序中应该可以调用switch()函数,从而来实现某种功能。这种错误的思维在从用户空间应用程序程序员到驱动程序程序员的转变过程中,经常会遇到这种问题。这其实是对驱动程序的本质属性没有弄透彻。驱动程序,就是内核的一部分,驱动程序的代码是内核代码的一部分。应用程序不能直接利用驱动程序来达到访问硬件的目的,我们应该明白,应用程序是通过访问/dev/下的设备文件,来间接的访问硬件,驱动程序通过系统调用来实现将信息传递给/dev/下的设备文件。无论驱动程序中定义了什么函数,应用空间都不能使用,哪怕是函数形态一样,如果可以访问的话,那就危险了。驱动程序中的函数永远都是提供给系统内核使用的,由系统来自动调用,不需要应用程序干预。
搞清楚上面的问题之后,来看看字符设备驱动的一些重要的概念和数据结构。
1.    设备号
在linux 2.6内核中,用32位的dev_t类型的数据来表示,其中12位用来表示主设备号,其余20位用来表示次设备号。主设备号是用来表示设备所对应的驱动程序的,也就是说,如果设备的主设备号相同,那么这些设备的驱动程序是同一个。次设备号是给内核使用的,用来确定设备文件所指向的设备。尽管主设备号和次设备号的位数都固定了,但是,我们不应做出任何假设,如果我们需要从一个dev_t  dev(以后的使用中,设备号都是指dev_t类型的设备号)中得到主设备号和次设备号,应该使用下面的宏:
                       MAJOR(dev_t dev);
                       MINOR(dev_t dev);
如果我们想用主设备号和此设备号来得到dev_t类型的设备号,应该使
2.    分配设备号


相关文档:

巧用Recent模块加固Linux安全


众所周知,Linux可以通过编写iptables规则对进出Linux主机的数据包进行过滤等操作,在一定程度上可以提升Linux主机的安全 性,在新版本内核中,新增了recent模块,该模块可以根据源地址、目的地址统计最近一段时间内经过本机的数据包的情况,并根据相应的规则作出相应的决 策,详见:http://snowman.net/projects/ipt_rec ......

linux 使用ntp在线时间更新

时间服务器官网:
http://www.pool.ntp.org/zone/cn
ntpdate 命令

用途
使用网络计时协议(NTP)设置日期和时间。此命令仅应用于 AIX 4.2 或后期版本。
语法
ntpdate
[  -b 
] [  -d 
] [ 
-s 
] [  -u 
] [  -a 
Keyid 
] [  -e 
A ......

RedHat Linux下防火墙配置入门必学

【转】 http://opensource.csdn.net/docs/article/11495
RedHat Linux 为增加系统安全性提供了防火墙保护。防火墙存在于你的计算机和网络之间,用来判定网络中的远程用户有权访问你的计算机上的哪些资源。一个正确配置的防火墙可以极大地增加你的系统安全性。
  为你的系统选择恰当的安全级别。
  “高级&rdquo ......

linux网络莫名无法启动问题

下午调试iptables的配置,增加支持vsftp的配置项。
某次重启机器后发现iptables服务无法启动,发现网络服务没有启动成功。
提示pcnet32 device eth0 does not seem to be present 原因不明。
在网上找到这篇文章http://blog.chinaunix.net/u3/102399/showart_2014783.html,解决了
    “
在commu ......

Linux上构筑iPhone OS3.1.2开发环境之解压firmware


Linux上构筑iPhone OS3.1.2开发环境搭建
教程地址:  http://www.yifeiyang.net/iphone-development-introduction-3-linux-development-environment-on-the-build-iphone-os3-1-2/
#第一步没有什么问题
$ ./toolchain.sh headers
#第二步也顺利通过
$ ./toolchain.sh firmware
#第三步也挺顺利
$ ./toolchain ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号