Лучшие “Виртуальные машини” с открытым исходным кодом для Linux

boxes min 1 696x375 1

Виртуализация в вычислительной технике подразумевает создание виртуальных машин, хранилищ, аппаратных средств, ресурсов компьютерной сети или операционной системы. На одном компьютере можно создать множество экземпляров данной операционной системы. Эти экземпляры называются виртуальными машинами. Программное обеспечение для виртуализации стало популярным, поскольку оно значительно расширяет возможности системы. Виртуализация наиболее предпочтительна и применяется для облачных вычислений.

Сообщество Linux создало несколько инструментов виртуализации или Virt tools, таких как QEMU, KVM, Libvert или libguestfs, которые служат основой для создания программного обеспечения виртуализации с открытым исходным кодом. В статье будет рассмотрено несколько программ виртуализации с открытым исходным кодом, таких как Oracle VM VirtualBox, Linux-KVM, виртуализация Redhat, Microsoft Hyper-V, Xen Project, oVirt, а также Boxes в Fedora.

Концепция виртуализации

Виртуализация создает слой абстракции над физическим оборудованием для создания виртуальной вычислительной системы, известной как виртуальные машины (ВМ). Это позволяет пользователю или предприятию запускать несколько виртуальных компьютеров и операционных систем на одном физическом сервере. По сути, основное преимущество виртуализации заключается в более эффективном использовании физического компьютерного оборудования.

Виртуальная машина

Виртуальная машина (ВМ) – это виртуальное представление физического компьютера. Вы можете создать несколько виртуальных машин, каждая с операционной системой и приложениями на одном физическом устройстве. Виртуальная машина не может напрямую взаимодействовать с физическим компьютером. Однако вы можете использовать гипервизор (легкий программный уровень) для управления физическим оборудованием.

Гипервизор

Гипервизор – это тонкий программный слой, который позволяет нескольким операционным системам совместно использовать физические вычислительные ресурсы и работать рядом друг с другом. Гипервизор выделяет каждой виртуальной машине часть базовых вычислительных ресурсов, таких как память и хранилище, предотвращая тем самым их взаимодействие.

Лучшие программы виртуализации с открытым исходным кодом для Linux

Для обычных пользователей

1. Oracle VirtualBox

virtualbox min 696x325 1
virtualbox

VirtualBox был основан в 2007 году корпорацией Oracle. VirtualBox – это мощное, надежное, кроссплатформенное программное обеспечение для виртуализации с открытым исходным кодом, которое поддерживает архитектуры x86 и AMD64/Intel64. VirtualBox можно запускать без аппаратной виртуализации. Таким образом, он эффективно работает на любой системе или архитектуре без присутствия технологии Intel VT-X или AMD-V.

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

VirtualBox может работать с несколькими ОС, включая большинство операционных систем Windows (NT 4.0, 2000, XP, Vista, Server 2003, Windows 7, 8, 10), Linux 2.4, 2.6, 3.x и 4.x, DOS/Windows 3.x, OpenBSD, Solaris, OpenSolaris и OS/2.

Главные особенности

  • Кросс-платформенный, поддерживает различные платформы, такие как Mac, Windows, Solaris и Linux.
  • Поддерживает функцию перетаскивания.
  • Поддерживает бесшовный режим, общие папки и буферы обмена.
  • Поддерживает четыре операционные системы в качестве хоста.
  • Поддержка SMP, телепортации.
  • Поддерживает телепортацию, миграцию и переключение виртуальных машин в реальном времени между несколькими физическими хостами и облаком.
  • Позволяет выполнять без аппаратной виртуализации, что исключает требование технологий Intel VT-X или AMD-V.
  • Поддерживает публичные API (Python, XPCOM, SOAP, Java) для управления конфигурацией и исполнением ВМ.

VirtualBox находится в постоянном развитии со стороны сообщества с частыми выпусками, исправлениями ошибок и новыми возможностями. Проект основан на сообществе, в то время как Oracle обеспечивает его качество на уровне предприятия.

Установка VirtualBox

Ubuntu

sudo apt-get update
sudo apt-get install virtualbox

#Установка пакета расширений VirtualBox

sudo apt-get install virtualbox-ext-pack

Fedora 34

