Pull to refresh

Comments 74

Интересной особенностью является поддержка Windows в качестве одного из пользовательских доменов


Вот это уже интересно. Если действительно встанет без танцев с бубном, то можно попробовать на рабочем компьютере.
Никакой магии, Windows уже давно работает в XEN, не понятно, что тут интересного? Интересно когда в Windows видеокарта прокидывается — это да.
Поддержка железом (процессор, чипсет) и ядром операционной системы (e.g. Linux) таких замечательных вещей, как Intel VT-d / AMD IOMMU, позволяет почти без потерь передать в гостя устройство (e.g. видеокарту) для эксклюзивной работы. В первом квартале 2013 года было достаточно статей на Хабре про Linux+Xen на машине с двумя видеокартами и Windows в domU.
Это все очень хорошо, если у тебя не nvidia. К сожалению (или к счастью) AMD никаких конкурентов GTX 780 Ti и 980 предложить не может.
С nvidia все настолько плохо, что их проприетарный драйвер не работает даже в dom0.
Когда я ещё давно слышал про Xen, я представлял себе нечто подобное.
Я давно держу в уме одну похожую идею — сделать удобную обертку для приложений в виде виртуальной машины. Т.е. дистрибутируемое ПО со всеми библиотеками, дополнениями, расширениями и службами «заворачивается» в виртуальную машину и поставляется в таком виде конечному пользователю. Для пользователя это выглядит просто как большущий исполняемый файл. Туда уже встроена система виртуализации и образ нужной ОС. Если приложение с GUI, то оно запускается в обычном окне хост-операционки.
Таким образом можно добиться кроссплатформенности с полностью идентичным поведением в любой ОС. Также решается проблема корректного разворачивания и функционирования больших программных комплексов из множества сторонних компонентов.
Может есть уже что-то похожее?
Чем это отличается от экспорта/импорта любой из виртуальных машин в минимальной комплектации? Единственное различие — нет интеграции виртуальной машины в окружение рабочего стола.
Только тем что для запуска виртуальной машины нужно специальное приложение. В моей идее это приложение объединяется с самой машиной.
Есть в какой-то мере родственный с вашими идеями проект. Там для каждой системы поставляется свой установочный пакет с приложением. Все зависимости включены. Но это совсем не эмуляция ОС, скорее просто удобная схема установки крупных приложений одним кликом.
Кстати пользовался сборкой Redmine от этой компании, довольно удобно. Но это по большому счету действительно, просто удобный пакетный инсталлятор.
Packager.IO для раби и ноды. Docker частично выполняет ваши требования.
для раби и ноды
Что, простите?
Packager.IO собирает deb и rpm пакеты из Ruby и Node.js приложений.
Есть нечто подобное, но не для пользователей, а для серверов. Docker называется.
Спасибо! Уже изучаю. Действительно похоже на то что нужно
На самом деле в Docker и X-сервер уже запускали)
UFO just landed and posted this here
Под JRE я должен писать только на Java, не так ли?
UFO just landed and posted this here
Идея несколько шире. Представьте какую-нибудь корпоративную систему с пользовательским веб-интерфейсом. Там есть какой-то SQL-сервер, какая-то серверная логика, есть сторонний веб-сервер с какими-то апплетами, и еще возможно NGINX для пущей производительности.
Все это ставится, администрируется, поддерживается отдельно. Да еще и не под всеми ОС работает.
А мы заворачиваем все это в единственную виртуальную машину, запуск которой нужно просто прописать в автозагрузку сервера как обычную службу, и в таком готовом виде поставляем клиенту. Разворачивается быстро, все уже настроено, версии всех компонентов протестированы на корректную совместную работу. Здорово же :)
Да, спасибо, уже изучаю этот проект. Похоже на то что нужно.
UFO just landed and posted this here
UFO just landed and posted this here
Да, есть такое. Я одно время сам подумывал заняться, на основе VirtualBox сделать.
Но, повторюсь, идея в том чтобы поставлять виртуальную машину как самостоятельное приложение.
UFO just landed and posted this here
Насколько я помню Docker отказались от lxc и теперь работают с namespace без них, плюс для Docker есть теперь CoreOS, но я сам пока этого зверя палочкой не тыкал.
под убунтой тоже насколько я понимаю работает, не менять же сотни deb-based серверов, например.
Конечно работает. В релиз 14.04 вошел 0.9.1, сейчас в репозиториях 1.0.1
apt-cache search docker.io в помощь, ну а потом sudo apt-get install его же(search что бы поискать и увидеть, а не увидев включить universe репозиторий).
Но на практике я предпочту настроить все самостоятельно
Но это вы так хорошо во всем разбираетесь. А потенциальные клиенты хотят готовое решение по принципу кликнул-установилось-работает. Желательно вообще необслуживаемое. И таких клиентов все больше, это тренд.
Ещё есть Scala, Jython и прочий зоопарк, но да, ограничивается только JVM-языками. Это вам не CLR, под которую чуть ли не изначально можно было переносимо и платформонезависимо писать хоть на C++ без использования нативного кода*.
* без готовой стандартной библиотеки и если самостоятельно реализовать несколько нужных компилятору функций из этой самой стандартной библиотеки, см. /clr:pure.
Спасибо! Подойдет в принципе множество разных дистрибутивов, вопрос больше в объединении образа виртуальной машины с гипервизором в одном пакете.
Ваш комментарий напомнил мне неплохой подход в организации онлайн курсов — в качестве базы для изучения предоставляется виртуальная машина, в которой настроены все переменные окружения и установлены необходимые утилиты. Это очень удобно — своя машина не захламляется, ничего искать не нужно самому — в общем преимуществ много)

