zoukankan      html  css  js  c++  java
  • linux 系统启动

        系统启动流程

        

        BIOS

        我们称之为基本输入输出系统,一般保存在主板上的BIOS芯片中,负责检查硬件并且查找可启动设备;可设置启动顺序;

        如果一个设备是可启动,那么第一个扇区512字节的最后两字节是55aa;

        MBR

        BIOS找到可启动设备后执行其引导代码

        引导代码为第一扇区的前446字节;功能:加载一个更复杂的引导程序

        GRUB

        真正的引导程序

        GRUB是现在linux使用的主流引导程序

        可以用来引导几乎所有操作系统

        GRUB的相关文件保存在/boot/grub目录中

        GRUB的配置文件/boot/grub/grub.conf

        进入grub目录,可以看到stage1,stage2和以stage1_5结尾的文件,表示的含义是:

        stage1即为MBR,它的大小也刚好是512字节

        stage1_5为添加对某种文件系统的支持

        stage2真正的引导程序

        加载顺序:stage1-->stage1_5-->stage2

        

        grub配置文件

        

        default 采用第一组引导配置(如上图红色框是一个标准的系统配置,如果有多个系统,则配置多个)

        timeout 引导等待时间

        splashimage 引导程序背景界面

        hiddenmenu 隐藏菜单栏

        title 名称

        root(h0,0) 操作系统存在于第一块硬盘第一个分区

        kernel 内核配置

        initrd 加载驱动模块

    .   MBR的引导代码将负责找到并加载linux内核

        linux内核:

        

        一般还会加载内核模块打包文件:

        

        linux系统启动会动态加载驱动模块,这样精简了系统内核,使启动更快速,更高效

        命令dmesg查看本次启动内核输出信息,或者/var/log/dmesg文件查看

        init

        Linux系统中第一个进程,是所有进程的父进程

        调用/etc/rc.d/rc.sysinit负责对系统进行初始化,挂载文件系统,并且根据运行级别启动相应服务

        linux运行级别

        

        可以通过/etc/inittab配置默认运行级别:

        

        每个级别对应的启动服务保存在/etc/rc.d/rc[0123456].d中;

        命令runlevel可显示上一个运行级别及当前运行级别;

        命令init可用以改变当前运行级别。

        

  • 相关阅读:
    九度OJ 1168:字符串的查找删除 (查找)
    九度OJ 1167:数组排序 (排序)
    九度OJ 1166:迭代求立方根 (迭代)
    九度OJ 1165:字符串匹配 (模式匹配)
    九度OJ 1164:旋转矩阵 (矩阵运算)
    九度OJ 1163:素数 (素数)
    九度OJ 1162:I Wanna Go Home(我想回家) (最短路径)
    九度OJ 1161:Repeater(复制器) (递归)
    九度OJ 1160:放苹果 (DFS)
    Sub-process /usr/bin/dpkg returned an error code (1)错误解决办法
  • 原文地址:https://www.cnblogs.com/tomcatx/p/4473919.html
Copyright © 2011-2022 走看看