操作系统引导过程

操作系统引导全过程-详细 硬盘结构:硬盘内部有MBR(Master Boot Record主引导记录)、以及多个分区,每个主分区也有自己的PBR(分区引导记录)。硬盘扇区默认大小512B,空间分配一般按簇分配(多个扇区为一组簇)。BIOS工作在实模式下,最大20位寻址,也就是1M寻址范围(0x00000 ~ 0xFFFFF)(最初的8086处理器能够访问的内存最大只有1MB,保证兼容性)MBR大小512B,位于0柱面、0磁头、1扇区,包括:主引导程序(446B)、硬盘分区表DPT(64B)、MBR结束标志AA55(2B) 阅读详情

所谓操作系统的引导过程是将存放在硬盘上的静态的操作系统装载到内存中,并开始执行操作系统的过程。

Welcome to my personal website: www.freehacker.cn

第一阶段:BIOS


1.1 何为BIOS?

BIOS,英文“Basic Input Output System”,中文“基本输入输出系统”。百度百科中的解释如下:

它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。

BIOS保存在ROM芯片中,系统上电后第一件事就是运行BIOS程序(这不是必须的)。

疑问:计算机CPU如何在上电之后直接运行BIOS呢?

答:对于x86系列的CPU,一加电就将指令寄存器设置为:0xFFFF0000,表示CPU开始从0xFFFF0000这个内存中取出一条指令执行,通常在0xFFFF0000处是一条地址转跳指令,转向BIOS的入口。

1.2 硬件自检

BIOS程序首先检查,计算机硬件能否满足运行的基本条件,这叫做"硬件自检"(Power-On Self-Test),缩写为POST。如果硬件出现问题,主板会发出不同含义的蜂鸣,启动中止。

1.3 加载引导扇区

BIOS设置里有一个选项是Boot Sequence,可以设置外部存储设备的启动顺序,排在前面的设备就是优先转交控制权的设备。

硬件自检完成后,BIOS的主要工作就是加载引导扇区。BIOS根据Boot Sequence中的顺序,将最前面的存储设备的引导扇区的内容加载到内存中,并跳转到引导程序的第一条指令。

BIOS将所检查外部存储设备的第一个扇区(512B)载入内存,放在0x00007C00处,如果一个扇区的最后两个字节是“55 AA”,那么这就是一个引导扇区,这个外部存储设备也就是一块可引导盘。通常这个大小为512B的程序就称为引导程序(boot)。如果最后两个字节不是“55 AA”,那么BIOS就检查下一个外部存储设备。如果没有其他启动介质,则显示 ”No ROM BASIC” ,然后死机。

第二阶段:MBR


2.1 何为MBR?

MBR,英文“Master Boot Record”,中文“主引导记录”。MBR为存储设备的第一个扇区,也就是该存储设备的最前面的512字节。

计算机读取MBR的512字节内容,如果这512个字节的最后两个字节是0x55和0xAA,表明这个设备可以用于启动;如果不是,表明设备不能用于启动,控制权于是被转交给"启动顺序"中的下一个设备。

2.2 MBR结构

MBR的主要作用是告诉计算机到存储设备的哪个位置去找操作系统。主要由三部分组成:

  • 第1-446字节:调用操作系统的机器码。
  • 第447-510字节:硬盘分区表(Disk Partition Table,DPT),将硬盘分成若干分区。
  • 第511-512字节:主引导记录签名(0x55和0xAA)。

2.3 分区表

MBR中的分区表长度只有64个字节,里面分成4项,每项16个字节,所以一个硬盘最多只能分四个一级分区,又叫做"主分区"。每个区可以安装不同的操作系统,"主引导记录"因此必须知道将控制权转交给哪个区。

每个主分区的16个字节,由6个部分组成:

  • 第1个字节:如果为0x80,就表示该主分区是激活分区,控制权要转交给这个分区。四个主分区里面只能有一个是激活的。
  • 第2-4个字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等等)。
  • 第5个字节:主分区类型。
  • 第6-8个字节:主分区最后一个扇区的物理位置。
  • 第9-12字节:该主分区第一个扇区的逻辑地址。
  • 第13-16字节:主分区的扇区总数。

2.4 扩展分区和逻辑分区

随着硬盘越来越大,四个主分区已经不够了,需要更多的分区。但是,分区表只有四项,因此规定有且仅有一个区可以被定义成"扩展分区"(Extended partition)。

所谓"扩展分区",就是指这个区里面又分成多个区。这种分区里面的分区,就叫做"逻辑分区"(logical partition)。