Так организованы небезызвестные курсы Compilers у Alexander Aiken.
VMware ThinApp, очень близко и очень давно…

— VMware® ThinApp® is an agentless application virtualization solution that isolates applications from their underlying operating systems to eliminate application conflict and streamline delivery and management. — See more at: www.vmware.com/products/thinapp/features.html
Всё верно, никак не могу понять, почему никто, кроме вас, не упомянул.
Главный вопрос, который возникает, — производительность. Взять два одинаковых пакета приложений и запустить на одинаковом железе в нативной операционке и Хen. Было бы интересно сколько Xen перерасходует памяти и на сколько процентов медленнее будет на нём работать.
Вы можете подробнее узнать о Xen в википедии. Если ответить кратко: виртуализация любых совместимых систем происходит практически без потерь (за счет патчей ядра гостевой системы). Несовместимые системы работают чуть медленнее, поскольку вызовы гостевой системы эмулируются. Но даже в этом случае потери производительности гораздо ниже, чем при использовании виртуальных систем вроде VirtualBox, работающих в пользовательском пространстве ОС.
UFO just landed and posted this here
Это полностью зависит от организации ваших рабочих групп. В самом простом случае можно использовать виртуальные машины отдельно друг от друга. Например для работы, для дома, для тестов. Более сложные конфигурации обычно создаются с пониманием того, что будет использоватся чаще остального, отсюда и расстановка приоритетов.
Есть бесплатная тулза ru.wikipedia.org/wiki/VMware_ThinApp
Но вспоминая статью Криса Касперски «Побег из VM Ware», становится под сомнения ценность инструментов. Хотя массовую вирусню здорово отвадить можно.
Я какое-то время назад очень плотно с ней работал. Вердикт: очень эргономичный бадик с красивым шильдиком. Да, свою цель по распространению и пакетированию приложений выполняет, но это костыль к системе, в которой чужды такие подходы.
UFO just landed and posted this here
на десктопе у себя не поставил бы из-за повышенных требований к производительности (2-3 виртуалки и так держу)

Вызовы гипервизора работают быстрее, чем эмуляция виртуальных систем в user-mode.
UFO just landed and posted this here
Если это удобно реализовано — то почему бы и нет?
UFO just landed and posted this here
Изолируется не каждое отдельное приложение, а их группы. Уведомление получат все приложения в пределах группы (виртуальной машины).
Вот если бы они довели до ума поддержку графического адаптера и звука в виртуалке и собрали в результате всё это с возможностью запуска игр и крутых графических пакетов на линуксе — это было бы здорово. Иметь дома не боящуюся вирусов систему с действительно изолироваными песочницами, способную строить разные виртуальные системы с полной поддержкой железа — это круто и это может быть оцень ценным решением и прибыльным проектом.

В таком виде как сейчас — это неплохая игрушка для людей, которые могли бы сделать всё тоже самое и без этого проекта. То-есть немного экономит время, но не более того. В чём принципиальная разница: разобраться с этой осью, поставить её и настроить или взять свой любимый пакет виртуализации, поставить его и настроить?
поддержка Windows в качестве одного из пользовательских доменов

