Now I am not 100% sure what to ask here as I still don't haven't joined all the dots. So, how well do you understand the underlying connection between hardware and software.
For example, we use the word abstraction at this topical level, we can code some assembly language(which I know very little of), assembly it, and hey presto the 'mouse cursor' moves over the screen, or we could colour some pixels in.
But what is actually going on at the very base level. If you download mikeOS - a small OS written in assembly - well it is pretty cool, it displays a console type menu and also has a basic compiler. But it's really fundamental compared to modern OS's and I am trying to understand it, but that will be hard until I learn assembly language.
So we type in human readable language into the editor, compile/link it, and it magically switches on and off electrical transistors.
So say you were given a PC with a blank HD and you were asked to just create a mouse/icon tht you could move around the screen how would set about doing this. I understand that 80/90's 8-bit assembly programmers will have a good idea about this.
Where is the root point where we can start everything, does the hardware like mouse input have it's own firmware/software pre-built in that allow use it communicate with it?
If an assembler is the most fundamental piece of software how would you load it onto the HD/memory in the first place?
I think my real problem is that I just don't understand the complexity/structure and in built software of the hardware itself so I still can't make that connection between the 'software/text' that we see on the screen and the electronics themselves.