Pagine

sabato 18 gennaio 2025

Strolling through informatics #15 – From virtualization to the cloud

by Enrico Nardelli

(versione italiana qua)

In post #5 of this stroll through informatics (How to instruct a computer) we had seen how to provide a computer with the instructions it must execute. In that post we had presented a very simple example of a program with instructions written in a programming language at the symbolic level (briefly, symbolic language), clarifying that actual execution by an automaton instead requires instructions expressed in a programming language at the machine level (that is, machine language).

From a conceptual point of view, we can consider the computer "as if" it were able to directly execute the program in symbolic language. This view of the computer therefore considers it as a virtual machine capable of directly executing the instructions of the symbolic language. Since it isn't, to achieve this behavior, a translation of the program from symbolic language to machine language must be performed.

The translation can occur in two ways, called compilation and interpretation. The difference between the two is that with compilation the symbolic-level program is entirely translated to machine level and its execution occurs after the entire translation process has finished. With interpretation, instead, the same program is translated one instruction at a time, which is immediately executed by the physical machine. In some cases compilation is preferable, in others interpretation: both approaches are widely used. It's the same difference that exists between a book translator, who delivers the entire translated volume to you (compilation) and a simultaneous interpreter, who instead performs the translation of each spoken sentence one at a time (interpretation).

If you reconsider post n.5, however, you realize that even that symbolic language was somewhat convoluted, with terms that weren't too clear (e.g., X Dim or Go Y to indicate an instruction that checks the content of cell X and then either decrements it or prepares the machine to continue with the instruction in cell Y). It would therefore be nice to be able to have a high-level symbolic language, with instructions almost close to common sense and apply the same translation mechanism. In this case, the computer would be considered as a virtual machine capable of directly executing programs written in a high-level symbolic language, while in reality everything would go through a translation process as previously explained.

This conceptual view of nested boxes (or Russian dolls) is illustrated, for the situation just described, in the figure below.

At the lowest level there is the physical machine, that is the level of electronic circuits, which are capable of physically executing logical and arithmetic operations. When moving from this level to that of a machine capable of executing instructions in symbolic language, an abstraction process is performed, that is, one disregards what is physically available, instead imagining having something more powerful, namely a computer capable of directly executing instructions in symbolic language.

The symbolic machine thus defined doesn't have to be physically realized because it is virtually obtained through the process of translating instructions in symbolic language into those of machine language, which are then executed by the physical machine.

This approach is also called virtualization, precisely because it allows having the symbolic machine available not through its actual physical construction, but through its emulation by a physical machine, appropriately instructed to produce the results requested from the symbolic machine.

In the reality of informatics, exactly something similar happens, extending this virtualization mechanism even further, as described in greater detail in the volume The Informatics Revolution.

It's useful to remember that when computers were born, in the first half of the 20th century, only the physical level was available, that of electronic circuits. Right from the start, however, computer scientists understood that the conceptual power of an automatic executor could be employed to mechanize the translation process from human expression of the solution procedure to one capable of being executed by the physical machine. Besides allowing people to operate at the mental level most suited to them, this way both the errors that inevitably occur in the translation process and those deriving from not expressing oneself with the most appropriate tool were avoided.

Starting from the second decade of the 21st century, virtualization, which as we just said has been part of informatics since its birth, has taken on an increasingly important role. In fact, the widespread availability of a high-speed Internet network has made it more convenient, in a whole series of circumstances, not to directly buy physical machines, that is computers – as they say in the field – made of "iron," which must also be managed from a physical point of view (protection, space, air conditioning, maintenance, ...), but to rent virtual machines available somewhere on the Internet, precisely in the cloud, that is "in the cloud" (a term that derives from the fact that in enterprise-level description schemes of information systems the communication network part was conventionally represented by a little cloud).

I close this section by remembering that the same virtualization mechanism that enabled the development of the cloud allows us to "revive" computer models that are now out of production or that are no longer able to function physically, allowing their emulators, that is virtual machines that rely on functioning machines, to execute software that still exists for them but is no longer capable of being executed either by such models or directly by modern machines.

[[The posts in this series are based on the Author's book (in Italian) La rivoluzione informatica: conoscenza, consapevolezza e potere nella società digitale, (= The Informatics Revolution: Knowledge, Awareness and Power in the Digital Society) to which readers are referred for further reading]].

--
The original version (in italian) has been published by "Osservatorio sullo Stato digitale" (= Observatory on Digital State) of IRPA - Istituto di Ricerche sulla Pubblica Amministrazione (= Research Institute on Public Administration) on 15 January 2025.

Nessun commento:

Posta un commento

Sono pubblicati solo i commenti che rispettano le norme di legge, le regole della buona educazione e sono attinenti agli argomenti trattati: siamo aperti alla discussione, non alla polemica.