Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
GNU is Not Unix Open Source

The Slashdot Interview with FreeDOS founder Jim Hall (freedos.org) 51

In honor of FreeDOS's 25th birthday, project founder and coordinator Jim Hall agreed to answer the 10 best questions submitted by Slashdot readers. You asked and he answered! Read on for Jim's interview.

Compatible versus modern
by Anonymous Coward

FreeDOS, as I understand it, is meant to be compatible with MS-DOS 6. Is it tricky to maintain this legacy compatibility while also trying to improve, or modernize, FreeDOS? I see a lot of utilities are developed for the OS and I'm guessing you get a lot of requests to port FreeDOS to modern CPUs, or add advanced features. So how do you decide what can go into FreeDOS and what is kept out to maintain backward compatibility?

JH: I've wanted FreeDOS to be a modern DOS. If we just stopped at reproducing MS-DOS 6.22 with only those features, and no more, then FreeDOS would be dull. I've always looked at how we can make FreeDOS a more modern DOS. But how much can you really change?

A while back, I did a thought experiment. Where might Microsoft have taken MS-DOS if they hadn't stopped working on it? Let's say Microsoft decided "we're moving ahead with Windows, but we're going to keep developing MS-DOS as a command line operating system." What might Microsoft have added to MS-DOS to make it relevant and modern?

My thought process went like this:

A modern DOS would have included support for the newer CPUs. Sure, MS-DOS hadn't changed when the '386 and '486 came around, and even the Pentium. But what if it had? To take advantage, DOS would have supported multitasking. And 32-bit. As the Internet became a thing, you'd add network support in there too.

At some point, you'd need to change the memory model. DOS is a simple operating system, and as you launch a new application, that program gets total control of the system resources. If you assume a multitasking DOS, you'd have to update it so each process is isolated.

Because the memory model and other core DOS assumptions need to change so much, you lose backward compatibility. Older applications written for DOS 6 wouldn't run on the new DOS, so you'd have to create a "sandbox" environment to run legacy DOS applications.


I could go on, but you get the idea.

But we've seen a multitasking command line PC operating system with built-in networking and new EXE model, with a sandbox to run legacy DOS applications. That already exists. It's Linux, booting into runlevel 3, with something like DOSEMU or DOSBox to run DOS applications. We already have that.

I decided that re-inventing "FreeDOS" to be another "Linux" just didn't make sense. Don't make FreeDOS into something it's not. FreeDOS is DOS. Let's keep FreeDOS as DOS. And that means all the legacy stuff that goes with it.

That leaves userspace. We can do a lot by expanding the command line through enhanced utilities. FreeDOS includes compilers and development tools (C compilers, Assemblers, BASIC, ... even perl), editors, networking, and a ton of cool utilities and power tools.

We have a bunch of Unix-like utilities in FreeDOS, which makes it easier for Linux users to use FreeDOS. There are versions of cal, du, bc, sed, grep, head, less, nroff, tail, tee, touch, and other familiar utilities. In the upcoming FreeDOS 1.3 distribution, we're planning to separate these Unix-like utilities into their own package group so they are easier to find and install.


What Next
by markmay

What do you see next as the direction for FreeDOS? Anything specific you'd really like to add?

JH: Over time, we'll continue to add to the FreeDOS command line. That's a given.

While I don't want FreeDOS to become a "mini-Linux," I do like the idea of including as many Unix-like utilities as make sense. There used to be a project called GNUish that ported GNU utilities and other Unix utilities to DOS. The GNUish project stopped some time ago, but I would love to see more of that. Maybe that's a good project for new developers?

Another group of developers has started work on a new DOS kernel project called the NightDOS kernel. Their goal is to write "a 32-bit drop-in replacement" for the FreeDOS kernel, including support for legacy 16-bit DOS applications. I'm keeping an eye on them. If they succeed in a DOS kernel that can natively run 16-bit DOS applications, while adding their other features, maybe we'll include NightDOS as an optional kernel in FreeDOS.

NightDOS is still very early in development. They have a long, long road ahead of them. They don't support FAT yet, and their roadmap says NightDOS won't run EXE or COM programs until the end of 2020. So there's a ways to go yet. But that would be neat.