рекомендуется… поддержка VT-X/AMD-V


Ну вообще-то если Windows поддерживается в виде домена, без VT-X/AMD-V обойтись не удастся. То есть, не «рекомендуется», а «обязательно наличие».
Вся информация по конфигурации взята с официального сайта. На всякий случай добавил ваше замечание в статью.
Пытался перейти на нее с Mint-а. Все замечательно, только вот без поддержки OpenGL туго. Теперь сижу на Федоре. Если будет нормальная графика — сразу перейду обратно.
Судя по всему память выделяется под AppVM заранее. Не удалось найти нигде обратного утверждения. Было бы шикарно, если бы гипервизор выдавал память процессам виртуалок on-demand а-ля OpenVz.
Мне кажется, что open-vz'шный вариант тут не очень хорош — оверселлинг хорош далеко не всегда, а вот шансы во время этих игр с памятью туда-сюда даже на ESXi/Hyper-V вызывают мало приятные эффекты вроде адского свопинга и тормозов не только хости системы а и всех гостевых окружений
В настройках ВМ можно задать первоначальный объем памяти, и максимально доступный предел. Кроме этого, можно выбрать динамическую балансировку в качестве дополнительной опции.

Управление памятью Xen
Для главного домена:
По умолчанию, домен 0 сначала получает весь доступный объём оперативной памяти, а потом, по мере необходимости, при старте других доменов, его начинает снижать. Это делает специально предназначенный для такой работы balloon-драйвер.

Для остальных доменов:
Объём памяти, выделяемой остальным доменам (то есть, виртуальным машинам), задаётся в их конфигурационных файлах с помощью параметра memory. Параметр может быть указан с суффиксом B, K, M или G, что означает байты, килобайты, мегабайты или гигабайты соответственно. По умолчанию подразумевается, что в конфигурационном файле домена объём памяти указан в мегабайтах.
Впоследствии этот размер можно изменить прямо для работающего домена.

xgu.ru
Странная поделка.
На диске лежат пакеты от 20-й федоры, даже не пересобранные, сверху прилеплено что-то, называемое «установщиком», но ничего другого, кроме как пара трейсбеков питоновских он мне установить не смог. Стоило из-за 8 (!!!) своих пакетов называться «дистрибутивом»?
У месье руки откуда-то не оттуда растут…
Давайте я Вам тест-кейсов накидаю:
Запускаете установщик — «забываете» подключить сеть (а настроить сеть никто и не давал, кстати) — выбор источника установки «closed mirror» — traceback и невозможность поменять до перехода в другое меню.
Думаю кривые руки месье не виноваты в пропущенном try-except.
Ну а выпускать 8 пакетов (напитонить установщик за вечер) и называть это «дистрибутив» — Андреем Поповым попахивает.
Наверное, всё же Денисом.
Вам работа крупного специалиста в области безопасности Иоанны Рутковски напоминает перешибание Поповым копирайтов?
Давайте по-честному: не важно, какой специалист выполнил работу, важно, что за работа выполнена.
А почему у меня ничего такого не было?
наверное потому что Вы руководствуетесь принципом УМВР («на моём компьютере всё работает.»), а в остальном мире занимаются тестированием ПО или использованием проверенных решений, вместо выпуска Yet Another Linux Distribution.
Оно не YALD, хотя бы потому, что в отличии от Федоры, ядром является Xen, а не Linux.
Xen — это гипервизор, а не ядро. Без Dom0 он никуда. Никак. А Dom0 — это полноценная ОС с настоящим ядром, либо линукс, либо солярис, либо фряха. И в данном случае это линукс

На картинке с оффсайта этот линукс есть: qubes-os.org/raw-attachment/wiki/QubesArchitecture/qubes-arch-diagram-1.png
и он там называется Secure GUI and administration (dom0)

Текст «ядро Xen» в данном случае — явно маркетинговый булшит, не читайте это. В действительности это дистр на базе федоры.
Мне кажется что для таких целей Xen является оверхедом. Возможно, было бы лучше «огораживать» приложения средствами AppArmor или подобных средств.
UFO just landed and posted this here
А как там с буфером обмена? Гостевые ОС получают доступ только по команде пользователя, или могут его постоянно мониторить для кражи интересных копипаст?
Sign up to leave a comment.

Articles