---
# System prepended metadata

title: Untitled

---

Системы эмуляции.
Выполнил работу: Бершауэр В.В. Группа БИТ-191.
Дисциплина: Инструментальное обеспечение компьютерно-технической экспертизы.

**Ход работы:**

**Эмуляция** — комплекс программных, аппаратных средств или их сочетание, предназначенное для копирования (***эмулирования***) функций одной вычислительной системы на другую, отличную от первой, вычислительную систему таким образом, чтобы эмулированное поведение как можно ближе соответствовало поведению оригинальной системы.

Был скачен с официального сайта и установлен QEMU для Windows x64 (https://www.qemu.org/download/).
*(QEMU – эмулятор различных устройств, который позволяет запускать операционные системы, предназначенные под одну архитектуру, на другой. В случае Windows, является консольным приложением.)*

С github (https://github.com/dhruvvyas90/qemu-rpi-kernel) был скачен архив с скомпилированными ядрами Linux для различных версий Rassbery Pi. Операционная система Raspberry Pi OS была скачена с официального сайта Raspberry (https://www.raspberrypi.com/software/operating-systems/).

Образ Raspberry и скаченный архив с github были помещены в диреткорию самого QEMU.

Для запуска виртуальной машины была использвана следующая команда, где:

**qemu-system-arm.exe -kernel ./qemu-rpi-kernel-master/kernel-qemu-5.4.51-buster -dtb ./qemu-rpi-kernel-master/versatile-pb-buster-5.4.51.dtb -cpu arm1136-r2 -m 256 -machine versatilepb -no-reboot -serial stdio -append "root=/dev/vda2 panic=1" -drive "file=2023-05-03-raspios-buster-armhf-lite.img,if=none,index=0,media=disk,format=raw,id=disk0" -device "virtio-blk-pci,drive=disk0,disable-modern=on,disable-legacy=off" -no-reboot**

* kernel kernel-qemu-5.451-buster – задаёт путь к ядру Linux, которое будет загружаться;
* dtb versatile-pb-buster-5.4.51.dtb – задаёт путь к файлу устройства, необходимому для конфигурации устройств, которые будут эмулироваться;
* cpu – задаёт модель процессора, которая будет эмулироваться;
* m 256 – задаёт количество выделяемой памяти для виртуальной машины;
* machine versatilepb – задаёт тип эмулируемой машины, в данном случае versatilepb;
* no-reboot – останавливает виртуальную машину после завершения работы вместо перезагрузки;
* serial stdio – направляет вывод виртуальной машины на стандартный вывод.
* append «root=/dev/vda2 panic=1» – задаёт параметры, передаваемые ядру Linux при загрузке;
* drive "file=2023-05-03-raspios-buster-armhf-lite.img,if=none,index=0,media=disk,format=raw,id=disk0" – создаёт новый виртуальный диск, который будет использоваться как жесткий диск для виртуальной машины;
* device "virtio-blk-pci,drive=disk0,disable-modern=on,disable-legacy=off" – задаёт тип устройства, которое будет эмулироваться, в данном случае это блочное устройство.

Следующей командой можно посмотреть список доступных процессоров:

![](https://hackmd.io/_uploads/rkBgPN8rn.png)

Запуск виртуальной машины:

![](https://hackmd.io/_uploads/BJpHPVUSn.png)

Вход в систему, после запуска виртуальной машины (логин - pi, пароль - raspberry):

![](https://hackmd.io/_uploads/Sy2xrVLr3.png)

Проверим доступ в интернет, для того, что бы скачать бенчмарк и обновить информацию о доступных пакетах:

![](https://hackmd.io/_uploads/BJD1uE8Sn.png)

Обновление репозиториев:

![](https://hackmd.io/_uploads/B1TFFV8S3.png)

Скачивание и установка бенчмарка:

![](https://hackmd.io/_uploads/Byw19NIH2.png)

**Было проведено тестирование и сравнение процессоров на архитектуре arm разных моделей: arm1136-r2 и arm1176.**

***№1. Процессор на архитектуре arm1136-r2:***

![](https://hackmd.io/_uploads/SJNXj4IB3.png)

![](https://hackmd.io/_uploads/SJgtWjNIH3.png) | 

***№2. Процессор на архитектуре arm1176:***

![](https://hackmd.io/_uploads/Bkv-pEUBh.png)

![](https://hackmd.io/_uploads/ByCep4IS3.png)

Таблица сравнения полученных результатов теста бенчмарка:

| arm1136-r2 | arm1176 |
| -------- | -------- |
| ![](https://hackmd.io/_uploads/ByKRCNLS2.png)    | ![](https://hackmd.io/_uploads/By7b1H8rn.png)
    
Значение ***total time*** показывает общее время тестирования, ***total number of events*** - кол-во итераций рассчетов, ***total time taken by even execution*** - время завершения всех вычислительных потоков.
Значения ***min, avg, max*** означают минимальное, среднее и максимальное соответственно время выполнение задачи.

По результатам тестирования можно сказать, что процессор на базе архитектуры 1136-r2 будет являться более производительным в следствии меньшего затраченного времени.