UML - Számos előnye van. Az egyik legnagyobb előnye a VmWare-rel szemben, hogy free, és kb. 45 másodperc alatt működésre lehet bírni (már ha le vannak töltve a szükséges alkatrészek). Ezt bárki el tudja végezni, nem kell hozzá Linux gurunak lenni.
Mit is jelent pontosan az User Mode Linux (UML)?
Az UML hasonlóan a VmWare-hez, egy "számítógép a számítógépben" dolgot biztosít a felhasználóinak. Segítségével több független Linux rendszert futtathatunk a gépünkön egy időben (a Linux rendszerünkön). A különbség a VmWare és az UML között az, hogy míg a VmWare több különböző OS futtatására is képes, addig az UML kizárólag a Linux kernel futtatását célozza meg.
Hogy miért User Mode Linux a neve? A név magáért beszél. A Linux kernelt az ún. "user space"-ben (felhasználói tér) futtatja. Az UML segítségével több Linux rendszer futhat a számítógépünkön, amelyek önálló filerendszerrel rendelkeznek, és a futtatáshoz nincs szükség "root" felhasználói fiókra. Az UML-ed egy saját világ lehet, konfigurálhatod a saját kerneled, beállíthatod a hálózatod, és minden egyéb dolgot művelhetsz, amit egyébként megtehetnél egy hagyományos módon futó Linux OS-sel. Tulajdonképpen úgy futtathatod az UML kernelt, mint bármely más parancsot, az UML kernel kommunikál a hoszt gép kernelével, módosított parancsokat küld a fő kernelnek. Egyedüli probléma a direkt hardver hozzáférés lehet, de erre is vannak megkerülő megoldások.
Az UML filerendszere jelenleg egy file formájában áll rendelkezésre (UML-enként egy, annyi ahány UML-t futtatsz). Mivel az UML filerendszere teljesen el van különítve a hoszt gép "éles" filerendszerétől, nem kell aggódnod attól, hogy a hoszt gép egészségében maradandó károkat okozol. Bármilyen hibát vétesz, az csak az UML-t érinti, és nem hat ki a hoszt gépre.
Mire is lehet felhasználni az UML-t?
Számos területen lehet használni az UML-t. Ha például programot fejlesztesz, és nem akarod a "beta" állapotú programodat az "éles" rendszeredbe telepíteni, akkor csak felhúzol egy UML-t, és futtatod azon. Szoftver fejlesztésénél nem kell több gépet használni, főleg otthon, nem kell több monitor, monitorswitch, nem fogyaszt a több gép több áramot, stb.Esetleg FTP szervert futtatsz, és nem akarod, hogy a felhasználó elérje a fő gépet? Futtasd az FTP szervert UML-ben, és biztos lehetsz benne, hogy nem fogja elhasználni az összes merevlemez területedet. Félsz a BIND biztonsági hibáitól? Futtasd a BIND-et UML-ben, és nem kell aggódnod, hogy elérik a hoszt gép filerendszerét. Természetesen minél több UML-t futtatsz, annál nagyobb erőforrással kell rendelkezned. Minden egyes UML-lel futtatsz egy virtuális kernelt, plusz a gépednek meg kell hajtania a fő kernelt, programok futnak az UML-e(ke)n, és programok futnak a hoszt gépen is. Ezt nem szabad figyelmen kívül hagyni. A legfontosabb tényező az UML használata során a memória. "RAM-ból sohasem elég" - hangzik az örök mondás. Ez itt fokozottan igaz.
Azért, hogy a gép nem feküdjön ki a több UML használata esetén sem, be lehet korlátozni, hogy az UML szálak mennyi RAM-ot használatnak. Ezt célszerű körültekintően meghatározni. Szerencsére a fő kernel az UML dolgait ugyanúgy ki tudja lapozni, mint bármely memóriarészt, és ezen felül minden egyes UML-nek is be lehet állítani lapozó-területet. Itt is él az általános szabály: a swap területekre ne válaszzunk túl nagy területet, mert csak "teleszemeteli" a rendszer.
Hogyan lehet kipróbálni az UML-t?
Az UML egyelőre még nincs olyan állapotban, hogy komolyabb rendszereket rá lehessen bízni, de számos beta teszter nyúzza folyamatosan. Az UML egyelőre nem része a stabil kernelnek, csak a fejlesztői kernelben található meg (2.5.34-től). Szóval a beüzemeléséhez két lépésre van szükség. Először fel kell telepíteni az UML kernel részét (nem kell aggódni, nem érinti a géped fő kernelét), majd a második lépésben az UML filerendszere kerül telepítésre. A Debian felhasználók könnyű helyzetben vannak:
apt-get install user-mode-linux
(vele együtt telepítésre kerül a uml-utilities csomag is)
Ezzel kész is a kernel-rész telepítése. Amint a kernel telepítés megtörtént, fel kell telepíteni a filerendszer részt is. A filerendszer kiválasztása függhet a disztribúciódtól, számos előre elkészített filerendszert lehet letölteni az UML projekt honlapjáról: http://user-mode-linux.sourceforge.net/. A jelölések a letöltéseknél egyértelműek: "md" a Mandrake-et (www.mandrake.com), rh a Red Hat-et (www.redhat.com), toms a Tom's Linux-ot (www.toms.net/rb/), co a Conectiva-t (www.conectiva.com), és a debian a Debian-t (www.debian.org) jelöli.
A filerendszer snapshotok .bz2 formátumban vannak, ezért a
bunzip2 fileneve
paranccsal ki kell bontani őket. Alapban az UML feltételezi, hogy futtatsz X-et a gépeden. A legegyszerűbben itt tudod kipróbálni az UML-edet. Az indításához nem kell más, mint be kell gépelni az alábbit:
linux ubd0=/elérési/út/ahova/kibontottad/a/root/fst
Ezzel el is kell indulnia az UML-nek. Amint az UML elindul meg fog nyílni egy konzolpár, és az egyiken az üdvözlő képernyőt láthatod. Két login account engedélyezett alapból. Az egyik a "root" (jelszó: root), a másik pedig az "user" névre hallgat (jelszó: user). Ugye nem kell mondanom, hogy az első a password váltás ;-) ? Bár az első bejelentkezéskor a rendszer úgyis erőszakolni fogja a jelszó megváltoztatását, úgyhogy készülj fel. Egy ilyen linux rendszer egyenértékű egy újonnan telepített Linux géppel (kisebb megszorításokkal). Ha mondjuk szoftverfejlesztő vagy, és nincs szükséged a hálózatra, akkor ez pont az, amire szükséged van. Ha kell a hálózat, akkor kicsit többet kell olvasnod hozzá.
Ha a gépeden nincs telepítve X, akkor a futtatáshoz szükséges instrukciókat megtalálod itt. Például, ha az UML-t a hoszt géped első virtuális terminálján akarod futtatni akkor ilyesmit kell gépelned:
linux ubd0=/elérési/út/ahova/kibontottad/a/root/fst
con=tty:/dev/tty1
Hogy is fut (látható, hogy nem kell hozzá "root" account)?
trey@sunshine:~$ linux ubd0=.uml/root_fs_debian2.2_small
Checking for the skas3 patch in the host...not found
Checking for /proc/mm...not found
tracing thread pid = 3962
Linux version 2.4.20-1um (mdz@mizar) (gcc version 3.2.3 20030221 (Debian prerelease)) #1 SMP Fri Feb 28 16:28:07 EST 2003
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: ubd0=.uml/root_fs_debian2.2_small root=/dev/ubd0
Calibrating delay loop... 3469.77 BogoMIPS
Memory: 29104k available
[...]
(none):~# uname -a
Linux (none) 2.4.20-1um #1 SMP Fri Feb 28 16:28:07 EST 2003 i686 unknown

Egyelőre ennyi. A következő részben a hálózatbeállítással folytatjuk.
Felhasznált irodalom:
User Mode Linux HOWTO
User Mode Linux: Coming to a Kernel Near You, Part 1
Kapcsolódó cikkek:
Linux: UML beolvasztva a 2.5-be
Teszteljünk SMP kernel modulokat uniprocesszoros gépen az UML segítségével
Kapcsolódó oldalak:
http://user-mode-linux.sourceforge.net/
Jó szórakozást!