作者:callme_friend 发布于:2018-4-20 18:02
分类:TTY子系统
分析背景:xilinx_uartps.c (drivers\tty\serial)----linux-4.9内核
以具体驱动为例,描述了驱动的注册、打开和读写过程;梳理了相关数据结构间的关系。最后给出了一个模拟tty驱动实例。
作者:wowo 发布于:2016-10-29 22:43
分类:TTY子系统
由[1]中的介绍可知,Linux kernel的console框架,主要提供“控制台终端”的功能,用于:
1)kernel日志信息(printk)的输出。
2)实现基础的、基于控制台的人机交互。
本文将从console driver开发者的视角,介绍:console有关的机制;编写一个console驱动需要哪些步骤;从用户的角度怎么使用;等等。
作者:wowo 发布于:2016-10-25 22:40
分类:TTY子系统
本文将从驱动工程师的角度去看TTY framework:它怎么抽象、管理各个TTY设备?它提供了哪些编程接口以方便TTY driver的开发?怎么利用这些接口编写一个TTY driver?等等。
注1:话说介绍各个framework的时候,我一直比较喜欢用provider、consumer等概念,因为非常生动、易懂。不过在TTY framework的官方俗语中,压根没有provider、consumer等概念,为了不混淆试听,就算了吧。
注2:TTY framework在Linux kernel中算得上一个比较繁琐、庞杂的framework了,再加上现在很少有人会直接去写一个TTY driver,因此本文只是介绍一些概念性的东西,以加深对TTY及其driver的理解,为后续学习serial framework打基础。一些细节的东西,大家可参考callme_friend同学写的"TTY驱动分析[2]”,特别是其中的一些图示,很清晰!
注3:本文所使用的kernel版本为“X Project”初始的“Linux 4.6-rc5”版本。
作者:wowo 发布于:2016-10-14 22:13
分类:TTY子系统
可以毫不夸张的说,我们在使用Linux系统的过程中,每时每刻都在和TTY打交道,显示输出、键盘输入、用户登录、shell终端、等等。
与此同时,作为软件工程师的我们,也会或多或少的困惑:这些习以为常的行为,怎么和kernel中的这些冷冰冰的代码联系起来的?
因此,在Linux TTY
framework分析工作正式开始之前,让我们带着上面的疑问,以这些熟悉的应用场景为视角,进一步理解TTY有关的概念。这就是本文的目的。
作者:wowo 发布于:2016-9-27 22:42
分类:TTY子系统
由“Linux TTY
framework(1)_基本概念”的介绍可知,在Linux
kernel中,TTY就是各类终端(Terminal)的简称。为了简化终端的使用,以及终端驱动程序的编写,Linux kernel抽象出了TTY
framework:对上,向应用程序提供使用终端的统一接口;对下,提供编写终端驱动程序(如serial driver)的统一框架。
本文是Linux TTY framework分析的第二篇文章,将从整体架构的角度,介绍Linux TTY
framework,以便分解出功能相对独立的子模块,以便后续的分析。
作者:wowo 发布于:2016-9-18 22:55
分类:TTY子系统
由于串口的缘故,TTY是Linux系统中最普遍的一类设备,稍微了解Linux系统的同学,对它都不陌生。尽管如此,相信很少有人能回到这样的问题:TTY到底是什么东西?我们常常挂在嘴边的终端(terminal)、控制台(console)等概念,到底是什么意思?
本文是Linux TTY framework分析文章的第一篇,将带着上述疑问,介绍TTY有关的基本概念,为后续的TTY软件框架的分析,以及Linux
serial subsystem的分析,打好基础。