免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 雨丝风片
打印 上一主题 下一主题

大家在研究BSD内核的时候都有些什么方法? [复制链接]

论坛徽章:
0
21 [报告]
发表于 2006-02-23 12:33 |只看该作者
原帖由 mingyanguo 于 2006-2-23 12:25 发表

问题已经基本解决,现在用qemu+gdb单步跟踪基本上没什么问题了。
http://bbs.chinaunix.net/viewthr ... page%3D1#pid4777257


已经看到了,,佩服佩服!

能够在单机上进行内核跟踪当然最好了,不过我以前没有接触过qemu,能不能简单解释一下它的
基本工作原理?

论坛徽章:
0
22 [报告]
发表于 2006-02-23 12:47 |只看该作者
以后要常来程序版了, 现在也想学点程序方面的东西了!

论坛徽章:
0
23 [报告]
发表于 2006-02-23 12:58 |只看该作者
原帖由 rainren 于 2006-2-23 12:47 发表
以后要常来程序版了, 现在也想学点程序方面的东西了!


老大要多多支持程序版的成长啊!现在刚刚成立,需要做的基础工作太多了,
希望大家能在这里一起学习、探讨!

论坛徽章:
0
24 [报告]
发表于 2006-02-23 13:00 |只看该作者
原帖由 雨丝风片 于 2006-2-23 12:33 发表


已经看到了,,佩服佩服!

能够在单机上进行内核跟踪当然最好了,不过我以前没有接触过qemu,能不能简单解释一下它的
基本工作原理?

关于qemu怎么模拟指令执行,我不怎么了解(有篇论文,可是没付钱看不到),不过大体思想是虚拟的CPU以自己的方式通过gdbstub与GDB交流,这种方式对虚拟机中的OS是不可见的。虚拟CPU会在执行指令的中间停下来接收GDB的命令并执行。

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
25 [报告]
发表于 2006-02-23 13:04 |只看该作者
原帖由 mingyanguo 于 2006-2-23 13:00 发表

关于qemu怎么模拟指令执行,我不怎么了解(有篇论文,可是没付钱看不到),不过大体思想是虚拟的CPU以自己的方式通过gdbstub与GDB交流,这种方式对虚拟机中的OS是不可见的。虚拟CPU会在执行指令的中间停下来接收 ...


qemu和bochs,那一个比较适合调试?很多资料介绍bochs,兄弟能大致说说qemu的优势吗?

论坛徽章:
0
26 [报告]
发表于 2006-02-23 13:07 |只看该作者
原帖由 gvim 于 2006-2-23 13:04 发表


qemu和bochs,那一个比较适合调试?很多资料介绍bochs,兄弟能大致说说qemu的优势吗?

bochs模拟的太真实了(好像有些体系结构方向的论文都用他的模拟结果),所以很慢,我试着用他运行FreeBSD,结果慢的不可忍受。不知道bochs能不能结合GDB一起用。

论坛徽章:
0
27 [报告]
发表于 2006-02-23 13:12 |只看该作者
原帖由 mingyanguo 于 2006-2-23 13:00 发表

关于qemu怎么模拟指令执行,我不怎么了解(有篇论文,可是没付钱看不到),不过大体思想是虚拟的CPU以自己的方式通过gdbstub与GDB交流,这种方式对虚拟机中的OS是不可见的。虚拟CPU会在执行指令的中间停下来接收 ...



就是用“实”的GDB调“虚”的内核了?这个虚内核能在多大程度上模拟真正运行的内核?
比如能否接收来自网络的报文?

论坛徽章:
0
28 [报告]
发表于 2006-02-23 13:33 |只看该作者
原帖由 雨丝风片 于 2006-2-23 13:12 发表



就是用“实”的GDB调“虚”的内核了?这个虚内核能在多大程度上模拟真正运行的内核?
比如能否接收来自网络的报文?

虚拟机中的OS不需要任何修改,OS认为自己运行在真实的CPU上,这个CPU有时会停下来,但是OS感觉不到。

qemu有虚拟的网卡,能接收网络的报文。只是我不太清楚,在修改了之后,单步执行的时候还能不能接收到数据(因为单步时已经不发生中断了)。像TCP协议是与时间相关的,超时会重发等,那么如果单步协议栈的函数会使这些函数的执行时间长很多倍,我猜想可能会影响这些协议。

我调试的不太多,而且,调试的时候很少单步执行,一般是设好断点,看看调用栈,看看一些内存的内容就算了。

对了,具体步骤我以前在版上发过文,blog上也有。

[ 本帖最后由 mingyanguo 于 2006-2-23 13:34 编辑 ]

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
29 [报告]
发表于 2006-02-23 13:33 |只看该作者
原帖由 mingyanguo 于 2006-2-23 13:07 发表

bochs模拟的太真实了(好像有些体系结构方向的论文都用他的模拟结果),所以很慢,我试着用他运行FreeBSD,结果慢的不可忍受。不知道bochs能不能结合GDB一起用。


太真实了?怎解?bochs用的"实"cpu吗?这方面的话,vmware做的不错,只可惜没有提供调试接口。
或者 兄弟的意思是否是bochs的模拟是完全的模拟,也就是外设,处理器,内存等,都是模拟的?

bochs做调试器也是很不错的,我看过不少资料介绍用bochs调试。

论坛徽章:
0
30 [报告]
发表于 2006-02-23 13:42 |只看该作者
原帖由 gvim 于 2006-2-23 13:33 发表


太真实了?怎解?bochs用的"实"cpu吗?这方面的话,vmware做的不错,只可惜没有提供调试接口。
或者 兄弟的意思是否是bochs的模拟是完全的模拟,也就是外设,处理器,内存等,都是模拟的?

boc ...

打个比方说,我看水木上体系结构研究的人说,包括有些硬件交流而引起的时间延迟bochs都模拟出来了。似乎是对x86的指令解释执行的。具体原理与代码没看过。不过他比qemu确实慢不少。
做调试确实不错,不过不知道能不能做源代码级的调试。
而且就是太慢了,会忍受不了。

[ 本帖最后由 mingyanguo 于 2006-2-23 13:46 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP