系统启动流程

BIOS

我们称之为基本输入输出系统,一般保存在主板上的BIOS芯片中,负责检查硬件并且查找可启动设备;可设置启动顺序;

如果一个设备是可启动,那么第一个扇区512字节的最后两字节是55aa;

MBR

BIOS找到可启动设备后执行其引导代码

引导代码为第一扇区的前446字节;功能:加载一个更复杂的引导程序

GRUB

真正的引导程序

GRUB是现在linux使用的主流引导程序

可以用来引导几乎所有操作系统

GRUB的相关文件保存在/boot/grub目录中

GRUB的配置文件/boot/grub/grub.conf

进入grub目录,可以看到stage1,stage2和以stage1_5结尾的文件,表示的含义是:

stage1即为MBR,它的大小也刚好是512字节

stage1_5为添加对某种文件系统的支持

stage2真正的引导程序

加载顺序:stage1-->stage1_5-->stage2

  grub配置文件

default 采用第一组引导配置(如上图红色框是一个标准的系统配置,如果有多个系统,则配置多个)

timeout 引导等待时间

splashimage 引导程序背景界面

hiddenmenu 隐藏菜单栏

title 名称

root(h0,0) 操作系统存在于第一块硬盘第一个分区

kernel 内核配置

initrd 加载驱动模块

.   MBR的引导代码将负责找到并加载linux内核

linux内核:

一般还会加载内核模块打包文件:

linux系统启动会动态加载驱动模块,这样精简了系统内核,使启动更快速,更高效

命令dmesg查看本次启动内核输出信息,或者/var/log/dmesg文件查看

    init

    Linux系统中第一个进程,是所有进程的父进程

调用/etc/rc.d/rc.sysinit负责对系统进行初始化,挂载文件系统,并且根据运行级别启动相应服务

linux运行级别

可以通过/etc/inittab配置默认运行级别:

每个级别对应的启动服务保存在/etc/rc.d/rc[0123456].d中;

命令runlevel可显示上一个运行级别及当前运行级别;

命令init可用以改变当前运行级别。

最新文章

  1. Theano printing
  2. 关于jquery on方法进行事件绑定触发次数指数叠加的问题
  3. php脚本时 linux命令获取服务器IP
  4. Filezilla Server 配置大全
  5. Git CMD - rm: Remove files from the working tree and from the index
  6. cognos10.2.2使用ODBC连接oracle92数据库(BMT-IMP-0016)
  7. Oracle EBS-SQL (GL-4):从接收追溯到接收事务
  8. 运行Spark-shell,解决Unable to load native-hadoop library for your platform
  9. vs.code调试node.js的C++扩展
  10. Git 设置过滤忽略的文件或文件夹(ignore file)
  11. Android上实现各种风格的隐藏菜单,比如左右滑动菜单、上下滑动显示隐藏菜单
  12. linux ubuntu设置root用户初始密码
  13. SQLTest系列之INSERT语句测试
  14. 从头认识Spring-2.1 自己主动装配(2)-byType(2)
  15. telegraf input的配置
  16. Node.js之Express一
  17. R语言安装openxl包报错解决办法
  18. 和为定值的m个数
  19. Logos
  20. [转]win7下修改C盘USERS文件下的名称

热门文章

  1. 转 maven jetty 插件
  2. RSA_JS_PHP加密解密
  3. Django学习---CSRF
  4. thinkphp5集成微信支付【公众号支付】快捷路径
  5. linux anaconda 管理 python 包
  6. Java使用 VelocityEngine模板引擎快速生成HTML等各种代码
  7. 解读linux中用户密码规则及忘记root口令的破解(思路)
  8. python 获取当前运行的类名函数名
  9. 201671010140. 2016-2017-2 《Java程序设计》java学习第十四周
  10. WPF Shader 正片叠底