Linux: You’ve Come a Long Way, Baby!
I first discovered my love of computers when I was in eighth grade in a small village in Iowa. Our science teacher, Mr. Barrack, brought his own Radio Shack TRS-80 II into the classroom for the students to use. Later, he brought in his own Apple IIe. This was no small thing, since each would have cost him over one quarter of his annual salary! I started programming on the TRS-80, saving my programs to audio cassette tapes that I bought at the drug store in the next town over. However, I spent most of my time learning to program in AppleSoft Basic on the Apple IIe. I wrote several cheezy games by the time I was out of high school. I desperately wanted a Commodore 64 when they came out, but we could not afford one. However, a friend of mine at school got one, and his Commodore VIC-20 ended up in a box. He asked me if I wanted to borrow it over Christmas vacation, and I used it to write a little “Star Wars” game, where you had to shoot down Tie Fighters. The silly thing used what amounted to ASCII art, but I was quite proud of it by the time it was done.
Eventually, our school purchased two more Apple IIe computers to add to Mr. Barrack’s personal computer, which was still in use the year I graduated.
I got my first Apple IIc computer when I was in the US Air Force at language school. I took a loan out for $1700 from my hometown bank to buy it. I had to forego the dot-matrix printer, since it would have cost me another $600. I used that computer for five years, and I even upgraded it from 128 kilobytes to 1 megabyte.
I got my first IBM-compatible PC, a Gateway 2000 386-SX with 2 megabytes of memory and a 65 megabyte hard drive, with my reenlistment bonus (which itself cost me almost six years of my life). It cost me $2800 (once again, no printer), which, although not the whole bonus, was all my wife would allow me to spend. I got about two and a half years use out of that computer, before it was obsolete. My next computer was a 486-SX 25, which I upgraded eventually to 8 Megabytes of memory so that I could run Windows 95, Microsoft’s first operating system for home users that didn’t run on top of MS DOS. It provided true multi-tasking.
Although hardware was expensive for a young airman, I found an even bigger challenge was paying for software. I was taking college classes, and I needed compilers for school. The school did have a 386 33 MHz running Xenix with ten terminals hanging off it, but I didn’t want to have to use it because the tools were so clunky. I ended up buying Turbo Pascal, then Turbo C++ for my computer. Although they cost more money that I really wanted to spend, I saved a lot of time by using their built-in source code debuggers to track down problems in my school programs. When I decided I wanted to learn Windows programming, I purchased an upgrade for my Turbo C++ compiler, which cost me about $150. I remember doing several upgrades, at about $150 a piece.
Once I got my Bachelor’s degree, I started taking Master’s courses at a couple of local universities. Both of them had Unix systems I could develop on, but the cost was exorbitant. It was $40 per month, plus 15 cents per kilobyte transferred. That was REALLY going to add up! The second school was even more expensive, and it was 30 miles away! It was going to be a real pain to drive there every time I wanted to run a program. Besides that, the one time I did go into the school to use their systems, the lab tech ended up blowing away my program after I spent 90 minutes working on it!
What I really needed was my own copy of Unix that I could run on my computer. However, for the cost of Unix and a C/C++ compiler, I could buy another car or make a down payment on a house! Xenix was about $3,000, without the C++ compiler, which was about another $3-5K.
Enter Slackware Linux. I was introduced to Linux by a fellow airman at my office. He told me that I could have a fully-functional Unix knock-off that would let me compile and run all of my C/C++ programs, for … FREE! I was familiar with share-ware and other free programs, but a fully functional OS with compilers for free? And it was not only the C/C++ compiler that was free. I could get just about any compiler that I wanted, along with lots of other free software. I could also practice my Unix-foo without spending money on the connectivity or the drive.
I was overjoyed when I found out that my professor would allow me to submit a floppy disk with my programs that were edited and compiled on Linux! I set about installing Linux in a dual-boot configuration with DOS/Windows 3.1 on my system. The main downside was that at the time, I didn’t know how to get the modem drivers working on Linux. I was able to store my programs to floppy disk, which I could then upload to the server, so that the instructor would have them in case I forgot my floppy disk that was to be turned in.
Over the years, I have used several versions of Linux at home, such as Slackware, Yggdrasil, Red Hat, Mandrake, Gentoo, Debian, Puppy, Ubuntu, Mint, Tails OS, and now finally, Pop!OS. The road hasn’t always been easy. In the early years, you could always count on one piece of hardware where the driver would just not work: 3d graphics were broken, the sound card was broken, the wireless networking was broken, etc. It would be an incredible amount of work to get it all working, and then the next upgrade would break something. You had to patch and recompile the driver, and sometimes, the kernel itself. There were many times I put Linux on the shelf, only to dust it off a few months later to give it another go.
Over the last few years, Linux has improved dramatically, to the point where I can use it as my daily OS. I only need to boot over into Windows or fire up a Windows VM to do the occasional Word or Excel document, or to play a video game. Even gaming has come a long way, with Steam on Linux and the new Proton tool to facilitate playing Windows-only titles on Linux.
I see the following as the primary advantages of using Linux over Windows:
It’s free. No license key to enter or to have deactivated when you modify your hardware or move it somewhere else. I have even moved Linux hard drives from one computer to completely different hardware. All of the new hardware is detected, and everything just works. (That is, except for the video card driver. Usually, you have to update it if you move from Nvidia to AMD or vice-versa. The graphics usually falls back to your desktop via the VESA driver, so you don’t fall back to text mode anymore.)
From the start of installation to fully-patched state takes about 30-45 minutes on modern hardware.
You can boot it off a USB stick, an external USB hard drive, or even an SD card. Some distributions are designed to load themselves and run completely from RAM (such as Puppy Linux or Porteus Linux).
You can do most updates without a reboot.
You can choose from hundreds of distributions or dozens of desktop environments for the Linux that is tailored to your needs and preferences. You can go bare-bones simple to flashy and glitzy, or you can go from just-works, rock-solid stability with great support all the way to bleeding edge, compiled yesterday code.
Linux runs on a wide range of hardware platforms, from tiny USB-stick size computers like the ARM-based Raspberry Pi Zero (which costs $10 for the board, with about another $20-40 for peripherals) and the Raspberry Pi 3B+, all the way up to IBM Mainframes.
Linux breathes new life into old hardware. Puppy Linux, and many other light-weight distros, run great on old systems.
There is much less malware for Linux, and it is harder for malware to damage the system because of the default security configuration of Linux.
Linux had “app stores” long before Apple or Windows did. You can install vetted software only from the official repositories, or you can download and build software from source code.
Linux has a cool mascot, Tux, the Linux Penguin!
Every year on Slashdot, the News for Nerds website, there is another article called, “Is 20XX the Year of the Linux Desktop?” Flame wars break out over whether The Year of the Linux Desktop (TYOTLD) is here, whether it is five years away, or why it will never come, because Linux is “too fragmented” or “too difficult to use.” Another question is “when will Linux have global domination” in operating systems?
I think both are the wrong questions. The arguers believe that the only way for Linux to gain widespread usage is to supplant Microsoft Windows, or even Apple Mac OS/X, as the primary operating system that people use daily. What these people ignore is that for many, that time has already come! Android OS on phones, and ChromeOS on Chromebooks are built on top of customized versions of Linux. Even Mac OS/X is built off FreeBSD Unix, a Linux “cousin”, with a customized kernel. As far as servers are concerned, Linux runs much more of the internet than Windows does… and where are the Windows “Super Computers”? Of the top 500 super computers in the world, 498 run Linux, while 2 run Unix. None runs Windows. Linux already has domination where it counts. And I believe from there, one day, it WILL be common to see desktop computers sold at BestBuy or Walmart with Linux (and only Linux) pre-installed.
For my birthday this year, my family bought me a System76 Darter Pro laptop, which I upgraded myself to 32 GB of memory and 1 TB of NVMe storage. I had always wanted to get a System76 laptop, to support the primary and best-known manufacturer of Linux computer. I had always opted to save a few bucks to buy an Acer or another computer with Windows pre-installed. I would then dual-boot with Windows. That has become harder to do lately, due to UEFI and Secure Boot, but not impossible. However, I finally decided to give System76 a shot, because I wanted to have a combined hardware + software tuned experience, that Apple is reputed to give. (Apple used to give such an experience, but I believe it has degraded over time as Apple has sought to limit user choice with their “walled garden.”) I hope to do a review of the Darter Pro for my next blog entry.
For now, the only two things keeping me tethered to the Windows Vale of Tears are gaming, and MS Office documents. Oh, and the Lock Lizard PDF slide viewer, which I must use for some of the courses I teach. I am keeping a separate travel laptop (the incredibly designed Acer Spin 5, probably my favorite laptop hardware I’ve ever owned) for Office and Lock Lizard, and a separate Windows-only gaming system for the occasional game that I still play once in a while. The rest of my systems run Linux exclusively. And that’s how I like it. Linux has come a long way from the early days of broken drivers and hosed installs. I’m old enough to remember when Windows had the same problems! Dip switches and finding IRQs that didn’t conflict with each other! I’ve literally “smoked” hardware by setting those switches wrong! I love my Linux freedom, and I won’t go back to Windows or Mac OS/X full time!
Daniel “Doc” Sewell is CTO, Lead Cybersecurity Engineer, and Trainer for Alpine Security. He currently holds many security-related certifications, including EC-Council Certified Security Analyst (ECSA), Licensed Penetration Tester (Master), Offensive Security Certified Professional (OSCP), Certified Information Systems Security Professional (CISSP) and Certified Secure Software Lifecycle Professional (CSSLP). Doc has many years of experience in software development, working on web interfaces, database applications, thick-client GUIs, battlefield simulation software, automated aircraft scheduling systems, embedded systems, and multi-threaded CPU and GPU applications. Doc’s cybersecurity experience includes penetration testing a fighter jet embedded system, penetration testing medical lab devices, creating phishing emails and fake web sites for social engineering engagements, and teaching security courses to world-renowned organizations such as Lockheed Martin and the Hong Kong Police Department. Doc’s hobbies and interests include home networking, operating systems, computer gaming, reading, movie watching, and traveling.