当前位置: 首页 > article >正文

电脑从按电源键开始到系统启动的全过程

说明

        本文主要讲解windows系统及linux系统电脑从开机按电源键到操作系统启动完毕的全过程讲解。

Windows系统启动

        Windows系统电脑从按下电源键到系统启动完成,这一过程称为“启动过程”或“开机过程”。从按下电源键到Windows系统启动完成,整个过程涉及硬件初始化、引导加载、内核加载、系统服务启动、用户登录和会话初始化等多个步骤。每一个步骤都至关重要,确保系统能够正常启动和运行。如果任何一个步骤出现问题,可能会导致启动失败或系统异常。以下是详细的步骤和解释:

1.按下电源键

  • 电源供应:当你按下电源键时,电源供应器(PSU)开始向计算机的各个组件提供电力。

2.BIOS/UEFI 初始化

  • 电源自检(POST):BIOS或UEFI固件开始执行电源自检(Power-On Self Test, POST),检查计算机硬件是否正常工作,如内存、硬盘、显卡、键盘等。任何错误会通过蜂鸣声或屏幕信息提示。
  • 硬件初始化:初始化硬件设备,如CPU、内存、图形卡等。
  • 引导设备选择:根据BIOS/UEFI设置的引导顺序,选择合适的引导设备(通常是硬盘、SSD或光驱)。

3.引导加载程序(Boot Loader)

  • MBR/GPT:BIOS系统读取主引导记录(MBR)或UEFI系统读取GUID分区表(GPT)的引导扇区。
  • 加载引导加载程序:从引导设备的引导扇区加载引导加载程序。常见的引导加载程序包括Windows Boot Manager(BOOTMGR)和GRUB(用于多系统引导)。

4.Windows Boot Manager

  • Windows Boot Manager工作:Windows Boot Manager(BOOTMGR)读取Boot Configuration Data(BCD)存储中的配置信息,确定要启动的Windows操作系统。
  • 加载Windows内核和底层驱动程序:BOOTMGR加载Windows内核(ntoskrnl.exe)、硬件抽象层(HAL.dll)以及其他关键文件和驱动程序。

5.Windows内核加载

  • 内核初始化:Windows内核开始初始化系统,包括加载核心驱动程序、初始化内存、设置系统进程和线程管理等。
  • 加载注册表和驱动程序:内核加载系统注册表和所有必要的驱动程序,以支持硬件设备。

6.Windows启动过程

  • 启动用户模式驱动程序:内核启动用户模式驱动程序,负责管理硬件设备和提供系统服务。
  • 启动系统服务:启动关键的系统服务和后台进程,如服务控制管理器(SCM)、本地安全授权子系统服务(LSASS)等。

7.用户登录界面

  • 启动登录界面:Windows显示登录界面(login screen),等待用户输入登录凭据(用户名和密码)。
  • 验证用户身份:系统验证用户输入的登录凭据,确认用户身份。

8.用户会话初始化

  • 加载用户配置:系统加载用户个人配置文件,包括桌面设置、用户特定的注册表项等。
  • 启动用户进程:启动用户特定的进程和应用程序,如文件资源管理器(explorer.exe),加载桌面、任务栏和开始菜单。

9.完成启动

  • 完成启动:Windows桌面环境完全加载,用户可以开始操作系统的正常使用。

Linux系统启动

        从按下电源键到Linux系统启动完成,整个过程涉及硬件初始化、引导加载、内核启动、系统服务启动、用户登录和会话初始化等多个步骤。每一个步骤都至关重要,确保系统能够正常启动和运行。如果任何一个步骤出现问题,可能会导致启动失败或系统异常。Linux系统电脑从按下电源键到系统启动完成,整个启动过程大致可以分为以下几个步骤:

1.按下电源键

  • 电源供应:当你按下电源键时,电源供应器(PSU)开始向计算机的各个组件提供电力。

2.BIOS/UEFI 初始化

  • 电源自检(POST):BIOS或UEFI固件开始执行电源自检(Power-On Self Test, POST),检查计算机硬件是否正常工作,如内存、硬盘、显卡、键盘等。任何错误会通过蜂鸣声或屏幕信息提示。
  • 硬件初始化:初始化硬件设备,如CPU、内存、图形卡等。
  • 引导设备选择:根据BIOS/UEFI设置的引导顺序,选择合适的引导设备(通常是硬盘、SSD或光驱)。