#Установка инструментов разработки и зависимостей

sudo dnf -y install @development-tools
sudo dnf -y install kernel-headers kernel-devel dkms elfutils-libelf-devel qt5-qtx11extras

#Добавьте RPM-репозиторий VirtualBox

cat <<EOF | sudo tee /etc/yum.repos.d/virtualbox.repo
[virtualbox]
name=Fedora $releasever - $basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/fedora/34/\$basearch
включено=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc
EOF

#Импорт GPG ключа VirtualBox

sudo dnf search virtualbox

#Установка VirtualBox 6

sudo dnf install VirtualBox-6.1

#Добавьте пользователя в группу vboxusers

sudo usermod -a -G vboxusers $USER
newgrp vboxusers

2. Linux KVM

kvm logo square 1
kvm

Kernel-based Virtual Machine (KVM) – это инструмент виртуализации, встроенный в операционную систему Linux и предназначенный для компьютеров x86. Это программное обеспечение для виртуализации с открытым исходным кодом, разработанное сообществом Linux Kernel Community. KVM была анонсирована в 2006 году и включена в ядро Linux начиная с версии Linux 2.6.20.

KVM превращает ядро Linux в гипервизор, используя загружаемое ядро под названием KVM.ko, которое позволяет виртуальным машинам получить прямой доступ к базовым аппаратным ресурсам. Каждая виртуальная машина реализуется как процесс Linux, запланированный планировщиком Linux, с выделенным виртуальным оборудованием, таким как процессор(ы), графический адаптер, сетевая карта, память и диски.

Главные особенности

  • SELinux и (sVirt) безопасная виртуализация, обеспечивающая улучшенную изоляцию безопасности ВМ, которая позволяет обеспечить обязательный контроль доступа (MAC) для гостевых ВМ.
  • Поддерживает использование любого хранилища, поддерживаемого Linux, например, локальных дисков и сетевых хранилищ (NAS).
  • Поддерживает горячее подключение виртуальных процессоров.
  • Поддерживается неравномерная балансировка доступа к памяти и объединение одинаковых страниц ядра для эффективного управления памятью.
  • Поддерживается телепортация и динамическое управление памятью.
  • Поддерживается живая миграция, позволяющая перемещать работающую виртуальную машину между физическими хостами без прерывания работы.
  • Поддерживается ограничение запросов дискового ввода-вывода от виртуальных машин к хост-машинам.
  • Позволяет выполнять несколько ВМ на немодифицированных образах Linux или Windows после установки, где каждая ВМ имеет виртуализированное оборудование, сетевую карту, графический адаптер и диск.

KVM обеспечивает достойную интеграцию с ОС.

ВМ в KVM – это процесс Linux, которым ядро управляет и планирует с помощью групп управления, планировщика, расширений реального времени и сетевых пространств имен.
Расширения реального времени позволяют приложениям на базе ВМ работать с меньшей задержкой и с более высоким приоритетом по сравнению с “голым металлом”.
KVM является частью сообщества Linux и постоянно предоставляет новые функции и исправления ошибок для своих пользователей Linux. KVM достаточно универсален, чтобы вручную управлять несколькими виртуальными машинами на одной рабочей станции без использования инструмента управления. Однако для крупных развертываний может потребоваться такой инструмент, как Red Hat Virtualization, чтобы упростить и оптимизировать распределение ресурсов, операции и улучшить анализ данных.

Установка KVM в Ubuntu

#Установите минимальную конфигурацию QEMU и KVM

apt-get install qemu-system libvirt-clients libvirt-daemon-system

#Установите QEMU и KVM на сервер без дополнительных графических пакетов

apt-get install --no-install-recommends qemu-system libvirt-clients libvirt-daemon-system

#Добавьте вашего пользователя в группу libvirt

adduser <ваш пользователь> libvirt

3. GNOME Boxes

boxes min 1 696x375 1
boxes

GNOME Boxes поставляется в качестве виртуальной машины по умолчанию при установке Fedora. GNOME Boxes прост в использовании и может сделать сложные операции виртуализации очень простыми в Linux. В целом, Gnome Boxes менее известен, но является интерфейсом для Qemu, KVM и libvirt. GNOME Boxes – одно из самых эффективных решений для виртуальных машин для Linux, Windows или BSD. В нем есть мастер быстрой настройки, что делает его очень простым в использовании даже для начинающих пользователей Linux. Его базовый внешний вид может быть не самым лучшим. Тем не менее, он может справиться с конкурентными функциями и не уступает большинству виртуальных машин.

