歷史
大家都知道,微軟在開發出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.2,於2016年12月推出。
發行
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執行。
製作啟動型隨身碟的最簡單方法之一
有名的功能強大的磁碟工具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能夠兼容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一類模擬器軟體中運行。