设为首页收藏本站

全球主机交流论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: discuz
查看: 870|回复: 0
打印 上一主题 下一主题

Linux启动过程

[复制链接]
  • TA的每日心情
    擦汗
    2020-8-11 18:34
  • 签到天数: 243 天

    [LV.8]以坛为家I

    跳转到指定楼层
    楼主
    发表于 2015-4-9 10:42:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    昨天笔试考了一道关于linux系统启动的过程,当时没答上来,现在整理出来(其实并不复杂)。

    按下电源按钮的直到欢迎页出来之后,linux总共做的事可以分为五步来完成。

    1、 BIOS加电自检:

    加电自检,检测硬件设备。然后按照cmos上面的顺序来搜索处在活动状态下的可以引导的设备。可以是光驱、软盘、USB等。

    2、 加载主引导加载程序(MBR):

    主引导程序是一个512字节的映像。包含一点机器码还有一个小的分区。

    主引导程序的任务就是查找并且加载处在硬盘分区上的次引导程序。通过分区表查找活动分区,并将处在活动分区的次引导加载程序读取到内存里面运行。

    3、 加载次引导记载程序(GRUB)

    次引导加载程序只要就是加载linux内核。

    上一阶段结束之后次引导加载程序就会在内存里面跑起来。就会出现GRUB图形界面,让用户选择加载什么样的内核。

    4、 linux内核映像:

    用户选择要加载的内核之后,次引导加载程序(GRUB)就会根据/boot/grub.conf配置文件中所设置的信息,从/boot/所在的分区上读取Linux内核映像,然后把内核映像加载到内存中并把控制权交给Linux内核。

    linux内核获得控制权之后开始干自己的事

    检测硬件
    解压缩自己并安装必要驱动
    初始化与文件系统相关的虚拟设备,LVM或RAID
    装载根文件系统,挂在根目录下面
    完成之后,linux在进程空间里面加载init程序,下面轮到init干活
    init进程
    init是所有进程的发起者和控制者,所有的进程都由此衍生。

    init进程获得控制权之后,它会执行/etc/rc.d/rc.sysinit脚本,根据里面的代码设置环境变量、网络、启动swap、检查并挂载文件系统、执行其他初始化工作。

    至此,linux启动完成。

    我们稍微总结一下:

    首先是BIOS加电自检,之后加载主引导加载程序、次引导加载程序,最后就是linux内核映像,完了把控制权交给init进程,完成初始化工作。

    swap分区是什么?

    类似windows系统中的虚拟内存,当物理内存不够用的时候,使用swap中的内存。
    来源:周县长的博客

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|Archiver|手机版|中国U网    

    GMT+8, 2024-5-22 02:52 , Processed in 0.066248 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表