Системы эмуляции.
Выполнил работу: Бершауэр В.В. Группа БИТ-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" – задаёт тип устройства, которое будет эмулироваться, в данном случае это блочное устройство.
Следующей командой можно посмотреть список доступных процессоров:

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

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

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

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

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

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

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


Таблица сравнения полученных результатов теста бенчмарка:
| arm1136-r2 | arm1176 |
| -------- | -------- |
|  | 
Значение ***total time*** показывает общее время тестирования, ***total number of events*** - кол-во итераций рассчетов, ***total time taken by even execution*** - время завершения всех вычислительных потоков.
Значения ***min, avg, max*** означают минимальное, среднее и максимальное соответственно время выполнение задачи.
По результатам тестирования можно сказать, что процессор на базе архитектуры 1136-r2 будет являться более производительным в следствии меньшего затраченного времени.