第五章 虚拟机的安装和使用

embedded/2024/9/25 8:22:39/

计算机的启动过程

  • 计算机的加电和复位
    对于INTEL 8086来说,复位将使代码段寄存器(CS)的内容为0xFFFF,其他所有寄存器的内容都为0x0000,也就是说复位后,计算机运行物理地址0xFFFF0处的指令

  • ROM-BIOS
    8086系统的内存空间分配
    ROM-BIOS:0xF0000~0xFFFFF
    DRAM:0x00000~0x9FFFF
    中间部分分给了其他外围设备

  • 硬盘及其工作原理
    硬盘的内部结构

    • 磁头(Head):编号从0开始,第1个盘片,上面的磁头编号为0,下面的磁头编号为1;第2个盘片,上面的磁头编号为2,下面的磁头编号为3,依次类推
    • 磁道(Track):编号从盘面最边缘的那条磁道开始,向着圆心的方向,从0开始编号
    • 柱面((Cylinder):每个盘面上的同一条磁道形成的一个虚拟的圆柱,硬盘的访问是按柱面进行的。
    • 扇区(Sector):扇区的编号是从1开始的,每条磁道能够划分为几个扇区,取决于磁盘的制造者,但通常为63个。每个扇区以扇区头开始,然后是512字节的数据区,扇区头包含本扇区的磁道号、磁头号和扇区号,用来定位。现代的硬盘还会在扇区头部包括一个指示扇区是否健康的标志,以及用来替换该扇区的扇区地址。用于替换扇区的,是一些保留和隐藏的磁道。硬盘的读写是以扇区为单位的
    • CHS模式:采用磁头、磁道和扇区这种模式来访问硬盘
    • LBA(Logical Block Address):LBA模式不考虑扇区的物理位置(磁头号、磁道号),而是把它们全部组织起来统一编号。在这种编址方式下,原先的物理扇区被组织成逻辑扇区,且都有唯一的逻辑扇区号
      逻辑扇区对应的物理扇区
LBA = C*磁头总数*每道扇区数+H*每道扇区数+(S-1)

C:磁道 H:磁头 S:扇区号

  • 从哪里启动
    • 主引导扇区:硬盘的第一个扇区(0面0道1扇区)
      ROM-BIOS读取主引导扇区的内容并将它加载到内存地址0x0000:0x7c00,然后用jmp指令跳转到那里接着执行

创建和使用虚拟机

往虚拟硬盘的第一个扇区写入数据并执行虚拟机


http://www.ppmy.cn/embedded/15911.html

相关文章

《MATLAB科研绘图与学术图表绘制从入门到精通》示例:绘制伊甸火山3D曲面图

伊甸火山( Mount Eden)是新西兰奥克兰市的一座火山,也是一处受欢迎的旅游景点。数据来自R内置volcano数据,笔者导出为volcano.csv文件,这个数据集用于演示3D曲面图和地形建模的目的。 购书地址:https://ite…

【Flutter】One or more plugins require a higher Android SDK version.

问题描述 项目里多个组件需要更高版本的Android SDK One or more plugins require a higher Android SDK version.解决方案: 报错提示requires Android SDK version 34 按提示修改android项目app里build.gradle的compileSdkVersion 为34 android {compileSdkVe…

#PHP,windows下的ImageMagick安装过程#

场景:在使用laravel生成二维码的过程中提示 需要安装 imagick 扩展。 目前是在window环境下,使用phpStudy,php8.0.2 ,安装的扩展包是 simplesoftwareio/simple-qrcode 解决办法分两步,第一安装 PHP imagick扩展, 第二…

探索 Python 的动态类型系统:变量引用、不可变性及高效内存管理与垃圾回收机制的深入分析

文章目录 1. 动态类型及其内存管理解析1.1 变量与对象的引用关系1.2 对象的不可变性和内存地址的变化 2. 垃圾回收与内存优化策略2.1 动态内存分配的基础2.2 Python 的垃圾回收 Python作为一种流行的高级编程语言,以其代码的易读性和简洁性著称。尤其是它的动态类型…

鸿蒙小案例-动态歌词

之前有个播放器要显示歌词,但没找到鸿蒙中现成的组件,只能摸索着自己写一个 先看下效果 鸿蒙动态歌词展示 原理其实很简单 首先布局什么的就不多说了,歌词显示这块肯定是要全部显示的,主要操作难点在于怎么根据播放时长动态跳转到…

前端vue+xgVIdeo集成rstp流播放

注意&#xff1a;rstp流需要对应的西瓜视频插件 项目&#xff1a; petition-manager 代码概览&#xff1a; 1. video-player 子 组件 <template><div id"video-player" class"video-player"></div> </template> <script&g…

第十四届蓝桥杯ABD题

A、阶乘求和&#xff1a; 【问题描述】 令 S 1! 2! 3! ... 202320232023! &#xff0c;求 S 的末尾 9 位数字。 提示&#xff1a;答案首位不为 0 。 【答案提交】 这是一道结果填空的题&#xff0c;你只需要算出结果后提交即可。本题的结果为一 个整数&#xff0c;在…

Golang | Leetcode Golang题解之第44题通配符匹配

题目&#xff1a; 题解&#xff1a; func isMatch(s string, p string) bool {for len(s) > 0 && len(p) > 0 && p[len(p)-1] ! * {if charMatch(s[len(s)-1], p[len(p)-1]) {s s[:len(s)-1]p p[:len(p)-1]} else {return false}}if len(p) 0 {retur…