中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » [2020-05-26] XHDD DOS UltraDMA driver + RAMdisk + CD-ROM driver
English/Chinese Fix Translation
作者:
标题: [2020-05-26] XHDD DOS UltraDMA driver + RAMdisk + CD-ROM driver 上一主题 | 下一主题
johnsonlam
银牌会员

阿林


积分 1410
发帖 497
注册 2004-6-28
来自 九龍,香港
状态 离线
『楼 主』:  [2020-05-26] XHDD DOS UltraDMA driver + RAMdisk + CD-ROM driver [已使用 LLM 解释]

2020-05-26

XMGR and XHDD now do XMS moves in 8K blocks with 486+ CPUs, 4K blocks on slow 386 CPUs. XHDD size reduced by better XMS logic. Other drivers unchanged (re-dated only).

以滙編語言寫成,體積之小天下獨有!
千錘百鍊廿年改進,386以上適用,包括SATA硬碟、光碟驅動程序

http://optimizr.no-ip.org/dos/drivers.html
LLM 解释

技术背景与原理解析

该帖子提到的 XMGRXHDD 及其配套驱动程序,是 DOS 时代后期(尤其是 2000 年后)由开发者 Jack R. Shave 开发并由 johnsonlam 等维护的轻量化、高性能系统驱动组件。这些驱动旨在替代 MS-DOS 原生的 HIMEM.SYSEMM386.EXE 以及通用的磁盘和光驱驱动,以极小的内存占用提供 UltraDMA (UDMA) 支持。

1. XMS 内存搬移优化(8K 与 4K 数据块)

XMGR 作为 XMS 内存管理器,核心任务之一是处理常规内存(Conventional Memory)与扩展内存(Extended Memory)之间的数据交换。

  • 技术原理:数据搬移通常涉及 CPU 的 REP MOVSWREP MOVSD 指令。由于 386 与 486+ 处理器在高速缓存(L1/L2 Cache)架构、总线宽度及流水线效率上存在显著差异,数据块的大小会直接影响吞吐量。
  • 优化逻辑
    • 4K 块(386 系统):386 处理器缺乏高效的内部缓存管理,且总线频率较低。较小的 4K 数据块更符合其内存分页机制,能减少由于大块数据传输导致的系统总线长时间占用(Bus Locking)。
    • 8K 块(486+ 系统):486 及后续处理器引入了更完善的内部缓存。较大的 8K 数据块能更好地利用 L1 Cache 的预取功能和 32 位数据总线的带宽,减少指令循环的开销,从而提升 XMS 访问速度。

2. XHDD 与 UltraDMA 驱动机制

XHDD.SYS(及相关的 XDMA.SYS)是专为 DOS 环境设计的硬盘驱动程序,其核心价值在于开启并管理磁盘控制器的 UltraDMA 模式。

  • PIO vs UDMA:原生的 DOS BIOS 调用(INT 13h)通常运行在 PIO(程序输入输出)模式下,数据传输需经由 CPU 中转,极大地消耗系统资源且速度受限。XHDD 通过直接操作 IDE/SATA 控制器的寄存器,启用总线主控(Bus Mastering)DMA 传输,将数据直接在内存与磁盘间传递,大幅降低 CPU 占用并提升读写速率。
  • SATA 支持的实现限制:DOS 环境下对 SATA 硬盘的支持并非通过 AHCI 协议实现,而是依赖于主板 BIOS 中的 IDE 兼容模式(Legacy/IDE Mode)。在此模式下,SATA 控制器模拟传统的 IDE 寄存器接口,XHDD 才能识别并启用其 UDMA 功能。

3. 驱动程序的微型化设计

帖子中提到的“体积之小”源于全汇编语言编写(Assembly Language)。

  • 工程实现:相比于使用 C 语言编写并链接了运行时库的驱动(如某些版本的 UIDE),XMGRXHDD 通过手动优化机器码,去除了所有非必要代码段。这使得它们在加载后仅占用极少的常规内存(通常在几 KB 以内),为 DOS 游戏和大型专业软件腾出了宝贵的上位内存(UMB)和基本内存空间。

4. 历史语境与环境兼容性

  • 处理器要求:该驱动明确要求 386 以上 CPU,是因为其内部使用了 386 引入的 32 位寄存器(如 EAX, EBX)以及保护模式下的内存寻址特性。
  • 硬件依赖:虽然 XHDD 支持 SATA,但在 2010 年后的硬件上,如果 BIOS 彻底移除了 CSM(兼容性支持模块)或 Legacy IDE 选项(仅保留原生 AHCI 模式),此类驱动将无法识别磁盘控制器。
  • 稳定性:由于 DOS 缺乏内存保护机制,此类直接操作底层硬件端口的驱动程序在不同芯片组(Intel、VIA、SiS、AMD)上的兼容性存在差异。更新日志中提到的“廿年改进”主要解决了在不同 IDE/SATA 控制器上的同步与时序兼容问题。




