Programs as a series of instructions

A very generalised overview

Computers may seem like magical things. You write some code and somehow it works (or not 😏). But what is software really and why does it work?

Here’s how I currently understand it;

When you use a computer with a modern OS, you may have the impression that programs are always files that you then execute. The truth is that this is just an abstraction. The reality is that processors take in instructions and these get processed. Somewhere on your motherboard there’s some storage which contains a whole slew of so called bytes stored in some form or another. When your PC starts, these bytes are fed to the processor one by one in the form of electrical signals. Your processor contains circuits and when they get some input, these circuits will start to do stuff depending on that, and sometimes also previous, input. They can take the input and store it somewhere, or mutate the input somehow and store that, or conditionally ask for some input different from the one that would’ve come next… All of these are very basic steps, but by combining such steps together, and with the right hardware, we eventually get much more complex things that eventually bring us the working computers we know and use today.

When you start your PC, the instructions being fed are what allows us to boot the operating system. Generally we start a boot process, which eventually starts a software we call a “kernel”, then this kernel starts some initialisation script which starts what we consider the operating system.

And that’s basically it! All of this is very general, but I think it’s an important frame to keep in mind when trying to understand how an operating system actually works.

If you think I made great errors here, pls let me know in the comments <3