博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
about asm in linux
阅读量:6827 次
发布时间:2019-06-26

本文共 2222 字,大约阅读时间需要 7 分钟。

hot3.png

实模式汇编语言linux解决方案。 利益相关:fedora24,kernel 4.8.12。 fedora官方源很垃圾,类似bochs,vbox等开发者必备的软件丫的少依赖,少库。tor,ss,xxnet这种敏感软件版本太旧且bug多多。 所以我们选择“源代码编译安装”的方式安装bochs: 安装:

1.去 下载【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-essential sudo apt-get install g++

【错误2】 checking for default gui on this platform… x11 ERROR: 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): undefined reference to symbol pthread_create@@GLIBC_2.1 // lib/i386-Linux-gnu/libpthread.so.0: error adding symbols: DSO missing from 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的镜像文件 下载地址是:

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运行不动(遇见断点等停下来)的意思。

转载于:https://my.oschina.net/u/2546684/blog/804815

你可能感兴趣的文章
FP语言Lisp的特点
查看>>
考研路程
查看>>
边集数组
查看>>
代码段
查看>>
oracle 计算两个时间之间的月份差,相差几个星期,相差多少天
查看>>
Vue-- vue-preview(图片查看器)的使用步骤:
查看>>
Vue生命周期
查看>>
Jenkins Slave 通过JNLP 的方式 访问Master IP 总是127.0.0.1
查看>>
C#中UnixTime和DateTime的转换(转载)
查看>>
【转载】特征工程中的「归一化」或「标准化」有什么作用?
查看>>
Ubuntu terminator 多窗口终端的快捷键
查看>>
Add Binary leetcode
查看>>
关于pycharm中缩进、粘贴复制等文本编辑功能部分失效的解决办法
查看>>
[20190524]浅谈模糊查询.txt
查看>>
Swift 构造与析构
查看>>
Java基础学习总结--Java对象的序列化和反序列化
查看>>
关于application/x-www-form-urlencoded等字符编码的解释说明
查看>>
svn项目冲突时显示无法加载项目的解决方法
查看>>
node论坛练手
查看>>
objective 2.0 内存管理机制 笔记
查看>>