Linux-nimiavaruudet

From Wikipedia, the free encyclopedia

Remove ads
Remove ads

Linux-nimiavaruudet (engl. Linux namespaces, user namespaces) on Linux-ytimen ominaisuus, jolla voidaan jakaa samalla tietokoneella olevat resurssit toisilleen näkymättömiin alueisiin eli nimiavaruuksiin.[1] Globaalit järjestelmän resurssit voidaan abstraktoida siten, että prosesseille näkyy omat erilliset instanssit globaaleista resursseista.[2] Samaan nimiavaruuteen kuuluvat prosessit näkevät resurssit samoin kun taas eri nimiavaruuteen kuuluvat eivät.[2]

Menetelmä vastaa periaatteeltaan Unixin chroot-komennon laajentamista muihin käyttöjärjestelmän hallinnoimiin resursseihin niiden eriyttämiseen.[1] Ominaisuutta käytetään säiliöinnissä jotta eri nimiavaruuksiin sijoitetut sovellukset eivät vaikuta toistensa toimintaan.[1]

Esimerkiksi mitä vain hakemistoa voidaan käyttää juurihakemistona varsinaisen juuren sijaan muuttamatta itse ohjelman toimintaa.[1] Samalla periaatteella prosessit voidaan jakaa osiin, jolloin yhteen osioon kuuluva ei näe eikä voi muokata muiden osioiden prosesseja: kahdessa eri prosessiavaruudessa voi olla samanaikaisesti eri prosessi samalla tunnistenumerolla.[1] Myös muun muassa verkkoliitännät ja muun tyyppiset resurssit voidaan osioida.[1][2][3] Eräät ohjelmat eivät salli useampaa instanssia ohjelmasta, esimerkiksi tiettyä verkkoporttia voi normaalisti kuunnella vain yksi ohjelma kerrallaan.[4] Jakamalla verkkoyhteydet eri nimiavaruuksiin voi eri nimiavaruuksissa olla kaikki portit käytettävissä ja siten ajaa useampaa instanssia ohjelmasta.[4]

Ominaisuuden ensimmäinen toteutus koski mount-nimiavaruutta, joka otettiin mukaan ytimen versiossa 2.4.19 vuonna 2002.[5] Nimiavaruudella eriyttäminen ei tarvitse hypervisor-virtualisointia.[5] Virtualisoinnissa laitteistoa emuloidaan ja sen päällä ajetaan toista käyttöjärjestelmäydintä.[1] Nimiavaruuksien avulla säiliöinnissä ei käytetä laitteistoemulaatiota eikä toista ydintä.[1]

Ominaisuutta on myöhemmin laajennettu käyttäjien nimiavaruuksiin ytimen versiossa 3.8.[6][7]

Omiin nimiavaruuksien osioitavia tyyppejä ovat:[8][9][2]

Lisätietoja Tyyppi, Selite ...

Myös kellonaikojen hallintaan on kehitetty tukea säiliöiden siirtämiseen eri fyysisten tietokoneiden välillä.[12]

Menetelmään on saatu vaikutteita Plan 9 -käyttöjärjestelmän vastaavasta ratkaisusta.[5] Solaris-käyttöjärjestelmässä on vastaava toiminnallisuus nimeltä Zones.[13]

Remove ads

Esimerkki

seuraava komento root-oikeuksin käynnistää komentotulkin, joka ei näe muita prosesseja:

  unshare --fork --pid --mount-proc /bin/bash

Lähteet

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads