feature article
Subscribe Now

Why Do We Install Software?

Exploring the Technical Reasons Behind an Old Procedure

“I can install toilets. I’m learning how to do basic wiring.” – Sandra Bullock

Why do we “install” software on our PCs, phones, and sometimes even embedded systems? Why don’t new programs just run right out of the box without going through the whole installation process? 

The procedure for installing (and later uninstalling) seems to go through phases over the years. With big room-sized machines attended by lab-coated technicians, you literally did install new software, in the sense of plugging in different boards, wires, and circuitry. Even though those early computers were programmable, the programs themselves were hard-wired. 

Videogame consoles didn’t always make you install games. You just plugged in the newest Nintendo cartridge and it ran. Uninstalling meant yanking the cartridge out. Same deal for early PCs with programs on cassette tape or floppy disk. 

Embedded systems mostly avoid the installation processes, but that’s by default, not by design. One good definition of “embedded system” is “any machine that ships with all the software it’s ever going to have.” No aftermarket software? No need to install it. The operating system and its applications are one and the same, now and forever, amen. 

But Windows, MacOS, Linux, and other modern operating systems make us go through an install process for each new program. What’s up with that? Same goes for smartphones, although the installation is largely hidden as part of the vendor-mediated download. 

We take it for granted, but why is installation even necessary? Why can’t we simply load and run new programs like those old video game cartridges? Skipping the installation step would improve the “out of box experience” for new applications. It would also eliminate the painful and often unsuccessful uninstall process, which invariably leaves unwanted cruft behind. Most of all, skipping the install/uninstall procedure would leave the operating system untouched and comparatively reliable. There’s also no downside to checking out one of the few remaining sites to get freeware

Granted, there are some cases where an install process seems warranted, as when the program insinuates itself into the operating system’s GUI. Sometimes we want to right-click a Windows file and have the new app’s options appear in the pop-up context menu alongside the standard OS options. That’s slick, and it clearly needs integration with the Windows GUI or it wouldn’t work. 

Cloud storage options (OneDrive, iCloud, Dropbox, et al.) fall into this category, too. They need deep OS integration in order to appear seamless, and that requires an install process and a reboot. Sometimes you need to hook an interrupt, change a driver, or fiddle with file associations. Okay, I get that. 

But what about the other 95% of apps we install? Why do spreadsheets, word processors, email programs, games, web browsers, weather monitors, and other familiar miscellany need to spend the first 20 minutes of their lives going through an extensive install process? Why does anything from Adobe take so long? What deep OS integration do they need that wouldn’t be better accomplished by just… running? 

I’m convinced that eliminating software installation completely would make operating systems faster and more reliable. That goes for desktops, laptops, phones, embedded systems – all of it. Without third-party tinkering, the OS and its drivers would remain just as the developer intended. API calls can (or should) provide all the interface that third-party apps need. All application-related files stay in their own directory/folder, and “uninstalling” consists of deleting that directory tree. No muss, no fuss, no leftover detritus. Is your system slowing down over time as you install more programs? Can’t blame the installer. 

Debugging gets a lot easier, too, because you’re not left wondering how much of the code is really the OS vendor’s work and how much has been tampered with by a succession of installed/uninstalled applications and drivers over time. Better yet, digitally sign each executable file so you always know exactly whose code you’re looking at. 

Or, we could just rethink this whole reprogrammable computer thing and treat everything as a closed embedded system with all the code in OTPROM. The factory gets one shot at shipping code before it’s set forever. Better yet, replace all the software with hard-wired circuits. Then replace the circuits with real hardware, circa 1890. That’ll fix them ornery bugs.

Leave a Reply

featured blogs
May 18, 2021
Since I was a kid, I’ve always been a fan of technology making life better. When I was 8, I remember programming the VCR to record the morning cartoons so I wouldn’t miss the good ones after the bus picked me up from school. When I was 10, I made mixtapes of my fa...
May 18, 2021
原文出è•: Please Excuse the Mesh: CFD and Pointwise ä½è…: Paul McLellan Cadence於今年四æˆæ”¶è³¼äº†æµé«”動力學公司Pointwiseã‚å¨æˆ‘的前ä¸ç¯‡æ–‡ç« æŽ¢è¨Ž PointwiseãPCIeã...
May 13, 2021
Our new IC design tool, PrimeSim Continuum, enables the next generation of hyper-convergent IC designs. Learn more from eeNews, Electronic Design & EE Times. The post Synopsys Makes Headlines with PrimeSim Continuum, an Innovative Circuit Simulation Solution appeared fi...
May 13, 2021
By Calibre Design Staff Prior to the availability of extreme ultraviolet (EUV) lithography, multi-patterning provided… The post A SAMPle of what you need to know about SAMP technology appeared first on Design with Calibre....

featured video

Insights on StarRC Standalone Netlist Reducer

Sponsored by Synopsys

With the ever-growing size of extracted netlists, parasitic optimization is key to achieve practical simulation run times. Key trade-off for any netlist reducer is accuracy vs netlist size. StarRC Standalone Netlist reducer provides the flexibility to optimize your netlist on a per net basis. The user has total control of trading accuracy of some nets versus netlist optimization - yet another feature from StarRC to provide flexibility to the designer.

Click here for more information

featured paper

Three considerations for automotive powertrain safety and security

Sponsored by Texas Instruments

With functional safety and security concerns in automotive electronics gaining attention, including in standards bodies, it’s important for automotive designers to enable functionally safe and secure automotive electric powertrains. Learn about three key safety and security considerations designers need to keep in mind when developing in the automotive space.

Click here to read

Featured Chalk Talk

Easy Hardware and Software Scalability across Renesas RA MCUs

Sponsored by Mouser Electronics and Renesas

There are a bewildering number of choices when designing with an MCU. It can be a challenge to find one with exactly what your design requires - form factor, cost, power consumption, performance, features, and ease-of-use. In this episode of Chalk Talk, Amelia Dalton chats with Brad Rex of Renesas about the small-but-powerful Renesas RA family - a flexible and scalable collection of MCUs that may be exactly what your next project needs.

Click here for more information about Renesas Electronics RA Family Arm® Cortex® Microcontrollers