Original Topic of Interest:
I have always been interested in learning how software of a computer interacts with the hardware to create programs. For example, how a programmer writes in code, how the software gets converted to machine language, and how that then works with the components of a computer to do what the user wants it to.
I came across this YouTube video during my research. While the video is short and intended for a wider audience, the main takeaways from this are as follows:
- Software constantly stands by to await user input, at which point it then performs the necessary action by sending a signal to the hardware
- Hardware performs the required action by accessing memory stored as bits on memory chips
- There is a chain of command the information goes through to finally return back to the software to then do what the user intended
A recent online news article takes time to explain the different forms of software as well as the components of a computer’s hardware. This is helpful since it can be nice to understand how everything is divided up in order to comprehend how software works with hardware. It’s like asking “How are cars made?” and someone says, “they are assembled in a factory”. Technically correct, but at that point you may be curious what exactly is going on in that factory, what different steps there are in the process. This article explains the different steps as well as also explaining how power is a necessary component in this entire process.
The following is a chapter from a book explaining how software and hardware interact, and is probably (and not surprisingly) the most in-depth source I have found. Due to the fact that it is from an academic textbook, this source provides a thorough explanation of the communication process. This chapter explains everything from what comprises a typical computer’s hardware, what resources a computer has, and how memory is important for communication.
Professional Organization Website
Microsoft, the creators of Windows, know computers as well as anybody (if not more). They are one of the most influential pioneers in the development of PC’s, and recently they posted an article on their official company website explaining what exactly a Driver is. This is important for my topic since a driver is essentially the translator of communications between the hardware and software of a computer. There can be both software and hardware drivers, which allows them to be versatile and bridge the gap between the two. Microsoft’s article provides a look into how these drivers allow software to access memory stored on the hardware, and how the hardware is capable of storing data given by the software:
Stack Overflow is a well-known site amongst the Computer Science community. Think of it as an open forum where users can post questions, and other members can respond to the question. Other members can upvote and agree with answers they find satisfactory, and members who have received more upvotes tend to be well respected. Ultimately this creates a system where everyone works together to properly and thoroughly answer any question someone may have. Someone asked a question that was related to this conversation, and the responses were certainly interesting. Here is a link to the thread.
The main takeaways here solidify what I learned in my other research, and that is the individual bits are crucial on a hardware level. These switches are either on or off, which are interpreted as either a 0 or 1 in the software side of things. String together thousands of 0’s and 1’s and you can get billions of possible combinations, all which have different meanings and significance. At this point, the software simply interprets what is given by the hardware and works with that, similar to how humans can be presented with letters and be able to recognize and make sense out of what they mean.