博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux启动基本流程
阅读量:7082 次
发布时间:2019-06-28

本文共 928 字,大约阅读时间需要 3 分钟。

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 启动

转载地址:http://silml.baihongyu.com/

你可能感兴趣的文章
Proxmox集群ceph报“ceph 1pg inconsistent”错误解决备忘
查看>>
多级菜单系统安装维护shell脚本实现企业级案例
查看>>
那些年,我玩过的操作系统
查看>>
Lync Server 2013标准版升级Skype for Business Server 2015实战(上)
查看>>
新浪、万网前系统架构师高俊峰:统一监控报警平台架构设计思路
查看>>
2011-9-25俱乐部活动
查看>>
JMeter正则表达式提取器
查看>>
Nginx
查看>>
How To Enable‘root’Account Login Solaris 11 Directly
查看>>
MongoDB学习初步
查看>>
sccm 2007 r2 step by step 之十二 操作系统分发part1
查看>>
Tokyo Tyrant基本规范(1)--介绍和安装
查看>>
ORA-30036故障处理思路
查看>>
Advanced Threat Analytics 2016
查看>>
SFB 项目经验-31-批量为n台服务器导入PFX证书
查看>>
PostgreSQL存储过程<转>
查看>>
Angular企业级开发(8)-控制器的作用域
查看>>
BZOJ 4538: [Hnoi2016]网络 [整体二分]
查看>>
从XML文件乱码问题,探寻其背后的原理
查看>>
BSD Socket~TCP~Example Code
查看>>