FreeDOS

From Wikipedia, the free encyclopedia
(Redirected from FreeCom)
Jump to navigation Jump to search

FreeDOS
FreeDOS 1.1 default shell, FreeCOM
DeveloperJim Hall & The FreeDOS team
Written inAssembly language, C[1]
OS familyDOS
Working stateCurrent
Source modelOpen source[2]
Initial release16 September 1994; 31 years ago (1994-09-16)[3]
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Available inEnglish, German, Dutch, French, Turkish, Swedish, Spanish
Supported platformsx86
Kernel typeMonolithic kernel[4]
Influenced byMS-DOS
Default
user interface
Command-line interface (COMMAND.COM)
LicenseGNU GPL[2] with various different licenses for utilities
Official website{{#property:P856}}

FreeDOS (formerly PD-DOS) is a free software operating system for IBM PC compatible computers. It intends to provide a complete MS-DOS-compatible environment for running legacy software and supporting embedded systems.[6] FreeDOS can be booted from a floppy disk or USB flash drive[7][8] and is designed to run well under virtualization or x86 emulation.[9]

The FreeDOS project began under Jim Hall in 1994, and the first stable version was released in 2006. Unlike most versions of MS-DOS,[10] FreeDOS is composed of free software, licensed under the terms of the GNU General Public License.[2] However, other packages that form part of the FreeDOS project include non-GPL software considered worthy of preservation, such as 4DOS, which is distributed under a modified MIT License.[11]

Distribution

[edit | edit source]

FreeDOS 1.1, released on 2 January 2012,[12] is available for download as a CD-ROM image: a limited install disc that only contains the kernel and basic applications, and a full disc that contains many more applications (games, networking, development, etc.), not available as of November 2011 but with a newer, fuller 1.2.[13] The legacy version 1.0 (2006) consisted of two CDs, one of which was an 8 MB install CD targeted at regular users and the other which was a larger 49 MB live CD that also held the source code of the project.[13]

Commercial uses

[edit | edit source]

FreeDOS is used by several companies:

  • Dell preloaded FreeDOS with its n-series desktops to reduce their cost. The firm has been criticized for making these machines no cheaper, and harder to buy, than identical systems with Windows.[14]
  • Hewlett-Packard provided FreeDOS as an option in its HP Compaq dc5750 Small Form Factor PC, Mini 5101 netbooks and Probook laptops.[15][16][17] FreeDOS is also used as bootable media for updating the BIOS firmware in HP systems.[18]
  • FreeDOS is included by Steve Gibson's hard drive maintenance and recovery program, SpinRite.[19]
  • Intel's Solid-State Drive Firmware Update Tool loaded the FreeDOS kernel.[20]
  • Many motherboard vendors recommend a bootable FreeDOS for running low level BIOS and firmware updates.

Non-commercial uses

[edit | edit source]

FreeDOS is also used in multiple independent projects:

Development and version history

[edit | edit source]
FreeDOS version history[5][27][28]
Version Status Codename Date
0.01 ALPHA None 16 September 1994
0.02 ALPHA None December 1994
0.03 ALPHA None January 1995
0.04 ALPHA None June 1995[29]
0.05 ALPHA None 10 August 1996
0.06 ALPHA None November 1997
0.1 BETA Orlando 25 March 1998
0.2 BETA Marvin 28 October 1998
0.3 BETA Ventura 21 April 1999
0.4 BETA Lemur 9 April 2000
0.5 BETA Lara 10 August 2000
0.6 BETA Midnite 18 March 2001
0.7 BETA Spears 7 September 2001
0.8 BETA Nikita 7 April 2002
0.9 BETA None 28 September 2004
1.0 FINAL None 3 September 2006
1.1 FINAL None 2 January 2012
1.2 FINAL None 25 December 2016
1.3 FINAL None 20 February 2022
1.4 FINAL None 5 April 2025

The FreeDOS project began on 29 June 1994, after Microsoft announced it would no longer sell or support MS-DOS. Jim Hall, who at the time was a student,[30] posted a manifesto proposing the development of PD-DOS, a public domain version of DOS.[31] Within a few weeks, other programmers including Pat Villani and Tim Norman joined the project. Between them, a kernel (by Villani), the COMMAND.COM command line interpreter (by Villani and Norman), and core utilities (by Hall) were created by pooling code they had written or found available.[32][33] For some time, the project was maintained by Morgan "Hannibal" Toal. There have been many official pre-release distributions of FreeDOS before the final FreeDOS 1.0 distribution.[34] GNU/DOS, an unofficial distribution of FreeDOS, was discontinued after version 1.0 was released.[35][36]

Blinky, the mascot of FreeDOS

Blinky the Fish is the mascot of FreeDOS. He was designed by Bas Snabilie.[37]

Compatibility

[edit | edit source]

Hardware

[edit | edit source]

FreeDOS requires a PC/XT machine with at least 640 kB of memory.[38] Programs not bundled with FreeDOS often require additional system resources.

MS-DOS and Win32 console

[edit | edit source]

FreeDOS is mostly compatible with MS-DOS. It supports COM executables, standard DOS executables and Borland's 16-bit DPMI executables. It is also possible to run 32-bit DPMI executables using DOS extenders. The operating system has several improvements relative to MS-DOS, mostly involving support for newer standards and technologies that did not exist when Microsoft ended support for MS-DOS, such as internationalization, or the Advanced Power Management TSRs.[39] Furthermore, with the use of HX DOS Extender, many Windows Console applications function properly in FreeDOS, as do some rare GUI programs, like QEMM and Bochs.[40]

DOS-based Windows

[edit | edit source]

FreeDOS is able to run Microsoft Windows 1.0 and 2.0 releases. Windows 3.x releases, which had support for i386 processors, cannot fully be run in 386 Enhanced Mode,[41] except partially in the experimental FreeDOS kernel 2037.[citation needed]

Windows 95, Windows 98 and Windows Me use a stripped-down version of MS-DOS. FreeDOS cannot be used as a replacement because the undocumented interfaces between MS-DOS 7.0–8.0 and Windows "4.xx" are not emulated by FreeDOS; however, it can be installed and used beside these systems using a boot manager program, such as BOOTMGR or METAKERN included with FreeDOS.[citation needed]

Virtualization

[edit | edit source]

FreeDOS is designed to work well with virtualization software such as VirtualBox and VMware. The installation process is identical to real hardware. It is also possible to install FreeDOS on DOSBox and its derivatives. By doing so, it provides additional functionality not present in the emulator.[42][43]

File systems

[edit | edit source]
FreeDOS's default text editor—a clone of the MS-DOS Editor, with added features

FAT32 is fully supported and is the preferred format for the boot drive.[44] Depending on the BIOS used, up to four Logical Block Addressing (LBA) hard disks of up to 128 GB, or 2 TB, in size are supported.[45] There has been little testing with large disks, and some BIOSes support LBA, but produce errors on disks larger than 32 GB; a driver such as OnTrack or EZ-Drive resolves this problem.[citation needed] FreeDOS can also be used with a driver called LFNDOS to enable support for Windows 95-style long file names,[46] but most pre-Windows 95 programs do not support long file names, even with a driver loaded. There is no planned support for NTFS, ext2 or exFAT, but there are several external third-party drivers available for that purpose. To access ext2 file systems, LTOOLS, a counterpart to Mtools, can sometimes be used to copy data to and from ext2 file system drives.[citation needed]

See also

[edit | edit source]

Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

References

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  13. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  14. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  16. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  17. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  18. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  19. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  20. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  21. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  22. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  23. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  24. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  25. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  26. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  27. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  28. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  29. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  30. ^ Hall, Jim interviewed on the TV show FLOSS weekly on the TWiT.tv network
  31. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  32. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  33. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  34. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  35. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  36. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  37. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  38. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  39. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  40. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  41. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).[permanent dead link]
  42. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  43. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  44. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  45. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  46. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).

Further reading

[edit | edit source]
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). [1]
[edit | edit source]