Вступление
В настоящее время только глухой и слепой IT-шник спустившийся с гор может не знать про виртуализацию, ну а рядовые юзеры могут пользоваться ей даже сами об этом не ведая. Сейчас в этом секторе рынка предлагается множество решений на любой вкус и цвет и под разные задачи — свободные и проприетарные, с разными технологическими подходами (эмуляция, паравиртуализация, полная виртуализациия), ориентированные на серверы или десктопы и работающие под разным окружением (OS-hosted и bare-metal).
Вот о последнем различии я и хотел поговорить. Насколько я понимаю, оно заключается в использовании на хосте ОС общего назначения либо специализированной системы, заточенной под работу именно в качестве ОС для гипервизора. Самый типичный пример такого продукта — VMware ESX(i), который использует переработанный RHEL. С точки зрения производительности и удобства управления это лидирующий продукт (адепты Xen's CLI, без флейма!), вот только использовать его на десктопе не получится вследствие его привязанности к серверным платформам (поддерживает в основном серверное железо, работать с гостевыми ОС можно только удаленно).
А вот если бы...
Я посмотрел презентацию Splashtop (см. также Phoenix HyperSpace) и обратил внимание на одну деталь — эта встроенная ОС поддерживает запуск и одновременную работу с несколькими гостевыми ОС «из коробки». Если все эти медиаплейеры, скайпы и прочие огнелисы из нее выбросить, то в остатке получается desktop-oriented bare-metal hypervisor!
Такая концепция «супер-BIOS'а» с необходимым минимумом софта + что-то похожее на VirtualBox мне кажется весьма привлекательной, будь она реализована в виде оптимизированного под это дело GNU/Linux-дистрибутива с полной поддержкой современного железа и некоторым количеством базовых virtual appliances (даже не знаю как адекватно перевести этот термин). К большому сожалению Splashtop — продукт закрытый и переделать его нет никакой возможности :(
Кому и зачем это надо?
Мне, для интереса. :)) Если серьезно, то я могу предположить востребованность такого продукта следующими группами пользователей:
- Админами, в гетерогенных Linux/BSD/Windows сетях;
- Разработчиками, что пишут кросс-платформенное ПО;
- Игрунами, для которых белый свет не мил без HoMM, Fallout и прочих сталкеров;
- Линуксоидами, взалкавшими насущного (Adobe CS, AutoCAD, FineReader etc...);
- Виндузятниками, желающими странного (OSS).
Идея
Состоит в создании десктоп-ориентированного юзер-френдли гипервизора со следующими параметрами:
- Использование в качестве хостовой ОС модифицированного Archlinux или LFS и свободной системы виртуализации
- Поддержка обычного десктопного железа
- Минимальное количество необходимых компонентов хостовой ОС
- Минимизация использования ресурсов хостовой ОС
- Использование быстрого и максимально облегченного WM
- Настройка и упрвление гипервизором и гостями через GUI
- Экспорт/импорт гостевых ОС по сети или на внешние носители
- Динамическое распределение и расшаривание дискового пространства между гостевыми ОС
- Включение в дистрибутив преднастроенных гостевых ОС (a.k.a. virtual appliances)
- Возможность использования ОС семейства Windows в качестве гостевой системы (с поддержкой аппаратного ускорения Direct3D/OpenGL)*
Подробнее
Рассмотрим эти пункты более детально.
- Использование в качестве хостовой ОС модифицированного Archlinux или LFS и свободной системы виртуализации
- Поддержка обычного десктопного железа
- Минимальное количество необходимых компонентов хостовой ОС
- Минимизация использования ресурсов хостовой ОС
- Использование быстрого и максимально облегченного WM
- Настройка и управление гипервизором и гостями через GUI
- Экспорт/импорт гостевых ОС по сети или на внешние носители
- Динамическое распределение и расшаривание дискового пространства между гостевыми ОС
- Включение в дистрибутив преднастроенных гостевых ОС (a.k.a. virtual appliances)
- Возможность использования ОС семейства Windows в качестве гостевой системы (с поддержкой аппаратного ускорения Direct3D/OpenGL)*
Итак
По поводу написанного хотелось бы получить следующие комментарии:
- "Баян" — если я изобретаю очередной «велосипед» — пожалуйста, укажите на похожий открытый проект (похожий — это такой, который ставит перед собой те же или почти те же самые цели).
- Поправки и исправления — вполне допускаю, что в моих знаниях по этому материалу есть существенные пробелы, поэтому если Вы считаете что я где-то ошибся или использовал неправильный термин буду только рад исправить статью с Вашей помощью.
- Концептуальные замечания — если можете, предложите более стройную или гибкую модель проекта, или помогите откалибровать акценты на задачи — как известно, самые грубые ошибки допускаются на этапе проектирования.
- Детализация — если Вам интересен этот проект, Вы можете помочь мне сделать следующий шаг — дробление задач на простые подзадачи и составление плана разработки.
- Технические Howto — в сообществе активных пользователей Linux каждый человек начинает с азов и постепенно но неудержимо прогрессирует в направлении эксперта/гуру/бога, так что я буду очень признателен каждому просветленному за любую техническую информацию, касающуюся способа реализации той или иной фичи этого проекта.