This is the topic for me since interfacing with hardware and dealing with operating systems is quite literally my job right now. Without operating systems we would be stuck with hardware that performs a very specific task. OSes allow the flexibility in computer programming that allows us to use out computers to do a fuck ton of different things relatively easily.
>>316075It is because the way they interact with the hardware is wildly different.
Imagine there are two personal shoppers you can choose from, Pablo and Jason. They both can buy oranges for you from the same store. Their task is exactly the same, but you can only work with Jason because Pablo only knows how to speak spanish. This is similar in to how software can only work in operating systems that it understands.
From a techinical perspective, the complexity lies in teh software stack's architecture. At the fountation, we have the hardware itself. The hardware is constant and unchanging, like our store in the analogy. hwoever to interact with the hardware, we need software drivers, which are essentially translators between the application software and the hardware. The drivers send specific commands to teh hardware, instructing it to execute pre-programmed tasks on its chips. This is where we encournter our first major compatibiltiy issue: drifers are fundamentally different between oeprating system, which creates an immediate roadblock in cross-platform compatibility.
But the complexity extends far beyong the drivers. Above the driver level, there is a chain of operating system specific software components. A software applicatation must traverse through potentally hundreds of different software layers to ulimately use the hardware to accomplish its tasks. Each operating system implements this chain differently, using its own set of protcols, APIs, and system calls. To sucessfuly itneract with the hardware, knowledge of this entire chain for the specific operating system is needed. It is like knowing not just the language, but alsot he exact protocol for howt o contact your shopper, when they are available, what forms need to be filled out, and their preferred method of delivery, all of which will likely be completely different between Pablo's and Jason's systems.