How (And Why) FreeDOS Keeps DOS Alive (computerworld.com.au)
FreeDOS was originally created in response to Microsoft's announcement that after Windows 95, DOS would no longer be developed as a standalone operating system, according to a new interview about how (and why) Jim Hall keeps FreeDOS alive. For its newest version, Hall originally imagined "what 'DOS' would be like in 2015 or 2016 if Microsoft hadn't stopped working on MS-DOS in favor of Windows" -- before he decided there's just no such thing as "modern DOS". An anonymous Slashdot reader writes:
No major changes are planned in the next version. "The next version of FreeDOS won't be multitasking, it won't be 32-bit, it won't run on ARM," Hall said. "FreeDOS is still intended for Intel and Intel-compatible computers. You should still be able to run FreeDOS on your old 486 or old Pentium PC to play classic DOS games, run legacy business programs, and support embedded development."
By day, Hall is the CIO for a county in Minnesota, and he's also a member of the board of directors for GNOME (and contributes to other open source projects) -- but he still remembers using DOS's built-in BASIC system to write simple computer programs. "Many of us older computer nerds probably used DOS very early, on our first home computer..." he tells ComputerWorld. Even without John Romero's new Doom level, "The popularity of DOS games and DOS shareware applications probably contributes in a big way to FreeDOS's continued success." I'd be curious how many Slashdot readers have some fond memories about downloading DOS shareware applications.
By day, Hall is the CIO for a county in Minnesota, and he's also a member of the board of directors for GNOME (and contributes to other open source projects) -- but he still remembers using DOS's built-in BASIC system to write simple computer programs. "Many of us older computer nerds probably used DOS very early, on our first home computer..." he tells ComputerWorld. Even without John Romero's new Doom level, "The popularity of DOS games and DOS shareware applications probably contributes in a big way to FreeDOS's continued success." I'd be curious how many Slashdot readers have some fond memories about downloading DOS shareware applications.
... before he decided there's just no such thing as "modern DOS" ...
Well, there was a "modern MS DOS", it was MS OS/2 1.x.
Single user and no security what-so-ever. IBM should have used the 68000 combined with a proper OS.
Single user single tasking was just fine for the day's hardware and the user needs. *nix would just slow the hardware down for no good reason, PCs weren't for remote time sharing use. Plus *nix, and its software "ecosystem" wasn't really a good match for a 16-bit architecture.
Yes, the 68K was a much nicer processor. The segmented memory models of the x86 were a major source of bugs. 32-bit registers would have been nice.
MS and IBM had a proper OS for the hardware of that era, it was 16-bit OS/2. The market said no thank you.
I remember some of the really early DOS games that were written to basically run correctly and be playable on (IIRC) a 4.77MHz 8086/8088.
Then I remember trying to play those same games on a (again, IIRC) 12MHz 80286 system. That lunar lander would just immediately plummet into the ground or crash into the side of a mountain, and try as I might - there was nothing I could do about it.
#DeleteChrome
Yes, GW-BASIC.
"Many of us older computer nerds probably used DOS very early, on our first home computer..."
And here I think of DOS as a 'newer' system
"First they came for the slanderers and i said nothing."
Have an old legacy proprietary DOS program that you need for your business? Then throw it into /dev/null, and hire some talented programmers to write a modern free open-source replacement for GNU/Linux, that will get published on github.
Why, that just sounds like an absolutely wonderful idea. Why would anyone insist keeping on using some old software that has been paid for many moons ago, and we all by now know exactly where and when it does and doesn't work because it's been doing the same task for 20 years? Why not instead pay thousands and thousands of dollars for someone to attempt to write a replacement for it, possibly reverse-engineering a proprietary and undocumented hardware interface (costing thousands and thousands of dollars more more in time) only to give it all away to the handful of other people on the planet who also use the same version of WHATEVER.EXE that I'm using?
Yep, what a smashing idea!
Specialist Mac support for creative pros, Melbourne
I still use FreeDOS regularly to run 20 year old research software. I use DOSEMU, which lets me edit files and move data around in Linux, and then read them into the DOS program without stopping and starting a virtual machine. So I have a DOSEMU terminal open, and my favorite text editor next to it, and maybe tail the log file in another terminal, all at the same time.
That old DOS software is still superior to any new point-and-click software. The config files leave a precise record of what parameters I set, and the logs leave a precise record of the result. It's fully auditable and reproducible, which is what science should be. And it will still run just as well as the day it was bought in another 20 years from now. The director tried to get us to buy some 'modern' software to do the same task. It 'only' cost $5000 and ran in MS Access. He was surprised when I refused the offer. Does it leave a written record of what I did? No. Are the results reproducible? No. Will it still run in 20 years time? Fuck no. Some things aren't broken yet, leave them alone.
Human Rights, Article 12: Freedom from Interference with Privacy, Family, Home and Correspondence
It has both no security and perfect security. Security isn't in the OS, but there are also few vulnerabilities. The applications own the security. So there's no reason DOS couldn't be used, it would just need appropriately secure applications to meet your requirements.
Learn to love Alaska
These days, you can buy a BeagleBone Black or similar system-on-chip computer for very cheap, it comes with a full-blown GNU/Linux development environment that beats the pants off DOS.
For some things, yes. If you need a hard realtime system with sub-microsecond timing requirements and deterministic interrupt handling, Linux isn't going to do it, but DOS will. Even RTLinux couldn't meet those kinds of requirements.
Please stand clear of the doors, por favor mantenganse alejado de las puertas
At least historically, for a long time, it certainly was. I've seen some utilities push away from it now, but for a very long time you'd load a FreeDOS floppy or other volume that contained the BIOS update .EXE and the update itself.
Or, you know, use FreeDOS to run it on modern hardware - which is kind-of the point of the article.
Specialist Mac support for creative pros, Melbourne
I am seizing Control of this article and asking Hey, Slashdot, if there were a modern DOS, what would it be like?
I know you're posting as an AC so probably won't get seen, but I'll reply anyway because it's an interesting question.
In short, you get Linux.
We discussed this in great depth in various places, and if you try to project a "modern" DOS to today, you end up with a 32-bit multitasking kernel that provides native networking and hardware abstraction. You lose binary compatibility; applications written for the newer "modern" DOS won't run on, say, MS-DOS 6. But that wouldn't be surprising; many programs written for MS-DOS 6 wouldn't run on MS-DOS 3, either. You need to provide some method of forward compatibility, of course. To run a "classic" DOS application on the "modern" DOS would require some kind of emulation environment.
And if you want that, run Linux. Because Linux is a 32-bit multitasking kernel that provides native networking and hardware abstraction. You don't have binary compatibility; applications written for Linux won't run on MS-DOS 6. To run "classic" DOS applications on Linux requires an emulation environment like DOSemu (which requires FreeDOS, by the way).
Once you break binary compatibility, a "modern" DOS isn't really DOS anymore. What's the point in a "modern" DOS if you can't run classic DOS programs on it? Because that's not DOS, it's something else.
The number of older CNC machines I have kept running because of Freedos is huge. I have made a shto-ton of cash on smaller machine shops where "professional" IT companies have told them that they cannot fix the control system for their CNC machines.
I come in at $95 an hour and make it work again, custom is elated and trash talks the "professional" company that said it was impossible, I get more calls to fix more from other companies they spread the world on... Rinse and Repeat.
This was 10 years ago when I was almost doing 2-3 CNC repair jobs a week. Now it's maybe one every 2 months, and I don't even do IT professionally anymore.
Do not look at laser with remaining good eye.
Or just run it in DOSBox on any OS. For most software that's the obvious thing to do.
This space intentionally left blank
For shareware we relied on floppy disks and CDs. Most of them came attached to some magazine.
I wonder how many new devs know what "shareware" was? For those wondering: shareware was a concept where devs created something and gave away a limited version of it for free. And you could share that limited version with anyone. Shareware games usually were the first "chapter" or first few levels. Shareware DOS applications usually just nagged you to buy them after 30 days - but I don't remember many that actually stopped working if they weren't registered.
I mentioned some shareware in the interview, but I played a lot of Wolfenstein 3D, DOOM, Commander Keen, Rise of the Triad, Epic Pinball, Jill of the Jungle, and Duke Nukem back then. These are all DOS shareware games.
I used a lot of DOS shareware applications for other things. AsEasyAs and GalaxyWrite got me through a lot of my university physics program. I analyzed lab data in AsEasyAs (because the old saying is "as easy as 1-2-3" ... and Lotus 1-2-3 was a popular commercial spreadsheet ... get it?) and wrote class papers in GalaxyWrite (not as powerful as WordPerfect, but great for papers). I also remember a bunch of other DOS shareware applications but can't remember their names anymore: a modem-terminal program, an equation solver, etc.
After all, Microsoft and the DOS community messed up to many points badly. For example the "driver" concept was basically unused. Few people ran ansi.sys because it meant sacrificing a ridiculous amount of RAM. That's why most software had to access the hardware directly, even for primitive things like coloured text.
Also there was the problem of not having a compiler coming with the operating system which meant that there was no free software movement. People actually sent out binary files. So every software was restricted to a narrow band of hardware.
Essentially there is now the need for a "new DOS". It would run on hardware like STM32-class microcontrollers which have (much) less than a megabyte of RAM and no memory management.You'd start off with decent lightweight hardware abstraction, then add a file system as well as simple version of the usual UNIX tools. Once you have an editor and a shell you'll have a decently working system which can be used for all kinds of things.
Or just run it in DOSBox on any OS. For most software that's the obvious thing to do.
Actually, it's better to run legacy business applications on an actual DOS system like FreeDOS. DOSBox is meant only for games. They don't have great compatibility with business software.
FreeDOS runs very well in PC emulators and virtual machines like QEMU, VirtualPC, VMWare, VirtualBox, and others. At home, I run QEMU and DOSemu to boot FreeDOS. (When I'm developing, I use DOSemu so I can share files easily between Linux and FreeDOS. When I want to test FreeDOS in a more traditional virtual machine, I run QEMU.) It runs great!
I have had the pleasure of corresponding with, and occasionally collaborating with, Jim Hall a few times over the years. He's not just active in the open source community, he's a really nice guy. Easy to work with, friendly and helpful. We've exchanged notes about package management, he's sent some patches to a project I was working on to make it more user-friendly (and DOS compatible). Jim manages to make a technically focused OS while being pleasant to work with. More open source project leaders could learn by his example.
The biggest problem I have seen with old programs is data portability. Even several revisions out on the same programs can make it costly. In a lot of situations , more costly than keeping obsolete hardware running.
I was involved in a project to resurrect an old NetWare 3.something system for an accounting program used in a division of a company that was purchased originally as a stand alone company. It was determined years ago that it would be too costly to port the data because it would all need to be input by hand requiring several people and about a year to do so it was never updated to a modern system.
Even after getting it running again, it was still in use in parallel with a dormant version of the company wide system for several years while they had three people pulling and inputting data and validating it before going live.
Once you get out of the update cycle with proprietary software, it can sometimes even become costly to move up. But to switch to another system altogether can be really costly.
Single user and no security what-so-ever. IBM should have used the 68000 combined with a proper OS.
Yeah, that's what I said when the IBM 5150 PC was announced in 1981 with an 8/16-bit 8088 CPU running a rebranded Quick & Dirty Operating System:
"Too little, too late".
I was not aware yet that a brand name may be worth a lot more than technical specifications.
/. refugees on Usenet: news:comp.misc
I got my engineering degree with DOS. Everyone was issued a Z100 (non msdos!) with an 8088, Fortran and Basic. Some other programs such as CAD, PC-TeX were available. Russ Nelson worked at my college and created Freemacs, the word processor and the spelling checker and many other utilties in use at Clarkson
Some classes gave you a VMS or Unix account. When it was in heavy use at the end of the semester , it was faster to edit in DOS and upload than to scroll down the file in VMS. The DOS FORTRAN didn't have the extensions or libraries. Sometimes its math wasn't as accurate.
After I got a 286 and had gotten a Unix account (w/ Usenet access), I started trying to learn Unix things. Turbo C, GNUish utilities, Freemacs, Elvis and shell clones helped me. Minix was almost as helpful.
A 486 w/ 8mb lead to Linux replacing DOS and work as a Unix sysadmin. The DOS intro to C, awk, vi, lex, yacc (via "The Unix Programming Environment" was extremely helpful. Linux at home helped me continue learning. It could single task better than my Sparcstation 1+ running SunOS.
The 8088, 80286 and 486 systems probably cost ~ $5k each back in the day where a Unix workstation was ~ $20k if you could get one.
Well, more properly until you call something in DOS or the BIOS that turns interrupts off or masks off the one you're interested in - if interrupts are enabled and you're not already servicing one at a higher priority, the processor will yank you right out of whatever was executing and drop you into the handler no matter what either you or DOS was doing at the time. If DOS still manages to interfere with you, you can always change the offending interrupt vector to point to your own code.
Practically speaking, DOS is so simple that there's not much that it could do that couldn't be easily worked around.
Please stand clear of the doors, por favor mantenganse alejado de las puertas
Qbasic was included in Windows 9x and even NT4 apparently. Notably, "Microsoft Edit" was a shim that called qbasic.exe in editor-only mode (it's still better than vi and nano). Qbasic itself allows to play short high pitched tones through the PC speaker to startle people around you, or to annoy them much with a long duration 4KHz for instance.
What's too bad is the keyboard input, unless there's some other way you couldn't really use continuous keyboard input for something like a space invader clone. Everyone used a loop like 10 A$=INKEY$ : IF A$="" THEN 10 which let you input a single key without needing to hit return, but you would just move single step by single step or trigger keyboard repeating and move wildly. Tweaking keyboard repeating in BIOS (or with a DOS program?) might have helped in some way.
That alone prevented attempts at making "serious" games (and in mid to late 90s, Internet access was prohibitively expensive in Western Europe still so Qbasic and its detailed help files is what you got for free)
but last time I booted it up, it upgraded itself to Windows 10
> DOS was terrible. Single user and no security what-so-ever.
Before DOS, there were multi-user network operating systems. Which ran on $100,000 computers. Getting rid of the multi-user and network (and the therefore the need for security) to make a DISK Operating System rather than a network OS allowed to to run on PERSONAL computers. That was awesome. Then the internet happened.
Practically speaking, DOS is so simple that there's not much that it could do that couldn't be easily worked around.
I'd rather say: DOS is so simple it provides nothing that can't be implemented from scratch in less time that it takes to work around its downsides.
The only worthwhile thing it gives you is a filesystem. A filesystem that doesn't work on modern machines (disks above 2GB, GPT partition tables, UEFI, sectors bigger than 512 bytes), gets corrupted on a crash, suffers from a ridiculous level of fragmentation, has bizarre limitations on file names (8.3, all caps, half of ASCII banned), and so on.
I'm not sure what's the modern equivalent of INT 13 (some EFI calls?), but otherwise, writing a simple but adequate filesystem without those flaws is something any half-decent programmer can do in less than a day. Writing filesystems is like writing a compiler: a good optimized one takes a team a decade, something that works can be done really quickly.
I've done so myself (filesystem-in-a-file rather than filesystem-on-sectors, though), with crash resiliency, transactions and zlib compression, although with some other limitations that fit my particular use case. And if you don't want to reinvent the wheel, there should be plenty of code to reuse around.
The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
The only worthwhile thing it gives you is a filesystem. A filesystem that doesn't work on modern machines (disks above 2GB, GPT partition tables, UEFI, sectors bigger than 512 bytes), gets corrupted on a crash, suffers from a ridiculous level of fragmentation, has bizarre limitations on file names (8.3, all caps, half of ASCII banned), and so on.
All of which are usually not necessary on an embedded system that needs to fly fast and likely doesn't even need a filesystem. The point of my original post wasn't to say that DOS was the do-all and end-all of operating systems. Rather, it was to highlight the fact that on severely time-constrained systems, DOS will often "beat the pants off" a full OS like Linux. All of the support for different filesystems, USB, etc. are useless if I'm burning holes in stuff because I can't maintain a consistent 750 ns update window for a pair of laser galvos. Even RTLinux couldn't come close to that kind of guaranteed latency.
Please stand clear of the doors, por favor mantenganse alejado de las puertas
"Back in the day" things like WordStar, 1-2-3, Agenda, dBase, etc., were considered really great stuff and were used to get a lot of work done. The world has moved on but I believe those "oldies" still can be useful. (There's the famous example of George R R Martin using WordStar apparently to this day.) And nothing much has really replaced Agenda.
FreeDOS (and DOSBox) allow playing the old games, which I think made up for in gameplay what they lacked in graphics (the citation above of MOO is a good example). And things like ZZT were just ultimately cool. There is a fun factor in that old stuff that isn't in everything today.
I don't disagree with most of what's posted in this subthread, but I can tell you that DOSBox runs many things well. I've used it to keep Lotus Agenda alive, and to run WordStar, etc., on my Linux systems.
It does lack printing, which is an issue, but there are workarounds that can be automated.
Sure, if you want everything to work pretty much as-is, use FreeDOS[1]. But DOSBox does much more than gaming.
[1] I've found some things don't work on FreeDOS, usually those things that rely heavily on internals of memory or hardware management. For instance the task switcher Back & Forth doesn't work.
...just for historical reasons.
It is absolutely awesome to have when you simply need to run some old program, which is in my case usually bound to some piece of old, but still useful HW, like chip programmer, some old measurement or CNC equipment etc. Or perhaps for analysis of program behaviour in order to do modern reimplementation. Or to enjoy nostalgia trip with some old DOS game...
WRT to FreeDOs development, I don't think it's needed outside integration into modern OS & HW, like having modern drivers for mouse and optical unit, USB useage for printing, nice, antialiased fonts, good high, EMS etc memory manager etc. I/O virtualisation of some sort would be great, so I can, for example have virtual LPT port that would be seen on desired I/O port address and connected to some real LPT port somewhere entirely else or even to USB driver or some userland program through pipe etc.
I don't think susbtantial, grand scale reworks like 32-bit and 64-bit implementation, multicore and multitasking are neccessary. We have plenty other solutions for that.
but it is quite limited in its capabilities, it would be cool if someone ported some basic linux apps to it like iceWM and some basic browser like dillo and a text editor, maybe something for audio/video and grphics editing like mtpaint or xpaint, make it simple and basic like Windows95 was, not too complicated and just enough to make it usable as a bare bones desktop, if i was forced to use commandline only i would just use Linux without Xorg which is more robust and feature right and even has some ncurses apps that are decent
Politics is Treachery, Religion is Brainwashing
As I remember, merely inserting the diskette would do absolutely nothing. You had to either run a program from the diskette, or forget to take it out of the drive when you (re)booted the machine in order to actually "catch" anything from it. Autorun didn't come along until Windows 95.
God is real, unless declared integer.
I just used FreeDOS to update this old Optiplex a month ago. Much thanks to the developers for keeping a still valuable tool available.
When the king heard the words of the Book of the Law he tore his robes.2Kings22:11