基本信息
源码名称:Bochs项目源码分析与注释.pdf
源码大小:2.22M
文件格式:.pdf
开发语言:C/C++
更新时间:2021-01-25
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

开源虚拟机源码分析

Table of Content
Chapter 1 x86 体系结构与 PC 系统概要 .....................................1
1.1 x86 CPU 结构...............................................................................................................1
1.1.1 冯诺依曼架构和 CISC 指令集......................................................................1
1.1.2 CPU 结构........................................................................................................1
1.1.3 CPU 工作模式................................................................................................2
1.2 x86 体系结构概览........................................................................................................3
1.3 PC 系统.........................................................................................................................5
1.3.1 PC 系统概述...................................................................................................5
2.3.2 总线拓扑.........................................................................................................6
2.3.3 存储器与 I/O 编址 .........................................................................................6
2.3.4 关于系统的启动与引导.................................................................................8
Chapter 2 Bochs 工程概述....................................................... 11
2.1 开源项目 Bochs 介绍.................................................................................................11
2.2 版本 2.2.1 源码组织..................................................................................................11
2.3 工程类结构.................................................................................................................12
2.4 主体框架结构分析.....................................................................................................13
2.4.1 Bochs 工程中的重要类................................................................................13
(1) VM 控制台界面类 .............................................................................................13
(2) CPU 模拟............................................................................................................14
(3) Memory 模拟......................................................................................................14
(4).I/O device 模拟...................................................................................................15
2.4.2 入口函数 main()及 Win32 Gui 初始化........................................................15
2.5 Bochs 的工作方式......................................................................................................18
Chapter 3 CPU 类的源码分析 ...................................................20
3.1 CPU 类概述................................................................................................................20
3.1.1 CPU 逻辑结构框图......................................................................................20
3.1.2 类 BX_CPU_C 成员归纳.............................................................................20
3.2 类 BX_CPU_C 源码分析..........................................................................................21
3.2.1 CPU 特性声明..............................................................................................21
3.2.2 类 bxInstruction_c 成员分析........................................................................22
3.2.3 类 BX_CPU_C 源码注释.............................................................................22
3.3 通用寄存器.................................................................................................................29
3.3.1 数据结构与注释...........................................................................................29
3.3.2 通用寄存器归纳...........................................................................................30
3.4 段寄存器、全局寄存器 GDI 和 IDT ........................................................................31
3.4.1 数据结构与注释...........................................................................................31
3.4.2 段寄存器结构分析.......................................................................................33
3.5 CPU 状态字 EFLAGS................................................................................................35
3.5.1 数据结构与注释...........................................................................................35 
Bochs 项目源码分析与注释 MAY 2006
Understanding the source code of bochs
3.5.2 源码分析.......................................................................................................39
3.6 函数 CPU_LOOP()结构分析.....................................................................................40
3.6.1 CPU_LOOP()函数总体结构........................................................................40
3.6.2 函数 CPU_LOOP()源码注释.......................................................................41
3.7 函数 handleAsyncEvent()分析...................................................................................44
3.7.1 函数 handleAsyncEvent()知识准备.............................................................44
3.7.2 函数 handleAsyncEvent()结构分析.............................................................46
3.7.3 函数 handleAsyncEvent()源码注释.............................................................47
3.8 取指与执行.................................................................................................................50
3.8.1 Intel IA-32 指令结构....................................................................................50
3.8.2 类 bxInstruction_c 的数据成员....................................................................53
3.8.3 取指译码函数 FetchDecode()分析 ..............................................................55
3.8.4 模拟指令的执行...........................................................................................59
Chapter 4 CPU 中断处理任务管理............................................60
4.1 IA-32 体系结构中断知识准备 ..................................................................................60
4.1.1 中断和异常概述...........................................................................................60
4.1.2 异常和中断向量...........................................................................................60
4.1.3 中断和异常来源...........................................................................................61
4.1.4 与中断处理相关的数据结构.......................................................................62
4.1.5 异常和中断的处理方法...............................................................................64
4.2 Bochs 对中断的模拟..................................................................................................68
4.2.1 概述...............................................................................................................68
4.2.2 主要函数的源码注释...................................................................................69
4.3 虚拟机的任务管理.....................................................................................................82
4.3.1 IA-32 任务管理知识准备 ...........................................................................82
4.3.2 函数 task_switch()源码注释 ........................................................................89
Chapter 5 存储器源码分析........................................................104
5.1 IA-32 体系的存储器结构 ........................................................................................104
5.2 Bochs 对存储器的模拟............................................................................................105
5.3 存储器类 BX_MEM_C 部分源码分析...................................................................107
5.3.1 相关数据结构与类定义.............................................................................107
5.3.2 相关函数分析.............................................................................................108
5.3 模拟分页机制...........................................................................................................115
5.3.1 分页 (Paging)概述.....................................................................................115
5.3.2 页目录与页表.............................................................................................116
5.3.3 线形地址转换.............................................................................................117
5.3.4 实现分页机制的源码分析.........................................................................120
Chapter 6 系统板与外设模拟 ..................................................136
6.1 Bochs 系统板描述类 bx_pc_system_c ...................................................................136
6.1.1 类 bx_pc_system_c 功能概述 ....................................................................136
6.1.2 PC system 定时器管理...............................................................................136 
Bochs 项目源码分析与注释 MAY 2006
Understanding the source code of bochs
6.1.3 类 bx_pc_system_c 源码分析与注释 ........................................................138
6.2 设备集合类 bx_devices_c........................................................................................146
6.2.1 类 bx_devices_c 成员变量分析.................................................................146
6.2.2 类 bx_devices_c 成员函数分析与注释 .....................................................149
6.2.3 设备的初始化.............................................................................................150
6.2.4 设备复位.....................................................................................................154
6.2.5 设备访问(读写)的处理.........................................................................155
6.2.6 已注册的 I/O handlers 和 IRQ 清单 ..........................................................159
6.3 定时器(PIT)类分析.............................................................................................166
6.3.1 类 bx_pit_c 概述.........................................................................................166
6.3.2 类 bx_pit_c 源码注释.................................................................................166
6.3.3 关于类 bx_virt_timer_c ..............................................................................173
6.4 IDE 设备...................................................................................................................173
6.4.1 磁盘控制器 controller_t .............................................................................173
6.4.2 IDE 驱动器描述类 bx_hard_drive_c .........................................................174
6.4.3 读写磁盘映象.............................................................................................175
6.4.4 ATA/IDE 控制器(通道)和设备初始化.................................................176
6.4.5 ATA 控制器的寄存器读写 ........................................................................184
6.4.6 CD ROM 设备............................................................................................193
6.5 PCI 子系统 ...............................................................................................................203
6.5.1 PCI 概述 .....................................................................................................203
6.5.2 PCI 主桥描述类 bx_pci_c 分析.................................................................209
6.6 VGA 设备模拟.........................................................................................................215
6.6.1 模拟 VGA 的类..........................................................................................215
6.6.2 VGA 在 svga_timer 中的更新 ...................................................................216
Appendix ...................................................................................217
Appendix A.Bochs 配置文本说明 ....................................................................................217
Appendix B.ATA 和 ATAPI 编程介绍.............................................................................225
Appendix C.Sound Blaster 16 编程...................................................................................230
Appendix D.VESA 编程介绍............................................................................................240
Appendix E.Bochs 上运行的操作系统示范.....................................................................261