Süreçlerin içi: /proc, sinyaller, strace ve ptrace
Bir sürecin bellek haritasını, dosya tanımlayıcılarını, sinyal maskelerini ve sistem çağrılarını canlı olarak inceler; takılan, sızdıran ve gizlenen süreçleri teşhis edersin.
Seviye 501 · 17 ders · 15 pratik lab
Dersler
Sürecin anatomisi
- /proc/PID derinlemesine: status, maps, limits
- Bellek haritası ve smaps: gerçek bellek kullanımı
- Dosya tanımlayıcıları ve lsof
- Süreç durumları: R, S, D, Z, T ve anlamları
- Kısa görev: D durumunda takılan süreçlerin neyi beklediğini bul
Sinyaller ve yaşam döngüsü
- Sinyal teslimi, maskeler ve işleyiciler
- fork, exec, wait ve zombilerin kökeni
- Oturumlar, süreç grupları ve denetim terminali
- Kaynak sınırları: ulimit ve prlimit
- Kısa görev: ebeveyni ölünce yanlış davranan servisi düzelt
İzleme
- strace derinlemesine: süzgeç, zamanlama ve çocuk süreçler
- ltrace ile kütüphane çağrıları
- gdb ile çalışan sürece bağlanmak ve yığın izi almak
- ptrace kapsamı ve izlemeyi kısıtlamak
- Kısa görev: yanıt vermeyen servisin neye takıldığını strace ile kanıtla
Kapanış
- Gizlenmeye çalışan süreçleri /proc ile yakalamak
- Bitirme görevi: sızdıran, takılan ve gizlenen üç süreci teşhis et ve raporla
Pratik lablar
- Sürecin bellek haritasını oku: Çalışan sürecin bellek haritasından yığın, öbek ve yüklü paylaşımlı kitaplıkları ayırt et ve yüklü kitaplık sayısını gir.
- Dosya tanımlayıcı tablosundan sızıntıyı bul: Tanımlayıcı sayısı sürekli artan süreçte hangi dosya türünün kapatılmadığını /proc üzerinden belirle.
- fork ve exec zincirini izleyerek süreç doğumunu çöz: Bir kabuk komut zincirinin kaç süreç oluşturduğunu, hangi tanımlayıcıların devralındığını ve kimlik değişimini izleyerek belgele.
- Sürecin hangi sinyalleri yakaladığını bul: Durmayan sürecin durum dosyasından engellenen, yok sayılan ve yakalanan sinyalleri çözümle.
- Yetim süreçlerin kime bağlandığını göster: Üst süreci ölen çocukların kime bağlandığını gözlemle ve bir süreci alt süreç toplayıcısı yaparak sonucu değiştir.
- Kapanışta veri kaybeden servisin sinyal işlemesini düzelt: Durdurulduğunda yarım yazılmış dosya bırakan servisin sinyal akışını izle, işleyicisini ve durdurma zaman aşımını düzelt.
- strace ile programın aradığı dosyayı bul: Sessizce çıkan programın açmaya çalışıp bulamadığı yapılandırma dosyasının yolunu sistem çağrılarından bul.
- Yavaş sistem çağrısını süre ölçümüyle yakala: Aralıklı takılan programda çağrı sürelerini ve özet tablosunu kullanarak zamanın hangi çağrıda geçtiğini belirle.
- Kilitlenen süreci gdb ile çalışırken incele: Yanıt vermeyen çok iş parçacıklı sürece bağlan, tüm iş parçacıklarının geri izini al ve kilitlenmeye yol açan iki kilidi belirle.
- Çalışan sürecin gerçek sınırlarını oku: Çok fazla açık dosya hatası veren servisin geçerli sınırlarını /proc'tan oku ve hangi sınırın aşıldığını yaz.
- Sürecin etkin yeteneklerini çözümle: Kök olmayan bir sürecin sahip olduğu yetenek kümelerini çözümle ve gereğinden fazla olanı birimden kaldır.
- Kimlik değişimini izleyerek yetki sorununu çöz: Yetki düşüren servisin gerçek, etkin ve kayıtlı kimliklerini izleyerek dosyaya neden yazamadığını bul ve düzelt.
- Çekirdek dökümü toplamayı aç: Çöken servisin döküm bırakması için sınırı ve döküm düzenini ayarla, bir çöküş üret ve dökümü listele.
- Dökümden çöküş noktasını bul: Kaydedilmiş dökümü hata ayıklayıcıda aç ve çöküşün gerçekleştiği işlevin adını geri izden çıkar.
- Aralıklı çöküşün kök nedenini kanıtla: Haftada bir çöken servisin üç dökümünü karşılaştır, ortak girdi koşulunu bul ve çöküşü yeniden üreten en küçük örneği hazırla.
Kurs hakkında
Bir sürecin bellek haritasını, dosya tanımlayıcılarını, sinyal maskelerini ve sistem çağrılarını canlı olarak inceler; takılan, sızdıran ve gizlenen süreçleri teşhis edersin.
Ne öğreneceksin
- Sürecin anatomisi
- Sinyaller ve yaşam döngüsü
- İzleme
- Kapanış
Ön koşullar
Aynı yolun 401 düzeyine kadar olan konularında deneyimli olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 501 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.