美文网首页
计算机启动过程

计算机启动过程

作者: ffusheng | 来源:发表于2017-05-28 18:18 被阅读0次
BIOS

以intel8086为例,8086有20根地址线。一共可以访问到0x00000 - 0xFFFFF的地址空间,刚好1MB范围,但并未全部用于访问DRAM。其中大部分用于访问DRAM,一小部分用于访问只读存储器ROM(那里固化了开机时需要执行的指令。)和外围的板卡。如图所示:

1.jpg

8086加电或者复位时,CS = 0XFFFF,IP = 0X0000,所以第一条指令位于物理地址0xFFFF0正好位于ROM中,一般是一个跳转指令,跳转到ROM低端区域。ROM内容包括很多部分,主要进行硬件的诊断,检测和初始化。当它完成自己工作后,最后要做的就是从辅存中读取指令数据(内核自举代码),然后转到那里执行。

主引导扇区

接上文,BIOS要从辅存中加载指令数据,然后再跳转到那里加载的地址,执行指令。这里辅存以硬盘为例,硬盘的第一个扇区称之为主引导扇区,BIOS将把该扇区的内容加载到0X0000:0X7C00,即物理地址:0x07C00。然后判断该扇区是否有效,有效的主引导扇区最后的2字节内容是0x550xAA。如果有效就会使用jmp指令跳转至0x07C00。主引导扇区里面应该是内核自举的代码指令。然后内核接管一切,完成后续操作。

这里也有点意思,想像一下,我们的程序执行一定需要操作系统(内核)吗?不一定,假设主引导扇区内容不是内核,而是一段小程序。只要最后2字节数据是0x55和0xAA,那么这段程序依然能运行。所以程序使能够脱离操作系统(内核)而执行的。这也从另一个侧面说明了为什么操作系统会被发明出来。

显卡和显存

顺带说下显示的东西。

  • 图形模式
    显卡有自己的存储即显存,显存里面放的二进制数据,比如第1个字节对应屏幕左上角连续的8个像素,第二个字节对应后续的8个像素,以此类推。(1个二进制位对应像素的亮暗)。-
  • 文本模式
    与之对应的还有中方式是:显存里第一字节存放字符编码(ACISS),第二字节存放编码控制字符显示样式。以此类推。

为了显示数据,CPU需要访问显存,但显存位于显卡上,访问显存则需要和显卡设备打交道,这样总会影响速度和效率。于是后来就决定把显存也映射至处理器可以直接访问的地址空间。传统上,0xB8000 ~ 0xBFFFF时留给显卡的。这样就可以直接用mov指令直接写数据。当我们把字符写在这一块时,屏幕上就会显示出我们想要的内容。

相关文章

  • Linux 启动过程

    Linux 启动过程 一、计算机的启动过程 1、两种启动方式 1.1、传统启动方式(Legacy+mbr) 指传统...

  • Linux 内核初始化

    《Linux 内核分析》 MOOC 课程实验 分析 Linux 内核的启动过程 1.计算机的启动过程 我们日常使用...

  • 一篇文章看明白 Android 系统启动时都干了什么

    Android - 系统启动过程 计算机是如何启动的? 首先熟悉一些概念,计算机的硬件包括:CPU,内存,硬盘,显...

  • 计算机启动过程

    转载 首先让我们来了解一些基本概念。第一个是大家非常熟悉的BIOS(基本输入输出系统),BIOS是直接与硬件打交道...

  • 计算机启动过程

    计算机的启动过程是一个复杂的过程,我们根据计算机的控制权在哪一部分手上,可以把这一过程划分为以下四个阶段: BIO...

  • 计算机启动过程

    BIOS 以intel8086为例,8086有20根地址线。一共可以访问到0x00000 - 0xFFFFF的地址...

  • 计算机启动过程

    CPU 中有一块双亲板(母版),双亲板中有个称为 BIOS(标准输入输出系统 Basic Input Output...

  • 【Linux学习笔记】Linux开机启动过程

    序言 计算机启动Linux系统的过程分为BIOS程序运行过程、引导加载程序运行过程、Linux系统运行过程。 BI...

  • 电脑入门必懂的常识(4)

    XP操作系统启动的详细过程 简单的说就是这样: 从按下计算机开关启动计算机,到登入到桌面完成启动,一共经过了以下几...

  • 计算机是如何启动的

    本文参考了这里. 计算机是如何启动的? 作者: 阮一峰 从打开电源到开始操作,计算机的启动是一个非常复杂的过程。 ...

网友评论

      本文标题:计算机启动过程

      本文链接:https://www.haomeiwen.com/subject/mgehfxtx.html