zoukankan      html  css  js  c++  java
  • Linux入门基础(六):Linux系统启动

    系统启动流程

    1. BIOS
    2. MBR : Boot Code
    3. 执行引导程序-GRUB
    4. 加载内核
    5. 执行init
    6. runlevel

    BIOS

    • BIOS(basic input output system),我们称之为基本输入输出系统,一般保存在主板的BIOS芯片中
    • 计算机启动第一个运行的就是BIOS,BIOS负责检查硬件并查找可启动设备
    • 可启动设备在BIOS设置中进行定义,如USB/CDROM/HD等

    MBR

    • 扇区的前512字节储存MBR信息
    • BIOS通过MBR的最后两个字节是否是55aa来识别该设备是否是可启动设备
    • BIOS找到可启动设备后执行其引导代码
    • 引导代码为MBR的前446字节

    GRUB

    • GRUB是现在Linux使用的主流引导程序
    • 可以用来引导现在几乎所有的操作系统
    • GRUB的相关文件保存在/boot/grub目录中
    • GRUB配置文件尾/boot/grub/grub.conf

    GRUB加载顺序 :

    1. stage1(MBR的镜像,大小512字节)
    2. 文件系统名_stage1_5(增加对各个文件系统的支持,比如e2fs_stage1_5,xfs_stage1_5等)
    3. stage2
    4. 内核

    内核

    • 引导代码将负责找到并加载Linux内核
    • Linux为保持内核的精简,将一些不常用的驱动,功能编译成模块,在需要的时候动态加载.而这些模块被打包保存为以个initramfs文件
    • 早期版本Linux使用initrd文件,initramfs是initrd的替代优化版,更加节省空间和灵活
    • 命令dmesg可以查看本次启动时内核的输出信息

    INIT

    • init是Linux系统中运行的第一个进程
    • top 命令可以查看PID,其中1为init,init是所有进程的父进程,并且一直存在
    • init负责使用/etc/rc.d/rc.sysinit负责对系统进行初始化,挂载文件系统,并且根据运行级别启动相应服务

    运行级别

    • Linux运行级别
      • 0 关机
      • 1 单用户模式
      • 2 不带网络的多用户模式
      • 3 多用户模式(常用的命令行模式)
      • 4 未使用
      • 5 xll 图形化多用户(常用的图形界面模式)
      • 6 重新启动
    • 默认的运行级别可以通过文件/etc/inittab 下配置修改
    • 命令runlevel 显示上个和当前运行级别
    • 命令init 数字 可以改变当前运行级别

    单用户修改root密码

    • 为内核传递参数‘1’(运行级别1)或者“single”系统进入单用户
    • 单用户模式下不启动任何服务
    • 单用户模式直接以root用户登录,并且不需要密码
    • 可以使用passwd修改root密码
  • 相关阅读:
    Java实现 LeetCode 802 找到最终的安全状态 (DFS)
    Java实现 LeetCode 802 找到最终的安全状态 (DFS)
    Java实现 LeetCode 802 找到最终的安全状态 (DFS)
    Java实现 LeetCode 804 唯一摩尔斯密码词 (暴力)
    Java实现 LeetCode 803 打砖块 (DFS)
    Java实现 LeetCode 804 唯一摩尔斯密码词 (暴力)
    Java实现 LeetCode 803 打砖块 (DFS)
    Java实现 LeetCode 804 唯一摩尔斯密码词 (暴力)
    英文标点
    post sharp 与log4net 结合使用,含执行源码 转拷
  • 原文地址:https://www.cnblogs.com/FromZeroToGod/p/10676811.html
Copyright © 2011-2022 走看看