一、TTY子系统介绍

news2024/9/23 9:23:08
img
个人主页:董哥聊技术
我是董哥,嵌入式领域新星创作者
创作理念:专注分享高质量嵌入式文章,让大家读有所得!
img

文章目录

    • 1、TTY介绍
    • 2、控制台终端
      • 2.1 系统控制台
      • 2.2 当前控制台
      • 2.3 虚拟控制台
    • 3、伪终端
    • 4、串口终端
    • 5. 其它类型

1、TTY介绍

TTY,一词源于Teleprinter,译为电传打印机,在早起用来表示电脑终端的设备。

现在我们通常使用TTY,是各种(物理/虚拟)终端的统称!

Linux系统的终端设备一般分为控制台终端伪终端串口终端其他类型四种。

下面我们来进一步了解这些Linux下常用的终端,为学习Linux TTY Framework打下基础!

cbe366c77f71c68a0664f1805e7e5856

 

2、控制台终端

控制台终端包括:系统控制台、当前控制台、虚拟控制台。

2.1 系统控制台

系统控制台,也就是我们Linux下面的/dev/console,是与操作系统交互的设备,系统所产生的信息会发送到该设备上。

目前只有在单用户模式下,才允许用户登录控制台/dev/console

console有缓冲的概念,为内核提供打印输出。内核把要打印的内容装入缓冲区__log_buff,然后由console指向某个激活的终端,来决定打印到哪里。console指向激活的终端

比如,我们在启动内核的时候,传入的参数console=ttyS1,将控制台终端指向ttyS1串口设备。

 

2.2 当前控制台

这是应用程序中的概念,如果当前进程有控制终端(Controlling Terminal),那么/dev/tty就是当前进程控制台的设备文件。

对于登录的Shell/dev/tty就是你正在使用的控制台,设备号(5,0),/dev/tty会映射到当前设备(使用命令tty可以查看它具体对应哪个实际物理控制台设备),输出到/dev/tty的内容只会显示在当前工作终端上。

你可以输入命令tty,显示当前映射的实际终端如:/dev/tty1或者/dev/pts/0等。

 

2.3 虚拟控制台

/dev/ttyn是进程虚拟控制台,他们共享同一个真实的物理控制台。

PC上,用户可以使用Ctrl + Alt + Fn切换,这种虚拟控制台对应tty1~n,其中:/dev/tty1代表第1个虚拟控制台;当使用Ctrl + ALT+F2进行切换时,系统的虚拟控制台为/dev/tty2 ,当前控制台(/dev/tty)则指向/dev/tty2

而比较特殊的是/dev/tty0,他代表当前虚拟控制台,其实就是当前所使用虚拟控制台的一个别名。因此不管当前正在使用哪个虚拟控制台(注意:这里是虚拟控制台,不包括伪终端),系统信息都会重定位到/dev/tty0上。

只有系统或超级用户root可以向/dev/tty0进行写操作。tty0是系统自动打开的,但不用于用户登录

 

3、伪终端

伪终端(Pseudo Terminal)是终端的发展,它多用于模拟终端程序,是远程登陆(telnet、ssh、xterm等)后创建的控制台设备。

它是成对出现的逻辑终端设备(即masterslave设备, 对master的操作会反映到slave上)。

简单说主终端和类似sshdtelnetd等用户空间的远程协议处理进程连接,而从终端则和shell之类的实际进程连接。

 

4、串口终端

串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。所以这些串行端口所对应的设备名称是/dev/ttyS0、/dev/ttyS1等,设备号分别是(4,0)、(4,1)等

若要向一个端口发送数据,可以在命令行上把标准输出重定向到这些特殊文件名上即可。

我们可以在命令行提示符下键入:echo "tekkaman" > /dev/ttyS1会把“tekkaman”发送到连接在ttyS1(COM2)端口的设备上。

在2.6以后的内核后,一些三星的芯片将串口终端设备节点命名为ttySACn

TI的Omap系列芯片从2.6.37开始,芯片自带的UART设备开始使用专有的的omap-uart驱动,故设备节点命名为ttyOn,以区别于使用8250驱动时的设备名“ttySn”。

img

 

5. 其它类型

还针对很多不同的字符设备存在有很多其它种类的终端设备特殊文件,例如针对ISDN设备的/dev/ttyIn终端设备等。

img

点赞+关注,永远不迷路

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/138030.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《移动安全》(10)Frida第一篇之环境搭建

0x00 前言 Frida是一款轻量级HOOK框架,我们在电脑上安装Frida环境后,还需要将frida-server上传到目标机器上运行(需要Root),通过它来注入进程完成hook操作。本文主要讲述Frida环境的搭建。 0x01 Frida环境搭建 &…

node.js创建网站实例3

node.js访问mysql数据库并把查询结果返回给前端 1.cmd中运行:npm install mysql -s 2.修改api.js的代码 // 1.先引入express模块,express是一个函数 var express require("express") //2.执行express函数;用变量接收express函数…

概论_第2章_重点_随机变量函数的概率分布___定理法和分布函数法的应用

一 定义 概括地说: 随机变量Y是随机变量X的函数。 设g(x) 是一给定的连续函数, 称Yg(X) 为随机变量X的一个函数, Y也是一个随机变量。当X取值 时,Y取值 . ~~~~~~~~~~~~~~ 本文讨论连续型随机变量函数。 定理1: 设X为连续型…

【3.2】Eureka-搭建注册中心/服务注册/服务发现

