FreeDOS Blog

❮ Back

May, 2017

Linux and FreeDOS

I grew up in the 1980s, and we were fortunate to have a computer at home. Our first computer was a Franklin ACE 1000, a clone of the popular Apple II computer. My brother and I taught ourselves computer programming on the Apple, and it was here that I developed my first love of technology.

Later, we replaced the Apple with an IBM PC. Throughout the rest of the 1980s and into the 1990s, I was a hard-core MS-DOS user. When I learned C programming, I started writing my own DOS utilities and tools to expand the DOS command line. And of course, you know the rest of the story: in 1994, after Microsoft started talking about how the next version of Windows would do away with DOS, I started the FreeDOS Project so we could all continue to use the command line operating system.

I recently wrote an article for that tells another dimension to the FreeDOS story. In "How I got started with Linux," I talk about my DOS roots, and how I also used our "Big Unix" systems when I was a physics undergraduate student. I thought Unix was really neat, and it had a lot of great tools and utilities that helped me get my work done. I loved DOS, but I also came to love Unix.

And in 1993, I decided MS-DOS was getting a little stale. I still loved DOS, but I wondered if I could have something more like the Unix systems at school. And that's how I discovered Linux, then only two years old. I installed Linux on my home computer, with a DOS partition that I would use to boot into DOS and run programs and play games.

What I didn't mention in the article is that Linux inspired me to create FreeDOS. I first started using Linux in 1993. A year later, Microsoft announced that the next version of Windows would do away with MS-DOS. At that moment, I thought "A bunch of programmers on the Internet got together to create a free version of Unix. How hard could it be for us to do the same with DOS?"

That thought was the origin of FreeDOS. Without Linux, I don't think we would have created the FreeDOS Project.

I encourage you to read my article on about how I found Linux. It's an interesting story, with FreeDOS roots.

Getting started in FreeDOS

Every time new developers email me to ask what they can work on, I realize I don't have a list to point them to. I'll put something on the website later, but I wanted to share a few notes to help new developers get started in FreeDOS.

What can you work on?

Help fix bugs

All software has bugs. Like the one in HELP that causes a  crash when any language other than English is being used. A great way to contribute to FreeDOS is by fixing bugs. Look through our Bugs database and contribute some code patches. If you can't find the current maintainer, ask on the freedos-devel mailing list.

Create new features
There are those projects that should be done. But, nobody really seems to want to do. For example, FreeDOS could use a good GPL-licensed CD-ROM driver.

Adapt FreeDOS to modern platforms
There are complex problems that everybody would love solved. FreeDOS could really UEFI bootstrap/BIOS emulator. There may be open source projects that could be ported. Otherwise, it would be a very long term and complex project.

Pick up an existing project
Then there are those numerous abandoned open source projects. Some haven’t had any fixes or updates in many years. It would be nice if they found a new home and were adopted by a loving and caring family.

There are so many things to do. No matter how much is done. There will always be more.

Contributing to FreeDOS

At FreeDOS, we welcome new contributors! All you need is an interest in DOS, and a willingness to learn. There are lots of ways to contribute to FreeDOS, whether that's fixing bugs or creating new features and programs.

If you create a new program for FreeDOS, what do you do next? How do you contribute your program to the FreeDOS community?

We don't automatically include new contributed programs into the FreeDOS distribution. We need to be careful here, to make sure that only programs that interest many FreeDOS users make it into the distribution.

First, announce your new program on the freedos-devel list. Tell us a bit about your program: what does it do, how can we download it, what's the license? We prefer to see new FreeDOS contributions use a Free software license such as the GNU General Public License, usually GNU GPL v2 or GNU GPL v3, or a suitable open source license such as the BSD 3-clause license or MIT license. What license you choose is up to you, but most FreeDOS programs tend to use one of those licenses.

If your new program looks interesting, we'll also announce it on our FreeDOS Twitter feed. That helps others to know your program is there, even if they aren't on the email list.

We don't usually post new programs as news items on our FreeDOS website. However, if the developer consistently releases new, updated versions of the program, we may put a news item on the FreeDOS website.

It's up to you to keep the discussion going on the freedos-devel list. We want the email list to discuss your new program on the email list and like using your program. If we see a consensus there that folks find your program useful and would like this to be part of the FreeDOS distribution, then we may include it in the next distribution.

Unix utilities for FreeDOS

Years ago, there was the "GNUish" project, which ported the GNU utilities to DOS. But eventually the project stalled. Before GNUish shut down, they reached out to me to mirror their files. You can find them at ibiblio.

I think it would be great for someone to pick up the GNUish project again. Port the GNU Utilities to FreeDOS using OpenWatcom, or DJGPP. This is likely challenging, as it will require creating wrappers for different functionality, and workarounds for other functionality that doesn't exist on DOS.

I think Unix utilities for FreeDOS would be really interesting on FreeDOS! We already have some Unix-like programs in FreeDOS and a few utilities exist at DJ Delorie's website, but as far as I know no one has created a comprehensive update to GNUish.

In the absence of a "GNUish 2.0" project, I have started to collect the Unix-workalike programs to a single directory on our files archive. You can find them under "unix" at ibiblio. So far, we've collected these programs:

  • awk
  • cal
  • cron
  • ghostscript
  • gzip
  • head
  • nroff
  • perl
  • sed
  • sleep
  • tail
  • tar
  • tee
  • touch
  • uptime
  • which

If you're interested in contributing to FreeDOS, but you aren't sure what to work on, you might consider porting the GNU Utilities or other Unix utilities to FreeDOS. We'd love to add them to our archive.