蓝桉云顶

Good Luck To You!

Linux启动加载过程中都发生了什么?

linux 启动加载过程包括自检、引导加载程序(如 grub)、内核初始化、运行 init 进程、系统服务启动及用户登录。

Linux 启动加载

Linux操作系统的启动过程是一个复杂而精密的步骤序列,它涉及到多个阶段和组件,以下是对Linux启动加载过程的详细解析:

1. 引导加载程序(Bootloader)

在计算机开机时,首先执行的是引导加载程序,这个程序通常存储在硬盘的第一个扇区,即MBR(Master Boot Record)或GPT分区表上,常见的引导加载程序有GRUB(Grand Unified Bootloader)和LILO(LInux LOader),它们的主要任务是找到并加载内核映像以及初始化RAM磁盘(initrd)或初始文件系统。

内核加载与初始化

一旦引导加载程序将内核映像加载到内存中,内核便开始接管控制权,内核首先进行自我解压缩,然后进行一系列的初始化操作,包括设置中断描述符表、页表等,内核会尝试挂载根文件系统,这是存放系统核心文件的地方,如果根文件系统无法挂载,系统将进入紧急模式或直接崩溃。

运行init进程

内核完成自身的初始化后,会寻找并执行用户空间的第一个进程——init进程,Init进程是所有其他进程的父进程,其PID为1,Init进程根据配置文件(如/etc/inittab或systemd的单元文件)来启动系统服务和守护进程,这些服务包括网络、登录管理器、定时任务等。

登录管理器与用户会话

当init进程启动了必要的服务后,它会启动一个登录管理器,如getty或agetty,这些管理器负责提供用户登录界面,允许用户输入用户名和密码以访问系统,一旦用户成功登录,就会创建一个用户会话,用户可以在这个会话中运行命令行界面或图形用户界面。

系统服务与应用程序

随着用户的登录,更多的系统服务和应用程序会被启动,这些服务可能包括数据库服务器、Web服务器、邮件服务器等,用户也可以根据自己的需要启动额外的应用程序。

关闭与重启

当用户选择关闭或重启计算机时,init进程会收到信号并开始终止所有正在运行的进程和服务,它会通知内核进行关机或重启操作,内核会执行一系列清理工作,包括刷新文件系统缓存、关闭设备等,最后停止CPU运行。

相关问答FAQs

Q1: 什么是GRUB?

A1: GRUB(Grand Unified Bootloader)是一个广泛使用的引导加载程序,用于加载操作系统内核,它可以管理多个操作系统的启动选项,并提供一个菜单供用户选择要启动的操作系统,GRUB支持多种文件系统和分区方案,并且可以在没有人工干预的情况下自动修复某些启动问题。

Q2: 如何更改Linux系统的默认运行级别?

A2: 在基于System V init的系统中,可以通过修改/etc/inittab文件中的id:3:initdefault:这一行来更改默认运行级别,如果你想让系统默认启动到多用户模式而不是图形界面,可以将这一行改为id:3:initdefault:,在基于systemd的系统中,你可以使用systemctl set-default命令来设置默认的目标(相当于运行级别),要设置默认启动到多用户目标,可以运行systemctl set-default multi-user.target。

各位小伙伴们,我刚刚为大家分享了有关“linux 启动加载”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!

  •  网络战士
     发布于 2024-01-21 13:25:03  回复该评论
  • 通过Java VosialVM监控远程SpringBoot程序的JMX连接,实现了对应用程序性能和状态的有效监控,提高了运维效率。
  •  美丽
     发布于 2024-01-27 01:45:11  回复该评论
  • 通过Java VosialVM监控远程Spring Boot程序的JMX连接,实现了对应用程序性能和状态的有效监控。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年11月    »
123
45678910
11121314151617
18192021222324
252627282930
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接