Linux ­Kurulu­m ve Y­onetim­i
  • Döküman Hakkında
  • Linux ve GNU'nun Geçmişi
    • CentOS, Debian ve FreeBSD Ana Sürümlerin Farkları
  • Temel Komutlar
    • Temel Terminal Komutları
    • Yardım Dosyaları
    • Dosya İzinleri, Yetkiler, Kullanıcılar ve Gruplar
    • Dosya Düzenleme Araçları
      • nano ve pico
      • vi
    • Sıkıştırılmış Dosyalar
  • Standart Girdi ve Çıktı
    • Standart Çıktı
    • Standart Girdi
    • UNIX Pipeline
    • Olmazsa Olmaz: stdio.h
    • Standart Hata ve File Descriptor
    • Forkbomb
    • Named Pipe
  • Gelişmiş Terminal Komutları
    • Tarih ve Saat Ayarlama
    • Sistem Yükünü İzleme
    • patch ve diff
    • xargs
    • awk ve sed
    • egrep ve Regular Expressions
    • rename
    • Imagemagick ve Görüntü Dosyaları
    • wget
    • Python ile Dosya Sunuculuğu
  • Temel Dağıtımlar
    • RHEL Tabanlı (CentOS, Rocky, Alma)
      • rpm Paketleri
      • DNF Paket Yöneticisi
      • Repo Ayarları
      • Network Ayarları
    • Debian
      • deb Paketleri
      • apt Paket Yöneticisi
      • Repo Ayarları
      • Network Ayarları
    • FreeBSD
      • Ports ve pkg Yönetimi
      • Güncelleme Teknikleri
      • Network Ayarları
    • Arch Linux
      • pacman ve AUR
      • Network Ayarları
    • Ortak Network Dosyaları
  • SSH
    • Uzak Sunucuya Bağlanma
    • sshd Sunucu Ayarları
    • Private ve Public Anahtarlar
    • Güvenli Dosya Aktarımı
    • sshfs
  • Kernel Boot
    • Sunucu Başlangıcına Genel Bakış
    • Çekirdeğin Yüklenmesi ve Boot Seçenekleri
    • Çekirdek Parametreleri
    • Bootloader Nedir?
  • User Space
    • Başlangıç: Init
    • Init Versiyonunu Belirlemek
    • System V
      • Servislerin Yönetimi
      • Çalışma Seviyeleri (Run Levels)
      • Örnek System V Servis Oluşturma
    • systemd
      • Servislerin Yönetimi
      • Birimler ve Birim Tipleri
      • Örnek systemd Servis Oluşturma
    • Acil Durumlar ve Tek Kullanıcı Modu
  • BASH Programlama
    • Döngüler ve Diğer Kontrol Yöntemleri
    • Menüler
  • Log Dosyaları
    • Log İnceleme ve Filtreleme
  • İnternet Servisleri
    • Bir sayfanın İnternetteki Serüveni
    • Nameserver Servisleri
    • Apache
    • PHP-FPM
    • FTP/FTPS/SFTP
      • vsftpd
      • ProFTPD
      • SFTP
      • Komut Satırından ftp Kullanımı
  • Zamanlanmış Görevler
    • crontab
    • at
  • Veritabanı
    • MySQL
      • MySQL Kurulumu
      • MySQL Servisini Çalıştırmak
      • Veritabanı ve Tablo oluşturmak
      • SQL Tablosuna Veri Eklemek
      • Temel SQL Sorgularına Giriş
        • Birinci bölüm
      • mysqldump ile yedekleme
      • Replikasyon teknikleri
      • Yedekleri içeri alma
    • PostgreSQL
      • PostgreSQL Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
    • MongoDB
      • MongoDB Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
    • Redis
      • Redis Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
  • Temel Network Yapılandırması
  • Gelişmiş Network Komutları
    • ip
    • ifconfig
    • route
    • ping
    • traceroute
    • dig
    • nslookup
    • netcat
    • nmap
    • tcpdump
    • Wireshark (Giriş)
    • Bantgenişliği Ölçümü
  • Güvenlik
    • Firewalld
    • IPTables
      • Temel İzinler
      • IP ve Port Engelleme
    • selinux
  • Disk Sistemleri
    • ext
    • zfs
    • lvm
  • RAID
    • RAID Biçimleri
    • Verinin Disklere Yayılması
    • Cache
    • Terimler ve Tavsiyeler
  • Örnek Kurulumlar ve Modern Yaklaşımlar
    • CentOS 7 Tam Sistem Kurulumu (Arşiv)
    • AlmaLinux ile Hosting Ortamı Kurulumu
    • Ubuntu ile Hosting Ortamı Kurulumu
    • Modern Hosting Yaklaşımları (PaaS, Coolify vb.)
  • Konteynerleştirme (Docker / Podman)
  • Yapılandırma Yönetimi (Ansible)
  • İzleme ve Uyarı (Prometheus / Grafana)
  • Nginx Web Sunucusu
  • Kubernetes (Giriş)
  • PCI-DSS ve Linux Sistemleri
  • İndeks
  • Kaynaklar
Powered by GitBook
On this page
  • Çekirdek İmajı (Kernel Image)
  • Başlangıç RAM Dosya Sistemi (initrd / initramfs)
  • Önyükleyici Yapılandırması ve Menüsü
  • Yükleme Süreci
  1. Kernel Boot

