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.
Boot disks. A DOS boot disk with fdisk, partition magic, norton, or ghost is still quite useful at times.
Engineering. Lots of engineering programs at univerisity's currently run on older OSes then we'd all like. FreeDOS will allow schools to use older software without having to pay licensing fees for the OS too.
Distribution. It's easier to share old DOS games that no longer work under windows with your
Emulation. Unix people can use this to load DOS programs.
I'm sure I'm probably overlooking most potential uses of FreeDOS but I'm going to call it quits and let the rest of the group figure them out...
"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.
I have found their fdisk to be most useful.
Among other things it recognizes non-dos partitions.
Were that I say, pancakes?
FreeDOS Frequently Asked Questions
Cygwin is a collection of Unix program
for running under windows. If your boss forces
you to work on Windows at work, you can
download Cygwin and have gcc, bash, vi, make, grep,
gawk, sed, sort, bc, wget, etc.
Download the latest Mozilla and you
can pretend your free.
DOS is acutally ok as a pseudo real time operating
system. You can write your code in a tight loop
or have device drivers handle the interrupts properly and actually do things fast enough.It's no substitute for a real time operating system; but's it's good enough for simple stuff. A lot of
"embedded" progamming fits under this category.
Yeah, I think this might not be the best use of development resources, but our school uses OpenDOS for boot disks to reimage machines. It easier to download the free, open licensed versions than to try to find a copy of MS-DOS somewhere. Handy.
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.
You know, I can still remember getting my sweaty paws on my first 486dx33 with 4MB RAM, 1MB graphic card and huge 40MB hard-drive. This was a real "power-user" machine when I spent almost 3000 quid on it :-) Since I used to write in nothing but assembler, it was astonishingly fast after my little sinclair ZX spectrum (which did me proud for many years). I remember saving up to double the RAM so that Doom would run better.
:-)
I think my machine came with Win3.1 installed too, but I only ever started it up to laugh at it and watch it crash
It might seem redundant to re-develop DOS, but for games use, it's an excellent OS, since a game will have 100% of the CPU time, all the time! For realtime use too, it beats most modern OS'. I'd imagine it would make a great OS for a SOHO router/firewall, as no-one could login to it from the outside...
Code, Hardware, stuff like that.
Hey, don't forget
Brix
Coolest. Puzzle Game. Ever.
Y'know, I'm getting a little pissed at this Microsoft acting like they have the only disk operating system in existence.
cp/m works great for me, and I see no reason to change. (Seriously!)
Like I just posted over on the newsforge forum, this would be a godsend for companies that use DOS for their firmware/bios/eeprom flash utilities (perfectly understandably, you don't need or want the memory protection of something more sophisticated than DOS if your goal is to do dangerous, illegitimate, obscene things to various memory-mapped fiddly bits ;-) ). Why? The ability to distribute fully functional dos disks without license hassles, because more and more mainstream i386 users are losing the ability to boot to DOS (i.e. they're transitioning to NT-based Microsoft products or Unix-based things).
News for Geeks in Austin, TX
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.
OK, besides being able to flash my motherboard BIOS, what else will this be used for? I did some embedded dos work years ago and I hated every minute of it....memory management...watt tcp layers for networking....uuugh!
A linux kernel can be very small with lots of stuff built in. Why would anyone use DOS?
-ted
sigh... I used to work for a large "We'll do your taxes and keep most of your refund" company... you guess which one. There were utilities they would give us tech workers in the field to manipulate some tax return data to convert it to another format that was written in qbasic. I was amused and very frightened at the same time.
---
I post links to stuff here
Finally the beginnings of Open Source(tm)'s domination!!!
Now that we have DOS, we can begin reimplementing our 32bit OS on top of it! We'll wrap it around the DOS core and try and sell people on the idea that its still an advanced OS. Then we can finally acheive the reliability and performace of Windows.
Forgive me, its late....
http://www.masturbateforpeace.com/
No, but djgpp does. djgpp is one of those "when will gcc be ported to dos?", "never, it's not possible", ... "hey, here are some patches for gcc in dos" :)
Bill - aka taniwha
--
Leave others their otherness. -- Aratak
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?
DOOM, DOOM and more DOOM.
Knowledge is power. Knowledge shared is power multiplied.
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
The main problem with DOS is that it runs in real-mode, and therefore has a 1mb addressable memory limit.
Aside from this problem, a web server running on DOS could be more scalable than *nix or NT. The reason for this is simple: there would be no operating system overhead. An implementatin that eschewed the kernel paradigm, stayed away from threads and processes, could be able to handle a lot of connections.
I seem to remember there being a program called "dosemu" that was bundled with a lot of linux distributions in the past, which could run a virtualized dos session from *nix. In fact it used FreeDOS by default IIRC. I don't know what became of it though.
But FreeDOS itself is a standalone operating system, a drop-in replacement for older versions of DOS.
"(Man) tries to live his own life as if he were telling a story. But you have to choose: live or tell." --Sartre
I use several DOS-only apps to drive some computer-controlled radios and radio scanners. Also, many 2-way radios I use are programmed with DOS applications that talk to the radio via a serial cable. I was beginning to sweat some things, since DOS (and DOS-capable machines) is harder and harder to find. This will be a great help for many of my projects!
For true near-100% MSDOS compliance, with FAT32 support, multitasking and much more more as well, you want DRDOS-7.03 here. And no, you don't want the unofficial 7.04 and 7.05 which are actually broken in some respects.
DRDOS delivers really good compatibility, because it emulates most (if not all) MSDOS flaws on purpose. The flip side is, it's not free nor is it opensource.
DISCLAIMER : I used to maintain parts of the DRDOS kernel, so I'm biased.
Bart Oldeman is maintaining it at this point. In fact, when I last heard, he was also doing most of the recent work on the FreeDOS kernel. It seems that he is quite the coding machine. Almost every night, an announcement would seem to appear on the kernel mailing list.
At the beginning, they used an old image of a hard drive with FreeDOS installed. You would be able to install it with rpm. A while ago, they managed to improve DOSEmu to the point where you don't have to have the image anymore. You could just read off of an actual partition. In other words, you could dual boot into FreeDOS, or use DOSEmu once you boot into Linux.
Pretty convenient if you ask me.
testing out my trending skills
Am I the only one who, to his shame, misread the title as "Free Denial Of Service" initally?
:)
Oops
On the whole, I find that I prefer Slashdot posts to twitter ones because I don't get limited to 140 chars before
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!
This is silly. DOS is an acronym, standing for Disk Operating System. MS-DOS is just one of many DOSs that have existed over the years. Now PC-DOS was basically MS-DOS, but DR-DOS was an entirely independant codebase. (Well, not entirely, it was developed from CPM by Digital Research who actually owned CP/M, while MS-DOS is derived from a CP/M knockoff called QDOS, but the point is DR-DOS was not an MS-DOS derivative.) But that was hardly the first DOS by any means. AmigaDOS ring a bell? AppleDOS?
I believe the first OS to bear the name DOS actually ran on an ancient (pre-x86) IBM box, but I could be wrong. At any rate, there is no trademark infringement problem with the acronym DOS, it was in wide use well before MS-DOS came around.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
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
Does closed-source software not offer the same merits? I used DR DOS for a while too. PC-DOS also existed. Then there was GEM vs Windows, and later on we had OS/2. Let's not over-exaggerate the virtues of open-source - next we will be claiming, rightly but superflously, that it low in cholesterol!
Fuck vi! To hell with emacs!
Go edlin!
If anyone has a trademark for DOS, it should be IBM. IBM had some sort of Disk Operating System called DOS used for transitioning from second generation to third generation mainframes. DOS ran on IBM mainframes long before anybody even thought about "Personal Computers".
The only reason why DOS can be considered real-time is that it completely stays out of the way. DOS has the nature of a code library more than an operating system in that DOS only provides services in the form of extra system calls. It does not provide multi-threading, inter-process communication, timers, interrupt handling with controlled latency, or other things that normally are considered RTOS (Real-Time Operating System) services. DOS is not an RTOS, it is just a boot-loader for your own real-time programs.
You could just as well have used a simple boot loader together with a function library such as libc to get the same functionality.
This is not intended to bash against DOS; DOS might be the perfect choice for many applications. I just don't want people to confuse DOS with actual real-time operating systems.
In Windows XP,
Open 'My Computer'.
Right Click on your Floppy Disk Icon.
Select Format.
Click the button that says "Create an MS-DOS startup disk"
Format the disk.
Look at that, you have a DOS disk!
(Of course, this feature doesn't exist according to the average slashdot user, since XP is too busy giving out all your personal information, crashing, refusing to run any software, reporing you to the FBI, shutting itself down, keeping track of everything you do and going out with your girl when you're not looking.)
What is so amazing about DOS is how bad its APIs really were and how little it managed to do on what was, at the time, a pretty powerful machine. DOS is really the bottom of the barrel when it comes to operating systems. Yes, having a small single-tasking OS as a choice is nice, but, gosh, would it be nice if it were something, anything, other than DOS.
I installed it on vmware, and it works great !!
but i cant run seal. Any basic vga driver ?
And the best thing, we have tab completion, vim, etc.
I used to play with DOSEMU alot a while back. While I appreciate the work that FreeDOS has done, I always ended up dragging up the old floppies and using MS-DOS for my DOSEMU images because FreeDOS didn't support lredir. Without lredir, getting files to and from the DOSEMU enviroment was a bit of a hassle.
What's the reason that lredir can't work with FreeDOS, and is it being addressed?
I've been using FreeDOS recently to run old DOS door games on a Linux bbs, and it works almost perfectly (with the "press F5/F8 to skip/step through autoexec & config.sys" disabled, of course). Unfortunately, I haven't been able to get a version of Dosemu working with virtual com ports, but the door games mostly work fine in local mode.
Only game I've found serious problems with so far is TradeWars.. it seems that it needs share.exe to run, and it doesn't like the FreeDOS version of share. Anyone know a way around that problem?
I think they still read it, but I haven't seen a MacOS release that can format a ProDOS disk for a while. DOS 3.3 is right out; I think Apple chose to shunt it aside in favor of ProDOS a very long time ago.
/Brian
I was recently searching for alternatives to purchasing new thin clients at work, when I ran across the FreeDOS project.
Right now, we run Citrix Metaframe on a "farm" of 6 servers, and employees do 90% of their work from within a Citrix ICA session. Most of their computers are 3+ year old Dell PCs, still running Windows NT 4.0, that have the Citrix "Program Neighborhood" software loaded on them.
Although some people will still need a full-blown PC running Windows because they use AutoCAD or other specialized software packages, the majority of our users just need basic applications that are available to them in Citrix.
We bought 20 Wyse thin clients, in a pilot project to replace older/unneeded PCs with them - but they haven't been too reliable. (I think 6 of the 20 have been back for repair after the first year - and Wyse takes over a month to ship repaired units back to us!) On top of that, they're not really that cost-effective, with the price of regular PCs dropping so low these days.
I realized I could "recycle" a bunch of our oldest PCs (even Pentium 100's!) by loading FreeDOS on them and using the DOS Citrix ICA client. Now, these old machines boot up in 10 seconds or so, right into a Windows 2000 desktop - served by Citrix, and they cost us nothing (besides a Windows terminal server connection license).
Now, the only issue I'm still left with is re-imaging. I tried using Symantec Ghost to make drive images of my FreeDOS/Citrix ICA installation - but when I Ghost it back to a system with a different size hard drive, sometimes it won't boot up. As far as I can tell, FreeDOS must save some type of information about the hard drive geometry in a file when you run a "SYS" command to make the drive bootable. Ghost must preserve this drive geometry data in the Ghost image, causing my problems. (If I boot from a bootable FreeDOS floppy and do a "SYS C:" on a freshly Ghosted drive that isn't booting, it works fine after that.)
Also the the IBM EE (Easy Editor) will give you terminal braindamage (pun intended). Warez MS EDIT.COM and avoid at all costs.
If you get edit.com, don't get the edit.com from DOS 5 or 6, as that requires QBasic, can only have one file open, can't edit binary files, and can only edit up to a 64 KB file. You want edit.com from Windows 95, 98, or ME.
If you don't want to pirate anything, you can get DJGPP, which is a port of the GNU system to PC DOS platforms (MS-DOS, DR DOS, FreeDOS) with an i386-series CPU. It includes a port of GNU Emacs. And if you don't like Emacs, there's always GNU Nano, a clone of Pico that has also been ported to PC DOS, or SETEDIT, a free clone of the Borland editor for DOS.
Will I retire or break 10K?
I've written a number of data conversion utilities. Often it takes less than 100 lines, and qbasic was pretty good for these little projects because there is no overhead to starting the program, and because basic has always had pretty good string handling. If it looked necessary to process the input byte by byte, or if a lot of data was going to be cranked through it, I'd use c because it runs faster, but often qbasic did the job in about the size of a c "hello world" program.
Example: a circuit board assembly plant gets component X-Y locations in many different file formats from many different customers' CAD systems, and had to be converted to the format used by our placement machines. All these were text files in columnar format, but the X,Y coordinates might be in 1/1000 inches or millimeters, X, Y, and part columns could be in different orders, other information might or might not be included, columns could be separated by tabs or by spaces, if space separated the column locations could differ. Nowadays, the machines come with pretty good import utilities, but that wasn't always true. So, I used to write conversion programs. 1st generation was a different qbasic program for every format received; it would read a line, pick out the x, y, and part strings by position using MID$, or by searching for tabs, convert millimeters to mils if needed, then write it out in the machine format. For the second generation, we had a Visual Basic import one of my programs and dress it up with a form where the user identified the x, y, and part columns, so one program handled all formats.
If I have to do something like this now, I use Excel -- it has a pretty good text file import routine -- and then manually rearrange the columns for the output... But in the 1980's, qbasic was a pretty good tool for small jobs. And it was easy to move from that to QuickBasic (a compiler you bought separately), which could do big projects. I wouldn't recommend it for compilers, an OS, or any 100-man project, but for something that took 1 coder a month to a year, QuickBasic was pretty good.
[goes to look] It says r5 in the readme.
I ran a performance comparison back whenever I dragged it home, and found that while performance was identical for pure text apps, the moment video display came in view, DRDOS's DPMI had 10% better performance.
Also, on 3 different systems (M$DOS 6.22, NWDOS7, and Win95 OSR2.0b's DOS7) we demonstrated CWSDPMI to have a memory leak. It chews up both upper memory and XMS. The application using the DPMI support doesn't matter (Emacs was one of those in use, but even running CWSDPMI all by itself will do it). I reported this to CWS (and to someone else who overheard the newsgroup conversation) in tiresome detail and was told "it must be something wrong with your OS". Right, with all three of 'em?? It was very easy to demonstrate on NWDOS, more difficult on M$DOS. But we DID document it.
Have noticed that DRDOS's DPMI and Win95 also *sometimes* eat upper memory and XMS, but at nowhere near the rate nor the consistency that CWSDPMI does.
I backtracked the bug, and it came in with GO32 v2.0 It is *not* in GO32 v1.1.
The PMode DOS extender has a similar problem (only worse), but I didn't bother to track it down. Tho I did record (somewhere!) traceback dumps from its crashes.
DOS4GW does not have the problem.
~REZ~ #43301. Who'd fake being me anyway?
Yeah, strictly speaking that's true. But you're probably reading way more into that than reality warrants.
The kernel (particularly a DOS kernel, a true micro-kernel if ever there was one) doesn't need any more memory. Now I'm not one of those who will tell you they used MSDOS 1.0 (when MSDOS 1.0 came out, I was using a computer, but it sure as hell wasn't an x86 toy) but I started using MSDOS at version 3, and I've never seen a version of it that didn't allow applications to access more memory.
EMS allows any application program to access several megs of ram, very easily, through a sliding address translation frame located in high memory, with minimal overhead. This was apparently old hat among the more experienced x86 hands when I joined the club, in the DOS 3.x days, so it's hardly fair to claim that 1mb barrier as a limitation of the architecture.
Nice troll though, most of the readers are obviously completely ignorant of the actual mechanics of DOS.
*sigh* You made me feel old, you suck.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.