İçeriğe atla

LXC

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 (16 yıl önce) (2008-08-06)[1]
Güncel sürüm6.0.0[2] Bunu Vikiveri'de düzenleyin / 3 Nisan 2024 (6 ay ö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ış

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

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

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

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

  • 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

  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. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">İşletim sistemi</span> bilgisayar donanım kaynaklarını yöneten yazılım

İşletim sistemi ya da işletim dizgesi, bir bilgisayarın donanım kaynaklarını yöneten ve uygulama yazılımlarına hizmet sağlayan yazılımların bir bütünüdür. İşletim sistemleri, bilgisayarın donanımı ile uygulama yazılımları arasında bir köprü görevi görerek kullanıcıların sistemle etkileşim kurmasını sağlar. Öne çıkan örnekler arasında Microsoft Windows, macOS, GNU/Linux dağıtımları, Android ve iOS yer alır.

<span class="mw-page-title-main">Sanal makine</span>

Sanal makine, bilgisayar biliminde programları gerçek bir bilgisayar sistemindeki gibi çalıştıran mekanizmaların yazılım uyarlamasıdır. Sanal Makine, işletim sistemi ile bilgisayar platformu arasında bir sanal ortam yaratır ve bu sanal ortam üzerinde yazılımların çalıştırabilmesine imkân verir.

<span class="mw-page-title-main">Android</span> Mobil işletim sistemi

Android, Google ve Open Handset Alliance tarafından, cep telefonları, tabletler ve televizyonlar için geliştirilmekte olan, Linux tabanlı, özgür ve ücretsiz bir işletim sistemidir. Sistem açık kaynak kodlu olsa da, kodlarının ufak ama çok önemli bir kısmı Google tarafından kapalı tutulmaktadır. Google tarafından ücretsiz sunulmasının sebebi, sistemin daha hızlı ve çabuk gelişmesi, birçok popüler marka tarafından kullanılması ve bu sayede reklamlarının daha fazla kişiye ulaşmasını sağlamaktır. Google, Android sistemi üzerinde çalışan Google Play marketteki oyun ve uygulamalar üzerinde aldığı reklamları yayınlayarak para kazanmaktadır. Android'in desteklenen uygulama uzantısı ".apk"dır.

Bir hiper yönetici veya sanal makine monitörü (VMM), sanal makineleri oluşturan ve çalıştıran bilgisayar yazılımı, bellenim veya donanımdır. Bir hipervizörün bir veya daha fazla sanal makineyi çalıştırdığı bir bilgisayara ana makine adı verilir ve her sanal makineye konuk makinesi adı verilir. Hiper yönetici, konuk işletim sistemlerini sanal işletim platformuyla sunar ve konuk işletim sistemlerinin yürütülmesini yönetir. Çeşitli işletim sistemlerinin birden fazla örneği sanallaştırılmış donanım kaynaklarını paylaşabilir: örneğin, Linux, Windows ve macOS örneklerinin tümü tek bir fiziksel x86 makinede çalışabilir. Konuk işletim sistemleri aynı çekirdeğe sahip farklı Linux dağıtımları gibi kullanıcı alanında farklılık gösterebilse de, bu, tüm örneklerin tek bir çekirdeği paylaşması gereken işletim sistemi düzeyinde sanallaştırma ile çelişir.

Chrome OS, Google tarafından geliştirilen Linux çekirdeğini kullanan, web uygulamaları ile çalışan işletim sistemidir. 7 Temmuz 2009 tarihinde duyurulan Chrome OS, 15 Haziran 2011 tarihinde Chromebook ile piyasaya çıkmıştır. Chrome OS bilinenin aksine özgür yazılım değildir.

Sanallaştırma bilgisayar kaynaklarının kullanıcılardan soyutlanması işlemine verilen isimdir. Bunu yapmak için kullanılan metodlar bilgisayar kaynaklarının paylaştırılmasını veya birleştirilmesini sağlar. Sanallaştırmanın ilk hedefi kullanıcıya bir soyutlama tabakası sunarak kullanıcıyı kaynaklardan soyutlamak. Böylece kullanıcı ve kaynaklar arasına bir mantıki katman eklenmiş oluyor. Bir hiper yönetici veya sanal makine monitörü (VMM), sanal makineleri oluşturan ve çalıştıran bilgisayar yazılımı, bellenim veya donanımdır. Bir hipervizörün bir veya daha fazla sanal makineyi çalıştırdığı bir bilgisayara ana makine adı verilir ve her sanal makineye konuk makinesi adı verilir. Hiper yönetici, konuk işletim sistemlerini sanal bir işletim platformuyla sunar ve konuk işletim sistemlerinin yürütülmesini yönetir. Çeşitli işletim sistemlerine sahip birden fazla aygıt, sanallaştırılmış donanım kaynaklarını paylaşabilir. Örneğin; Linux, Windows ve macOS işletim sistemlerinin tümü, tek bir fiziksel x86 makinede çalışabilir. Konuk işletim sistemleri aynı çekirdeğe sahip farklı Linux dağıtımları gibi kullanıcı alanında farklılık gösterebilse de, bu, tüm örneklerin tek bir çekirdeği paylaşması gereken işletim sistemi düzeyinde sanallaştırma ile çelişir.

