同一网络中的两台计算机通常通过一根物理电缆连接。当它们通过网络通信时,每台计算机中参与通信的程序都通过虚拟连接(一种想象中的电缆)连接。就虚拟连接两端的程序而言,它们独占自己的电缆。然而,由于电缆不是真实的,只是想象出来的,因此两台计算机的操作系统可以有多个虚拟连接共享同一根物理电缆。 这样,仅使用一根电缆,多个程序就可以通信,而无需知道或关心其他通信。 甚至可以有多台计算机使用同一根电缆;虚拟连接存在于两台计算机之间,而其他计算机忽略它们不参与的连接。
这是对现实的一种复杂且过度抽象的描述。 然而,这可能足以理解为什么网络登录与正常登录有些不同的重要原因。 当不同计算机上的两个程序希望通信时,就会建立虚拟连接。 由于原则上可以从网络中的任何计算机登录到任何其他计算机,因此存在大量的潜在虚拟通信。 因此,为每个潜在的登录启动一个 getty 是不切实际的。
有一个单独的进程 inetd(对应于 getty)处理所有网络登录。 当它注意到有传入的网络登录时(即,它注意到它获得了与某台其他计算机的新虚拟连接),它会启动一个新进程来处理该单个登录。 原始进程仍然存在并继续侦听新的登录。
为了使事情更复杂一点,网络登录有不止一种通信协议。 两个最重要的协议是 telnet 和 rlogin。 除了登录之外,还可以建立许多其他虚拟连接(用于 FTP、Gopher、HTTP 和其他网络服务)。 为特定类型的连接设置单独的监听进程是低效的,因此只有一个监听器可以识别连接的类型,并可以启动正确类型的程序来提供服务。 这个单独的监听器称为 inetd; 有关更多信息,请参阅 Linux 系统管理员指南。