Last week, I introduced the concept of hardware and software working together to create functional programs and useful products. We learned about key terms related to computer hardware including computer architecture, machine language, hardware components, and more. Well, this week I’m here to explain about the actual programming of hardware! For instance, after we built a computer based on the required components and infrastructure, how do we program it to act like a phone or game station or other computer? Let’s dive in.

To start, there is a system software that coordinates the computer system and acts as a link between application software and computer hardware. Such a system software is known as the operating system. It is the chief manager of the computer system that assigns, schedules, and monitors computer system activities and resources. However, you’re probably wondering how programmers wrote the operating system software in the first place. Well, let’s dig deeper.

Next, there is a language translation and utility software that translate high-level language programs written in programming languages into machine language, one that computers can understand and execute. When programmers write operating system software and other high-level language programs, they are writing the source code in which a compiler translates to machine code, also known as object code. Then, the computer is able to acknowledge the instructions and executes them one at a time by accessing the required primary storage data and other parts of the computer system. In simpler terms, the computer understands your code once you convert it to object code that is already defined in its primary storage, and then executes it in the CPU (Central Processing Unit).

In all, once an established operating system exists for a given computer system, programmers are able to create application software that can run on the existing operating system. That is why we have different operating  systems for different products and hardware–each operating system has its own set of application software that can be made specifically for that system. For instance, phones and PCs have different software, which is beneficial for the user. I hope you enjoyed the read and look forward to next week’s blog, thank you!