What I Want from an Operating System
Back in middle school I got my first computer. It shipped with Windows Vista, an operating system infamous for its high resource demands and sluggish performance. When Windows 7 released, I didn’t want to spend $100 (that I probably didn’t have) just to get some more performance.
In my search for alternatives, I decided to dabble with Ubuntu Linux. I was a bit worried that I would mess up the installation, so I asked my dad for permission. To help convince him, I lied and said that a friend of mine from school had installed it recently. This white lie was probably the furthest that my teenage rebellion went, and I have since told my father and received his forgiveness along with some good laughs.
In high school, I built my first computer, an awful machine running an AMD FX “8-core” CPU (that was, in reality, 4 very bad cores). I didn’t leave enough room in my budget for a Windows license, so onward with Ubuntu it was. At this point in my life, I still had some interest in computer games, so I was on the Wine struggle bus trying to get Windows programs to run. The only game I remember actually getting to work was Limbo, where I got a very jittery 20 FPS.
For undergrad, I needed to use a laptop. Linux firmware support at the time was abysmal for such systems, so I switched to Windows to make my life easier. In grad school, however, I quickly found that systems development was a nightmare on Windows. I switched back, and was not disappointed.
As an aside, I had two stints using a MacBook for internships in undergrad and grad school. I was amazed at the remarkable battery life those machines could achieve. I was not amazed by much else.
These days, I dual boot PopOS (based on Ubuntu, but I may change soon) and Windows… 10? 11? I’m not even sure. I only boot into Windows ocassionally to use Adobe Lightroom for photo editing.
Now, with the Windows BSOD nightmare last week, I was reminded of some reasons why I don’t think I can go back. I’ve ranted about these topics plenty of times to my wife and friends–none of whom care, and I don’t blame them–but maybe someone online will find my views insightful. Here is everything I want from an operating system.
The perfect OS should…
- Not be locked down to any particular hardware.
- Vertical integration has a couple of advantages, but they’re always outweighed by the cons in my view. I like choice, and I don’t like being price gouged.
- This knocks out MacOS, so let’s not talk about that further.
- Never reboot on its own.
- I should never have to worry that my overnight compute process will be interrupted, unless I wrote bad code.
- Never install or update any software without user approval.
- This seems like common sense, and this alone would have avoided the CloudStrike mess. I know that enterprises have strict software enforcement policies, but at the very least the IT team of each company should have to manually approve each individual software update. It may be less convenient, but look where convenience got us.
- Come with only the most basic software out of the box.
- My software needs are different from yours. Why should we have software that we will never use?
- Not push the use of any particular software.
- Make it easy to change software defaults and extension handlers. Allow me to remove any software that I don’t like.
- Not be tied to a particular desktop environment.
- If I want to completely change the look and feel of my system, I should be able to.
- Allow me to change anything I want, without making it difficult.
- With enough tinkering, I should be able to control anything I want to.
- I should be able to install any software I want, by any means I want.
- Not break when I change things.
- Or, if it does break, make it easy to revert those changes. NixOS (and/or the Nix package manager) seem great in this regard, but I haven’t yet had the time to devote to learning them.
- Not have any telemetry.
- I’m not sure that any mainline OS can claim this, and the only way to guarantee it is to never connect the device to the Internet. Still, no telemetry is the ideal. Extremely limited and anonymous telemetry (as anonymous as can be, that is), is the baseline expectation.
- Not have any “AI.”
- I don’t want it or need it, except in very controlled circumstances. Generative AI built into an OS is a privacy nightmare, and unlikely to be very useful.
- Not randomly eat up resources in the background.
- A cause of rage any time I boot into Windows. No, I haven’t installed any updates in months, because I haven’t booted you up in months. That doesn’t give you the right to use 100% of my CPU to run a background update installer.
- Not have advertisements.
- I feel like this should be obvious, especially if it’s an OS I’ve paid for.
- Get out of my way.
- Don’t require me to do something in one particular way. Don’t have flashy animations. Don’t ask me twice if I want to perform some action.
- I don’t need my operating system to be pretty or elegant. I don’t want to have to think about my operating system at all. It is merely a tool. I want it to get out of my way so I can do my work.
I wrote this list with desktop operating systems in mind, but I actually believe in these same principles for mobile operating systems, too. It should be obvious what kind of phone I have.