Linux菜鸟起飞之路【九】系统启动流程
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菜鸟起飞之路【九】系统启动流程的更多相关文章
- Linux菜鸟起飞之路【二】Linux基本常识
一.Unix操作系统基本常识 1.什么是Unix? Unix是一个计算机操作系统,是一个用来协调.管理和控制计算机硬件与软件资源的控制程序. 2.Unix操作系统的特点? 多用户与多任务.多用户表示在 ...
- Linux菜鸟起飞之路【一】基本知识与Linux的安装
一.操作系统基本常识 1.操作系统的定义:操作系统是用来协调.管理和控制计算机硬件与软件资源的系统程序,介于硬件与应用程序之间. 2.操作系统内核的定义:操作系统内核是一个管理和控制程序,负责管理计算 ...
- Linux菜鸟起飞之路【八】文本编辑器
在Linux中,文本编辑器有两个,VI和VIM.这两个编辑器用法差不多,但vim是vi的升级版,所以功能更强大一些. vim编辑器一共有三种模式,命令行模式.编辑模式和扩展模式. 进入vim界面,首先 ...
- Linux菜鸟起飞之路【六】权限管理(二)
一.权限信息详解 ls -l 文件 //查看文件权限写法1 ll 文件 //查看文件权限写法2 ls -dl 目录 //查看目录权限写法1 ll -d 目录 //查看目录权限写法2 文件权限格式: ...
- Linux菜鸟起飞之路【五】权限管理(一)
一.与用户相关的几个文件 1./etc/passwd 储存用户名,格式为 用户名:密码(用密码代位符X代替):UID:GID:用户描述信息:家目录:shell 用户名(login_name):是代表用 ...
- Linux菜鸟起飞之路【四】绝对路径、相对路径及常用目录
一.绝对路径与相对路径 Linux操作系统中存在着两种路径:绝对路径和相对路径.我们在访问文件或文件夹的时候,其实都是通过路径来操作的.两种路径在实际操作中能起到同等的作用. 在开始具体介绍之前,我们 ...
- Linux菜鸟起飞之路【三】Linux常用命令
一.Linux命令的基本格式 命令 [选项] [参数] a)命令:就是告诉操作系统要做什么 b)选项:说明命令的运行方式,有的会改变命令的功能,选项通常以“-”开始 c)参数:说明命令的操作对象,如文 ...
- Linux菜鸟起飞之路【十】进程管理
一.基本概念 进程:程序的一次动态执行 守护进程:在后台运行并提供系统服务的进程 僵尸进程:完成了生命周期但却依然留在进程表中的进程,我们称之为 “僵尸进程” 父进程:指已创建一个或多个子进程的进程. ...
- Linux菜鸟起飞之路【七】文件合并、归档和压缩
一.文件合并操作 1.覆盖符号与追加符号 a)“>”代表将左边文件的内容覆盖右边文件的内容,如果右边文件不存在则创建这个文件 b)“>>”代表将左边文件的内容追加到右边文件中,如果右 ...
随机推荐
- thinkphp5部署到LAMP服务器显示Access denied.
问题:thinkphp5部署到LAMP服务器,首页正常访问,其余页面访问显示Access denied 解决:1.先把文件夹权限改为777 2. 进入服务器,改文件.将php.ini的值改成1
- eclipse中windows下的preferences左栏没有tomcat?
是因为缺少eclipse for tomcat 插件,到http://www.eclipsetotale.com/tomcatPlugin.html此网站下载,我的eclipse版本是4.4版本的,所 ...
- 题解 P1006 传纸条
传送门 其实我觉得这个跟P1004挺类似(又是动规) 题解P1004 #include<iostream> #include<cstdio> #include<cstri ...
- codechef FIBTREE 码农题 线段树 树剖 标记永久化
好烦啊,调了半天 线段树部分标记比较多,手抖打错了一个 剩下的都是取模的问题 我自己瞎jb推的公式里保留了abs,但是在模意义下是gg的,所以必须把正负区分开 调试的时候一定要注意构造各种形状的树,不 ...
- Codeforces Round #431 (Div. 2) B
Connect the countless points with lines, till we reach the faraway yonder. There are n points on a c ...
- springcloud-Netflix创建服务消费者
目录 springcloud-Netflix创建服务消费者 Ribbon 创建服务消费者-Ribbon方式 ribbon的架构 Feign 创建包和基本项目结构 创建Feign访问服务的接口和访问co ...
- vue2.0:(七)、vue-resource
本篇文章开始前,先介绍下什么是vue-resource,并且现在还有一个axios. Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没有必 ...
- PHP变量、数据类型、字符串、运算符、条件语句、循环语句、数组、函数
PHP 简介: php :是一门动态交互的计算机语言 静态交互 html css js 但凡是动态交互的 都需要服务器. php都是以.php结尾的文件 Html文件里不能写php代码,但是ph ...
- arcgis jsapi接口入门系列(0):总览
开发环境: arcgis jsapi版本4.9 由于我们这套代码是基于vue,webpack开发的,会有少数vue代码,但总体不影响 里面还有些我们公司的js库和html css,给出的代码不能百分百 ...
- linux下设置SSH无密码登录
ssh配置 主机A:10.0.5.199 主机B:10.0.5.198 需要配置主机A无密码登录主机A,主机B 先确保所有主机的防火墙处于关闭状态. 在主机A上执行如下: 1. $cd ~/.ssh ...