界面/终端/控制台


简述

对于生活中常见的机器如电话、汽车等,因为我们和其是分离的实体,所以在使用机器时必须有一种方式使你和机器能够交互,这种为交互提供途径的机器部分为界面(Interface)。由此我们可将每个机器分为两部分:界面和其它部件。对于Unix而言,我们称界面为终端(Terminal),而其它部件则被称作主机(Host)

因为终端提供界面,所以它有两个主要的任务:接受输入和生成输出。由此,可以使用如下两个简单公式来描述所有的计算机系统:

计算机 = 终端 + 主机
终端 = 输入设施 + 输出设施

Unix是一种多用户系统,只要满足以下两个条件就可以有不止一个人同时使用计算机:

每个人都拥有自己的终端
终端与主机连接

对于一些能负担起多台主机计算机的组织(如大学、公司),此时允许用户从任意一台终端使用任何一台主机才有意义。为了实现这一目的,需要一台终端服务器(Terminal Server)用充当交换机的角色,来将任意的任意的终端连接到任何的主机。

在所有连接到主机的终端中,有一台终端被认为是计算机本身的一部分,而且可用它来管理系统,这个特殊的终端就是控制台(Console)。控制台的用途如下:

  1. 由系统管理员用来管理系统
  2. 进行一些只能在控制台而不能通过远程终端进行的操作。如系统在启动过程中遇到了问题,那么只能通过控制台来进行修复。这是因为,直到系统启动以后,才能通过远程终端访问系统。
  3. 有时Unix系统可能需要显示一个非常严重的错误信息,这样的信息显示在控制台上可以确保系统管理员能够看到它。

终端的发展

20世纪70年代初期,Ken Thompson和Dennis Ritchie希望将Unix转换成一个真正的多任务、多用户操作系统,但这意味着每个用户都需要有自己的界面。现在,高质量的彩色显示器、键盘以及鼠标都异常便宜,但在那个时代,所有的东西都非常昂贵。当时,计算机系统中没有独立的键盘;没有鼠标;就算是计算机的显示器,也昂贵到无法为每个用户都提供一台。

作为一种解决方法,Thompson和Ritchie决定使用一个价格不贵并且可用的机器来为用户提供界面,该机器就是Teletype ASR33(ASR: Automatic Send-Receive)。最初开发Teletype机器的目的是通过电话线发送和接收消息,也正是基于这一点,该机器在被称为电传打字机(Teletypewriter,其中”Teletype”是 一个商标名称)

作为界面,所有的Teletype都有一个键盘用于输入和一大卷纸用于打印输出。为了存储程序和数据,Teletype中有一个纸带穿孔机和一个纸带阅读机。

与今天的设备相比,Teletype相当原始。除了电源之外,所有东西都是机械的,不是电子的。它没有视频屏幕,没有鼠标,也没有声音。此外,它所提供的键盘也不舒服并且还不容易使用(必须将键按下半英寸才能生成一个字符)。使得Teletype如此珍贵的原因在于,它经济实惠并且可用


终端/主机模式的优点

Thompson和Richie意识到从概念上讲,他们能够将界面与系统的其它部分分离,而这就是他们设计Unix的方式。在这种方式中,处理单元只有一个(主机),界面单元有多个(终端)。最初,主机是PDP-11,终端是Teletype。这一设计决策被证明具有先见之明。从一开始,Unix为用户和计算机之间达成的连接取决于一个具体的设计原则,而不是具体的硬件。这意味着,多年之后,不管出现了什么类型的新硬件,Unix的基本组织方式永远不会改变。将之与微软的Microsoft Windows相比较,由于Windows是为单用户PC特别创建的,所以微软公司永远不能地将终端和主机分开。最终结果是,Windows没有那么优美、没有那么灵活,而且还永远拘泥于PC体系结构。相反,Unix是优美的、灵活的,而且还适用于任何类型的计算机体系结构。所以,这么多年过去了,Unix的终端/主机模式仍然在不可思议地应用着。


终端充当界面,而主机进行处理的优点

当在终端中输入”date”,每当你按下一个键相应字母就会显示在屏幕上,因此可以很自然地猜测您的终端正在显示您键入的字母。实际上,情况并非如此。是主机,而不是终端负责将刚才键入的内容显示出来。每次按下键时,终端都向主机发送一个信息,然后主机作出响应,在屏幕上显示合适的字符。

Unix设计成主机回显每个字符,而不是主机默默接受它所接收的内容而让终端处理回显的原因如下:

  1. 当主机进行回显时,您可以看到键入的内容被成功地接收,而且终端和主机之间的连接完整无缺。
  2. 如果终端进行回显,那么当遇到问题时,您就不知道主机的连接是否正常。当使用一台与主机物理分离的终端时这一点尤为重要。
  3. 抛开可靠性不说,Unix设计人员选择让主机进行回显还有另外一个原因。有一些特定的键(如或者),按下这些键可以修改刚才键入的内容。Unix的设计目的是要与许多不同的终端一起工作,因此操作系统本身以统一方式处理按键才有意义,而不要让每种不同类型的终端以自己的方式处理按键。

终端的分类

Unix中可以使用的终端有两种类型:

一个只使用文本的终端被称为字符终端(Character Terminal)或者基于文本的终端(Text-Based Terminal)。只限于键入字符和阅读字符。
图形终端。其不仅可以处理文本,而且还可以显示任何可以使用小点在屏幕上进行绘制的内容:图形、几何形状、阴影、线条、彩色等。可以使用一个成熟的GUI(Graphical User Interface,图形用户界面),包括图标、窗口、颜色、图形等。


仿真终端标准

现在我们已经不再使用单独的硬件终端:我们使用计算机来仿真终端。当使用自己的计算机连接到一台远程Unix主机时,您可以运行一个程序,使用您的硬件来仿真(Emulate)终端。然后,这个程序通过网络连接到远程主机。在大多数情况下,仿真基于一种非常古老的终端的特征,这个终端就是VT100(可以追溯到1978年)。尽管实际的VT100已经有数年没有使用了,但是它们的设计非常优良,并且曾经非常流行,它们为字符终端设立了一个永久的标准
图形终端拥有不同的标准。Unix的GUI都基于一个称为X Window的系统,而且对X Window的基本支持由一个称为X终端的图形终端提供。今天X终端是图形终端仿真的基础,就如同VT100是字符终端仿真的基础一样


登陆仿真终端的方式

使用ssh(Secure Shell)命令,可以连接一台远程主机并仿真一个字符终端。
使用ssh -X命令, 可以仿真一个Window图形终端。


不需要终端的计算机

如果计算机独自运行,不需要人类的直接输入,那么计算机就不需要终端,这样的计算机称为无头系统(Headless System)

在Internet上,有两种非常常见的主机类型,它们自动运行,不需要终端(此是指在正常情况下不需要终端,并非指不提供连接终端的能力):

服务器,如Web服务器和电子邮件服务器。
路由器:一种特殊用途的计算机,将数据由一个网络中继到另一个网络。在Internet上,路由器提供网络之间真正的连接。如果路由器出现问题,系统管理员会在自己的PC上打开一个终端窗口,连接到路由器,修复问题,然后再断开与路由器的连接。


摘自图书《Unix & Linux教程》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值