健康快餐品牌鲨鱼菲特完成1000万元天使轮融资
06-18
在使用Linux时,我们经常会遇到终端和shell的概念。
例如,在桌面版Ubuntu中,我们可以在桌面上右键单击“打开终端”来打开终端。
此时,我们就可以在终端中输入Linux命令了。
有人可能会问,这不是写错了吗?那么终端和shell之间是什么关系呢? 1 什么是终端? 至于什么是终端,我们先来看一个定义。
可见,终端是一个输入输出设备,可以简单理解为鼠标、键盘和显示器。
但这似乎与Linux中终端的概念有些不同。
下面我来解释一下。
键盘和输出设备(例如视频显示单元)的组合 通过它可以将数据输入计算机或电子 通信系统。
但是如果您想要理解什么是终端,我们需要从“上古”时期开始。
在这一年之前,当时还没有个人电脑。
那个只使用大型机和小型机,这些计算机只有壁橱那么大。
当时比较著名的计算机是DPD-7和GE-45。
当时Ken Thompson和Dennis Ritchie(下图中的两位大师)负责在DPD-7上开发新操作系统。
是的,它就是 UNIX 操作系统。
为了提高计算机的使用效率,他们计划让这个操作系统支持多个用户同时使用计算机。
不过,当时的显示器是一种非常昂贵的设备,而且不太可能每个人都有显示器。
于是两人想出了一个解决办法。
他们选择廉价的电传打字机作为终端设备。
这款电传打字机(TeleType)就是ASR33,也就是下图中的设备。
该设备通过键盘将信息输入到计算机中,计算机的输出结果打印在上面的纸上。
就这样,UNIX成为世界上第一个支持多用户的操作系统,ASR33成为第一个Unix终端。
后来,缩写TTY被用来代表Unix或Linux终端。
随着技术的发展和硬件价格的不断降低,终端越来越先进、越来越便宜。
2006年,DEC发明了VT05视频终端。
就是下面这个东西。
你可以看到她有一个小显示器。
它也变得越来越像今天的键盘显示器。
至此我们知道,所谓的终端其实是一个物理设备,是计算机的输入输出设备。
2 什么是控制台 在 20 世纪 70 年代,终端通过电缆连接到控制台。
同时,主机上有一个专门的终端,直接集成在主机上。
这个特殊的终端称为控制台。
该终端的特点是只有管理员才能使用。
每台电脑只有一个控制台,从外观上看和普通终端没有太大区别,但最重要的是控制台可以做一些普通终端做不到的事情。
例如,当操作系统启动失败时,它会向控制台打印一些信息,但终端不会收到这些信息。
另外,当操作系统以单用户模式启动时,我们只能使用控制台登录。
此时,其他终端没有权限登录。
3 Linux操作系统的终端模拟器 前面我们了解到终端实际上??是一个硬件设备,但之前我们可以使用菜单来打开终端(在 Ubuntu 上打开 终端)。
其实我们打开的窗口也是一个终端。
我们称这种终端为终端仿真器,它使用软件来模拟终端设备。
有时我们也称其为虚拟终端。
如果您使用的是gnome终端,我们可以通过以下命令查看其帮助问答。
man gnome-terminal 可以看出,gnome-terminal是一个终端模拟程序,其功能是访问Unix shell。
gnome是用来模拟Xterm的,而Xterm本身也是一个终端模拟器。
它模拟 VT 物理终端。
打开Linux虚拟终端的方法有很多种。
如果我们使用的是桌面版本的Linux,那就是图形界面版本。
所以通常我们可以通过命令打开命令行终端。
如下。
另外,Linux操作系统启动时默认有7个虚拟终端。
这些虚拟终端并不是上面所说的在桌面上打开的虚拟终端,而是直接通过显示器显示的。
我们可以通过快捷键在这些终端之间进行切换。
例如Ctrl+Alt+ F1可以切换到第一个终端,Ctrl+Alt+ F2可以切换到第二个终端,依此类推Ctrl+Alt+F7可以切换到第七个终端。
通常对于图形界面来说,第七个是图形终端,其他都是文本终端。
通过前面的介绍,我们从外部了解了终端、控制器和虚拟终端的概念。
对Linux操作系统中的虚拟终端也有一定的了解。
接下来我们将进一步介绍Linux的内部。
4 什么是Shell 其实我们在上一篇文章中已经介绍过Shell的内容了。
Shell实际上是一个应用程序,它实现了用户访问操作系统的接口。
比如我们常见的文件、用户和网络资源等管理,都是通过Shell来完成的。
Shell 是一个应用程序,它有很多具体的实现,比较常见的有 Bash、Zsh、Csh、Ksh 等。
前面我们了解到终端是一个物理设备,用户通过它来进行操作。
输入和显示信息,而我们现在使用的虚拟终端是物理设备的模拟。
Shell用于执行用户命令。
这样我们现在就可以很容易的了解终端和Shell之间的关系了。
如果我们通过桌面版打开虚拟终端,终端与Shell的关系如下图所示。
如果我们不是通过本地设备连接,而是通过网络访问电脑,那么关系如下图所示。
可见有一个pty组件起到了关键的作用,它建立了两者之间的关联。
1 Linux系统中的tty、pty和pts 前面我们从概念层面介绍了终端、控制台和shell。
但这些概念在 Linux 操作系统中是什么样子的呢?他们之间是什么关系? 我们之前已经介绍过tty,它是一个终端,即输入输出设备的集合。
目前,在Linux中,都是使用虚拟终端来与计算机进行交互的,所以在Linux中,tty其实就是一个虚拟终端,可以理解为一个软件。
如果我们同时按住Ctrl+Alt+F5,就可以切换到虚拟终端5,如下。
在Linux操作系统中,软件的整体架构比较复杂。
这是因为Linux不仅必须支持虚拟终端,还必须支持可以支持键盘和显示器的物理外设,还必须支持通过telnet或ssh进行网络。
联系。
下面给出了一个完整的例子。
为了支持不同类型的访问方式,Linux实现了伪终端的概念,即pty。
其中p是pseudo的缩写。
伪终端分为两部分,如上图所示,包括master和slave。
Master实现对不同接入方式的适配。
它解析来自不同设备或软件的消息并将结果传输到从站。
从站实际上是一个虚拟终端,实现与shell的交互。
对于 shell 来说 基本上,ptsiu 是一个终端设备。

可能还是很难理解。
我们举一个具体的例子。
例如,telnet实现对远程计算机的管理。
实际上,客户端通过网络向telnet守护进程发送各种字符串,然后由telnet守护进程发送。
调用master函数进行分析。
今天我们主要从概念和架构层面介绍了终端、控制台、Shell等概念,并介绍了Linux操作系统中的tty、pty、pts等常用名称。
后面我们会用一个具体的例子来让大家更清楚地理解上面的架构。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-17
06-18
06-18
06-18
06-17
06-17
06-21
06-18
最新文章
使用电子管有哪些注意事项?如何检查电子管之间是否短路?
博通支付1200万美元和解SEC财务欺诈指控
八名运营商高管确认加入虚拟运营商
内蒙古农牧区雷电灾害成因分析及防雷对策
北京联通将5G应用于世园会远程医疗急救
TD-SCDMA最后一轮冲刺测试启动,产业前景更加光明
专访阿里云总裁王健:云计算服务平台梦想成真
USB2.0控制器CY7C68013的接口设计与实现