深入理解计算机系统 1.8 系统通过网络与其它系统交流

在此之前,我们一直把计算机系统视为一个独立的硬件和软件集合。实际上,现代系统总是通过网络与其它系统相连的。从单独系统的角度看,网络只是另一个I/O设备罢了,就如Figure 1.14所示。当系统从内存复制字节序列到网络适配器时,数据通过网络流向另一个机器,而不是流向本地磁盘。相似的,系统能读取从其它机器发送来的数据并把数据拷贝到它的内存里。

深入理解计算机系统 1.8 系统通过网络与其它系统交流_第1张图片

随着全球网络(比如互联网)的出现,从一个系统向另一个系统复制信息已经成为计算机系统最重要的用途之一。例如,像电子邮件,即时通讯,万维网,FTP和telnet这样的应用程序都是基于计算机通过网络复制信息的能力。

回到我们的hello程序,我们可以通过熟悉的telnet程序来在远程机器上运行hello程序。假设我们通过运行在本地的telnet客户端连接到允许在远程机器上的telnet服务器。在我们登陆远程机器并运行一个shell之后,远程shell等待着接受一个输入命令。远程运行hello程序涉及到五个基本步骤,如Figure 1.15所示。

深入理解计算机系统 1.8 系统通过网络与其它系统交流_第2张图片

在我们在telnet客户端输入hello字符串并敲击回车键之后,客户端把字符串发送给telnet服务器。在telnet服务器接受到远道而来的字符串之后,它把字符串传递给远程shell程序。接下来,远程shell运行hello程序,并把输出传递给telnet服务器。最后,telnet服务器通过网络把字符串发送给telnet客户端,telnet客户端在本地终端上打印出输出字符串。

这种类型的服务器和客户端之间的信息交互是非常典型的。在第十一章,你将学到如何构建一个网络应用程序,并应用这些知识构建一个简单的web服务器。

你可能感兴趣的:(深入理解计算机系统,系统通过网络与其它系统交流)