3.引导加载程序(Boot Loader)

  • MBR/GPT:BIOS系统读取主引导记录(MBR)或UEFI系统读取GUID分区表(GPT)的引导扇区。
  • 加载引导加载程序:从引导设备的引导扇区加载引导加载程序。常见的引导加载程序包括GRUB(Grand Unified Bootloader)、LILO(Linux Loader)等。

4.GRUB 引导加载程序

  • GRUB菜单:GRUB显示引导菜单,允许用户选择要启动的操作系统或内核版本。
  • 加载内核和initramfs:GRUB加载选定的Linux内核(vmlinuz)和初始内存盘(initramfs/initrd),它们包含启动所需的基本驱动程序和文件系统。

5.内核启动

  • 内核解压和初始化:Linux内核解压并开始初始化各个子系统,包括内存管理、进程管理、设备驱动程序等。
  • 挂载initramfs:内核挂载初始内存盘(initramfs)为临时根文件系统,执行其内的初始脚本(init)。
  • 设备检测和驱动加载:内核检测硬件设备并加载相应的驱动程序。

6.init进程启动

  • 启动init进程:内核查找并启动系统的第一个进程,即init进程。传统上,init进程是PID为1的进程,通常是SysV init(/sbin/init),但现代系统多使用systemd(/lib/systemd/systemd)或其他替代方案如Upstart。
  • 执行启动脚本:init进程根据配置文件执行启动脚本或启动单元,初始化系统服务和守护进程。

7.系统服务启动

  • 启动系统服务:init进程启动各种系统服务和守护进程,如网络服务、日志服务、数据库服务等。具体启动的服务取决于系统配置和启动目标(runlevel或target)。
  • 挂载文件系统:启动过程中,系统会挂载所有需要的文件系统,包括根文件系统、/home、/var等。

8.登录界面

  • 启动登录管理器:对于桌面环境,init进程会启动显示管理器(如gdm、lightdm、sddm等),提供图形化登录界面。对于服务器或纯文本模式,启动getty进程提供文本登录界面。
  • 用户登录:用户输入用户名和密码,登录管理器或getty验证用户凭据。

9.用户会话初始化

  • 启动用户会话:验证成功后,系统启动用户的会话,加载用户配置文件、环境变量等。
  • 启动桌面环境或命令行:对于桌面环境,系统会启动相应的桌面环境(如GNOME、KDE等),加载桌面、任务栏和应用程序。对于纯文本模式,系统会启动shell(如bash、zsh等)。

10.完成启动

  • 系统准备就绪:用户会话完全加载,系统启动完成,用户可以开始使用操作系统。


http://www.kler.cn/a/287430.html

相关文章:

  • Java 全栈知识体系
  • spi 回环
  • uni-app快速入门(七)--组件路由跳转和API路由跳转及参数传递
  • Ubuntu 22.04.4 LTS + certbot 做自动续签SSL证书(2024-11-14亲测)
  • 无线迷踪:陈欣的网络之旅
  • ES6标准-Promise对象
  • Mybatis-plus拦截器BaseMultiTableInnerInterceptor实现(使用场景)
  • 秋招/春招投递公司记录表格
  • 公司来了个大佬,把FullGC 40次/天优化为10天1次,太秀了~!
  • 每天学习一个基础算法之二分查找
  • Python 生成随机的国内 ip
  • 视觉SLAMch4——李群和李代数
  • 单机无法拨号问题分析
  • UI自动化测试的边界怎么定义?
  • python中的值传递和引用传递
  • 城投公司相关指标数据(2023.8)
  • springboot+vue 进销存管理系统
  • 一起学习LeetCode热题100道(61/100)
  • 计算图像分割mask的灰度级个数、以及删除空的分割数据
  • HTML静态网页成品作业(HTML+CSS)——动漫猫和老鼠网页(1个页面)
  • 快速安全部署 Tomcat
  • 全志Linux磁盘操作基础命令
  • 程序化交易在中国的规模
  • 云计算实训39——Harbor仓库的使用、Docker-compose的编排、YAML文件
  • 什么场景可以使用函数式接口
  • 【数据结构】线性表的链式表示(单链表)