Автор Тема: Паравиртуализация  (Прочитано 8161 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн jobless

  • Активист
  • ****
  • Автор темы
  • Сообщений: 252
Паравиртуализация
« : Март 22, 2013, 22:33:51 »
Решил наконец уяснить для себя и возможно найти применение на практике давно застрявшего в голове вопроса.
Несколько ссылок на обзоры(надеюсь буду пополнять)
http://www.ibm.com/developerworks/ru/library/l-linuxvirt/
http://www.myshared.ru/slide/71610/
http://www.ixbt.com/cm/virtualization-xen.shtml
....

Немного истории поясняющей почему меня интересует именно паравиртуализация.
Впервые с понятием виртуальная машина я столкнулся на практике (посчитал и стало страшно) около 25 лет назад.
В статье от IBM есть упоминание о системе CMS

z/VM (полная виртуализация)
Несмотря на то, что IBM System z™ -- это новый брэнд, фактически он имеет длинную историю, начиная с 1960-ых. System/360 поддерживала виртуализацию с использованием виртуальных машин еще в 1965. Интересно, что System z сохраняет обратную совместимость со старой линейкой System/360.
z/VM® -- гипервизор операционный системы для System z. В нем -- Программа Контроля (Control Program -- CP), которая обеспечивает виртуализацию физических ресурсов для гостевой операционной системы, включая Linux (см. Рисунок 5). Это позволяет множеству процессоров и другим ресурсам виртуализироваться для множества гостевых операционных систем.


Рисунок 5. Виртуализация на уровне операционной системы с использованием z/VM


В тексте статьи есть некоторая не точность. VM(CMS) [у нас СВМ(ПДО) - подсистема динамической отладки]
Это не система работающая также как остальные гостевые (обманутые :) ) а специально написанная одно пользовательская многозадачная система понимающая что машина на которой она работает не реальна. В чём тогда было отличие? Обычная (обманутая гостевая ОС при обращении к периферии генерила так называемые канальные программы и затем управляла ими с помощью команд SIO,TIO,HIO или начать, проверить, остановить ввод вывод а анализ макросов ассемблера CMS показал полное отсутствие подобного и замену на спец команду(не существующую в реальном процессоре) с помощью которой просила гипервизор о той или иной услуге по доступу к устройствам. Результат такого подхода в моей памяти разница 15 минут и 15 секунд для выполнения в частности ассемблирования и линковки больших программ под гостевой MFT и CMS соответственно.

В сегодняшней терминологии это пример именно паравиртуализации (т.е. как в одной из статей было указано исключение из ядра гостевой ос "плохих команд"), и пока я понял что законодатель мод в этом XEN, но это наверно не так и важно, думаю для linux под любой гипервизор можно пере собрать в той или иной степени оптимизированное ядро понимающее где оно в данный момент загрузилось.

Я буду разбираться в данном вопросе подробно и на сейчас меня интересуют практические примеры (опыт использования) и возможность применения подобных ядер в дистрибутивах Runtu.


 
 
Runtu Lite of this insight!!! ... она такая Lite !!!