进阶操作系统

简介: 进阶操作系统

什么是操作系统

  • Windows、UNIX、Linux、MacOS、Android、iOS ...
  • 操作系统是直接运行于硬件之上的计算机程序
  • 操作系统用于管理和控制计算机的硬件与软件资源
  • 操作系统为用户软件的开发提供必要的服务和接口
  • ...

现代计算机系统架构

  • 现代计算机系统由下向上分别是硬件层、BIOS、操作系统、应用软件

什么是BIOS

  • BIOS全称: Base Input Output System
  • BIOS是计算机上电后第一个运行的程序
  • BIOS首先检测硬件状态,检测通过后立即进行硬件初始化
  • BIOS会在内存中建立中断向量表(提供硬件访问的方法)
  • BIOS最后将控制权交由主引导程序
  • BIOS不是软件(Software),而是固件(Firmware),固件是固化于硬件中的程序,在硬件出厂前已经烧写固定
  • BIOS为操作系统提供了控制硬件设备的基本功能

系统启动流程

  • 系统启动流程图(X86架构)

BIOS是如何运行起来的

  • BIOS作为固件,是计算机上电后第一个运行的程序,那么谁加载运行了BIOS?
  • BIOS程序不是被软件调用运行起来的,而是硬件电路的特殊设计使得上电后,CPU从 0xFFFF0 处开始执行
  • 放在 0xFFFF0 处的只是一条跳转指令,跳到系统BIOS中真正的启动代码处
  • BIOS存储于ROM中,地址映射为 0xF0000 - 0xFFFFF(实地址)
  • BIOS的入口地址恰恰就是:0xFFFF0

运行时程序的代码段(.text)要从ROM中全部拷贝带RAM中才能执行吗

  • 代码不一定要在RAM中才能执行,ROM也是可以执行代码的,CPU从一个存储器件中读取指令并执行,主要看的是该存储器能否实现随机读取
  • 代码可以不用拷贝到RAM中运行,也可拷贝到RAM中运行,这些不是技术问题,而是要看这段代码有没有加载到RAM中运行的必要,比如数据段、堆栈等频繁变化的需要放到RAM中
  • RAM比ROM中执行速度快得多!

BIOS最后的使命

  • 按照用户设置扫描各个存储介质(光驱,软驱,硬盘,U盘等)
  • 发现主引导区后,将主引导区中的引导程序载入内存
  • 主引导程序在内存中的入口地址为:0x7C00
  • 将控制权交由主引导程序执行(jmp 0x7C00)

主引导区&主引导程序

  • BIOS 不可能一个人抗下所有(比如让 BIOS 运行 QQ 是不可能的),因此,BIOS 只完成一些简单的工作就要找机会把接力棒交出去,交给谁呢?下一个接力棒选手就是 MBR 。
  • 主引导区(MBR:Master Boot Record)
  • 为了方便 BIOS 找到 MBR,那么 MBR 必须在固定的位置等待,因此
  • 主引导区位置:位于存储介质的最开始位置,大小为512字节,位于整个硬盘最开始的山区
  • 主引导区特点:前512字节的最后2个字节为0x55AA
  • 主引导区中前510字节(除去0x55AA)的数据被视为主引导程序
  • BIOS在发现主引导程序后,就会将主引导程序加载到内存0x7C00处,
  • BIOS加载完主引导程序后将跳转到主引导程序入口处继续执行(jmp 0x7C00)
  • 接下来将由主引导程序负责后续初始化,并加载运行操作系统内核
  • 主引导程序最大为512字节(包含0x55AA)
  • 主引导程序是启动系统内核的桥梁,由汇编语言写成
目录
相关文章
H8
|
物联网 数据安全/隐私保护 智能硬件
女朋友问: 你知道蓝牙耳机的原理吗?
蓝牙是一种无线通讯技术标准,用来让固定与移动设备,在短距离间交换资料,以形成个人局域网(PAN)。其使用短波特高频(UHF)无线电波,经由2.4至2.485GHz的ISM频段来进行通信。1994年由电信商(Ericsson)发展出这个技术。它最初的设计,是希望创建一个RS-232数据线的无线通信替代版本。
H8
671 17
el-popover 点击取消按钮,弹窗仍然无法关闭
el-popover 点击取消按钮,弹窗仍然无法关闭
|
9月前
|
人工智能 安全 搜索推荐
新手指南:人工智能poe ai 怎么用?国内使用poe记住这个方法就够了!
由于国内网络限制,许多用户在尝试访问Poe AI时面临障碍。幸运的是,现在国内用户也能轻松畅玩Poe AI,告别繁琐的设置,直接开启AI创作之旅!🎉
733 13
|
Linux 网络安全
树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)
树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)
树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)
|
6月前
|
算法 数据可视化 BI
基于免疫算法的最优物流仓储点选址方案MATLAB仿真
本程序基于免疫算法实现物流仓储点选址优化,并通过MATLAB 2022A仿真展示结果。核心代码包括收敛曲线绘制、最优派送路线规划及可视化。算法模拟生物免疫系统,通过多样性生成、亲和力评价、选择、克隆、变异和抑制机制,高效搜索最优解。解决了物流仓储点选址这一复杂多目标优化问题,显著提升物流效率与服务质量。附完整无水印运行结果图示。
159 20
基于免疫算法的最优物流仓储点选址方案MATLAB仿真
|
机器学习/深度学习 人工智能 自然语言处理
【大模型】在使用大语言模型的过程中,我们需要考虑到哪些道德问题?
【5月更文挑战第5天】【大模型】在使用大语言模型的过程中,我们需要考虑到哪些道德问题?
【大模型】在使用大语言模型的过程中,我们需要考虑到哪些道德问题?
|
关系型数据库 MySQL BI
关系型数据库选择合适的数据库管理系统
【5月更文挑战第4天】关系型数据库选择合适的数据库管理系统
556 4
关系型数据库选择合适的数据库管理系统
|
C语言
C语言结构体赋值的四种方式
本文总结了C语言结构体的四种赋值方式,并通过示例代码和编译运行结果展示了每种方式的特点和效果。
1178 6
|
Android开发
Android 配置蓝牙遥控器键值
本文详细介绍了Android系统中配置蓝牙遥控器键值的步骤,包括查看设备号、配置键位映射文件(kl文件)、部署kl文件以及调试过程,确保蓝牙遥控器的按键能正确映射到Android系统对应的按键功能。
1816 1
|
存储 IDE 开发工具
硬盘驱动程序设计
硬盘驱动程序设计
213 0