免费注册 查看新帖 |

Chinaunix

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

发布一款前段时间写的虚拟机(LightMachine),可以运行DOS [复制链接]

论坛徽章:
0
31 [报告]
发表于 2010-08-23 22:26 |只看该作者
能得到大家的鼓励我很开心

大家有什么相关问题都可以问。。

我深知一个人在黑暗中摸索建造虚拟机的艰辛。。。我会尽量帮助大家,避免大家走弯路~~

论坛徽章:
0
32 [报告]
发表于 2010-08-23 22:44 |只看该作者
问题:
在LightMachine中试用了下edit和qbasic,发现一个问题,使用“ALT-F、X”快捷键退出edit/qbasic时,LightMachine也退出了,原以为是LightMachine的bug造成了程序崩溃。后来发现是快捷键冲突引起的,LightMachine是一个Windows GUI程序,它的菜单中包含菜单项“文件(F)、退出(X)",正好和edit/qbasic程序相同。

建议:
最简单的方法是修改下LightMachine退出功能的快捷键,使用一个不太常用的快捷键。

论坛徽章:
0
33 [报告]
发表于 2010-08-23 22:47 |只看该作者
本帖最后由 eggqq007 于 2011-04-14 17:24 编辑

嘿嘿。。不好意思哈。。。
其实我也想改。。。但是win32就用了几天。。不太熟,不太懂改快捷键~~
就麻烦兄弟你了~~
以后会抓紧这方面的学习的

论坛徽章:
0
34 [报告]
发表于 2010-08-23 22:51 |只看该作者
我觉得调试是虚拟机开发中比较困难、很耗时间的工作,不知道楼主你是怎样调试虚拟机的,能说一个留给你印象最深刻的BUG是如何解决的吗,

论坛徽章:
0
35 [报告]
发表于 2010-08-23 22:59 |只看该作者
好像我文档里面有说呢。。。

我使用easyVM和bochs作为验证机。。修改它们的源代码,它们每执行一条语句我就记录下来修改了那些东东,保持成日志文件。LightMachine也一样,也会生成同样的日志文件,然后再写一个程序来看两个日志不同的地方。

以此来知道哪条指令出错。当然,这个都建立在假设easyVM和bochs的正确性上。但有时候也发现easyVM有些错误,同时也要修改easyVM。

所以,大部分的工作都是极度枯燥乏味。。不停地检查日志,翻阅资料,使用bochs调试模式来查看执行语句。。。。调试bug。。。

没有最深刻的bug。。。每个bug都是小错误,但是一个小小的错误就能让你调试几个小时,可以说,虚拟机的bug是很难排查的。。。

论坛徽章:
0
36 [报告]
发表于 2010-08-23 23:07 |只看该作者
本帖最后由 china__unix 于 2010-08-23 23:09 编辑
哦。。是这样的。。
因为我的虚拟机使用easyVM作为验证机,便于测试,会检测执行每条语句后CPU各寄存器情况 ...
eggqq007 发表于 2010-08-23 22:18


是不是使用 easyVM的无所谓,不是在追究版权问题,呵呵。

我对这部分不了解,所以想详细向你问一下 ,所以请你还是详细讲解一下。

1) VirtualBios_0xf0000.bin 和 VirtualBios_INT.bin 详细 内容 及 格式

2) 你说你用的是easyVM的BIOS文件,但是easyVM的BIOS文件(BIOS.bin 和 BiosData.bin)和你的BIOS文件不同啊,
     一个比你的大很多,一个比你的小很多,所以我很奇怪你是怎么抽取的呢?能否详细说一下。

论坛徽章:
0
37 [报告]
发表于 2010-08-23 23:14 |只看该作者
刚刚才注意到你发布的文件中有一份文档提到了艰苦的调试过程,不错,楼主在最后关头没有放弃、终有斩获,”苦心人,天不负“,经历此番磨难,想必楼主对这句话会有自己的体会。

论坛徽章:
0
38 [报告]
发表于 2010-08-23 23:15 |只看该作者
本帖最后由 eggqq007 于 2010-08-23 23:23 编辑

是不同啊。。。。

我是把easyVM执行到0x7c00的时候把内存的最前1024字节部分保持成VirtualBios_INT.bin,把0xf0000地址后面的1024字节保持成 VirtualBios_0xf0000.bin。。。因为我只需要这两部分的数据帮我建立和easyVM一样的测试初始环境,才能保证生产日志的一致性~~~
    好玩吧~~

论坛徽章:
0
39 [报告]
发表于 2010-08-24 08:31 |只看该作者
回复 20# eggqq007


    我倒不是主要针对虚拟机,而是开发了一款C语言的编译器,由于是学习目的,直接将目标代码定为X86平台太复杂了,所以自己造了个“硬件平台”。重在可灵活更改

成熟了以后,我还是希望自己能设计一款实用的汉语语言,但现在还只是设想。如果以后能做出来,就发出来大家一起玩玩

论坛徽章:
0
40 [报告]
发表于 2010-08-24 08:33 |只看该作者
嗯~~自己设计也好,不用关注标准。。。以前也想这样做,但是想想所有软件。。。包括编译器,操作 ...
eggqq007 发表于 2010-08-23 10:05



      我倒不是主要针对虚拟机,而是开发了一款C语言的编译器,由于是学习目的,直接将目标代码定为X86平台太复杂了,所以自己造了个“硬件平台”。重在可灵活更改

成熟了以后,我还是希望自己能设计一款实用的汉语语言,但现在还只是设想。如果以后能做出来,就发出来大家一起玩玩
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP