首页 > 其他分享 >BIOS初识

BIOS初识

时间:2023-02-27 12:23:58浏览次数:34  
标签:操作系统 loader 硬件 BIOS 初识 开机 MBR

就像人的肉体和思想的关系一样,计算机硬件是软件的躯体,软件是硬件的灵魂。
没有硬件,软件无从谈起;没有软件,硬件就是一堆垃圾,毫无用处。

众所周知,操作系统是系统软件,对硬件的操控和各种应用软件的运行都要依靠操作系统。
操作系统控制硬件资源并提供核心功能(软件运行的平台),它可以识别硬盘上的文件系统并进一步读取和运行上面的软件,因此我们才能达成各种任务。
可以说,操作系统赋予了硬件生命,让硬件“活”了起来;操作系统为软件提供了生命必需品,让软件得以存活。
让硬件有生命、让软件活下去之后,操作系统还充当桥梁让它们得以沟通。

但是,按下开机按钮时操作系统并没有启动,此刻是谁在负责和硬件沟通呢?
而操作系统本身也是一种软件,那又是谁来识别这个系统软件并且运行它的?
或者换个问法?进入OS之后,OS是硬件和软件的桥梁,那进入OS之前,谁是硬件和OS的桥梁呢?
这就要靠计算机的开机程序。
目前的电脑,在开机程序上,主要有早期的BIOS和现在的UEFI两种。

BIOS(Basic Input Output System)

BIOS,基本输入输出系统,就是写入到主板上的一个程序。也是开机时计算机主动执行的第一个程序。

CMOS(Complementary Metal Oxide Semiconductor),互补金属氧化物半导体。
它是指制造大规模集成电路芯片用的一种技术或用这种技术制造出来的芯片,是电脑主板上的一块可读写的RAM芯片。
因为可读写的特性,所以在电脑主板上用来保存BIOS设置的各项硬件参数,这个芯片仅仅是用来存放数据的。

BIOS启动后,首先会分析计算机里有哪些存储设备。以硬盘为例,BIOS会根据设置(CMOS)取得能够开机的硬盘,然后到该硬盘里面去读取第一个扇区的MBR位置。
这里存放的446B的MBR信息保存着最基本的开机管理程序。到此,BIOS工作完成,接下来就交给MBR内的开机管理程序。

这个开机管理程序的目的是载入操作系统内核。
开机管理程序是操作系统在安装时提供的,所以它可以识别硬盘的文件系统,因此就能够读取文件,然后工作完成,接下来就交给内核,实际上就是操作系统,去运行。

大致流程就是:
1、BIOS:开机主动执行的固件,能识别第一个可开机的设备
2、MBR:第一个可开机设备的第一个扇区内的MBR信息块,内含开机管理程序
3、开机管理程序(boot loader):一个可读取操作系统核心文件来执行的软件
4、OS内核:操作系统的功能

总结起来,BIOS干两件事——找硬盘,找MBR;boot loader干两件事——识别文件系统,载入内核。
从上面也可以看出来,BIOS和MBR是硬件本身会支持的功能,而boot loader是操作系统安装在MBR上的一个软件。

整个MBR信息块也只有446B,所以boot loader也非常小,它主要有以下功能:
1、提供菜单:选择不同的开机项目
2、载入OS内核:直接指向可开机的程序区段来开始操作系统
3、转交其他loader:将开机管理功能转交其他loader负责

另一种表述:

X86 架构机器在上电之后,BIOS 系统首先进行基础的硬件初始化,将机器初始化到 一个已知的状态,接着 BIOS 将 PC 指针跳转到特定位置以便引导内核的启动,最终 将执行权从 BIOS 移交给内核。以上便是一个最简单的内核引导过程。

上面第三点可以看出,计算机可以存放不止一个boot loader,安装多个操作系统时就会有多个boot loader。
一块硬盘只能有一个MBR,但是boot loader不仅可以保存到MBR中,还可以保存到任何其他分区的开机扇区(boot sector)。
正是因为这个功能,多系统多重开机才得以实现。
比如,第一个分区安装Windows,第二个分区安装Linux,此时的开机菜单中,M1直接进入Windows,M2则进入到Linux系统的boot loader。
loader只认自己系统的核心文件和其他的loader。

有个说法是,如果要安装双系统,要先安装Windows,再安装Linux。
因为Windows在安装时它的loader会直接覆盖掉MBR以及自己所在分区的开机扇区,没有选择的机会。
而安装Linux则可以选择安装到MBR或者是安装到其他分区的开机扇区。

标签:操作系统,loader,硬件,BIOS,初识,开机,MBR
From: https://www.cnblogs.com/polin/p/17159216.html

相关文章

  • UEFI初识
    概念UEFI(UnifiedExtensibleFirmwareInterface),统一可扩展固件接口,是一种个人电脑系统规格,用来定义操作系统与系统固件之间的软件界面,作为BIOS的替代方案。可扩展固件接......
  • webgl 系列 —— 初识 WebGL
    初识WebGL什么是WebGLwebgl在支持canvas的浏览器中进行2d或3d渲染。webgl程序除了有Html、javascript,还需要加入着色器语言(GLSLES)。WebGL使得网页在支持......
  • 1.【go-kit教程】go-kit初识
    go-kit简介go-kit本身不是一个框架,而是一套微服务工具集,是框架的底层,可以用go-kit做适应自己平台的框架。它的设计目标是帮助开发者构建健壮、可维护、可测试的分布式......
  • 【学无止境】初识 ChatGPT
    最近ChatGPT很火,那么今天就来试一下。ChatGPI注册首先,用梯子“合理上网”。墙内ChatGPT不提供服务。其次,租一个可以接受国外短信的号码,常用的网站是这个:https://sms-......
  • jmeter运行环境及界面初识
    1、安装jdk2、下载jmeter并启动jmeter.bat3、工具本身日志,java代码日志  4、添加线程组:线程数、循环次数5、取样器:不同协议不同取样器http、soap、jdbc、websocket......
  • Pytest初识
    一、单元测试框架简介1.什么是单元测试单元测试是指在软件开发过程中,针对软件的最小单位(函数,方法)进行正确性的检查测试。2.常用单元测试框架2.1Java类别junit......
  • <<运维监控系统实战笔记>> 小记随笔 —— Prometheus 初识
    Prometheus简介Prometheusserver包含时序库、告警引擎、数据展示三大块,体系中最核心的组件Exporters采集数据的客户端,负载采集数据存在内存中,提供http接口,让......
  • JAVAWEB-NOTE01-初识mysql
    目录JAVAWEB介绍数据库相关概念数据库数据库管理系统SQL常见的关系型数据库管理系统MySQL数据库安装配置登录、退出卸载数据模型JAVAWEB介绍数据库相关概念数据库数......
  • asp.net core webapi初识
    1.建立webapi项目  2.把启用SSL取消勾选(取消https)  3.选择项目-右键-发布,进行发布信息设置,选择文件夹发布   4.打开IIS管理器,新建网站,物理路径选择刚刚......
  • 初识单片机
     单片机:英文全称Single-ChipMicrocomputer,表示是一个微型计算器,有时也称为MCU(MicrocontrollerUnit)。是一种把中央处理器CPU、存储器(RAM\ROM\FLASH等)、输入输......