Главные особенности

  • Он может загружать образ ОС (операционной системы) непосредственно с URL-адреса.
  • Он обнаруживает ОС и выделяет достаточное количество оперативной памяти и дискового пространства.
  • Имеет надежный интерфейс командной строки (CLI), который пригодится опытным пользователям ВМ.
  • В нем есть функция клонирования, которая позволяет пользователям мгновенно создавать копии существующих виртуальных машин.

GNOME Boxes – один из лучших вариантов для пользователей Linux, которым необходимо быстро выполнять сложные задачи. Это мой выбор для быстрого и простого развертывания. Однако иногда Gnome Boxes может потребовать много времени для доступа к образу диска или даже медленно возвращать мышь в хост ОС. Я не обращаю внимания на эти недостатки из-за простоты настройки. Более того, его виртуальные машины обычно работают так же быстро, как и основная система, и вы можете не заметить никакой разницы в производительности.

Gnome Boxes усовершенствовал виртуализацию, обеспечив свободу программного обеспечения, и его стоит установить, даже если Gnome не является вашей обычной средой рабочего стола.

4. Microsoft Hyper-V

hyper v manager min 696x405 1
hyper v manager

Microsoft Hyper-V – это передовое средство виртуализации, которое разрабатывается с 2008 года. Это кроссплатформенное программное обеспечение для виртуализации, которое поддерживает как системы Microsoft, так и Linux. Первоначально Microsoft Hyper-V не выпускался как проект с открытым исходным кодом и не поддерживал Linux до 2019 года, когда Microsoft выпустила драйверы Linux с открытым исходным кодом для Hyper-V.

Hyper-V позволяет запускать каждую виртуальную машину (ВМ) в своем собственном пространстве, что предотвращает влияние сбоя на другие рабочие нагрузки, а также управляет доступом к сервисам между различными людьми и системами. Гипервизор состоит из различных компонентов, таких как гипервизор Windows, Hyper-V Virtual Machine Management Service, поставщик услуг виртуализации (VSP), поставщик инструментов управления виртуализацией Windows Management Instrumentation (WMI), драйвер виртуальной инфраструктуры (VID) и шина виртуальных машин (Vmbus) для эффективного управления взаимодействием между оборудованием и ВМ.

Главные особенности

  • Он поддерживает такие улучшения экранированных виртуальных машин, как совместимость с Linux и Virtual Machine Encrypted Networks.
  • Поддерживается вложенная виртуализация и сворачивание кластера, динамическая многопоточная очередь виртуальных машин.
  • Поддерживается vSwitch Receive Segment Coalescing, поддержка постоянной памяти и расширенные сессии.
  • Поддерживается живая миграция, позволяющая перемещать работающие виртуальные машины на другие хосты.
  • Поддерживается миграция, импорт и экспорт хранилищ, что упрощает распространение ВМ.
  • Улучшенный мониторинг использования ресурсов центрального процессора хоста.

В нем имеются улучшенные компоненты безопасности, такие как безопасная загрузка, шифрование BitLocker, виртуальный модуль Trusted Platform Module (vTPM) для безопасного хранения ключей и служба Host Guardian Service для проверки хостов и предотвращения несанкционированного доступа.

Для эффективного управления виртуальными машинами под управлением дистрибутивов Linux необходимо установить и активировать Hyper-V Linux Integration Services вручную. Hyper-V LIS состоит из двух типов компонентов: драйверов и служб. Драйверы повышают производительность виртуальных машин Linux, в то время как службы предназначены для выполнения определенной работы. Службы интеграции Linux позволят вам использовать такие функции, как живая миграция, VLAN Tagging and Trunking, Symmetric multiprocessing (SMP), Static IP Injection. Вы также сможете воспользоваться функцией Live Virtual Machine Backup и возможностью выполнять горячее удаление/добавление памяти с помощью Dynamic Memory.

