..............
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 $.02 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:
(A)
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.
(B)
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.
-jh
..............
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.
At work, Jim is Web Production Manager for the University of
Minnesota.