FreeDOS

FreeDOS（曾叫做Free-DOS和PD-DOS）是一个在IBM PC兼容机下运行的操作系统。FreeDOS由许多不同的独立程序组成，这些程序就是整个FreeDOS项目中的“包”。

它主要通过内核来提供磁盘访问和文件系统，以及部分内存管理，但是没有默认的GUI（尽管FreeDos 0.9及以上版本推荐使用OpenGEM）。

FreeDOS支持老式和新式IBM 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最终发布之前，有过一些官方的预发布版:

版本｜状态｜代号｜日期

0.05｜ALPHA｜没有｜1998年1月12日

0.1｜BETA｜Orlando｜1998年3月25日

0.3｜BETA｜Ventura｜1999年4月21日

0.4｜BETA｜Lemur｜2000年4月9日

0.5｜BETA｜Lara｜2000年8月10日

0.6｜BETA｜Midnite｜2001年3月18日

0.7｜BETA｜Spears｜2001年9月7日

0.8｜BETA｜Nikita｜2002年4月7日

0.9rc1｜BETA｜Methusalem｜2003年7月

0.9rc2｜BETA｜没有｜2003年8月23日

0.9rc3｜BETA｜没有｜2003年9月27日

0.9rc4｜BETA｜没有｜2004年2月5日

0.9rc5｜BETA｜没有｜2004年3月20日

0.9｜BETA｜没有｜2004年9月28日

0.9sr1｜BETA｜没有｜2004年9月30日

0.9sr2｜BETA｜没有｜2005年11月30日

1.0｜FINAL｜没有｜2006年9月3日

1.1｜FINAL｜没有｜2012年1月2日

1.2｜FINAL｜没有｜2016年12月26日

1.3｜FINAL｜没有｜2022年2月20日

1.4｜FINAL｜没有｜2025年4月5日

## 发行

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执行。

## 截图

<image>

在Infobox中可查看更多截图。

## GUI

### OpenGEM

唯一被FreeDOS所支持的OpenGEM是一个为了支持DOS环境而正在积极开发的图形界面。如果你正在使用Blair's FreeDOS磁盘或者是GNU/DOS的话，你就已经拥有了OpenGEM的最新版本。

要启动这个图形界面，你只需要切换到c:\并输入gem就可以了。

### SEAL

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

## 外部链接

- FreeDOS Homepage (official)
- FreeDOS Homepage (SourceForge)
- FD-DOC FreeDOS Documentation Project
- Official Download - FreeDOS 1.0
- Summary of FreeDOS Commands
- Virtual Machine in Java with FreeDOS
- How to Create a BootableFreeDOS Floppy Disk
- FreeDOS on a USB Flash Drive
- Install FreeDOS without any removable media。
- Virtual Machine for Microsoft Virtual PC 2007 with FreeDOS 1.0 O.S.
- FreeDOS-32 FreeDOS-32 Homepage(SourceForge)

## 基本资料

- 开发者：Jim Hall与FreeDOS团队
- 内核类别：整块性核心
- 支援平台：x86
- 默认用户界面：DOS 命令行界面
- 操作系统家族：DOS
- 源码模式：自由软件/开放源代码
- 发行日期：1998年1月12日
- 语言：英语
- 运作状态：进行中
- 许可证：GNU通用公共许可证