What happens during software installation
According to Wikipedia and other sources, Installation is the act of making the program ready for execution.
This put us to a temporary deduction that we need to install a software to use it. And probably also consider about file formats and extensions according to Operating Systems.
But let’s start with what happens during the installation process :
- Compressed software file needs to be extracted where it has permission to execute.
- Target operating system should satisfy all required dependencies.
- Target operating system is wired with a runtime environment like Java or Ruby or whatever it needs holds upon.
- Create some additional files or folders for maintaining configurations and other local files for the specific application.
- Sometimes it also needs to create a new environment variable or update the existing one.
Do we really need to install an application to run it?
You certainly can run an application without installing it. Software just needed to be built that way for it.
Can we replicate running an application without really going through all of this list (Or by hiding steps enough to fool the client into believing it is not really installed?)
- Obviously, we still need to compress the package/software we pass to targeted OS.
- Bundle the required dependency within the package.
- Create additional files and folder relative to our extraction and not distributed on the base of Operating System.
- Bundle the runtime env like JRE within software compression.
- Create temporary variables in the shell which will hit the run of the process.
This must be all, now you have made an application which client can just extract and use without going through the trouble of proper installation.
But why not do it every single time?
It is not a good thought to bundle your application as standalone every single time. As there are some costs and losses associated with it.
- Bigger file size to download for every single user.
- Managing permissions for files is more sophisticated.
- Passing upgrade creates difficulties.
- More memory consumption by the application as it wanna spin up its own resource for everything it wanna do.
So today we discussed how an application goes through the installation process and some of the ways to get into its path.