tty |
teletypewriter (电传打字机) |
终端设备(Terminal) |
pty |
pseudo tty |
伪终端 |
pts |
pseudo-terminal slave |
|
ptmx |
pseudo-terminal master multiplexer |
tty ==> 泛指所有终端(Terminal)
它是 Teletype(或者TeletypeWriter)的缩写,中文翻译:电传打字机。
电传打字机通常由键盘、收发报器和印字机构等组成。电传打印机是一个比较早出现的产品,为在传真机普遍使用以前的通信设备,其原理采用有点近似电报。它可安装在办公室内,因而毋须到电报局去发电传。
终端,一种电子的或机电的硬件设备,用来向大型主机输入数据并显示来自主机的数据。
为了充分使用计算机提供的计算资源,早期很多计算机会连接若干终端控制台,这些终端从硬件上构造很简单,不执行计算的任务,只简单的把用户的输入发送到主计算机去处理,然后再把计算结果返回给用户。
前面的电传打字机就是最早的计算机的终端。后被显示器和键盘所取代。它们通过串口(通常是RS232)和主机相连。分哑终端(dumb terminal)和智能终端(start terminal)。或者叫瘦客户端(thin client)和胖客户端(fat client)。
进入PC时代,显示器不再包含字符生成的硬件,所有的视频信号都是由位于PC内的显卡生成的。这时的显示器不再是终端了,当PC链接大型主机时,可以来模拟终端(比如通过telnet)
虚拟控制台(VC),或者称为虚拟终端(virtual terminal)。它是计算机用户界面键盘和显示的概念上的组合(is a conceptual combination of the keyboard and display for a computer user interface. )?
它是类unix系统的一个特性。比如在Linux下,通过
Ctrl+Alt+F1~6
可以在六个虚拟控制台之间进行切换。
随着X视窗系统的广泛使用,虚拟控制台的使用需求也越来越少,控制台程序可以在终端模拟器(terminal emulator)中运行
这些被称为伪终端(Pseudo Terminal)
伪终端是是一个伪设备对。有两种命名风格
BSD PTYs |
slave |
/dev/tty[p-za-e][o-9a-f] |
master |
/dev/pty[p-za-e][0-9a-f] |
|
Unix98 PTYs |
slave |
/dev/pts/N |
master |
/dev/ptmx |
在linux下,通过Ctrl+Alt+F1~6切换到虚拟控制台,运行tty和stty可以看到
debao@ubuntu:~$ tty /dev/tty1 debao@ubuntu:~$ stty speed 38400 baud; line = 0; -brkint ixoff -imaxbel -iexten
系统启动时,选择单用户模式
debao@ubuntu:~$ tty /dev/console
这个东西好复杂啊
普通串口 |
/dev/ttyS[0~191] |
Serial Mux Device |
/dev/ttyB[0~] |
Chase Serial Card(OBSOLETE) |
/dev/ttyH[0~] |
Cyclades Serial Card |
/dev/ttyC[0~31] |
Digiboadr Serial Card |
/dev/ttyD[0~] |
Stallion Serial Card |
/dev/ttyE[0~63,64~127,...] |
Specialix Serial Card |
/dev/ttyX[0~] |
isdn4linux virtual modem |
/dev/ttyI[0~63] |
Comtrol Rocketport serial card |
/dev/ttyR[0~] |
SDL RISCom serial card |
/dev/ttyL[0~] |
Hayes ESP serial card |
/dev/ttyP[0~] |
Computone IntelliPort II serial card |
/dev/ttyF[0~63,64~127,...] |
Specialix IO8+ serial card |
/dev/ttyW[0~7,8~15,...] |
PAM Software's multimodem boards |
/dev/ttyM[0~] |
Comtrol VS-1000 serial controller |
/dev/ttyV[0~] |
ISI serial card |
/dev/ttyM[0~] |
Technology Concepts serial card |
/dev/ttyT[0~] |
Specialix RIO serial card |
/dev/ttySR[0~255] |
Chase Research AT/PCI-Fast serial card |
/dev/ttyCH[0~15,16~31,..] |
ACM USB modems |
/dev/ttyACM[0~] |
Moxa Intellio serial card |
/dev/ttyMX[0~127] |
SmartIO serial card |
/dev/ttySI[0~] |
USB serial converters |
/dev/ttyUSB[0~] |
Low-density serial ports |
/dev/ttyLU[0~3] |
/dev/ttyFB0 |
|
/dev/ttySA[0~2] |
|
/dev/ttySC[0~3] |
|
/dev/ttyFW[0~3] |
|
/dev/ttyAM[0~15] |
|
/dev/ttyDB[0~7] |
|
... |
|
User space serial ports |
/dev/ttyU[0~] |
Bluetooth RFCOMM TTY devices |
/dev/rfcomm[0~] |
A2232 serial card |
/dev/ttyY[0~] |
Equinox SST multi-port serial boards |
/dev/ttyEQ[0~127,...] |
在窗口系统中打开Terminal,运行tty和stty
debao@ubuntu:~/qt-labs/qt5$ cd debao@ubuntu:~$ tty /dev/pts/6 debao@ubuntu:~$ stty speed 38400 baud; line = 0; -brkint ixoff -imaxbel iutf8
那么Linux的 /dev 目录下的东西,哪些和终端有关系呢?(所有均是字符设备)
每一个设备会有主、次设备号,主设备号相同的代表同类设备(即:使用同一个驱动程序)
主设备号 |
次设备号 |
||
2(伪终端 master) |
0 |
/dev/ptyp0 |
老式的BSD风格 |
... |
... |
||
255 |
/dev/ptyef |
||
3(伪终端 slave) |
0 |
/dev/ttyp0 |
|
... |
... |
||
255 |
/dev/ttyef |
||
4 (TTY设备) |
0 |
/dev/tty0 |
当前虚拟控制台 |
1 |
/dev/tty1 |
各个虚拟控制台 |
|
... |
... |
||
63 |
/dev/tty63 |
||
64 |
/dev/ttyS1 |
串口(S代表Serial Port),注意大写 |
|
... |
... |
||
255 |
/dev/ttyS191 |
||
5 (其他TTY设备) |
0 |
/dev/tty |
当前TTY设备 |
1 |
/dev/console |
系统控制台 |
|
2 |
/dev/ptmx |
所有伪终端 PTY master 复用 |
|
3 |
/dev/ttyprintk |
? |
|
64 |
/dev/cua0 |
对应ttyS0~191的callout设备 |
|
... |
... |
||
255 |
/dev/cua191 |
||
7(虚拟控制台捕捉设备) |
0 |
/dev/vcs |
当前虚拟控制台(VC)的文本内容 |
1 |
/dev/vcs1 |
各个虚拟控制台的文本内容 |
|
... |
... |
||
6 |
/dev/vcs6 |
||
128 |
/dev/vcsa |
当前虚拟控制台的文本/属性 |
|
129 |
/dev/vcsa1 |
各个虚拟控制台的文本/属性 |
|
... |
... |
||
134 |
/dev/vcsa6 |
||
128-135 |
Pty Master(不应该存在,使用 /dev/ptmx)? |
||
136-143 |
0 |
/dev/pts/0 |
Pty Slave |
1 |
/dev/pts/1 |
||
... |
... |
http://en.wikipedia.org/wiki/Pseudo_terminal
http://en.wikipedia.org/wiki/Computer_terminal
http://en.wikipedia.org/wiki/Virtual_console_%28computer_user-interface%29
http://lamp.linux.gov.cn/Linux/device_files.html