实模式汇编语言linux解决方案。利益相关:fedora24,kernel 4.8.12。fedora官方源很垃圾,类似bochs,vbox等开发者必备的软件丫的少依赖,少库。tor,ss,xxnet
实模式汇编语言linux解决方案。利益相关:fedora24,kernel 4.8.12。fedora官方源很垃圾,类似bochs,vbox等开发者必备的软件丫的少依赖,少库。tor,ss,xxnet这种敏感软件版本太旧且bug多多。所以我们选择“源代码编译安装”的方式安装bochs:安装:
1.去http://nchc.dl.sourceforge.net/project/bochs/bochs/2.4.5/bochs-2.6.8.tar.gz 下载【bochs-2.6.8.tar.gz】
2.解压下载的源代码:sudo tar zxvf bochs-2.6.8.tar.gz
3.进入bochs-2.6.8目录,运行configure脚本:sudo ./configure -enable-debugger -enable-disasm
(-enable-debugger和 -enable-disasm 表示开启调试和反汇编功能)
4.第3步正确运行后,会产生一个Makefile文件,于是可以编译:sudo make
5.安装:sudo make install至此,bochs安装已经结束。
但是你也许不会成功。不要着急,下面是编译安装过程中可能出现的一些问题及解决方法:
【错误1】error: C++ preprocessor “/lib/cpp” fails sanity check
因为Bochs是用C++写的,所以这里要安装GNU g++编译器。
解决方法:sudo apt-get install build-essentialsudo apt-get install g++
【错误2】checking for default gui on this platform… x11ERROR: X windows gui was selected, but X windows libraries were not found.
解决方法:sudo apt-get install xorg-dev
【错误3】ERROR: pkg-config was not found, or unable to access the gtk+-2.0 package.
解决方法:sudo apt-get install libgtk2.0-dev
【错误4】
make的时候提示 /usr/bin/ld: gui/libgui.a(gtk_enh_dbg_osdep.o): undefinedreference to symbol pthread_create@@GLIBC_2.1 //lib/i386-Linux-gnu/libpthread.so.0: error adding symbols: DSO missingfrom command line collect2: error: ld r
解决方法:在makefile的“LIBS = ”这一行的最后面添加如下内容 :-lz -lrt -lm -lpthread于是变成了:LIBS = -lm -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft 2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontcon fig -lgobject-2.0 -lglib-2.0 -lfreetype -lz -lrt -lm -lpthread(报错方案鸣谢“arm的程序员敲着诗歌的梦”姐姐~转载一下你不会生气吧)
如下是配置文件和引导方案,同样鸣谢“arm的程序员敲着诗歌的梦”姐姐~
1.下载linux0.11的镜像文件下载地址是:http://www.oldlinux.org/Linux.old/images/bootroot-0.11
2.写一个简单的Bochs配置文件
#注意'#'后面为注内容
megs:128#模拟器的内存
romimage:file=/usr/local/share/bochs/BIOS-bochs-latest#这个是BIOS-bochs-latest的路径,自己慢慢找,不一定和我的一样
vgaromimage:file=/usr/local/share/bochs/VGABIOS-lgpl-latest
#这个是VGABIOS-lgpl-latest的路径,自己慢慢找
floppya:1_44=bootroot-0.11,status=inserted#这个是启动软盘,就是我们下载的那个,就在当前目录下,如果不在当前目录,需要指明路径
boot:floppy
#表示从软盘启动
log:bochsout.txt
#日志输出文件
#选项还有很多,想了解更多可以参照原始的.bochsrc(在bochs-2.4.5/目录下)
假设我们保存为bochs_cfg.txt
3.启动Bochs我们敲命令:bochs -f bochs_cfg.txt(-f 选项表示指定配置文件)
bochs的命令使用方式与gdb“大致相同”,做一点微小的补充说明如下:
n:下一步s:进入函数下一步b/break:设置断点(bochs里面设置断点一般是后面跟内存地址表示“运行到xx地址停下来”而不是跟行号)c:continue,继续运行until运行不动(遇见断点等停下来)的意思。