I would also like to see FreeDOS run on UEFI hardware, without a BIOS. I imagine this would need to add some kind of UEFI bootstrap BIOS emulator, perhaps implemented as an IPL. That one is tricky, and may be of limited value anyway. See next question:

What happens to FreeDOS when BIOS is dead?
by Anonymous Coward

DOS relies on code built into the BIOS, and BIOS is starting to become unavailable in newer hardware. I noticed the last motherboard I bought was UEFI only. The FreeDOS website says that FreeDOS cannot emulate BIOS. So what's the long term plan for FreeDOS? Will FreeDOS die, or will it only run on older systems that support BIOS, or inside a VM?

JH: Yes, BIOS is on the way out, to be replaced by UEFI.

Like any DOS, FreeDOS requires an Intel x86 CPU and a BIOS to provide basic runtime services. FreeDOS relies on the BIOS as a core assumption. It's not something to be easily replaced.

So that suggests FreeDOS won't be able to boot on bare metal new PC hardware in a few years. As you've noticed, some PCs already don't support BIOS, so those computers can't boot FreeDOS as their operating system.

But BIOS isn't the only limiting factor for newer PCs, anyway. Modern PCs have more memory and disk than a 16-bit operating system like FreeDOS can address. And FreeDOS can't leverage multiple cores or multitasking, except for single-CPU pseudo-multitasking via TSRs.

For a long time, we've seen the trend where more people are running FreeDOS in a PC emulator, while they run a completely different host operating system. Linux running QEMU, or Windows running VirtualBox. And FreeDOS runs very well there. FreeDOS doesn't require much overhead, so you don't need to allocate a lot of resources to the virtual machine to boot FreeDOS in your PC emulator. Boot FreeDOS and run DOS applications in a PC emulator, alongside your everyday applications.

