Emulators of operating systems. Virtualization, Emulation, Containerization

Lecture



VIRTUALIZATION, EMULATION and Containerization: DISTINCTIVE CHARACTERISTICS

An emulator of an operating system (computer Science) is software and / or hardware operating in a certain operating system and hardware platform designed to execute programs made in another operating system or operating on a different hardware from the target, but allowing the same operations to be performed in the target environment, as in the simulated system.

Emulation and virtualization processes have a lot in common, but there are also noticeable operational differences.

If the client needs to work with an older operating system within the modern technical architecture, he will choose only the emulation option.

At the same time, all virtualized systems function independently of the basic equipment used.

WHAT BETWEEN THEIR DIFFERENCE?

The essence of emulation is that one system can technically mimic another.

An example is if the software structure works in system A, but not in system B, we create an emulation of the operation of system A inside the system B. As a result, the software quietly works to emulate system A.

This example can also be transferred to virtualization, which, in addition to system A., is divided into 2 more dedicated servers (B and C).

Both servers are independent technical containers with personalized access to software resources - RAM, CPU and storage - they can be freely rebooted independently of each other. Their "behavior" is completely identical to the behavior of real software.

Each technology has its advantages and disadvantages .

Architectural differences between containers and virtual machines

The figure below provides a visual representation of the architectural difference between virtual machines and containers:

Emulators of operating systems. Virtualization, Emulation, Containerization

Figure 1. In computer virtualization, a hypervisor or virtual machine monitor (VMM) provides isolation between each guest OS. In containers , the host operating system provides isolation between each container.

The difference in architecture offers the following key suggestions for IT staff and enterprises:

  • Continuous integration, deployment and testing. In organizations managed by DevOps, organizations can use containers to simplify processes in the CI / CD pipeline. Containers work as a single infrastructure environment, so developers do not need to perform complex configuration tasks for each SDLC sprint, since workloads are transferred through physical resources.
  • Workload tolerance . IT workloads can switch between different infrastructure instances and virtual environments without significant configuration changes or alterations to application code.
  • Quality and relevance of software. Transparent collaboration between developers and testing staff in providing the working parts of the application leads to improved software quality, faster development cycles and better compliance.
  • Cost optimization: containers maximize the use of resources in their own isolated virtual environments. This allows organizations to accurately plan throughput and infrastructure consumption.
  • infrastructure agnostic : Containers make agnostic components of an infrastructure application that allows organizations to move workloads between bare metal servers into virtualized environments for cloud infrastructure in response to changing business needs.

For DevOps-oriented organizations that focus on faster and more continuous release cycles for distributed microservice-based applications, containerization will continue to attract investment, especially in areas where virtualization has failed.

EMULATION

In relation to the above example, emulation acts as a special “placeholder” for hardware - the creation of a special technical environment that operates in hardware.

Emulation can have a special effect in such user scenarios:

  • Starting an operating system originally intended for other system equipment (launching console games on a PC, working with Windows on Mac OS);
  • The start of an obsolete version of the software after the equipment comparable to it is out of date.

Emulation processes are also useful when creating some software for several systems simultaneously. The process of writing program code can be performed on one machine, and the emulation process on several operating systems (everything functions simultaneously and without obvious failures).

VIRTUALIZATION

The most important advantage of virtualization is that it interacts directly with hardware.

The most obvious advantages of this method of interacting with software components include:

  • Excellent system compatibility with the current x86 processor architecture;
  • Functions of demonstrating the operation of a physical device for a dedicated part of hardware and software;
  • Autonomy at any stage of use.

By the way, between emulation and virtualization, you can calmly put an equal sign, since these processes help to thoroughly analyze the operation of any software.


Virtualization has several dimensions, which can conditionally be called “Type” and “Virtualization Method”.
Emulators of operating systems. Virtualization, Emulation, Containerization
Types of Virtualization

Server Virtualization

  • Usually, virtualization refers to the location of several virtual servers within the same physical

  • But there may still be a combination of several physical servers in one logical one to solve a specific problem
  • Distribution + virtualization = system GRID

Resource virtualization

Resources are RAM, hard drives, processors . This is evidenced by the site https://intellect.icu. They can also be sliced ​​and distributed in parts to different users.

Application Virtualization

Application virtualization is what we already know as PaaS and SaaS


Virtualization Methods

Full virtualization and paravirtualization

The main virtualization methods are full virtualization and paravirtualization. The outline of both methods is very similar. There is a hypervisor and virtual machines with guest OSs. With full virtualization, no changes are made to the guest OS. Paravirtualization sets up optimized images for a particular hypervisor. This allows you to maximize the use of hardware resources and does not require any changes from applications. An example of a system that implements full virtualization is VMware, an example of paravirtualization is Xen and KVM.

