Выбрать главу

Что же нам предлагают? По правде говоря, для меня стало откровением, что несмотря на отсутствие поддерживающего ее программного обеспечения, первая на рынке технология виртуализации VT-x, которую процессоры Intel поддерживают уже около года, за это время несколько раз оптимизировалась по быстродействию, так что производительность использующих ее программ на Core 2 Duo будет заметно выше, чем на первых Pentium D (даже с учетом разницы в производительности самих этих процессоров). Впрочем, сегодня ведущие производители виртуальных машин уже поддерживают VT-x, хотя и не реализуют всех ее потенциальных возможностей, что, впрочем, неудивительно, если учесть, что необходимый для полного раскрытия технологии объем работ сопоставим по сложности с созданием новой операционной системы, да и ОС в идеале должны бы пройти соответствующую оптимизацию. Камень преткновения в данном вопросе — это необходимость реализации работающих на уровне виртуальной машины драйверов для железа и их поддержки операционной системой. Дело в том, что все нынешние ОСи попросту не умеют совместно с другими ОСями одновременно использовать одно и то же оборудование — скажем, общую видеокарту, и приходится либо реализовывать средствами виртуальной машины виртуальный же графический адаптер, жертвуя производительностью и функциональностью, либо ставить, грубо говоря, две видеокарты — по одной на каждую из ОСей, что тоже едва ли можно назвать удачным выходом. Кроме того, если мы собираемся использовать VMM не только для одновременного запуска Linux и пары копий Windows на одной машине, а для более «прогрессивных» схем, в которых, например, предлагается каждому критичному приложению выделять по собственной копии операционной системы, то без поддержки со стороны ОС и запустить это приложение — проблема (потребуется ждать создания новой виртуальной машины и загрузки в ней ОСи, после чего вручную запускать нужную программу), и работать с ним (было бы лучше, если б запущенная на другой виртуальной машине программа выглядела как обычное приложение, а все технические тонкости были спрятаны), и ресурсов на это уйдет слишком много (о быстродействии во многих случаях можно забыть). Словом, объем работы огромен, он наверняка займет еще несколько лет. Так что первые ее по-настоящему интересные плоды мы, вероятно, увидим тогда же, когда и второе поколение виртуализации от Intel, известное сейчас под кодовым названием VT-d.

Для разработчиков VT-d — большой шаг вперед. Например, в этой технологии появится аппаратная поддержка двойной трансляции виртуальной памяти, что позволит обойтись в виртуальных машинах без реализации ее функциональности чисто программным путем, довольно медленным и требующим большого непроизводительного расхода оперативной памяти. Появится возможность предоставления быстрого, без участия VMM доступа к выбранным MSR-регистрам процессора [Эта фича уже реализована в VT-x процессоров архитектуры Intel Core]; появится возможность не сбрасывать при каждом переключении между виртуальными машинами таблицу трансляции виртуальной памяти TLB, — все это тоже должно сильно увеличить быстродействие VT-d по сравнению с VT-x. Появится защита DMA-операций, улучшится поддержка прерываний — что, в свою очередь, повысит безопасность, закрыв некоторые потенциальные дыры. Кстати, интересно, что почти все из вышеперечисленного предлагает в своей технологии Pacifica компания AMD, незадолго до Форума начавшая поставки соответствующих процессоров. Так что Intel, безоговорочно лидировавшая в этой области, рискует на полгода-год — до выхода процессоров и чипсетов с поддержкой VT-d — остаться в хвосте. Впрочем, решение AMD не совместимо с решением Intel, и решатся ли разработчики на «оптимизацию» своего ПО «под AMD» — пока непонятно.

Любопытный доклад был посвящен созданию виртуальной машины «от Intel». В свое время, когда еще только появлялись первые процессоры VT-x, я спрашивал на московском Форуме представителей Intel о перспективах создания компанией собственного ПО, дабы потребители могли воспользоваться этой технологией (как известно, Intel разрабатывает и продает довольно много программных продуктов для собственного железа, начиная с компиляторов и заканчивая средствами отладки), но тогда мне сказали, что создание VMM ляжет на плечи сторонних разработчиков (в числе которых, кстати, фигурирует Microsoft), а Intel в лучшем случае поддержит OpenSource-проекты, но уж никак не станет создавать собственный стандарт. Однако ситуация, похоже, меняется, и вместо разговоров о довольно невнятном опенсорсном проекте Xen, на котором демонстрировалась работа VT-x, но который, на мой взгляд, страшно далек был не только от «народа», но и от подавляющего большинства сисадминов [Хотя Novell, включившая Xen в свои версии Linux, пожалуй, со мной не согласится], на Форуме разговор шел уже о более чем понятном и весьма многообещающем Open Virtual Iron, реализующем полноценную, удобную и довольно «навороченную» виртуализацию. Сама Virtual Iron — стартап, предлагающий коммерческое ПО, и подобный поворот в сторону «открытости», да еще и подробно освещенный Intel, выглядит как попытка установить некую собственную «стандартную платформу» в виртуализации.