进阶操作系统

简介: 进阶操作系统

什么是操作系统

  • 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)
  • 主引导程序是启动系统内核的桥梁,由汇编语言写成
目录
相关文章
|
存储 Linux C语言
95.【操作系统-第一章】(三)
95.【操作系统-第一章】
88 0
|
存储 调度
95.【操作系统-第一章】(一)
95.【操作系统-第一章】
39 0
|
存储 程序员 Linux
95.【操作系统-第一章】(四)
95.【操作系统-第一章】
85 0
|
3月前
|
存储 算法 调度
深入理解操作系统:从原理到实践
【7月更文挑战第24天】本文将深入探讨操作系统的基本原理和实践应用,包括进程管理、内存管理、文件系统和设备管理等方面。通过理论与实践相结合的方式,帮助读者更好地理解和掌握操作系统的相关知识。
|
26天前
|
存储 安全 Linux
探索操作系统:从原理到实践
【9月更文挑战第14天】本文深入探讨了操作系统的核心概念,通过分析其设计原则和功能,揭示了操作系统如何管理计算机硬件资源、提供用户接口并确保系统安全。文章不仅阐述了操作系统的基本原理,还通过实际代码示例展示了如何在操作系统上进行编程,旨在帮助读者更好地理解并应用操作系统知识。
33 1
|
存储 安全 前端开发
【操作系统】第一章:操作系统概念
【操作系统】第一章:操作系统概念
130 0
|
Ubuntu 编译器 C语言
操作系统实战45讲:HelloOS运行笔记
操作系统实战45讲:HelloOS运行笔记
295 0
操作系统实战45讲:HelloOS运行笔记
|
人机交互
操作系统笔记
操作系统笔记
81 0
|
存储 安全 数据安全/隐私保护
操作系统第四章_04 文件保护
操作系统第四章_04 文件保护
103 0
操作系统第四章_04 文件保护