FreeDOS

FreeDOS（曾叫做Free-DOS和PD-DOS）是一个在IBM PC兼容机下运行的操作系统。FreeDOS由许多不同的独立程序组成，这些程序就是整个FreeDOS项目中的“包”。
它主要通过OP来提供磁盘访问和文件系统，以及部分内存管理，但是没有默认的GUI（尽管FreeDos 0.9及以上版本推荐使用OpenGEM）。
FreeDOS支持老式和新式PC，以及嵌入式系统。像MS-DOS一样，它可以从软盘、硬盘以及ROM启动。 与MS-DOS不同的是，它支持从CD-ROM安装，并且人们可以自由地创建属于自己的定制发行版，而不用为再发行支付使用费。FreeDOS是自由且开源的，遵守GNU（GPL）。但是在其"util"部分中，FreeDOS也包含专有软件，例如4DOS。

**历史**
FreeDOS专案开始于1994年6月26日，当微软宣布不会发售和支援MS-DOS。Jim Hall随后宣布了要开发一个开源替代品的宣言。几个星期内，其他的程序员包括Pat Villani和Tim Norman加入了这个项目。一个内核，command.com命令行解释程序（shell）和核心实用工具通过共享自己编的源码而被创造出来。1.0版于2006年9月23日释出。
在FreeDOS 1.0最终发布之前，有过一些官方的预发布版:

**发行**
FreeDOS不要求任何费用和版税。FreeDOS 1.0提供CD-ROM镜像下载：一个只含有内核和基础程序的基本光盘和一个拥有更多程序（例如游戏、网络和开发）并可作为Live CD使用的完整光盘。另外，还存在一个可以制作Live CD的软盘镜像。这两个版本都提供了源代码。可以使用BitTorrent下载得到。
现在还有一个官方的Live USB版本。
一些电脑品牌可让客户选择预载FreeDOS的电脑，通常供货给已购买大量授权Windows的企业用户，或是需安装其他作业系统的使用者。戴尔有预装FreeDOS的n-series，但是这些产品和运行Windows的同一型号机器相比并没有多便宜，而且又很难买到，戴尔公司因此受到了批评。。另外，戴尔还时常提供FreeDOS电脑一些像双核心一类FreeDOS不能利用的特性。惠普把FreeDOS作为DC5750台式机的一个可选配置。GRC的SpinRite 6引导镜像装载FreeDOS，并显示在底部的启动画面。华硕利用FreeDOS让它们的用户引导主板驱动CD来创建SATA设备驱动光盘给Windows XP SP2以前的Windows版本。

**与MS-DOS的关系**
FreeDOS大部分兼容MS-DOS，并允许一些早期版本的Windows像在MS-DOS上一样运行。
FreeDOS跟MS-DOS相比有一些改进，大部分改进支持了在微软停止支持MS-DOS时不存在的新标准和技术，例如国际化，高级能源管理，内存常驻程序并且综合了ASPI。另外还支持逻辑块寻址和FAT32文件系统（包括从FAT32引导）。尽管由6.22版以前的MS-DOS不能支持这些功能，但是MS-DOS 7.10等的版本有了部分支持。

**兼容性**

**综合**
大部分为DOS 家族所写的程序可以在FreeDOS上有效运行。大部分类型的可执行文件已经被支持：- .COM可执行文件- 标准.EXE16位DOS可执行文件- Borland的16位DPMI可执行文件- 使用DOS 扩展器的32位DPMI可执行文件，例如：
** DOS/32A
** Causeway
** DOS/4GW
** GO32/CWSDPMI
** 还有更多
进一步的，由于HX DOS 扩展器的使用，许多Win32终端程序也能在FreeDOS上运行。


**Windows 1.0至3.xx**
FreeDOS能够兼容1.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。 FreeDOS不能作为这个装载器的替身；然而，它可以被安装并通过一个引导管理器程序在这些系统之间使用，例如FreeDOS中包含的"METAKERN"。

**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一类模拟器软件中运行。

**FreeDOS-32**
FreeDOS-32是一个有不同目标且单独的项目。FreeDOS要再造一个MS-DOS，因此不仅仅有它的特点也有它的局限性。FreeDOS-32希望在其基础上有所扩展和改进。FreeDOS-32可以在FreeDOS和其他DOS 家族之上运行。它被计划成为一个32位系统，与16位系统相比，能提供更强的性能与更多的功能。另外，这个以32位运行的操作系统移除了DOS 扩展器的需要，从真实模式转换到了保护模式，还且拥有了对保护模式程序的支持。

