LXC

Vikipedi, özgür ansiklopedi
LXC
Geliştirici(ler)
  • Kernel: Virtuozzo, IBM, Google, Eric Biederman and others
  • Userspace: Daniel Lezcano, Serge Hallyn, Stéphane Graber and others
İlk yayınlanma6 Ağustos 2008 (15 yıl önce) (2008-08-06)[1]
Güncel sürüm6.0.0[2] Bunu Vikiveri'de düzenleyin / 3 Nisan 2024 (22 gün önce) (3 Nisan 2024)
Programlama diliC, Shell script
İşletim sistemiLinux
Platformx86, IA-64, PowerPC, SPARC, Itanium, ARM
TürİS seviyesinde sanallaştırma
LisansGNU LGPL v.2.1 (bazı bileşenler GNU GPL v2 ve BSD lisansı)
Resmî sitesilinuxcontainers.org
Kod deposu Bunu Vikiveri'de düzenleyin

Linux Containers (LXC), tek bir Linux çekirdeği kullanan bir denetim ana bilgisayarında birden çok yalıtılmış Linux sistemini (kapsayıcısı) çalıştırmak için işletim sistemi düzeyinde bir sanallaştırma yöntemidir.

Linux çekirdeği, herhangi bir sanal makinenin başlatılmasına gerek kalmadan kaynakların (CPU, bellek, blok G/Ç, ağ vb.) sınırlandırılmasına ve önceliklendirilmesine olanak tanıyan cgroups işlevselliğini ve ayrıca işlem ağaçları, ağ, kullanıcı kimlikleri ve bağlı dosya sistemleri dahil olmak üzere bir uygulamanın işletim ortamı görünümünün tamamen yalıtılmasına olanak tanıyan ad alanı yalıtımı işlevselliğini sağlar.[3]

LXC, uygulamalar için yalıtılmış bir ortam sağlamak üzere çekirdeğin gruplarını ve yalıtılmış ad alanları desteğini birleştirir. Docker'ın ilk sürümleri, kapsayıcı yürütme sürücüsü olarak LXC kullanıyordu, ancak LXC v0.9'da isteğe bağlı yapılmıştı ve Docker v1.10'da destek kaldırılmıştı.[4][5] Linux kapsayıcılarına yapılan atıflar genellikle [6] Linux üzerinde çalışan Docker kapsayıcılarına atıfta bulunur.

Genel bakış[değiştir | kaynağı değiştir]

LXC, tam teşekküllü bir sanal makine oluşturmak yerine, kendi işlem ve ağ alanına sahip bir sanal ortam aracılığıyla işletim sistemi düzeyinde sanallaştırma sağlar. LXC, 2.6.24 sürümünde yayınlanan Linux çekirdek gruplarının işlevselliğine dayanır. Ayrıca, geliştirilen ve ana hat Linux çekirdeğine entegre edilen diğer ad alanı yalıtım işlevlerine de dayanır.

Güvenlik[değiştir | kaynağı değiştir]

Başlangıçta, LXC konteynerleri OpenVZ gibi diğer işletim sistemi düzeyinde sanallaştırma yöntemleri kadar güvenli değildi: 3.8'den önceki Linux çekirdeklerinde, konuk sistemin kök kullanıcısı, tıpkı chroot hapishanelerinde olduğu gibi, ana sistemde kök ayrıcalıklarıyla keyfi kod çalıştırabilirdi. LXC 1.0 sürümünden itibaren, konteynerleri "ayrıcalıksız konteynerler" kullanarak ana bilgisayarda normal kullanıcılar olarak çalıştırmak mümkündür. Ayrıcalıksız konteynerler donanıma doğrudan erişemedikleri için daha sınırlıdır. Bununla birlikte, ayrıcalıklı konteynerler bile uygun şekilde yapılandırılırsa LXC 1.0 güvenlik modelinde yeterli izolasyon sağlamalıdır.[7][8][8]

Alternatifler[değiştir | kaynağı değiştir]

