中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
作者:
标题: DOS的历史之四 上一主题 | 下一主题
ko20010214
版主




积分 7296
发帖 1628
注册 2002-10-16
状态 离线
『楼 主』:  DOS的历史之四 [已使用 LLM 解释]

发信人: ccccccc (破嘴★BBS综合症), 信区: DOS
标 题: DOS的历史之四
发信站: BBS 水木清华站 (Thu May 20 01:12:42 1999)

发信人: dos (白兔仔), 信区: DOS
标 题: DOS的历史之四
发信站: 逸仙时空 Yat-sen Channel (Sun Apr 4 10:30:01 1999), 站内信件


最早的IBM PC是基于软盘的系统,使用软盘驱动趋A和B。最早的PC不支持当时非常
昂贵的硬盘。当IBM发表包括10MB硬盘的IBM PC XT计划时,Microsoft开发了新的用于
DOS的文件系统。MS-DOS1.0版本及格1.1版本不支持分层目录,而对于硬盘,着样的目录
是必须的。
Microsoft选择开发小型机UNIX操作系统相似的分层目录结构。UNIX当时开始流行。
由于文件控制块不支持用于目录路径名的空间,因此Microsoft保留文件控制块并使2.0
版本基于文件句柄管理文件.DOS使用文件句柄的第二个好处是能够实现重定向功能(也是
UNIX的一个普通功能)。
使用DOS2.0版本,IBM变得很成功,并且DOS和CP/M操作系统一起成为可选的操作系
统。由于PC机的流行,很多硬件生产厂家开发基于PC的产品。为帮助这些厂家汇集其产
品,MS-DOS2.0提供支持可安装设备驱动程序,首次提供了CONFIG.SYS预配置文件。DOS
2.0版本包含很多UNIX的特性,然而,UNIX是一允许许多个用户同时运行多个程序的多
用户操作系统。
为提供多任务的简化格式,DOS2.0版本提供了诸如GRAPHICS及PRINT这样的内存驻留
程序。
在DOS2版本之后,Microsoft又发表了MS-DOS2.01,该版本支持国际字符集。在这期
间,IBM推出了其短寿命的IBM PCJr计算机。为支持PCJe,Microsoft又为IBM开发了PC-
DOS2.1。后来Microsoft又将这两个最后的DOS版本结合在一起产生了MS-DOS2.11。1983
年,Microsoft发表了MS-DOS2.25版本,该版本包括了定位故障并支持扩展ASCII字符集。

--
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·

(本文采用S-Term文章拷贝脚本拷贝)
==================================================
LLM 解释

这篇文章简要概述了 DOS 从 1.x 演进到 2.x 系列的关键技术转折点。以下是对文中提到的技术演进、背景及历史细节的补充与修正:

1. 文件系统的重大演进:从 FCB 到文件句柄

MS-DOS 1.0 的文件操作完全沿袭了 CP/M 的**文件控制块(FCB, File Control Block)**模式。FCB 是一种定长的数据结构,包含文件名、扩展名、文件大小及磁盘位置等信息,且必须由应用程序在内存中维护。这种设计的局限性在于它不支持路径名,因为 FCB 结构中没有存储路径的空间。

随着 1983 年 IBM PC XT(机型 5160)的推出,引入了 10MB 的硬盘。为了管理庞大的存储空间,MS-DOS 2.0 引入了分层目录结构(Hierarchical Directory Structure)文件句柄(File Handle)

  • 技术实现:文件句柄通过 DOS 内部的系统文件表(SFT)来追踪文件状态,程序只需操作一个整数索引(句柄)。
  • 兼容性保障:为了保证 DOS 1.x 程序的兼容性,2.x 依然保留了对 FCB 的支持,但 FCB 无法直接访问子目录中的文件,只能访问当前目录。

2. UNIX 特性的引入与“句柄”的副产品

文中提到 DOS 2.0 受 UNIX 影响极深,这在技术实现上有明确体现:

  • 重定向与管道:由于引入了文件句柄,DOS 能够模仿 UNIX 将标准输入(STDIN)、标准输出(STDOUT)和标准错误(STDERR)作为预定义的句柄(0, 1, 2)。这使得 ><| 等操作符在 DOS 命令行中得以实现。
  • 路径分隔符的差异:虽然 DOS 借鉴了 UNIX 的目录结构,但由于 IBM 在 PC-DOS 1.0 中已经将斜杠 / 定义为命令行开关(Switch)的分隔符,为了避免冲突,MS-DOS 2.0 被迫采用了反斜杠 \ 作为路径分隔符。

3. 可安装设备驱动程序与 CONFIG.SYS

在 DOS 1.x 中,支持新硬件(如特殊的串行卡或非标准磁盘驱动器)需要对 BIOS 或 DOS 内核进行二进制补丁。MS-DOS 2.0 引入了**可安装设备驱动程序(Installable Device Drivers)**架构,通过 CONFIG.SYS 文件动态加载 .SYS 文件。

  • 这标志着操作系统从“针对特定硬件定制”向“平台化、可扩展化”的转变,是 DOS 能够适配大量兼容机硬件的关键。

4. 内存驻留(TSR)与早期“多任务”

由于 DOS 设计之初是单用户单任务系统,缺乏进程调度器。为了实现诸如后台打印(PRINT)或键盘热键激活(如后来的 SideKick),程序员利用了 DOS 2.0 完善后的 INT 27HINT 21H AH=31H(Keep Process) 调用,使程序在退出后仍保留在内存中。这类程序被称为 TSR (Terminate and Stay Resident)。这并非严格意义上的多任务,而是通过中断拦截实现的协同式后台处理。

5. 版本演进的细节补充

文中提到的版本分支反映了当时 Microsoft 与 IBM 以及 OEM 厂商之间的复杂关系:

  • PC-DOS 2.1:主要是为了适应 IBM PCjr 的特定硬件需求(如不同的磁盘控制器时序)。
  • MS-DOS 2.11:这是 2.x 时代流传最广的 OEM 版本。它修正了 2.1 中的大量错误,并正式支持了更多的国际化特性(如不同国家的日期、货币格式)。
  • MS-DOS 2.25:这是一个鲜为人知的版本,其核心意义在于增加了对 DBCS(双字节字符集) 的初步支持。这为后来汉化 DOS 的出现(如后来的中文系统)奠定了处理东亚语言的基础,主要面向亚太和日韩市场。

6. 技术局限性与历史背景

尽管 DOS 2.0 引入了硬盘支持,但其 FAT12 文件系统在管理大容量磁盘时效率极低。在 2.x 版本中,FAT12 的簇寻址能力限制了分区大小,这导致在 3.0 版本之前,DOS 处理大硬盘的能力仍显稚嫩。文中提到的“定位故障”通常是指对磁盘坏道和分区表处理逻辑的改进。





ko20010214
=================================
大功告成,打个Kiss!
ko20010214@MSN.com
神州优雅Q300C
Intel CeleronM 370处理器 | 256MbDDR内存
40G硬盘 | USB2.0 | IEEE 1394
13.3 ' WXGA 宽屏(16:10) | COMBO光驱
10/100M网卡 | 四合一读卡器
2003-6-1 00:00
查看资料  发送邮件  发短消息  网志  OICQ (16959102)  编辑帖子  回复  引用回复

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


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



论坛跳转: