User Mode Linux: текущее состояние проекта
Алексей Федосеев
Целью проекта, по сути представляющего собой модификацию ядра Linux, является запуск ядра операционной системы в качестве отдельного пользовательского процесса. Запуск виртуальной машины с привилегиями простого пользователя позволяет настроить доступ виртуальной машины только к необходимым ресурсам системы.
- Для запуска не требуются права суперпользователя
- Виртуальные диски представлены файлами
- Возможно создание Copy-on-Write образов дисков
- Можно проецировать директории главного сервера в структуру каталогов виртуального сервера
- Виртуальные сетевые интерфейсы, например через TUN/TAP
- Виртуальные консоли можно связывать с: файлами (stdin/stdout/stderr), файлами устройств терминалов, TCP-портами, x-терминалами
- Можно перезагружать виртуальную систему "изнутри"
- Можно использовать любой дистрибутив - только подготовить соответствующий образ диска
- Запуск виртуального X-сервера с помощью Xnest
Проблемы: производительность.
Для администрирования удобно применять специализированное средство management console, которое имеет следующие функции:
- Управление выполнением виртуальной машины (start, stop, pause)
- Посмотреть содержимое файла в директории /proc виртуальной системы
- Отправить sysrq-прерывание (например, sync)
- Перезагружать и выключать виртуальную систему
- Динамически добавлять и удалять устройства
Есть дополнительный набор скриптов для облегчения администрирования, написанных мной. Вместе с документцией по UML на русском можно посмотреть на http://uml.aiya.ru
User Mode Linux: применение
- Тестирование дистрибутивов
- Отладка системного ПО (можно использовать простой gdb на процесс UML)
- Honeypots: можно "замаскировать" UML-ную природу виртуальной машины, можно вести логи всех терминалов
- Хостинг: есть несколько провайдеров, предлагающих виртуальный выделенный хостинг на основе UML. На этот счёт есть личный опыт.
- Виртуализация отдельных служб (почта, web, ...) - более сильная версия jail.
Что касается демонстрации - то я в принципе могу показать на своем ноутбуке запуск системы и т.п..