The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Компания Siemens выпустила гипервизор Jailhouse 0.8

28.12.2017 15:06

Представлен свободный гипервизор Jailhouse 0.8, развиваемый компанией Siemens. Гипервизор поддерживает работу на системах x86_64 с расширениями VMX+EPT или SVM+NPT (AMD-V), а также на процессорах ARMv7 (Banana Pi, NVIDIA Jetson TK1, Versatile Express с Cortex-A15 или A7) и ARMv8/ARM64 (AMD Seattle, LeMaker HiKey, NVIDIA Jetson TX1, Xilinx ZCU102 ) с расширениями для виртуализации. Код проекта распространяется под лицензией GPLv2.

Гипервизор реализован в виде модуля для ядра Linux и обеспечивает виртуализацию на уровне ядра. Для управления изоляцией используются предоставляемые современными CPU аппаратные механизмы виртуализации. Отличительными особенностями Jailhouse являются легковесная реализация и ориентация на привязку виртуальных машин к фиксированному CPU, области ОЗУ и аппаратным устройствам. Такой подход позволяет на одном физическом многопроцессорном сервере обеспечить работу нескольких независимых виртуальных окружений, каждое из которых закреплено за своим процессорным ядром.

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

В терминологии Jailhouse виртуальные окружения именуются ячейками. Внутри ячейки система выглядит как однопроцессорный сервер, показывающий производительность близкую к производительности выделенного ядра CPU. В ячейке может быть запущено окружение произвольной операционной системы, урезанные окружения для запуска одного приложения и специально подготовленные отдельные приложения, предназначенные для решения задач реального времени. Конфигурация задаётся в .cell-файлах, определяющих выделяемые окружению CPU, регионы памяти и порты ввода/вывода.

