Forgot your password?
GNU is Not Unix

Interview: FreeDOS Leader Jim Hall Answers 75

Posted by Roblimo
from the unsung-hard-working-people dept.
We asked Jim Hall a bunch of questions Monday. Today we get answers about the reason for and future of FreeDOS, along with a sprinkling of advice for FreeDOS users and developers. Thanks, Jim, for taking the time to do this. (Guys like you, who work on "lower profile" open source projects, don't get nearly as much recognition as you deserve.) Click below for the complete interview.

1) Lifespan of DOS
by ucblockhead

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?
by Wholeflaffer

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.
And more!

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
by Effugas

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?
by MrHat

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.

8)Internals Question
by jd

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
by flaw

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
by BacOs

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.

This discussion has been archived. No new comments can be posted.

Interview: FreeDOS Leader Jim Hall Answers

Comments Filter:
  • I believe it depends on which episode you are watching...
  • I've been using FreeDOS on and off for the last 2 betas...not to give a wishy washy answer, but some of them do and some don't. I had to switch to M$-DOS 6.0 in order to get my CDROM running in order to load zipslack, but it's a mix of M$ and FreeDOS files (I always like to complicate my life...once MSCEX is running, I'll probably go back to FreeDOS). I believe there's still a compatibility page at the FreeDOS site.
  • was a complete bore to disassemble... the int21 handler was way more interesting :)
  • There is a CLI command completion function in NT btw
    HKEY_CURRENT_USER/Software/Microsoft/Command Processor/Completion Char
    Set it to 9 for TAB
  • I *think* it's been ported to DOS, along with a number of GNU utils. Check out the FreeDOS website, I seem to remember seeing the link there...
  • by Enahs (1606)
    It was also a lot of fun whenever some code-head called a system function or hardware call....SCREEEEEEECH....dead halt, time to reboot, hope you saved. :^)

    Not to mention the fact that it was a fun environment for virus coders...
  • Heh...people used to say the same thing about Linux...I remember my college days well...

    "Why would you *want* a UNIX clone? UNIX is dead. NT is the future."

    Good gawd, I'm glad they were wrong. I hope you are too. :^)

    Seriously, DOS isn't just OS history, it's a way of keeping aging hardware useful. It's wasteful to dump old hardware. Quite frankly, I have an old Tandy 1000 EX (blech) sitting right next to me, and actually use it at times, albiet just as a terminal for my Linux box. But it takes DOS to make that happen (unless ELKS ever becomes useful for that purpose...)
  • hey - I've got a 386 with 4 MB of ram sitting on my desk right now! I'm playing through ultima V again, and it just doesn't work as well on faster computers, even moslo'ed.

    However, I would like to be using freedos instead of MSdos. They could definitely do a few things to make it better:

    - smaller memory footprint
    I remember spending COUNTLESS hours trying to squeeze out a few more bytes of conventional memory for wing commander 2 on my 386. (or was it 1?) Simple efficiency could help, and allow loading a few more TSRs (smartdrive, etc...) that really help with the slow computers. Not to mention mouse drivers, sound card drivers, etc...

    - Better shell
    If bash could be made to run instead of, the world would be a better place. Even a stripped down version would be nice, as long as it had the scripting language, and filename completion, and maybe a few other things.

    - Slowdown utility
    That's probably way beyond what you need for it, but I'm thinking something that could make your athlon system run at the speed of a 386, or a 486, for use with old games. I don't know how feasible this is - I know there are programs like moslo, and at-slow, but they aren't ideal, and don't work flawlessly. Something built into the OS might be able to do more... though it's only a guess, since I don't really know anything about that sort of thing.
  • When flashing the ROM on a device, it's usually best to have as little going on as possible. One interruption in the flash process can render the device unusable. In DOS, you're pretty much always a single tasking OS, where nothing will interrupt you (especially if you CLI first). DOS also tends to run nearly flawlessly on even defective hardware or hardware with buggy BIOSes, whereas Linux can be much more finicky. DOS doesn't care about devices, memory protection, or the PCI bus. When dealing with a somewhat dangerous operation, such as a BIOS flash, it's best not to take any risks. After all, few people DON'T have a DOS bootdisk or Win9x startup disk laying around somewhere.
  • This is somewhat offtopic, but I hope interesting.

    I recently dug up an old gravis sound card of mine for nostalga and to see if I could get it working. Its driver support these days is basically non-existant, I've heard it can be made to sort of work under Win95, but I use NT for games and asp and BeOS for everythingelse so it wasn't much good. But I was browsing the cd that came with it and it had heaps of demos on it. So I reloaded a couple f versions of DOS onto my machine with kick disks to see if I could get them working. I got the gravis a couple of really neat future crew demos working.

    My question is this: What's happened to the demo scene? I would have throught that a modern operating system like linux (without X) would have been an ideal platform for demo programmres, yet haven't heard any references to demos since Win32 has been around. Was there somehing about DOS that demo coders needed to make writing their stuff worthewhile and possible? What would it take to turn another OS (linux or Be) into a good demo platform?
  • I never did that since I got a hold of a manual showing all the int21 functions. Maybe someday I'll go back an look at that.
    In the mean time, I'm trying to figure out how to program for Linux, it's really a pain un-learning so much :)


    Bill Gates: "Innovation"
  • For Example:
    use Norton DE to edit to switch DOS's commands dir and del, or cd and md.

    Nowhere else have I been having as much fun as I had on a DOS system with the hard space (asci 255), why you could name all sorts of programs (alt 255 .com) and put them in someone autoexec.bat so that you could run stuff without any visible appearance.


  • for embedded system there's zillions of OS, like QNX/NTO and more at

    Yes, but how many of them are free? QNX is by all accounts a great embedded OS, but it'll cost ya if you want to use it in a product. Embedded Linux might be good, but might not, depending on system requirements. And I'm not sure how useable Cygnus' eCos is yet. In any case, though, DOS for embedded systems survives for reasons similar to Windows' continued survival: Lots of people already know how to use it, and when starting a new project this gives it an advantage over other OSs. I wouldn't want to use it if I could avoid it, but that doesn't mean there's not a demand for this sort of thing.
  • Would FreeDOS be able to run some sort of Bash shell? I think that would make it pretty usable for me!
  • What about QNX OS for small embedded applications...

    You might as well ask, what about Windows 98 for a desktop environment? That's not a flame, it's just that you're comparing open software with closed. Sure, QNX is an alternative, and (unlike Windows) reportedly a great one. But like Windows it's commercial closed-source software. Open, free software has obvious appeal to Slashdotters. :-) Probably enough that some would use a free DOS rather than QNX even if they had the budget for QNX.

    There is already the demo disk, with several intressting apps...

    Just keep in mind that the demo is "free beer" free and not "free speech" free. And it's just a demo, not something you could use in your own embedded systems.
  • FreeDOS's first intent is to provide a 'free' (insert favorite definition here) version of DOS which is compatible with MS-DOS.. to the point of running on an 8088/8086 system.

    As for licensing, FreeDOS encourages GPLed software, but the distribution is not restricted to GPL-only. There are 'public domain' items in the distribution. A current poll on the FreeDOS site is asking if 'free for noncommercial use' software should be included. (I think such should be, but only for 'non-essentail' items and kept as a seperate download so folks can avoid it if desired.)

    Multitasking and 32-bit utilities/extensions may be considered for a later distribution option or addition, as I understand it. Much as I would like that, the 32-bit world is already being served by Linux/BSD/(and even Windows), so I can see why the original objective is held to for now. Yes, 16 bit is "obsolete" but the machinery still runs and for some things is sufficient.

  • From a great tip site []

    With this option on, you can type the beginning of a directory or filename, and tab your way through all files starting with those characters.
    Ex: typing cd pro {TAB} will get you to C:\Program Files (if that's the first directory starting with a "P" on your drive). typing cd pro {TAB}{TAB} would get you to C:\Providers (or the next "P" directory in alphabetical order).

    Turn File Name Completion on using the Registry:

    HKEY_Current_User\..\Software\Microsoft\Command Processor\CompletionChar=0x9
  • by Anonymous Coward on Friday January 28, 2000 @10:43AM (#1327753)
    "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. " Does anyone have any more information on this application? I have searched the net for the last hour with no luck. And I am suprised no one asked any questions pertaining to Security and FreeDos. Thanks PE
  • by Adaere (96166)

    Well, when I was using DOS, I didn't know there was *nix. I gained enlightenment and made the switch. I'm a happy camper now.

  • The beauty of the demo scene was the amazing amount of effects that they managed to achieve on a nonpowerful machine. For example, when I look at Into the Shadows, or at 2nd Reality, or Unreal, I have to remind myself that this demo runs well on a 386.

    Unfortunately, today, there really isn't a challenge in creating eyecandy. There is no need to delve into assembler, because frankly, in many cases with modern cpu's, your compiler probably can optimise code pretty well. There is no need to explore and push your hardware with weird assembler tricks, because running at 400mhz, you don't have to really work that hard, and besides, with DirectX, with Simple Directmedia Layer, with PTC, there is no challenge.

    Why even bother writing your own 3d engine when you can just use OpenGl/Direct3D and get hardware acceleration to boot?

    A combination of underpowered hardware and DOS offered a minimialistic environment on which a hotshot coder could try his own ideas and distinguish himself from his peers by going the extra distance to optimise his code, to make sure his demo will run well on a 386sx25, to make sure his demo will run in 500kb of memory with 2 megs of expanded memory.

    In short, it was a challenge in good old days.

    Anyhow, the scene is still alive today, In particular, people should check out TBL., they are geniuses. (IE, they have written an ~80kb win32 demo that runs for minutes. It also runs in Linux! ( for their demo loader for linux))
  • I used to love DOS. I taught myself the basics of C with a shareware DOS compiler on an ancient 286 laptop. What I loved about it was interacting with the computer via command-line. And, ironically enough, it was faster than my 75 MHz Pentium with Win95, simply because there was far less baggage associated with the OS. I had even thought about installing dialup software and a Web browser on the 286, although I never actually got around to it. My infatuation with DOS continued until I found out about a REAL OS that could be used via a CLI. I still use DOS occasionally, but now that I'm used to Linux, it's just not the same anymore.

    Yes, I realize this post has absolutely nothing to do with FreeDOS, and that it will probably be moderated as offtopic (and rightly so). I just felt like saying it.

  • In zsh just bind something to history-beginning-search-backward. I'm sure bash will have a similar feature.
  • I am a big fan of the Thompson Toolkit. I've been using it for over a dozen years now, and there *is* a 16-bit DOS version. It provides a Korn-compatible shell with some C shell features added as extras. It has history, and command and filename completion. The best thing is that you can mix UNIX-isms in with your use of DOS; for example, there is a feature where it will re-write your command line before passing it to DOS, replacing all '-' with '/' and all backslashes with '/'. You can also enable all your DOS commands with alias, like this: alias cls '$COMSPEC /c cls'
  • What I still do not get is why the focus on DOS?
  • The HTML got clobbered around question #7 (sob... and that was my question... sniff). Is there any way to correct this to make it a bit easier to read?

    If the answer is "deal with it", I'm sure I'll get over it eventually ;-)
  • Actually I always thought FreeDOS becoming 32 bit with multitasking ability and GPL'd software would be a great solution for the newbie who cannot quite wrap their minds around sys admin duties.
  • by Frederic54 (3788) on Friday January 28, 2000 @09:13AM (#1327769) Journal
    for embedded system there's zillions of OS, like QNX/NTO and more at []
    BeRoute []
  • if only the original DOS was GPL'd things would have been so diferent today - I suspect that 90% of our MS problems wouldn't even be here, and what was would actually work. It just goes to show what a difference RMS has made by his decision to create the GPL so many years ago.
  • by redelm (54142) on Friday January 28, 2000 @09:15AM (#1327772) Homepage
    Sorry I missed the call for questions. I was out-of-town.

    I still have a simple question of FreeDOS: Is it designed to be fully re-entrant? Or does it have/need an "in-DOS" flag?

    If it is re-entrant, then multi-tasking becomes considerably simplified.

    -- Robert

  • Don't cry, Mr. Hat. It's all fixed now...

    - Robin
  • You're the best. Now we need a "Roblimo" award to go along with that "Hemos" award. I'd have an easier time deciding *that* one ;-)

  • by MrHat (102062) on Friday January 28, 2000 @09:12AM (#1327775)
    The focus is on DOS because Jim Hall is the project leader/coordinator of the FreeDOS project, a GPL emulation of DOS. It's a free product, a free license, and a free interview - and I'll take one free interview over no free interviews any day. Also, If anyone has ever had to work around DOS before (and I'm sure we all have), reading answers from someone who knows its internals is pretty exciting stuff, even if its architecture is a few years old ;-).

    So, its not worth complaining about the topic. The focus is on DOS because (DOS = OS history) and (OS history = interesting), at least in this forum.
  • I remember the day that I first got an IBM PC (coincedentally the last time I *ever* used my ti-99/4a). I remember teaching my grandfather DOS (with little success). I remember being addicted to TradeWars, accessed through a beta of Procomm off said dos machine.

    snif! Memories.....

    Seriously, though, cool interview. Does the licensing question imply that companies might in the future include statements in their license agreements to keep things as basic as DOS from being rewritten in Open Source? There have been some attempts, but it seems to me that even if Johansen and crew win their legal batttle, all this will accomplish is the creation of a clear and immutable legal format for barring reverse engineering.


  • No it's not. Where's the answer to question 6?
  • While the idea of having an OS to handle multitasking is nice, sometimes there is too much overhead in having a real OS layer. If multitasking is needed (and it isn't always) it is done directly in the embeded program. DOS is nice in this case since it gets out of the way and lets the program do whatever is needed.

    remember, most embeded systems are memory and processor limited (there are a lot of new designs still being done with 16-bit chips - or less).

  • I can see I've gotten some people interested in this idea. I'd would like to speak with more like minded individuals. I've often thought of doing something like this for my own interest. I think it would be a kick.
    Feel free to email me to discuss this further.
  • by mindstrm (20013) on Friday January 28, 2000 @11:10AM (#1327781)
    First, the demo disk has little to do with embedded applications. It's just showing off the size and functionality of QNX. Embedded/RealTime applications are generally.. well.. any time you see a computer in a device that's not a computer. A car. A space probe. A satellite. A DVD player. A stereo. Embedded controllers for robots.
    Too many people in the OSS/Linux world seem to think that 'embedded applications' means a miniature PC.. or a web browser/email appliance...

    Secondly, QNX is closed source, and competes with a fair number of other RTOS vendors. (VxWorks, etc..)
    Thirdly, QNX (& VxWorks, and others) are fairly complex, multitasking embedded OS. If freeDOS were to be used, it would be because these functions were not needed, and would just add clutter.
  • Wouldn't that be: "Always changing the future is." ???

    Sorry, couldn't resist. =)

    Marcelo Vanzin
  • Its nice to know that people like this are living in Minnesota. Call me crazy (as many do :) but I feel that Minnesota (Minneapolis-St. Paul more precisely) will grow into a very influential hub for IT and OSS. Admittedly, temps ;)

  • Remember when Norton Tools were useful? :)


    Bill Gates: "Innovation"
  • The Webserver is here [] Be cautious, i'm pretty sure it is not able to handle a great deal of hits at once (i think one at a time is it's limit still), so please be nice to it.
  • I am a big fan of the Thompson Toolkit. I've been using it for over a dozen years now, and there *is* a 16-bit DOS version. It provides a Korn-compatible shell with some C shell features added as extras. It has history, and command and filename completion. The best thing is that you can mix UNIX-isms in with your use of DOS; for example, there is a feature where it will re-write your command line before passing it to DOS, replacing all '-' with '/' and all backslashes with '/'. You can also enable all your DOS commands with alias, like this:

    alias cls '$COMSPEC /c cls'

  • Yes, reentrant would be nice. But all tsr's would have to be modified to make use of it, and as for multitasking, it still has a lot of other problems (Also known as enourmous unpassable barriers). I think the develop a 'real' os out of dos would be folly, as it's just the wrong basis. Better start from scratch.
  • Its nice to know that people like this are living in Minnesota.
    Call me crazy (as many do :) but I feel that Minnesota (Minneapolis-St. Paul more precisely) will grow into a very influential hub for IT and OSS.
    Admittedly, temps smaller than the # of inches in snow isn't exactly an appealing place to live as opposed to Sunny southern California but there are a few good points. Besides, the cold weather just removes another distraction so we can better concentrate on coding.

    1) Plenty of room for growth.
    2) Decent cost of living.
    3) Great environment for education and learning.
    3) Scandinavian friendly. (hint hint, Linus... ;)
    4) Plenty of beaches. (10,000 lakes...go figure)
    5) We're centrally located with acceptable flytime to east/west coast and driving distance to Chicago/Geek compound.
    6) We get along well with Canadians. (who doesn't)
    7) Quickly growing IT resources/careers in the state.
    8) A governor who says what he means and means what he says. (Like Jim said..."Save us!" ;)
    9) Birthplace of Mystery Science Theater!

    Of course, one way to agitate a *lot* of Minnesotans would be to wrongfully lock up a 16-year old Norwegian as a corporate scapegoat. ;)

    I was going to post as AC but I guess I can lose a little karma. >;)


    Bug Note: I am submitting this as plain old text and a "less than sign" truncated my post. isn't still looking for tags, is it? I guess the quick hack for that is to just use the preview button. :)
  • Whilst we all loathed DOS when it was around

    Since when? DOS used to be the only way that I'd use the computer... I refused to run Windows if I could do the same thing in DOS. Why? Well, for one thing.. my machine wasn't exactly top of the line, and DOS took up WAY less resources than Windows. This pretty much made everything that ran in DOS blazingly fast compared to it's Windows counterpart.

    Once you know DOS, it's so much easier and faster to get around your comp as well.

    In short, I LOVED DOS!

    -- Dr. E --
  • Come to think of it, I will expand on that. Linux, G_ds know I love it, but I would also love to see these things happens to a splinter effort from FreeDOS
    1) Make it a true 32 bit OS
    2) Forget about back-asswards compat. issues. Break somewhat newer ground by borrowing some great linux ideas such as a modular kernel ingrained tcp/ip stack, virtual terminals, etc. DOS could definitely be given a new life
    3) Its hard for some newbies who are used to DOS to wrap their minds around such issues as inted.conf and networking things. They don't always need this stuff. This could be a DOS equivalent to Linux for the "single user".
    4) Admittedly, "C:\(path)" is much easier to use in some cases.
    5). Tons and tons of programmers who cut their teeth in programming on DOS with Borland C, etc. This would be a great resouce.
    6). Implement the GNU gcc, libs, graphic libs, etc. These things could be retooled for a single user multi-tasking OS.
    7). Sure the FAT filesystem needs to be rewritten, but someone already made FIPS able to understand and work with FAT32.
    8). There is no reason why it cannot be given a more flexible CLI.
    My point is, all the pieces are there, they just need to be implemented. Just my lousy two cents, er which now makes four cents. Do I get moderated down for overspending? ;)
  • by finkployd (12902) on Friday January 28, 2000 @09:35AM (#1327792) Homepage
    I think a good many of us started hacking on DOS. Despite its maker, many of us look back with fond memories to the days of dissembling COMMAND.COM (I can't have been the only only doing this :) and pretty much learning to program on this platform.

    Heck, I started the same way as this guy. Anyone who has typed DIR on a 286 to display a directory with more than 50 files knows the mind-numbing slow rate in which it displayed files. So, I learned assembly language (at the age of 14) and wrote DIRX to replace it. It's a usless program now, but it was popular on local BBS's at the time :)


    PS. I do not recommend that ANYONE try to learn assembly language as a first programming language. It will forever ruin you ability to program :)

    Bill Gates: "Innovation"
  • DOS, not requiring protected mode, will run on lower-end CPUs, and with less memory than many other embedded OSes.

    Yes, it does do less, but if you don't need preemptive multitasking, or networking, it may be the perfect choice.

    A lot of embedded apps don't want the OS for much besides a loader and a filesystem API, and DOS is pretty good at that, especially if you don't need speed.
  • by Anonymous Coward on Friday January 28, 2000 @09:37AM (#1327794)
    Maybe it's just me, but I would have thought that a multitasking OS would be better for most embedded uses, such as Embedix, Mobile Linux, ucLinux, ELKS (if it works), etc. And from what I've read recently, a fair bit of embedded applications seem to be in the robotics or industrial controller categories, which need a real time OS, such as RTLinux or eCOS (I think). Using a DOS variant for embedded stuff doesn't make a whole lot of sense to me.

    One thing I don't understand is, why can't you use a Linux/*nix boot disk to flash the BIOS? I'm missing something here. And you most certainly can use Linux on one floppy - I have a copy of Tom's RTBT, which is exactly that, and seems to have a wide variety of tools with it.

  • FreeDOS implements similar controls to the "in-DOS" flag. Of course you are free to modify it to do otherwise (and it would probably be accepted). It gets trick as incompatibility becomes an issue. Heck, Microsoft had problems of their own with version compatibility.

    RxDOS is a commercial, real-time DOS that implements a re-entrant kernel. Although it is commercial, it comes with source code, and it is based on a book by the developer. Looks like he just moved web sites and info is not up yet, but you can find the home page here [] when it's back up.

    Kudos to Jim & Co on an excellent effort. FreeDOS is one frustrating project to work on, given all the quirks and undocumented structures. Worse than what the Samba team has to deal with IMHO.

    -- Bryan "TheBS" Smith

  • Currently, AFAIK, there are no laws against reverse engineering, and because shrinkwrap licenses aren't valid (except probably in shareware) they couldn't get you to agree to such a stipulation.

    Shrinkwrap/@install licenses aren't valid mainly because you already purchased the software before being asked to agree, so in offering you a contract you have to say yes to to proceed, they void the contract. The is probably different in shareware because you haven't bought the software, so you're negotiating the right to use it.

    But, even still, I doubt a no-reverse engineering clause would hold because it takes place outside of your usage of the program.

  • ...if you're only doing one thing (like a specific embedded app).

    Underestimate the number of computers that only need to do one thing at your peril :)

  • This is not directly related to the current interview, but I've a suggestion for a future interviewee. How about we interview Miss Natalie Portman.

    Before you cry "Troll!", think about it: Slashdot is News for Nerds, of which Star Wars is a big topic of interest. And as I recall, one of Rob Malda's interests when he started up Slashdot was Star Wars. So what do you say, let's interview Natalie Portman?

    Perhaps some Harvard people reading this can arrange something. There's obviously a lot of interest in her here.
  • by WNight (23683) on Friday January 28, 2000 @11:54AM (#1327799) Homepage
    4dos, from jpsoft. It's got filename completion, command recall (w/ wildcards, so you can type "cd s" and when you hit 'up' you get the commands that start with that substring...), an improved batch langauges, precompiled (to bytecode) batch files for speed, Aliases, and tons more. And it's shareware.
  • "A specific embedded app?" There's so much more. Most users only handle one application at a time because that's the limit of attention divisibility. In such cases, a single-tasking equivalent (with TSRs providing functions for background tools) can be as productive in less resources.
    Besides-- why should I wait for a full multitasking environment to come up if all I want is to edit a text file?
  • Well, if people want the Internet in DOS over a modem, go get Arachne []. It's an excellent graphical web browser for DOS with PPP and most other Internet tools built in, and it doubles as a GUI for basic file manipulation.
    A linux console version is in development.... something to watch, as this is an excellent browser for embedded systems...

    It's the same as Caldera WebSpyder (Caldera licensed the code from them.)

    This, coupled with FreeDos, and perhaps some old Apogee games, makes a 386 with 4MB of ram fun again.
    Talon Karrde
  • 19h traps were far more fun. ahh..the joys of TSR's.
  • Where's Jim's answer to question #6?

  • My bad, I figured out by reading the source that the tags were just a little messed up. ;-)
  • I personally love DOS. I've always been partial to command lines rather than GUIs. Even though I'm learning *nix at the moment, I still enjoy using DOS and plan to download FreeDOS as soon as I get off work. I just have one question: I have MS-DOS 6.22. Can I use some of the MS-DOS executables (backup/restore/etc) to substitute missing features of FreeDOS until they are included? Has anyone tried this? The article also mentioned freeware programs that made up for some of FreeDOS's current shortcomings. Does anyone know of a good resource for such programs? I guess that was more than one question. =] I'll let you know if I find any answers.
  • What about QNX []OS for small embedded applications...

    There is already the demo disk, with several intressting apps...
  • the only thing I want in the dos cli is command-completion. I've managed to become so addicted to it that it becomes a matter of phyisical pain to try to use dos (& dos boxes) NT makes this a thousand times worse. cd C:\winnt\profilles\administrator\desktop /me hits face with keyboard

When speculation has done its worst, two plus two still equals four. -- S. Johnson