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

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

Linux 启动加载

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服务器、邮件服务器等,用户也可以根据自己的需要启动额外的应用程序。

关闭与重启

linux 启动加载

当用户选择关闭或重启计算机时,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 启动加载”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1309486.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-11-14 11:50
下一篇 2024-11-14 11:52

相关推荐

  • 服务器启动的三大流程图包括哪些关键步骤?

    服务器启动三大流程图是:加电自检、系统引导、操作系统加载。

    2024-10-05
    04
  • 为什么加载JavaScript时会出现失效的情况?

    您提供的信息较为简略,没有明确指出需要我根据哪段具体的内容来生成摘要。为了更好地帮助您,能否请您详细描述或提供一下需要我生成摘要的具体内容?,,1. 是关于哪个主题的文章、段落或者对话?,2. 内容中涉及哪些关键信息或观点?,3. 是否有特定的字数限制或格式要求?,,一旦收到您的具体指示,我将非常乐意为您生成一段精准且符合需求的摘要。如果您是希望我就“load js失效”这个问题本身进行简要说明,那么我可以给出如下摘要:,,“Load JS失效”通常指在网页加载过程中,JavaScript脚本未能成功执行,导致相关功能无法正常运作。这可能由多种原因引起,如脚本路径错误、网络问题、浏览器兼容性问题、代码错误等。解决此类问题需要对具体情境进行分析,检查并修正可能导致故障的因素。

    2024-09-24
    043
  • 如何绘制Linux启动过程的流程图?

    Linux启动过程包括以下几个主要阶段:1. BIOS/UEFI初始化;2. 引导加载器(如GRUB)加载内核;3. 内核初始化;4. 运行级别(runlevel)和系统服务启动;5. 登录管理器启动,用户登录。

    2024-09-17
    017
  • 如何详细理解Linux的七个启动过程?

    Linux的启动过程主要包括以下七个步骤:1. BIOS加电自检;2. 读取引导程序;3. 加载内核;4. 初始化内核和设备驱动;5. 运行第一个用户进程;6. 启动系统服务;7. 提供用户登录界面。

    2024-09-12
    016

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入