В новом выпуске:

  • Добавлена поддержка платформ Marvell ESPRESSOBin, Emtrion emCON-RZ/G1E и emCON-RZ/G1M, а также возможность работы в виртуальной машине QEMU ARM64;
  • Библиотека окружений (inmate) переведена на двойную лицензию (GPLv2 или 2-clause BSD), что позволяет использовать её с кодом любых гостевых систем;
  • Перемещаемые окружения по умолчанию теперь размещаются по адресу 0 и для систем x86;
  • В протокол взаимодействия между гипервизором и гостевым окружением добавлена опционалная возможность установки таймаута;
  • Для платформы ARM64 добавлена поддержка контроллеров прерываний на базе архитектуры GICv3, таких как ARM CoreLink GIC-500. Для ARM и ARM64 обеспечен автоматический выбор версии GIC (v2 или v3);
  • Для систем x86 включено игнорирование некорректного доступа к IOAPIC (для использования в некорневых ячейках) и налажен сброс IOAPIC при запуске и завершении работы ячейки; расширено число поддерживаемых инструкций MMIO; организован проброс в окружения частот TSC и APIC, откалиброванных в корневой ячейке;
  • За пределами основного репозитория развивается несколько инициатив: продвижение в основной состав ядра Linux кода для поддержки некорневых ячеек для систем x86, интеграция поддержки Jailhouse в Zephyr RTOS, создание сценариев использования Jailhouse в Yocto на платформе Banana Pi.


  1. Главная ссылка к новости (https://lkml.org/lkml/2017/12/...)
  2. OpenNews: Доступен новый экспериментальный гипервизор KSM
  3. OpenNews: Первый выпуск гипервизора Bareflank
  4. OpenNews: Релиз гипервизора Xen 4.10
  5. OpenNews: Первый выпуск Jailhouse, развиваемого компанией Siemens гипервизора для Linux
  6. OpenNews: Компания Siemens представила Jailhouse, новый открытый гипервизор для Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/47822-jailhouse
Ключевые слова: jailhouse, virtual
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (28) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, rshadow (ok), 15:44, 28/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Скорее всего в других системах при количестве ядер=1 тоже ничего не планирует.
     
  • 1.5, pavlinux (ok), 16:06, 28/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Intel IOMMU (VT-d) with interrupt remapping support (except when running inside QEMU)

    А можно пущать lxc в гипервизоре из qemu?

     
     
  • 2.23, Аноним (-), 03:19, 29/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зависит от того, есть у тебя компьютер или нет!
     
     
  • 3.32, pavlinux (ok), 18:27, 29/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    счётные палочки - это компьютер?
     

  • 1.6, мшефд (?), 16:52, 28/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Siemens со времен wincc научились программировать???
     
  • 1.7, Аноним (-), 16:59, 28/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Better Stuxnet support.
     
     
  • 2.16, sabakka (?), 20:47, 28/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    это пять ;)
     
  • 2.24, Аноним (-), 07:39, 29/12/2017 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Кстати, непонятно, как после этой истории можно смотреть на что-то с названием "сименс" без отвращения?
     
     
  • 3.31, PnDx (ok), 14:57, 29/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Девайсы с realtek уже́ все выкинули?
     

  • 1.8, Аноним (-), 17:11, 28/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Можно как-то заюзать это изделие есть какие-то API или вообще как с этим жить?
     
     
  • 2.11, pavlinux (ok), 17:39, 28/12/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Можно как-то заюзать это изделие есть какие-то API или вообще как с этим жить?

    Начини с обучения пользования ссылками.


     

  • 1.12, Val (??), 17:40, 28/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Гипервизор реализован в виде модуля для ядра Linux и обеспечивает виртуализацию на уровне ядра.

    Нет. Jailhouse вообще не имеет никакого отношения к ядру Linux и при активации отбирает у него доступ ко всему. В виде модуля ядра реализован тот самый загрузчик.

     
     
  • 2.14, ананим.orig (?), 19:14, 28/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    угу.
    а /dev/jailhouse становится сим-линком на /dev/null?
    не говоря уже про всякие /dev/sda
     
     
  • 3.19, Val (??), 21:30, 28/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    /dev/jailhouse - это просто устройство, через которое CLI загрузчика общается с модулем. К гипервизору это не имеет особого отношения - просто менеджмент. В отличие от того же KVM, где VMEXIT'ы именно обрабатываются модулем ядра.
     
  • 3.20, Val (??), 21:33, 28/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Другими словами, в Jailhouse Linux не выполняется в VMX root (на Intel).
    И никакого /dev/sda у гипервизора, конечно, нет. Для Linux в root cell доступ до него обычно оставляют, но нет никаких проблем отрубить. После этого Linux впадет в панику, гипервизор продолжит работать. И, к примеру, выполнять тот самый Zephyr.
     
  • 2.17, pavlinux (ok), 21:15, 28/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > при активации отбирает у него доступ ко всему.

    Кэп, ты сейчас расшифровал определение гипервизора ОСи.

     

  • 1.13, anomymous (?), 19:10, 28/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    "ориентация на привязку виртуальных машин к фиксированному CPU"
    Это толком и не гипервизор. Это слегка перекормленный планировщик. В последнее время подобных расплодилось - реализация проста в дым, а хайпа вокруг гипервизоров много.
     
  • 1.15, Меломан1 (?), 20:01, 28/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А где совместное использование CPU и GPU?
     
     
  • 2.18, Аноним (-), 21:25, 28/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Вы собираетесь майнить на машине, которая двигает жд стрелки или поднимает-опускает стержни в реакторе?
     
     
  • 3.26, Меломан1 (?), 08:47, 29/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы собираетесь майнить на машине, которая двигает жд стрелки или поднимает-опускает стержни
    > в реакторе?

    Страшно? Представь сколько криптовалюты придется выложить Рогозину прокурорам...

     
     
  • 4.27, Аноним (-), 09:28, 29/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем бы ему это делать?
     
     
  • 5.30, Меломан1 (?), 12:34, 29/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Его очередь подошла садиться.
     

  • 1.21, Аноним (21), 21:43, 28/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Здесь нет предмета для обсуждения. Данная Siemens технология ориентирована на real-time. Хотя 99% пищуших здесь"профессионалов" понятия об этом не имеют.
     
     
  • 2.22, pavlinux (ok), 00:15, 29/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Профик, код видел?




    spin_lock(&cell->mmio_region_lock);
    ...
    /*
    * If this CPU is last, make sure everything was committed before we
    * signal the other CPUs spinning on initialized_cpus that they can
    * continue.
    */

    memory_barrier();
    ...
    spin_unlock(&cell->mmio_region_lock);



    Как думашь, "make sure", "that they can continue" это реалтаймовые термины?
    Ожидание сброса кэша внутри блокировки на SMP бурбуляторе (особо x86) это да, реалтаймней не придумашь.  

     
     
  • 3.25, Аноним (-), 07:42, 29/12/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Как думашь, "make sure", "that they can continue" это реалтаймовые термины?
    > Ожидание сброса кэша внутри блокировки на SMP бурбуляторе (особо x86) это да,
    > реалтаймней не придумашь.

    это мягкое, либеральное реальное время

     
     
  • 4.33, pavlinux (ok), 18:28, 29/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > это мягкое, либеральное

    :D  


     

  • 1.34, Аноним (-), 13:22, 30/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Android?
     
  • 1.35, username (??), 23:30, 01/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что вы за люди такие. Ну спросите у мастеров зачем биндят процессы к конкретному цпу, зачем пишут свою реализацию сетевого стека под linux и прочее. В принципе самому не сложно понять.
    Здесь почти правильно высказались, такой дизайн нужен для среднего между реалтаймом и обычной работой с планировщиком и мультиядрами. Да, ни туда ни сюда.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру