第1课

第1课 - 进阶操作系统

1. 什么是操作系统?

  (1)Windows、UNIX、Linux、Mac OS、Android、IOS ...

  (2)操作系统是直接运行于硬件之上的计算机程序 (操作系统的本质)

  (3)操作系统用于管理和控制计算机的硬件和软件资源 (从用户的角度)

  (4)操作系统为用户软件的开发提供必要的服务和接口  (从程序员的角度)

      ......

2. 现代计算机系统架构

  

3. BIOS - Base Input & Output System

  (1)BIOS 是基本输入/输出系统的缩写,它是计算机上电后第一个运行的程序

  (2)BIOS 首先检测硬件状态,检测通过后立即进行硬件初始化

  (3)BIOS 会在内存中建立中断向量表(提供硬件访问的方法)

  (4)BIOS 最后将控制权交由主引导程序执行

注意!!!

    BIOS 不是软件(Software),而是固件(Firmware)!固件是固化于硬件中的程序,在硬件出厂前已经烧写固定。软件是应用程序,程序员编写完成之后,由用户安装到操作系统之上。

 4. 系统启动流程(x86架构)

  

5. BIOS 的运行机制

  BIOS 加载主引导程序,主引导程序加载操作系统内核,一切都合情合理,那么 BIOS 是如何被运行起来的?

  (1)BIOS 存储于 ROM 中,地址映射为 0xF0000 - 0xFFFFF(实地址

  (2)BIOS 的入口地址为:0xFFFF0

  (3)硬件电路的特殊设计使得:

          开机后,CPU 从 0xFFFF0处开始执行

6. BIOS 最后的使命

  (1)按照用户设置的启动顺序扫描各个存储介质(光驱、软驱、U盘等)

    虚拟机里面如何进入 BIOS ?有两种方法:

    ① 根据开机界面提示,按 F2 进入 BIOS ,不过这个界面停留的时间太短了,不好操作。。。。

      

    ② 虚拟机的启动选项中直接提供了这个功能,这种方法很方便

      

    进入 BIOS 中,可以看到当前设置的启动顺序:

      

  (2)发现主引导区后,将主引导区中的主引导程序载入内存

  (3)主引导程序在内存中的入口地址为 0x7c00

  (4)将控制权交由主引导程序执行(jmp 0x7c00

思考:

    BIOS 如何在存储介质中寻找主引导区?如何判断引导区中有没有主引导程序?

主引导区(MBR:Master Boot Record)

  • 位置位于存储介质的最开始位置处大小为512字节
  • 特点:前 512 字节的最后 2 个有效字节为 0x55aa
  • 数据0x55aa 之前的数据被视为主引导程序

更详细的系统启动流程(x86架构)

    

 7. 小结

  (1)BIOS 是计算机上电后第一个运行的程序

  (2)BIOS 进行必要的初始化,并加载运行主引导程序

  (3)主引导程序位于存储介质的最开始 512 字节处

  (4)主引导程序负责后续初始化,并加载运行操作系统内核

注:本文整理于《狄泰12月提升计划》课程内容

狄泰QQ群:199546072

本人QQ号:502218614

原文地址:https://www.cnblogs.com/shiwenjie/p/8749877.html