tty驱动程序架构

来源:互联网 发布:网络直播的意义 编辑:程序博客网 时间:2024/06/10 03:43

在Linux系统中,终端是一类字符型设备,它包括多种类型,通常使用tty来简称各种类型的终端设备。

终端设备常见类型有:
①串口终端(/dev/ttyS*)
串口终端是使用计算机串口连接的终端设备。Linux把每个串行端口都看作是一个字符设备。这些串行端口所对应的设备名称是 /dev/ttySAC0;/dev/ttySAC1

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

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


tty架构图如下:

这里写图片描述

Linux tty子系统包含:tty核心,tty线路规程和tty驱动。tty核心是对整个tty设备的抽象,对用户提供统一的接口,tty线路规程是对传输数据的格式化,tty驱动则是面向tty设备的硬件驱动。

下图更加详细地显示了使用tty架构时的函数调用情况:

这里写图片描述

对于tty架构,当用户使用write或read等函数对硬件进行操作时,首先调用tty核心的读写函数,然后再调用线路规划的读写函数,最后才是调用驱动函数的读写函数对硬件进行操作。

0 0