bochs-2.4.1下载地址:
http://sourceforge.net/projects/bochs/files/bochs/2.4.1/
安装bochs-2.4.1前要安装 libgtk2.0-dev和xorg-dev
sudo apt-get install libgtk2.0-dev xorg-dev
解压bochs-2.4.1之后,把/bochs-2.4.1/cpu/proc_ctrl.cc中650行到683行的内容代码成以下代码:
650行开始
#if BX_SUPPORT_VMX
VMexit_CR3_Write(i, val_32);
if (BX_CPU_THIS_PTR cr0.get_PG() && BX_CPU_THIS_PTR cr4.get_PAE() &&
!long_mode()) {
if (! CheckPDPTR(val_32)) {
BX_ERROR(("SetCR3(): PDPTR check failed !"));
exception(BX_GP_EXCEPTION, 0, 0);
}
}
SetCR3(val_32);
BX_INSTR_TLB_CNTRL(BX_CPU_ID, BX_INSTR_MOV_CR3, val_32);
break;
#endif
#if BX_CPU_LEVEL > 3
case 4: // CR4
#if BX_SUPPORT_VMX
val_32 = VMexit_CR4_Write(i, val_32);
if (BX_CPU_THIS_PTR cr0.get_PG() && (val_32 & (1<<5)) != 0 /* PAE */
&& !long_mode()) {
if (! CheckPDPTR(BX_CPU_THIS_PTR cr3)) {
BX_ERROR(("SetCR4(): PDPTR check failed !"));
exception(BX_GP_EXCEPTION, 0, 0);
}
}
// Protected mode: #GP(0) if attempt to write a 1 to
// any reserved bit of CR4
if (! SetCR4(val_32))
exception(BX_GP_EXCEPTION, 0, 0);
break;
#endif
#endif
default:
BX_ERROR(("MOV_CdRd: #UD - control register %d index out of range",
i->nnn()));
exception(BX_UD_EXCEPTION, 0, 0);
}
}
683结束
输入以下命令:
./configure --enable-debugger --enable-disasm
sudo make
sudo make install
分享到:
相关推荐
Ubuntu 18.04环境下Linux 0.11 内核编译及在bochs 2.6.9中的调试运行
Ubuntu14.04环境,最新版bochs编译安装及启用GUI调试器步骤,包括步骤截图,安装包,可用的配置文件,测试镜像及NASM源码
可以在Ubuntu上编译并运行的Linux-0.11源码包。并用bochs可以引导并运行。如果不想下载,可以去我的主页查看相应文章 http://hi.baidu.com/ju136
测试环境为ubuntu12.04 参考于渊的《ORANGES》源代码。实现保护模式下ucos从x86裸机启动。 为了调试方便,ucosII只保留了任务调度和时钟中断。 不同与网上常见的在DOS下用bc45(borland Borland c++)编译的ucos...
linux0.11 GCC5 可编译版本,本人在ubuntukylin15.10 32位系统下使用 gcc-5.2成功编译通过,并在bochs2.6上运行正常。
1. bochs安装 2. 编写MBR主引导程序 3. 进入保护模式 4. 启动分页 5. 中断 6. 内存管理 压缩包内容: 1. 已完整安装好的bochs程序 2. 各实验源代码 3. 自写的run.sh文件,配合makefile文件实现快速编译 配合博客...
Linux发行版:建议使用debian和ubuntu 虚拟机:qemu(recommend)或bochs 一些工具:cscope,ctags,gcc-4.3(或更高版本),vim,bash,gdb,dd,qemu,xorg-dev,xserver-xorg-dev ... $ apt-get install qemu ...
具体来说,以Windows XP SP3(或Windows 7 SP1)为主平台,在Windows中安装虚拟机软件VMware,并在该虚拟机中安装Ubuntu Linux,还在此Linux中安装GCC编译器(用于编译C语言程序)和NASM汇编程序,源程序可以使用...
Ubuntu 18.04环境下Linux 0.11 内核编译及在bochs 2.6.9中的调试运行
在网络上下载到linux-0.11的源代码后,首先是不断地除错,最终使其能在ubuntu12.04上编译通过,并能用bochs仿真。后来发现bochs仿真bootsect.s不方便,就改用qemu仿真了。
完整源码和Makefile文件,可以直接编译运行。Linux下和Windows下都可以编译后运行。VHD虚拟硬盘写入工具,使用LBA方式的、专用于固定大小的VHD。同时可以读取VHD的格式信息,方便后续配置Bochs配置文件。
书中使用的是ubuntu的环境,以下是在mac上实验工具。 mac工具 # 编译工具 brew install bochs brew install i386-elf-gcc brew install i386-elf-binutils # gcc 替换为 x86_64-elf-gcc 并加上 -m32 参数 # 例如 # ...