While Unix-like operating systems have captured my imagination, the first computer I owned ran MS-DOS. While these systems are widely considered different, MS-DOS helped me develop command-line habits that have served me well on Linux. While you can do a lot more than you used to on modern Linux distros without having to touch the command line, when I got started, that wasn’t always the case.
MS-DOS got me comfortable with the command line
Building terminal muscle memory
Back in the 2000s, it seemed that if you got a distro to install at all, you could call yourself a wizard. This was why Knoppix, my first real exposure to Linux, was so popular as one of the first “live” distros. You could burn a CD and reboot with a different operating system without having to install it. It didn’t seem to like the DSL modem I had at the time.
As complete as Knoppix was, you still had to be comfortable with the command line, especially its famous “cheat codes” at the boot menu. And there were still plenty of things you could only use the command line for, even on a live distro.
A few years later, I decided to try installing a real distro on my PC after becoming comfortable with the Unix command line on macOS when it was still called Mac OS X.
It took some effort, but I was able to successfully create a dual-boot system with Debian and Windows XP.
It was MS-DOS that laid the foundation for my intitial success with Linux. The reason is that I had no choice but to learn the MS-DOS command line. While my first PC, a Packard Bell machine with a 386SX chip, came with Windows 3.1, most games only ran in DOS. Many of them would refuse to even install in Windows. This meant that I had to learn the DOS command line and occasionally dip into configuration files and batch files.
When I had to use the command line as well as edit configuration files and modify scripts, I was comfortable with the concept of a command line.
MS-DOS “borrowed” some ideas from Unix
Imitation is the sincerest form of flattery
One thing that helped me make the jump to Linux was that I’d had some experience in the Linux/Unix command line but didn’t realize it.
This was because Microsoft had added features to the MS-DOS command line that were inspired by Unix. The pipe (|) character was implemented in DOS, I would make much more extensive use of it in Unix and Linux.
Microsoft was actually in the Unix business in the early ’80s, selling its own variant called XENIX. Microsoft abandoned it, selling XENIX to the Santa Cruz Operation, after the Bell System breakup allowed AT&T, the parent company of Unix’s creator, Bell Labs, to enter the computer marketplace and compete directly with Microsoft.
Microsoft teamed up with IBM to develop OS/2, and then split off to create Windows NT as the high-end OS after Windows 3.0 turned out to be a surprise hit. I like to imagine an alternate universe where modern versions of Windows are based on XENIX instead of NT.
Given Microsoft’s history with Unix, the company’s efforts with Windows Subsystem for Linux and the release of its own server distro, Azure Linux, might not be a departure from how it’s done things in the past, but rather a return to its roots with XENIX.
I can manage with the console-only parts of Linux.
No GUI? No problem!
MS-DOS running full-screen in text mode probably made me comfortable with running Linux on the system console. That seems to be rarer these days, since more distros ship with X11 or Wayland out of the box.
My earliest experiences with the Linux console have mainly been with installation and troubleshooting. If something goes wrong with the desktop system, you’ll be dumped into the console and will have to try to run commands to fix it. If your Linux system becomes unbootable, you can also use a bootable Linux disk, such as SystemRescue, to launch an environment where you can try to fix your system.
Comfort with the console is also essential when you want to install more technical distros. The most famous console-only installation would probably be Arch Linux. I also installed Slackware from the console, but console-based installation was the norm when Slackware first appeared.
Ways the Linux command line is better
I can’t go back to single-tasking
As much nostalgia that I have for MS-DOS, and despite its recent open-sourcing, I probably wouldn’t want to go back to it as a serious OS, even though I occasionally tinker with FreeDOS in a virtual machine.
The main limitation for me is DOS’s single-tasking nature. Even in console mode, on Linux, I can launch new processes with the & (ampersand) operator and switch tasks with job control or a terminal multiplexer. I can also switch to another virtual terminal and run still more commands.
Modern terminal emulators in modern desktop environments are also more pleasant to work with than the old DOS screens for me. I can more easily run different command lines. In DOS, I would just be limited to a single console, except maybe “DOS boxes” in Windows.
The other reason is that the Windows command line stagnated for a long time until the arrival of PowerShell and WSL. I think modern tools are much more powerful and flexible. Apart from launching programs (mostly games for me), there just wasn’t much else to do in DOS.
MS-DOS influence lingers on
I’ve long since moved on from MS-DOS, but it seems to have colored my approach to computing. The comfort and fluency I developed on the DOS command line have served me well on Linux. Sometimes we’re more shaped by our early experiences than we realize.
- Operating System
-
Ubuntu Linux 22.04 LTS
- CPU
-
13th Gen Intel Core i7-1360P
- GPU
-
Intel Iris Xe Graphics
- RAM
-
16GB DDR5
- Storage
-
512GB SSD
- Weight
-
2.71 lbs
The Dell XPS 13 Plus with Linux combines powerful hardware and a great screen in a lightweight, great-looking chassis to create a fantastic Linux laptop.
