Linux基础: linux启动流程

linux启动流程:
1.BIOS工作
1.1 按下电源按钮。启动bios(集成在主板上的一个输入输出系统)。
1.2 检测连接硬件,可以在bios开机菜单中去配置启动设备。
1.3 通过设置启动信息寻找到对应启动盘。
1.4 找到启动盘后,先寻找第一个扇区,寻找主引导记录MBR(Master Boot Record);第一个扇区找不到则去其他寻找标为boot的分区;

注1:MBR/BOOT只有446byte,而内核往往大于446byte,所以人们将内核写入一个小程序,bios尝试启动内核时就执行这个小程序,程序名为:boot loader;
注2:磁盘分割除了MBR还有GPT形式,在GPT形式下,可以从LBA0的MBR相容区块内读取第一段开机管理程序;
注3:除了bios之外还有其他的开机程序如UEFI,相比bios,UEFI更像一个小型的操作系统,甚至可以不加载linux的情况下直接通过UEFI使用TCP/IP上网通信;
关于UEFI可参考链接:https://www.hack520.com/uefi.html


2.boot loader
2.1 linux的boot loader 分为两种:lilo.grub
(注:lilo限制:1.柱面有1024大小限制 2.更改了磁盘启动信息需要重启系统才能同步445byte内容;grub无此类限制,所以现在linux的boot loader都使用grub来作为启动程序;)
2.2 grub存在于/boot/grub;主要文件:STAGE1/STAGE1.5/STAGE2,配置文件:grub.conf
STAGE1: 大小512byte,存于MBR中,用于转载STAGE2并将控制权交给它;
STAGE1.5:可以理解为用于连接STAGE1&STAGE2,因为STAGE2很大,放在一个文件系统中,而STAGE1不能识别文件系统;
STAGE2:GRUB核心;
配置文件grub.conf:
title: 略
root:指明所需文件存在哪个磁盘哪个分区
kernel:内核文件
initrd:驱动程序


3.内核
3.1 查询:内核向bios查询硬件信息;接受并管理设置提供给linux使用
3.2 驱动:驱动硬件设备;
静态驱动:设备驱动包含在内核中
动态驱动:以模块的方式存在于文件系统中;
(注:此时还未挂载文件系统,不能动态驱动)
3.3 加载文件系统,内核尝试挂载根文件系统;必须包含:/etc /bin /sbin /lib /dev;(注:以只读方式挂载,因linux还在启动阶段,防止破坏系统资料)


4.启动init服务
4.1 内核按 /sbin/init /etc/init /bin/init 寻找init程序;找不到内核报错;
4.2 启动init是为了初始化系统环境,启动了init表明内核已顺利启动,由init来建立linux环境;
4.3 init为系统第一个程序:pid=1,
4.4 根据运行级别来确定启动哪些守护进程(开机需要启动的进程);读取 /etc/inittab,根据此文件信息来执行初始化,并确定启动级别;
4.5 执行三个脚本: /etc/rc.d/rc.sysinit /etc/rc.d/rc /etc/rc.d/rc.local
rc.sysinit 建立系统基本环境:
1.启动udev selinux子系统;udev负责产生/dev中的文件,selinux负责增强系统安全性;
2.设置核心参数,加载/etc/sysctl.conf
3.设置系统时间,加载键盘和交换分区,设置主机名,挂载文件系统,将挂载为可读可写;加载动态驱动模块USB等。
4.rc.d提供了启动级别,当三个rc程序执行完毕,提供用户登录界面;(注:因为每个级别有可能会有重复的启动程序,不便于管理,所以提供了/etc/init.d启动脚本,主要功能是动态链接启动文件对应程序)


linux启动基本完成;

附1:
启动级别:
0 关机
1 单用户
2 多用户模式但带网络但不能远程登录
3 不受限多用户模式 TUI
4 保留
5 图形模式
6 重新启动
查看启动级别

runlevel

N 3
N是上次的级别,3是当前级别 也就是说机器开机就是3级别
切换级别
init 5

附2:
挂载文件系统:/etc/fstab
1.需要mount的存储装置的实体位置;
2.挂在哪个目录位置;
3.指定挂载的系统格式
4.mount要设置的状态,只读或者默认
5.提供dump
6.设置开机时文件系统是否要检查;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值