无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 22643|回复: 93
打印 上一主题 下一主题

如果在 grub4dos 中集成 DOS 运行环境,哪个开源的 DOS 比较好,请推荐

  [复制链接]
跳转到指定楼层
1#
发表于 2014-12-10 10:16:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 不点 于 2015-1-3 14:06 编辑

我知道的有 dosemu,dosbox,freedos。还有别的 DOS 环境吗?您更喜欢哪一个?






2015年1月3日更新:这个是按照第一方案编写的版本。运行的逻辑路线:对于不带 “--config-file=......” 参数的 grub.exe 来说,如果它发现在地址 2M 处有以前的 grub4dos 的备份,则执行退出 DOS 返回到 grub4dos 的功能。如果在地址 2M 处没有发现 grub4dos 的备份,则像从前一样,正常加载 grub.exe 自身所带的 grub4dos 环境。用 "grub.exe --config-file=" (后面为空) 可以强制按照以前无参数的情形去执行,即,强制正常加载 grub.exe 自身所带的 grub4dos 环境,因此,不去执行退出 DOS 的动作,即,不会返回到以前的 grub4dos 环境中。这种方法用来模拟以前不带 “--config-file=......” 参数的 grub.exe 的情况。

2014年12月27日更新:这个是基于 26 日的版本,支持 “DOS 时代菜鸟 DOS 工具箱” 里面的中文 DOS。调用 BIOS 成功清屏,已经算是完美。
2014年12月26日更新:尽最大努力,支持中文 DOS 环境,仍不完美,留作参照物。
2014年12月25日更新:添加了恢复视频状态的 BIOS 调用,希望对于 DOS 图形模式的恢复起到某些帮助作用。

新增功能:

在 grub4dos 下用 boot 命令启动 DOS 后,可以用不带参数的 grub.exe 从 DOS 返回到 grub4dos 中。

以后,从 grub4dos 切换到 DOS 用 quit 命令即可。而从 DOS 切换到 grub4dos 仍然是用不带参数的 grub.exe 命令。

补充说明:不限定 DOS 的种类。任何 DOS 都支持。




grub4dos-0.4.5c-2014-12-27.7z

263.6 KB, 下载次数: 97, 下载积分: 无忧币 -2

调用 BIOS 清屏成功!这个可以完美替代 26 日的版本。我们就以这个为主进行测试吧。

grub4dos-0.4.5c-2014-12-26.7z

263.35 KB, 下载次数: 7, 下载积分: 无忧币 -2

尽最大努力,支持中文 DOS 环境,仍不完美,留作参照物。

grub4dos-0.4.5c-2014-12-25.7z

262.92 KB, 下载次数: 44, 下载积分: 无忧币 -2

添加了恢复视频状态的 BIOS 调用,希望对于 DOS 图形模式的恢复起到某些帮助作用。

grub4dos-0.4.5c-2014-12-24.7z

262.76 KB, 下载次数: 14, 下载积分: 无忧币 -2

终于又找到了一处毛病,这个应该正常了

grub4dos-0.4.5c-2014-12-23.7z

261.69 KB, 下载次数: 22, 下载积分: 无忧币 -2

这个版本也留作参照物

grub4dos-0.4.5c-2015-01-03.7z

263.86 KB, 下载次数: 46, 下载积分: 无忧币 -2

这个是按照第一方案编写的程序,请测试。

grub4dos-0.4.5c-2014-12-22.7z

261.38 KB, 下载次数: 42, 下载积分: 无忧币 -2

这个版本暂时保留,作为参照物。

评分

参与人数 1无忧币 +5 收起 理由
ql1307096 + 5 很给力!

查看全部评分

2#
发表于 2014-12-10 10:46:09 | 只看该作者
freedos
回复

使用道具 举报

3#
发表于 2014-12-10 11:08:02 | 只看该作者
感觉集成一个basic更好,用basic编写菜单比批处理强大多了;D
回复

使用道具 举报

4#
发表于 2014-12-10 12:53:54 | 只看该作者
新人路过,帮顶
回复

使用道具 举报

5#
发表于 2014-12-10 15:44:51 | 只看该作者
我只用过freedos 虽然感觉不如msdos 但是freedos 有它自己的优点.

并且一些商业公司也在偷偷的用freedos.
回复

使用道具 举报

6#
发表于 2014-12-10 17:50:52 | 只看该作者
本帖最后由 Bluebells 于 2014-12-10 17:51 编辑

MS-DOS不好用,freedos比它好!不过有些dos软件不知道为什么不支持freedos,而ms-dos就可以
回复

使用道具 举报

7#
 楼主| 发表于 2014-12-10 17:52:30 | 只看该作者
本帖最后由 不点 于 2014-12-14 23:51 编辑

加载 DOS 环境的话,就存在常规内存争用的问题了。

gfxmenu 使用了较高端的常规内存,直接与 DOS 软件的内存发生冲突。所以,gfxmenu 不能再支持了。

其他的内存,比如磁盘读写缓冲区以及几何参数探测缓冲区,可以合并或精简。最后,grub4dos 内核只能占用 128K 的低端内存,即,0 ~ 0x1FFFF 的内存空间。其余的,都留给 DOS 软件使用。

由于不再支持 gfxmenu,我打算开辟一个新的分支,比如,版本号就叫做 0.5。这样,不影响使用旧版的、现有的 gfxmenu 的用户。


进一步研究发现,FreeDOS 内核使用了物理地址 0x700 ~ 0x10000 的空间,这与 grub4dos 发生了冲突。

1、grub4dos 的未压缩菜单位于 0x800,这不能再用了,必须挪到别处,或者干脆撤销(把未压缩和压缩的菜单合并,只使用压缩菜单空间)。

2、grub4dos 的堆栈栈顶位于 0x7000,代码位于 0x8200~0x10000。解决办法是,让 FreeDOS 不再使用 0x6800 ~0x10000 的空间。

回复

使用道具 举报

8#
发表于 2014-12-10 19:26:05 | 只看该作者
感觉不需要集成DOS    但是整个支持NTFS读写 就够了
回复

使用道具 举报

9#
发表于 2014-12-10 20:24:27 来自手机 | 只看该作者
dosbox貌似是VM86的,可以借鉴一下
回复

使用道具 举报

10#
发表于 2014-12-10 23:03:11 来自手机 | 只看该作者
集成dos后有什么优势,能带动那方面的应用?

点评

自己用,自己觉得有用。所有的开发工作,都是首先自己要用,然后才去开发。至于说对别人有没有用,那是不知道的。自己需要运行 DOS 程序,弥补 grub4dos 的应用程序的缺乏,所以想做这个开发。  详情 回复 发表于 2014-12-11 08:19
回复

使用道具 举报

11#
 楼主| 发表于 2014-12-11 08:19:02 | 只看该作者
jack95 发表于 2014-12-10 23:03
集成dos后有什么优势,能带动那方面的应用?

自己用,自己觉得有用。所有的开发工作,都是首先自己要用,然后才去开发。至于说对别人有没有用,那是不知道的。自己需要运行 DOS 程序,弥补 grub4dos 的应用程序的缺乏,所以想做这个开发。



回复

使用道具 举报

12#
发表于 2014-12-11 09:14:35 | 只看该作者
我觉得还是FREEDOS合适一点,核心文件小
回复

使用道具 举报

13#
 楼主| 发表于 2014-12-14 21:23:01 | 只看该作者
对 freedos 进行了初步改造。改造后的版本已经上载在一楼,请测试它是否可以正常使用。

回复

使用道具 举报

14#
发表于 2014-12-14 23:11:15 | 只看该作者
运行后直接进入grldr,选freedos后卡主

点评

请您确认:这是卡死吗?是不能进入 DOS 命令行吗?  详情 回复 发表于 2014-12-15 11:39
回复