计算机先读取扩展分区的第一个扇区,叫做"扩展引导记录"(Extended boot record,缩写为EBR)。它里面也包含一张64字节的分区表,但是最多只有两项(也就是两个逻辑分区)。

计算机接着读取第二个逻辑分区的第一个扇区,再从里面的分区表中找到第三个逻辑分区的位置,以此类推,直到某个逻辑分区的分区表只包含它自身为止(即只有一个分区项)。因此,扩展分区可以包含无数个逻辑分区。

第三阶段:硬盘启动


计算机的控制权就要转交给硬盘的某个分区了。

3.1 卷引导记录

四个主分区里面,只有一个是激活的。计算机会读取激活分区的第一个扇区,叫做"卷引导记录"(Volume Boot Record,缩写为VBR,也可称为分区引导记录,Partition Boot Record,缩写为PBR)。

"卷引导记录"的主要作用是,寻找激活分区根目录下的NTLDR(XP)、bootmgr(Win7 above)、grldr(Grub)、btldr.mbr(BootLink)等可用于引导的程序。

3.2 启动管理器

"启动管理器"(boot loader)是系统预先安装的程序,由用户选择启动哪一个操作系统。"卷引导记录"搜索到激活分区中的"启动管理器",将控制权交给"启动管理器"运行。

"启动管理器"寻找激活分区中的启动配置数据(如:Win7中的BCD文件、XP中的boot.ini文件),根据启动配置数据,在显示器上显示多操作系统选择画面。选择相应的操作系统,控制权交给操作系统。

Linux环境中,目前最流行的启动管理器是Grub。在windows下为启动管理器bootmgr(xp中的ntldr文件)。

第四阶段:操作系统


控制权转交给操作系统后,操作系统的内核首先被载入内存。

以Win7系统为例,整个操作系统引导过程如下:

1、电脑开机后,开始启动BIOS,开始BIOS自检。

2、通过自检后,bios找到硬盘上的主引导记录MBR.

3、MBR开始读取硬盘分区表DPT,找到活动分区,找到活动分区中的分区引导记录PBR,并且把控制权交给PBR.

4、PBR搜索活动区中的启动管理器bootmgr,找到后,PBR把控制权交给bootmgr(相当于xp里的ntldr文件)。

5、Bootmgr寻找活动分区中的boot文件夹中的BCD文件(启动配置数据,相当于xp里的boot.ini文件)。

6、找到BCD后,Bootmgr首先从BCD 中读取启动管理器bootmgr菜单的语言版本信息,然后再调用BOOTMGR与相应语言的BOOTMGR.EXE.MUI (在boot文件夹对应语言文件夹中)组成相应语言的启动菜单,之后在显示器上显示多操作系统选择画面。

7、如果存在多个操作系统而且系统设置的等待时间不是0,那么屏幕就显示多个操作系统的选择界面。如果没有多系统,那么直接进入windows 7系统,不显示选择界面。

8、选择windows 7系统后,bootmgr就会读取BCD里win7系统所在的盘里的windows\system32\winload.exe文件,并且将控制权交给winload.exe。

9、Winload.exe加载windows7内核、硬件、服务等,之后加载桌面等信息,从而启动整个windows 7系统。

上面几步可以概括一下就是:
BIOS--MBR--DPT--PBR--Bootmgr--BCD--系统选择界面---选择windows7------Winload.exe----内核加载等 --启动整个windows7系统

参考文献


1、阮一峰:计算机是如何启动的?
2、百度百科:BIOS
3、百度经验:Windows 7开机启动流程

OS——简易版操作系统引导过程介绍 操作系统的开机系统引导过程,简易版本,适合入门级学习。文末有更详细版的系统引导链接…… 阅读详情

相关推荐

哈工大操作系统引导过程实验详解

引导扇区位于磁盘的第一个扇区,大小为512字节。其中最后两个字节为有效签名0xAA55,这使计算机在启动时识别它。没有引导扇区或者签名不正确,计算机无法启动。引导扇区的任务包括:进行CPU和硬件环境的初步设置。读取并跳转到操作系统内核的其他部分,比如在软盘或硬盘上的内核映像。记录实验中遇到的问题和解决方案是实验报告的一个重要部分。问题应当具体描述,解决方案应当详细说明。此部分的目的是为了帮助他人理解问题的本质,以及如何有效地解决相似的问题。

weixin_33256096的博客 538

计算机操作系统的引导程序与引导过程原理

从计算机加电到进入图形桌面,中间跨越了固件、引导加载程序与内核初始化等多个阶段。引导的本质是:固件负责最初的硬件自检与设备初始化,引导加载程序在最小可用环境下,设置启动参数并完成必要的信息传递,随后将控制权交给内核;内核再初始化关键子系统,挂载根文件系统RootFS,启动第一个用户空间进程(/sbin/init或systemd,PID 1)。理解这些“接力棒”的传递关系,能把握不同平台(BIOS/MBR与UEFI/GPT)下的启动差异,也能在排障与考题分析中迅速定位问题所在。

分享人工智能领域原创文章 1347

深入解析STM32定时器中央对齐模式3的双中断机制

本文深入解析了STM32定时器中央对齐模式3的双中断机制。该模式在一个PWM周期内,会在计数器到达ARR(上溢)和0(下溢)时各触发一次更新中断,实现更精细的实时控制。文章详细阐述了其工作原理、配置方法,并指导如何在中断服务函数中通过DIR位区分中断来源,同时探讨了其在电机控制、数字电源等场景下的应用优势与CPU负载挑战。

weixin_29164185的博客 493

操作系统引导详细过程

操作系统引导详细过程 转自:https://blog.youkuaiyun.com/lijie45655/article/details/89366372 就直观而言,我们所见到计算机启动的过程是:按下电脑开机键,系统在黑色的屏幕下打印出一些英文语句、然后进入进度条状态,最后到登陆界面,这样操作系统的引导过程就算完成了。我们不知道的是计算机本身经历一系列复杂的引导过程,才最终出现在我们面前。假如系统引导不成功,挂了,哇,好尴尬

weixin_44966641的博客 1万+

实战避坑:在Ubuntu 22.04上配置NVIDIA GPU Direct RDMA时,必须搞清的P2P DMA与IOMMU那些事

本文深入探讨在Ubuntu 22.04上配置NVIDIA GPU Direct RDMA时P2P DMA与IOMMU的关键问题,解析PCIe架构中的地址转换、P2P DMA与标准DMA的区别,以及IOMMU对性能的影响。通过实战案例和调优建议,帮助用户避免常见配置陷阱,提升AI训练集群的数据传输效率。

weixin_33720078的博客 444

图自编码器(GAE)与变分图自编码器(VGAE)

在学习图自编码器之前先了解一下自编码器与变分自编码器。

小鱼的小窝 1万+

操作系统的引导过程

操作系统引导

Ravenich的博客 583

MATLAB2022b安装

图文并茂,手把手教会你怎么安装MATLAB2022b

1万+

查缺补漏----操作系统引导

操作系统----操作系统引导 1.物理格式化: 2.磁盘分区: 3.逻辑格式化: 4.安装操作系统: 5.开机:

weixin_69884785的博客 2651

用ESP32-S3+OV2640摄像头+ILI9488屏,DIY一个能联网的智能猫眼(附完整代码)

本文详细介绍了如何利用ESP32-S3微控制器搭配OV2640摄像头和ILI9488显示屏,DIY一个功能强大的智能猫眼系统。从硬件选型、电路设计到软件开发,提供了完整的解决方案和优化技巧,包括图像采集显示、WiFi远程访问及低功耗设计,适合智能家居爱好者动手实践。

weixin_30897233的博客 501

基于ABCDRez的激光谐振腔设计与热透镜效应仿真实践

本文详细介绍了如何利用ABCDRez代码包进行激光谐振腔设计与热透镜效应仿真。通过ABCD矩阵理论和高斯光束q参数,该工具能有效模拟热透镜动态变化对腔稳定性的影响,指导腔型优化与热补偿设计,是固体激光器预研与调试的高效辅助手段。

weixin_29093017的博客 290

操作系统的引导过程_引导过程 操作系统

操作系统的引导过程 启动过程 (Booting process) When our computer is switched on, It can be started by hardware such as a button press, or by software command, a computer's central processing unit (CPU) has no softw...

cumubi7552的博客 3214

【史上最全面esp32教程】网络篇和tcp/ip的使用

ESP32史上最全面wifi和tcp/ip连接及示例程序

m0_62599305的博客 9522

操作系统引导过程详解

计算机操作系统的引导过程包括四个关键阶段:1)电源启动时固件(BIOS/UEFI)执行硬件自检和初始化;2)引导加载程序(如GRUB)从存储设备加载操作系统内核;3)内核初始化硬件并启动首个用户进程;4)用户空间初始化系统服务和登录界面。整个过程从硬件检测到用户登录,通常在几秒至几十秒内完成,涉及固件、引导程序、内核和用户空间的多层次协作。

