Skip to main content

终端

终端,是一台电子计算机或者计算机系统,用来让用户输入数据,及显示其计算结果的机器。终端有些是全电子的,也有些是机电的。其又名终端机,它与一部独立的电脑有分别。
目录

    1 历史
    2 图形终端
    3 目前
    4 技术讨论

历史

终端其实就是一种输入输出设备,相对于计算机主机而言属于外设,本身并不提供运算处理功能。早期的计算机终端一般是机电的电传打字机,比如ASR33。但是对于大多数应用来说它们太慢了。1970年代初许多电脑公司认识到电视输入终端比穿孔卡片要好得多,而且可以使得计算机更加容易与用户互动,产生新的应用。当时的毛病在于相对于当时的小型计算机来说要显示一页文字所需要的内存太大了。在集成电路普及以前要显示电视信号所需要的速度对当时的逻辑门所提出的技术挑战也太高了。当时有一家公司宣布要生产一台价值15,000美元的视频终端,吸引了许多购户,但是最后它的工程师们决定这个计划无法完成。另一个解决方法是泰克公司发明的存储管,这台机器可以显示输出给它的信息,但是无法刷新。
约1982年左右的一台ASCII视频终端

早期的视频终端使用特别的逻辑门,没有自己的中央处理器。发展微处理器的动机之一就是要简化终端里的电子元件的复杂性。大多数终端的屏幕是绿色或者橙色的,它们与大型计算机相连。典型的终端使用RS-232之类的串行数据通信与主机相连,IBM使用它自己的系统网络体系结构协议通过同轴电缆来连接其主机与终端。

后来所谓的智能终端(如VT52和VT100)被引入。今天依然有许多这两个终端的模拟软件。这些终端之所以被称为“智能”是因为它们理解转义序列,可以定位光标和控制显示位置。重要的非VT100终端有IBM 3270、不同的慧智模型和Tektronix 4014。1970年代里世界上有十数个终端生产商,大多数终端的指令不兼容。1970年代和1980年代初最重要的终端生产商有迪吉多、慧智、Televideo、利尔·西格勒公司和Heathkit。

早期的IBM个人计算机虽然也适用绿色的荧光屏,但是它不算终端。个人计算机的荧光屏不包括任何产生字母的硬件,所有的视频信号是在个人计算机的视卡里产生的。但是使用相应的模拟程序一台个人计算机可以与大型计算机相连模拟终端。最后使用微处理器的个人计算机大大地取消了对终端的需要。今天大多数个人计算机的Telnet用户端提供最普遍的终端(一般VT100)的模拟。
图形终端

有些终端不但可以显示文字,而且可以显示矢量图形和位图。计算机向终端输出绘图指令,终端则向计算机输送用户输入(通过键盘或者定位设备)。

事实上今天过去简单的图形终端已经完全被全功能视频显示器代替了。今天在计算机中图形用户界面无处不在。大多数终端模拟程序是在图形环境内运行的。

X终端是专门给X Window系统设计的图形终端,提供连接到服务器系统上运行的KDE、GNOME或其它基于X Window系统的平台的可能性。
目前

由于个人电脑的普及今天已经很少有专门的计算机终端作为界面了。现代的操作系统如Linux和BSD及其衍生物使用与硬件基本无关的虚拟终端。输出系统一般是荧光屏,输入系统则是键盘。

在使用X Window系统这样的图形用户界面时在屏幕上一般有多个与不同应用相关的窗口开着,而不是只有一个与一个单个过程相连的文字流。在这种情况下用户一般使用终端模拟程序。这样用户可以不必使用专门的终端装置来与计算机交换。
技术讨论

一个程序最简单的使用终端的方法是向终端串行写或读文字。输出的文字向上推,因此只有最后的数行可见。输入的文字首先被暂时贮存,在获得回车键后程序获得整个输入的文字。在这种情况下程序不需要很了解终端。

对于许多互动程序来说这个方法不够,一个普遍的改善是描述命令行编辑,一般它还提供指令历史的功能。这个改善对不同互动的命令行注释器也非常有用。

更进步的终端提供“全屏幕”应用。这样的程序可以完全控制屏幕上的输出,还可以立刻对键盘输入做反应。这样的终端对文本编辑器、文件管理和网页浏览器这样的应用非常有用。这样的程序可以控制屏幕上文字的亮度、在文字下划线、使文字闪烁和使用特别的字母。这样的程序不但要处理简单的文字,而且还要处理可以将光标放置到屏幕上任何地方、清除屏幕部分地区、改变颜色和显示特殊字母的控制字符和转义序列。这些程序还必须能够对功能键做反应。

但是由于各种终端和它们的模拟程序使用不同的转义序列,加上许多模拟程序多少有些错误,在显示的时候往往会发生错误。此外终端和终端模拟程序一般不支持罗马字母以外的字母或者字形。这些缺点都限制了今天终端和终端模拟器的使用。而且近年来由于图形用户界面的普及终端模拟库的发展和改错的工作越来越趋停滞。

Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...