• linux启动基本流程


    linux启动序列

    1、CPU初始化
       CPU自身初始化。从某个固定位置(0xfffffff0)取指令并运行,该指令为跳转指令。跳转到BIOS代码的首部。

    2、装载BIOS
       BIOS被固化在主板上的一个ROM中,它首先进行自检(POST),随后载入内核引导程序。
       POST阶段进行系统硬件的检測。包含内存检測,系统总线检測等。

    3、读取MBR
       POST之后。BIOS会读取启动设备的第一个扇区(MBR),即512字节的信息。MBR保存了内核引导程序的開始部分。BIOS将其载入到内存而且运行。


       MBR中的主引导程序。包括了446字节的程序代码和64字节的分区表。

    4、载入系统内核
       运行MBR中的主引导程序程序中。会扫描分区表。寻找活动分区,活动分区的引导记录存在次引导程序,这次引导程序被载入到内存并运行,它负责载入linux内核镜像,并将控制权交给内核。
       内核镜像以压缩的形式存储,并不能运行,它载入到内存后首先进行自解压。

    5、内核初始化
       内核启动第一个程序。init,init进程是系统全部进程的起源,进程编号始终为1. init进程产生getty进程,getty进程产生login进程,登陆成功后。login进程产生shell进程。我们使用shell,产生其它进程。init的工作依据文件/etc/inittab文件来完毕。

    6、运行/etc/rc.d/rc.sysinit 脚本
       /etc/rc.d/rc.sysinit 是init运行的第一个脚本。它的作用是初始化linux系统,包含环境变量。网络配置,检查文件系统等等。

    7、运行run-level脚本
       在/etc/inittab 中已经确定了系统的run-level, 运行对应的命令脚本/etc/rc.d/rcx.d 。

    8、启动其他模块
       比方内存管理、硬盘管理等等。

    9、运行 /etc/rc.d/rc.local脚本
       /etc/rc.d/rc.local 为系统初始化的最后一个脚本。用户能够在这里加入系统启动时服务,比方httpd。

    10、运行 /bin/login
       此程序提示用户输入username和password,正确后然将控制权交给shell进程。

    11、shell 启动

  • 相关阅读:
    alter table add column default
    JS小知识点
    java list按照元素对象的指定多个字段属性进行排序
    Web.xml配置详解之context-param
    spring在web.xml中的配置
    Activiti工作流(4):编写一个HelloWorld
    Activiti工作流(3):activiti核心API
    Activiti工作流框架学习(二)——使用Activiti提供的API完成流程操作
    Activiti工作流框架学习(一)——环境的搭建和数据表的了解
    Redis系列之(二):Redis主从同步,读写分离
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6849892.html
Copyright © 2020-2023  润新知