linux 终端设备
一、早期计算机的终端设备
早期计算机通常用电传打印机充当终端设备,终端设备的作用就是接受用户的输入并传递给计算机,接受计算机的反馈返回给用户。如下图所示:
后来电传打印机被键盘和显示器取代,linux为了支持这种外部终端设备的连接,提供了终端设备接口“tty”,下面以海思hi3559开发板为例说明串口终端。
二、串口终端
在调试开发板的时候通常用一根串口线连接电脑来进入开发板的linux,在电脑上可以用串口助手或则sercuCRT来输入命令。这时,电脑的串口助手或者sercuCTR就相当于早期的打印机,提供信息的输入和显示系统反馈的信息。电脑的串口助手或者sercuCTR叫做串口终端,开发板的linux系统上也有一个接口与之相连,这个接口是/dev/ttyS*,海思hi3559开发板连接串口时的终端节点是/dev/ttyS000,如下图所示:
执行echo “abcdef” > /dev/ttyS000,在电脑对应串口中就能收到abcdef。说明往/dev/ttyS000接口写数据,数据就从对应的串口发出去。
对于linux来说,/dev/ttyS000就是串口0的串口终端,它负责连接实际的串口终端设备。它实际上有uart驱动、tty驱动等组成。如下所示:
ttyS000只是提供给用户操作的一个节点,具体驱动都在内核中。uart驱动、行规范、tty驱动、ttys000节点可以认为是linux的串口终端驱动,它负责连接具体的终设备。
输入tty命令可以显示当前的连接的终端,如果连接的是串口显示的是/dev/ttys*,如何连接的是telnet,则显示的是/dev/pts,如下图所示: