Linux中的主机、控制台和终端的起源

简介:

如果你见过一些台式机,那么它们大多是这样的。键盘、显示器、机箱可以分开。哪怕机箱和使用者不在一个房间,只要线路连通,还是可以使用电脑的。在早期,机箱和键盘、显示器确实是分开的。

你知道 Linux 中的主机、控制台和终端的起源么?

在 UNIX 诞生之初,计算机的价格非常昂贵。当时还没有个人计算机,大多数计算机都是大型、昂贵、不稳定的机器,必须存放在湿度和温度可控的环境中。贝尔实验室的 Thompson 开始寻找小并且便宜的计算机。那时大多数计算机需要 100,000 美元,1970 年他和同事们得到了一台 PDP-11,当时需要 10,800 美元。在数个月之内,他们将 UNIX 移植到了这台计算机内。但是 PDP-11 一次只能运行一个程序,于是他们修改了 UNIX 系统,使它能够一次运行多个程序,直到 1973 年这一目标才得以实现。

从上图中可以看出,PDP-11 机身上有很多按钮,这个操作面板被称为控制台。控制台与主机紧密结合并且无法远程操作,很多操作需要通过控制台完成(比如启动过程中遇到的问题),因为只用当主机启动并且网络连接正常后才能连接终端。由于大型计算机的价格十分昂贵,Thompson 和他的同事们希望 UNIX 能够称为一个多任务(即同时运行多个程序)、多用户系统。在那个年代,计算机还没有独立的键盘,而且由于其昂贵的价格,无法每人都拥有一台计算机。

Thompson 决定使用一种便宜的电传打字机:Teletype。直到如今,Linux 和 UNIX 系统中的文本输入输出环境仍然简写为 tty(TeleTYpe)。Teletype 相当原始,除了电源外,一切都是机械的。

下面这样设想一下,如果好多个用户都各自有一台自己的 Teletype,而“机房”(当时叫“玻璃屋”,因为当时很多公司通过玻璃墙来展示昂贵的大型计算机)中有一台昂贵的大型计算机 PDP-11,这台计算机上运行着可以多用户登录的 UNIX,这样,每个用户都可以通过使用便宜(相对于大型计算机)的 Teletype 来访问大型计算机,相当于每个用户都通过便宜的价格拥有了一台计算机。是的,当时 Thompson 也是这样想的,并且最终实现。这种想法至今都有大量的应用,比如服务器和终端的关系等。

大型计算机 PDP-11 被叫做主机,而用户的 Teletype 也被叫做终端(原指电线的末端)。因为主机和终端是分开的,所以不管是更换主机,还是用户更换终端都是互相独立的,主机和终端可以随着科技浪潮一直发展下去。粗略的说:计算机=主机+终端;终端=输入设备+输出设备。在这个例子中,计算机=PDP-11+电传打字机;而 Teletype=输入设备(键盘)+输出设备(纸)。

下来考虑这样一种情况,如果有多台主机放在机房里,同时有多台终端使用这些主机,那么怎么连接他们呢?这就要用到终端服务器了。终端服务器连接主机和终端,只用用户输入需要访问的主机,终端服务器就会建立他们之间的连接。如下图。

以上,就是 Linux 中主机、控制台和终端的由来。





本文作者:佚名
来源:51CTO
目录
相关文章
|
2月前
|
存储 Ubuntu Linux
在Linux中,如何查看当前主机的主机名,如何修改主机名?要想重启后依旧生效,需要修改哪个配置文件?
在Linux中,如何查看当前主机的主机名,如何修改主机名?要想重启后依旧生效,需要修改哪个配置文件?
|
9天前
|
运维 Java Linux
Linux 下命令后台运行秘籍:无惧终端断开的魔法
本文详细介绍了在 Linux 系统下使命令不受终端断开影响、持续在后台运行的多种方法及其原理。包括使用 `nohup`、`setsid`、括号括起来、作业调度和 `screen` 等技巧,帮助读者提高工作效率,确保任务不被意外中断。
37 0
Linux 下命令后台运行秘籍:无惧终端断开的魔法
|
12天前
|
Linux 网络安全
Linux虚拟机与主机和Xshell的连接问题解决
Linux虚拟机与主机和Xshell的连接问题解决
31 1
|
1月前
|
Shell Linux API
C语言在linux环境下执行终端命令
本文介绍了在Linux环境下使用C语言执行终端命令的方法。首先,文章描述了`system()`函数,其可以直接执行shell命令并返回结果。接着介绍了更强大的`popen()`函数,它允许程序与命令行命令交互,并详细说明了如何使用此函数及其配套的`pclose()`函数。此外,还讲解了`fork()`和`exec`系列函数,前者创建新进程,后者替换当前进程执行文件。最后,对比了`system()`与`exec`系列函数的区别,并针对不同场景推荐了合适的函数选择。
|
2月前
|
存储 监控 网络协议
在Linux中,如何使用 tcpdump 监听主机为 192.168.1.1,tcp 端⼝为 80 的数据,并将将输出结果保存输出到tcpdump.log?
在Linux中,如何使用 tcpdump 监听主机为 192.168.1.1,tcp 端⼝为 80 的数据,并将将输出结果保存输出到tcpdump.log?
|
2月前
|
网络协议 Linux 网络安全
在Linux中,如何将本地 80 端口的请求转发到 8080 端口?当前主机 IP 为10.0.0.104。
在Linux中,如何将本地 80 端口的请求转发到 8080 端口?当前主机 IP 为10.0.0.104。
|
2月前
|
存储 监控 Ubuntu
在Linux中,如何规划⼀台 Linux 主机,步骤是怎样?
在Linux中,如何规划⼀台 Linux 主机,步骤是怎样?
|
2月前
|
Shell Linux 网络安全
在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?
在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?
|
2月前
|
存储 安全 Linux
|
2月前
|
Linux 开发工具 文件存储
Linux修改主机名的两种方法
Linux修改主机名的两种方法
29 0