Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
РАЗРАБОТКА СИСТЕМЫ ЛЕГКОВЕСНОЙ ВИРТУАЛИЗАЦИИ ПОЛЬЗОВАТЕЛЬСКОГО УРОВНЯ
,
Д. С Ризаев,
Московский государственный институт электроники и математики (технический университет), Россия.
В данной работе рассматривается разработка системы легковесной виртуализации пользовательского уровня в операционной системе GNU/Linux. Виртуализация необходима для упрощения администрирования множества распределенных служб на сервере, а также для ограничения обычных пользователей в привилегиях.
На данный момент существует несколько уровней виртуализации:
· эмуляция оборудования – обеспечивает полную виртуализацию аппаратных средств, полностью эмулируя любую архитектуру платформы. Пример реализации – QEMU;
· полная виртуализация – виртуализирует аппаратные средства, осуществляя связь между гостевой операционной системой и аппаратными средствами, не эмулируя при этом оборудование платформы. Пример реализации – VMware;
· паравиртуализация – способ виртуализации, схожий с полной виртуализацией, и предоставляющий гостевой операционной системе программный интерфейс для взаимодействия с оборудованием. Пример реализации – Xen;
· виртуализация уровня операционной системы – позволяет запускать виртуальные серверы на ядре базовой операционной системы. Примеры реализации: Linux‑Vserver, OpenVZ;
· виртуализация приложений пользовательского уровня – позволяет запускать приложения в отдельных рабочих окружениях;
Целью данной работы ставилось создание системы легковесной виртуализации пользовательского уровня, для изолированного запуска пользовательских приложений. Система должна удовлетворять следующим требованиям:
· работа на пользовательском уровне – необходимо уменьшить влияние на операционную систему и ее компоненты в целом;
· максимальная безопасность – система должна полностью изолировать пользователей, исключая вторжения сторонних пользователей в рабочее окружение.
· высокая производительность – система должна стабильно и быстро работать при большом количестве пользователей, выдерживая максимальные нагрузки;
· легкость и быстрота внедрения – установка системы должна проходить максимально быстро и автоматизированно, занимая минимальное количество времени у квалифицированных кадров;
· переносимость рабочих окружений – система должна поддерживать простое, быстрое перемещение рабочих окружений пользователей между серверами;
· простота в управлении – система должна иметь интуитивно понятный интерфейс и поддерживать простое управление в консоли;
· открытость – исходный код должен быть открыт, бесплатен и распространяться по лицензии GNU GPL (General public license);
Для реализации данных требований было решено использовать следующие технологии:
· язык С – обладает достаточной гибкостью и позволяет выполнять системные вызовы, необходимые для функционирования системы;
· bash – данная командная оболочка позволяет реализовать запуск необходимых приложений и компонентов необходимых для работы системы;
Устройство системы:

Система виртуализации построена индивидуальных рабочих окружениях (Jail) каждого пользователя. Рабочее окружение – это специальная директория (chroot), которая состоит из:
· файлов, необходимых для запуска и работы пользовательских приложений. С помощью системы разграничения прав доступа данные файлы не доступны пользователю для записи;
· директории для пользовательских файлов, в которую пользователь имеет право записи;
Каждое рабочее окружение пользователя позволяет:
· запускать приложения без привилегий суперпользователя – это необходимо для соблюдения требований безопасности, предусмотренных при проектировании. Приложения не могут производить какие-либо операции за пределами рабочего окружения;
· просматривать список, запущенных в данном рабочем окружении, процессов. При этом отсутствует возможность посмотреть список процессов, запущенных в соседних рабочих окружениях. Это достигается с помощью специальной утилиты, которая создает виртуальную файловую систему proc, в которой хранится информация о процессах, которые запущены в конкретном рабочем окружении;
· использовать планировщик Cron, который необходим для запуска приложений по расписанию. Приложения, запускаемые планировщиком, выполняются в рамках данного рабочего окружения. Это достигается с помощью утилиты, которая ограничивает процесс в рабочем окружении;
· использовать доступ в рабочее окружение по SSH (Secure Shell). Это реализовано с помощью модуля PAM (Подключаемые модули аутентификации) pam_chroot. При этом пользователь оказывается изолирован в пределах собственного рабочего окружения;
Система легковесной виртуализации управляется с помощью скриптов, исполняемых интерпретатором команд bash. На данным момент система позволяет быстро создавать и удалять рабочие окружения, а также переносить рабочие окружения на другие сервера, на которых установлена система легковесной виртуализации.
В качестве перспектив развития проекта можно выделить следующие моменты:
· создание удобного графического интерфейса для операций с рабочими окружениями;
· интеграция с системой распределенного управления хостингом, которая используется на кафедре ИКТ.


