Кіріспе

Виртуализациялау бағдарламалық жасақтамасы

Пайдаланушы режимі Linux (UML) – Linux операциялық жүйесі үшін, Linux ядросының архитектуралық түрлендіріліміне және өзіндік жүйелік шақыру интерфейсіне негізделген виртуализациялау жүйесі. Ол бірнеше виртуалды Linux ядросына негізделген операциялық жүйелерді (қонақтар деп аталады) қалыпты Linux жүйесінде (хост деп аталады) қосымша ретінде іске қосуға мүмкіндік береді. UM архитектурасы үшін компиляцияланған Linux ядросы, басқа Linux ядросының астында процесс ретінде, пайдаланушы кеңістігінде, хост ортасының конфигурациясына немесе тұрақтылығына әсер етпей, іске қосылуы мүмкін. Бұл әдіс пайдаланушыға бір аппараттық құралда көптеген виртуалды Linux машиналарын іске қосуға мүмкіндік береді, бұл әдетте хост ортасының конфигурациясын немесе тұрақтылығын өзгертпей, белгілі бір деңгейде оқшаулауды қамтамасыз етеді, себебі әрбір қонақ – пайдаланушы кеңістігінде процесс ретінде іске қосылатын қарапайым қосымша.

Қолданбалар

UML-ді пайдалану арқылы көптеген мүмкіндіктер ашылады. UML ортасынан желілік қызметтерді іске қосуға болады және UML ортасы жұмыс істейтін негізгі Linux жүйесінен толыққанды оқшауланады. Әкімшілер UML-ді өз компьютерлерінің немесе желілерінің қауіпсіздігін сынауға мүмкіндік беретін honeypots орнату үшін пайдалана алады. UML хост жүйесіне зиян келтірмей жаңа бағдарламалық жасақтаманы сынау және түзету үшін қолданылады. UML сондай-ақ оқыту және зерттеу мақсатында да қолданылуы мүмкін, бұл жоғары деңгейдегі қауіпсіздікпен нақты Linux желілік ортасын ұсынады. UML ортасында хост және қонақ ядроларының нұсқалары сәйкес келуі міндетті емес, сондықтан Linux-тың ең соңғы нұсқасын (bleeding edge) пайдаланушы режимінде, ескі ядросы бар жүйеде сынауға болады. UML ядроны түзетуді бір машинада орындауға да мүмкіндік береді, ал басқа ядроны түзету құралдары (мысалы, kgdb) нөлдік модем кабелімен қосылған екі машинаны талап етеді. Кейбір веб-хостинг провайдерлері нақты арналған серверлерге қарағанда төмен бағамен UML-мен қуатталған виртуалды серверлерді ұсынады. Әрбір клиент өзінің жеке жүйесі сияқты түбірлік (root) кіруге ие, бірақ шындығында бір физикалық компьютер көптеген пайдаланушылар арасында бөліседі. libguestfs 1.24 нұсқасынан бастап QEMU немесе KVM-ді пайдаланудың орнына UML бэкенді қолдайды.

Linux ядросына интеграциялау

UML қонақ қолданбасы (Linux екілік ELF) бастапқыда 2.2.x нұсқасынан жоғары кейбір ядро нұсқаларына жаңырту ретінде қолжетімді болды, ал 2.2.x нұсқасынан жоғары кез келген ядросы бар хост оны желілік режимде (яғни SKAS3 емес) оңай қолдады. Linux 2.6.0 нұсқасынан бастап ол негізгі ядроның бастапқы кодына енгізілді. Хост ядросын жаңартуды қажет етпейтін жеке ядролық адрес кеңістігін (SKAS) іске асыру әдісі пайда болды. Бұл бұрынғы Traced Thread тәсілімен салыстырғанда өнімділікті және қауіпсіздікті арттырады, онда UML-де іске қосылған процестер хосттың көзқарасы бойынша бірдей адрес кеңістігін бөліседі, нәтижесінде UML ішіндегі жад жадты басқару бірлігімен қорғалмайды. Қазіргі SKAS қолданатын UML-ден айырмашылығы, SKAS емес хостта іске қосылған UML-дегі қателік немесе қауіпті бағдарламалық құрал басқа UML процестерінің жадын немесе тіпті UML ядросының жадын оқи алады.

Басқа технологиялармен салыстыру

Пайдаланушы режимі Linux кейбір бәсекелес технологияларға, мысалы Xen және OpenVZ қарағанда нашар өнімділікке ие деп есептеледі. UML-ге x86 виртуализациясын қосу жөніндегі болашақ жұмыстар осы кемшілікті азайтуы мүмкін. Xen-нің (бәсекелес технология) артықшылығы ретінде жиі айтылатыны – жиекке орналасқан жергілікті сақтауды (TLS) қолдауы. Қазіргі кезде соңғы UML ядроларында да бұл мүмкіндік қолдалады. Xen бүкіл машинаны виртуалдыландыруға бағытталған, сондықтан Xen машинасының үстінде жұмыс істейтін барлық жүйелер нағыз виртуалды машиналар болып табылады. UML-де хост машинасы ешқандай жолмен виртуалды емес, тек қонақ жүйелер ғана нағыз виртуалды машиналар болып табылады. Бұл UML қонақтарына хост файлдық жүйелері мен аппараттық құралдарға тікелей қол жеткізуге мүмкіндік береді, мұнда хост каталогын бейнелеу кең таралған (мысалы, →).

Қолдауы бар платформалар

UML бастапқыда x86 процессорлар жиынтығы үшін жасалған, бірақ IA 64 және PowerPC сияқты басқа процессорларға да көшірілген.