Microsoft поддерживает следующие дистрибутивы Linux, работающие в качестве виртуальной машины: Red Hat Enterprise Linux 5.2-5.11, 6.0-6.10, 7.0-7.6 64-bit, CentOS 5.2-5.11, 6.0-6.10, 7.0-7.6 64-bit, и Oracle Linux 6.4-6.10, 7.0-7.6. Проект Hyper-V постоянно развивается, и компания Microsoft добавляет новые функции для повышения общей эффективности, производительности и надежности. Вы также можете использовать Hyper-V с инструментами управления, такими как Hyper-V Manager, Failover Cluster Manager, System Center Virtual Machine Manager (SCVMM) и System Center Operations Manager (SCOM). Кроме того, вы можете использовать Powershell, который обеспечивает больший контроль и более прост в использовании.

Прочтите:  Готовы принять вызов? Попробуйте эти «продвинутые» дистрибутивы Linux [не основанные на Debian, Arch или Red Hat]

Для облачных систем

1. Проект Xen

xen min
xen

Проект Xen – это программное обеспечение виртуализации с открытым исходным кодом для Linux. Он был основан Linux Foundation в 2003 году, а также получил поддержку от Intel. Xen работает на основе гипервизора Xen, адаптированного для модифицированных и немодифицированных гостей на платформах Linux и Windows. Это пустой гипервизор, использующий микроядро для предоставления услуг, позволяющих нескольким ОС одновременно работать на одном компьютерном оборудовании.

Гипервизор Xen существует уже некоторое время и является одним из наиболее эффективных программ виртуализации в сообществе Linux. Он используется в качестве основы для многих открытых и коммерческих приложений, таких как виртуализация серверов, виртуализация рабочих станций, инфраструктура как услуга (IaaS), приложения для обеспечения безопасности, встроенные и аппаратные устройства, а также автомобильные проекты.

Главные особенности

  • Настраиваемая и гибкая архитектура поддерживает различные облачные платформы и гостевые операционные системы.
  • Поддерживается виртуализация архитектур x86 IA64, ARM.
  • Он обладает улучшенной балансировкой рабочих нагрузок, которая учитывает данные процессора, памяти, дискового ввода-вывода и сетевого ввода-вывода для оптимизации производительности.
  • Мониторинг производительности в реальном времени для повышения производительности в Linux и Windows.
  • Он поддерживает Citrix Storage Link – уникальную функцию интеграции хранилищ.
  • Он обладает расширенными функциями безопасности, такими как конфигурация/система сборки ядра Linux и интроспекция виртуальных машин.
  • Поддерживается поддержка многоядерных процессоров, централизованное управление несколькими серверами.
  • Он поддерживает живую миграцию, (V2V) преобразование виртуальных машин в виртуальные и (P2V) преобразование физических серверов в виртуальные машины.

Проект Xen является стандартом по умолчанию в гипервизорах Linux и обеспечивает безопасную, эффективную и надежную платформу виртуализации. Он обеспечивает и поддерживает некоторые из крупнейших облачных предприятий, таких как Amazon Web Services, Verizon Cloud, Public Cloud, Rackspace и многие другие. Гипервизор Xen идеально подходит для пользователей или организаций, желающих повысить коэффициент использования серверов, снизить сложность управления серверными фермами и уменьшить первоначальные затраты на инфраструктуру. Однако есть одна оговорка: Xen полагается на решения сторонних производителей для драйверов оборудования, резервного копирования и восстановления, отказоустойчивости и хранения данных.

2. oVirt

ovirt min
ovirt

Проект oVirt (Open Virtual Datacenter) – это бесплатная платформа управления виртуализацией с открытым исходным кодом, основанная компанией Red Hat в качестве проекта сообщества. Проект разработан для ОС Linux и является лучшим вариантом для поддержки дистрибутивов Linux. Он обладает простым и удобным веб-интерфейсом, позволяющим централизованно управлять виртуальными машинами, хранилищами, вычислительными и сетевыми ресурсами. Его основные компоненты включают oVirt-engine, oVirt-engine-GUI, SDK, CLI, VDSM, oVirt-DWH и oVirt-guest-agent.

