Пользовательский режим Linux
![]() | Эту статью необходимо обновить . ( май 2019 г. ) |
Написано в | С |
---|---|
Тип | Виртуализация |
Лицензия | Стандартная общественная лицензия GNU |
Веб-сайт | пользовательский режим-Linux |
Пользовательский режим Linux ( UML ) — это система виртуализации для операционной системы Linux, основанная на архитектурном портировании ядра Linux на собственный интерфейс системных вызовов , что позволяет нескольким виртуальным операционным системам на основе ядра Linux (известным как гостевые системы) работать как приложение в обычной системе Linux (известное как хост). Ядро Linux, скомпилированное для архитектуры um , затем может загружаться как процесс под другим ядром Linux, полностью в пользовательском пространстве , не влияя на конфигурацию или стабильность хост-среды.
Этот метод дает пользователю возможность запускать множество виртуальных машин Linux на одном оборудовании, обеспечивая некоторую изоляцию, обычно без изменения конфигурации или стабильности хост-среды, поскольку каждый гость представляет собой просто обычное приложение, работающее как процесс в пользовательском пространстве. .
Приложения [ править ]
Многие вещи становятся возможными благодаря использованию UML. [1] Можно запускать сетевые службы из среды UML и оставаться полностью изолированным от основной системы Linux, в которой работает среда UML. [2] [3] [4] [5] [6] Администраторы могут использовать UML для настройки приманок . [7] которые позволяют проверить безопасность своих компьютеров или сети. UML может служить для тестирования и отладки нового программного обеспечения, не оказывая негативного влияния на хост-систему. UML также можно использовать для обучения и исследований, обеспечивая реалистичную сетевую среду Linux с высокой степенью безопасности.
В средах UML версии ядра хоста и гостя не обязательно должны совпадать, поэтому вполне возможно протестировать « новейшую » версию Linux в пользовательском режиме на системе, работающей под управлением гораздо более старого ядра. UML также позволяет выполнять отладку ядра на одной машине, тогда как другие инструменты отладки ядра (например, kgdb ) требуют двух машин, соединенных нуль-модемным кабелем.
Некоторые провайдеры веб-хостинга на базе UML предлагают виртуальные серверы по более низким ценам, чем настоящие выделенные серверы . Каждый клиент имеет root- доступ к тому, что кажется его собственной системой, хотя на самом деле один физический компьютер используется многими людьми.
libguestfs поддерживает бэкэнд UML начиная с версии 1.24. [8] как альтернатива использованию QEMU или KVM.
Интеграция в ядро Linux [ править ]
Гостевое приложение UML ( для Linux двоичный файл ELF ) изначально было доступно в виде патча для некоторых версий ядра выше 2.2.x, и хост с любой версией ядра выше 2.2.x легко поддерживал его в режиме потока (т. е. без SKAS3). .
Начиная с Linux 2.6.0, он интегрирован в основное дерево исходного кода ядра . Реализован метод запуска отдельного адресного пространства ядра (SKAS), не требующий исправления ядра хоста. Это повышает производительность и безопасность по сравнению со старым подходом Traced Thread, при котором процессы, выполняющиеся в UML, совместно используют одно и то же адресное пространство с точки зрения хоста, что приводит к тому, что память внутри UML не защищается модулем управления памятью . В отличие от текущего UML, использующего SKAS, ошибочное или вредоносное программное обеспечение внутри UML, работающего на хосте, отличном от SKAS, может читать пространство памяти других процессов UML или даже память ядра UML. [9]
Сравнение с другими технологиями [ править ]
Linux пользовательского режима обычно считается [ кем? ] иметь более низкую производительность, чем некоторые конкурирующие технологии, такие как Xen и OpenVZ . [ нужна ссылка ] Будущая работа по добавлению поддержки виртуализации x86 в UML может уменьшить этот недостаток.
В качестве сильной стороны Xen (конкурирующей технологии) часто называют поддержку локального хранилища потоков (TLS). Теперь это также поддерживается в последних ядрах UML. Xen концентрируется на виртуализации всей машины, поэтому все системы, работающие на машине Xen, на самом деле являются виртуальными машинами. В UML хост-машина никак не виртуализируется, и только гостевые системы являются настоящими виртуальными машинами. Это обеспечивает гостевому UML прямой доступ к файловым системам и оборудованию хоста, где обычно отображается каталог хоста (например, /uml/корень → / ).
Поддерживаемые платформы [ править ]
UML изначально был разработан для набора команд x86 , но также был перенесен на другие системы, включая IA-64 и PowerPC . [ нужна ссылка ]
См. также [ править ]
Ссылки [ править ]
- ^ Лэндли, Роб (16 декабря 2009 г.). «Быстрое и грязное руководство Роба по UML» . Проверено 8 августа 2023 г.
- ^ «Пользовательский режим виртуальной сети-Linux» . 13 февраля 2012 г. Проверено 8 августа 2023 г.
- ^ «Неткит: Возможности» . 03 декабря 2009 г. Архивировано из оригинала 11 мая 2020 г. Проверено 8 августа 2023 г.
- ^ Жан-Винсент Лоддо; Лука Сайу. «Марионнет: виртуальная сетевая лаборатория» . Проверено 8 августа 2023 г.
- ^ «Документация Cloonix: v03-04» . 01.06.2019 . Проверено 8 августа 2023 г.
- ^ «Добро пожаловать в GINI! Набор инструментов для создания микроинтернетов на уровне пользователя» . Университет Макгилла . 28 сентября 2009 г. Проверено 8 августа 2023 г.
- ^ «UML как приманка» . 13 июля 2007 г. Проверено 8 августа 2023 г.
- ^ Ричард В.М. Джонс (11 августа 2013 г.). «Экспериментальный пользовательский режим Linux для libguestfs» . Проверено 29 августа 2019 г.
- ^ Дайк, Джефф (12 апреля 2006 г.). Пользовательский режим Linux . Прентис Холл . п. 197. ИСБН 9780131865051 .