Linux系统启动流程

BIOS -> MBR  -> BootLoader -> Kernel -> init

1.打开电源后,计算机从主板的BIOS中读取其中存储的程序。这些程序通常包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。BIOS允许用户在U盘,硬盘,光盘等介质中选择一个来启动计算机。在BIOS将系统的控制权交给用户选择存储介质第一个扇区之后,就开始由Linux来控制系统了。

2.计算机起始的512 Byte,即第0磁道的第一个扇区叫做“主引导记录”,即“MBR(Master Boot Record)”。MBR的512字节存放了预启动信息和分区表信息。可分为两部分:第一部分为引导区(PRE-BOOT),占了446个字节;第二部分为分区表(PARTITION PABLE),共有64个字节,记录硬盘的分区信息。最后的两个字节是结束的标志位。MBR会告诉计算机从该设备的某一个分区来装载引导加载程序,即BootLoader。

3.BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。通常,BootLoader:是严重地依赖于硬件而实现的,不同体系结构的系统存在着不同的BootLoader。

  Linux的引导扇区内容是采用汇编语言编写的程序,其源代码在arch/i386/boot中(不同体系的CPU有其各自的boot目录),有4个程序文件:

  bootsect.S,引导扇区的主程序,汇编后的代码不超过512字节,即一个扇区的大小

  setup.S,引导辅助程序

  edd.S,辅助程序的一部分,用于支持BIOS增强磁盘设备服务

  video.S,辅助程序的另一部分,用于引导时的屏幕显示

  BootLoader有若干种,其中Grub、Lilo和spfdisk是常见的BootLoader。

  系统读取内存中的BootLoader配置信息,并依照此配置信息来启动不同的操作系统。

4.根据BootLoader的信息,系统会读取内核映像并解压缩,在进行初始化后,Kernel会首先预留出自己运行所需要的空间,然后通过驱动程序(Driver)检测计算机可用的硬件。随后,kernel会启动/sbin/init,该程序是系统的第一个程序,它会读取/etc/inittab文件,并依据此文件来进行初始化工作。到此Kernel的工作结束。

5.init读取/etc/inittab最主要的作用就是设定Linux的运行等级,其设定形式是“:id:5:initdefault:”,这就表明Linux需要运行在等级5上。

Linux的运行等级设定如下:

  0:关机

  1:单用户模式

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

  3:有网络支持的多用户模式(我们常用的命令行界面)

  4:保留,未使用

  5:有网络支持有X-Window支持的多用户模式(图形界面)

  6:重新引导系统,即重启

之后init会执行一系列的脚本,有设置计算机名称、失去,检测文件系统,挂载硬盘,清空临时文件,设置网络等功能。至此,操作系统准备就绪。

