Temeller

Linux nedir: çekirdek, dağıtımlar ve dosya sistemi basit anlatımla

Güncellendi: · Skillaria.Top

Linux, işletim sisteminin çekirdeğidir; işlemciyi, belleği, diskleri ve ağı yöneten yazılımdır. Çekirdek; kabuk, yardımcı programlar, paket yöneticisi ve başlatma sistemiyle birlikte Ubuntu, Debian veya Fedora gibi dağıtımları oluşturur. Sunucuların, konteynerlerin ve bulut makinelerinin çoğu Linux üzerinde çalıştığı için Linux ile çalışmak DevOps mühendisinin ve sistem yöneticisinin temel becerisidir.

Linux, açık kaynaklı bir işletim sistemi çekirdeğidir ve etrafında sunucu, masaüstü ve gömülü sistemler inşa edilir. «Linux sunucusu» dendiğinde genellikle tek bir program değil, bir dağıtım kastedilir: çekirdek ile birlikte yardımcı programlar, kütüphaneler, paket yöneticisi ve başlatma sistemi. Bu yazıda Linux'un gerçekte ne olduğunu, parçalarının nasıl bir araya geldiğini ve her DevOps mühendisinin neden buna ihtiyaç duyduğunu anlatıyoruz.

Linux bir çekirdektir, tüm sistem değil

Kesin anlamda Linux yalnızca çekirdektir (kernel). Çekirdek, önyükleyiciden sonra ilk çalışan ve bilgisayar açık olduğu sürece bellekte kalan programdır. İşlemci zamanını süreçler arasında paylaştırır, belleği tahsis eder, sürücüler aracılığıyla disk ve ağ kartlarıyla konuşur ve erişim haklarını denetler.

Sıradan programlar donanıma doğrudan dokunmaz. Bir editör dosyayı kaydettiğinde sistem çağrısı (open, write, close) yapar ve verinin diskin hangi bloğuna yazılacağına, sürecin buna izni olup olmadığına çekirdek karar verir. Bu ayrım sistemi kararlı kılar: çöken bir program tüm bilgisayarı düşürmez.

Çekirdek sürümünü tek bir komutla görebilirsiniz:

$ uname -r
6.8.0-45-generic

Çekirdeği 1991'de Linus Torvalds yazdı ve o tarihten beri açık biçimde geliştiriliyor: kaynak kodu GNU GPL sürüm 2 lisansıyla dağıtılır; herkes onu okuyabilir, değiştirebilir ve aynı koşullarla paylaşabilir.

Linux dağıtımı nedir

Tek başına çekirdek yetmez: komut yazmak için bir kabuk, dosyalar için yardımcı programlar, kütüphaneler ve program kurmak için bir araç gerekir. Temel yardımcıların (ls, cp, bash, grep) çoğunu GNU projesi yazdığı için sisteme bazen GNU/Linux da denir. Çekirdeğin bu araç setiyle birlikte tek seferde derlenip test edilmiş hâline dağıtım denir.

Dağıtımlar başlıca paket yöneticisi, güncelleme politikası ve hedef kitlesi bakımından birbirinden ayrılır.

ead>
AileÖrneklerPaketlerNerede görülür
DebianDebian, Ubuntu, Linux Mint.deb, aptsunucular, bulut, masaüstü
Red HatRHEL, Fedora, Rocky Linux, AlmaLinux.rpm, dnfkurumsal sunucular
AlpineAlpine Linuxapkboyutun önemli olduğu Docker imajları
ArchArch Linux, Manjaropacmanmeraklılar, güncel paket sürümleri

Karşınızdaki dağıtımın hangisi olduğunu /etc/os-release dosyasından öğrenebilirsiniz:

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
ID=ubuntu
ID_LIKE=debian

Öğrenmek ve sunucu kurmak için çoğunlukla Ubuntu LTS veya Debian seçilir: belgeleri bol, internetteki talimatlar neredeyse hiç değiştirilmeden çalışır.

Sistemin yapısı: çekirdek, kabuk ve kullanıcı alanı

Linux'u katmanlar hâlinde düşünmek kolaydır. En altta donanım vardır. Onun üstünde çekirdek. Daha üstte kullanıcı alanı: sistem servisleri, kütüphaneler (örneğin glibc) ve programlar. İnsan ile sistem arasında kabuk (shell) durur; çoğunlukla bash. Kabuk komutları kabul eder ve programları başlatır.

  • Çekirdek — süreçler, bellek, dosya sistemleri, ağ ve sürücüler.
  • Başlatma sistemi — PID 1 numaralı ilk süreç; çoğu modern dağıtımda systemd. Diğer servisleri o başlatır.
  • Servisler (daemon) — web sunucusu, SSH sunucusu, cron, günlük kaydı.
  • Kabuk ve yardımcı programlar — terminalde çalıştığınız araçlar.

Sunucuda genellikle grafik arayüz yoktur: yönetici SSH ile bağlanır ve komut satırında çalışır. Bu yüzden Linux öğrenmek her şeyden önce terminali öğrenmektir.

Linux dosya sistemi: her şey / ile başlar

Linux'ta C: ve D: gibi sürücüler yoktur. Tek bir dizin ağacı vardır ve bu ağaç kök / ile başlar. Tüm diskler, flash bellekler ve ağ klasörleri bu ağacın bir dizinine bağlanır (mount). Bir başka ilke: Linux'ta neredeyse her şey dosya olarak temsil edilir — düz dosyalar, dizinler, aygıtlar, hatta süreç bilgileri.

$ ls /
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

Dizinlerin yerini FHS (Filesystem Hierarchy Standard) standardı belirler; bu yüzden her dağıtımda yapılandırma dosyaları hemen hemen aynı yerlerdedir.

ead>
DizinNe içerir
/etcsistem ve servis yapılandırması: /etc/passwd, /etc/ssh/sshd_config, /etc/fstab
/homekullanıcı ev dizinleri: /home/alice
/rootsüper kullanıcı root'un ev dizini
/vardeğişen veriler: /var/log içindeki günlükler, paket önbelleği, veritabanları, posta kuyrukları
/usrkurulu programlar ve kütüphaneler: /usr/bin, /usr/lib
/bin, /sbintemel komutlar; modern dağıtımlarda /usr/bin ve /usr/sbin bağlantılarıdır
/bootçekirdek (vmlinuz-*), initramfs ve önyükleyici dosyaları
/devaygıt dosyaları: /dev/sda, /dev/null
/proc, /syssanal dosya sistemleri: çekirdek süreçleri ve ayarları bunlar üzerinden gösterir
/tmpgeçici dosyalar, çoğu zaman yeniden başlatmada temizlenir
/optbütün hâlinde gelen üçüncü taraf programlar
/mnt, /mediadisk ve çıkarılabilir ortamların bağlama noktaları

Mutlak ve göreli yollar

Mutlak yol / ile başlar ve bulunduğunuz yere bağlı değildir: /var/log/syslog. Göreli yol geçerli dizinden hesaplanır: ../logs/app.log. Nokta . geçerli dizin, iki nokta .. üst dizin, tilde ~ ise ev dizininizdir.

$ pwd
/home/alice
$ cd /var/log
$ cd ..
$ pwd
/var
$ cd ~
$ pwd
/home/alice

/proc: sistem bir dosyalar kümesi olarak

/proc diskte saklanmaz; çekirdek onu anında üretir. Örneğin cat /proc/cpuinfo işlemcileri, cat /proc/meminfo belleği gösterir; her süreçin /proc/<PID> dizini vardır ve içinde komut satırı ile açık dosyalar bulunur. ps ve top gibi birçok araç bu dosyaları okur.

Bağlama (mount)

df -h hangi dosya sisteminin nereye bağlı olduğunu ve üzerinde ne kadar yer kaldığını gösterir:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        40G   12G   26G  32% /
/dev/sda1       1.1G  6.1M  1.1G   1% /boot/efi
tmpfs           393M  1.2M  392M   1% /run

Kalıcı bağlama noktaları /etc/fstab dosyasında tanımlanır ve sistem açılışta bu dosyayı okur.

Linux nasıl açılır: güç düğmesinden giriş ekranına

Açılış sürecini bilmek, sunucu yeniden başlatıldıktan sonra «kalkmadığında» işe yarar. Basitleştirilmiş zincir şöyledir:

  1. Ana yazılım (UEFI veya BIOS) donanımı kontrol eder ve önyükleyiciyi bulur.
  2. GRUB önyükleyici menüyü gösterir ve /boot içindeki çekirdeği ile initramfs imajını belleğe yükler.
  3. Çekirdek donanımı başlatır ve initramfs yardımıyla kök dosya sistemini bulup bağlar.
  4. systemd PID 1 olarak çalışır ve servisleri doğru sırayla başlatır: ağ, günlük, SSH, cron ve diğerleri.
  5. Giriş istemi konsolda veya SSH üzerinden görünür.

Çekirdeğin açılış mesajlarını sudo dmesg veya journalctl -k ile, açılışın aşamalarının süresini ise systemd-analyze ile görebilirsiniz.

Kullanıcılar ve haklar: yerleşik güvenlik

Linux baştan beri çok kullanıcılı bir sistemdir. Her dosyanın bir sahibi, bir grubu ve okuma, yazma, çalıştırma hakları vardır. Sıradan bir kullanıcı sistem dosyalarını bozamaz; yönetimsel işler sudo ile yapılır. Süper kullanıcı root her şeyi yapabilir, bu yüzden sürekli root olarak çalışmak iyi bir alışkanlık sayılmaz.

$ ls -l /etc/passwd
-rw-r--r-- 1 root root 2847 Oct  1 10:12 /etc/passwd

Bu satır şunu söyler: sıradan bir dosya, sahibi root okuyup yazabilir, diğerleri yalnızca okuyabilir.

DevOps mühendisi neden Linux'a ihtiyaç duyar

DevOps mühendisi için Linux bir konu değil, neredeyse tüm işin geçtiği ortamdır. Her gün şu yerlerde karşılaşır:

  • Sunucular. Web sunucuları, veritabanları ve kuyruklar büyük çoğunlukla Linux'ta çalışır.
  • Konteynerler. Docker, çekirdeğin mekanizmalarını kullanır: namespaces ve cgroups. Konteyner yalıtılmış bir Linux sürecidir ve imajlar Debian veya Alpine gibi bir dağıtıma dayanır.
  • Bulut ve Kubernetes. Buluttaki sanal makineler ve küme düğümleri de Linux'tur.
  • CI/CD. Pipeline derlemeleri Linux çalıştırıcılarında yürür ve derleme betikleri bash ile yazılır.
  • Teşhis. Bir servis çöktüğünde cevap journalctl, top, ss ve df içinde aranır; bu araçları bilmeden olay incelemesi yapılamaz.

Asgari beceri seti şunlardır: dosya sisteminde rahat gezinmek, hakları anlamak, paket kurmak, systemctl ile servis yönetmek, günlükleri okumak, süreçler, ağ ve SSH ile çalışmak ve basit bash betikleri yazmak.

Linux öğrenmeye nasıl başlanır

Ana sisteminizi Linux ile değiştirmeniz gerekmez. Güvenli birkaç yol var:

  • Sanal makine (VirtualBox, VMware) içinde Ubuntu Server — bozup anlık görüntüden geri dönebilirsiniz.
  • Windows üzerinde WSL — Windows terminalinde tam bir Ubuntu ortamı: wsl --install.
  • Bulut sunucusu — gerçek işe en yakın seçenek; SSH ile bağlanırsınız.
  • Docker konteyneri — docker run -it --rm ubuntu bash birkaç saniyede bir kabuk verir.

Navigasyonla (pwd, ls, cd) başlayın, sonra dosyalar ve haklar, ardından paketler, süreçler ve servisler. Yerleşik yardım her zaman elinizin altında: man ls veya ls --help.

Sonuç

Linux bir çekirdektir; dağıtım ise çekirdeğin yardımcı programlar, kütüphaneler, paket yöneticisi ve systemd ile birlikte oluşturduğu sistemdir. Tüm sistem kök / ile başlayan tek bir dizin ağacıdır: yapılandırmalar /etc'de, günlükler /var/log'da, programlar /usr'de bulunur. Linux'un ne olduğunu ve nasıl açıldığını anlamak sunucuların, konteynerlerin ve bulutun temelidir. Dosya sistemi, açılış ve yönetim konuları kurs içinde uygulamalı olarak işlenmektedir.

Sık sorulan sorular

Linux bir işletim sistemi mi, yoksa çekirdek mi?

Kesin olarak Linux bir çekirdektir; işletim sistemini ise çekirdek ile GNU yardımcı programları, kütüphaneler, paket yöneticisi ve başlatma sisteminden oluşan dağıtım oluşturur. Günlük konuşmada «Linux» denince genellikle bütün sistem kastedilir.

Linux ücretsiz mi?

Çekirdek ve çoğu dağıtım (Ubuntu, Debian, Fedora) özgür yazılım lisanslarıyla ücretsiz dağıtılır. Destek abonelikleri, örneğin Red Hat Enterprise Linux'ta olduğu gibi, ücretlidir.

Yeni başlayan biri hangi dağıtımı seçmeli?

Sunucular ve yönetimi öğrenmek için Ubuntu LTS ve Debian uygundur: kararlı sürümleri ve belgeleri çoktur. Bilgi dağıtımlar arasında kolayca taşınır; asıl fark paket yöneticisindedir.

Docker ile çalışmak için Linux bilmek gerekir mi?

Evet, en azından temel düzeyde. Konteynerler Linux çekirdeği mekanizmaları üzerine kuruludur, imajların içinde dağıtımlar bulunur ve hata ayıklama kabuk komutlarıyla yapılır.

Linux ile Unix arasındaki fark nedir?

Unix, 1970'lerde ortaya çıkan bir sistem ailesidir; Linux ise bağımsız olarak yazılmış bir çekirdektir ve Unix'in fikirlerini ve arayüzlerini (POSIX standardı) yeniden uygular. Bu yüzden komutları ve çalışma mantığı birbirine çok benzer.

Bu konuyu videoyla öğrenin

Bu konu “Linux: с нуля до уверенного администрирования” kursunda uygulamalı olarak ayrıntılı işleniyor.

Kursa git