- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【华清远见10年特献】《Linux设备驱动开发详解》第14章、Linux终端设备驱动
《LINUX 设备驱动开发详解》
作者:华清远见
第14 章 Linux 终端设备驱动
Linux
Linux 3
14.1 14.2 Linux
tty_driver
14.314.5 14.2 Linux /
open()close()tty
Linux tty
14.6 Linux tty 14.7
tty
14.8 14.6 14.7tty S3C2410
UART
专业始于专注 卓识源于远见
终端设备
在Linux 系统中,终端是一种字符型设备,它有多种类型,通常使用tty 来简称各种类型的终端设备。
tty 是Teletype 的缩写,Teletype 是最早出现的一种终端设备,很像电传打字机,是由Teletype 公司生产的。
Linux 系统中包含如下几类终端设备。
1.串行端口终端(/dev/ttySn )
串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口
都看作是一个字符设备。这些串行端口所对应的设备名称是/dev/ttyS0 (或/dev/tts/0 )、/dev/ttyS1 (或/dev/tts/1 )
等,设备号分别是(4 ,0 )、(4 ,1)等。
在命令行上把标准输出重定向到端口对应的设备文件名上就可以通过该端口发送数据,例如,在命
令行提示符下输入“echo test /dev/ttyS1 ”会把单词“test ”发送到连接在ttyS1 端口的设备上。
2.伪终端(/dev/pty/ )
伪终端(Pseudo Terminal )是成对的逻辑终端设备,并存在成对的设备文件,如/dev/ptyp3 和
/dev/ttyp3 ,它们与实际物理设备并不直接相关。如果一个程序把ttyp3 看作是一个串行端口设备,则它对
该端口的读/写操作会反映在该逻辑终端设备对应的ttyp3 上,而ttyp3 则是另一个程序用于读写操作的逻辑
设备。这样,两个程序就可以通过这种逻辑设备进行通信,使用 ttyp3 的程序会认为自己正在与一个串行
端口进行通信。
以telnet 为例,如果某人在使用telnet 程序连接到Linux 系统,则telnet 程序就可能会开始连接到设备
ptyp2 上,而此时一个getty 程序会运行在对应的ttyp2 端口上。当telnet 从远端获取了一个字符时,该字符
就会通过ptyp2 、ttyp2 传递给getty 程序,而getty 程序则会通过ttyp2 、ptyp2 和telnet 程序返回“login: ”字
符串信息。这样,登录程序与telnet 程序就通过伪终端进行通信。通过使用适当的软件,可以把两个或多
个伪终端设备连接到同一个物理串行端口上。
3.控制台终端(/dev/ttyn,/dev/console )
如果当前进程有控制终端(Controlling Terminal ),那么/dev/tty 就是当前进程的控制终端的设备特殊文
件。可以使用命令“ps–ax ”来查看进程与哪个控制终端相连,使用命令“tty ”可以查看它具体对应哪个实
际终端设备。/dev/tty 有些类似于到实际所使用终端设备的一个连接。
在UNIX 系统中,计算机显示器通常被称为控制台终端(Console )。它仿真了类型为
文档评论(0)