文件名称:终端登录-鸿鹄论坛_华为认证h35-211-hcnp-access network题库
文件大小:18.16MB
文件格式:PDF
更新时间:2024-07-29 08:58:53
UNIX 环境高级编程 linux
9.2 终端登录 先看一看登录到U N I X系统时所执行的各个程序。在早期的 U N I X系统中,例如V 7,用户 用哑终端 (通过R S - 2 3 2连到主机 )进行登录。终端或者是本地的(直接连接)或者是远程的(通 过调制解调器连接)。在这两种情况下,登录都经由内核中的终端设备驱动程序。例如,在 P D P - 11上常用的设备是D H - 11和D Z - 11。因为连到主机上的终端设备数已经确定,所以同时的 登录数也就有了已知的上限。下面说明的登录过程适用于使用一个 R S - 2 3 2终端登录到U N I X系 统中。 9.2.1 4.3+BSD终端登录 登录过程在过去 1 5年中并没有多少改变。系统管理者创建一个通常名为 / e t c / t t y s的文件, 其中,每个终端设备有一行,每一行说明设备名和传到 g e t t y程序的参数,这些参数说明了终端 的波特率等。当系统自举时,内核创建进程 ID 1,也就是 i n i t进程。i n i t进程使系统进入多用户 状态。i n i t读文件/ e t c / t t y s ,对每一个允许登录的终端设备, i n i t调用一次f o r k,它所生成的子进程 则执行程序g e t t y。这种情况示于图9 - 1中。 图9 - 1中各个进程的实际用户 I D和有效用户 I D都是 0 (也就是它们都具有超级用户特权 )。i n i t以空环境执行 g e t t y程序。 g e t t y对终端设备调用o p e n函数,以读、写方式将终 端打开。如果设备是调制解调器,则o p e n可能会在设备 驱动程序中滞留,直到用户拨号调制解调器,并且线 路被接通。一旦设备被打开,则文件描述符 0、1、2就 被设置到该设备。然后g e t t y输出“l o g i n:”之类的信息, 并等待用户键入用户名。如果终端支持多种速度,则 g e t t y可以测试特殊字符以便适当地更改终端速度 (波特 率)。关于g e t t y程序以及有关数据文件的细节,请参阅 图9-1 init生成进程使终端可用于登录 进程 ID 1 对每个终端 f o r k一次 每个子进程 exec getty