Operating systems based on MS-DOS still enjoy a huge market segment within the development community of embedded systems design. There are many reasons for this, most importantly is that MS-DOS can hardly even be called an operating system by many modern measurements. Almost all DOS-based software usually has exclusive control over the computer while it is running, and a major bonus is that the footprint for the operating system is usually very small. You can put a stripped down version of FreeDOS (a current MS-DOS clone that is still being updated) that fits in just 100K of hard drive space. Even less is required within the memory of the computer. You can even still purchase MS-DOS 6.22, but it must be from specialized software distributors who are under license from Microsoft, and it is no longer "supported" by Microsoft in terms of any software updates, even for known bugs.
Strengths and WeaknessesEdit
The major advantage of DOS is also its largest drawback. By having so little actually operating in the computer, the software developer for DOS must perform many tasks traditionally thought of as something in the operating system. For instance, DOS doesn't have built-in capability for scheduling or multithreading. You must also install interrupt handlers directly into the software application, and API calls tend to be through software interrupts rather than some other more direct procedural method instead. Equipment vendors supporting DOS tend to follow an approach of either providing raw spec sheets for their equipment, or writing a pre-compiled binary object library that has to be linked into your software using a specific compiler.
There is a huge software base for developing software in DOS, which is another major strength. Pre-written (even free) libraries for doing things like event scheduling and multi threading do exist for DOS, as well as GUI interface models and support libraries for most standard equipment peripherals. You can even find good compilers for DOS environments that compile to 32-bit protected mode as well, so you are not restricted to just the 8086 instruction set either.
DOS is a good base OS to build a custom RTOS that has specific features that you need without the extra cruft that you don't. It does require a little bit more time to put these extra features that you may need on a specific project, so it is more a trade off of time vs. money. If you have the time to make a well-crafted piece of software fit into a very small memory footprint, DOS as a RTOS is the way to go. It also allows a generally long shelf time for a project that once completed doesn't have to be changed as often to fit obsoleting chip technologies.
http://www.freedos.org The home of the FreeDOS project.