基本概念:

1. tty(终端设备的统称):

tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。

终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。

2. pty(虚拟终端):

但是如果我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty)

3. pts/ptmx(pts/ptmx结合使用,进而实现pty):

pts(pseudo-terminal slave)是pty的实现方法,与ptmx(pseudo-terminal

master)配合使用实现pty。

Linux终端:

在Linux系统的设备特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:

1、串行端口终端(/dev/ttySn)

串行端口终端(Serial Port

Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。有段时间这些串行端口设备通常被称为终端设备,因为那时它的最大用途就是用来连接终端。这些串行端口所对应的设备名称是/dev/tts/0(或/dev/ttyS0),

/dev/tts/1(或/dev/ttyS1)等,设备号分别是(4,0),

(4,1)等,分别对应于DOS系统下的COM1、COM2等。若要向一个端口发送数据,可以在命令行上把标准输出重定向到这些特殊文件名上即可。例如,在命令行提示符下键入:echo

test >

/dev/ttyS1会把单词”test”发送到连接在ttyS1(COM2)端口的设备上。可接串口来实验。

2、伪终端(/dev/pty/)

伪终端(Pseudo Terminal)是成对的逻辑终端设备(即master和slave设备,

对master的操作会反映到slave上)。

例如/dev/ptyp3和/dev/ttyp3(或者在设备文件系统中分别是/dev/pty/m3和

/dev/pty/s3)。它们与实际物理设备并不直接相关。如果一个程序把ptyp3(master设备)看作是一个串行端口设备,则它对该端口的读/

写操作会反映在该逻辑终端设备对应的另一个ttyp3(slave设备)上面。而ttyp3则是另一个程序用于读写操作的逻辑设备。

这样,两个程序就可以通过这种逻辑设备进行互相交流,而其中一个使用ttyp3的程序则认为自己正在与一个串行端口进行通信。这很象是逻辑设备对之间的管道操作。对于ttyp3(s3),任何设计成使用一个串行端口设备的程序都可以使用该逻辑设备。但对于使用ptyp3的程序,则需要专门设计来使用

ptyp3(m3)逻辑设备。

例如,如果某人在网上使用telnet程序连接到你的计算机上,则telnet程序就可能会开始连接到设备

ptyp2(m2)上(一个伪终端端口上)。此时一个getty程序就应该运行在对应的ttyp2(s2)端口上。当telnet从远端获取了一个字符时,该字符就会通过m2、s2传递给

getty程序,而getty程序就会通过s2、m2和telnet程序往网络上返回”login:”字符串信息。这样,登录程序与telnet程序就通过“伪终端”进行通信。通过使用适当的软件,就可以把两个甚至多个伪终端设备连接到同一个物理串行端口上。

在使用设备文件系统 (device

filesystem)之前,为了得到大量的伪终端设备特殊文件,使用了比较复杂的文件名命名方式。因为只存在16个ttyp(ttyp0—ttypf)

的设备文件,为了得到更多的逻辑设备对,就使用了象q、r、s等字符来代替p。例如,ttys8和ptys8就是一个伪终端设备对。不过这种命名方式目前仍然在RedHat等Linux系统中使用着。

但Linux系统上的Unix98并不使用上述方法,而使用了”pty

master”方式,例如/dev/ptm3。它的对应端则会被自动地创建成/dev/pts/3。这样就可以在需要时提供一个pty伪终端。目录

/dev/pts是一个类型为devpts的文件系统,并且可以在被加载文件系统列表中看到。虽然“文件”/dev/pts/3看上去是设备文件系统中的一项,但其实它完全是一种不同的文件系统。

即: TELNET ---> TTYP3(S3: slave) ---> PTYP3(M3: master)

---> GETTY

=========================================================================

实验:

1、在X下打开一个或N个终端窗口

2、#ls /dev/pt*

3、关闭这个X下的终端窗口,再次运行;比较两次输出信息就明白了。

在RHEL4环境下: 输出为/dev/ptmx

/dev/pts/1存在一(master)对多(slave)的情况

=========================================================================

3、控制终端(/dev/tty)如果当前进程有控制终端(Controlling

Terminal)的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令”ps

–ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接。

linux蓝牙储备,储备 linux tty pty 虚拟终端相关推荐

  1. Linux蓝牙系统(3) Linux 命令

    Linux蓝牙系统(3) Linux 命令 2010-09-27 10:45:44 分类: LINUX Andrew Haung bluedrum@163.com 一.Linux对于蓝牙的支持 --- ...

  2. linux 蓝牙脚本,arm linux串口蓝牙工具移植及使用(示例代码)

    ap6212中串口蓝牙在linux下的使用记录 一.linux蓝牙工具移植 主要使用到的工具及相关库如下: bluez-libs-3.36 libxml2-2.7.4 dbus-1.0.2 glib- ...

  3. 手机和Linux蓝牙通信,Debian Linux下使用蓝牙与手机通信

    Debian Linux下使用蓝牙与手机通信 发布时间:2007-10-23 11:53:47来源:红联作者:Codefnas 使用 爱立信T68i.索爱T628 与 Billionton USB B ...

  4. linux 蓝牙编程,实战Linux Bluetooth编程(三) HCI层编程

    1. HCI层协议概述: HCI提供一套统一的方法来访问Bluetooth底层.如图所示: 从图上可以看出,Host Controller Interface(HCI)  就是用来沟通Host和Mod ...

  5. Linux 蓝牙读写,实战Linux Bluetooth编程(三) HCI层编程

    作者:Sam (甄峰) (HCI协议简介,HCI 在BlueZ中的实现以及HCI编程接口) 1. HCI层协议概述: HCI提供一套统一的方法来访问Bluetooth底层.如图所示: 从图上可以看出, ...

  6. linux蓝牙语音遥控器,Linux系统下遥控器的配置与使用方法

    你有没有想象过能够坐在沙发上,或者躺在床上,拿着遥控器像操作电视一样来操作电脑?可能你已经见到过市场上出现的那种电脑遥控器,不过它们都是基于windows下的.其实,通过一定的配置,在linux平台上 ...

  7. linux蓝牙声卡驱动,Linux下安装声卡驱动总结

    Linux下安装声卡驱动总结 发布时间:2008-03-27 01:18:34来源:红联作者:verytow 装了几次Linux OS,当然也装了几次声卡驱动,一般来说都是安装ALSA(Adcance ...

  8. 手机和Linux蓝牙通信,[原创]linux下手机与蓝牙的连接配置

    代码: 全选# # HCI daemon configuration file. # # HCId options options { # Automatically initialize new d ...

  9. linux下echo /dev/ttys* 到字符设备文件,linux之tty pty pts

    一.基本概念: 1> tty(终端设备的统称): tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后 ...

最新文章

  1. C#中Path类的常用方法
  2. 前端学习(2260)高校案例
  3. linux环境部署python3+django
  4. 计算机一级考试题组成,计算机一级考试试题汇总
  5. Shell编程之多命令顺序执行和管道符
  6. 学习笔记:MySQL字符串类型
  7. 互联网日报 | 6月16日 星期三 | 滴滴试点早高峰拼成0佣金计划;小米“急”招自动驾驶相关人才;苹果正式推出播客订阅服务...
  8. 面试官:Redis 主从复制时网络开小差了怎么整?
  9. 我的开发笔记spring等常见问题
  10. 天云服务器做系统,自己做云服务器系统
  11. linux进入vi永久显示行数,mac/linux中vim永久显示行号、开启语法高亮
  12. springboot 注册服务注册中心(zk)的两种方式
  13. 规范名称:汽车转向设计规范(齿轮齿条)
  14. 《道德经》——《老子道德经》
  15. 【Paper】2013_Attitude and Altitude Controller Design for Quad-Rotor Type MAVs
  16. My SQL 安装配置
  17. 【摘抄】领导力21法则-约翰·C·马克斯韦尔
  18. Mac安装Node-sass报错 warning: loop variable ‘numerator‘ creates a copy from type ‘const std::string
  19. 如何利用Parsec+Zerotier+moon实现云电脑云游戏
  20. 【ML】Naive Bayes

热门文章

  1. 大学不会教,但是程序员第一天工作需要知道的事儿...
  2. matlab模拟出现较大误差是什么原因,【求助】matlab 对复杂计算会出现较大误差吗?...
  3. 为什么传统的婚姻和家庭会消解?
  4. The Romantic 老炮儿
  5. CS5265方案应用|TYPEC投屏方案| Type-C转HDMI4K60HZ转换方案
  6. C3P0 连接问题 An attempt by a client to checkout a Connection has timed out.
  7. Cocos2d-x面试题看一下
  8. 神经网络——机器学习基础
  9. kubernetes系列之五:IPVS概览
  10. Java实现发送邮件(定时自动发送邮件)