剖析Linux系统启动过程
a和NetWare网络文件系统
network:激活已配置网络接口的脚本程序 nfs:打开NFS服务 portmap:RPC portmap管理器,它管理基于RPC服务的连接 sendmail:邮件服务器sendmail smb:Samba文件共享/打印服务 syslog:一个让系统引导时起动syslog和klogd系统日志守候进程的脚本 xfs:X Window字型服务器,为本地和远程X服务器提供字型集
Xinetd:支持多种网络服务的核心守护进程,可以管理wuftp、sshd、telnet等服务 这些守护进程也启动完成了,rc程序也就执行完了,然后又将返回init继续下一步. 第五部分:建立终端 rc执行完毕后,返回init.这时基本系统环境已经设置好了,各种守护进程也已经启动了.init接下来会打开6个终端,以便用户登录系统.通过按Alt Fn(n对应1-6)可以在这6个终端中切换.在inittab中的以下6行就是定义了6个终端: 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 从上面可以看出在2、3、4、5的运行级别中都将以respawn方式运行mingetty程序,mingetty程序能打开终端、设置模式.同时它会显示一个文本登录界面,这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名,而用户输入的用户将作为参数传给login程序来验证用户的身份. 第六部分:登录系统,启动完成 对于运行级别为5的图形方式用户来说,他们的登录是通过一个图形化的登录界面.登录成功后可以直接进入KDE、Gnome等窗口管理器.而本文主要讲的还是文本方式登录的情况: 当我们看到mingetty的登录界面时,我们就可以输入用户名和密码来登录系统了. Linux的账号验证程序是login,login会接收mingetty传来的用户名作为用户名参数.然后login会对用户名进行分析:如果用户名不是root,且存在/etc/nologin文件,login将输出nologin文件的内容,然后退出.这通常用来系统维护时防止非root用户登录.只有/etc/securetty中登记了的终端才允许root用户登录,如果不存在这个文件,则root可以在任何终端上登录./etc /usertty文件用于对用户作出附加访问限制,如果不存在这个文件,则没有其他限制. 在分析完用户名后,login将搜索/etc/passwd以及/etc/shadow来验证密码以及设置账户的其它信息,比如:主目录是什么、使用何种shell.如果没有指定主目录,将默认为根目录;如果没有指定shell,将默认为/bin/bash.
login程序成功后,会向对应的终端在输出最近一次登录的信息(在/var/log/lastlog中有记录),并检查用户是否有新邮件(在/usr /spool/mail/的对应用户名目录下).然后开始设置各种环境变量:对于bash来说,系统寻找/etc/profile脚本文件,并执行它;然后如果用户的主目录中存在.bash_profile文件,就执行它,在这些文件中又可能调用了其它配置文件,所有的配置文件执行后后,各种环境变量也设好了,这时会出现大家熟悉的命令行提示符,到此整个启动过程就结束了. 希望通过上面对Linux启动过程的剖析能帮助那些想深入学习Linux用户建立一个相关Linux启动过程的清晰概念,进而可以进一步研究Linux接下来是如何工作的.
|
|||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |