❤️Why Linux? | Linux Basics #1
Last updated
Last updated
Linux, DevOps dünyasında Docker, Kubernetes, Ansible gibi temel araçlarla uyumluluğu, esnekliği, performansı ve geniş topluluk desteği nedeniyle büyük bir öneme sahiptir. Bu nedenle, DevOps süreçlerinde Linux kullanımı yaygındır.
Docker: Docker, Linux çekirdeğinin özelliklerini (cgroups, namespaces) kullanarak konteyner oluşturur. Bu nedenle, Docker ilk olarak Linux üzerinde geliştirilmiştir ve en iyi performansı burada sağlar.
2013: Docker'ın ilk sürümü tanıtıldı. O dönemde konteyner teknolojisi yeni bir kavramdı ve Docker, bu teknolojiyi yaygınlaştırarak devrim yarattı.
2016: Docker for Windows piyasaya sürüldü. Docker for Windows, Windows üzerinde Docker konteynerlerini çalıştırabilmek için bir sanal makine (VM) kullanır. Bu sanal makine genellikle Hyper-V veya WSL 2 (Windows Subsystem for Linux 2) üzerinde çalışır. Bu da Docker'ın altında yine bir Linux çekirdeği kullanıldığı anlamına gelir.
Kubernetes: Kubernetes'in control plane bileşenleri (API server, scheduler, controller manager) Linux üzerinde çalışır.
Windows desteği: Kubernetes, worker node'larda Windows desteği sunar. Ancak, control plane bileşenleri Linux üzerinde çalışır. Bu, Kubernetes cluster'ının tam anlamıyla çalışabilmesi için bir Linux tabanlı altyapıya ihtiyaç duyduğunu gösterir.
Ansible, Windows host'larını yönetebilir ancak Ansible kendisi bir Linux veya WSL (Windows Subsystem for Linux) üzerinde çalışmalıdır. Bu, Ansible'ın performans ve uyumluluk açısından en iyi Linux üzerinde çalıştığını gösterir.
Açık Kaynak ve Topluluk Desteği, Linux açık kaynaklı bir işletim sistemi olduğundan geniş bir topluluk ve sürekli gelişim desteğine sahiptir. Bu, sürekli güncellenen ve geliştirilen güvenilir bir altyapı sağlar. Açık kaynaklı olması, kullanıcıların ve şirketlerin ihtiyaçlarına göre özelleştirmeler yapabilmesine imkan tanır.
Performans ve Güvenilirlik: Linux yüksek performanslı ve güvenilir bir işletim sistemidir. Sunucu ortamlarında yaygın olarak tercih edilmesinin sebeplerinden biri de budur. Linux'un sağlam mimarisi ve uzun süreli destek sunan sürümleri, onu güvenilir bir seçenek haline getirir.
Esneklik ve Özelleştirilebilirlik: Linux son derece esnek ve özelleştirilebilir bir yapıya sahiptir. Çeşitli dağıtımlar (distributions) ve minimal kurulum seçenekleri ile kullanıcılar, ihtiyaçlarına uygun bir Linux ortamı oluşturabilirler. Bu esneklik, DevOps araçlarının farklı ortamlarda verimli bir şekilde çalışmasını sağlar.
CLI (Command Line Interface): Linux'un güçlü bir komut satırı arayüzü (CLI) vardır. CLI, sistem yöneticileri ve DevOps mühendisleri için geniş kontrol ve otomasyon imkanları sunar.
Shell, kullanıcıların işletim sistemi ile etkileşime geçmesini sağlayan bir programdır. Shell, kullanıcının komutlarını alır, bu komutları çalıştırır ve sonuçları kullanıcıya geri döner. Shell, bir komut satırı arayüzü (CLI) sunarak kullanıcıların metin tabanlı komutlar aracılığıyla sistemle etkileşimde bulunmasını sağlar.
Bourne Shell (Sh Shell):
Yer: /bin/sh
Özellikler: Bourne Shell, UNIX sistemlerinde kullanılan ilk shell'lerden biridir. Adını geliştiricisi Stephen Bourne'dan alır. Basit ve hızlıdır, özellikle script yazımı için kullanılır.
Kullanım Alanı: Tarihsel olarak birçok UNIX ve Linux sisteminde varsayılan shell olarak kullanılmıştır.
C Shell (csh veya tcsh):
Yer: /bin/csh veya /bin/tcsh
Özellikler: C Shell, C programlama diline benzer bir söz dizimi sunar. Tcsh, csh'nin geliştirilmiş bir versiyonudur ve ek özellikler içerir (komut tamamlama gibi).
Kullanım Alanı: Kullanıcı dostu komut satırı deneyimi sunar ve genellikle programcılar tarafından tercih edilir.
Z Shell (zsh):
Yer: /bin/zsh
Özellikler: Z Shell, zengin özelliklere sahip bir shell'dir. Bourne Shell ve diğer shell'lerden birçok özelliği bir araya getirir. Gelişmiş komut tamamlama, işlevsellik ve özelleştirme imkanları sunar.
Kullanım Alanı: Güçlü özellikleri ve geniş özelleştirme imkanları nedeniyle birçok ileri düzey kullanıcı ve sistem yöneticisi tarafından tercih edilir.
Bourne Again Shell (bash):
Yer: /bin/bash
Özellikler: Bash, GNU Projesi tarafından geliştirilen bir shell'dir ve Bourne Shell'in birçok geliştirilmiş özelliğini içerir. Kapsamlı komut seti ve script yazımı için gelişmiş yetenekler sunar.
Kullanım Alanı: Linux dağıtımlarında en yaygın kullanılan shell'dir. Hem günlük kullanım hem de script yazımı için idealdir.
Her shell, farklı kullanıcı ihtiyaçlarını ve kullanım senaryolarını hedefler. Bazıları daha basit ve hızlı iken, bazıları daha gelişmiş özellikler ve özelleştirme imkanları sunar. Kullanıcılar ve sistem yöneticileri, ihtiyaçlarına ve tercihlerine göre uygun shell'i seçebilirler.
Terminal, CLI sağlar; shell ise bu CLI'da çalıştırdığınız programdır.