Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1094981
  • 博文数量: 414
  • 博客积分: 10030
  • 博客等级: 上将
  • 技术积分: 4440
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-05 21:42
文章分类

全部博文(414)

文章存档

2011年(1)

2009年(1)

2008年(412)

我的朋友

分类: LINUX

2008-10-11 19:55:03

图显示了通过终端登录发生的事情。首先,init确认有一个getty 程序提供给终端连接(或控制台)。 getty侦听终端等候用户告知它要登录 (这通常意味着用户必然键入些什么)。当它注意到一个用户,getty输出一个欢迎信息(存在/etc/issue中),并提示用户名,最后运行login程序。 login作为一个参数得到用户名,并提示用户输入口令。如果正确,login启动给此用户设置的shell;否则退出并终止进程 (可能在再给用户一个机会输入用户名和口令之后)。 init注意到进程终止,就给这个终端启动一个新的getty


图7.1:通过终端登录: initgettylogin和shell的交互

注意唯一的新进程是由init产生的(用fork系统调用); gettylogin只是替代进程运行的程序 (使用exec系统调用)。

为注意用户,串行线需要一个单独的程序,因为终端活动时可以(传统上也是)变得复杂。 getty也适应连接的速度和其他设置,这对拨号连接特别重要,因为连接和连接的参数可能不同。

gettyinit 有多个版本在使用,各有优缺点。学习你的系统的版本也了解其他版本是个好主意(你可以用 Linux Software Map来找。)如果你没有拨入,可能不必考虑 getty,但 init仍然很重要。

阅读(833) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~