Linux菜鸟起飞之路【九】系统启动流程的更多相关文章

  1. Linux菜鸟起飞之路【二】Linux基本常识

    一.Unix操作系统基本常识 1.什么是Unix? Unix是一个计算机操作系统,是一个用来协调.管理和控制计算机硬件与软件资源的控制程序. 2.Unix操作系统的特点? 多用户与多任务.多用户表示在 ...

  2. Linux菜鸟起飞之路【一】基本知识与Linux的安装

    一.操作系统基本常识 1.操作系统的定义:操作系统是用来协调.管理和控制计算机硬件与软件资源的系统程序,介于硬件与应用程序之间. 2.操作系统内核的定义:操作系统内核是一个管理和控制程序,负责管理计算 ...

  3. Linux菜鸟起飞之路【八】文本编辑器

    在Linux中,文本编辑器有两个,VI和VIM.这两个编辑器用法差不多,但vim是vi的升级版,所以功能更强大一些. vim编辑器一共有三种模式,命令行模式.编辑模式和扩展模式. 进入vim界面,首先 ...

  4. Linux菜鸟起飞之路【六】权限管理(二)

    一.权限信息详解   ls -l 文件 //查看文件权限写法1 ll 文件 //查看文件权限写法2 ls -dl 目录 //查看目录权限写法1 ll -d 目录 //查看目录权限写法2 文件权限格式: ...

  5. Linux菜鸟起飞之路【五】权限管理(一)

    一.与用户相关的几个文件 1./etc/passwd 储存用户名,格式为 用户名:密码(用密码代位符X代替):UID:GID:用户描述信息:家目录:shell 用户名(login_name):是代表用 ...

  6. Linux菜鸟起飞之路【四】绝对路径、相对路径及常用目录

    一.绝对路径与相对路径 Linux操作系统中存在着两种路径:绝对路径和相对路径.我们在访问文件或文件夹的时候,其实都是通过路径来操作的.两种路径在实际操作中能起到同等的作用. 在开始具体介绍之前,我们 ...

  7. Linux菜鸟起飞之路【三】Linux常用命令

    一.Linux命令的基本格式 命令 [选项] [参数] a)命令:就是告诉操作系统要做什么 b)选项:说明命令的运行方式,有的会改变命令的功能,选项通常以“-”开始 c)参数:说明命令的操作对象,如文 ...

  8. Linux菜鸟起飞之路【十】进程管理

    一.基本概念 进程:程序的一次动态执行 守护进程:在后台运行并提供系统服务的进程 僵尸进程:完成了生命周期但却依然留在进程表中的进程,我们称之为 “僵尸进程” 父进程:指已创建一个或多个子进程的进程. ...

  9. Linux菜鸟起飞之路【七】文件合并、归档和压缩

    一.文件合并操作 1.覆盖符号与追加符号 a)“>”代表将左边文件的内容覆盖右边文件的内容,如果右边文件不存在则创建这个文件 b)“>>”代表将左边文件的内容追加到右边文件中,如果右 ...

随机推荐

  1. PHP 扩展篇 _ 持续更新

    记住这个网站:http://pecl.php.net/ PHP-Redis扩展更新时间:2019/05/06 PHP安装Redis 1:下载目前最新版的redis插件 wget http://pecl ...

  2. Django中间件的执行流程

    Django中间件的执行流程. 请求到达中间件之后,先按照正序执行每个注册中间件的process_reques方法,process_request方法返回的值是None,就依次执行, 如果返回的值是H ...

  3. Polly+AspectCore实现熔断与降级机制

    Polly+AspectCore实现熔断与降级机制 https://www.cnblogs.com/edisonchou/p/9159644.html 一.熔断.降级与AOP 1.1 啥是熔断? 在广 ...

  4. 转 AIX filesystemcache引发的Oracle事故

    http://blog.itpub.net/26015009/viewspace-1806629/

  5. 使用Spring Security OAuth2进行简单的单点登录

    1.概述 在本教程中,我们将讨论如何使用Spring Security OAuth和Spring Boot实现SSO - 单点登录. 我们将使用三个单独的应用程序: 授权服务器 - 这是中央身份验证机 ...

  6. Could not load file or assembly 'Oracle.ManagedDataAccessDTC.DLL' or one of its dependencies.

    Could not load file or assembly 'Oracle.ManagedDataAccessDTC.DLL' or one of its dependencies.  不是有效的 ...

  7. zTree的重点

    今天学习了zTree插件,记录一下使用步骤: 1 下载,把下载好的目录整个放在项目中 文件夹目录: js:一般引这jquery.ztree.all.js和jquery.ztree.core.js cs ...

  8. java 通过文件后缀名查找文件

    最近开发项目的时候需要过滤出一些指定的文件,所以有了以下的一些代码: /** **该类主要是过滤得到指定后缀名的文件 **/ public class DataFileFilter implement ...

  9. Cocos2d-x v3.1 初识(一)

    Cocos2d-x v3.1 初识(一) Cocos2d-x从以前苹果平台上的Cocos2d发展而来,版本已经更新到了3.1.1.作为一个跨平台的游戏开发引擎,现在已经被上百个国家在使用,这也是国人的 ...

  10. HDU 1124 Factorial (阶乘后缀0)

    题意: 给一个数n,返回其阶乘结果后缀有几个0. 思路: 首先将n个十进制数进行质因数分解,观察的得到只有2*5才会出现10.那么n!应含有min(2个数,5个数)个后缀0,明显5的个数必定比2少,所 ...