linux启动过程

原创 2015年11月18日 08:42:10

启动5大阶段:

1.内核引导
2.运行init
3.系统初始化
4.建立终端
5.用户登录

内核引导
当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。

操作系统—>/boot—>

运行init
内核被加载后,第一个运行的程序便是/sbin/init,init 进程是系统所有进程的起点,你可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。init进程会读取/etc/inittab文件,并依据此文件来进行初始化工作。(关于inittab文件后续说明)

操作系统—>/boot—>init进程—>

系统初始化
相关文件:
1./etc/rc.d/rc.sysinit
rc.sysinit是由init执行的第一个脚本,它主要完成一些系统初始化的工作。rc.sysinit是每一个运行级别都要首先运行的重要脚本,它主要完成的工作有:激活交换分区、检查磁盘、加载硬件模块以及其他一些需要优先执行的任务。/etc/rc.d/ rc.sysinit主要完成各个运行模式中相同的初始化工作。

2./etc/rc.d/rcX.d/
在rc.sysinit执行后,将返回init程序,继续执行/etc/rc.d/rc程序。(根据inittab文件)

3./etc/ec.d/rc.local
rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。可以在这里加上在开机启动后要执行的命令等。。。

操作系统—>/boot—>init进程—>系统初始化—>

建立终端
rc执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动了。在inittab定义终端,定义后将会按照定义方式(如respawn方式)运行mingetty程序,mingetty程序能打开终端、设置模式。同时它会显示一个文本登录界面,这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名,而用户输入的用户将作为参数传给login程序来验证用户的身份。

操作系统—>/boot—>init进程—>系统初始化—>建立终端—>

用户登录
执行/bin/login程序,login程序会提示使用者输入账号及密码,接着编码并确认密码的正确性,如果账号与密码相符,则为使用者初始化环境,并将控制权交给shell,即等待用户登录。

login会接收mingetty传来的用户名作为用户名参数,然后login会对用户名进行分析。如果用户名不是root,且存在/etc/nologin文件,login将输出nologin文件的内容,然后退出。这通常用来在系统维护时防止非root用户登录。只有在/etc/securetty中登记了的终端才允许root用户登录,如果不存在这个文件,则root可以在任何终端上登录。/etc/usertty文件用于对用户作出附加访问限制,如果不存在这个文件,则没有其他限制。

在分析完用户名后,login将搜索/etc/passwd以及/etc/shadow来验证密码以及设置账户的其他信息,比如:主目录什么、使用何种shell。如果没有指定主目录,则将主目录默认设置为根目录;如果没有指定shell,则将shell类型默认设置为/bin/bash。

Login程序成功后,会向对应的终端再输出最近一次登录的信息(在/var/log/lostlog中有记录),并检查用户是否有新邮件(在/usr/spool/mail的对应用户名目录下),然后开始设置各种环境变量。对于bash来说,系统首先寻找/etc/profile脚本文件并执行它;然后如果用户的主目录中存在.bash_profile文件,就执行它,在这些文件中又可能调用了其他配置文件,所有的配置文件执行后,各种环境变量也设好了,这时会出现大家熟悉的命令行提示符,至此整个启动过程就结束了。

操作系统—>/boot—>init进程—>系统初始化—>建立终端—>用户登录—>结束

相关文章推荐

Linux启动过程分析

  • 2014年03月31日 15:31
  • 18KB
  • 下载

linux启动过程

  • 2013年09月07日 12:11
  • 416KB
  • 下载

windows和Linux启动过程对比

整个Linux的启动如下图所示:

Red Hat Linux 9光盘启动安装过程图解

  • 2011年11月16日 16:37
  • 4.38MB
  • 下载

Linux启动过程简单分析

  • 2008年10月23日 20:33
  • 170KB
  • 下载

linux内核启动内核解压过程分析-全

内核编译完成后会生成zImage内核镜像文件。关于bootloader加载zImage到内核,并且跳转到zImage开始地址运行zImage的过程,相信大家都很容易理解。但对于zImage是如何解压的...
  • BoArmy
  • BoArmy
  • 2013年03月09日 08:36
  • 935

Linux学习手册-启动过程

  • 2017年06月02日 11:07
  • 237KB
  • 下载

linux启动过程

  • 2013年11月08日 14:21
  • 915KB
  • 下载

嵌入式Linux系统启动过程

嵌入式Linux系统启动过程  一个嵌入式 Linux 系统从软件角度看可以分为四个部分:引导加载程序(Bootloader), Linux 内核,文件系统,应用程序。 当系统首次引导时,或系...

Linux启动过程

  • 2013年06月27日 09:21
  • 1.05MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux启动过程
举报原因:
原因补充:

(最多只允许输入30个字)