linuxTTY体系结构基础知识
2013-06-24 11:23
495 查看
一、终端设备的结构
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/05/88d755f8e80bcdfcfa68c35c112df536)
Linux内核中 tty的层次结构图所示,包含tty核心、tty线路规程和tty驱动。tty核心是对整个tty设备的抽象,对用户提供统一的接口,tty线路规程是对传输数据的格式化,tty驱动则是面向tty设备的驱动,这是对设备的驱动,应该要我们来实现的,但是后面我们可以看到,对于串口驱动Linux还要进行抽象把共性提取出来封装,使得整个驱动层次化简单化。使得驱动的修改只要设计设备硬件的差异来,但是这样使得设备驱动的结构体系比较复杂,过程层次太多,难于理解。
tty设备发送数据的流程为:tty核心从一个用户获取将要发送给一个 tty设备的数据,tty核心将数据传递给tty线路规程驱动,接着数据被传递到tty驱动,tty驱动将数据转换为可以发送给硬件的格式。
接收数据的流程为: 从tty硬件接收到的数据向上交给tty驱动,进入tty线路规程驱动,再进入 tty 核心,在这里它被一个用户获取。尽管大多数时候tty核心和tty之间的数据传输会经历tty线路规程的转换,但是tty驱动与tty核心之间也可以直接传输数据。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/05/89cb4d957d00469d7aeec6d1a2ea7364)
二、TTY设备驱动结构
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/05/46ceb3596f0fe1a26ba9e909c6827a91)
图显示了与tty相关的主要源文件及数据的流向。tty_io.c定义了tty 设备通用的file_operations结构体并实现了接口函数tty_register_driver()用于注册tty设备,它会利fs/char_dev.c提供的接口函数注册字符设备,与具体设备对应的tty驱动将实现tty_driver结构体中的成员函数。同时 tty_io.c也提供了tty_register_ldisc()接口函数用于注册线路规程,n_tty.c文件则实现了tty_disc结构体中的成员。特定tty设备驱动的主体工作是填充tty_driver结构体中的成员,实现其中的成员函数。
Linux内核中 tty的层次结构图所示,包含tty核心、tty线路规程和tty驱动。tty核心是对整个tty设备的抽象,对用户提供统一的接口,tty线路规程是对传输数据的格式化,tty驱动则是面向tty设备的驱动,这是对设备的驱动,应该要我们来实现的,但是后面我们可以看到,对于串口驱动Linux还要进行抽象把共性提取出来封装,使得整个驱动层次化简单化。使得驱动的修改只要设计设备硬件的差异来,但是这样使得设备驱动的结构体系比较复杂,过程层次太多,难于理解。
tty设备发送数据的流程为:tty核心从一个用户获取将要发送给一个 tty设备的数据,tty核心将数据传递给tty线路规程驱动,接着数据被传递到tty驱动,tty驱动将数据转换为可以发送给硬件的格式。
接收数据的流程为: 从tty硬件接收到的数据向上交给tty驱动,进入tty线路规程驱动,再进入 tty 核心,在这里它被一个用户获取。尽管大多数时候tty核心和tty之间的数据传输会经历tty线路规程的转换,但是tty驱动与tty核心之间也可以直接传输数据。
二、TTY设备驱动结构
图显示了与tty相关的主要源文件及数据的流向。tty_io.c定义了tty 设备通用的file_operations结构体并实现了接口函数tty_register_driver()用于注册tty设备,它会利fs/char_dev.c提供的接口函数注册字符设备,与具体设备对应的tty驱动将实现tty_driver结构体中的成员函数。同时 tty_io.c也提供了tty_register_ldisc()接口函数用于注册线路规程,n_tty.c文件则实现了tty_disc结构体中的成员。特定tty设备驱动的主体工作是填充tty_driver结构体中的成员,实现其中的成员函数。
相关文章推荐
- Linux基础系列—Linux体系结构和Linux内核结构
- MySQL基础知识---------插件式存储引擎体系结构
- Linux 基础知识:目录结构
- linux系统编程之基础必备(一):计算机体系结构一点基础知识
- 【oracle-基础知识】oracle体系结构
- 【Linux基础学习之四】文件系统的基础知识总结(主要目录结构、文件类型、mount、硬连接)
- 嵌入式系统基础知识------之嵌入式微处理器体系结构(1.2)
- EasyDemo*JavaSE 基础知识点体系结构图(download pic Thx)
- 7_Linux基础知识及命令――――Linux的目录结构及相关命令
- linux下的C语言快速学习—计算机体系结构基础简单了解
- 计算机体系结构的一些基础知识
- Linux文件体系结构和基础命令
- linux基础知识--目录结构
- linux 目录结构+常用命令+压缩命令+vim使用+及一些基础知识(非常好)
- PHP中MVC体系结构的基础知识
- linux系统编程之基础必备(一):计算机体系结构一点基础知识
- UNIX环境高级编程——计算机体系结构基础知识
- Linux网络编程基础_1_计算机网络体系结构
- 计算机体系结构一点基础知识
- UNIX环境高级编程——计算机体系结构基础知识