On Thu, Feb 6, 2025 at 7:55 AM Bruno Ribeiro via Freedos-devel
<freedos-devel@lists.sourceforge.net> wrote:
>
[..]
> Anyway, I think self-hosting is a technical property in alignment with
> the very purpose of free software.  It's a nice feature!  In my
> bare-metal retro endeavors, I'm fond of being able to modify and build
> any software in place, without resorting to foreign systems.
>

This is probably a longer answer than you needed, but here you go:

In terms of building everything from source: yes you can do that. And
we provide the source code with every package so you can do this.

Our preferred C compiler for FreeDOS programs is OpenWatcom C, and our
preferred assembler is NASM. Both are included in the FreeDOS
distribution (on the BonusCD). However, DOS has a different
development paradigm than Linux or GNU or BSD, which is probably the
point of view you're coming from. For example, with Linux you can
build packages through a common 'make' system, and the GNU tools use
Autoconf to support the varying configuration of different Unix-like
platforms (including Linux and BSD). The Linux kernel, Linux tools,
GNU, and BSD all started as open source software, so building these
from source has always been possible, and usually fairly
straightforward.

DOS systems from the 1980s and 1990s were rooted in proprietary
software. PC DOS and MS-DOS were closed source -- if you wanted to
write programs in C, you bought a C compiler like Borland's TurboC or
Microsoft's QuickC  .. or to write assembly programs, you bought an
assembler like Microsoft's MASM. Many compilers had a 'make' but
others used a "project" based approach. And some developers used
'make' to compile their programs, and others created BAT files (I use
BUILD.BAT and CLEAN.BAT for several of my programs, especially if
they're small). It was only much later that open source compilers &
common tools became more common/normal. So as you found, there are a
few older (as in "started in the 1990s") programs in FreeDOS that use
a closed source compiler like TurboC. If the program was updated over
time (and especially if other developers maintained it) then it's more
likely the program was "ported" to use an open source compiler like
OpenWatcom.

But if the program didn't need to get updated, then not. And it's
important to note the difference here: a distinguishing feature of DOS
is that it's backwards compatible. Even MS-DOS 6.22 could run programs
written for PC DOS 1. FreeDOS is an open source implementation of DOS,
so FreeDOS can run these older DOS programs too. And DOS doesn't use
the shared library model of Linux and other Unix systems; there's no
dependency on an underlying library, once you have compiled a DOS
program, it's standalone. So FreeDOS programs don't need to be rebuilt
all the time just because a library changes, like on Linux -- if the
program works, it will keep working. And that's why some older
("started in the 1990s") FreeDOS programs have notes to compile it
with TurboC or something else, because it just keeps going and you
don't need to rebuild it for each new FreeDOS distribution.

Folks are always welcome to update an older FreeDOS program to "port"
it to OpenWatcom. If you'd like to do this for any programs you find
that require a closed source compiler, please do. If there isn't an
active maintainer for that program (and likely not, or the program
might have been updated already) then you can become the "maintainer"
for the purpose of updating it to OpenWatcom.


I'll add that several vendors have since released their compilers for
free (gratis, if not open source) and we link to them from the "For
developers" page on our website.
<https://www.freedos.org/about/devel/> For example, Embarcadero bought
out Borland many years ago, and released TurboC and TurboC++ for free
via their website, and Micro-C is also available from Dave Dunfield's
website.


_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to