1、tty概念分析

在Linux系统中,终端是一类字符型设备,它包括多种类型,通常使用tty来简称各种类型的终端设备。由于串口也是一种终端,因此这里引入终端这个概念


串口终端(/dev/ttyS*)

串口终端是使用计算机串口连接的终端设备。Linux把每个串行端口都看作是一个字符设备。这些串行端口所对应的设备名称是 /dev/ttySAC0;/dev/ttySAC1……


控制台终端(/dev/console)

在Linux系统中,计算机的输出设备通常被称为控制台终端(Console),这里特指printk信息输出到的设备。/dev/console是一个虚拟的设备,它需要映射到真正的tty(物理终端)上,比如通过内核启动参数” console=ttySAC0”就把console映射到了串口0


虚拟终端(/dev/tty*)

当用户登录时,使用的是虚拟终端。使用Ctcl+Alt+[F1—F6]组合键时,我们就可以切换到tty1、tty2、tty3等上面去。tty1–tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名。


在Linux内核中printk函数处理是交给控制台终端的,控制台终端又把它映射到串口终端或者屏幕终端上。而虚拟终端更多是在应用程序中使用。

2、tty架构解析

Linux tty子系统包含:tty核心,tty线路规程和tty驱动。tty核心是对整个tty设备的抽象,对用户提供统一的接口,tty线路规程是对传输数据的格式化,tty驱动则是面向tty设备的硬件驱动。它们的关系如下图。
Linux串口驱动程序(1)-tty架构
表现在代码实现中,流程就是下面图片描述的。
Linux串口驱动程序(1)-tty架构Linux串口驱动程序(1)-tty架构







相关文章:

  • 2021-10-20
  • 2022-12-23
  • 2022-01-01
  • 2021-12-20
  • 2021-04-28
  • 2022-12-23
  • 2021-10-15
  • 2021-08-03
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-01
  • 2022-02-07
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案