Linux nedir: çekirdek, dağıtımlar ve dosya sistemi basit anlatımla
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 | Örnekler | Paketler | Nerede görülür |
| Debian | Debian, Ubuntu, Linux Mint | .deb, apt | sunucular, bulut, masaüstü |
| Red Hat | RHEL, Fedora, Rocky Linux, AlmaLinux | .rpm, dnf | kurumsal sunucular |
| Alpine | Alpine Linux | apk | boyutun önemli olduğu Docker imajları |
| Arch | Arch Linux, Manjaro | pacman | meraklı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> | |
|---|---|
| Dizin | Ne içerir |
/etc | sistem ve servis yapılandırması: /etc/passwd, /etc/ssh/sshd_config, /etc/fstab |
/home | kullanıcı ev dizinleri: /home/alice |
/root | süper kullanıcı root'un ev dizini |
/var | değişen veriler: /var/log içindeki günlükler, paket önbelleği, veritabanları, posta kuyrukları |
/usr | kurulu programlar ve kütüphaneler: /usr/bin, /usr/lib |
/bin, /sbin | temel komutlar; modern dağıtımlarda /usr/bin ve /usr/sbin bağlantılarıdır |
/boot | çekirdek (vmlinuz-*), initramfs ve önyükleyici dosyaları |
/dev | aygıt dosyaları: /dev/sda, /dev/null |
/proc, /sys | sanal dosya sistemleri: çekirdek süreçleri ve ayarları bunlar üzerinden gösterir |
/tmp | geçici dosyalar, çoğu zaman yeniden başlatmada temizlenir |
/opt | bütün hâlinde gelen üçüncü taraf programlar |
/mnt, /media | disk 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:
- Ana yazılım (UEFI veya BIOS) donanımı kontrol eder ve önyükleyiciyi bulur.
- GRUB önyükleyici menüyü gösterir ve
/bootiçindeki çekirdeği ile initramfs imajını belleğe yükler. - Çekirdek donanımı başlatır ve initramfs yardımıyla kök dosya sistemini bulup bağlar.
- systemd PID 1 olarak çalışır ve servisleri doğru sırayla başlatır: ağ, günlük, SSH, cron ve diğerleri.
- 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,ssvedfiç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 bashbirkaç 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 konu “Linux: с нуля до уверенного администрирования” kursunda uygulamalı olarak ayrıntılı işleniyor.
- Linux: с нуля до уверенного администрирования
- Как устроена файловая система Linux: от корня до загрузки ядра