9.3 网络登录
9.3.1 4.3+B S D网络登录
在上节所述的终端登录中 , i n i t知道哪些终端设备可用来进行登录,并为每个设备生成一个
g e t t y进程。但是,对网络登录则情况有所不同,所有登录都经由内核的网络界面驱动程序(例
如:以太网驱动程序),事先并不知道将会有多少这样的登录。不是使一个进程等待每一个可
能的登录,而是必须等待一个网络连接请求的到达。在 4 . 3 + B S D中,有一个称为 i n e t d的进程
(有时称为 Internet superserver),它等待大多数网络连接。本书将说明 4 . 3 + B S D的网络登录中所
涉及的进程序列。关于这些进程的网络程序设计方面的细节请参阅 S t e v e n s〔1 9 9 0〕。
作为系统起动的一部分, i n i t调用一个s h e l l,使其执行 s h e l l脚本e t c / r c。由此s h e l l脚本起动
一个精灵进程 i n e t d。一旦此s h e l l脚本终止, i n e t d的父进程就变成 i n i t。i n e t d等待T C P / I P连接请
求到达主机,而当一个连接请求到达时,它执行一次 f o r k,然后该子进程执行适当的程序。
我们假定到达了一个对于 T E L N E T服务器的T C P连接请求。T E L N E T是使用T C P协议的远
程登录应用程序。在另一个主机 (它通过某种形式的网络,连接到服务器主机上 )上的用户,或
在同一个主机上的一个用户籍起动T E L N E T客户进程( c l i e n t )起动登录过程:
telnet h o s t n a m e
该客户进程打开一个到名为 h o s t n a m e的主机的T C P连接,在h o s t n a m e主机上起动的程序被称为
1 8 2 U N I X环境高级编程
下载
1