更新时间:2024-02-22 17:20
FreeDOS(曾叫做Free-DOS和PD-DOS)是一个在IBM PC兼容机下运行的操作系统。FreeDOS由许多不同的独立程序组成,这些程序就是整个FreeDOS项目中的“包”。作为DOS家族中的一员,它主要通过内核来提供磁盘访问和文件系统,以及部分内存管理,但是没有默认的GUI(尽管FreeDOS 0.9及以上版本推荐使用OpenGEM)。FreeDOS支持老式和新式IBM PC,以及嵌入式系统。像MS-DOS一样,它可以从软盘、硬盘以及ROM启动。与MS-DOS不同,它支持从CD-ROM安装,并且人们可以自由创建属于自己的定制发行版,而不用为再发行支付使用费。
大家都知道,微软在开发出Win95后停止了DOS的独立发展。但是,在Win95出现之前,微软已经明显地加强了Windows的开发而减慢了DOS的发展,并在Windows中采取一些不光彩的手段去排斥打击其他的DOS系统如DR-DOS等,以确保MS-DOS的统治地位,维护自己的商业利益。比如当您在DR-DOS中运行Win3.x时,肯定不时会出现所谓的“错误”信息。
微软的专横做法当然引起了许多人的不满,许多团体甚至个人,包括大名鼎鼎的IBM公司都纷纷投入到开发兼容DOS的行列这中,意图打破微软对DOS的垄断局面。同时由于DOS的开放性和大家对DOS强大实用的功能的认识,DOS的种类不断增加,至少有20种,如PC-DOS、ROM-DOS、PTS-DOS、FreeDOS等,而新的功能,新的理念更是层出不穷。这里我们就为大家介绍一下最具代表性的FreeDOS。
FreeDOS 专案开始于1994年6月26日,当微软宣布不会发售和支援MS-DOS。Jim Hall随后宣布了要开发一个开源替代品的宣言。 几个星期内,其他的程序员包括Pat Villani和Tim Norman加入了这个项目。一个内核,command命令行解释程序(shell)和核心实用工具通过共享自己编的源码而被创造出来。FreeDOS工程的目标是建立一个完整的、自由开放的并且与MS-DOS完全兼容的新型DOS操作系统,这个DOS系统属于全人类。由于它是建立著名的GNU GPL(GNU通用公共许可证)协议下的自由软件,得到来自世界各地众多优秀程序员的支持,一直在不断的发展着,而且参加的人越来越多,通过互联网联合起来朝着他们的目标去努力,充分体现了自由开放和团结的精神。1.0版于2006年9月23日释出。
FreeDOS的版本号已经发展到2.0,最新版本是1.3,于2022年2月20日推出。
FreeDOS不要求任何费用和版税。另外也兼容MS-DOS的系统中只有Enhanced DR-DOS,PTS-DOS和ROM-DOS 还在积极发行。FreeDOS 1.0提供CD-ROM镜像下载:一个只含有内核和基础程序的基本光盘和一个拥有更多程序(例如游戏、网络和开发)并可作为Live CD使用的完整光盘。另外,还存在一个可以制作Live CD的软盘镜像。这两个版本都提供了源代码。可以使用BitTorrent下载得到。还有一个官方的Live USB版本。 戴尔有预装FreeDOS的n-series,但是这些产品和运行Windows的同一型号机器相比并没有多便宜,而且又很难买到,戴尔公司因此受到了批评。。另外,戴尔还时常提供FreeDOS电脑一些像双核心一类FreeDOS不能利用的特性。惠普把FreeDOS作为DC5750台式机的一个可选配置。GRC的SpinRite 6引导镜像装载FreeDOS,并显示在底部的启动画面。华硕利用FreeDOS让它们的用户引导主板驱动CD来创建SATA设备驱动光盘给Windows XP SP2以前的Windows版本。
FreeDOS与MS-DOS
为FreeDOS设计的DOS软件正在源源不断的推出和发展,不仅有各种外部命令,还有许多其它的增强程序和附件,而且质量既高也很实用,往往超过MS-DOS中的同类命令。
例如在它上面开发的Cute Mouse,就是DOS下最好(体积最小,功能最强)的鼠标驱动程序。而ATTRIB、XCOPY等众多外部命令,不仅比MS-DOS的同类命令效率要高,而且体积不到后者的二分之一甚至几分之一。尤其重要的是,作为自由软件,它的源代码是完全公开的,显然对于需要学习和借鉴的国人,这是最好不过的事了。
FreeDOS与MS-DOS是完全兼容的,因此为它开发的软件基本上都可以直接移植过来在MS-DOS等DOS下使用。
FreeDOS跟MS-DOS相比有一些改进,大部分改进支持了在微软停止支持MS-DOS时不存在的新标准和技术,例如国际化,高级能源管理,内存常驻程序并且综合了ASPI。另外还支持逻辑块寻址和FAT32文件系统(包括从FAT32引导)。尽管由6.22版以前的MS-DOS不能支持这些功能,但是MS-DOS 7.10等的版本有了部分支持。
我们国内外已经开发的绝大多数DOS软件可以在它上面正常的运行。它的功能也十分强大,比如同样支持FAT32分区和大硬盘,部分功能已经远远超过MS-DOS。还有许多其它非常实用的功能,如内置DOSKEY支持、支持极大的内存(最大高达4G)等。至于更多的功能,如长文件名功能等等,正在大家不断的努力下开发着,相信不久后就会成为现实。不仅如此,它的系统启动文件也比MS-DOS等小巧得多。它的核心文件只有一个,再加上一个SYS文件和一个命令处理器command文件,总共才130K,放在启动盘中是十分合适的。
不过,与MS-DOS等DOS一样,上面介绍的FreeDOS是16位的。由于32位的操作系统逐渐成了大势所趋,因此,为了跟上时代的发展,人们又开发了32位的FreeDOS操作系统,即内核为32位的FreeDOS版本FreeDOS 32,并再次得到了众多的支持。虽然它还不是很成熟,但它一直在发展着,而且毫无疑问,32位的FreeDOS有着划时代的意义,标志着DOS逐渐向32位的内核的方向发展了。
尤其是在国外,不少人认为,FreeDOS将为DOS带来新的生机和气象,因此对此感兴趣和参加的人越来越多。无数的优秀程序员投入其中不断为FreeDOS的发展添砖加瓦。自由的FreeDOS越来越受到人们的关注,比如著名的Dell电脑公司就即将为它生产的部分电脑直接提供FreeDOS操作系统。
技术细节
FreeDOS完整的支持FAT32,甚至FreeDOS可以在其上启动。根据BIOS的情况,四块容量高达128G的LBA硬盘,甚至2 TB的容量都可能被支持。使用超大容量的硬盘需要小心,因为这到只经过非常少的测试,并且一些BIOS虽支持LBA但会在容量超过32GB硬盘上产生错误。一些OnTrack或者是EzDrive 的驱动解决了这些问题。 FreeDOS可以同一种叫DOSLFN的驱动使用,它支持长文件名(参见VFAT),但是大部分早期程序就算装载了这个驱动也不能使用长文件名。
FreeDOS没有支持NTFS或ext2的计划,但是有一些外部第三方驱动能达到使用这些文件系统的目的。为了接受ext2文件系统,LTOOLS(与MTOOLS相当)可以在ext2文件系统上读取和写入数据。NTFSDOS和NTFS4DOS一类产品则提供了对NTFS的支持。
内存管理
FreeDOS中的HIMEM和EMM386内存管理程序为实模式提供了延伸内存(XMS)和扩展内存(EMS)。 EMM386还支持VCPI,它使得DPMI内核与DOS扩展器同FreeDOS和平共处。FreeDOS还包括用于高速硬盘的UDMA驱动,这个驱动能和其他DOS兼容。LBAcache在XMS中留有最近存取的磁盘数据,使之得到更快的存储速度并能较少的直接读写磁盘,其功能类似MS-DOS中的SMARTDRV。
FreeDOS外壳——FreeDOS版command,又称FreeCOM——可以把自身一部分移动到扩展内存,将多至620KB的常规内存释放出来。这对于只利用常规内存的DOS程序来说非常有用处。
FreeDOS并没有100%的兼容度,但足够运行大部分程序。高质量且使用标准API的程序运行良好。而运行Windows的问题则是源于微软设法阻止他们的产品在非微软DOS执行。
制作启动型U盘的最简单方法之一
有名的功能强大的磁盘工具Diskgenius支持将分区格式化为FAT32类型时建立DOS系统,而且这个DOS是FreeDOS。
综合
大部分为DOS 家族所写的程序可以在FreeDOS上有效运行。大部分类型的可执行文件已经被支持:
1..COM可执行文件
2.标准.EXE16位DOS可执行文件
3.Borland的16位DPMI可执行文件
4.使用DOS 扩展器的32位DPMI可执行文件,例如:
4.1 DOS/32A
4.2 Causeway
4.3 DOS/4GW
4.4 GO32/CWSDPMI
还有更多
进一步的,由于HX DOS 扩展器的使用,许多Win32终端程序也能在FreeDOS上运行。
Windows 1.0至3.xx
FreeDOS能够兼.0和2.0版本的Microsoft Windows。然而,已支持i386处理器的3.x版本的Windows,却不能在 386增强模式中运行。其中,Windows 3.0 可以在实模式或者标准模式中运行,而其他的Windows 3.x版本只能在标准模式中运行。 因为Windows for Workgroups 3.11舍弃了标准模式的支持,它不能在FreeDOS中运行,除非FreeDOS中涉及himem.exe和emm386.exe的部分被替换为Windows下的himem.sys和emm386.exe。虽然Windows for Workgroups 3.11支持一个可以在FreeDOS下运行的调试模式,但是这个模式会比在标准模式下运行的先前版本还要有限的多。
Windows 9x和Windows Millennium Edition
Windows 95,98和Me把一个仅剩下内核的MS-DOS作为Boot Loader
Windows NT/2000/XP/2003和ReactOS
基于Windows NT的操作系统,包括Windows 2000,XP,和2003都没有把MS-DOS当作系统的核心成分。这些系统可以使用FAT,一个MS-DOS和早期版本的Windows所使用的文件系统;但是,他们一般默认使用NTFS(NT 文件系统)。FreeDOS不能和这些系统在一个单独的NTFS或FAT文件系统里和平共处,但是FreeDOS内核还是可以被添加到Windows NT Boot Loader配置文件,boot.ini,或React OS中的freeldr.ini来引导它启动。 FreeDOS也可以在虚拟化软件Virtual PC和VirtualBox或Bochs和QEMU一类模拟器软件中运行。