zoukankan      html  css  js  c++  java
  • 第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

  • 相关阅读:
    考研系列一-线性表类(顺序存储)
    因特网协议分层及它们的服务模型
    矩阵归零
    字符编码(续)---Unicode与ANSI字符串转换以及分辨字符编码形式
    奇妙的位运算
    一道面试题Lintcode196-Find the Missing Number
    错误处理
    px 和 em 的区别
    简述同步和异步的区别
    简述一下 src 与 href 的区别
  • 原文地址:https://www.cnblogs.com/shiwenjie/p/8749877.html
Copyright © 2011-2022 走看看