Главные особенности

  • Поддерживает KVM на архитектурах x86-64 и PowerPC64.
  • В нем реализовано расширенное управление сетью с помощью IP-адресов для настройки интерфейсов, шлюзов и масок подсети.
  • Механизм oVirt предоставляет централизованный механизм управления виртуализацией корпоративного уровня с интерфейсами программирования и графической консолью администрирования.
  • Он обеспечивает высокую доступность и телепортацию, включая живую миграцию, возможность создания живых снимков и клонирование виртуальных машин из снимков.
  • Расширенные возможности аварийного восстановления позволяют восстановить систему в случае системного сбоя.
  • Его самодостаточный механизм и домены хранения GlusterFS позволяют плавно расширять ресурсы, что упрощает и оптимизирует развертывание.

Система обладает повышенной сетевой производительностью для виртуализации настольных компьютеров, что позволяет управлять средами WAN с более высокой задержкой и низкой пропускной способностью.
Она поддерживает другие внутренние устройства хранения данных, такие как NFS, FC, SCSI и POSIX-совместимые FS.

oVirt поддерживает (rsyslog) удаленное протоколирование и (remote kdump) удаленный анализ аварий.
Он обладает улучшенными функциями безопасности благодаря SELinux и sVirt.

Проект находится в стадии постоянного развития с обещанием разработки поддержки архитектуры ARM. Проект также предоставляет oVirt Node, которая является специализированной легковесной ОС на базе CentOS. oVirt Node разработана как гипервизор, предоставляющий расширенный интерфейс управления для поддержки API.

3. Red Hat Virtualization (RHV)

sm.red hat enterprise linux
sm.red hat enterprise linux

 

Redhat Virtualization – это виртуальная машина с улучшенным KVM (Kernel Virtual Machine) и расширенными возможностями, подходящими для Enterprise Server. Она не требует ОС хоста для запуска и может быть развернута на пустой среде для создания множества отдельных ВМ в соответствии с вашими требованиями.

Лучшие возможности

  • Он оснащен расширенными инструментами управления для управления сотнями VMS.
  • Она очень хорошо масштабируется, причем масштабируемость хоста поддерживает до 288 логических CPU и 12 ТБ на хост, а масштабируемость гостя – до 6 ТБ vRAM и 240 vCPU на гостевую ВМ.
  • Red Hat Virtualization Manager (RHVM) обеспечивает централизованное управление физическими и логическими ресурсами в виртуализированной среде.
  • Он легко интегрируется с другими проектами Linux и проектами с открытым исходным кодом.
  • RHV имеет улучшенные функции безопасности, такие как Red Hat Secure Virtualization (sVirt) и другие SELinux, которые обеспечивают изоляцию.
  • В ней реализована функция KSM memory overcommitment, которая позволяет определить в виртуальных машинах больше оперативной памяти, чем доступно на физическом хосте.
  • Он поддерживает Red Hat Enterprise Linux Atomic Host в качестве гостевой ОС, что позволяет запускать контейнеры на виртуальных машинах Atomic Host.

RHV совместим с облачными программными стеками, такими как Red Hat Cloud Infrastructure, Red Hat CloudForms для управления несколькими облаками, Red Hat Satellite для управления инфраструктурой, Red Hat OpenStack для облачного стека и Red Hat Insights для предиктивной аналитики.

В нем реализована повышенная безопасность виртуальных машин и гипервизоров с помощью SELinux, sVirt и обязательного контроля доступа (MAC).

Она поддерживает (NUMA) неравномерный доступ к памяти, что позволяет пользователям развертывать большие гостевые рабочие нагрузки при минимизации накладных расходов на доступ к физической памяти.

Одна оговорка – виртуализация Redhat также предоставляет платные ВМ, подходящие для сред корпоративного уровня. Цена зависит от выбранного вами плана поддержки.

4. ProxMox

proxmox logo standard hex 400px min
proxmox

ProxMox – это основанное на Debian решение для управления виртуализацией серверов с открытым исходным кодом для запуска различных виртуальных машин. Платформа виртуализации может управлять KVM (Kernel-based Virtual Machine) для виртуальных машин и LXC для контейнеров. Она отличается простым процессом установки, который запускает веб-интерфейс для простого управления и настройки.