Turnkey Linux Sanal Makina Kütüphanesi Debian tabanlı sanal makineler üzerinde amaca yönelik uygulamalar sunan bir projedir. Turnkey uygulamaları normalde sanal makinelerde çalışacak şekilde hazırlanmıştır, ancak gerçek (fiziksel) bilgisayarlara da kurulabilirler.

<span class="mw-page-title-main">Proxmox</span>

Proxmox Virtual Environment ya da Proxmox VE açık kaynaklı bir sanallaştırma ortamıdır. Debian tabanlı bir Linux dağıtımı olup değiştirilmiş bir RHEL çekirdeği kullanır ve sanal makineler ve konteynerlerin dağıtımına ve yönetimine imkân sağlar.

Docker, bir konteynerleştirme teknolojisi olarak tanımlanır ve yazılım uygulamalarının bağımsız ve izole bir ortamda çalıştırılmasını sağlar. Docker, 2013 yılında Docker, Inc. tarafından piyasaya sürülmüştür ve bu tarihten itibaren yazılım geliştirme ve dağıtım süreçlerinde devrim yaratmıştır.

<span class="mw-page-title-main">Google Compute Engine</span> Google Cloudun Sanal Sunucu Hizmeti

Google Compute Engine, Google Cloud'un verdiği bir IaaS hizmetidir. Normal bir hipervizörden farkı host bilgisayarın Google'ın sunucuları olmasıdır. Sunucular özelliklerine göre gruplara ayrılmaktadır.

<span class="mw-page-title-main">Windows Server 2022</span> Microsoftun Windows Ailesinin İşletim Sistemi

Windows Server 2022, Microsoft'un Windows Server işletim sistemi ailesinin son sürümüdür. Diğer Windows Server işletim sistemlerinden farkı Microsoft Edge Chromium ile beraber gelmektedir.

<span class="mw-page-title-main">Calculate Linux</span>

Calculate Linux, bir Linux dağıtımıdır. Gentoo Linux tabanlıdır.

<span class="mw-page-title-main">Sanal Makine Yöneticisi</span>

Bilgi işlemde, sanal yönetici olarak da bilinen Sanal Makine Yöneticisi, Red Hat tarafından GNU Genel Kamu Lisansı altında yayınlanan bir masaüstü sanal makine monitörüdür.

<span class="mw-page-title-main">CBL-Mariner</span>

CBL-Mariner, Microsoft'un geliştirdiği ücretsiz ve açık kaynaklı bir Linux dağıtımıdır. Microsoft Azure hizmetleri için temel konteyner işletim sistemi ve WSL 2'nin grafik bileşenidir.

coLinux olarak kısaltılan Cooperative Linux, Microsoft Windows ve Linux çekirdeğinin aynı makinede aynı anda paralel çalışmasına olanak sağlayan bir yazılımdır.

Kubernetes yazılım dağıtımını, ölçeklendirmeyi ve yönetimini otomatikleştirmek için açık kaynaklı bir yerleştirme düzenleme sistemidir. Google başlangıçta Kubernetes'i tasarladı, ancak artık Cloud Native Computing Foundation projeyi sürdürmektedir.

<span class="mw-page-title-main">Clear Linux OS</span> Intel tarafından hazırlanan Linux dağıtımı

Clear Linux OS, Intel'in 01.org açık kaynak platformunda geliştirilen ve sürdürülen bir Linux dağıtımıdır ve performans ve güvenlik vurgusu ile Intel'in mikroişlemcileri için optimize edilmiştir. Optimizasyonları AMD sistemlerini de etkiler. Clear Linux OS, yuvarlanan bir sürüm modelini takip eder. Clear Linux OS, genel amaçlı bir Linux dağıtımı olarak tasarlanmamıştır; DevOps, AI uygulama geliştirme, bulut bilgi işlem ve kapsayıcılar için BT uzmanları tarafından kullanılmak üzere tasarlanmıştır.

Illumos kısmen ücretsiz ve açık kaynaklı bir Unix işletim sistemidir. Sistem V Sürüm 4 (SVR4) ve Berkeley Yazılım Dağıtımı'na (BSD) dayanan OpenSolaris'e dayanmaktadır. Illumos bir çekirdek, aygıt sürücüleri, sistem kütüphaneleri ve sistem yönetimi için yardımcı yazılımlardan oluşur. Bu çekirdek, Linux çekirdeğinin farklı Linux dağıtımlarında kullanılmasına benzer bir şekilde, birçok farklı açık kaynaklı illumos dağıtımının temelini oluşturmaktadır.

Konteynerleştirme, yazılım uygulamalarının herhangi bir bulut ortamında ya da bulut dışı ortamda, konteynerler adı verilen izole kullanıcı alanlarında türüne veya satıcısına bakılmaksızın çalışabilmesi için birden çok ağ kaynağı üzerinde uygulama düzeyinde sanallaştırılması veya uygulama düzeyinde sanallaştırılmasıdır.

<span class="mw-page-title-main">OpenVZ</span>

OpenVZ, özgür ve açık kaynaklı bir sanallaştırma teknolojisidir. Linux işletim sistemi üzerinde çalışan bu teknoloji, bir fiziksel sunucunun birden fazla sanal özel sunucu (VPS) veya sanal ortam (VE) oluşturmasına olanak tanır. Her bir sanal sunucu, diğerlerinden bağımsız olarak çalışır ve kaynakları paylaşır.