Navigation
Highlights

Release 0.0.5

The latest release, alpha testing, unstable. See "downloads".

2005-06-01

Links
Documentation

Project overview

Concerning FreeDOS-32

FreeDOS-32 (or FD32 for short) is a 32-bit operating system under development for the IA-32 (also known as i386) platform, designed to be "a 32-bit DOS".

Goals

The FreeDOS project aims full compatibility with MS-DOS, and, as such, no further improvements to the DOS architecture are planned.

Our project has a complementary goal: to provide a heavily modularized framework to enable features that legacy DOS systems don't have, like 32-bit flat memory model, optimized I/O, support for many file systems, compatibility layers, support for modern standards... Although this may put limitations to compatibility with legacy DOS, this is a secondary issue for us.

FreeDOS-32 aims to allow total control and full customization, providing a default protected mode environment as simple as possible: no memory protection, no paging and no multitasking, even no file system. Features can be added by loading appropriate modules or drivers. In this respect, it does not necessarily have to be a "DOS system", as the resulting environment depends on the modules loaded on top of a very general minimal core.

Moreover, FreeDOS-32 can also be started from a real mode DOS, such as FreeDOS, as you could with Windows 3.1. In this way you can use FreeDOS if you need a 100% MS-DOS compatible operating system, switch to FreeDOS-32 if you need its different features and return to your FreeDOS session when you have done.

Licensing terms

FreeDOS-32 is distributed under the terms of the GNU General Public License (GPL), the same license as Linux, thus FreeDOS-32 is free software.

This means that you have full access to the source code and you are free to study it, modify it and redistribute it, provided that you do it using again the GPL as license. This is what we do when we eventually use or refer to the source code from other projects covered by the GPL, for example FreeDOS, CWSDPMI, and even Linux.

Development tools

FreeDOS-32 is mostly written in C, although a few i386 assembly is occasionally used. We use the GNU development tools (like the GNU Compiler Collection, gcc), either the Linux version or the DOS version (that is DJGPP). For testing and debugging, we often use the Bochs personal computer emulator.

Last but not least, FreeDOS-32 is based on a free library to develop operating systems called OSLib, by Luca Abeni et al. Thanks to OSLib, FreeDOS-32 is a MultiBoot operating system, that can be started using any MultiBoot-compliant bootloader, such as GNU GRUB.

Concerning a 32-bit DOS

Even if many people consider them obsolete, DOS systems are still popular, especially for applications where low-end hardware is used for dedicated tasks. This is basically because, unlike most modern desktop operating systems, a DOS system is tiny and allows total control over the hardware.

It is a fact that a DOS system has several limitations, too, due to its real mode architecture. To run DOS applications in protected mode (which enables access to the whole system memory, as well as memory and I/O protection) on top of the real mode DOS, the DOS Protected Mode Interface (DPMI) was created, its services implemented by a special program called the DOS Extender, or DPMI Server.

We intend to provide a native 32-bit protected mode environment for DPMI applications, although we don't enable any protection by default. Our first goal is to support DPMI applications created with the DJGPP compiler.

But being FreeDOS-32 fully modular, we could extend the "DOS concepts", providing new execution environments. For example at present we can start very simple Win32 console applications.