【Linux】Linux的字符终端

Unix/Linux是多用户系统

1、主机连接多态字符终端

2、字符终端作为交互式(人机之间)输入输出设备

 

终端的构成

键盘、显示器、RS232串行通信接口

 

主机与终端的连接

1、主机中的串口卡(硬件)引出多个RS232串口

2、每个RS232接口通过电缆(3芯或更多芯)连接一台终端

3、RS232电缆的长度限制,早期要求小于10米,现在可达百米

 

终端与主机的功能分工

终端:主机的输入和输出设备

终端通过电缆把用户的按键信息送到主机,把主机发来的信息在屏幕上显示

主机:程序和数据的存储及处理

数据及程序存放在主机的硬盘上,程序的运行也都由主机内的CPU占用主机内存来完成

                                                        

 

驱动程序

1、不同的硬件需要不同的驱动程序

2、与行律模块的接口:上行和下行字符流

 

行律的作用

1、一行内字符的缓冲、回显与编辑,直到按下回车键

2、数据加工,如:将\n转化为\r\n

3、将Ctrl+C字符转化为终止进程运行的信号(signal

即:比如说我们在终端上按下了Ctrl+C按键,那么实际上有一个字节,这个字节的ASCLL码值是3。送到主机那边去。主机的行律见到这个字节后,并不是把这个字节像普通的按键信息一样,交给终端上运行的进程。而是产生一个信号,将这个继承杀死,这些功能是行律要做的。

下面我们看一下这个主机与终端之间的通信过程:

                                                      

 

行律功能的调整

行律的功能有的时候对于我们来说,是不方便的。比如说,回显,我们输入口令的时候不希望回显。

有的时候我们不希望行律缓冲数据。比如说,我们希望按键信息能尽快的交给应用程序,而不是等待按下回车。

下面有两种可以调整行律的方法:

1、程序中通过编程的方法

2、相关命令:stty

 

(1、比如,考虑到有些终端不支持backspace键。我们可以通过Ctrl+H键擦掉一个字符。所以我们在这里设置一下——

stty erase ^ H 

而这里我们要知道的事,Ctrl+H组合键对应的ASCLL码是8,对应的也是backspace键

 2、stty -a可以将行律的所有控制信息的状态打印出来,终端忠实的显示从主机送来的信息。

 3、又比如,我们可以使字符显示不同的颜色。这时候,需要一些控制。这些控制,都是由终端转义序列来完成的。)

 

终端转义序列

原创地址:https://www.cnblogs.com/fanweisheng/p/11076987.html

举例:

ESC- but not CSI-sequences 非控制转义序列

ESC cRIS重绘屏幕.
ESC DIND换行.
ESC ENEL新的一行.
ESC HHTS设置当前列为制表位.
ESC MRI翻转换行(Reverse linefeed).
ESC ZDECIDDEC 私有定义.内核将其解释为
  VT102字符,返回字符ESC [ ? 6 c.
ESC 7DECSC存储当前状态(光标坐标,
  属性,字符集).
ESC 8DECRC恢复上一次储存的设置
ESC [CSI控制序列介绍
ESC % 开始一个字符集选择序列
ESC % @   选择默认字符集(ISO 646 / ISO 8859-1) 
ESC % G    选择 UTF-8
ESC % 8    选择 UTF-8(已不用)
ESC # 8DECALNDEC 屏幕校准测试 - 以E's填充屏幕.
ESC( 开始一个 G0 字符集定义序列
ESC( B    选择默认字符集(ISO 8859-1 mapping)
ESC( 0    选择 vt100 图形映射
ESC( U    选择空映射 - 直接访问字符ROM
ESC( K    选择用户映射 - 由程序mapscrn(8)
     加载.
ESC ) 开始一个 G1 字符集定义
  (后面跟 B,0,U,K,同上).
ESC >DECPNM设置数字小键盘模式
ESC =DECPAM设置程序键盘模式
ESC ]OSC(是perating system command的缩写)
  ESC ] P nrrggbb: 设置调色板,后面紧跟7个
  十六进制数,再跟一个 P :-(.
  这里 n 是颜色(0-16),而 rrggbb 表示
  红/绿/蓝 值(0-255).
  ESC ] R: 重置调色板

 

终端仿真简介

真实的硬件终端设备由键盘和显示器组成,用于与远程主机(计算机)进行通信。除了与主机距离比较远(在隔壁房间或者在其它城市)以外,它的使用方式与一台个人计算机没有什么区别。程序是在主机上被执行,但结果是显示在终端屏幕上。终端通常仅限于显示接收到的信息以及在键盘上输入发送给主机的信息。

功能单一的终端设备在上世纪70年代和80年代比较盛行。人们在其上编制程序、运行程序、编写文档或发出打印命令等。终端使用一根电缆与主机相连,有时需要通过modem与在远距离以外的主机连接。

如今使用实际的终端设备已经很少。人们通常利用软件把个人计算机仿真成一个终端与主机相连。现在几乎所有使用Linux的人都使用终端仿真方法。对于不使用X window的情况下,人们使用字符界面的终端(虚拟终端)。这通常也被称为命令行接口。而在X window环境下,我们可以获得多个终端窗口,也有不少的终端仿真程序可以选用,例如xtermrxvt或者zterm等。所有这些都是使用了仿真的方法来模拟一台真实的终端设备。

 

终端仿真的发展

随着网上异构操作系统环境的高速发展,特别是Linux/UNIX的蓬勃发展,给日常应用提供了更多、更高和更安全的选择。然而,各种操作系统之间的操作环境相差很大。从事计算机工作的专业人员面临的情况更为复杂。企业内部有很多计算机,在它们上运行的操作系统可能是Windows、Linux、Solaris、OpenVMX、True64、FreeBSD,也可能是HP-UX、AIX或别的Unix系统。

以往UNIX主机会自带多台字符或图形终端供用户使用。但随着网络的飞速发展以及安全上的要求,用户往往远离主机,通过RS232接口连接的串行终端已经成为瓶颈,如何利用Intranet网或Internet网上的PC机访问和管理这些UNIX的服务器已经成为巨大的要求。这时,UNIX仿真软件诞生。即在Windows环境中,仿真出一个远程控制台,作为一个远程终端,通过网络登录到远程Unix系统。

对于LinuxUnix系统,通常使用终端仿真工具进行远程管理。常见的工具有:Windows自带的TelnetNetterm、CRT。但WRQ公司的Reflection软件不仅能同时为不同UNIX服务器提供字符终端和X-WINDOW图形的仿真,同时能够加密传输,保证客户安全

虚拟终端字节流

                   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_临渔_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值