Looking ahead, I think most people will boot FreeDOS in a PC emulator. And that's already happening. Even I don't run FreeDOS as my native operating system. I run Linux (Fedora 30 with GNOME, if you're curious) and boot FreeDOS using QEMU.

Languages
by AmiMoJo

It looks like FreeDOS is mostly C and assembler. Have you been tempted to move to C++, or any other language?

JH: In a word, no. Writing an operating system like FreeDOS is best done with as little overhead as possible. C lets you get pretty close to the hardware, and Assembly is right there. Moving to a higher-level language wouldn't be a good fit.

Best use of FreeDOS
by iampiti

What's the best use you've seen of FreeDOS (most surprising, most useful...)?

JH: Someone made a pinball machine that ran FreeDOS to keep score and display a graphical back board. I always thought that was neat!

This started as a hobby project, but became a commercial venture. I'm not sure on the details, but I'd guess the score targets on the board (drop targets, bumpers, etc) were probably generating keyboard events (like A,S,D,F and H,J,K,L for drop targets, Q,W,E for bumpers, R,T,Y for gates, and so on). I imagine certain other parts of the machine were purely electrical (like the flippers) and other parts were hybrid (bumpers automatically kick the ball away, but also send a keyboard event).

With those assumptions, you could write a DOS application that listened for keyboard inputs, and update the board appropriately.

I have no idea what happened to that project. I'd love to find out. I hope it went well.

Microsoft
by Anonymous Coward

How has Microsoft responded to your project over the years?

JH: Microsoft has not commented on FreeDOS. If there are any Microsoft employees out there who worked on MS-DOS and were aware of FreeDOS, I'd love to buy you a beer sometime. :-)

Maybe FreeDOS is what nudged Microsoft to finally release early versions of MS-DOS under an open source license? If so, that would be the best response from Microsoft.

If you aren't familiar with this: In 2014, Microsoft released the source code to MS-DOS 1.1 and 2.0 via the Computer History Museum. This was under a "look but do not touch" license. In fact, we asked that anyone who studied this MS-DOS source code not contribute to FreeDOS afterwards.

In 2018, Microsoft released the source code for MS-DOS 1.25 and 2.0 to GitHub, using the MIT (also known as "Expat") license. The MIT/Expat license is compatible with the GNU GPL. This is a major step forward for Microsoft!

On a practical side, though, this doesn't really help FreeDOS. When we created FreeDOS, we used the Ralf Brown Interrupt List as our reference for MS-DOS functions and behaviors. And Pat Villani's kernel started on a non-Intel platform, anyway. FreeDOS uses a completely different internal structure. You can't just forklift the code from the MS-DOS release into FreeDOS and expect it to work.

There's also the matter that MS-DOS 1.25 and 2.0 are very old. For example, MS-DOS 2.0 was the first version to support subdirectories. These old versions of MS-DOS did not yet support more advanced features like networking and CD-ROM support. These features have been standard in FreeDOS for a long time.

who are the big users?
by drinkypoo

Who are the most numerous users of FreeDOS? Is it gamers, or industrial control, or some other group I haven't imagined?

JH: These days, most people install FreeDOS to do 3 or 4 things:

1. To play classic DOS games.

This is probably how FreeDOS gets used most of the time. There are a lot of great DOS games. Just because a game is old doesn't mean it stopped being fun. I still play DOOM from time to time. My favorite DOS game is probably TIE Fighter from LucasArts. I bought a copy from GOG a few years ago, and I like to play that. The graphics don't compare to modern games, but I really enjoy piloting a TIE to shoot down rebel scum.

2. To run legacy software.

This happens more often than you'd probably think. When I was campus CIO for the University of Minnesota Morris, one of our faculty came in with a problem. She had uncovered floppies with research data that she wanted to access. The data files were written from a now-defunct DOS application, and we couldn't read the data in Excel or LibreOffice. So we installed FreeDOS on a spare PC, downloaded a copy of the original DOS application, and exported the data into a plain text file.

More recently, when I was CIO for Ramsey County, Minn., we finally retired an application that had been running on a DOS computer. That was running MS-DOS, though. This was about a year ago, in 2018.

Two more examples: You may know that George R. R. Martin writes the Game of Thrones book series using a DOS computer. There's also an F1 repair shop that uses a DOS laptop to do car diagnostics. Both examples are probably running MS-DOS instead of FreeDOS, but I like to think FreeDOS could do that too.

3. To support embedded systems.

Some embedded systems run on DOS, although modern embedded systems may instead run on Linux. If you support an older embedded system, you might be running DOS. And FreeDOS can fit in very well. One developer joined us for a while because they supported an embedded system that ran on DOS, and they were moving to FreeDOS. We still hear from people running DOS embedded systems, but it's becoming more rare.

4. To update your BIOS.

I probably shouldn't include this in the list, because I don't know that many people install FreeDOS to do BIOS updates. But there are still motherboard manufacturers that release BIOS updates as DOS applications. You don't need to install FreeDOS to do this. I think most people just boot FreeDOS from a USB fob drive, and run the installer from there.

Long Filename support
by UnknownSoldier

How hard was it to add support for Long Filenames (DOSLFN) and what were the lessons learnt?

JH: FreeDOS uses LFNDOS or DOSLFN (you can use either) to support long filenames. So that's easy.

For example, the package description for DOSLFN says "Provides the Windows 95 long filename API to DOS programs. Any DOS program which can use long filenames, for example DOS 7 Command.com, edit.com and all DJGPP programs, can load and save using them with LFNDOS. Designed for Win95 users using DOS-mode, although it works under old DOS versions too."

Classic 3rd party tools - abandonware?
by blind biker

Have you tried to contact the companies that hold the rights to classic DOS tools like Norton Commander, Norton Disk Doctor, PC Tools, DiskDupe, Laplink etc? Maybe some would be willing to release their old DOS software as a goodwill gesture?

JH: I have! But there's not much to report here. A lot of these companies don't have much interest in the older DOS products, and they view releasing the source code as opening them up to risk. For example, many of the older products you mention may use code licensed from third parties. They may not have the rights to release that source code. Asking them to release the source code to these older programs is basically asking them to do a code review of a product they will never sell, so they don't do it.

But some companies have found a middle ground. If they won't release the old software as free/libre software, they at least release it as free/gratis software. My favorite example is the As-Easy-As spreadsheet from TRIUS Inc. They released the last DOS version as free/gratis software and posted the activation code on their forum:

"As of 03/11/2004, As-Easy-As for DOS was discontinued. Copies of the program can still be downloaded and FREE full licenses can be installed using the information below. TRIUS no longer supports or answers questions regarding this program, but other users visiting these forums might. Here are the links for the program and the user's manual. [Old As-Easy-As v5.7 for DOS program] [Users Manual]"

I think it would be great for more companies to do the same. If anyone reading this works at a company with a DOS product, I'd love to hear from you! My email address is on my personal page.

Motivation
by Camembert

What keeps you motivated to work for so long on this project while there are so many fascinating newer technologies to work on instead?

JH: I might get bored with FreeDOS if it were my full-time job. But FreeDOS is a hobby for me. Some people play golf, I work on FreeDOS.

But FreeDOS is not the only thing I'm working on, or have worked on. Since 1993, I've written or contributed to dozens of open source software projects. FreeDOS is just the one I'm best known for. I sometimes joke that of all the things I've done, FreeDOS will be what I'm remembered for. Not a bad legacy, though. :-)

I also do a lot with usability testing in open source software. That's an area that needs more attention. People assume that "usability" is hard so they don't do it. But really, it doesn't take a lot of effort or time to run a few usability tests and figure out how real people use your software, so you can make it easier to use.

And aside from my open source software work, I just started a consulting company. IT Mentor Group LLC partners with IT Leaders to help in strategic planning and organizational development. I am excited for this new opportunity. It's not every day that you start your own business! Starting a company takes a lot of time, and that means less time for other things.

But I still find time to work on FreeDOS because I just love doing it.
This discussion has been archived. No new comments can be posted.

The Slashdot Interview with FreeDOS founder Jim Hall

Comments Filter:
  • by Anonymous Coward

    Thank you Jim Hall, glad you took this hobby and shared FreeDOS with us. I would buy you a beer (just wouldn't know how to send it =)

    • Re:thank you JH (Score:5, Insightful)

      by Jim Hall ( 2985 ) on Saturday June 29, 2019 @11:30AM (#58845870) Homepage

      You're welcome!

      There are lots of people out there who helped make FreeDOS and keep it going. It's not just me. I'm sure there is a FreeDOS person near you who will happily accept a beer! :-)

      • by CODiNE ( 27417 )

        Man I miss some of this stuff. I think I'll install it in an emulator and go find some text windowing interface, maybe recompile an old Turbo Pascal project of mine or install dBase.

        This is a big "be nice if I could" project for a lot of people. We live vicariously through guys like you.

        • by Jim Hall ( 2985 )

          Thanks! We're really glad people like using FreeDOS!

          Speaking for myself, FreeDOS is a great hobby. Some people play golf in their spare time, I write code and give it away. I just love working with open source! (And I guess I have to love it, if I'm going to work in open source for this long.)

  • by Anonymous Coward

    I boot FreeDOS over USB flash drive to update firmware on various controller cards and other hardware devices.

    FreeDOS makes this painless and I don't miss wasting hours upon hours having to customize an actual MSDOS boot disk to run off a CD (optical drives also becoming rare at this point) or directly off USB flash.

  • Thanks Jim, enjoyed your responses. And thanks for FreeDOS.

  • Founder Jim Hall misspelled FreeDOS on his about page. Top of the page it is FreDOS. LOL!
  • What are the advantages of running FreeDOS in an emulator over using DOSBox? I guess it's mainly that DOSBox focusses on games?

    • It's been a long while since I looked at either program. FreeDOS can run on bare metal and DOSBox requires a host OS. YMMV
    • by Jim Hall ( 2985 )

      DOSBox does a great job with games. I understand it doesn't always do well with applications, so FreeDOS is great for applications. I also just like the experience of running a full DOS. :-)

      And if you need to boot FreeDOS on an actual machine (for example: BIOS updates) then you need an actual DOS operating system like FreeDOS. An emulator like DOSBox won't do that.

      Personally, I use FreeDOS most of the time, running in QEMU (I run Linux as my desktop OS). But I do use DOSBox occasionally. For example, I pl

  • I remember going into Egghead Software [wikipedia.org] to buy a copy of DR-DOS [wikipedia.org] back in the day. They wouldn't take my debit card. The store had a cash-only and all sales final policy to prevent fraud. Very bizarre. If that was true for ALL stores, they wouldn't had a 3.6M credit card data breach in 2000 and be bought out by Amazon in 2001. I bought DR-DOS at CompUSA instead.

We all agree on the necessity of compromise. We just can't agree on when it's necessary to compromise. -- Larry Wall

Working...