Virtualization – Part 2 - The Abstraction of the Computer
Here's the second part of our Virtualization series and a continuation of Virtualization - Part 1 – The Abstraction of the Internet.
A computer consists of several key elements that along with software (and firmware) provide useful applications like the browser you are using to read this blog from our web servers.
Here are some of the items that are noteworthy:
Central Processing Unit (CPU) – aka Pentium for you wintel folks, is the heart of the computer and executes instructions (software or firmware) that are programmed by a software engineer.
Input/Output Devices – Provides a method to enter , display or share information from the computer, for example: Display, keyboard, mouse.
Random Access Memory (RAM) – Is memory that is accessed by the CPU which losses its contents when you remove power. RAM (Typically) is the fastest memory that a CPU and “read” or “write”.
Disk Drive – Is memory that is also accessed by the CPU which doesn’t lose its contents when you remove power. Disks are slower than RAM.
Flash Memory – Is like RAM but has the characteristics of a disk drive.
Data Bus – Depending on the CPU (8 bit, 16 bit, 32 bit or 64 bits wide) is where the CPU can read or write data from or to the various memory devices, Input/Output devices. Each bit is a “1” or “0”.
Address Bus – Also dependent on the CPU , this is where the CPU (using bits) selects the location in memory to read or write data.
Firmware – aka BIOS for wintel folks, is software that is used to “boot” (restart from a known state) the computer that resides in Flash memory or a Programmable Read Only Memory (PROM).
Software – eg Office.
Operating System – eg Windows, is a layer of software that abstracts the hardware and controls the overall operation of the computer.Networks – Are communication systems that allow computers to share information.
Programming Languages – A CPU can only understand binary (“1” or “0” s) for the instructions it executes. There are various instructions to read , write, add, multiply, subtract , divide and move data. However, Humans need to abstract the instructions into words to make it easier. These languages define the way words are used forming a grammer (just like English or Spanish) . The first form of languages are assembler languages which are specific to a CPU and not portable, the subsequent languages like C, C++, FORTRAN, Pascal provided more functionality with Database languages like 3GL, 4GL etc..
A computer can be a main frame, a desktop or your laptop which were confined to a area (room, your desk or your lap).
Advances in networking have provided efficient methods of distributing the CPU from Disks, Input/Output devices.
Storage Area Networks are clusters of disk drives that are no longer directly connected to the computer using the various buss’s described above. This is a key level of abstraction which has allowed distributed computing to evolve into GRID computing where the software is one place, the CPUs in another and memory in yet another. Distributed computing provides more efficient use of computing at unparalleled level of disaster recovery.
Why is this important?
Computing has and will continue to be the mother of invention for advances not only in the hardware or software but also in the networks that connect everything together like the Internet or also an Enterprise VPN.
More later :
Virtualization – Part 3 - The Abstraction of Applications
Concepts of a Application Programmers Interface (API), examples and pitfalls for APIs and the abstraction of Web Services.








