As someone who has been working in IT in one way or another for most of my life, I have had the chance to see firsthand just how much the concept of an operating system has evolved over the last 30-plus years. Today’s operating systems barely even resemble the prehistoric ones that were considered to be cutting edge back in the 1980s. In spite of all the advances, however, I can’t help but wonder if it may be time to take a step back and rethink the operating system.
As a kid growing up in the 1980s, my operating system of choice was MS-DOS. DOS was an acronym for Disk Operating System. If you used a PC back then, you pretty much had to use DOS. If you have never seen DOS before, it looked almost exactly like the Windows Command Prompt. You can see MS-DOS 6.22 running in a Hyper-V virtual machine in the figure below.As operating systems go, DOS was super-lightweight. Early versions ran from a 360KB (yes, kilobyte) floppy disk. Subsequent versions were a little bit larger, but still incredibly small by today’s standards. To put the operating system’s size into perspective, check out the figure below. The entire operating system, in this case, consists of 48 files and is less than 3MB in size.
Please don’t misunderstand me. Even though it may be time to rethink the operating system, I’m not suggesting that we all need to go back to using DOS. As much as I love the fact that the DOS was super-lightweight, DOS had a major shortcoming, which I will talk about in a moment.
The Windows operating system was created to address DOS’s one big glaring problem. Even so, the Windows operating system’s architectural significance went largely unnoticed. This is probably mostly due to the way that it was marketed. Take a look at one of the early television commercials for Windows, which basically implied that Windows is so easy to use that even your grandma can figure it out.Another particularly amusing example of early marketing of the Windows operating system was this little gem in which Steve Ballmer channeled his inner used car salesman in a TV pitch that rivals any of those late-night “but wait, there’s more” infomercials.
As if that weren’t bad enough, I showed this ad to my wife, and she asked me if Microsoft ever followed up with an ad portraying Steve Ballmer as a mob boss who tells potential customers to “buy Windows now, or else Clippy gets it.”
OK, I couldn’t resist having a little bit of fun with some of the old Microsoft ads, but let’s get back to business. What about that major DOS shortcoming that I mentioned? Well, back in the days of DOS, most applications came with a setup program that allowed you to specify your PC’s hardware configuration. To show you what I mean, I dug out a game that was released in 1988 and ran the setup program in a virtual machine. You can see what it looks like in the figure below.
Even though this screen capture was taken from a game, almost every application at that time used a similar setup program. This included business applications. A typical business application might, for example, ask the user to specify their graphics card, their modem type, and their printer type.
The idea of an application setup probably doesn’t seem that unusual. After all, most of today’s Windows applications still rely on a setup wizard. The reason why setup was so problematic in the days of DOS was that there were no operating system-level device drivers, beyond keyboard and mouse support. Every software vendor had to write its own video drivers, printer drivers, etc. This wasn’t just a pain for the developers, but also for the consumer. Imagine having to check the specs on the back of the Microsoft Office packaging to find out if it will work with your printer, and you will begin to get a sense of what it was like to buy software in the 1980s. At one time, I owned three different printers because there was no one single printer that would work with all of the applications that I used. The struggle was real!
As you have probably already figured out, the reason why Windows was so significant wasn’t because it had a pretty point-and-click interface, but because it allowed device drivers to exist as a part of the operating system stack. Suddenly, it didn’t matter what printer you owned, or what kind of graphics card was installed on your PC. If it worked with Windows, any Windows application should be able to use it (as long as the hardware met the application’s minimum requirements).
So with that in mind, compare early versions of Windows to what we have today. Back in the day, Windows consisted of a kernel (or a command interpreter), a user interface, and a device driver repository. It was everything that was needed for an application to run, and not much more (although Microsoft did include apps such as Notepad and Solitaire). Today, Windows 10 still has the basics covered but also includes countless features that don’t technically have anything to do with the operating system’s core job, namely running applications. For example, Windows 10 includes a virtualization engine, a mixed reality engine, and even native support for biometrics.
Now please do not misunderstand me — I absolutely love the Windows 10 mixed reality environment, and I can’t imagine getting through a day without using Hyper-V. Even so, I can’t help but wonder if it may be time to move at least some of the Windows 10 features out of the operating system and into standalone applications. Remember the screen capture that showed the size of DOS 6.22? The ISO file for Windows 10 Pro with the Fall Creator Update is nearly 4GB in size, as you can see below. The Windows 10 multi-edition ISO is over 5GB in size. Does an operating system really need to be that bloated?
Back to bare bones?
Personally, I would love to see Microsoft create a really bare-bones desktop operating system containing a basic GUI, a driver stack, a network stack, and not much more. Such an operating system would theoretically be blazingly fast because the OS is so lightweight. If properly constructed, such an OS could also be far more secure than any modern version of Windows. That’s because the chance that an OS will contain exploitable security vulnerability is proportional to the size of the code base. The more code an OS uses, the greater the chance that the code will contain an exploitable flaw.
Sadly, I think that a minimalist Windows operating system will remain a pipe dream. It would be difficult for such a stripped-down operating system to run existing Windows applications. Besides, Microsoft has drawn sharp criticism from customers almost every time that it has ever tried to remove an operating system feature. Consider, for example, the difficulty of running applications on Nano Server (before Microsoft turned it into a container only OS), and the related backlash that Microsoft received from its customers and you can begin to get a sense of how a super-lightweight desktop OS might be received.
Still, the concept of a super-lightweight OS might not be a complete fantasy. The existence of operating systems such as Chrome OS demonstrates interest in the idea of a lightweight and secure operating system.
For those who are not familiar with Chrome OS, it is an operating system created by Google for use on Chromebooks. Chrome OS is designed to be secure and resistant to tampering, with most apps running solely in the cloud. While there is something to be said for having locally installed applications that you can use without Internet connectivity, Google’s Chromebooks seem to have carved out a niche, with their widespread use in schools because of their security, durability, simplicity, and long battery life.
Personally, I can’t really see myself using a Chromebook because the devices are too limiting. However, a thin client device might make a good alternative because of its ability to run applications remotely, without limiting users to running cloud-only apps like Chromebooks do.
Too large and bloated
As much as I love certain aspects of the Windows operating system, I think that the OS has become far too large and bloated. Slimming down the OS would be a healthy thing, but it remains to be seen how to best shrink the operating system without hurting the people who depend on the operating system in the process.