我 的 網 站 - http://optimizr.dyndns.org
2020-5-26 22:34
查看资料  发送邮件  访问主页  发短消息  网志   编辑帖子  回复  引用回复
rzg1972
中级用户





积分 250
发帖 103
注册 2006-1-7
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

顶!顶!顶!


2020-6-14 11:13
查看资料  发短消息  网志   编辑帖子  回复  引用回复
雨露
管理员

DOS非常爱好者


积分 6215
发帖 2601
注册 2006-1-20
状态 离线
『第 3 楼』:   [已使用 LLM 解释]

大陆地区现在无法访问这个网站,可否上传到论坛空间?
LLM 解释

技术背景与驱动说明

该帖提到的 XMGRXHDD(以及更广为人知的 UIDE 系列)是由 Jack R. Shultz 开发的一套现代 DOS 驱动程序,旨在替代传统的 HIMEM.SYSEMM386.EXE 以及各类光驱驱动(如 OAKCDROM.SYS)。

1. XMS 内存搬运机制(8K/4K 数据块)

在帖中提到的技术改进——“针对 486+ 处理器使用 8K 块,386 使用 4K 块进行 XMS 移动”,涉及到 DOS 保护模式内存管理的核心效率:

  • 指令集优化:486 及后续 CPU 拥有更高效的缓存(Cache)管理和数据总线宽度。较大的搬运块(8K)可以减少循环开销并充分利用 CPU 的高速缓存行,从而提高内存数据交换速度。
  • 硬件兼容性:386 处理器由于内部架构限制,处理大数据块时可能导致中断响应延迟(Interrupt Latency)增加,因此保留 4K 块是以性能换取系统稳定性的平衡策略。

2. XHDD 与 UltraDMA 驱动特性

XHDD(及其变体 UIDE)与早期 DOS 磁盘驱动的主要区别在于对 UltraDMA (Direct Memory Access) 的直接支持:

  • 绕过 BIOS:传统 DOS 磁盘访问严重依赖 BIOS 的 INT 13h 调用,这类调用通常运行在实模式下,速度受限且占用大量 CPU 周期。
  • 硬件直控XHDD 直接驱动 PCI IDE/SATA 控制器的 DMA 通道。数据从磁盘直接传输到内存,无需 CPU 中转,极大地提升了在大容量硬盘及光驱上的数据吞吐量。
  • 资源占用:该驱动系列以汇编语言编写,极其紧凑。在加载到上位内存(UMB)时,其常规内存占用远低于同类功能的通用驱动。

3. 关于站点访问与获取建议

optimizr.no-ip.org 是作者 Jack R. Shultz 的个人项目站点。由于该站点使用动态域名服务且托管环境较为简陋,在中国大陆及其他部分地区的访问稳定性确实较差。

由于上述软件遵循作者的自由分发协议,且属于 FreeDOS 生态系统的重要组成部分,用户可通过以下合法且稳定的替代途径获取:

  • FreeDOS 官方软件库 (Ibiblio):作为 FreeDOS 的标准驱动组件,其源代码和编译版本均在 Ibiblio 的镜像站点(如 ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/)中有完整备份。
  • BTTR Software:这是一个专门收集 DOS 开发工具和驱动的知名站点,通常会收录作者发布的最新稳定版本。
  • GitHub/GitLab 镜像:部分开源社区维护了 Jack R. Shultz 驱动的镜像仓库,用于现代环境下的编译与归档。

4. 环境依赖与风险

  • SATA 支持:虽然该驱动声称支持 SATA,但其前提是 BIOS 中的 SATA 控制器必须设置为 IDE 兼容模式(Legacy/IDE Mode)。它无法在纯 AHCI 模式下工作。
  • 稳定性:由于其直接操作硬件控制器,在某些非标准磁盘控制器或使用了某些特定磁盘缓存软件(如 SMARTDRV)的环境下,可能会产生冲突,建议在实机部署前通过虚拟机(如 DOSBox-X 或 86Box)进行测试。




2020-6-30 19:25
查看资料  发短消息  网志  OICQ (156647374)  编辑帖子  回复  引用回复
DosNewBee2022
新手上路





积分 14
发帖 6
注册 2022-10-15
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

网页打不开啊 大哥


2022-11-4 19:52
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: