Remember the disclaimer? Should you decide to act upon any information on this website, you do so at your own risk.
By communicating with the machines, I mean a person being able with their actions somehow to alter the state of the machine, so that the machine is working in a manner of that persons wishes.Example:
You want to be able to send and receive emails.
To accomplish this for most people would mean to set up some account. Type a few letters in some boxes on the Internet and hit submit.
Communication …“is usually defined as the transmission of Information"... It could be debated on the use of the term machine communication but it will suit the purpose for this topic. What kind of communication is needed to set up an e-mail depends on the type of control over the process someone likes to have. If you are a type of person that likes to have control of own data, then you will have to do much more communication with the machines than someone who is indifferent for that topic.
People communicate with the machines on different levels. The one most known is the so-called GUI. The graphical user interface is a fancy way, but it demands resources and Opens Up security risks. In 2022 (time of my writing) humanity has gone a long way in terms of GUI design and security. On the open-source side in my view Gnome and Kde are the ones standing out. Microsoft and Apple both changed considerably. Since the time when I first got familiar with a Commodore 64 and GEOS to this date I witnessed many variants. Now it seems, maybe with the help of the Smart Devices that there has been found some common ground in terms of GUI design and security. Data protection laws also influenced a great bit the design in the field of device management. Still the settings do you No good if you're not aware of them.
The lesser known is the terminal. According to GeeksforGeeks.com is the command-line the line where you type commands and Shell stands for the command-line interpreter. Let's look at it from the network perspective. The communication will be done in bits. If you want to turn a light switch you would need 1 bit of information, either On or Off. If you would be connected through a network, then you would also need some information to manage the network. The basic building block of most electronic devices is the Logical Gate. Lately quantum computers became a reality where the bits are trader for Qubits. Quantum computing is performed as the name suggest on the quantum mechanics principles and therefore fundamentally different. Where you have bits and bytes you will inevitably have binary code. And to make it for humans a more readable format, some sort of character encoding must be employed. UTF-8 is defined for this document.
Voice commands are gaining ground as well as other types of input devices. Still this input devices will be transformed into bits, computed, and presented in some sort of code, picture, sound, or movement on or through the output devices. Does this mean that anyone trying to communicate with the machines needs to think in the terms of this Boolean logic? Obviously not. Most people communicate with the machines through some kind of Graphical interface. Most programmers communicate through so-called High-level programming language. Even the communication that is done “directly” with the hardware through the so-called instruction set of a system is mostly done through a Higher-level language. Assembler or Assembly are the tools used to manage this type of communications.
Kernel, Program, and Application are the Semantics used to differentiate the level of the communication. Program - application dividing line seems to be culturally conditioned. Computer architecture and design is the first level where the underlying communication structure is defined. Many systems have resulted in brought communities, and systems that manage the resources of such communities. RISC-V member section reveals many such communities also influencing the structure of the communication with the machines.