Linux-nimiavaruudet

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]

Tyyppi Selite
mountlevyjen, osioiden ja taltioiden liitokset
UTSverkkonimet (koneen nimi, domain-nimi)
IPCprosessien välinen kommunikaatio
Networkverkkolaitteet, pinot, portit
PIDprosessitunnukset
Userkäyttäjä- ja ryhmätunnukset
CgroupsCgroups
timekellonajat[10][11]

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.

Lähteet

  1. Mahmud Ridwan: Separation Anxiety: A Tutorial for Isolating Your System with Linux Namespaces toptal.com. Viitattu 25.11.2017.
  2. NAMESPACES(7) man7.org. Viitattu 14.2.2022. (englanniksi)
  3. Seth Kenlon: Demystifying namespaces and containers in Linux opensource.com. 29.10.2019. Viitattu 14.2.2022. (englanniksi)
  4. Steve Ovens: The 7 most used Linux namespaces redhat.com. 11.1.2021. Viitattu 14.2.2022. (englanniksi)
  5. Rami Rosen: Resource management: Linux kernel Namespaces and cgroups (PDF) haifux.org. toukokuu 2013. Viitattu 25.11.2017.
  6. Kerrisk, Michael: Namespaces in operation, part 5: User namespaces 27.2.2013. LWN.net. Viitattu 25.11.2017.
  7. Kerrisk, Michael: Namespaces in operation, part 1: namespaces overview 4.1.2013. LWN.net. Viitattu 25.11.2017.
  8. Baker, Pam: Understanding and Securing Linux Namespaces 18.10.2016. Linux.com. Viitattu 25.11.2017.
  9. Ubuntu Manpage: Namespaces - overview manpages.ubuntu.com. Arkistoitu 1.12.2017. Viitattu 25.11.2017.
  10. It's Finally Time: The Time Namespace Support Has Been Added To The Linux 5.6 Kernel phoronix.com. 29.1.2020. Viitattu 2.8.2020. (englanniksi)
  11. The Time Namespace Appears To Finally Be On-Deck For The Mainline Linux Kernel phoronix.com. 14.1.2020. Viitattu 2.8.2020. (englanniksi)
  12. Jonathan Corbet: Time namespaces lwn.net. 21.9.2018. Viitattu 25.2.2020. (englanniksi) 
    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.