Çekirdeğin Yüklenmesi ve Boot Seçenekleri

Önyükleyici (bootloader), firmware'den kontrolü aldıktan sonraki ana görevi, işletim sistemi çekirdeğini (kernel) ve başlangıç için gerekli olan başlangıç RAM dosya sistemini (initramfs) belleğe yüklemektir.

Çekirdek İmajı (Kernel Image)

  • Konum: Linux çekirdeği, genellikle /boot dizini altında sıkıştırılmış bir dosya olarak bulunur. Dosya adı dağıtıma ve sürüme göre değişir, ancak yaygın isimler vmlinuz-<sürüm> veya bzImage-<sürüm> şeklindedir (örn. /boot/vmlinuz-6.1.0-18-amd64).

  • İşlevi: Çekirdek, işletim sisteminin kalbidir. Donanımı yönetir, işlemleri zamanlar, belleği yönetir ve sistem çağrıları aracılığıyla kullanıcı alanı (user space) programlarına hizmet verir. Önyükleyici tarafından belleğe yüklenir ve çalıştırılır.

Başlangıç RAM Dosya Sistemi (initrd / initramfs)

  • Konum: Çekirdek imajı gibi, genellikle /boot dizini altında bulunur. Dosya adı initrd.img-<sürüm> veya initramfs-<sürüm>.img gibi olabilir (örn. /boot/initramfs-6.1.0-18-amd64.img).

  • İşlevi: Çekirdek başlatıldıktan hemen sonra, ancak gerçek kök dosya sistemi (/) bağlanmadan önce, bellekte (RAM) geçici bir kök dosya sistemi olarak kullanılır. Temel amacı, gerçek kök dosya sistemini bağlamak için gerekli olan modülleri ve araçları içermektir. Bunlar şunları içerebilir:

    • Disk denetleyici sürücüleri (SATA, NVMe, SCSI vb.).

    • Dosya sistemi sürücüleri (ext4, xfs, btrfs vb.).

    • Mantıksal Birim Yönetimi (LVM) veya yazılımsal RAID araçları ve modülleri.

    • Şifreli diskleri açmak için gerekli araçlar (cryptsetup).

    • Ağ sürücüleri (ağ üzerinden boot yapılıyorsa).

  • Oluşturulması: Initramfs, genellikle çekirdek kurulduğunda veya güncellendiğinde otomatik olarak sisteme özgü olarak oluşturulur. Bu işlemi yapan araçlar dağıtıma göre değişir:

    • mkinitrd (Eski RHEL/CentOS)

    • dracut (Modern RHEL/CentOS/Fedora)

    • mkinitcpio (Arch Linux)

    • update-initramfs (Debian/Ubuntu)

  • initrd vs initramfs: initrd (initial RAM disk) daha eski bir yöntemdi ve sıkıştırılmış bir dosya sistemi imajı (örn. ext2) olarak yüklenirdi. initramfs (initial RAM filesystem) ise daha modern bir yöntemdir ve sıkıştırılmış bir cpio arşivi olarak yüklenir. Daha esnektir ve genellikle daha az bellek kullanır. Günümüzdeki çoğu sistem initramfs kullanır.

Önyükleyici Yapılandırması ve Menüsü

Önyükleyici (örn. GRUB, systemd-boot), hangi çekirdek ve initramfs dosyasını yükleyeceğini, hangi çekirdek parametrelerini geçeceğini yapılandırma dosyasından okur.

  • GRUB 2: Ana yapılandırma /boot/grub/grub.cfg dosyasındadır. Bu dosya genellikle update-grub veya grub-mkconfig -o /boot/grub/grub.cfg komutları tarafından /etc/default/grub ve /etc/grub.d/ altındaki betikler kullanılarak otomatik olarak oluşturulur.

  • systemd-boot: Yapılandırma EFI Sistem Bölümü (ESP) içindedir. /boot/loader/loader.conf genel ayarları, /boot/loader/entries/ altındaki .conf dosyaları ise her bir önyükleme girdisini (çekirdek, initramfs, parametreler) tanımlar.

Sistem açılırken, önyükleyici genellikle bir menü gösterir. Bu menü şunları sağlar:

  • Farklı işletim sistemleri veya çekirdek sürümleri arasında seçim yapma.

  • Belirli bir önyükleme girdisi için çekirdek parametrelerini geçici olarak düzenleme (örn. tek kullanıcı moduna geçmek için single veya init=/bin/bash eklemek).

  • Belirli bir süre (timeout) sonunda varsayılan girdiyi otomatik olarak başlatma.

Yükleme Süreci

  1. Önyükleyici, yapılandırmasına göre seçilen (veya varsayılan) çekirdek imajını ve ilgili initramfs dosyasını diskten okuyarak belleğe (RAM) yükler.

  2. Önyükleyici, yapılandırmada tanımlanan veya menüden eklenen çekirdek parametrelerini hazırlar.

  3. Önyükleyici, kontrolü belleğe yüklediği çekirdeğin başlangıç noktasına devreder ve çekirdek parametrelerini iletir.

  4. Çekirdek çalışmaya başlar, initramfs'i bağlar ve init sürecini başlatmak için gerekli adımları atar.

PreviousSunucu Başlangıcına Genel BakışNextÇekirdek Parametreleri

Last updated 1 month ago