Emulators of operating systems. Virtualization, Emulation, Containerization


There are several ways to virtualize:

OS level virtualization


A feature is that there can be only one guest OS. An example of OS-level virtualization is Linux-VServer:

Emulators of operating systems. Virtualization, Emulation, Containerization

Hardware emulation


With this virtualization method, the VM fully emulates the operation of certain equipment. On the one hand, this makes it possible, for example, to emulate another type of processor on one processor. On the other hand, it is clear that this will slow down dozens of times. An example of an emulator is Bochs.

Emulators of operating systems. Virtualization, Emulation, Containerization

OS Library Emulation


And for the sake of completeness, I will add library emulation. This is a way in which not all OS is emulated, but only part. For example, Wine on Linux is a library emulation for Windows applications.

It turns out that we can virtualize different systems using different methods. Those. we see that existing methods and types of virtualization can solve many problems. A logical question arises, when does it make sense to deploy a cloud platform?

Emulators of operating systems. Virtualization, Emulation, Containerization


Cloud platforms are located above a set of virtual machines, completely isolate the application from both the hardware and the structure of the virtual environment. Cloud platforms are used for automatic and manual scale in / scale out, start / stop / configure VMs and applications. When does it make sense to stay in virtualization, and when to stay in the cloud? The concept is as follows: when there is a lot of everything - the cloud, a little - virtualization:

  • For tasks with a large number of virtual servers, the cloud is better, for tasks with 10-20 virtual machines you can not deploy a cloud platform.
  • If you need to constantly change the configuration of resources - the cloud.
  • A lot of users, data, customers - the cloud.

Comparison of the capabilities of virtual machines

Next, we will talk about virtual machines and operational emulators, which can serve well when performing testing, and also dwell on their basic advantages and disadvantages.

VMware

VMWare Workstation is a very popular and easy-to-use virtual machine that is used on a professional basis.

Product Advantages:

  1. There is a non-commercial version called VMWare Workstation Player, which can be used for educational purposes;
  2. Simple and intuitive graphical interface;
  3. Installing a new OS is significantly simplified compared to installing a traditional version of software on a PC;
  4. The program allows you to take screenshots of the operating system, with which you can restore the previous state of the system;
  5. Excellent technical reliability and stability;
  6. Fast work and good performance;
  7. The function of setting a password for used virtual machines;
  8. Stable 3D graphics support.

Disadvantages:

  1. VMWare Workstation Player - paid product for commercial purposes;
  2. VMWare Workstation Pro - can be used only after subscribing;
  3. The individual components of the program function with different operating systems.

VIRTUAL BOX

A very common virtual machine with a decent set of useful technical functionality.

Benefits:

  1. Virtual Box - allows you to interact with a large list of operating systems, both for the purpose of installing Virtual Box directly and for installing “guest” products;
  2. You can take screenshots of the operating system to restore the previous state of the system;
  3. It is distributed on the Internet for free along with open source code, as well as in addition to the GPLv2 license;

Disadvantages:

  1. The product cannot be considered as productive in comparison with other paid analogues;
  2. Errors constantly occur , various bugs, crashes and lethal freezes;
  3. Minimum technical support for 3D graphics;
  4. Very sophisticated graphical interface compared to paid programs and components.

Hyper-v

This product was originally positioned as a direct replacement for Microsoft Visual PC components.

Benefits:

  1. Delivered with a large number of variations of Windows 10 systems;
  2. Supports the installation process of guest operating systems, as well as all old versions of the Windows operating system;
  3. There is a feature for installing guest Linux and FreeBSD guest operating systems.

Disadvantages:

  1. There is no way to start from earlier and "ancient" versions of the Windows operating system;
  2. Cannot install the product under Mac OS;
  3. Not very convenient and intuitive graphical interface, if you compare this program with the components of Virtual Box and VMWare.

BOOT CAMP

A specialized product exclusively for Macs that can help you install Windows.

Advantage:

  • Provided with your Mac purchase.

Disadvantages:

  • You can run Windows exclusively as a guest operating system;
  • Sometimes it works unstable with some system components, such as motion sensors and so on;
  • Operational errors may occur while editing the size of the partition used.

PARALLELS DESKTOP

A special virtual machine that is used on Mac computers to interact with Windows operating components.

Benefits:

  • The user can easily use previously created data and components from the Boot Camp product;
  • There is support for various guest operating systems, such as Linux, Windows, different versions of Mac OS, and more;