【3.2】Eureka-搭建注册中心/服务注册/服务发现1 搭建EurekaServer1.1 详细步骤1.2 搭建EurekaServer小结2 服务注册2.1 详细步骤(踩坑点!解决)2.2 模拟多实例部署2.3 服务注册小结3 服务发现3.1 详细步骤4 总结1 搭建EurekaServer 搭建Eure…

2022年,我每天都会用的linux常用命令

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.Linux常用命令 1.Linux命令概述 2.Linux命令的分类 &#…

科研 | 学生研究方向指导 | 技术路线 | 相关学习资源

1. AI某领域 1.1 Python基础 慕课教程:Python 入门语法教程 哔哩哔哩:3小时快速入门Python 1.2 机器学习框架 sklearn框架:菜菜的机器学习sklearn 1.3 深度学习框架 慕课教程:TensorFlow 入门教程 PyTorch官方教程中文版 不…

【回答问题】ChatGPT上线了!给我推荐20个比较流行的AI作画模型!

目录给我推荐20个比较流行的AI作画模型给我推荐20个比较流行的AI作画模型代码给我推荐20个比较流行的AI作画模型 好的,下面是20个比较流行的AI作画模型: DALL-E GAN Deep Dream CycleGAN StyleGAN pix2pix SketchRNN BigGAN ProGAN ESRGAN SPADE BigVA…

Vue+Leaflet.PM插件实现创建和编辑几何图形(点、线、面、圆等)

场景VueLeaflet实现加载OSM显示地图:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/122317394在上面加载显示OSM的基础上,使用Leaflet.pm插件实现在页面上绘制、编辑、剪切、移动几何元素。Leaflet.pm插件用于创建和编辑几何图层的插件可绘…

如何避免无效外贸邮件营销?

如何避免无效的邮件营销,米贸搜为您整理如下,希望对您有所帮助:1 .和邮件正文一样重视主题主题对于电子邮件就像标题对于文章或博客一样重要。即使你有全宇宙最吸引人的散文诗,或者最吸引人的求婚,如果根本没有人打开这封邮件&…

CSS 中各种居中你真的玩明白了么

前言 页面布局中最常见的需求就是元素或者文字居中了,但是根据场景的不同,居中也有简单到复杂各种不同的实现方式,有的特定场景下可能还有一些稀奇古怪的bug,本篇就带大家一起了解下,各种场景下,该如何使用…

72、【哈希表】leetcode——454. 四数相加 II(C++版本)

题目描述 原题链接:454. 四数相加 II 解题思路 本题构建Hash表的关键是确定Value的含义,因为目标是找到四个集合中各种情况为0的情况之和,因此不需要对相同情况去重,Value设置为满足某种对应情况的出现次数。当找到一次满足nums…

实验室小分子PEG衍生物之Aminoxy-PEG2-azide 1043426-13-6异双功能PEG

Aminoxy-PEG2-azide异双功能PEG接头可交联官能团 中文名称:氨氧基-二聚乙二醇-叠氮化物 英文名称:Aminoxy-PEG2-azide 分子式:C6H14N4O3 分子量:190.2 CAS:1043426-13-6 外观:粘稠液体或者固体粉末&#x…

文件误删怎么办?恢复误删的数据,就靠这4种方法

现在是信息爆炸的时代,我们每天都会保存许多重要信息。这让我们的电脑保存了大量的文件、图片、视频等数据。为了保存电脑整洁,提高它的运行速度,我们必须要对它进行定期地清理。在清理的过程中,重要文件误删怎么办?恢…

ArcGIS基础实验操作100例--实验45按要素融合多边形

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 高级编辑篇--实验45 按要素融合多边形 目录 一、实验背景 二、实验数据 三、实验步骤 (1&…

概论_第2章_重点内容__随机变量函数的概率分布___定理法和分布函数法的应用

一 定义 概括地说: 随机变量Y是随机变量X的函数。 设g(x) 是一给定的连续函数, 称Yg(X) 为随机变量X的一个函数, Y也是一个随机变量。当X取值 时,Y取值 . ~~~~~~~~~~~~~~ 本文讨论连续型随机变量函数。 定理1: 设X为连续型…

chrony服务部署

一,要求 chrony服务部署:两台机器 a: 第一台机器从阿里云同步时间,第二台机器从第一台机器同步时间 b: 第一台服务器使用系统时间作为第二台服务器的时钟源, 第一台服务器层级设置为6 二&#xff0…

有关于Transformer 的max_seq_length (max_source_length)

Transformer 的最大输入长度,即max_seq_length / max_source_length是一个非常值得注意的参数。 Transformer的encoder大多是Auto-encoder的结构,不同于Auto-regressive encode,由于auto-encoder缺乏时序序列的位置信息,因此其需…

dom截图——探究长截图的极限

长截图问题 问题:使用dom-to-image和html2canvas来进行长截图会出现一个问题,如果图片非常长,一些图片会只加载一半,如果图片再长一些,截图就会为空。 目前我测试的结果:截图的大小在8mb出现图片缺了的情况…

Blender 编辑骨骼动画,重复动作,并导出动画为视频

文章目录制作动作动画.重复动作.导出动画为视频制作动作动画. 1 进入姿态模式。调整各个部位的位置。调整好后,A,全选,I 记录置和旋转并创建一个关键帧 2 如果回放时间轴上没有关键帧,可以去 动画时间表/动作编辑器 窗口查看。注…

CVE-2019-2725漏洞复现

前言 在学习内网过程中遇到了weblogic比较常见的漏洞,编号是cve-2019-2725,之前没有总结过,于是本篇文章给大家总结归纳一下该漏洞的利用方法与原理。 基础知识 cve-2019-2725漏洞的核心利用点是weblogic的xmldecoder反序列化漏洞,攻击步骤…