tty模型学习

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

串口终端(/dev/ttyO*

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

 

 控制台终端(/dev/console

    在Linux系统中,计算机的输出设备通常被称为控制台终端(Console),是系统控制台,是与操作系统交互的设备。系统所产生的信息会发送到该设备上。这里特指printk信息输出到的设备。/dev/console是一个虚拟的设备,它需要映射到真正的tty上,比如通过内核启动参数 console=ttyO0” 就把console映射到了串口0当调用printk时,内核将信息输出到控制台终端(/dev/console,由于consolettyO0(串口0)关联了,所以信息将输出到调试串口0上了。

console有缓冲的概念,为内核提供打印输出。内核把要打印的内容装入缓冲区__log_buff,然后由console来决定打印到哪里(比如是tty0n还是ttySn等)。console指向激活的终端。

    若要向一个端口发送数据,可以在命令行上把标准输出重定向到这些特殊文件名上即可。例如,在命令行提示符下键入:echo test > /dev/ttyS1会把单词”test”发送到连接在ttyS1(COM2)端口的设备上。

 

虚拟终端(/dev/tty*

    当用户登录时,使用的是虚拟终端。tty1tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名.

 

TTY架构分析

Linux tty子系统由三个部分构成:

  1.  tty核心(对整个tty设备的抽象 对用户提供统一的接口);
  2.  tty线路规程(对传输数据的格式化);
  3.  tty驱动(面向tty设备的硬件驱动);

TTY核心起到的是承上启下的作用,为我们用户空间访问TTY提供了一个统一的接口,不管底层硬件是串口,显示器还是什么,用户的访问使用的都是统一接口;

TTY线路规程TTY模型中起到中间过渡的作用,它既接收来自TTY核心的数据,也接收来自TTY驱动的数据,根据实际访问的硬件设备所遵循的协议,对数据进行格式化。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值