LXC, Linux üzerindeki OpenVZ ve Linux-VServer gibi diğer işletim sistemi düzeyindeki sanallaştırma teknolojilerinin yanı sıra FreeBSD jails, AIX Workload Partitions ve Solaris Containers gibi diğer işletim sistemlerindeki teknolojilere de benzemektedir. OpenVZ'nin aksine LXC, çekirdek kaynaklarına ek yamalar uygulanmasını gerektirmeden vanilla Linux çekirdeğinde çalışır. 20 Şubat 2014 tarihinde uzun vadeli desteklenen bir sürüm olarak yayınlanan LXC'nin 1. sürümü beş yıl boyunca desteklenmiştir. LXC 3.0 1 Haziran 2023'e kadar; LXC 4.0 1 Haziran 2025'e kadar; LX 5.0 ise 1 Haziran 2027'ye kadar desteklenecektir.[9][10]

LXD[değiştir | kaynağı değiştir]

LXD, alternatif bir Linux konteyner yöneticisidir. LXC üzerine inşa edilmiştir ve daha iyi bir kullanıcı deneyimi sağlamayı amaçlar.[11]

Ayrıca bakınız[değiştir | kaynağı değiştir]

  • Open Container Initiative
  • Container Linux (eski adıyla CoreOS Linux)
  • Docker, yazılım kapsayıcıları içindeki uygulamaların dağıtımını otomatikleştiren bir proje
  • Kapsayıcı yalıtımına dayalı büyük ölçekli bir küme yönetimi platformu olan Apache Mesos
  • İşletim sistemi düzeyinde sanallaştırma uygulamaları
  • Proxmox Virtual Environment, LXC kapsayıcılarını ve KVM'yi destekleyen açık kaynaklı bir sunucu sanallaştırma yönetimi platformu
  • Anbox, Android uygulamalarını diğer Linux dağıtımlarında yürütmek için LXC'yi kullanır

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ "LXC - Linux Containers". linuxcontainers.org. 10 Kasım 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Kasım 2014. 
  2. ^ "Release v6.0.0". 3 Nisan 2024. Erişim tarihi: 11 Nisan 2024. 
  3. ^ Rami Rosen (May 2013). "Resource management: Linux kernel namespaces and cgroups" (PDF). cs.ucsb.edu. 12 Nisan 2016 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 11 Şubat 2015. 
  4. ^ "Docker 0.9: introducing execution drivers and libcontainer - Docker Blog". Docker Blog (İngilizce). 10 Mart 2014. 5 Ağustos 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Mayıs 2018. 
  5. ^ "Docker Engine release notes - 1.10.0 (2016-02-04)". 4 Şubat 2016. 19 Mayıs 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ekim 2020. 
  6. ^ Petros Koutoupis (27 Ağustos 2018). "Everything You Need to Know about Linux Containers, Part II: Working with Linux Containers (LXC) | Linux Journal". www.linuxjournal.com. 11 Mayıs 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Temmuz 2021. 
  7. ^ "Evading from linux containers". 2011. 9 Ocak 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Şubat 2014.  Yazar |ad1= eksik |soyadı1= (yardım)
  8. ^ a b "LXC 1.0: Security features [6/10]". 1 Ocak 2014. 7 Mayıs 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Şubat 2014. However, at least in Ubuntu, our default containers ship with what we think is a pretty good configuration of both the cgroup access and an extensive apparmor profile which prevents all attacks that we are aware of. [...] LXC is no longer running as root so even if an attacker manages to escape the container, he’d find himself having the privileges of a regular user on the host  Yazar |ad1= eksik |soyadı1= (yardım)
  9. ^ "LXC 1.0: Your first Ubuntu container". Stgraber.org. 20 Aralık 2013. 27 Mayıs 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 23 Şubat 2014.  Yazar |ad1= eksik |soyadı1= (yardım)
  10. ^ "Linux Containers - LXC". linuxcontainers.org. 18 Kasım 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Şubat 2023. 
  11. ^ "Linux Containers - LXD - Introduction". linuxcontainers.org. 6 Mayıs 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 14 Nisan 2020.