Главные особенности

  • В проекте используются технологии Linux OpenVZ и KVM для управления виртуальными частными серверами в изолированной серверной среде одного физического сервера.
  • Проект поддерживает новейшие чипсеты Intel и AMD.
  • Имеет центральный веб-интерфейс на основе JavaScript-фреймворка ExtJS, доступ к которому возможен из любого современного браузера.
  • В проекте используется (pmxcfs) Proxmox Cluster File System – файловая система, управляемая базой данных, которая позволяет синхронизировать конфигурационные файлы по всему кластеру.
  • Возможность живой/онлайн миграции, позволяющая перемещать работающие виртуальные машины с одного узла кластера на другой без простоя.
  • Интерфейс командной строки для управления компонентами виртуальной среды с интеллектуальным завершением вкладок.
  • В нем реализована гибкая модель хранения, при которой образы ВМ могут храниться на одном или нескольких локальных устройствах хранения или в общих хранилищах, таких как SA и NFS.
  • Он использует RESTful API и JSON в качестве основного формата данных, что позволяет быстро и легко интегрировать сторонние инструменты управления и пользовательские среды хостинга.
  • Он имеет встроенный брандмауэр, который полностью настраивается, позволяя выполнять сложные конфигурации через графический интерфейс или CLI. Вы можете настроить правила брандмауэра для отдельных ВМ, контейнеров или всех хостов в кластере с помощью таких функций, как макросы брандмауэра, группы безопасности, наборы IP-адресов и псевдонимы.

Почему вы должны виртуализировать свою инфраструктуру

Виртуализация может повысить масштабируемость, гибкость и подвижность, обеспечивая при этом значительную экономию средств. Вы также получите большую мобильность рабочих нагрузок, улучшенную производительность, доступность ресурсов и автоматизацию операций. По сути, это упрощает управление вычислительными ресурсами и снижает затраты на владение и эксплуатацию.

Снижение первоначальных капитальных затрат и эксплуатационных расходов: Виртуализированные среды более экономичны. Вы сможете потреблять меньше физических клиентов, что поможет вам значительно сократить первоначальные инвестиции в оборудование. Невиртуализированная среда может быть неэффективной, поскольку вычислительные ресурсы могут простаивать и не использоваться для других приложений на сервере.

Минимизация или исключение простоев: В случае простоя физический сервер требует присутствия человека для его замены или починки, что может занять несколько часов, значительно снижая производительность. В отличие от этого, виртуализированную среду легко создать и развернуть. Кроме того, она позволяет системным администраторам реплицировать и восстанавливать пострадавшую виртуальную машину, что значительно повышает отказоустойчивость.

Повышение эффективности и производительности: Виртуальные среды позволяют тратить меньше времени на обслуживание физического оборудования или инфраструктуры. Вы можете легко устанавливать, обновлять и поддерживать среду для всех виртуальных машин в виртуальной среде на сервере вместо того, чтобы управлять ею от сервера к серверу.

Она обеспечивает безопасность и изоляцию от сбоев на аппаратном уровне.

Вы можете сохранить все состояние виртуальной машины в файл.

Вы можете перенести или предоставить любую виртуальную машину на любой физический сервер.

Виртуализация сохраняет общую производительность благодаря расширенному контролю ресурсов.

Разработчики могут легко управлять и контролировать среду разработки, тестирования или производства с помощью виртуальной машины.

Станьте более экологичными: Виртуализированные среды позволяют сократить количество физических серверов, что снижает энергопотребление. По сути, это снижает затраты на электроэнергию и в целом уменьшает “углеродный след” вашей инфраструктуры. Мы все заслуживаем экологически чистой среды.

Подведение итогов

В статье рассматриваются некоторые из лучших программ виртуализации с открытым исходным кодом, такие как XenProject, VirtualBox, Microsoft Hyper-V, Linux KVM и oVirt. Виртуализация вашей архитектуры может повысить масштабируемость, маневренность и гибкость, обеспечивая при этом значительную экономию средств. Разработчики также могут наслаждаться большей мобильностью рабочей нагрузки и контролировать свои среды разработки, тестирования или производства. Более того, она позволяет сократить количество физических серверов, снижая энергопотребление и делая вашу организацию экологически чистым предприятием. По сути, виртуализация упрощает управление вычислительными ресурсами и требует меньше затрат.

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

Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
LinuxCool.net