(2024-04-08) A few more words about DOS
---------------------------------------
I'm back. And I still dislike DOS, its backslashes and interrupts. However, I
still consider it quite underrated nowadays, especially the flavors like
FreeDOS and SvarDOS (which is based upon FreeDOS, in case you didn't know).
Why? Because, well... Yes, DOS looks, feels and pretty much *is* ugly. The
thing is, it's not its own fault, but rather of the underlying hardware
architecture. Any DOS is ugly solely because x86 itself is. Period. DOS, as
a kernel, just offers some absolutely minimal abstraction over this complete
trainwreck. It showcases all the imperfections of x86 and clearly
demonstrates how much more complexity is required to fully abstract away
from them. Through this, DOS lets us fully understand where the root of all
evil in modern computing resides, and how "more modern" began to
automatically mean "more complex". If you still don't understand what I'm
talking about, just look at the distribution sizes for some programs,
interpreters and compilers backported to DOS from other OSes. If these sizes
are bigger than for e.g. Linux, that's how much complexity Linux kernel and
system libraries hide from you.
On a flip side though, for those who still have to stick to x86, DOS is one
of the last safe havens if you're serious about retaining control over
things at least to some extent. Because, of course, we lost the battle long
ago when it comes to hardware (no one can solder a modern PC the way we
could solder a Spectrum clone anymore), but, with DOS, we still can be as
close to that hardware as possible and not let various corporations with
dubious intentions decide for us. As a bonus of reduced complexity, we
automatically get reduced energy consumption (i.e. less consumed power and
better battery life) and ability to better understand WTF is going on if
anything doesn't work as expected. To be honest, I really have been missing
this feeling even with Linux and OpenBSD, so I started looking at
possibilities to daily-drive some DOS whenever I could.
This is how I found SvarDOS ([1]), a FreeDOS derivative that has an Arch-like
package system. Its main maintainer, Mateusz Viste, has developed a lot of
other interesting DOS software. He also has a Gopherhole at gopher.viste.fr,
and I highly recommend visiting it. Despite being a derivative, SvarDOS
doesn't have 100% of the processes identical to FreeDOS, so reading its own
documentation is mandatory. And the documentation format, AMB (Ancient
Machine Book), is just wonderful, I plan on writing my own set of tools to
work with it in a cross-platform way. The SVP package format is also simple
enough, and the repo contains much more useful software than FreeDOS itself
can offer. It even sparked my interest in learning the Rexx scripting
language, as the Regina interpreter has a DOS port too. I also was really
surprised to see the things like Lua and SQLite3 there, and, of course, the
Links browser that has fully working graphics (with -g option) and even
modern SSL support. Among the software not present in the SvarDOS repo, I
can highlight a huge official Vim 7.3 port and this ([2]) SSH2DOS version
that is pretty sufficient to turn any DOS box into a full-featured thin
client. Of course, if you have the necessary packet drivers.
And this is pretty much the only obstacle I have: drivers. So far, I've been
testing SvarDOS in VirtualBox only, and, as you might have guessed, all
networking is in place there. Whenever I find a suitable real PC to run it
on (otherwise there won't be any fun), I may face the problem of not having
even Ethernet drivers available for DOS. And WLAN, AFAIK, is pretty much a
no-go with the current-gen chips, but I do have a spare Ethernet port on my
home mesh node in the room. Anyway, it's worth giving it a try, maybe I'll
find out even more about the hardware itself. And if it works, well, I'll
make sure to put a good use to it.
The black abyss of DOS is calling to escape from the dystopia of complexity.
Are you ready for it?
--- Luxferre ---
[1]:
http://svardos.org/
[2]:
https://github.com/AnttiTakala/SSH2DOS