⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linux设备驱动程序学习(6)-高级字符驱动程序操作[(3)设备文件的访问控制] - linux设备驱动程序 - tekkaman ninja.htm

📁 Linux设备驱动程序学习(5)-高级字符驱动程序操作[(2)阻塞型I-O和休眠] - Linux设备驱动程序.rar
💻 HTM
📖 第 1 页 / 共 5 页
字号:
                              <STRONG><FONT color=#0000ff 
                              size=4>独享设备</FONT></STRONG></DIV>
                              <P>最生硬的访问控制方式是只允许一个设备一次被一个进程打开(独享),这是一个设备驱动最简单的访问控制。实现十分简单,具体的代码看实验源码吧!</P>
                              <P><FONT face=新宋体>模块程序链接:<A 
                              href="http://blogimg.chinaunix.net/blog/upfile2/071107144934.gz" 
                              target=_blank><STRONG><FONT 
                              face="Courier New">scullsingle.tar.gz</FONT></STRONG></A></FONT></P>
                              <P><FONT size=3>模块测试程序<FONT color=#ff0000><FONT 
                              face=新宋体><FONT 
                              color=#000000>链接</FONT></FONT></FONT>:<A 
                              href="http://blogimg.chinaunix.net/blog/upfile2/071109103414.gz" 
                              target=_blank><STRONG><FONT 
                              size=2>scullsingle-test.tar.gz</FONT></STRONG></A></FONT></P>
                              <P><FONT size=4><SPAN 
                              style="COLOR: rgb(0,1,255)">ARM9实验板的实验现象是:</SPAN></FONT></P>
                              <TABLE style="BORDER-COLLAPSE: collapse" 
                              borderColor=#999999 cellSpacing=0 cellPadding=0 
                              width="95%" bgColor=#f1f1f1 border=1>
                                <TBODY>
                                <TR>
                                <TD>
                                <P 
                                style="MARGIN: 5px; LINE-HEIGHT: 150%"><CODE><SPAN 
                                style="COLOR: #000000"><SPAN 
                                style="COLOR: #0000cc">[</SPAN>Tekkaman2440@SBC2440V4<SPAN 
                                style="COLOR: #0000cc">]</SPAN><SPAN 
                                style="COLOR: #0000cc">#</SPAN>cd <SPAN 
                                style="COLOR: #0000cc">/</SPAN>lib<SPAN 
                                style="COLOR: #0000cc">/</SPAN>modules<SPAN 
                                style="COLOR: #0000cc">/</SPAN><BR><SPAN 
                                style="COLOR: #0000cc">[</SPAN>Tekkaman2440@SBC2440V4<SPAN 
                                style="COLOR: #0000cc">]</SPAN><SPAN 
                                style="COLOR: #0000cc">#</SPAN>insmod 
                                scullsingle<SPAN 
                                style="COLOR: #0000cc">.</SPAN>ko<BR><SPAN 
                                style="COLOR: #0000cc">[</SPAN>Tekkaman2440@SBC2440V4<SPAN 
                                style="COLOR: #0000cc">]</SPAN><SPAN 
                                style="COLOR: #0000cc">#</SPAN>cat <SPAN 
                                style="COLOR: #0000cc">/</SPAN>proc<SPAN 
                                style="COLOR: #0000cc">/</SPAN>devices<BR>Character 
                                devices<SPAN 
                                style="COLOR: #0000cc">:</SPAN><BR>&nbsp;&nbsp;1 
                                mem<BR>&nbsp;&nbsp;2 pty<BR>&nbsp;&nbsp;3 
                                ttyp<BR>&nbsp;&nbsp;4 <SPAN 
                                style="COLOR: #0000cc">/</SPAN>dev<SPAN 
                                style="COLOR: #0000cc">/</SPAN>vc<SPAN 
                                style="COLOR: #0000cc">/</SPAN>0<BR>&nbsp;&nbsp;4 
                                tty<BR>&nbsp;&nbsp;4 ttyS<BR>&nbsp;&nbsp;5 <SPAN 
                                style="COLOR: #0000cc">/</SPAN>dev<SPAN 
                                style="COLOR: #0000cc">/</SPAN>tty<BR>&nbsp;&nbsp;5 
                                <SPAN style="COLOR: #0000cc">/</SPAN>dev<SPAN 
                                style="COLOR: #0000cc">/</SPAN>console<BR>&nbsp;&nbsp;5 
                                <SPAN style="COLOR: #0000cc">/</SPAN>dev<SPAN 
                                style="COLOR: #0000cc">/</SPAN>ptmx<BR>&nbsp;&nbsp;7 
                                vcs<BR>&nbsp;10 misc<BR>&nbsp;13 
                                input<BR>&nbsp;14 sound<BR>&nbsp;81 
                                video4linux<BR>&nbsp;89 i2c<BR>&nbsp;90 
                                mtd<BR>116 alsa<BR>128 ptm<BR>136 pts<BR>180 
                                usb<BR>189 usb_device<BR>204 
                                s3c2410_serial<BR><FONT color=#ff0000>252 
                                scullsingle</FONT><BR>253 usb_endpoint<BR>254 
                                rtc<BR><BR>Block devices<SPAN 
                                style="COLOR: #0000cc">:</SPAN><BR>&nbsp;&nbsp;1 
                                ramdisk<BR>256 rfd<BR>&nbsp;&nbsp;7 
                                loop<BR>&nbsp;31 mtdblock<BR>&nbsp;93 
                                nftl<BR>&nbsp;96 inftl<BR>179 mmc<BR><SPAN 
                                style="COLOR: #0000cc">[</SPAN>Tekkaman2440@SBC2440V4<SPAN 
                                style="COLOR: #0000cc">]</SPAN><SPAN 
                                style="COLOR: #0000cc">#</SPAN>mknod <SPAN 
                                style="COLOR: #0000cc">-</SPAN>m 666 scullsingle 
                                c 252 0<BR><SPAN 
                                style="COLOR: #0000cc">[</SPAN>Tekkaman2440@SBC2440V4<SPAN 
                                style="COLOR: #0000cc">]</SPAN><SPAN 
                                style="COLOR: #0000cc">#</SPAN>cd <SPAN 
                                style="COLOR: #0000cc">/</SPAN>tmp<SPAN 
                                style="COLOR: #0000cc">/</SPAN><BR><SPAN 
                                style="COLOR: #0000cc">[</SPAN>Tekkaman2440@SBC2440V4<SPAN 
                                style="COLOR: #0000cc">]</SPAN><SPAN 
                                style="COLOR: #0000cc">#</SPAN><SPAN 
                                style="COLOR: #0000cc">.</SPAN><SPAN 
                                style="COLOR: #0000cc">/</SPAN>scullsingle<SPAN 
                                style="COLOR: #0000cc">-</SPAN><SPAN 
                                style="COLOR: #ff0000">test</SPAN> <SPAN 
                                style="COLOR: #0000cc">&amp;</SPAN><BR><SPAN 
                                style="COLOR: #0000cc">[</SPAN>Tekkaman2440@SBC2440V4<SPAN 
                                style="COLOR: #0000cc">]</SPAN><SPAN 
                                style="COLOR: #0000cc">#</SPAN><SPAN 
                                style="COLOR: #ff0000">open</SPAN> scullsingle 
                                is <SPAN style="COLOR: #ff0000">file</SPAN><SPAN 
                                style="COLOR: #0000cc">=</SPAN>3<BR><SPAN 
                                style="COLOR: #0000cc">[</SPAN>Tekkaman2440@SBC2440V4<SPAN 
                                style="COLOR: #0000cc">]</SPAN><SPAN 
                                style="COLOR: #0000cc">#</SPAN>echo 12345 <SPAN 
                                style="COLOR: #0000cc">&gt;</SPAN> <SPAN 
                                style="COLOR: #0000cc">/</SPAN>dev<SPAN 
                                style="COLOR: #0000cc">/</SPAN>scullsingle<BR><SPAN 
                                style="COLOR: #0000cc">-</SPAN>sh<SPAN 
                                style="COLOR: #0000cc">:</SPAN> cannot create 
                                <SPAN style="COLOR: #0000cc">/</SPAN>dev<SPAN 
                                style="COLOR: #0000cc">/</SPAN>scullsingle<SPAN 
                                style="COLOR: #0000cc">:</SPAN> Device <SPAN 
                                style="COLOR: #0000ff">or</SPAN> resource 
                                busy<BR><SPAN 
                                style="COLOR: #0000cc">[</SPAN>Tekkaman2440@SBC2440V4<SPAN 
                                style="COLOR: #0000cc">]</SPAN><SPAN 
                                style="COLOR: #0000cc">#</SPAN>cat <SPAN 
                                style="COLOR: #0000cc">/</SPAN>dev<SPAN 
                                style="COLOR: #0000cc">/</SPAN>scullsingle<BR>cat<SPAN 
                                style="COLOR: #0000cc">:</SPAN> can<SPAN 
                                style="COLOR: #ff00ff">'t open '</SPAN><SPAN 
                                style="COLOR: #0000cc">/</SPAN>dev<SPAN 
                                style="COLOR: #0000cc">/</SPAN>scullsingle</SPAN></CODE></P></TD></TR></TBODY></TABLE>
                              <P>
                              <HR id=null>
                              <FONT color=#0000ff 
                              size=4><STRONG>单用户访问</STRONG></FONT> 
                              <P></P>
                              <P><FONT size=4><FONT size=3>open 
                              调用在第一次打开记住了设备拥有者,此用户可多次打开设备,并协调多个进程对设备并发操作。同时,没有其他用户可打开它,避免了外部干扰。这个模块我是利用</FONT></FONT><FONT 
                              size=3>completion模块改的,这要既可以实现功能,也方便测试。</FONT></P>
                              <P><FONT size=4><FONT face=新宋体 size=3>模块程序链接:<A 
                              href="http://blogimg.chinaunix.net/blog/upfile2/071107144823.gz" 
                              target=_blank><STRONG><FONT face="Courier New" 
                              size=2>completion-singleUID.tar.gz</FONT></STRONG></A></FONT></P>
                              <P><FONT size=3>模块测试程序<FONT color=#ff0000><FONT 
                              face=新宋体><FONT 
                              color=#000000>链接</FONT></FONT></FONT>:<A 
                              href="http://blogimg.chinaunix.net/blog/upfile2/071109103256.gz" 
                              target=_blank><STRONG><FONT 
                              size=2>completion-singleUID-test.tar.gz</FONT></STRONG></A></FONT></P>
                              <P><FONT size=4><SPAN 
                              style="COLOR: rgb(0,1,255)">ARM9实验板的实验现象是:</SPAN></FONT></P></FONT>
                              <TABLE style="BORDER-COLLAPSE: collapse" 
                              borderColor=#999999 cellSpacing=0 cellPadding=0 
                              width="95%" bgColor=#f1f1f1 border=1>
                                <TBODY>
                                <TR>
                                <TD>
                                <P 
                                style="MARGIN: 5px; LINE-HEIGHT: 150%"><CODE><SPAN 
                                style="COLOR: #000000"><SPAN 
                                style="COLOR: #0000cc">[</SPAN>Tekkaman2440@SBC2440V4<SPAN 
                                style="COLOR: #0000cc">]</SPAN><SPAN 
                                style="COLOR: #0000cc">#</SPAN>insmod <SPAN 
                                style="COLOR: #0000cc">/</SPAN>lib<SPAN 
                                style="COLOR: #0000cc">/</SPAN>modules<SPAN 
                                style="COLOR: #0000cc">/</SPAN>singleUID<SPAN 
                                style="COLOR: #0000cc">.</SPAN>ko</SPAN></CODE><CODE><SPAN 
                                style="COLOR: #000000"><FONT face=新宋体><SPAN 
                                style="COLOR: #0000cc">[</SPAN>Tekkaman2440@SBC2440V4<SPAN 
                                style="COLOR: #0000cc">]</SPAN><SPAN 
                                style="COLOR: #0000cc">#</SPAN>cat <SPAN 
                                style="COLOR: #0000cc">/</SPAN>proc<SPAN 
                                style="COLOR: #0000cc">/</SPAN>devices<BR>Character 
                                devices<SPAN 
                                style="COLOR: #0000cc">:</SPAN><BR>&nbsp;&nbsp;1 
                                mem<BR>&nbsp;&nbsp;2 pty<BR>&nbsp;&nbsp;3 
                                ttyp<BR>&nbsp;&nbsp;4 <SPAN 
                                style="COLOR: #0000cc">/</SPAN>dev<SPAN 
                                style="COLOR: #0000cc">/</SPAN>vc<SPAN 
                                style="COLOR: #0000cc">/</SPAN>0<BR>&nbsp;&nbsp;4 
                                tty<BR>&nbsp;&nbsp;4 ttyS<BR>&nbsp;&nbsp;5 <SPAN 
                                style="COLOR: #0000cc">/</SPAN>dev<SPAN 
                                style="COLOR: #0000cc">/</SPAN>tty<BR>&nbsp;&nbsp;5 
                                <SPAN style="COLOR: #0000cc">/</SPAN>dev<SPAN 
                                style="COLOR: #0000cc">/</SPAN>console<BR>&nbsp;&nbsp;5 
                                <SPAN style="COLOR: #0000cc">/</SPAN>dev<SPAN 
                                style="COLOR: #0000cc">/</SPAN>ptmx<BR>&nbsp;&nbsp;7 
                                vcs<BR>&nbsp;10 misc<BR>&nbsp;13 
                                input<BR>&nbsp;14 sound<BR>&nbsp;81 
                                video4linux<BR>&nbsp;89 i2c<BR>&nbsp;90 
                                mtd<BR>116 alsa<BR>128 ptm<BR>136 pts<BR>180 
                                usb<BR>189 usb_device<BR>204 
                                s3c2410_serial<BR><FONT color=#ff0000>252 
                                singleUID</FONT><BR>253 usb_endpoint<BR>254 
                                rtc<BR><BR>Block devices<SPAN 
                                style="COLOR: #0000cc">:</SPAN><BR>&nbsp;&nbsp;1 
                                ramdisk<BR>256 rfd<BR>&nbsp;&nbsp;7 
                                loop<BR>&nbsp;31 mtdblock<BR>&nbsp;93 
                                nftl<BR>&nbsp;96 inftl<BR>179 mmc<BR><SPAN 
                                style="COLOR: #0000cc">[</SPAN>Tekkaman2440@SBC2440V4<SPAN 
                                style="COLOR: #0000cc">]</SPAN><SPAN 
                                style="COLOR: #0000cc">#</SPAN>mknod <SPAN 
                                style="COLOR: #0000cc">-</SPAN>m 666 <SPAN 
                                style="COLOR: #0000cc">/</SPAN>dev<SPAN 
                                style="COLOR: #0000cc">/</SPAN>singleUID c 252 
                                0</FONT><BR><SPAN 
                                style="COLOR: #0000cc">[</SPAN>Tekkaman2440@SBC2440V4<SPAN 
                                style="COLOR: #0000cc">]</SPAN><SPAN 
                                style="COLOR: #0000cc">#</SPAN><SPAN 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -