1.加载bios

  bios中包含的硬件CPU 内存 硬盘等相关信息

2.读取MBR

  读取完bios信息之后,计算机会查找bios制定的硬盘MBR引导扇区,将其内容复制到 0x7c00 地址所在的物理内存中。被复制到物理内存中的内容是bootloader,然后开始进行引导。

3.GRUB引导

  GRUB 启动引导器是计算机启动过程中运行的第一个软件程序,当计算机读取内存中的GRUB配置信息后,会根据其配置信息来启动硬盘中不同的操作系统。

4 加载 kernel

  计算机读取内存映像,并进行解压缩操作,系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数,并初始化各种设备来完成linux核心环境的建立

5 设定inittab 运行等级

  内核加载完毕后,会启动linux操作系统第一个守护进程 init ,然后通过该进程读取/etc/inittab文件,/etc/inttab 文件的作用是设定 Linux 的运行等级,Linux 常见运行等级如下:

  0:关机模式

  1:单用户模式

  2:无网络支持的多用户模式

  3:字符界面多用户模式

  4:保留,未使用模式

  5:图像界面多用户模式

  6:从新引导系统,重启模式

6.加载 rc.sysinit

  读取完运行级别,Linux系统执行的第一个用户层文件/etc/rc.d/rc.sysinit,该文件功能包括设定 path 运行变量、设定网络配置、启动 swap 分区、设定/ proc/系统函数、配置SELinux 等。

7.加载内核模块

  读取 /etc/modules.conf 文件及 /etc/modules. d 目录下的文件来加载内核模块、该模块文件,可以后期添加或者修改及删除。

8.启动运行级别程序

  根据之前的运行级别,操作系统会运行rc0.d 到 rc6.d 中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务,其中以 S 开头表示系统即将启动的程序,如果以 K 开头,则代表停止该服务。 S 和 K 后的数字为启动顺序编号。

9.读取 rc.local 文件

  操作系统启动完相应的服务之后,会读取执行etc/rc.d/rc.local 文件,可以将需要开机的启动的任务加入到该文件末尾,系统会逐行去执行并启动相应命令,

10.执行 /bin/login

  执行 /bin/login 程序,启动到系统登陆界面,操作系统等待用户输入用户名和密码,即可登陆到 shell 终端,输入用户名密码即可登陆 Linux操作系统,至此 Linux 操作系统完整启动流程完毕

Linux 操作系统启动流程的更多相关文章

  1. Linux操作系统启动流程梳理

    接触linux系统运维已经好几年了,常常被问到linux系统启动流程问题,刚好今天有空来梳理下这个过程:一般来说,所有的操作系统的启动流程基本就是: 总的来说,linux系统启动流程可以简单总结为以下 ...

  2. Linux操作系统启动流程

    一般来说,所有的操作系统的启动流程基本就是: 总的来说,linux系统启动流程可以简单总结为以下几步:1)开机BIOS自检,加载硬盘.2)读取MBR,进行MBR引导.3)grub引导菜单(Boot L ...

  3. [转] Linux操作系统启动流程

    总启动流程 这部分转自:https://www.cnblogs.com/liang-io/p/9651656.html 一般来说,所有的操作系统的启动流程基本就是: 总的来说,linux系统启动流程可 ...

  4. 简述linux操作系统启动流程

    Linux启动流程 POST-->BootSequence(BIOS)->Bootloader(MBR,grub)-->kernnel(ramdisk,initrd)-->ro ...

  5. Linux操作系统启动流程浅析

    启动BIOS程序 当电源键按下之后,BIOS(Basic nput Output System)就会由主板上的闪存来运行.BIOS程序会把自己解压缩到系统的内存之中,然后读取CMOS(Compleme ...

  6. linux文件系统启动流程、启动脚本

    linux文件系统启动流程.启动脚本 下面是一张Linux启动流程图: 在了解启动流程之前,我们应该先知道系统的几个重要脚本和配置文件,他们对应的路径为: 1. /sbin/init 2. /etc/ ...

  7. Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例

    Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.删除"/sbin/ini ...

  8. Linux操作系统启动故障排错之"/etc/fstab"文件被删除恢复案例

    Linux操作系统启动故障排错之"/etc/fstab"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模拟故障 [root@yinzhe ...

  9. Linux操作系统启动故障排错之/boot目录被删除恢复案例

    Linux操作系统启动故障排错之"/boot"目录被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模拟删除/boot分区 1>.查看/b ...

随机推荐

  1. Python for Xpath

    # Xpath- 在XML文件中查找信息的一套规则/语言,根据XML的元素或者属性进行遍历 ## Xpath开发工具- 开源的Xpath表达式编辑工具:XMLQuire- Chrome插件:Xpath ...

  2. struct 模块解决 TCP黏包问题

    首先来看一下产生黏包现象的一段代码: # server.py 服务端 import socket ​ sk = socket.socket() sk.bind(('127.0.0.1',9000)) ...

  3. 2015 Multi-University Training Contest 10 hdu 5412 CRB and Queries

    CRB and Queries Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Other ...

  4. C++ constexpr类型说明符

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50864210 关键字 constexp ...

  5. pl/sql sql窗口允许输出和允许变量替换

    pl/sql sql窗口允许输出和允许变量替换 允许输出:类似在命令窗口中输入的 setserveroutput on; 允许变量替换:如果点击了这个,类似于执行 set define off命令 在 ...

  6. Android 运行 gson.toJson(object) 报java.lang.StackOverflowError异常

    如以下的代码,运行后报java.lang.StackOverflowError错误: MusicSavedInfo musicSavedInfo=new MusicSavedInfo(currentS ...

  7. Spring In Action读书笔记

    第一章 1.Spring採用4种策略减少Java开发复杂度 基于POJO的轻量级和最小侵入性编程 依赖注入和面向接口实现松耦合 基于切面和惯例进行声明式编程 通过切面和模板降低样板式代码 PS:POJ ...

  8. php如何判断两个时间戳是一天

    $date1 = getdate(strtotime('2013-12-31')); $date11 = getdate(strtotime('2014-01-01')); $date2 = getd ...

  9. Vue运行npm run dev 时修改端口

    进入项目文件的config文件夹E:\myapp\myproject\config,找到index.js,修改里面的8080端口,改成8088(确定不被别的程序使用的都可以)

  10. mysqldump流程

    前几天看到群里在讨论mysqldump导致锁表的问题,为什么一个表已经dump完了还会被锁住?mysqldump里面到底是怎么处理的,为了解答这些问题,就来看看mysqldump.cc中的实现吧. 目 ...