一:
1 tty概念:
在Linux系统中,终端是一种字符型设备,它包括多种类型,通常使用tty来简称各种类型的终端设备
2 tty分类:在Linux系统中,tty终端设备分为以下三种:
2.1 串口终端(/dev/ttyS*)
2.2 虚拟终端(/dev/tty*)
2.3 控制台终端(/dev/console)
3 tty终端设备概念:
3.1 串口终端(/dev/ttyS*) :
串口终端是使用计算机串口连接的终端设备。Linux把每个串行端口都看作是一个
字符设备。这些串行端口所对应的设备名称是 /dev/ttySAC0;/dev/ttySAC1…
3.2 虚拟终端(/dev/tty*) :
当用户登录时,使用的是虚拟终端。使用Ctcl+Alt+[F1—F6]组合键时,我们就可以
切换到tty1、tty2、tty3等上面去。tty1–tty6等称为虚拟终端,而tty0则是当前
所使用虚拟终端的一个别名.
3.3 控制台终端(/dev/console) :
在Linux系统中,计算机的输出设备通常被称为控制台终端(Console),这里特指
printk信息输出到的设备。/dev /console是一个虚拟的设备,它需要映射到真
正的tty上,比如通过内核启动参数” console=ttySAC0”就把console映射到了
串口0
二:tty架构:Linux系统的tty子系统由如下三部分组成:
1 tty核心 :是tty设备的抽象(tty_driver是uart_driver的抽象),对上层用户提供统一的接口
2 tty线路规程 : 是对上层和底层之间数据传输的协议转换,不同类型的终端设备数据转换协议不同
3 tty设备驱动 : 面相底层硬件的 设备驱动
三:tty核心结构体分层
用户空间 : /dev/ttyXXX : file_operation tty_fops{}
tty核心层 : tty_driver : tty_operation uart_fops{}
线程规划 : tty_struct : tty_ldisc_ops tty_ldisc_N_TTY{} 线程规划
tty设备层 : uart_driver : uart_ops{}
四: tty核心数据结构关系