使用道具 举报

15#
发表于 2014-12-15 10:44:46 | 只看该作者
可以进入freedos,如何返回开始的grub4dos环境?

点评

可以用grub.exe返回grub4dos环境,grub.exe请在本板置顶贴找,自行用UltraISO加入ima内即可  详情 回复 发表于 2014-12-15 15:43
麻烦请您确认,新版和旧版是否都能进入 DOS? 目前只是初步的工作,仅仅测试修改后的 FreeDOS 究竟能否正常工作。 其他工作还没开展,预计需要两个礼拜或两个月才能全部做完。  详情 回复 发表于 2014-12-15 11:42
回复

使用道具 举报

16#
 楼主| 发表于 2014-12-15 11:39:08 | 只看该作者
jack95 发表于 2014-12-14 23:11
运行后直接进入grldr,选freedos后卡主

请您确认:这是卡死吗?是不能进入 DOS 命令行吗?
回复

使用道具 举报

17#
 楼主| 发表于 2014-12-15 11:42:30 | 只看该作者
jack95 发表于 2014-12-15 10:44
可以进入freedos,如何返回开始的grub4dos环境?

麻烦请您确认,新版和旧版是否都能进入 DOS?

目前只是初步的工作,仅仅测试修改后的 FreeDOS 究竟能否正常工作。

其他工作还没开展,预计需要两个礼拜或两个月才能全部做完。
回复

使用道具 举报

18#
发表于 2014-12-15 15:43:19 | 只看该作者
jack95 发表于 2014-12-15 10:44
可以进入freedos,如何返回开始的grub4dos环境?

可以用grub.exe返回grub4dos环境,grub.exe请在本板置顶贴找,自行用UltraISO加入ima内即可
回复

使用道具 举报

19#
发表于 2014-12-15 18:51:52 | 只看该作者
我这两个都可以入到DOS
回复

使用道具 举报

20#
发表于 2014-12-15 21:52:00 | 只看该作者
发一个更小的DOS,我也不知道是什么DOS也不知是否商用的

IFD.zip

149.28 KB, 下载次数: 15, 下载积分: 无忧币 -2

点评

TBOS (TeraByte OS) free for personal use TeraByte Unlimited makes TBOS available as part of the TeraByte OS Deployment Tool Suite. Short description: TBOS (TeraByte OS) is a small basic real-mode  详情 回复 发表于 2014-12-16 07:54
回复

使用道具 举报

21#
发表于 2014-12-16 07:54:14 | 只看该作者
2013abcdefg 发表于 2014-12-15 21:52
发一个更小的DOS,我也不知道是什么DOS也不知是否商用的

TBOS (TeraByte OS) free for personal use
TeraByte Unlimited makes TBOS available as part of the TeraByte OS Deployment Tool Suite.