2202_75518890的博客 510

14、多标签分类与卷积神经网络在医学图像处理中的应用

本文探讨了多标签分类与卷积神经网络(CNN)在医学图像处理中的应用。文章详细介绍了多标签分类的概念和挑战,以及如何通过CNN进行高效、准确的分类任务。内容涵盖模型设计、损失函数选择、数据增强技术、类别权重调整等关键技术点,并结合实际案例,如白内障手术工具检测、视网膜血管分割等,展示了CNN在医学图像分析中的强大潜力。此外,还讨论了模型优化策略及面临的挑战与解决方案。

t8u9v0的博客 192

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Linux——操作系统引导过程

引导过程一、Linux操作系统引导过程1.1 引导过程讲解1.2 init进程(CentOS6)1.3 Systemd进程(CentOS7)1.4 Systemd单元1.5 运行级别对应的systemd1.5.1 查看target单元类型1.5.2 查看当前系统默认启动target1.5.3 设置默认启动target1.6 systemd服务管理二、排除启动类故障 一、Linux操作系统引导过程 1.1 引导过程讲解 linux引导过程一般包括以下几个阶段: 开机自检 、 MBR 引导 、GRUB 菜单 、

Kiro君的博客 1970

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

操作系统-操作系统引导(磁盘 操作系统引导过程)

开机时,CPU首先去主存执行ROM的引导程序,这时该引导程序会让CPU把磁盘的主引导记录读入内存,然后根据分区表执行磁盘引导程序,此时会找到C盘然后将C盘的引导记录PBR读入内存,然后会执行该引导记录,找到启动管理器,此时会从根目录找到启动管理器读入内存,CPU再执行启动管理器。会找到/Windows/Boot文件夹,然后执行里面的内容。根目录:双击打开C盘会看见的那些文件和文件夹。主引导记录不属于某个盘。

llovewuzhengzi的博客 819

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

linux操作系统引导过程

为其他机器提供服务的程序,服务程序启动后,会持续监听端口。使用systemctl 命令管理systemd服务。

m0_67497257的博客 2313

操作系统引导的过程与机制

引导可以理解为在计算机开机时,通过一系列步骤使操作系统运行起来的机制。它的主要任务是将操作系统从磁盘加载到内存(RAM)中,以便让用户能够使用计算机。引导过程涉及多个组件,包括主引导记录(MBR)、分区引导记录(PBR)和启动管理器等。

song0789的博客 983

Linux操作系统引导过程简述

Linux操作系统引导过程 引导过程总览:开机自检(BIOS)→MBR引导→GRUB菜单→加载内核(kernel)→init进程(初始化)

shyuu的博客 921

【操作系统】引导(Boot)电脑的奇妙开机过程

计算机的主存是由 RAM 和 ROM 两个部分所组成,我们平时所说的手机内存,电脑内存是多少时,其实所说的是 RAM,而除了RAM芯片之外,还有这样一个部分就是ROM,ROM芯片被集成到电脑主板上面,这个存储芯片里面存储的是 BIOS(基本输入输出系统的缩写)

Hello_shuo的博客 2155

Linux操作系统引导过程 了解怎样去引导的过程

Linux操作系统引导过程 引导过程总览 Linux操作系统的引导过程一般包括以下几个阶段:开机自检、MBR引导、GRUB菜单、加载Linux内核、init进程初始化 开机自检 服务器主机开机以后,将根据主板BIOS中的设置对CPU(Central Processing Unit,中央处理器)、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候回移交给本机硬盘。 MBR引导 当从本机硬盘中启动系统时,首先根据硬盘第一扇区中MBR(Master Boot Record,

weixin_47151751的博客 553

linux操作系统的引导过程,Linux操作系统引导的过程

1. 前言在本文中我们将回顾Linux操作系统中的引导过程。操作系统如何通过不同的启动状态阶段。本文是为那些刚刚接触Linux的读者编写的。了解Linux如何启动对于在系统出现故障时有效地进行故障排除非常重要。当系统打开,几分钟后,我们得到一个登录提示。我们有没有试着找出启动序列的所有阶段都发生了什么,以及系统启动过程中幕后发生了什么。2. 启动电源BIOS基本输入输出系统是一个预置在主板芯片组中...

weixin_30696571的博客 324
上一篇: Cmake使用心得
下一篇: Git自动换行符
JerkWisdom
博客等级 码龄14年 70粉丝 76原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值