As we all know input and output devices communicate with the computer. Therefore to identify what is happening inside of the computer we can look at the 6 levels of the computer. Each virtual machine layer is an abstraction of the level below it.
Level 06 — User
Level 5 — High-level language
level 4 — Assembly language
level 3 — System software
level 2 — Machine
level 1— Control
level 0 — Digital Logic
Level 06 — User
This is the level which we most familiar with. User-level is the level that program execution and interface level. And this is the last level of the computer system hierarchy. This consists of users and executable programs. User-level is composed of applications and is the level with which everyone is most familiar. At this level, we run programs such as word processors, graphics packages, or games. The lower levels are nearly invisible from the user level.
Level 05 — High-level language
This level contains high-level language. High-level language consists of C++, JAVA, FORTRAN, and many other languages. this is the language with which the user gives the command. Compiled languages are translated into assembly language and then assembled into machine code. The user at this level sees very little of the lower levels. Even though a programmer must know about data types and the instructions available for those types, he/she need not know about how those types are actually implemented.
Level 04 — Assembly Language
The machine understands only the assembly language and hence in order, all the high-level languages are changed in the assembly language. Assembly language code is written for it. Compiled high-level languages are first translated to assembly, while is then directly translated to machine language.
This is a one-to-one translation, meaning that one assembly language instruction is translated to exactly one machine language instruction. By having separate levels, we reduce the semantic gap between a high-level language, such asC++, and the actual machine language which is consisted of 1s and 0s.
Level 03 — System Software
System Software is a part of this level. System Software is of various types. System software mainly helps in operating the process and it establishes the connection between hardware and user interface. It may consist operating system, library code, etc.
Deals with operating system instructions. This level is responsible for multiprogramming, protecting memory, synchronizing processes, and various other important functions. Often, instructions translated from assembly language to machine language are passed through this level unmodified.
Level 02 — Machine
This level consists of machines. Different types of hardware are used in the computer system to perform different types of activities. It contains an instruction set architecture of the computer system. Programs written in a computer’s true machine language on a hardwired computer can be executed directly by the electronic circuits without any interpreters, translators, or compilers.
Level 01 — Control
This level is related to control. Control is the level where microcode is used in the system. Control units are included in the level of the computer system.
They can be hardwired or they can be microprogrammed. In hardwired control units, Control signals emanate from blocks of digital logic components. These signals direct all of the data and instructions traffic to appropriate parts of the system. Hardwired systems are typically very fast because they are actual physical components. However, once implemented, they are very difficult to modify for the same reason.
Level 0 — Digital Logic
It is related to digital logic. Digital logic is the basis for digital computing and provides a fundamental understanding of how circuits and hardware communicate within a computer. It consists of various circuits and gates etc.
Where we find the physical components of the computer system. These are the fundamental building blocks, the implementations of the mathematical logic that are common to all computer systems.