Linuxov imenski prostor
Izgled
(Preusmjereno s Linux namespace)
Linuxov imenski prostor[1] (eng. Linux namespace[2][3]), imenski je prostor u operacijskom sustavu Linuxu. Linuxovi imenski prostori (Linux namespaces) koriste se za pokretanje Linuxovih spremnika u okruženju izoliranomu od Linuxa na računalu. Postoji ih nekoliko kategorija:
- Mount (mnt) - imenski prostor koji nadzire točke postavljanja (montiranja). Nakon stvaranja, postavke iz trenutnoga izoliranoga prostora, kopiraju se u novi imenski prostor, s tim da se točke postavljanja stvorene nakon toga ne šire između imenskih prostora. Uporabom zajedničkih podstabala moguće je širiti točke montiranja između imenskih prostora.
- Process ID (pid) - PID pruža procesima (pokrenutim programima) nezavisan skup ID-ova procesa (PID-ova) od inih imenskih prostora. Imenski prostori PID-a ugniježđeni su, što znači da će pokretanjem novoga procesa on imati PID za svaki imenski prostor od trenutnoga prostora, do početnoga imenskoga prostora (PID-a). Stoga, početni PID može vidjeti sve procese, iako s drugačijim PID-ovima s kojima će drugi imenski prostori vidjeti procese. Prvomu procesu stvorenom u PID-u dodjeljuje se njegov identitetski (ID) broj i prima većinu istog posebnog tretmana kao i normalni init proces, ponajviše na način da su podprocesi unutar imenskoga prostora pridruženi njemu. To također znači kako će prekid PID-a prvoga procesa odmah prekinuti sve procese u njegovom PID-u i sve njegove podprocese (sve pokrenute programe).
- Network (net) ili Mrežni imenski prostori virtualiziraju mrežni stog. Prilikom stvaranja mrežnoga imenskoga prostora postoji samo sučelje povratne petlje (eng. loopback). Svako mrežno sučelje (fizičko ili virtualno) prisutno je u točno jednom prostoru i može se premještati između prostora. Svaki imenski prostor imat će privatni skup IP adresa, vlastitu tablicu usmjeravanja, popis socketa, tablicu praćenja veze, vatrozid i druge resurse povezane s mrežom. Uništavanje mrežnoga imenskoga prostora uništava sva virtualna sučelja unutar njega i premješta sva fizička sučelja unutar njega natrag u početni mrežni imenski prostor.
- Interprocess Communication (ipc) - IPC-ovi izoliraju procese od međuprocesne komunikacije u stilu SysV. Ovo sprječava procese u različitim imenskim prostorima IPC-a na uporabu npr.SHM obitelji funkcija za uspostavljanje raspona zajedničke dijeljene pohrane između dvaju procesa. Umjesto toga, svaki će proces moći koristiti iste identifikatore za dijeljenu memorijsku regiju i proizvesti dvije takve različite regije.
- UTS (eng. UNIX Time-Sharing) - mogućuju jednomu sustavu izgled različitih imena poslužitelja (hosts) i domena za različite procese (pokrenute programe). Kada proces stvori novi UTS ime poslužitelja i domena novoga prostora (UTS-a) kopiraju se iz odgovarajućih vrijednosti u UTS-u pozivatelja.
- User ID (user) [UID] ili korisnički imenski prostori značajka su za pružanje izolacije povlastica i razdvajanje identifikacije korisnika u više skupova procesa dostupnih od kernela 3.8. Uz administracijsku pomoć moguće je izgraditi spremnik s prividnim administracijskim pravima bez stvarnoga davanja povišenih povlastica korisničkim procesima. Poput PID-a, UID-ovi su ugniježđeni i svaki novi imenski prostor korisnika smatra se podređenim prostorom korisnika koji ga je stvorio. KIP sadrži tablicu mapiranja koja pretvara korisničke ID-ove s gledišta spremnika u gledište sustava. To omogućava, na primjer, korijenskom (root) korisniku posjedovanje korisničkoga ID-a 0 u spremniku, ali ga sustav za provjere vlasništva zapravo tretira kao korisnički ID 1.400.000. Slična se tablica koristi za preslikavanje skupnih ID-ova i provjere vlasništva.
- Control group (cgroup) Namespace skriva identitet kontrolne skupine koje je proces član. Proces u takvom prostoru, provjeravajući koji je dio kontrolne skupine koji proces, uočava putanju koja je zapravo relativna u odnosu na kontrolnu grupu postavljenu u vrijeme stvaranja, skrivajući svoju pravi položaj i identitet kontrolne skupine. Ova vrsta imenskoga prostora postoji od ožujka 2016. od Linux kernela 4.6.
- Time Namespace ili vremenski imenski prostor omogućuje procesima uočavati različita sustavska vremena na način sličan UTS-u. Predložen je 2018. i postoji od Linux kernela 5.6, koji je objavljen u ožujku 2020.
- Proxmox Virtual Environment
- Hipervizor
- LXC (Linux kontejneri)
- ↑ Horvat, Hrvoje. 6. srpnja 2023. Operativni sustavi i računalne mreže - Linux u primjeni. Hrvoje Horvat. Osijek. str. 924, 1055, 263–269. doi:10.5281/zenodo.8119310. ISBN 978-953-59438-9-1CS1 održavanje: datum i godina (link)
- ↑ Ovens, Steve. The 7 most used Linux namespaces. Enable Sysadmin (engleski). Pristupljeno 30. studenoga 2022.
- ↑ What Are Namespaces and cgroups, and How Do They Work?. NGINX (engleski). 21. srpnja 2021. Pristupljeno 30. studenoga 2022.