Пользовательский режим Linux - User-mode Linux

Пользовательский режим Linux
Написано вC
ТипВиртуализация
ЛицензияСтандартная общественная лицензия GNU
Интернет сайтпользовательский режим-Linux.sourceforge.сеть

Пользовательский режим Linux (UML)[1] позволяет несколько виртуальных Ядро Linux операционные системы (известные как гостевые) для запуска в качестве приложения в обычной системе Linux (известной как хост). Поскольку каждый гость - это обычное приложение, работающее как процесс в пространство пользователя, этот подход предоставляет пользователю возможность запускать несколько виртуальных машин Linux на одном устройстве, предлагая некоторую изоляцию, как правило, не влияя на конфигурацию или стабильность среды хоста.

Приложения

Многочисленные вещи становятся возможными благодаря использованию UML.[2] Можно бежать сеть сервисы из среды UML и остаются полностью изолированными от основной системы Linux, в которой работает среда UML.[3][4][5][6][7] Администраторы могут использовать UML для настройки приманки[8], которые позволяют проверить безопасность своего компьютера или сети. UML может служить для тестирования и отладки нового программного обеспечения без неблагоприятного воздействия на хост-систему. UML также можно использовать для обучения и исследований, обеспечивая реалистичную сетевую среду Linux с высокой степенью безопасности.

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

Немного веб хостинг провайдеры предлагают на базе UML виртуальные серверы по более низким ценам, чем правда специальные серверы. У каждого покупателя есть корень доступ к тому, что кажется их собственной системой, в то время как на самом деле один физический компьютер используется многими людьми.

libguestfs поддерживает бэкэнд UML с версии 1.24[9] в качестве альтернативы использованию QEMU или KVM.

Интеграция в ядро ​​Linux

Гостевое приложение UML (a Linux двоичный ELF ) изначально был доступен как патч для некоторых версий ядра выше 2.2.x, и хост с любой версией ядра выше 2.2.x легко поддерживал его в режиме потока (т.е. не-SKAS3).

По состоянию на Linux 2.6.0, он интегрирован в основную ядро исходное дерево. Реализован метод запуска отдельного адресного пространства ядра (SKAS), который не требует исправления ядра хоста. Это повышает производительность и безопасность по сравнению со старым подходом с отслеживанием потоков, в котором процессы, выполняемые в UML, совместно используют одно и то же адресное пространство с точки зрения хоста, что приводит к тому, что память внутри UML не защищается блок управления памятью. В отличие от текущего UML, использующего SKAS, ошибочное или вредоносное программное обеспечение внутри UML, запущенного на хосте, отличном от SKAS, может иметь возможность читать пространство памяти других процессов UML или даже память ядра UML.[нужна цитата ]

Сравнение с другими технологиями

Linux в пользовательском режиме обычно считается[кем? ] иметь более низкую производительность, чем у некоторых конкурирующих технологий, таких как Xen и OpenVZ.[нужна цитата ] Будущая работа по добавлению поддержки виртуализация x86 использование UML может уменьшить этот недостаток.

Часто упоминается как сильная сторона Xen (конкурирующая технология) - это поддержка локальное хранилище потока (TLS). Теперь это также поддерживается в последних ядрах UML. Xen концентрируется на виртуализации всей машины, и поэтому все системы, работающие на машине Xen, на самом деле являются виртуальными машинами. В UML хост-машина никоим образом не виртуализирована, и только гостевые системы являются настоящими виртуальными машинами. Это позволяет гостю UML прямой доступ к файловым системам и оборудованию хоста, где обычно сопоставляется каталог хоста (например, / uml / корень/).

Поддерживаемые платформы

UML изначально был разработан для x86 набор инструкций, но также был перенесен на другие, включая IA-64 и PowerPC.

Смотрите также

использованная литература

  1. ^ «Домашняя страница ядра Linux в пользовательском режиме». 4 апреля 2008 г.
  2. ^ Лэндли, Роб (16 декабря 2009 г.). "Быстрое и грязное руководство по UML Роба". Получено 2019-08-29.
  3. ^ «Пользовательский режим виртуальной сети - Linux». 2012-02-13. Получено 2019-08-29.
  4. ^ «Netkit: особенности». 2009-12-03. Получено 2019-08-29.
  5. ^ Жан-Винсент Лоддо и Лука Сайу. «Марионнет: виртуальная сетевая лаборатория». Получено 2019-08-29.CS1 maint: использует параметр авторов (ссылка на сайт)
  6. ^ "Документация Cloonix: v03-04". 2019-06-01. Получено 2019-08-29.
  7. ^ «Добро пожаловать в GINI! Набор инструментов для создания микроинтернетов на уровне пользователя». Университет Макгилла. 2009-09-28. Получено 2019-08-29.
  8. ^ «UML как приманка». 2007-07-13. Получено 2019-08-29.
  9. ^ Ричард В. М. Джонс (11 августа 2013 г.). "Экспериментальный пользовательский сервер Linux для libguestfs". Получено 2019-08-29.

внешние ссылки