**技术细节**
FreeDOS完整的支持FAT32，并可以从FAT32上启动。根据BIOS的情况，容量达到128G的LBA硬盘，甚至2TB的容量都可能被支持。使用超大容量的硬盘需要小心，因为这到现在只经过非常少的测试，并且一些BIOS虽支持LBA但会在容量超过32GB硬盘上产生错误。一些OnTrack或者是EzDrive 的驱动解决了这些问题。 FreeDOS可以同一种叫DOSLFN的驱动使用，它支持长文件名（参见VFAT），但是大部分早期程序就算装载了这个驱动也不能使用长文件名。
FreeDOS没有支持NTFS或ext2的计划，但是有一些外部第三方驱动能达到使用这些文件系统的目的。为了接受ext2文件系统，LTOOLS（与MTOOLS相当）可以在ext2文件系统上读取和写入数据。NTFSDOS和NTFS4DOS一类产品则提供了对NTFS的支持。 
目前FreeDOS项目内还没有USB驱动， 但是许多新主板BIOS有“Legacy USB”设置，它可以允许USB设备在缺少USB支持的系统（如FreeDOS）上使用。 这一般运用在鼠标和键盘上，但一些BIOS甚至可以让它支持存储设备。  一些提供给存储设备的外部USB驱动（例如DUSE，USBASPI和USBMASS）在一番努力和运气成分之下也能工作。一个更好的运行DOS程序并能同时使用USB设备的选择会是DOSBox，它会从宿主系统中认出USB设备并把它们扮演成“传统端口”设备（例如带有游戏端口的摇杆，并行端口的打印机，而闪存盘则会当作DOS下的硬盘）。

**FreeDOS与Windows XP双启动**
第一种方法是格式化磁盘分区为FAT32，先安装FreeDOS到第一分区，再安装Windows XP到第二分区，开机时就可以看到双启动菜单。
第二种方法就是使用gag4.11.zip，或者是freedos自带的XOSL 1.1.5.zip或者是grub，可以很好的解决。

**可开机软碟**
FreeDOS可以从单一软碟安装。

**内存管理**
FreeDOS中的HIMEM和EMM386内存管理程序为实模式提供了延伸内存（XMS）和扩展内存（EMS）。
EMM386还支持VCPI，它使得DPMI内核与DOS扩展器同FreeDOS和平共处。FreeDOS还包括用于高速硬盘的UDMA驱动，这个驱动能和其他DOS兼容。LBAcache在XMS中留有最近存取的磁盘数据，使之得到更快的存储速度并能较少的直接读写磁盘，其功能类似MS-DOS中的SMARTDRV。
FreeDOS外壳——FreeDOS版COMMAND.COM，又称FreeCOM——可以把自身一部分移动到扩展内存，将多至620KB的常规内存释放出来。这对于只利用常规内存的DOS程序来说非常有用处。
FreeDOS并没有100%的兼容度，但足够运行大部分程序。高质量且使用标准API的程序运行良好。而运行Windows 9x的问题则是源于微软设法阻止他们的产品在非微软DOS执行。

**截图**
FreeDOS editor screenshot
在Infobox中可查看更多截图。

**GUI**

**OpenGEM**
唯一被FreeDOS所支持的OpenGEM是一个为了支持DOS环境而正在积极开发的图形界面。如果你正在使用Blair's FreeDOS磁盘或者是GNU/DOS的话，你就已经拥有了OpenGEM的最新版本。
要启动这个图形界面，你只需要切换到c:\并输入gem就可以了。

**SEAL**
SEAL是DOS上的一个32位的图形界面

**参考**

**参见**
- ReactOS- FreeDOS-32- DOSEMU- DOSBox- Command Prompt- FreeRTOS- GNU/DOS- GRUB- WinImage

**外部链接**
  FreeDOS Homepage (official)date=20171214122749 -  FreeDOS Homepage (SourceForge)date=20120504074929 -  FD-DOC FreeDOS Documentation Project-  Official Download - FreeDOS 1.0date=20080726071712 -  Summary of FreeDOS Commandsdate=20080421194436 -  Virtual Machine in Java with FreeDOS-  How to Create a BootableFreeDOS Floppy Diskdate=20080418075850 -  FreeDOS on a USB Flash Drivedate=2012-07-09 -  Install FreeDOS without any  removable mediadate=20071014105358 。-  Virtual Machine for Microsoft Virtual PC 2007 with FreeDOS 1.0 O.S. -  FreeDOS-32date=20100105045058  FreeDOS-32 Homepage(SourceForge)