Объявлено о выходе эмулятора QEMU 1.0


Рубрика: Новости Linux
Метки:
Просмотров: 2196

Объявлено о выходе эмулятора QEMU 1.0 4, который подвёл итоги развития проекта за 8 лет с момента основания. С самого начала проект был создан Фабрисом Беллардом (Fabrice Bellard) с целью обеспечения возможности запуска собранных для платформы x86 исполняемых файлов Линукс на архитектурах, отличных от x86. За годы разработки была добавлена помощь полной эмуляции для 14 аппаратных архитектур, количество эмулируемых аппаратных устройств превысило 400. В создании QEMU взяло участие 400 авторов, которые подготовили возле 20 тыс. изменений.

В качестве эмулятора QEMU дает возможность запустить программу собранную для одной аппаратной платформы на системе с абсолютно другой архитектурой, к примеру, выполнить приложение для ARM на x86-совместимом PC. В режиме виртуализации в QEMU достигается производительность исполнения кода в изолированном окружении близкая к нативной системе, за счет прямого исполнения инструкций на ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР и задействования гипервизора Xen или модуля KVM.

Ключевые усовершенствования, появившиеся в QEMU 1.0:

Реализация интерпретатора кода TCI (Tiny Code Interpreter), позволяющего запустить QEMU на архитектурах для которых не генерируется нативный код. Другими словами, TCI даёт возможность исполнять QEMU на каждый 32- и 64-разрядной хост-системе, в то время как без помощи TCI классический генератор кода TCG может обеспечить работу лишь на хост-системах x86, arm, mips, ppc, s390 и sparc. TCI не генерирует нативный код, а обеспечивает трансляцию фрагментов кода (основных блоков) из кода для целевой платформы в промежуточное представление (байткод), которое не зависит от архитектуры хост-системы и выполняется путем интерпретации. Ценой универсальности является скорость, по этой причине для поддерживаемых хост-систем рекомендуется применять классический генератор кода TCG;

Новое блочное устройство scsi-block, которое возможно применять в частности и для проброса настоящих SCSI-устройств в виртуальное окружение без перемены имени устройства (к примеру, возможно применять в гостевой системе имена /dev/sda или /dev/sr0, вместо /dev/Sgn). Новый драйвер дает возможность добиться более высокой эффективности при работе с устройствами за счёт отсутствия потребности в использовании дополнительной памяти при передаче крупных объемов данных в гостевой системе.

Попутно ведётся разработка нового стека организации работы с устройствами хранения virtio-scsi, который планируется применять вместо virtio-blk и работа над которым ещё не завершена. Потребность в создании virtio-scsi обусловлена тем, что virtio-blk лишён некоторых возможностей, реализация которых затруднена из-за потребности перемены спецификаций и нарушения совместимости. Помимо того в virtio-blk есть ограничение в одно PCI-устройство на диск, что ограничивает масштабируемость. Virtio-scsi сохранит эффективную архитектуру и производительность virtio-blk, дополнив данную систему новыми возможностями, такими как одновременное применение некоторого количества целевых устройств (qemu и lio) и возможность привязки к одному PCI-устройству тыс. дисков, которые внутри виртуального окружения не будут ничем отличаться от настоящих SCSI-устройств;

Помощь Live-миграции, применяя файлы с образами виртуальных машин в этих форматах как QCOW2, расположенные на общем хранилище;

Новый внутренний АПИ для управления памятью, основанный на использовании новой техники моделирования памяти, которая более точно соответствует реализации памяти в настоящих компьютерах. Для мониторинга иерархии используемых в гостевой системе регионов памяти возможно применять новую команду "info mtree". Сейчас новый АПИ базируется на старом АПИ управления памятью, что накладывает ряд ограничений по реализации доп. возможностей, однако уже дает возможность разработчикам начать миграцию;

Помощь эмуляции процессоров семейства Tensilica Xtensa, предназначенного для эксплуатации во встраиваемых системах. Теперь степень помощи Tensilica Xtensa дает возможность запустить Линукс на платах sim (Tensilica ISS)) и LX60/LX110/LX200. Из процессорных ядер поддерживаются DC232B и FSF;

В QEMU сейчас применяется отдельная нить для исполнения виртуального ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР (VCPU). Эта возможность была реализована в ветке qemu-kvm и являлась одним из главных отличий qemu-kvm от основной кодовой базы QEMU;

Для всех форматов образов виртуальных машин добавлена помощь асинхронного исполнения операций;

Помощь аккаунтинга задержек ввода/вывода (I/O latency). Поглядеть статистику возможно ч/з команду мониторинга "info blockstats";

Существенно увеличена точность эмуляции SCSI. SCSI-устройства могут быть адресованы по channel/target/LUN. Эмулируемый SCSI CD-ROM сейчас поддерживает DVD-образы и информирование о смене состояния носителя;

В SLIRP добавлена помощь ARP-ответов и ARP-запросов с позиции гостевой системы;

В VDI добавлена помощь отброшенных блоков (discarded blocks) в образах с динамическим изменением размера;

Добавлена помощь инструкций ARM-процессоров Cortex-A15 в режиме линукс-user (ч/з "-центральный процессор any"). Добавлена помощь звука для ARM-плат vexpress-a9, versatileab, versatilepb и realview-*.


  • Комментариев: 0

  • Вконтакте

  • Facebook:

    Оставьте комментарий!

    grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

    Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

    Имя и сайт используются только при регистрации

    Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

    Авторизация 

    MaxSiteAuth.

    (обязательно)