欢迎来到天天文库
浏览记录
ID:50682088
大小:29.00 KB
页数:8页
时间:2020-03-13
《Linux设备驱动程式学习(6)-高级字符驱动程式操作[(3)设备文件的访问.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Linux设备驱动程式学习(6)-高级字符驱动程式操作[(3)设备文件的访问控制Linux设备驱动程式学习(6)-高级字符驱动程式操作[(3)设备文件的访问控制]提供访问控制对于一个设备节点来的可靠性来说有时是至关重要的。这部分的内容只是在open和release方法上做些修改,增加一些检查机制既可。独享设备最生硬的访问控制方式是只允许一个设备一次被一个进程打开(独享),这是个设备驱动最简单的访问控制。实现十分简单,具体的代码看实验源码吧!模块程式链接:scullsingle.tar.gz模块测试程式链接:
2、scullsingle-test.tar.gzARM9实验板的实验现象是:[Tekkaman2440@SBC2440V4]#cd/lib/modules/[Tekkaman2440@SBC2440V4]#insmodscullsingle.ko[Tekkaman2440@SBC2440V4]#cat/proc/devicesCharacterdevices: 1mem 2pty 3ttyp 4/dev/vc/0 4tty 4ttyS 5/dev/tty 5/dev/console 5/de
3、v/ptmx 7vcs10misc13input14sound81video4linux89i2c90mtd116alsa128ptm136pts180usb189usb_device204s3c2410_serial252scullsingle253usb_endpoint254rtcBlockdevices: 1ramdisk256rfd 7loop31mtdblock93nftl96inftl179mmc[Tekkaman2440@SBC2440V4]#mknod-m666scullsingle
4、c2520[Tekkaman2440@SBC2440V4]#cd/tmp/[Tekkaman2440@SBC2440V4]#./scullsingle-test&[Tekkaman2440@SBC2440V4]#openscullsingleisfile=3[Tekkaman2440@SBC2440V4]#echo12345>/dev/scullsingle-sh:cannotcreate/dev/scullsingle:Deviceorresourcebusy[Tekkaman2440@SBC2440V4
5、]#cat/dev/scullsinglecat:can’topen’/dev/scullsingle单用户访问open调用在第一次打开记住了设备拥有者,此用户可多次打开设备,并协调多个进程对设备并发操作。同时,没有其他用户可打开他,避免了外部干扰。这个模块我是利用completion模块改的,这要既能实现功能,也方便测试。模块程式链接:completion-singleUID.tar.gz模块测试程式链接:completion-singleUID-test.tar.gzARM9实验板的实验现象是:[Tek
6、kaman2440@SBC2440V4]#insmod/lib/modules/singleUID.ko[Tekkaman2440@SBC2440V4]#cat/proc/devicesCharacterdevices: 1mem 2pty 3ttyp 4/dev/vc/0 4tty 4ttyS 5/dev/tty 5/dev/console 5/dev/ptmx 7vcs10misc13input14sound81video4linux89i2c90mtd116alsa128ptm13
7、6pts180usb189usb_device204s3c2410_serial252singleUID253usb_endpoint254rtcBlockdevices: 1ramdisk256rfd 7loop31mtdblock93nftl96inftl179mmc[Tekkaman2440@SBC2440V4]#mknod-m666/dev/singleUIDc2520[Tekkaman2440@SBC2440V4]#/tmp/singleUID_testr&[Tekkaman2440@SBC2
8、440V4]#logintekkamanPassword:Setsearchlibrarypathint/etc/profileSetuserpathin/etc/profileruning/etc/profileok[Tekkaman2440@SBC2440V4]#/tmp/singleUID_testwopensingleUIDcode=-1[Tekkaman2440@SBC2440V4]#/tmp/sing
此文档下载收益归作者所有