1、熊海泉熊海泉2023-1-301主要内容主要内容 PC系统及系统及X86模拟器模拟器 模拟主控模块模拟主控模块 系统板的模拟系统板的模拟 内存模块的模拟内存模块的模拟 CPU的模拟的模拟 I/O模块的模拟模块的模拟 Bochs模拟器初始化启动过程模拟器初始化启动过程 基于基于Bochs的实验环境的实验环境 下一步工作思路下一步工作思路 参考资料参考资料Bochs X86 PC模拟器原理与启动流程分析模拟器原理与启动流程分析熊海泉熊海泉2023-1-302典型典型PC系统构成系统构成PC系统及系统及X86模拟器模拟器熊海泉熊海泉2023-1-303常见常见X86模拟器模拟器 比较典型的比较典型的
2、X86模拟器模拟器 Bochs PTLsim COTson Qemu PC系统及系统及X86模拟器模拟器熊海泉熊海泉Bochs模拟器模拟器 Bochs是一个是一个X86 PC的模拟器,它可以模拟几乎所有的模拟器,它可以模拟几乎所有类型的类型的X86 CPU,包括,包括16位,位,32位和位和64位位(X86_64),内存以及内存以及I/O设备,在其上可以运行设备,在其上可以运行Linux,Windows等操作系统。等操作系统。其中模拟的其中模拟的X86_64的工作方式包括以下两类:的工作方式包括以下两类:IA-32模式模式:包括实模式,保护模式和虚拟包括实模式,保护模式和虚拟8086模式三模式
3、三个子模式个子模式 IA-32e模式模式:包括长模式和兼容模式包括长模式和兼容模式4PC系统及系统及X86模拟器模拟器熊海泉熊海泉Bochs模拟器基本构成模拟器基本构成5PC系统及系统及X86模拟器模拟器熊海泉熊海泉模拟主控模块模拟主控模块为用户提供交互的系统为用户提供交互的系统配置信息更改以及控配置信息更改以及控制制Bochs模拟器的运模拟器的运行行根据用户的配置信息在根据用户的配置信息在模拟主控对象中建立模拟主控对象中建立配置信息参数树并初配置信息参数树并初始化,为始化,为Bochs系统系统硬件的初始化提供输硬件的初始化提供输入入启动启动Bochs模拟器并进模拟器并进入客户操作系统的引导入
4、客户操作系统的引导将宿主机的外部事件如,将宿主机的外部事件如,键盘键击,鼠标移动键盘键击,鼠标移动等通过信号量机制从等通过信号量机制从而触发而触发Bochs模拟器模拟器相应设备进行响应相应设备进行响应(理理解不一定正确解不一定正确)6模拟主控模块模拟主控模块熊海泉熊海泉2023-1-307系统板主要功能系统板主要功能为系统外设,系统板等为系统外设,系统板等模块提供工作时钟,从模块提供工作时钟,从而驱动各功能模块的正而驱动各功能模块的正常工作常工作负责为外设向负责为外设向CPUCPU模块模块触发中断控制信号,总触发中断控制信号,总线请求信号等功能线请求信号等功能负责提供负责提供CPUCPU系统复
5、系统复位,外设复位以及位,外设复位以及A20A20地址线开启与关闭,地址线开启与关闭,I/OI/O端口读写的相关功端口读写的相关功能能系统板的模拟系统板的模拟熊海泉熊海泉2023-1-308系统板的实现模型系统板的实现模型64个定时器资源个定时器资源定时器实现的控制字定时器实现的控制字段,其中段,其中currCountdown为为0时将触发时将触发CountdownEvent时间,从而执行某时间,从而执行某一个定时器函数,一个定时器函数,这个函数通常是这个函数通常是I/O设备注册的回设备注册的回调函数调函数系统板定时器实系统板定时器实现的激励来源现的激励来源I/O设备初始化设备初始化时注册的定
6、时时注册的定时器回调函数器回调函数实现一些系统控实现一些系统控制功能的字段,制功能的字段,如如HRQ代表示代表示否向否向CPU发出发出总线请求等总线请求等系统板的模拟系统板的模拟熊海泉熊海泉系统板与系统板与CPU及及I/O模块的相互关系模块的相互关系set_HRQ(用于用于DMA向系统发出总线请求向系统发出总线请求)set_INTR(调用调用CPU的的set_INTR)MemoryMappingChanged(TLB刷新)刷新)invlpg(清除页表)(清除页表)Reset(CPU复位复位)在在CPU每次指令执行循环每次指令执行循环cpu_loop中通过调用调用中通过调用调用系统板的系统板的t
7、ick来实现系统板上各个定时器来实现系统板上各个定时器系统复位系统复位Reset或或CPU的中断响应的中断响应IAC向系统板注册工作驱动的定时器及中断向系统板注册工作驱动的定时器及中断9系统板的模拟系统板的模拟熊海泉熊海泉2023-1-3010系统板初始化系统板初始化此时可以建立的概念就是,此时可以建立的概念就是,系统板的定时器资源已系统板的定时器资源已经生成,可以供经生成,可以供I/O设设备注册使用,同时备注册使用,同时I/O设备通过系统板向设备通过系统板向CPU发送系统控制信号的功发送系统控制信号的功能已经准备就绪能已经准备就绪系统板的模拟系统板的模拟熊海泉熊海泉内存模块的基本功能内存模块
8、的基本功能根据系统配置,一次性根据系统配置,一次性的向宿主机分配一片的向宿主机分配一片存储空间存储空间(应该不是应该不是物理内存物理内存),建立一,建立一套与实际机器类似的套与实际机器类似的内存空间映像内存空间映像在在X86中,有些中,有些I/O设备可能以内存映设备可能以内存映射的方式存取而不射的方式存取而不是通过传统的是通过传统的in或或out指令实现,如指令实现,如果有这需求,相应果有这需求,相应的的I/O设备必须向设备必须向内存模块注册内存模块注册I/O读写程序,这样当读写程序,这样当使用使用readPhysicalPage等接口时会判断等接口时会判断是否是是否是I/O设备空设备空间而进
9、行不同的存间而进行不同的存取操作取操作内存的一个主要功能就内存的一个主要功能就是向是向CPU提供存取指提供存取指令和数据,以便令和数据,以便CPU能够不停的取指,执能够不停的取指,执行及回写,实现各种行及回写,实现各种指令的功能指令的功能在在Bochs硬件初始化时硬件初始化时向向Bochs模拟的内存模拟的内存空间的空间的ROM地址空间地址空间加载可运行的加载可运行的BIOS二二进制程序,以为后序进制程序,以为后序Bochs复位运行作准复位运行作准备备11内存模块的模拟内存模块的模拟熊海泉熊海泉内存模块的实现模型内存模块的实现模型2023-1-30122,记载目前系,记载目前系统内存使用情统内存
10、使用情况的一些字段,况的一些字段,用于实现内存用于实现内存的分配管理的分配管理3,实现,实现I/O内存映射的注内存映射的注册管理服务,其中包含了册管理服务,其中包含了地址信息,当系统通过地址信息,当系统通过readPhyicalPagewritePhysicalPage等存取函数时会判断是否是等存取函数时会判断是否是一个一个I/O内存映射,如果内存映射,如果是则执行是则执行I/O内存映射处内存映射处理函数理函数1,初始化时,根,初始化时,根据据.bochsrc配置文件中的配置文件中的(memory guest=512 host=256)从宿主机中预从宿主机中预先分配好先分配好Bochs模拟器所
11、需模拟器所需的内存,并用的内存,并用vector,rom等保存相应的起始地址等保存相应的起始地址4,内存模块为,内存模块为CPU提供了存提供了存取指令数据以取指令数据以及为及为I/O提供提供了内存映射服了内存映射服务务内存模块的模拟内存模块的模拟熊海泉熊海泉内存模块与内存模块与CPU及及I/O交互关系交互关系 为为CPU模块提供的服务模块提供的服务 数据和指令的存取数据和指令的存取 MMU地址变换地址变换 为为I/O提供的服务提供的服务 I/O内存映射读写处理注册内存映射读写处理注册管理管理 实现实现I/O内存映射的存取内存映射的存取13内存模块的模拟内存模块的模拟熊海泉熊海泉内存模块的初始化
12、内存模块的初始化2023-1-3014为为Bochs模拟器准备好了内存空间,模拟器准备好了内存空间,可以为可以为CPU提供存取指令数据服提供存取指令数据服务,同时也为需要实现务,同时也为需要实现I/O内存内存映射的设备准备好了注册使用功映射的设备准备好了注册使用功能能内存模块的模拟内存模块的模拟熊海泉熊海泉CPU模块的主要功能模块的主要功能根据根据X86指令的逻辑功指令的逻辑功能分别实现各类能分别实现各类X86指令,大部分指令按指令,大部分指令按其功能分别用不同的其功能分别用不同的源代码文件实现源代码文件实现通过通过prefetch,fetchDecode以及以及具体指令处理函数及具体指令处理
13、函数及异常处理等实现异常处理等实现Bochs指令执行循环指令执行循环逻辑逻辑为为CPU指令的执行提供数据指令的执行提供数据和指令地址的变换,安全和指令地址的变换,安全保护等功能,最终实现对保护等功能,最终实现对内存模块的存取,具体主内存模块的存取,具体主要通过要通过translate_linear,access_linear,dtranslate_linear,itranslate_linear主要包括系统复位,系主要包括系统复位,系统初始化等功能统初始化等功能实现实现X86系统的各类系统系统的各类系统寄存器和通用寄存器寄存器和通用寄存器以及其状态的变换逻以及其状态的变换逻辑辑在系统中设置一个
14、全局在系统中设置一个全局标志信息表示异步中标志信息表示异步中断异常是否有发生,断异常是否有发生,相应的异常请发生只相应的异常请发生只要将其进行相应设置要将其进行相应设置即可即可15CPU的模拟的模拟熊海泉熊海泉X86架构架构CPU的模拟的模拟-实现逻辑实现逻辑结构结构CPU的核心逻辑就是指的核心逻辑就是指令执行循环令执行循环16CPU的模拟的模拟熊海泉熊海泉CPU指令循环指令循环检测系统是否有异常、中断等检测系统是否有异常、中断等事件发生,这种事件的来源事件发生,这种事件的来源有有APIC,INIT,SMI,INTR,reset,bx_stop_simulation,系统板系统板DMA总线请求
15、以及某总线请求以及某些产生异常的指令些产生异常的指令根据逻辑地址获取线性地址,再由根据逻辑地址获取线性地址,再由线性地址变换到物理地址,这样线性地址变换到物理地址,这样就准备好了就准备好了CPU存取一条指令存取一条指令IP地址指针,可以由地址指针,可以由CPU通过内存通过内存模块获取指令了模块获取指令了根据上一步获取的地址开根据上一步获取的地址开始从内存模块中获取指始从内存模块中获取指令并译码填充在待处理令并译码填充在待处理的指令变量的指令变量i中,供下中,供下一步调用一步调用对译码好的指令进行调研对译码好的指令进行调研执行,完成指令的逻辑执行,完成指令的逻辑功能功能驱动系统板中的定时器,驱动
16、系统板中的定时器,从而为驱动从而为驱动Bochs其余其余设备等模块工作。设备等模块工作。17CPU的模拟的模拟熊海泉熊海泉CPU模块的初始化模块的初始化2023-1-3018CPU会在会在bx_init_hardware中中由系统板复位触发由系统板复位触发CPU的的复位,从而使得复位,从而使得CPU中各中各寄存器回到寄存器回到Intel手册手册上关于处理器初始化的上关于处理器初始化的初值,之后系统将会从初值,之后系统将会从0XFFFFFFF0处开始执处开始执行行熊海泉熊海泉I/O模块的主要功能模块的主要功能负责负责Bochs模拟设备实例的创模拟设备实例的创建与初始化,到底要创建哪建与初始化,到
17、底要创建哪些设备是根据模拟主控对象些设备是根据模拟主控对象初始化时收集的系统配置信初始化时收集的系统配置信息决定息决定在在X86架构中有专门的架构中有专门的I/O指令,指令,负责对各类设备寄存器的操作,负责对各类设备寄存器的操作,此功能就是提供此功能就是提供I/O地址空间管地址空间管理的,为不同的端口根据设备需理的,为不同的端口根据设备需要提供不同的读写函数要提供不同的读写函数负责外部设备资源的分配负责外部设备资源的分配管理,供各外设使用管理,供各外设使用为为CPU I/O指令提供的指令提供的具体实现具体实现各类具体外设的功能的逻各类具体外设的功能的逻辑模拟,一般包括初始辑模拟,一般包括初始化
18、,复位,以及设备专化,复位,以及设备专用功能的模拟用功能的模拟熊海泉熊海泉Bochs I/O模块的实现模型模块的实现模型作为与其它作为与其它Bochs模块模块如如CPU,系统板的接,系统板的接口,通过它可以找到口,通过它可以找到所有所有Bochs的设备,的设备,此外也在其中集中实此外也在其中集中实现了现了I/O地址空间的地址空间的管理管理具体设备的模拟实具体设备的模拟实现,根据各设备现,根据各设备功能,为每一个功能,为每一个设备单独构建一设备单独构建一个个C+类来实现类来实现20I/O模块的模拟模块的模拟熊海泉熊海泉Bochs模拟器设备基本结构模拟器设备基本结构向设备集注册向设备集注册I/O地
19、址地址空间、中断以及向系空间、中断以及向系统板注册定时器资源统板注册定时器资源将设备复位至到其初始将设备复位至到其初始化的状态化的状态为为CPU执行执行I/O指令时指令时提供的具体的设备读提供的具体的设备读写函数写函数设备的具体功设备的具体功能函数服务接能函数服务接口口21I/O模块的模拟模块的模拟熊海泉熊海泉Bochs I/O设备集设备集2023-1-3022I/O模块的模拟模块的模拟I/O地址空间资源,共地址空间资源,共65536,分读写各一,分读写各一个向量数组,每个元个向量数组,每个元素指向相应端口号的素指向相应端口号的读写处理函数,各种读写处理函数,各种外设在初始化时会在外设在初始化
20、时会在其中注册它们的端口其中注册它们的端口资源资源I/O端口资源的处理数端口资源的处理数据结构,每个外设对据结构,每个外设对应的读写处理不一样,应的读写处理不一样,各自具体实现各自具体实现中断资源注册,各外设中断资源注册,各外设如有需求也会在其中如有需求也会在其中申请注册相应的中断申请注册相应的中断资源资源根据系统配置创建的设根据系统配置创建的设备实例,在设备集中备实例,在设备集中存储有这些实例的指存储有这些实例的指针,以便针,以便Bochs其它其它模块可以存取模块可以存取某些典型设备在没有初某些典型设备在没有初始化时,缺省的设备始化时,缺省的设备实例实例提供集中管理各具体设提供集中管理各具体
21、设备的功能,此外还管备的功能,此外还管理理I/O地址空间的功地址空间的功能能熊海泉熊海泉Bochs I/O设备、设备集与系设备、设备集与系统板的逻辑关系统板的逻辑关系23I/O模块的模拟模块的模拟熊海泉熊海泉Bochs I/O设备、设备集与系设备、设备集与系统板的逻辑关系统板的逻辑关系1,通过调用设备集通过调用设备集init初始初始化方法创建系统配置时的设化方法创建系统配置时的设备并保存各设备的指针,以备并保存各设备的指针,以使得使得Bochs可以通过设备集可以通过设备集访问到所有访问到所有I/O设备设备initinitinit24I/O模块的模拟模块的模拟熊海泉熊海泉Bochs I/O设备、
22、设备集与系设备、设备集与系统板的逻辑关系统板的逻辑关系2,设备集设备集init初初始化方法在创建始化方法在创建各具体设备之后,各具体设备之后,再依次调用各具再依次调用各具体设备的体设备的init方法来向设备集方法来向设备集注册注册I/O端口,端口,中断请求以使得中断请求以使得将来将来CPU存取到存取到对应的端口时能对应的端口时能够找到具体设备够找到具体设备读写的处理函数,读写的处理函数,此外还可能系统此外还可能系统板注册定时器资板注册定时器资源,作为设备工源,作为设备工作的触发机制,作的触发机制,为设备正常工作为设备正常工作做好准备做好准备25I/O模块的模拟模块的模拟熊海泉熊海泉Bochs
23、I/O设备初始化后状态设备初始化后状态 各类在系统启动时配置的设备都已经创建好了,并由各各类在系统启动时配置的设备都已经创建好了,并由各类具体设备的类具体设备的init初始化函数根据其各自的功能需求注初始化函数根据其各自的功能需求注册好了册好了I/O地址空间及定时器,中断等资源,从而各个地址空间及定时器,中断等资源,从而各个设备都具有驱动其工作的时钟。设备都具有驱动其工作的时钟。26I/O模块的模拟模块的模拟熊海泉熊海泉Bochs模拟器初始化启动过程模拟器初始化启动过程-整体概括整体概括 Bochs的整体流程逻辑上可以分为以下几个阶段的整体流程逻辑上可以分为以下几个阶段 主控模拟对象主控模拟对
24、象SIM的创建,根据系统配置信息生成的创建,根据系统配置信息生成Bochs模拟器系统运行时的硬件配置参数树形结构并初始化模拟器系统运行时的硬件配置参数树形结构并初始化 Bochs X86 PC模拟器模拟器PC系统的生成初始化系统的生成初始化(等效于实现等效于实现一台可以工作的一台可以工作的PC机机)Bochs X86 PC模拟器系统的开机与操作系统的启动模拟器系统的开机与操作系统的启动27Bochs模拟器初始化启动过程模拟器初始化启动过程熊海泉熊海泉Bochs X86 PC模拟器系统启模拟器系统启动总体流程动总体流程注册注册BochsBochs模拟主控模拟主控对象的配置接口回调对象的配置接口回
25、调函数函数ci_callbackci_callback至此为止,已经完成了至此为止,已经完成了系统配置信息的提取系统配置信息的提取并将其存储在模拟主并将其存储在模拟主控对象控对象SIM中,供中,供Bochs模拟器模拟器PC系统系统的构建的构建28Bochs模拟器初始化启动过程模拟器初始化启动过程熊海泉熊海泉Bochs模拟主控对象的初始化模拟主控对象的初始化2023-1-3029创建模拟主控对象,为创建模拟主控对象,为构建系统配置参数树构建系统配置参数树做好准备做好准备Bochs模拟器初始化启动过程模拟器初始化启动过程熊海泉熊海泉Bochs系统配置初始化系统配置初始化2023-1-3030建立建
26、立bochsrcbochsrc系统配置系统配置文件相对应的参数树形文件相对应的参数树形数据结构数据结构命令行参数选项处理命令行参数选项处理作,根据情况作不同的作,根据情况作不同的处理,如显示帮助等或处理,如显示帮助等或读取系统配置文件读取系统配置文件根据实际配置重新设置根据实际配置重新设置模拟主控对象在上面建模拟主控对象在上面建立的参数树,作为后立的参数树,作为后续硬件的初始化的输入续硬件的初始化的输入Bochs模拟器初始化启动过程模拟器初始化启动过程熊海泉熊海泉由由bx_init_optionsbx_init_options建立的系建立的系统配置参数树统配置参数树31Bochs模拟器初始化启
27、动过程模拟器初始化启动过程熊海泉熊海泉Bochs系统的运行准备系统的运行准备32Bochs模拟器初始化启动过程模拟器初始化启动过程熊海泉熊海泉Bochs系统的运行准备系统的运行准备2023-1-3033Bochs模拟器初始化启动过程模拟器初始化启动过程熊海泉熊海泉Bochs系统硬件初始化系统硬件初始化34Bochs模拟器初始化启动过程模拟器初始化启动过程熊海泉熊海泉Bochs系统硬件初始化系统硬件初始化2023-1-3035系统板初始化,完成之系统板初始化,完成之后可以为设备等需要后可以为设备等需要的定时器注册做好了的定时器注册做好了准备准备根据系统配置文件信息根据系统配置文件信息初始化内存模
28、块,之初始化内存模块,之后就准备好了后就准备好了Bochs所需的内存资源及读所需的内存资源及读写服务接口写服务接口根据系统配置信息将根据系统配置信息将将将BIOS及其它可选及其它可选的的ROM二进制程序二进制程序预先烧写进入预先烧写进入Bochs的内存系统的内存系统中,整个烧写结构中,整个烧写结构比照实际机器进行比照实际机器进行CPU初始化完成指初始化完成指令系统译码表,令系统译码表,各类内部寄存器各类内部寄存器等的初始化,此等的初始化,此时时CPU相当于处相当于处于没有时钟脉冲于没有时钟脉冲的等待状态的等待状态根据系统配置信息根据系统配置信息完成各类完成各类I/OI/O设备设备的创建并根据各
29、的创建并根据各设备的具体要求设备的具体要求注册注册I/OI/O地址空间地址空间地址、中断以及地址、中断以及定时器资源定时器资源注册模拟主控对象注册模拟主控对象的信号处理函数,的信号处理函数,以便相应来自用以便相应来自用户界面的操作事户界面的操作事件,如用户可以件,如用户可以中途关闭中途关闭Bochs模拟器等操作模拟器等操作系统板复位系统板复位(CPU及外设及外设复位复位)(类似于按类似于按实际机器的复位实际机器的复位按钮,按钮,),Bochs系统开始系统开始进入真正的指令进入真正的指令解释执行模拟过解释执行模拟过程,从程,从0 xFFFFFFF开开始执行始执行Bochs模拟器初始化启动过程模拟
30、器初始化启动过程熊海泉熊海泉Bochs系统系统CPU指令运行循环指令运行循环2023-1-3036Bochs模拟器初始化启动过程模拟器初始化启动过程熊海泉熊海泉2023-1-3037基于基于Bochs的实验环境的实验环境 环境搭建及实验方法环境搭建及实验方法 Bochs模拟器的编译模拟器的编译 基于基于Bochs模拟器系统运行环境的搭建模拟器系统运行环境的搭建 添加新指令集的方法添加新指令集的方法(今后有时间或需要时分析研究今后有时间或需要时分析研究)增加新设备的方法步骤增加新设备的方法步骤(今后有时间或需要时分析研究今后有时间或需要时分析研究)基于基于Bochs的实验环境的实验环境熊海泉熊海
31、泉2023-1-3038Bochs模拟器的编译模拟器的编译从从http:/ 2.4.5.tar.gz并解压并解压tar zxvf bochs-2.4.5.tar.gz进入进入Bochs源代码目录执行如下命令显示可以配置的源代码目录执行如下命令显示可以配置的所有选项所有选项cd bochs-2.4.5./configure-help如果要支持如果要支持64位架构,则可以使用如下配置命令位架构,则可以使用如下配置命令./configure enable-x86-64编译编译make安装安装make install基于基于Bochs的实验环境的实验环境熊海泉熊海泉2023-1-3039Bochs模拟
32、器运行环境模拟器运行环境-基本基本构成构成根据实际需要进行根据实际需要进行配置,确定系统的配置,确定系统的硬件配置情况硬件配置情况有多种方式来制作,其中用于实有多种方式来制作,其中用于实验的方法:验的方法:利用利用LinuxLinux开发主机由开发主机由LinuxLinux源代码编译内核、源代码编译内核、BusyboxBusybox以及以及unetbootinunetbootin工具生成工具生成系统自带系统自带基于基于Bochs的实验环境的实验环境熊海泉熊海泉2023-1-3040Bochs模拟器运行环境模拟器运行环境-配置配置信息信息 基本功能基本功能类似于自己去电脑市场配一台计算机,例如类
33、似于自己去电脑市场配一台计算机,例如配几个配几个CPU,几个硬盘,几个光驱,软盘,串口,并口,几个硬盘,几个光驱,软盘,串口,并口,声卡,网卡等声卡,网卡等 具体可以参考具体可以参考bochs源代码目录下的源代码目录下的.bochsrc模板文模板文件件 重要的几个配置重要的几个配置 内存信息的配置内存信息的配置 软硬盘,光盘配置及启动顺序软硬盘,光盘配置及启动顺序 基于基于Bochs的实验环境的实验环境熊海泉熊海泉2023-1-3041Bochs模拟器运行环境模拟器运行环境-操作操作系统启动镜像获取与制作系统启动镜像获取与制作 网络下载预先制作好的操作系统镜像网络下载预先制作好的操作系统镜像(
34、简单验证简单验证Bochs系统已正确安装,可使用系统已正确安装,可使用)利用光盘或其利用光盘或其ISO镜像在镜像在Bochs下安装,可以生成一个下安装,可以生成一个由由Bochs启动的磁盘操作系统镜像启动的磁盘操作系统镜像(速度太慢,在使用速度太慢,在使用Fedora时好像存在问题,具体可能还是因为时好像存在问题,具体可能还是因为Bochs模模拟本身的问题拟本身的问题)通过通过Linux内核源代码来实现精简可启动的操作系统镜内核源代码来实现精简可启动的操作系统镜像像(拟寻求可以通过拟寻求可以通过Linux内核源代码生成可以由内核源代码生成可以由Bochs模拟器运行的精简内核供实验之用模拟器运行
35、的精简内核供实验之用)基于基于Bochs的实验环境的实验环境熊海泉熊海泉2023-1-3042Bochs模拟器下精简模拟器下精简Linux内核内核可启动的软盘或硬盘镜像制作可启动的软盘或硬盘镜像制作基于基于Bochs的实验环境的实验环境熊海泉熊海泉2023-1-3043下一步工作基本思路下一步工作基本思路 基本思想基本思想 Bochs代表一个可调整修改的代表一个可调整修改的X86处理器系统处理器系统(或开发的或开发的处理器处理器)64位可启动的位可启动的Linux内核内核(用于验证用于验证X86处理器的操作系处理器的操作系统统)分析分析Intel X86 64位位Linux系统中与操作模式相关
36、代系统中与操作模式相关代码并结合码并结合Bochs模拟器来调研模拟器来调研64位模式与操作系统底层位模式与操作系统底层的相互关系,尝试得出一些有参考价值的结论。的相互关系,尝试得出一些有参考价值的结论。启动初始化代码部分启动初始化代码部分(特别关注其模式切换相关的部分特别关注其模式切换相关的部分)进一步熟悉进一步熟悉Bochs的实验环境并能根据实际需要修改的实验环境并能根据实际需要修改Bochs源代码,完成相关的调研实验源代码,完成相关的调研实验 熟悉熟悉Linux内核调试技巧内核调试技巧下一步工作基本思路下一步工作基本思路熊海泉熊海泉实验方案示意图实验方案示意图2023-1-3044基于预先的目标以基于预先的目标以及及Bochs的理解,的理解,确定相应的验证方确定相应的验证方案并进行修改案并进行修改分析研究分析研究64位位Linux版本中与版本中与操作模式相关的操作模式相关的部分,结合部分,结合Bochs模拟器的模拟器的实现,调研分析实现,调研分析相应的实验方案相应的实验方案下一步工作基本思路下一步工作基本思路
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。