Short description: TBOS (TeraByte OS) is a small basic real-mode OS that can run most DOS programs. (It's pronounced "Tee Boss")

TBOS itself (tbos.sys) is a minimalistic DOS kernel (just 18kB) which allows you to run some DOS programs. But it has not implemented a lot of DOS services so many programs hangs with error message - e.g. I tried to replace shell by datalight minicmd, freecom, ms-dos 6.22 command.com, cwsd-stubbed bash but nothink works. It also don't support HDD/FAT16, runs only on a floppy (similar to FlopOS)
回复

使用道具 举报

22#
发表于 2014-12-16 15:14:31 | 只看该作者
不知道这个跟map img镜像有什么区别呢?

点评

差别不是太大。目前通过 img 进入 DOS 之后,无法返回到 grub4dos 中。注意,通过 grub.exe 可以再次进入 grub4dos,但那不等于退回到 grub4dos。用 grub.exe 重新进入 grub4dos 后,那是一个全新的 grub4dos 环境,  详情 回复 发表于 2014-12-18 17:14
回复

使用道具 举报

23#
 楼主| 发表于 2014-12-18 17:14:42 | 只看该作者
ql1307096 发表于 2014-12-16 15:14
不知道这个跟map img镜像有什么区别呢?

差别不是太大。目前通过 img 进入 DOS 之后,无法返回到 grub4dos 中。注意,通过 grub.exe 可以再次进入 grub4dos,但那不等于退回到 grub4dos。用 grub.exe 重新进入 grub4dos 后,那是一个全新的 grub4dos 环境,原来的变量都丢失了。

改进之后,可以自由地在 grub4dos 与 DOS 之间切换,两者的运行环境都不破坏,变量都不丢失。

至于说具体的实现手段,还在权衡之中。

回复

使用道具 举报

24#
 楼主| 发表于 2014-12-18 18:24:42 | 只看该作者
又考虑了几天,觉得应该分步骤实现。

作为第一步,目前先考虑简单的情况,以 “概念证明” 的性质来实现。

这个阶段的 DOS 限定为只使用 1M 以内的空间,不使用扩展内存。如此一来,与 grub4dos 的冲突将减少,因此容易解决冲突问题。

以后,当把 grub4dos 的内核搬到扩展内存顶端以后,再考虑不限制 DOS 内存的问题。

当从 grub4dos 切换到 dos 时,保存 grub4dos 的环境。

当从 dos 切换到 grub4dos 时,也保存 DOS 的环境。

所以,关键是实现一个切换的接口。目前考虑以命令的方式来实现。

在 dos 下实现一个 breakdos 命令,可以从 dos 返回到 grub4dos 环境。
在 grub4dos 下实现一个 resumedos 命令,可以从 grub4dos 进入 DOS 环境并恢复到原先的状态。

回复

使用道具 举报

25#
发表于 2014-12-18 22:07:19 来自手机 | 只看该作者
这个会不会使p大的0pe更加强大
回复

使用道具 举报

26#
发表于 2014-12-18 22:25:56 | 只看该作者
本帖最后由 pseudo 于 2014-12-18 22:28 编辑

细节:resumedos超过8字符了。即使支持长文件名也尽量不动用长名为好。
用todos、togrub,或者doshome、grubhome,dos2grub、grub2dos之类?
回复

使用道具 举报

27#
发表于 2014-12-18 23:06:02 | 只看该作者
這樣的話直接把DOS接口造成TSR讓各種DOS使用就好

点评

这个主意不错. 至于DOS返回GRUB4DOS,可以直接用exit命令(退无可退的时候就回跳到GRUB4DOS,因为有可能在DOS SHELL下多次启动DOS SHELL)  发表于 2014-12-19 09:22
回复

使用道具 举报

28#
发表于 2014-12-19 07:56:43 | 只看该作者
我喜欢freedos,最主要的是他不怕逻辑锁,可在带锁硬盘启动。
回复

使用道具 举报

29#
 楼主| 发表于 2014-12-21 17:33:57 | 只看该作者
2014年12月21日:编译了 grub4dos,请测试常规功能是否正常。也测试新增的功能是否正常。

新增功能:

在 grub4dos 下用 boot 命令启动 DOS 后,可以用不带参数的 grub.exe 从 DOS 返回到 grub4dos 中。

以后,从 grub4dos 切换到 DOS 用 quit 命令即可。而从 DOS 切换到 grub4dos 仍然是用不带参数的 grub.exe 命令。

补充说明:不限定 DOS 的种类。任何 DOS 都支持。
回复

使用道具 举报

30#
发表于 2014-12-21 19:34:39 | 只看该作者
不懂如何测试

点评

目前的实现方式,支持任意的 DOS,而 grub4dos 本身也没有集成 DOS 的 API。 本次比以前做了微小的改进。 1、修补了 boot 命令,让它启动 DOS 之后,先把 grub4dos 的 640K 常规内存保存在 2M 处,以便 grub.e  详情 回复 发表于 2014-12-21 21:12
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-26 12:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表