dos系统
DOS(磁盘操作系统)是一种基本的系统软件。作为用户和计算机硬件之间的接口,它简化了用户对硬件结构的理解和对机器命令的记忆。DOS系统可以有效管理软硬件资源,包括MS-DOS、PC-DOS、DR-DOS等多个版本,其中MS-DOS最为著名。DOS的发展始于1980年,当时IBM在开发个人电脑时选择了微软和英特尔作为主要合作伙伴。1981年8月,IBM发布了个人电脑和DOS 1.0。随着时间的推移,DOS已经经历了几个版本的迭代,微软的MS-DOS逐渐成为市场的领头羊,而DR-DOS等其他版本也在市场上占据一席之地。虽然OS/2、Windows等操作系统出现的较晚,但FreeDOS等开源替代品仍在特定领域发挥作用。
DOS的设计框架包括BIOS模块(负责管理硬件资源)、IO。SYS(MS-DOS和BIOS之间帮助管理系统设备的接口),MSDOS。SYS(负责文件管理,包括文件、目录和内存管理)、COMMAND.COM(处理用户输入的MS-DOS命令)和boot程序(负责检查磁盘上的系统文件和将DOS系统加载到内存中)。设备管理、存储管理和文件管理是DOS的主要功能。虽然DOS在多任务、用户界面、安全性等方面存在一些不足,但其简单性、开放性、启动速度快等特点,仍然使其在特定应用场景下深受用户欢迎。
名字由来 编辑本段
操作系统一般包括两部分:设备管理和文件信息管理(其核心是文件信息管理)。因为PC中的文件一般存储在磁盘上,所以称为磁盘操作系统(DOS),这也是DOS名称的由来。
DOS家族包括MS-DOS,PC-DOS,DR-DOS,FreeDOS,PTS-DOS,ROM-DOS,JM-OS,CC-DOS,UC-DOS,其中MS-DOS最有名,最自由开放的是Free DOS。虽然这些系统通常简称为“DOS”,但没有一个系统被简单地命名为“DOS”(只有一个不相关的IBM大型机操作系统以此命名)。此外,几个与DOS无关的磁盘操作系统的名字中也有“DOS”二字,具体讨论本机时会简称为“DOS”(例如:AmigaDOS、AMSDOS、ANDOS、Apple DOS、Atari DOS、Commewlore DOS、CSI-DOS、PrDOS、TRS)。
发展简史 编辑本段
发展背景
20世纪70年代末,许多公司都有了自己的8位芯片“个人电脑”,如AppleIl、Commodore、VC20和PET、Tandy、TRS-80、施乐和惠普。IBM还决定开发自己的“个人电脑”。然而,开发新一代个人电脑至少需要四年时间,这在个人电脑市场上是不可接受的,市场也负担不起。最后,IBM采用了开放的原则,选择了两个主要的合作伙伴——微软和英特尔。1980年,IBM投入450人进行PC开发,英特尔也组建了“特殊客户部”,为PC供应高质量的芯片——英特尔的8088芯片。
开发过程
1980年,当IBM要推出搭载Intel 8088芯片的IBM PC时,他们需要一个操作系统。IBM董事长约翰·欧宝与玛丽·麦克斯韦尔·盖茨交谈,她也是美国联合筹款协会全国委员会的执行委员会成员,她向欧宝推荐了她的儿子比尔·盖茨。比尔·盖茨向IBM介绍了另一家开发CP/M操作系统的DR数字研究公司。然而,最初关于CP/M的谈判破裂,IBM退出了谈判。
IBM又找到了比尔·盖茨。盖茨找到了西雅图电脑产品公司。该公司的程序员Tim Paterson开发了一种CP/M-80的变体作为内部产品,以测试SCP与16位Intel 8086CPU的兼容性。该系统最初被命名为QDOS(快速和肮脏的操作系统),后来以86-DOS的名义投入商业使用。微软买了86-DOS,然后在1981年推出了基于它的微软磁盘操作系统(MS-DOS)。一年之内,微软向70多家公司授权了MS-DOS。这些公司使用MS-DOS作为他们的硬件操作系统,并使用他们自己的名字。微软后来要求使用MS-DOS的名称,IBM版本除外。DR Digital Research意识到IBM正在销售类似于CP/M的操作系统,并威胁要采取法律行动。IBM的回应是提出一项协议:他们将让PC消费者选择PC DOS或CP/M-86(CP/M的8086版本)。相比之下,CP/M的价格比PC DOS高200美元,销量也很低。CP/M逐渐淡出市场,MS-DOS和PC DOS成为PC和PC兼容机的操作系统。
软件发展
微软最初只向原始设备制造商(OEM)出售MS-DOS,因为早期的个人电脑与IBM PC不完全兼容,DOS的设计允许设备驱动程序代码(IO。SYS)与DOS内核(MSDOS。SYS)。微软为此提供了OEM Adaptation Toolkit (OAK),它允许OEM根据他们的系统需求定制设备驱动程序代码。随着大多数PC遵循IBM PC标准,微软开始销售MS-DOS 5.0的零售版本。
20世纪80年代中期,微软开发了DOS的多任务版本,在欧洲通常被称为“MS-DOS4”,这是专门为ICL开发的,并授权给几家欧洲公司。该版本支持抢占式多任务、共享内存、设备辅助服务和新的可执行文件(NE)格式。这些特性在随后的DOS版本中没有使用,但形成了OS/2 1.0内核的基础。这个版本的DOS不同于广泛发布的PC DOS 4.0,后者是IBM基于DOS 3.3开发的。
在美国电话电报公司开始销售Unix之后,微软和IBM开始开发OS/2作为DOS的替代品。两家公司后来在DOS、OS/2和Windows这两个后续操作系统上产生了一系列分歧。所以他们把DOS系统的开发分开了。MS-DOS的最后一个零售版本是MS-DOS 6.22;;从此,MS-DOS成为了Windows 95、98和我的一部分。面向零售市场发布的PC DOS的最后一个版本是PC DOS 2000(也称为PC DOS 7修订版1)。IBM后来开发了PC DOS的7.10版本,但是这个版本只被原始设备制造商(OEM)和IBM使用。
后续发展
早期的微软视窗操作系统是在MS-DOS基础上运行的。20世纪90年代初,Windows的图形用户界面被广泛使用。1995年,Windows 95作为独立的操作系统发布,不需要单独的DOS许可证。虽然Windows 95(以及后来的Windows 98和ME)接管了默认的操作系统内核,但是为了兼容旧软件,仍然保留了MS-DOS组件。在Windows 95和98中,MS-DOS组件可以在不启动Windows的情况下运行,但在ME中不行。随着Windows的普及,大部分用户不再直接使用DOS。
小众DOS
Digital Research试图通过发布并发的DOS(1985)、FlexOS(1986)和DOS Plus(1986)来夺回市场份额,所有这些都与MS-DOS和CP/M-86软件兼容。随后,公司推出:兼容MS-DOS软件的DOS博士(1988);多用户DOS(1990),与MS-DOS和CP/M-86软件兼容。1991年,数字研究公司被Novell公司收购,随后DOS博士发展为PalmDOS和Novell DOS,最后演变为Caldera(包括OpenDOS和DR-DOS 7.02/7.03)、Lineo和DeviceLogics的一部分。
发展现状
FreeDOS项目始于1994年6月26日,当时微软宣布停止销售和支持MS-DOS。Jim Hall随后发起了一项开发开源替代方案的倡议,得到了包括Pat Villani和Tim Norman在内的其他程序员的响应。通过编写和集成现有代码,项目团队创建了内核、command-line命令行解释器(shell)和核心实用程序。FreeDOS在1.0版本发布之前已经发布了多个官方预发布版本。该系统基于GNU通用公共许可证(GPL),没有许可费或版税。
到2023年,FreeDOS、ROM-DOS、PTS-DOS和RxDOS系统仍然可用。一些电脑制造商,如戴尔和惠普,销售采用FreeDOS作为OEM操作系统的电脑。FreeDOS可以直接访问硬件,适用于嵌入式设备。一些开发人员和计算机工程师仍在使用它。DR-DOS的最终版本也是针对这个市场的。在Linux上,你可以运行DOSEMU,一个原生的Linux虚拟机,用来以接近原生的速度运行DOS程序。此外,还有很多模拟器可以在不同版本的Unix和Microsoft Windows上运行DOS,比如DOSBox,这是专门为现代操作系统上的传统游戏(如《国王的任务》和《毁灭战士》)设计的。
设计架构 编辑本段
MS-DOS和PC DOS操作系统通常与使用Intel x86或兼容CPU(主要是IBM PC兼容)的计算机相关联。MS-DOS的机器专用版本不仅包括以制造商名义重新标记的微软发行版,还包括专门为非IBM-PC兼容硬件设计的版本。只要通过DOS API而不是直接通过硬件访问应用程序,它们就可以在IBM-PC兼容和不兼容的机器上运行。FreeDOS最初的内核DOS-C起源于20世纪90年代初摩托罗拉68000系列CPU的DOS/NT。虽然这些系统在架构上与DOS相似,但由于非x86-CPU的指令集不兼容,应用程序的二进制文件也不兼容。用高级语言编写的应用程序很容易移植。
DOS是单用户单任务的操作系统,它的基本内核函数不能重入:一次只能有一个程序使用这些函数,而且DOS本身不支持多个程序同时执行。DOS内核为应用程序接口提供字符输入输出、文件管理、内存管理、程序加载和终止。DOS允许你通过批处理文件(文件扩展名。bat),而每一行都被解释为一个要运行的程序。批处理文件也可以使用内部命令,如GOTO和条件语句。操作系统提供了应用程序编程接口,允许开发基于字符的应用程序,但它不能直接访问大多数硬件,如显卡、打印机或鼠标。这需要程序员直接访问硬件,这通常导致每个应用程序都有自己的设备驱动程序用于每个硬件外设。硬件制造商将发布规范,以确保流行应用程序的设备驱动程序可用。
系统组件
MS-DOS操作系统采用模块化结构,由五个主要部分组成:BIOS模块,IO。SYS模块,MSDOS。系统模块、COMMAND.COM模块和ROM中的引导程序。BIOS模块作为计算机硬件和操作系统之间的桥梁,负责硬件资源的管理。IO。SYS模块作为MS-DOS和BIOS之间的接口,帮助管理系统设备。MSDOS。SYS模块负责文件管理,包括文件、目录和内存管理。它通过函数调用为用户提供了与MS-DOS的程序级接口。COMMAND.COM模块的核心职责是处理用户通过键盘输入的MS-DOS命令。引导程序(Boot program)也称为引导记录(boot record),负责检查磁盘上是否存在必要的系统文件,如果存在,则将DOS系统加载到内存中。
启动顺序
在计算机启动过程中,依次执行以下步骤:
启动时,ROM BIOS中的指令集首先接管控制,执行POST过程,并测试基本硬件组件,包括内存、键盘、视频适配器以及串行和并行端口。
BIOS会先在A盘寻找系统盘,如果找不到,会继续在C盘搜索。
当系统盘被定位时,BIOS将引导扇区的记录加载到随机存取存储器(RAM)中,这些记录包含用于加载I/O处理程序的指令。
I/O处理程序,即IO。SYS和MSDOS。SYS被加载到内存中以初始化硬件并为磁盘输入/输出(I/O)操作做准备。
BIOS检查配置。SYS文件来加载任何特定的硬件配置信息。
COMMAND.COM命令加载处理器,这标志着操作系统加载过程的完成。
系统检查AUTOEXEC。BAT文件来执行用户定义的启动命令。
如果AUTOEXEC。BAT文件不存在,计算机会显示系统提示(C:>)并等待用户输入命令。
在PC DOS和drdos及以上版本中,系统文件被命名为IBMBIO.COM和IBMDOS.COM。从MS-DOS 7.0开始,IO。SYS和MSDOS。SYS已被合并到一个文件中,而MSDOS。SYS已成为配置文件。如果MSDOS中的BootGUI指令。SYS设置为0,当加载命令处理器时,启动过程停止,并且不执行WIN.COM。
内存管理
DOS的内存管理受到IBM PC原有体系结构的限制。Intel 8088和8086 CPU通过20位地址线最多只能访问1 MB内存,而IBM和微软使用640KiB作为程序可用的最大内存,剩余的384KiB用于显存、适配器只读内存和BIOS。虽然80286 CPU已经把寻址能力提高到了16 MB,但是为了兼容原来的IBM PC,内存分配仍然限制在640 KB,也就是常规内存。到1985年,一些DOS应用程序已经达到了内存极限,大部分保留的内存都没有被使用。
上层内存(UMA)是IBM PC体系结构中640 KB到1 MB的内存区域。它最初计划用于视频内存和视频BIOS内存,但大多数UMA没有得到充分利用。自MS-DOS 4.01以来,通过EMM386.EXE,设备驱动程序和TSR可以加载到UMA的未使用位置,释放常规内存供程序运行。
扩展内存(XMS)是指超过1 MB的内存,包括1 MB旁边的64 KB高内存区域(HMA)。MS-DOS 5.0引入了设备驱动HIMEM。SYS,它允许将部分操作系统加载到HMA中,为该程序释放高达46 KB的常规内存。扩展内存(EMS)是一个独立的内存区域,程序只能通过某种机制从其中获取信息。要使用扩展内存,应在计算机上添加扩展存储卡,并且可以在扩展存储卡上扩展内存容量。扩展内存必须由“扩展内存管理器”管理。扩展内存(XMS)和扩展内存(EMS)都可以访问1 MB以上的内存,但方式不同。
文件系统
DOS文件系统,即文件分配表(FAT),是IBM PC及其兼容机广泛采用的一种文件管理方案。原版本为FAT12,支持8.3文件命名规则,即文件名最多8个字符,扩展名最多3个字符。由于12位FAT条目的限制,最大文件系统容量为8MB。随着DOS 3.0的发布,推出了FAT16,它使用16位FAT条目,支持高达32MB的存储空间。Compaq MS-DOS 3.31进一步扩展了FAT16B,取消了32 MiB的驱动器限制,最高支持512 MiB。MS-DOS 7.1(Windows 9x的DOS组件)引入了FAT32,采用32位分配条目,支持137 GiB以上的硬盘。
从DOS 3.1开始,系统开始支持文件重定向,最初是支持网络,后来扩展到支持MSCDEX的光驱。IBM PC DOS 4.0提供了初始可安装文件系统(IFS)支持,但在DOS 5.0中被删除了。DOS也支持通过配置加载的块设备。SYS,可用于网络设备的文件系统支持。
目录结构
在DOS 2.0之前,文件系统采用单级目录结构,所有文件和目录都位于单个根目录下。这种设计虽然简单,但随着硬盘容量和文件数量的增加,搜索和访问的效率受到限制,根目录的文件容量也受到限制。为了克服这些限制,DOS V2.0引入了树形目录结构,由根目录和多级子目录组成,类似于倒挂的树形结构。这种结构允许多个同名文件存在于同一个磁盘上,只要它们位于不同的目录下,DOS就可以根据用户指定的路径快速检索文件。
DOS提供了创建子目录的功能。子目录的命名遵循与主文件名相同的规则,但不得与同一级目录中的文件名重复。子目录可以有扩展名,但通常不使用。每个子目录包含两个特殊的目录条目:“”表示子目录本身,以及“..”指示父目录,在创建子目录时会自动创建父目录。每个磁盘只有一个根目录,用反斜杠“/”表示。例如,C/代表磁盘C的根目录..
驱动器命名
在DOS操作系统中,驱动器由字母标识,软盘驱动器通常保留字母“A”和“B”,硬盘驱动器以“C”和“D”开头。随着多硬盘驱动器支持的增加,字母分配策略已经发展到将字母分配给活动主分区、扩展分区中的逻辑驱动器、非活动主分区和光盘驱动器等硬件。驱动程序的加载顺序通常决定了字母的分配,但是驱动程序可以指定特定的字母。添加新硬件可能会导致现有驱动器号分配中断。例如,新的硬盘驱动器可能会导致逻辑驱动器号被重新分配。在DOS环境下,可以通过定义SUBST驱动器并将其作为逻辑驱动器来解决驱动器号分配的问题。在并发DOS、多用户DOS、系统管理程序和REAL/32中,当应用程序启动时,驱动器号L:自动分配给相应的驱动器。
保留设备名
在DOS操作系统中,有一系列保留的设备名,由于被内置字符设备占用,不能作为文件名使用。在某些情况下,这些限制会导致崩溃和安全漏洞。这些保留名称包括奥克斯、PRN、COM1到COM4、LPT1到LPT3、CON和NUL。从MS-DOS 2.11开始,所有版本的MS-DOS、PC DOS和DR-DOS都保留了这些名字(NUL除外)。MS-DOS 1.25某OEM版本保留了LST,其他版本保留了LPT1和COM1。另外,HP Portable Plus的OEM版本MS-DOS 2.11保留了LST作为LPT2的别名,82164A作为COM2的别名,以及PLT。DOS 2.0引入了COM2、LPT2、LPT3和时钟,而DOS3.3增加了COM3和COM4。DRDOS5.0及更高版本和多用户DOS预留空闲用于动态空闲检测。在DR DOS 7.02之后的版本中保留了LPT4。MS-DOS 7.0-8.0中保留了CONFIG(实模式PnP管理器)。AUX默认设置为COM1,PRN默认设置为LPT1(LST),但这些默认设置在某些DOS版本中可以更改,以指向其他串行或并行设备。
主要功能 编辑本段
文件管理
文件是指存储在某种介质上的一组相关信息。文件可以是各种语言的源程序或目标程序、各种系统软件或一组相关数据。基本操作系统的核心部分通常作为文件存储在外部存储器中,然后在系统通电时加载到存储器中。可见文件的范围是极其广泛的。档案管理是对各类档案的有序管理。从用户的角度来看,操作系统提供的文件管理功能实现了“按名称访问”。只要知道文件名,就可以访问文件中的信息,但不必知道文件在哪里。
设备管理
设备管理是利用DOS-BIOS模块提供的设备驱动程序和DOS内核提供的系统函数,可以方便地实现对字符设备(如键盘、显示器、打印机、串口等)的有效管理。)、存储设备(如磁盘)和日期时间驱动程序(如设置或读取系统日期和时间)。设备管理功能包括设备的分配、输入和输出操作的执行以及缓冲区管理。
存储管理
所谓存储管理,就是利用DOS-Kernel模块提供的动态存储管理功能,管理内存分配策略、内存块请求、内存块释放、内存块修改等操作,为系统程序和应用有效利用当前可能提供的内存提供了便利。操作系统的存储管理是指对主存(内存)的管理。
驻留 (TSR) 功能
虽然DOS不是多任务操作系统,但它提供了终止和驻留(TSR)功能,允许程序驻留在内存中。这些程序可以链接到系统定时器或键盘中断,从而允许自己在后台运行任务或随时调用任务,抢占当前正在运行的程序,在特定程序的基础上有效实现简单的多任务处理形式。DOS打印命令执行此操作,以实现后台打印。弹出个人信息管理系统(PIM) Borland Sidekick也使用这种技术。
附件列表
词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。