FreeDOS
Jim Hall writes: "Newsforge [ed. note: Newsforge and Slashdot are both part of OSDN]
is running an article
about the FreeDOS Project.
If you don't know: FreeDOS aims to be a complete, free, 100% MS-DOS compatible operating system, and is released under the GNU General Public License. It's a good read. From the article: 'But, in the true spirit of Open Source, FreeDOS is not content to be an imitation of the existing technology. ... Open Source talks about freedom to use, but it also means freedom to choose. FreeDOS gives people another choice. If you don't want DOS, try something else. But if DOS might be the key for that special device you are building, check out FreeDOS. It is definitely worth a look.'" We did an interview with Hall two years ago - looks like the project has come a long way since then.
That brings back memories. The article asks, "When was 270MB enough for anything lately?" When I had a 20MB drive on my hand-me-down Leading Edge XT - and that was big. Really though, this is good. I've been watching them for some time, and their project can only become more useful as Microsoft makes sure that it's impossible to get a DOS license. Open source developers are interestingly enough the only people protecting the world from obsolescence. It's a shame Linux isn't really installable in its modern incarnations on any machine older than a 486, but good old minix is still available at http://www.minix.org. Remember, this was Linus' base for linux. Minix, unlike DOS, is already fully TCP/IP ready... there is a good site describing how to get on the internet using an XT and Minix. Also, minix.org reminds me of the way linux.org looked about five years ago, pre-commercialization.
"The site www.freedos.org is running Apache/1.3.22 (Unix) PHP/4.1.1 FrontPage/4.0.4.3 on Linux."
I remember checking this website out awhile ago on one of my random surf-abouts. I'm quite impressed that they've made such progress since then.
offtopic part: It struck me when I visited freedos.org how many open source websites look similar. Then it occurred to me how the effect is a kind of brand recognition. Or, even a catalog of free software. Neat.
Our company still uses DOS for production line control, because there are some great legacy apps, and it is STABLE.
It will interesting to see what the "thousand eyes" does with regards to improving this OS.
If you got a $100 bill, put your hands up...
After over a decade of work, the project has recreated all of the userland DOS applications including COMMAND.COM, XCOPY.EXE, FDISK.EXE, and many more. The powerful .BAT shell language has been cloned. Even enterprise-level development environments such as QBASIC are complete.
However, the goal of creating a new, next-generation DOS kernel remains unfulfilled. Perhaps the bar was set too high. As of now, the system runs on an implementation of IO.SYS written by some Scandinavian college kid.
Finally, and slashdot story I know everything about :-)
I found the project ~2 years ago, while attempting to
write a DOS extender, and I have been playing with
it ever since.
FreeDOS is only a DOS in that it implements the DOS API,
and does not provide "hardcoded offsets" like commercial DOSes
(for the sane minds, back in DOS, major application
developers disassembled the undocumented kernel
and found what effects of reading/writing/jumping-to
a particular address has on the system. Usually,
those "effects" were interesting features, which
cutting-edge apps made use of.)
FreeDOS does not do that, but it has everything
else DOS had; Think of it like this, it runs SoftIce without a patch or recompilation!
and SICE is a system debugger, that knows way too
much about the kernel.
I tried to hack the kernel by just reading the author's
website -he had an overview of how everything went- but there were no contributing developers.
So dump me (or was it the combination of coffee and teen age?)
I poured on the sources for weeks, without ever
scratching the surface. Then I found "The FreeDOS kernel"
in a second hand store!
Here is where things get interesting. If you ever
hacked DOS, you know what the PSP, UMB, FAT, and
all the other acronyms, which are the hallmarks of poor design and implementation
exposure, are.
Everything is there!
I know Pat is a creative man (I saw his model trains.)
and I know he was targeting the heaps of text
and wetware out there for DOS, but the reimplementation of
everything good and bad about DOS is painfully
ugly.
The chapter on memory management is an example of
this. The memory allocation algorithm is too
complicated for a single tasking OS (sic) just for
the terminology, if not for anything (arenas, banks, segments, overlaying, extending, etc.)
Wait before you point the finger of blame on the
intel architecture. DOS only sees a perfect 16bit
machine, only authors of multi-tasking OSes and
DOS extenders need to worry about memory management
services implemented in the 32-bit part of the
machine.
So all the complexity, is for 16-bits only!
TO spare you the thrill, FreeDOS is an interesting
hackable piece, only if you come from a DOS background.
It could serve as an eye opener for luckier developers
(Java guys I am looking at you.)
Also, for the casual DOS user, it is an excellent
alternative to the realthing (I kid you not, single
tasking is not fun, use sparingly.)
It runs all the important apps, 4DOS, turboC, SoftIce,
several editors, and a host of other well behaving
apps. It even has its own GUI desktop and a web
browser.
Yeah, I built my model railroad controller with an embedded 386 and PC-DOS so I'm a bit biased, but DOS still has its place in today's world.
Oh, and to run a DOS PC without a graphics card, just enter (or put in autoxec.bat) ctty com1:. The serial port will be used as console (use mode to set parameters).
Did you know you can fertilize your lawn with used motor oil?
I'm currently working on a MAME cabinet and when I was first setting up the software I determined that DOS was going to be my best bet (most stable, and I have a lot of DOS experience). It made sense to keep what is essentially going to be an embedded solution as simple as possible...
Anyways, I eventually found my old DOS 6.2 disks (took me the greater part of a week) but one of them had gone bad. After another week I found an image of that disk online and finally was able to get the system running. Of course *after* all of that I find out about FreeDOS and I'm currently in the process of moving everything over to it.
But there's an even bigger benefit! I've had such a good time building this system I'm seriously looking into starting a small business building custom MAME cocktail cabinets (people send the old computers and I do the conversion) and now the only software that I can't legally include with the system is the game ROMs. W00t! I might yet be able to make a business out of this!
A|Q|U|A
So many motherboard bios update utilities require that you boot DOS to run 'em. It would be grand if the bios folks would start making bootable update disks available, with FreeDOS all ready to go so we don't have to try to find a dusty old copy of DOS 5.0 or 3.2 to update the bios on a shiny new P4 motherboard.
If you're a zombie and you know it, bite your friend!