Linux Açılış Süreci
Onur Küçük (onur@ozguryazilim.com.tr)
Açma düğmesine bastıktan sonra...
BOOTING / BOOTSTRAPPING
Sistem açılışı BIOS/UEFI/BootMonitor
Stage 1
Stage 1.5
Stage 2
Çekirdek (Çekirdek uzayı)
Init (Kullanıcı uzayı)
BIOS
Basic Input Output System
Latince Hayat
System BIOS / ROM BIOS
CP/M sistemlerde diskten yükleme
Önyükleyici konumunu bulup bilgisayarı onun kontrolüne verir
BIOS - POST
POST (Power On Self Test)
Donanım tanıma ve başlatma
CPU
RAM
VGA
Klavye
Fare
Depolama aygıtları ve denetleycileri
Diğer donanımlar
Saat
Donanım ince ayar
ACPI
Advanced Configuration and Power Interface
Platform bağımsız (?)
İşletim sisteminin aygıt yönetimi ve güç yönetimi için altyapı
(U)EFI
Unified Extensible Firmware Interface
Hızlı açılış
CPU bağımsız açılış ve sürücüler
Modüler yapı
Ağ üzerinden açılış
Güvenli açılış
EFI Shell
GPT (GUID Partition Table)
Önyükleyici
Real Mode / Protected Mode
Master Boot Record / Volume Boot Record
Kullanıcı menüsü
Ağ üzerinden açılış
Çekirdeği açıp hafızaya yükler
Çekirdek parametreleri, initrd / initramfs
Önyükleyici - LILO
LInux LOader
Statik çalışır, ayar değişiklikleri otomatik algılanmaz
Sadece lilo.conf içerisinde tanımlı seçenekleri açabilir
lilo komutu çalıştıktan sonra ilgili dosyaların disk üzerindeki adresi kaydedilir
Önyükleyici - GRUB
GRand Unified Bootloader
Stage 1.5
Dinamik dosya / parametre ayarlama desteği
Etkili komut satırı (readline)
Ağ üzerinden açılış desteği
Dosyasistemi tanıma
GFX Menü
Önyükleyici - SYSLINUX
SYSLINUX - FAT16/FAT32 (Disket, USB çubuk...)
ISOLINUX - DVD / CD-ROM ISO 9660
PXELINUX - Preboot Execution Environment (PXE)
EXTLINUX - EXT2/3/4 BTRFS
MEMDISK - MS-DOS vb. eski sistemler
HDT (Hardware Detection Tool)
GFX Menü
Modüler yapı
Önyükleyici - Loadlin
DOS / Windows altından açılış
Eski önyükleyicilerin eksiklerinin etrafından dolaşmak için hazırlanmış
Mobil dünyada kendine yer buluyor
Çekirdek
Hafıza yönetimi
Görev sıralama
Girdi / Çıktı
IPC
Genel sistem yönetimi
Çekirdek - Yükleme
zImage / bzImage
minimum donanım ayarlama
Çekirdeğin kalanını Yüksek Hafıza alanına açar
Ramdisk ayarlar
startup_XX()
Çekirdek - Açılış
Süreç 0 / swapper
Hafıza yönetimi (table paging, memory paging)
CPU yetenekleri (FPU, emir setleri, ...)
IRQ
I/O
Depolama aygıtları
RAID / LVM vs.
RootFS / Initramfs bağlar
Init başlatılır (/linuxrc /init /sbin/init vs.)
Initrd / Initramfs
Initrd
Sıkıştırılmış dosya sistemi
/dev/ram
Initramfs
CPIO ya da benzeri dosya arşivi
tmpfs
Küçük sistem
Ana sistem açılmadan işlem yapabilme
LVM
RAID
DHCP / NFS
Ana sistem performans sıkıntılarına çözüm
Özel amaçlı oluşturulabilir (Terminal sistemler, Sabit disksiz açılış vb.)
Grafik süsler (Splash, Plymouth)
pivot_root()
Init
Tüm süreçlerin atasıdır
PID 1
Getty
Init - SysV
/etc/inittab :initdefault:
Çalışma seviyeleri (Runlevel)
0 Halt
1 Tek kullanıcı
6 Baştan başlat
/etc/init.d
/etc/rcX.d
Dağıtımlar arası uyumsuzluk
Init - BSD
/etc/rc ayar dosyası
Açılacak kabuk
Çalışacak servisler
Çalışma seviyesi kavramı yoktur
/etc/rc.local
Müdür
Pardus
Paralel servis çalıştırma
Python ile yazıldı
Servisler için Python betikleri
Kabuk kullanılmıyor
Systemd
Fedora 15
Paralel servis çalıştırma
Düşük kabuk kullanımı
Servis yönetimi soket / bus üzerinden
Servislere özel systemd dosyaları
Süreç takibi için cgroup, PID kullanılmıyor
Init alternatifleri
Initng (Asenkron)
runit (Parallel servis başlatma)
OpenRC (Gentoo Linux)
BootScripts (GoboLinux)
eINIT (Asenkron) Kabuk kullanmamaya çalışıyor
Service Management Facility (Solaris 10)
DEMONS (KahelOS) - Servisler masaüstü ortamı başladıktan sonra başlıyor
SystemStarter (MacOSX v10.4) BSD tarzı init sistemi üzerine süreç başlatıcı
launchd (MacOSX >= v10.4) SystemStarter için arayüz (Açık Kodlu)
Upstart
Ubuntu
Paralel servis çalıştırma
Amaç SysV eksiklerini gidermek
SysV sarmalayarak çalışıyor
Klasik SysV betikleri çağırılıyor
Tak çıkar aygıtların algılanması, Firmware yüklenmesi
Grafik Kullanıcı Arabirimi
X11 (Xorg/XFree86)
KDM GDM XDM Entrance
Masaüstü Ortamı
Sorular
?