Although for using your computers you don’t really have to know how the hardware and software interact, but for all those computer enthusiasts, this is surely interesting enough. It is a common fact that there are a lot many differences between the hardware and software. But all these differences play their part in building up the interaction between the hardware and software. In this article we spare you all the technical extravaganza and help you understand how hardware and software interacts in the most plain English.
Software :
The entire computer software can be broadly categorized into three types: Device Drivers, Operating System, and Application Software. Simply all these types encompass the totality of the programs present in your computer. Generally each and every program has its specific task to perform. For that matter, the entire program is a set of instructions that are written to alter the state of hardware. Before actually getting into how these instructions effect the hardware here’s something you need to understand about computer hardware.
Hardware :
The Monitor, Printer, Hard Drive, RAM, Graphic Card and all the other physical components which are connected to the computer (or) which can be physically touched is the computer hardware. Without hardware, software has no idea where to work on. Hence hardware and software run hand in hand for implementing whatever the user wants.
The Differences And The Interaction between Hardware And Software :
There are a lot many differences between the hardware and software. Including the nature, functionality and the ability to be changed again and again the software and hardware differ from each other in numerous ways. But ultimately they are useless in the absence of the other.
Once you perform programming, using some high-level programming language (eg. C, C# etc) the entire set of code you write is converted into 1s and 0s. This is taken care of by the compiler which converts written code into binary (1s and 0s) once the program follows a defined set of rules or the syntax. These 1s and 0s are simply the voltage levels which establish the control over all the electric circuits.
For example, consider a simple LED bulb connected to a battery supply and a small switch. Whenever this switch is closed the LED glows and once the switch is open the LED gets turned OFF. The bulb glows and gets turned OFF because of the variation in voltage levels in these instances. When the switch is closed the entire supply voltage is across the LED bulb due to which it glows and once the switch is open, the bulb isn’t supplied with the required voltage and hence it doesn’t work. This is how voltage levels control the LED bulb. The physical act of turning ON and OFF by opening and closing the LED bulb can be substituted by any other mechanism. This works fine until this mechanism actually is able to operate as per your requirement.
In case of computers, the entire hardware is supplied varying voltages due to which different components get activated at the same or different time instances and achieve a particular task. Finally all the binary data in a computer is nothing but the voltage level information, for which a particular task is assigned to be executed.
The entire sequence of events that occur for hardware and software interaction is under the control of OS. All the driver software help the OS to actually communicate with the hardware, so as to execute the application software.