Two big things happened in the world of text-based disk operating systems in June 1994.
The first is that Microsoft released MS-DOS version 6.22, the last version of its long-running operating system that would be sold to consumers as a standalone product. MS-DOS would continue to evolve for a few years after this, but only as an increasingly invisible loading mechanism for Windows.
The second was that a developer named Jim Hall wrote a post announcing something called "PD-DOS."
PD-DOS would soon be renamed FreeDOS, and 30 years and many contributions later, it stands as the last MS-DOS-compatible operating system still under active development.
[...] To mark FreeDOS' 20th anniversary in 2014, we talked with Hall and other FreeDOS maintainers about its continued relevance, the legacy of DOS, and the developers' since-abandoned plans to add ambitious modern features like multitasking and built-in networking support (we also tried, earnestly but with mixed success, to do a modern day's work using only FreeDOS).
[...] For the 30th anniversary, we've checked in with Hall again about how the last decade or so has treated the FreeDOS project, why it's still important, and how it continues to draw new users into the fold. We also talked, strange as it might seem, about what the future might hold for this inherently backward-looking operating system.
[...] "Compared to about 10 years ago, I'd say the interest level in FreeDOS is about the same," Hall told Ars in an email interview. "Our developer community has remained about the same over that time, I think. And judging by the emails that people send me to ask questions, or the new folks I see asking questions on our freedos-user or freedos-devel email lists, or the people talking about FreeDOS on the Facebook group and other forums, I'd say there are still about the same number of people who are participating in the FreeDOS community in some way."
[...] Though it's still being downloaded and used, shifts in PC hardware are making it more difficult to install and run FreeDOS directly on a new PC.
[...] One issue is the UEFI firmware used to boot modern PCs. UEFI began replacing the traditional PC BIOS at the tail end of the 2000s, and today, it's the default mechanism used for booting Windows, macOS, and Linux, though Windows and Linux both technically can still boot on non-UEFI systems.
For a long time, new computers with UEFI firmware still included some kind of legacy compatibility mode to support operating systems like FreeDOS that will only boot in BIOS mode. Many PCs still do, particularly home-built desktop PCs whose motherboards offer users lots of configuration options (your motherboard may refer to BIOS support as "CSM," which stands for Compatibility Support Module). But plenty of new PCs will only boot using UEFI, and that's a problem for running FreeDOS directly on the hardware.
[...]
"Maybe it's possible to replace those parts of the kernel that use BIOS, but a ton of DOS applications and games call BIOS directly. Remember, DOS isn't like more modern operating systems that use a Hardware Abstraction Layer or HAL, where applications talk to the HAL and the HAL talks to the hardware. A DOS program typically interacted with the hardware directly."In other words, you could write a version of FreeDOS that could boot on a UEFI system, and you might even be able to write a version that booted on an Arm system. But either change would break the vast majority of existing DOS applications, and running those old applications is the main reason why FreeDOS exists in the first place.
[...]
On the topic of retro PCs, they've actually gotten a bit easier to find and use in the last couple of years. That's thanks in part to the rise of oddball AliExpress hardware like the Book 8088, Hand 386, and Pocket 386. Though they exist in an ethical gray area at best—the Book 8088 we used shipped with all kinds of old-but-still-copyrighted software on it, plus a BIOS swiped from the open-source community with no attribution—they're also easier to buy and make room for than an actual hoary old IBM PC or suitcase-sized Compaq Deskpro.
[...]
Plenty of people will choose to run actual MS-DOS or IBM PC-DOS on these systems, and MS-DOS is what the manufacturer ships them with. But the benefit of FreeDOS' continuing development is that it can support a few modern amenities that make the retro-computing experience more pleasant.
[...]
Since hitting 1.0 in September of 2006, the project has averaged about one major numbered update every four to six years. You can't do a ton to DOS without trying to make it into something that it isn't; upgrades tend to be gradual and narrowly focused. But work is definitely underway on a collection of updates that Hall says will most likely constitute a FreeDOS 1.4 update.
[...]
Though FreeDOS maintains compatibility with the vast majority of classic DOS software, one thing that current versions can't do is serve as a bootloader for older versions of Windows like 3.1 or 3.11 for Workgroups—at least, it can't run those operating systems in their fully functional "386 Enhanced" modes. Though FreeDOS was started because Hall and others wanted to stay away from Windows, Hall says that support for those old Windows versions is a common user request."Maybe when that kernel is ready, we might spin off the test release to be the new "1.4" distribution," said Hall. "But that's just my thought, I don't want to get ahead of the community. We discuss everything on the freedos-devel email list, and that's where we'll make the decision."
Previously on SoylentNews:
FreeDOS 1.3 released - 20220226
FreeDOS Turns 25 Years Old - 20190702
FreeDOS is 23 Years Old - 20170701
Jim Hall on FreeDOS and the Upcoming 1.2 Release - 20161208
Related stories on SoylentNews:
Retro-Malware: DOS TSRs, Interrupt Handlers, and Far Calls, Part 2 - 20160912
Retro-Malware: Writing A Keylogger for DOS, Part 1 - 20160829
« Congress Apparently Feels a Need for “Reaffirmation” of SLS Rocket | Pentagon Says It's Impossible To Ditch Huawei Telecom Gear - Officials Beg Congress For Waiver »
Related Stories
I've made no secret that I'd like to bring original content to SoylentNews, and recently polled the community on their feelings for crowdfunding articles. The overall response was somewhat lukewarm mostly on dividing where money and paying authors. As such, taking that into account, I decided to write a series of articles for SN in an attempt to drive more subscriptions and readers to the site, and to scratch a personal itch on doing a retro-computing project. The question then became: What to write?
As part of a conversation on IRC, part of me wondered what a modern day keylogger would have looked running on DOS. In the world of 2016, its no secret that various three letter agencies engage in mass surveillance and cyberwarfare. A keylogger would be part of any basic set of attack tools. The question is what would a potential attack tool have looked like if it was written during the 1980s. Back in 1980, the world was a very different place both from a networking and programming perspective.
For example, in 1988 (the year I was born), the IBM PC/XT and AT would have been a relatively common fixture, and the PS/2 only recently released. Most of the personal computing market ran some version of DOS, networking (which was rare) frequently took the form of Token Ring or ARCNet equipment. Further up the stack, TCP/IP competed with IPX, NetBIOS, and several other protocols for dominance. From the programming side, coding for DOS is very different that any modern platform as you had to deal with Intel's segmented architecture, and interacting directly with both the BIOS, and hardware. As such its an interesting look at how technology has evolved since.
Now obviously, I don't want to release a ready-made attack tool to be abused for the masses especially since DOS is still frequently used in embedded and industry roles. As such, I'm going to target a non-IP based protocol for logging both to explore these technologies, while simultaneously making it as useless as possible. To the extent possible, I will try and keep everything accessible to non-programmers, but this isn't intended as a tutorial for real mode programming. As such I'm not going to go super in-depth in places, but will try to link relevant information. If anyone is confused, post a comment, and I'll answer questions or edit these articles as they go live.
More past the break ...
The Retro-Malware series is an experiment on original content for SoylentNews, written in the hopes to motivate people to subscribe to the site and help grow our resources. The previous article talked a bit about the programming environment imposed by DOS and 16-bit Intel segmented programming; it should be read before this one.
Before we get into this installment, I do want to apologize for the delay into getting this article up. A semi-unexpected cross-country drive combined with a distinct lack of surviving programming documentation has made getting this article written up take far longer than expected. Picking up from where we were before, today we're going to look into Terminate-and-Stay Resident programming, interrupt chaining, and get our first taste of how DOS handles conventional memory. Full annotated code and binaries are available here in the retromalware git repo.
In This Article
- What Are TSRs
- Interrupt Handlers And Chaining
- Calling Conventions
- Walking through an example TSR
- Help Wanted
As usual, check past the break for more. In addition, if you are a licensed ham operator or have ham radio equipment, I could use your help, check the details at the end of this article.
[Continues...]
Via FOSS Force, the founder and coordinator of the FreeDOS Project writes about FreeDOS 1.2:
Tim Norman wrote our first command interpreter to replace COMMAND.COM from standard DOS. Soon after, Pat Villani contributed his DOS-compatible kernel, which others later improved to add networking and CD-ROM support. We released our first "Alpha" distribution in only a few months, in September 1994. From this small beginning grew FreeDOS, an open source implementation of DOS that anyone could use.
We released several alpha versions over the next four years, then posted our first beta in 1998. By this time, Microsoft had all but eliminated MS-DOS, so FreeDOS didn't have to chase a moving target and shifting compatibility with new MS-DOS versions.
[...] We posted the FreeDOS 1.0 distribution on September 3, 2006, and released FreeDOS 1.1 over five years later, on January 2, 2012.
[...] Big-name computer vendors like Dell and HP shipped it as a default operating system on some PC desktops and laptops. Even today, you can find popular manufacturers pre-installing FreeDOS on some computers. But the story doesn't end there. Soon, we'll have a whole new version of FreeDOS--and I'd like to tell you about it.
[...] The Utilities package group includes several new useful tools. For those who use FreeDOS to play classic DOS games, we provide SLOWDOWN to let you run certain older games on a fast CPU. We provide several image processing programs such as GIFSICLE and PNGCRUSH. If you wish for a more Unix-like environment, we also include several familiar commands such as SED, GREP, HEAD, TEE, and BC.
[...] One major change is the inclusion of a new Games package group. We've avoided games in previous FreeDOS distributions, but since so many people prefer FreeDOS to play their favorite classic DOS games, it seemed a good idea to include a variety of open source games from different genres.
[...] The official FreeDOS 1.2 distribution will be available on Sunday, December 25, 2016.
In the comments there, someone mentions the popularity of FreeDOS for doing firmware updates. (It always seemed crazy to me to be running a multitasking OS when doing something that has the potential to brick your box.)
Any Soylentils using FreeDOS for that or something other than that?
This last week the old disk operating system for IBM-compatible PCs, FreeDOS, turned 23 years old. Jim Hall, who started the project, writes the following:
On June 29, 1994, I made a little announcement to the comp.os.msdos.apps discussion group on Usenet. My post read, in part:
Announcing the first effort to produce a PD-DOS. I have written up a "manifest" describing the goals of such a project and an outline of the work, as well as a "task list" that shows exactly what needs to be written. I'll post those here, and let discussion follow.
He is collecting stories about how people have been using FreeDOS and will do so until the middle of July.
Last week, FreeDOS turned 25 years old. FreeDOS is a complete, Free Software Disk Operating System (DOS) and a drop-in replacement for MS-DOS which has disappeared long ago. It is still used in certain niche cases such as playing legacy games, running legacy software, or certain embedded systems. Back in the day, it was also quite useful for updating BIOS.
Of those that will be, are, or have been using it, what tasks has it been good for?
Also, at:
The Linux Journal : FreeDOS's Linux Roots
OpenSource.com : FreeDOS turns 25 years old: An origin story
OS News : FreeDOS’s Linux roots
Lilliputing : FreeDOS turns 25 (open source, DOS-compatible operating system)
Earlier on SN:
Jim Hall on FreeDOS and the Upcoming 1.2 Release (2016)
Retro-Malware: DOS TSRs, Interrupt Handlers, and Far Calls, Part 2 (2016)
Retro-Malware: Writing A Keylogger for DOS, Part 1 (2016)
The new FreeDOS 1.3 which is a MS-DOS compatible free software operating system is now available for download.
"This contains a bunch of great new features and improvements since the 1.2 release, including: new FreeCOM 0.85a, new Kernel 2043 and an 8086 version with FAT32 support, floppy Edition now uses compression and requires about half as many diskettes, the return of networking, some new programs and games, many many many package updates, some updates and improvements to NLS, improved install process, especially with the MBR, some support to automatically set the COUNTRY.SYS information, improved CD initialization for the boot media and installed system, .. and much, much more"
It also including a Live mode on the CD.
Get it from the official FreeDOS site.
(Score: 3, Interesting) by Username on Friday July 12, @01:56PM (4 children)
If I remember correctly, netware(the thing ms active directory is based on) can be installed on their native caldera drdos that comes with it and freedos, though I remember there being some issues installing the server part on freedos
(Score: 2) by bart9h on Friday July 12, @06:17PM (3 children)
DRDOS mentioned! The memories...
Man that was sooo much better than regular MSDOS.
(Score: 2) by Reziac on Saturday July 13, @02:55AM (2 children)
Having used DRDOS 6/NWDOS7 and MSDOS 3.2/5.0/6.0/7.0 on everything from an XT to a Core2Duo...
Concurrent version and head to head on the same hardware, DRDOS ran about 10% slower (per the DOOM benchmark). Memory management had more features but was a lot more finicky. I think the reason I used DR/NWDOS so long (1994-2005 or so daily driver, til 2012 on a part-timer) was that it was such a bitch to set up so everything worked (needed multiple boot configs to get everything to run, while MSDOS did not) that by damn once I'd beaten it into submission, it was going to keep running.
Nowadays when I need DOS, it's MSDOS7.0. 100% stable and never needs any special configs. (Running on the P4 right next to me. Aside from old DOOM, I still have a DOS app I can't replace and can't live without.)
Regardless of all else, I commend FreeDOS for keeping the spirit alive. Enough of us still remember.
And there is no Alkibiades to come back and save us from ourselves.
(Score: 2) by bart9h on Monday July 15, @03:13PM (1 child)
What I meant by better is the interactive features of the shell.
I didn't noticed (or cared about) a 10% performance hit.
(Score: 2) by Reziac on Monday July 15, @04:09PM
Yeah, the feature set was a bit broader. Sometimes worth it, sometimes a nuisance.
At one point I had a DOS triple boot... I think it was MSDOS, PCDOS, and NWDOS. Some of us are more DOS-nuts than others. :O
And there is no Alkibiades to come back and save us from ourselves.
(Score: 3, Interesting) by VLM on Friday July 12, @02:20PM (1 child)
Shim it.
I know for a fact FreeDOS runs great under Proxmox; it 'should' run great on any form of virtualization in theory.
Proxmox is a big complicated system; something like 86box or even smaller and simpler should be simple.
I'm not talking about boot Linux to manually log into proxmox, I mean appliance-ize the heck out of it so the booted kernel does nothing BUT run virtualized FreeDOS.
(Score: 4, Interesting) by Rich on Friday July 12, @02:48PM
The RasPis can be used with a buildroot/busybox environment, which should be good enough for appliance-like startup behaviour. Also, when the Pi5 came out, I suspected that its RP1 IO Controller was very similar to the 2040, just checked, and indeed, the secret has been out since half a year, although I don't think that's official yet. It does have two cores and the PIO logic, which means the main CPU could emulate whatever 1980s PC is required for a legacy task at hand, and the RP1 PIO can easily provide even the historic video interfaces, if that's what ye olde process control (or whatever) needs.
Actually, having confirmed that there's now a "standard" for SBCs that can do 10 ms realtime in proper Linux and hand off the microsecond stuff to a guaranteed-built-in-always-the-same IO processor is a really big thing, and not only for running FreeDOS. It means there will be a proven working, sub 100$ platform that can drive stepper and servo motors with perfection, and that will make an ecosystem form around this.
(Score: 3, Funny) by Barenflimski on Friday July 12, @02:46PM
10 GOTO 10
(Score: 2) by mhajicek on Friday July 12, @09:10PM (2 children)
An open version of Windows 7 or 10. I'd even pay for it.
The spacelike surfaces of time foliations can have a cusp at the surface of discontinuity. - P. Hajicek
(Score: 3, Insightful) by Reziac on Saturday July 13, @02:42AM (1 child)
What I want is XP with support for current apps...
...and DOS that natively handles NTFS.
[DOS P4 right next to me...]
And there is no Alkibiades to come back and save us from ourselves.
(Score: 1, Funny) by Anonymous Coward on Saturday July 13, @09:53AM
Poor fellows, you too.
(Score: 3, Interesting) by Runaway1956 on Saturday July 13, @01:37AM (1 child)
Anyone who is nostalgic for the days of Dos should fire up an instance of any Unix-like. You don't have to boot into a graphic environment. You don't even have to install a graphic environment, if you don't want to. Just boot into any system in "recovery mode" to see what your distro is capable of. It's not just FreeDos keeping the dream alive.
A MAN Just Won a Gold Medal for Punching a Woman in the Face
(Score: 3, Informative) by turgid on Saturday July 13, @02:09PM
My Slackware systems all boot to the command line. I start X as and when I want to with startx.
I refuse to engage in a battle of wits with an unarmed opponent [wikipedia.org].
(Score: 3, Interesting) by mcgrew on Saturday July 13, @07:21PM (1 child)
I had forgotten about it completely, and maybe it will let me run some of my old 16 bit games! And I still have a computer with a floppy drive and no OS (hard drive failure). Now maybe I can get the data off of all those old floppies!
A Black, Hispanic, or Muslim voting for Trump is like a Jew voting for Hitler
(Score: 3, Informative) by Reziac on Monday July 15, @04:20PM
With regard to reading floppies... it goes a lot faster with an external USB floppy drive (the one I have has Teac guts, the only really good floppy drives) -- apparently most of the shit data transfer rate is the floppy interface, not the disk or the drive. USB floppy drive is like 10x faster than using the internal port. [I still have hundreds of the durn things, some so old they're single-sided.]
If you use Windows to access floppies, always install the No Volume Track fix FIRST. Otherwise Windows will try to write an identifier to the floppy's boot sector, which will render it unreadable with a Bad Track 0 error.. (This started with XP.)
https://www.mpc3000.com/NoVolTrack.htm [mpc3000.com]
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\NoVolTrack]
"MPC-60"=hex:03,00,4d,50,43,36,30,20,20
"MPC2000"=hex:03,00,4d,50,43,32,30,30,30
.
And there is no Alkibiades to come back and save us from ourselves.