程序员视角的计算机系统 1.8 系统通过网络与其它的系统通信
在我们的系统之旅进行到这一点时,我们已经把一个系统视作一个孤立的硬件与软件的集合。
在实践中,现代的系统 常常通过网络与其它的系统进行链接。从一个独立的系统的视角来看
网络也被视为仅是一个另外的输入与输出设备,正如图1.14所示。当系统复制一些字节的序列
从内存到网络适配器,数据流通过网络到达其它的机器,代替了到一个本地的磁盘驱动器。
相似的是,系统能够读取其它的机器发送的数据和复制这个数据到它的内存中。
随着全球网络的发展,例如互联网,复制信息从一个机器到另一个机器已经成为计算机系统
的最重要的用途之一。例如,应用有电子邮件,短消息,万维网,文件传递,远程终端它们
都是基于在网络上复制信息的能力。
回顾你好的例子,我们使用相似的远程终端的应用,在一个远程的机器上运行你好。假定
我们使用一个远程终端的一个客户端在本地的机器上,来连接到远程机器上的远程终端的
服务器上。我们登录 一个远程机器后,运行一个外壳程序,远程的外壳程序等待一个输入
命令。从这一点上看,远程地运行你好程序,包括了五个基本的步骤,如图1.15所示。
当我们在远程终端的客户端上,键入你好这个字符串之后,点回车键,客户端发送字符串
到服务器。远程终端的服务器从网络接收字符串,它把字符串传给远程的外壳程序。接下
来,远程的外壳程序运行你好程序,把输出的行传给远程终端的服务器。最后,远程终端的
服务器把输出的字符串通过网络传回远程终端的客户端,在我们本地的终端上,打印出字符串。
在客户端与服务器之间的交换的类型是所有的网络应用中的经典。在第11章中,你将学习到如何
构建网络程序,并且应用这个知识来构建一个简单的网络服务器。