Disadvantages:

  • Works exclusively with Mac OS;
  • The product is paid, but there is a 14-day free version for review.

NOX

Specialized emulator for the Android operating system.

Product Advantages:

  • Relatively “free” program;
  • Nox is very “lightweight” and technically “fast”;
  • Specialized mapping of keys for Android gestures;
  • Configurable in detail.

Disadvantages:

  • Need to install other applications and components;
  • It can be used exclusively for working with the Android system.

BLUESTACKS

Modern emulator Android operating system.

Benefits:

  • Relatively “free” product, in which there is a trial version for the trial period;
  • A wide variety of options for fine-tuning;
  • Easy installation of applications;
  • Functions for interacting on tabs with the ability to quickly switch.

Disadvantages:

  • It is sharpened for work only with guest Android;
  • A lot of advertising and third-party applications;
  • “Eats” a lot of RAM, which means that it can easily cause a relatively not powerful or weak computer to slow down.

APPETIZE.IO

Internet emulator for Android and iOS operating systems.

Benefits:

  • There is a free version (100 minutes in 1 month and one active user);
  • A wide range of applications and systems for reproducing emulations for the most popular devices and technical components.

Disadvantages:

  • More than half of the provided functionality is available only in the paid version of the product.

ANDY OS

Specialized emulator for the Android operating system.

Benefits:

  • It is freely available on the Internet;
  • Very easy to use. It features an intuitive functional;
  • Screen size adjustment options;
  • Quick sync options with modern mobile devices.

Disadvantages:

  • It can only be used to work with products for Android;
  • Not all 3D games are supported in the correct form;
  • Periodic freezes occur;
  • The constant appearance of advertising inserts;
  • Some versions contain officially unannounced features and parameters that allow the spread of malicious components.

Of course, this list cannot be considered complete. Above were listed exclusively the most popular products and their basic characteristics, from which, if desired, you can choose something worthwhile.

Containerization


Recently, containerization systems such as Docker or Kubernetes have been used more and more. They allow you to automatically deploy prepared OS images mainly for the purpose of automatic testing and for CI systems. Containers are very similar to virtual machines, but they do not require a hypervisor, but only the corresponding engine:

Emulators of operating systems. Virtualization, Emulation, Containerization

Containerization ( virtualization at the operating system level , container virtualization , zone virtualization ) is a virtualization method in which the kernel of the operating system supports several isolated instances of user space instead of one. These instances (commonly called containers or zones ) are, from the user's point of view, completely identical to a single instance of the operating system. For Unix-based systems, this technology is similar to an improved implementation of the chroot mechanism. The kernel provides full isolation of containers, so programs from different containers cannot affect each other.

Unlike hardware virtualization, in which the hardware environment is emulated and a wide range of guest operating systems can be launched, an instance of the operating system with the same kernel as the host operating system can be started in the container (all host containers use a common kernel). At the same time, during containerization, there are no additional resource overheads for emulating virtual equipment and launching a full-fledged instance of the operating system, characteristic of hardware virtualization.

There are implementations focused on creating almost full-fledged copies of operating systems (Solaris Containers, Virtuozzo containers, OpenVZ), as well as options that focus on isolating individual services with a minimal operating environment (jail, Docker).

Comparison of Implementation of Contenirization

Emulators of operating systems. Virtualization, Emulation, Containerization

All the same, virtual machines and emulators have their strengths and weaknesses, which does not allow us to put an equal sign between them and traditional methods of testing the functionality and performance of the developed software.

продолжение следует...

Продолжение:


Часть 1 Emulators of operating systems. Virtualization, Emulation, Containerization

created: 2014-09-30
updated: 2023-07-04
132476



Rating 9 of 10. count vote: 2
Are you satisfied?:


avatar
18.7.2020 9:53

В чем разница между эмуляцией и симуляцией?

avatar
18.7.2020 9:53

Вы хотите дублировать поведение старого калькулятора HP, есть два варианта:

Вы пишете новую программу, которая рисует дисплей и клавиши калькулятора, и когда пользователь нажимает на клавиши, ваши программы делают то же, что и старый калькулятор. Это симулятор

Вы получаете дамп прошивки калькулятора, затем пишете программу, которая загружает прошивку и интерпретирует ее так же, как микропроцессор в калькуляторе. Это эмулятор

Simulator пытается дублировать поведение устройства. Эмулятор пытается дублировать внутреннюю работу устройства.


Comments


To leave a comment
If you have any suggestion, idea, thanks or comment, feel free to write. We really value feedback and are glad to hear your opinion.
To reply

Operating Systems and System Programming

Terms: Operating Systems and System Programming