1) Lifespan of DOS
While it is very nice to have some sort of non-MS DOS available (at least for us gamers), it still basically 15-20 year old technology. How much longer do you think DOS, or DOS emulation, will be necessary?
I think DOS will be around for quite some time yet. DOS remains a great environment to work in if you are building an embedded system, for example. The operating system is light, so it will run well in a device that doesn't have a lot of memory. You can burn it into ROM, boot from a floppy, or a small micro-drive. There aren't many operating systems that you can find these days that will boot from a floppy, yet still leave you enough room on the disk for your embedded program and maybe some room for data files.
I think the embedded systems market is one of the markets that will keep DOS alive, at least for several years to come. (Exactly how many years that will be is hard to guess. Yoda: "Always changing is the future.") Look at some of the alternatives that you have today if you want to build a small embedded device: DOS, Windows CE (and there's a reason they call it "wince"), or an embedded Linux (ala Elks). Look at it a little more closely, and you'll see that if space becomes an issue for you, DOS is really the only way to go. Linux and Windows both require too much overhead to build an efficient embedded system.
Another thing that will keep DOS alive, even behind the scenes, is the PC market. A lot of companies that make computer hardware (disk arrays, video cards, controller cards, etc.) use some kind of BIOS. (This is just an example.) Now, the way of the operating system is to make it free, and for more and more operating systems to become available and popular (right now, looking at my friends and people around the office, we use: Windows 95/98, Windows NT, Linux, FreeBSD, FreeDOS.) The hardware manufacturer may not care exactly what operating system you use. After all, they provide hardware, and others may provide the software drivers that make use of it.
At some point, you'll need to provide a patch, and the user will need to flash the BIOS on their device. If you are the hardware manufacturer, how do you distribute a flash update to all your users? Will you provide a different update program for every operating system platform that might be using your hardware? In my quick list, I count five different operating systems. Will you create five different versions of your update program, and provide support on all those platforms (remember also that the Windows NT credo is "thou shalt not touch thy hardware")? For a lot of companies, the answer is no. It's a lot simpler if they can give their users a bootable floppy disk that they put into their computer, and the boot floppy automatically flashes the BIOS.
If all you need is a simple program that updates the BIOS with new instructions, do you really need a multitasking kernel for that (ala Linux or a Windows-like kernel)? The simplest choice is to use DOS, with the SHELL= line in your CONFIG.SYS file set to the flash program. At least, that's how I'd do it. (There may be some hardware vendors out there who read this and think "Gee, glad he's not on my project.")
2) Best thing about DOS
by Jon Peterson
Since you must be very well acquainted with the internals of DOS, are there any parts of it that have struck you either as being very clever in a hackerish sort of way, or very clumsy and kludgy (in an equally hackerish sort of way)?
Whilst we all loathed DOS when it was around, there was no debating that it was danged fast for some things, and its complete lack of abstraction was fun for games programmers and the like who got to cut through to the hardware when it suited them (and when it didn't!). Do you miss this rawness and freedom in more protective environments like Unix and Win32?
I like the simplicity that DOS offers. As a DOS user, you have the equivalent of 'root' access on your computer. Anything that you want to do on the PC is possible. Nothing is really stopping you, other than hardware limitations. I find that this additional degree of freedom is nice to have, although since I work in both environments (UNIX and DOS) I tend write programs that stick to "safe areas" that work on both platforms.
DOS is also easy to learn, at least on the technical side. It's not nearly as complicated as something like UNIX, and even a user who is untrained in DOS can figure out that if you twiddle this thing here, that thing pops out over there. UNIX isn't as easy to pick up.
What don't I like? There are some things about what Microsoft did with DOS that do irk me. The biggest is that MS-DOS commands lack options, not that there are lots of MS-DOS commands anyway. Look at MS-DOS TYPE. Under MS-DOS, you can only type:
TYPE file.txt You don't have any options on that command line. Compare it with UNIX 'cat', which has more options than you can shake a stick at. It's the same with the other DOS commands.
I suppose that in a way, it was part of what got me to start FreeDOS in the first place. I wanted to have more powerful tools than what MS-DOS provided me with. So I hacked some of my own. (I wasn't a strong C programmer at the time, so this wasn't very beautiful code.) After I'd written over a dozen utilities that replaced MS-DOS commands, and found some public domain source that implemented other functionality, I realized that you could reproduce what MS-DOS does and make it a free software project. The rest, I guess, would be what we are today.
**There's an interesting bit of history here. When I first wrote my DOS utilities, my TYPE command had 8 command line options, with functionality that was similar to UNIX 'cat'. But later, I went back to read my code and realized that my code sucked! So I cleaned it up a bit, and decided that I would implement a TYPE that was more like MS-DOS. Yet no one has complained. Interesting...
3) Project suitable for a moving target?
Do you think this sort of project is only suitable for dead or dying software? By this I mean, DOS hasn't been in significant development for a while now, so making a clone is like reconstructing a static subject. Do you think your project could have been successful during the time of MS-DOS 6.0, or instead do you think commercial developers would have torpedoed your efforts by redesigning their next release to be less cloneable?
Looking at MS-DOS 6 is kind of unfair. By that time, I think Microsoft had enjoyed success with Windows for a fair bit, and was starting to realize that they could make a hell of a lot more money if they switched to that. FreeDOS in the days of MS-DOS 6 really wouldn't have made things turn out much different than they are today. Anyway, FreeDOS *was* around in the MS-DOS 6.x days.
If FreeDOS had been around earlier in the MS-DOS 6 lifespan, Microsoft would have made moves to protect its interests. The DOS interface would have changed, or (more subtly) new, hidden DOS API would appear that the next version of Windows would depend on. "Free version of DOS? Hah! You can't run our version of Windows with it."
Actually, you saw a bit of this with the Caldera lawsuit on behalf of DR-DOS.
I think things really might have turned out differently if we had come out with a FreeDOS back in the days of MS-DOS 5. At that point, DOS was *the* desktop operating system. In at least the areas that I could see, people weren't making the switch to Windows, and DOS apps dominated the office desktop PC.
Introducing a free version of DOS, where the source code was available so that developers could see what was going on and make their own fixes and improvements, would have really shaken up the DOS market. I think a company would have started doing with DOS what Red Hat and Caldera are doing with Linux: bundle it, sell it, and support it. If popularity grew similarly to the way Linux's popularity has grown, I think the DOS vendors of the time would have had no choice but to consider FreeDOS a viable alternative to their commercial, closed-source DOS systems. And consider this: with a low cost to create a product (testing and support) and a relatively low barrier to entry at the time, and Microsoft would have been given a run for its money.
Microsoft has a little statement on their FreeDOS forum(MSN) that I like to bring up at times like this: "DOS is still a viable choice for millions of computers worldwide and FreeDOS offers an alternative to commercial DOS operating systems. FreeDOS does not use any Microsoft (MS-DOS) or Caldera (DR-DOS) code. The developers used public descriptions of DOS (i.e., user manuals) to recreate DOS functionality. In other words, FreeDOS is a clone."
You can assume different things about how people might have responded to a free version of DOS in the MS-DOS 5 days. I look at the proliferation of shareware at the time - I mean things that people brought into the office and actually *used* - and I like to think that people would have reacted favorably to a FreeDOS.
I wonder what the world be like if FreeDOS became so popular and widespread, and Microsoft would have had to make modifications to release an MS-DOS 5.1 that was compatible with any extensions added by the free DOS? :-)
4) How close is 1.0?
by Paul Neubauer
I've played a bit with FreeDOS (Beta3) on a spare 386 some. I will likely be trying Beta4 (or later, depending on my time..) in the foreseeable future. I'm reasonably impressed with the "lite" setup version. (Though warning a third disk, blank, may be needed would be a Good Idea, IMO.)
What do you feel are the remaining steps that must be taken to move from beta to the first non-beta version?
I'll take that advice for the FreeDOS install program. That's a project that I maintain, and that particular bug is one that really got annoying when I installed it on my system at home. It's a kernel thing.
On the other question of when will a Version 1 be ready? If you look at the FreeDOS Software list you'll see that not all of the MS-DOS functionality has been reproduced in FreeDOS. For example, we don't have a MS-compatible BACKUP/RESTORE, we don't have CHKDSK/SCANDISK and we don't have EMM386. But I don't really see that as much of a barrier to going to Version 1. After all, if someone really wanted to have those functions available under the GNU GPL and supplied by FreeDOS, someone would have written them by now.
For example: A lot of people get by with using zip/unzip to backup their software (when's the last time you backed up *your* home system?) And there are shareware programs that do the same job as CHKDSK/SCANDISK (many people still use the venerable Norton Utilities, which does one better.)
The big barrier to Version 1 is, I think, the 512MB bug. Right now, the FreeDOS kernel can't handle hard disks that are larger than 512MB. If you try to even do a DIR on a FAT bigger than 512MB, you hose the FAT.
At one time, we did have a fix for the 512MB bug. But I'll be honest: that fix was lost and will need to be recreated. The version with the 512MB fix had some other issues anyway, so when we changed maintainers that code was dropped. But until the FreeDOS kernel can support large disks, I don't want to make a Version 1 FreeDOS distribution.
5) DOS Based Pseudo Embedded Systems
by Doug Dante
There are a lot of pseudo embedded DOS based systems out there. My previous employer had a remote access concentrator product in this category, and paid a non-trivial sum per box to Microsoft for DOS 5.0, a product that Microsoft refused to support. Unfortunately, I was unable to convince management to give Free DOS a try.
Has Free DOS made any progress in these types of markets? Are people using Free DOS to replace MS-DOS in these pseudo embedded systems? )
FreeDOS is definitely being used in these markets, and FreeDOS is definitely being taken as an alternative to MS-DOS in these areas.
John Price has a really good example of an embedded system that uses FreeDOS. It's called The Box: "It is a box with a single board computer (a 486DX made by Ampro), and an LCD display, two volume knobs, and four push buttons. The push buttons are connected to four inputs of the PRINTER port, and the software polls the printer port inputs to read the key presses and control the operation of the program.
At one point, I had started a list of ways in which FreeDOS is being used in the commercial market. I can't seem to find that list anymore. Guess I've been a bad web guy!
But the list goes something like this, as far as I can remember (I'd need to find the list before I can report names, since I'm not sure):
- a Japanese company is using FreeDOS as an embedded controller for a piece of machinery.
- a graphics card company distributes FreeDOS on boot disks that they distribute to users to flash their BIOS.
- a disk array manufacturer put FreeDOS on boot disks to let you control options on the disk array.
- Maximum PC Magazine ran an article about FreeDOS in reviving old PC's as Internet terminals. A PC manufacturer in Germany is doing just that - collecting old 486 hardware, installing FreeDOS, and selling the systems.
I'd really like to do more with embedded computing myself, but I haven't found the time to go in that direction. But EMJ Embedded Systems is selling a '386-24MHz PC/104 SBC for less than $200, and this is just the kind of low-end system that I would like to play with. Maybe I'll have to make time for this, anyway. Another hobby.
6) Reverse Engineering
The DVD CCA's argument has essentially become, had MS thought in advance to include but a single sentence in a license agreement, FreeDOS could have been supressed.
How do you feel about this, and what advantages do you feel society has a whole has received from the fruits of your reverse engineered labors? Similarly, what harms would we have as a society if you could never have rewritten DOS?
I guess I'll weight in with my two cents here, even though I'm no expert on the DVD-CCA thing. Remember that the entire PC industry exists because of a single reverse engineering effort. When Compaq first debuted with the IBM-compatible PC, it launched a computer revolution. Now everyone could build their own PC company, compatible with IBM's original effort. Because of that, you have increased competition to make a better product. Prices get lower, while quality gets better (Microsoft not withstanding.) You try to do it as cleanly as you can (in terms of clean room engineering.) I think the DeCSS guys had every right to reverse engineer how DVD systems work. It opens up the market (which is what DVD-CCA doesn't want.) By creating a free version of DOS, I believe we have improved the state of DOS everywhere. Unlike the DOS'es that came before it, FreeDOS opened up its source code. You can look at it, and if you find a bug you can fix it right away without waiting for a service patch. If you find that your DOS application would run better if DOS ran just a little differently, you have the ability to make that change. And under the GNU GPL, you have the right to distribute those changes. As a DOS community, we all benefit from this.
7) How do you feel about Caldera?
A previous Slashdot article included reactions to the settling of Caldera's lawsuit regarding DR-DOS, their non-free DOS clone. What are your feelings on the lawsuit and its settlement? Even though your development isn't focused upon running Windows, have you ever run into any similar "forced incompatibility" issues (Microsoft-related or otherwise)?
I have a lot of feelings about Caldera. I could write tomes on that one.
One one hand, Caldera has done some cool things with DOS. I really like the idea of writing a TSR that provided a wrapper for all the missing functionality between DR-DOS and MS-DOS 7 (the version of DOS that underlies Windows 95.) I listened to Bryan Sparks from Caldera speak at a TCLUG meeting once. One of his topics was the lawsuit, and how their TSR program lit up an indicator every time Windows 95 accessed a DOS API. This showed how much DOS was part of Windows 95, that it wasn't really a new operating system that just happened to have a command-line interface that looked a heck of a lot like DOS. It really was a play on DOS + Windows, just like the old Windows 3.1.
On the other hand, I think Caldera has done some bad things that have been hurtful to free software. Hopefully, they will turn that act around.
Back to the Caldera v. Microsoft suit. I think it would be more fair to call it the DR-DOS v. Microsoft suit, since what was really at stake was an accusation that Microsoft had hacked its pre-release version of Windows (the version that all the IT managers were using to evaluate this new thing called Windows, and see if it will work on top of the really cool DR-DOS that most of them were using.) The hack was supposedly to make it appear as though DR-DOS was not capable of supporting MS Windows, so if you wanted to jump on the GUI bandwagon, you better buy MS-DOS to go with it since you know they'll work together.
Caldera had already bought the rights to DR-DOS. I think it was really part of Caldera's responsibility to carry on the fight that DR couldn't continue - that Microsoft might have intentionally broken its own software's compatibility to put a stain on the reputation of a customer. In my view, Caldera bought DR-DOS's benefits, but it also bought its history, and this Microsoft thing was sitting right there as a stain on its record. It was in Caldera's best interest to take it to court.
On the "forced incompatibility" thing: no, I don't recall any issues that we ran into with that. When Pat Villani wrote the first kernel, he implemented only those DOS API that he needed to support his applications. I suspect a lot of that was analysis to figure out what was breaking, and how it was really supposed to work (things like _Undocumented DOS_ weren't available.) Later, when Pat's kernel became the FreeDOS Kernel, we had access to terrific resources like Ralph Brown's Interrupt List. That's your compatibility right there. It tells you all the features you need to add to become compatible with MS-DOS.
DOS had some fascinating internals, some of which were never really exploited or realised. One example was the disk drive. DOS supported, at the machine-instruction level, 127 floppy drives and 127 hard drives, for example. Indeed, some early PCs came with 4 floppy drives as standard.
What is FreeDOS' take on such quirks? In other words, where the system call specification is more general than what was actually implemented, are you referring back to the specification or what Microsoft actually coded?
I don't see us implementing these kind of interesting quirks. I've seen it, but you have to remember that people hack code to support the systems they have. And not too many people have PC hardware that actually includes 127 floppy drives and 127 hard disks. :-)
I guess the trend has been that, when you're adding compatibility, you look at what the program actually needs and you work from there. These kinds of quirky underpinnings don't really come into it. Sorry.
9)Packet Drivers & tcp/ip Stacks
I find DOS to be an extremely useful system, and a necessary one if you're running old hardware. I personally know know several students who contentedly write their essays on 286 machines using DOS WordPerfect or WordStar. I myself have an old PC XT, running DR DOS, networked to my Linux router using a DOS plip packet driver and wattcp. There's a lot of old hardware around, and I think that tcp/ip network connectivity is one of the most useful ways of breathing added vitality into old boxes. The problem with it now is that it can be a bear to setup (especially dialup ppp connections), and most of the people I know who would make use of it are not exactly computer enthusiasts.
Looking through the FreeDOS software lists I don't see any mention of packet drivers, tcp/ip stacks, or pppd implementations. Are there any plans of integrating some form of tcp/ip network connectivity in future versions of FreeDOS? If so, would it be easier to setup then what is presently available?
Actually, I would like to include Internet dial-up software with the next FreeDOS distribution. The real reason that I haven't done so up until now is that I'm lazy. I admit it.
In the early distributions (Alpha1-5) that were put out by M. "Hannibal" Toal, we did have DOSPPP and a web browser. When I began to manage the FreeDOS distributions, I simplified the distributions so I could put things into packages, make them easier to maintain and install, etc. One of the first things to go was DOSPPP.
As we released more FreeDOS distributions, people have become more comfortable with FreeDOS as their version of DOS. Until now, most people have been installing FreeDOS to use under DOSEmu or something similar where you don't need a network connection (because you have it under the primary environment that is running the emulator.) But I think it is time to add the DOSPPP package again. Look for a new disk set to appear in Beta5.
Note that the TCP/IP stack does not necessarily go through the network redirector (which is broken.) There is even a free Web server (FISH) that runs on FreeDOS and shows how to write TCP/IP-enabled applications on FreeDOS.
10) FreeDOS and Redirection
I have recently setup a client with a Linux server running DOSEMU and one of the requirements was to access network shares from within the DOSEMU session using LREDIR or emufs.sys.
We had to deploy the system with MS-DOS 6.22 (in other words we could not deply the system using Free DOS) because FAQ 6.1 of the DOSEMU FAQ says "First make sure you aren't using DosC (the FreeDos kernel), because unfortunately this can't yet cope with the redirector stuff." (I know it doesn't work - I tried anyway :))
Anyway, my question is, when will FreeDOS work with redirection?
I think network redirection is coming, but I can't tell you exactly when that will be. I have to give James Tabor a lot of credit for making the patches to the kernel that provided CD-ROM support. John Price (kernel maintainer) has also put a lot of work into it to bring the kernel where it is today.
The CD-ROM support definitely started to add redirector support to the FreeDOS kernel, but network redirector support just isn't there yet.
I guess all I can do to answer this question is re-post part of a message from James Tabor at the time that we posted kernel build 2017f (CD-ROM support) back in December: I hope this is it. I would like to see this kernel tested! I know there is probably something I forgot, if so let me know. I did not remove SHSUCDX from the bin directory. I think everyone needs it. MSCDEX works but it is unable to read file entries. I'm going to start work on the Network part of this. I'll wait until next year to post unless someone wants it now. Still can't find out why SCSI device drivers boom during any device access. Darn! I'm going to take a break for the next month. So let me know!
BONUS QUESTIONS (chosen by Jim):
I found out about this a while ago, when I first heard about Litestep, but I've always wondered one thing...
Could you rewrite a version of DOS that'll work with Windows 9x and have the correct slashes ( / ) in the filesystem instead of those bass-ackward ones ( \ ) that are always in the wrong spot to type quickly?
Actually, you could use switchar to change the DOS application's idea of the switch character. You might change it to '-' for example, meaning that '/' could be used for directory separators (Note: DOS doesn't care if you use '\' or '/' to separate directories- look at Freemacs.)
However, the bigger problem is that not all DOS apps honor the switchar value in DOS. A lot of apps (I'll admit it - even my own) just assume '/' as the option character, and look specifically for that. My hack to GNU Getopt assumes '/', and my hack to HTML Help to use PD getopt also assumes '/'.
So it's a mixed answer: yes, you can use switchar to change the switch character with some apps, but you will still need to use '/' for those apps that don't recognize switchar.
What's the meaning behind the "names" for the Beta distributions?
We've had several code names in the Beta distributions: Orlando (Beta1), Marvin (Beta2), Ventura (Beta3), and Lemur (Beta4). The short answer is that I thought it was cute.
The origin of each of the code names are:
- Orlando (Beta1)
At the time that I created the first Beta distribution for FreeDOS (the first distribution to actually have an install program, rather than being just a huge zip file) I was about to take a vacation to see my brother. Since he lives in Orlando, FL I thought it would be cool to name the distribution based on that trip.
- Marvin (Beta2)
I was starting to wax nostalgic for FreeDOS's roots. When I started the FreeDOS Project, I was a physics student at the University of Wisconsin-River Falls. Marvin was a VAX system that was being de-commissioned at about the time I announced FreeDOS.
- Ventura (Beta3)
Jesse Ventura had become governor of my state. 'Nuf said. (Save us!)
- Lemur (Beta4)
I've always wanted to have a mascot for the FreeDOS Project (it's a gimmick.) Linux has the penguin, BSD has the daemon, and GNU has the gnu. I've never pushed the idea of officially adopting a FreeDOS mascot because I didn't want to get distracted by the noise that would create. Not when I could be hacking code. I guess naming the Beta4 the "Lemur" distribution was my way of adopting a mascot when we really didn't. Plus, I've always thought lemurs looked cool.
Jim Hall lives in St. Paul, Minnesota, with his wife (Sara) and four cats (Midnight, Murphy, Vita, and Linus.) Yes, he named the cat after Torvalds. So he's a geek.
Next week: Jon Johansen, the deCSS guy.