- Web'de PID 0 hakkında arama yaptığınızda çıkan bilgilerin çoğu yanlış.
- Google, Bing, DuckDuckGo ve Kagi'de PID 0 aratıldığında doğru cevabı bulmak zordu.
- Wikipedia'daki yanlış bilgi 16 yıl boyunca yayılıp birçok site tarafından alıntılandı.
PID 0'ın geçmişi
- PID 0, zamanlama ve güç yönetimiyle ilgilidir; sayfalamayla ilgisi yoktur.
- PID 0, CPU çekirdeğinin yapacak işi olmadığında çalışan zamanlayıcı görevi görür.
- İlk Unix sürümlerinde PID 0 bellek yönetimiyle ilgili işler yapıyordu, ancak modern Unix'te durum böyle değildir.
PID 0'ın gerçek rolü
- PID 0, çekirdeği başlatır ve sonrasında CPU çekirdeklerini yöneten bir rol üstlenir.
- Linux çekirdeğinde PID 0,
do_idle fonksiyonu olarak uygulanır.
- FreeBSD gibi diğer çekirdeklerde de benzer bir rol oynar.
PID 0 etrafındaki kafa karışıklığı
- Linux çekirdeğinde ve kullanıcı alanında PID'in anlamı farklıdır.
- Çekirdekte
task_struct tek bir thread'i temsil eder ve PID, thread kimliği anlamına gelir.
- Kullanıcı alanında ise PID bir süreci temsil eder; bu da thread group ID ile aynıdır.
Çok çekirdekli sistemlerde PID 0
- Çok çekirdekli sistemlerde her CPU çekirdeği için bir idle thread bulunur.
- Bu idle thread'lerin tamamı thread group 0'a aittir.
- Kullanıcı alanında bu durum PID 0 olarak görülür.
Sonuç
- PID 0 vardır ve çekirdeği başlatan thread'dir.
- PID 0, ilk çekirdek başlatma işlerini yürütür ve sonrasında idle thread'e dönüşür.
- PID 0'ın bellek yönetimiyle ilgisi yoktur.
- Çok çekirdekli sistemlerde her çekirdek için bir idle thread vardır ve bunların hepsi thread group 0'a aittir.
GN⁺ görüşü
- Doğru bilginin önemi: Yanlış bilgi uzun süre yayılınca birçok insan bunu gerçek olarak kabul ediyor. Bu, doğru bilgi sunmanın ne kadar önemli olduğunu bir kez daha hatırlatıyor.
- Çekirdeğin karmaşıklığı: Çekirdeğin başlatma süreci ve zamanlama mekanizması oldukça karmaşıktır; bunları anlamak yazılım mühendisleri için büyük fayda sağlar.
- PID konusundaki kafa karışıklığı: Çekirdek ile kullanıcı alanında PID'in anlamı farklı olduğu için, bunu net biçimde anlamak önemlidir.
- Çok çekirdekli sistemler: Modern çok çekirdekli sistemlerde PID 0'ın rolünü anlamak, sistem performansını optimize etmeye yardımcı olur.
- Wikipedia'nın etkisi: Wikipedia'daki bilginin ne kadar çok web sitesini etkileyebildiğini gösteriyor. Doğru bilgilerin güncellenmesinin önemini vurguluyor.
3 yorum
O agent'in
kill -9 0yaptığı o eski olay aklıma geliyor...İlginçmiş.
Hacker News görüşleri
getppid'in 0 döndürdüğü durum, ebeveynin başka bir PID namespace içinde olmasıdır.ps -auxkomutuyla ilgili soru: "ps -aux" komutunu çalıştırınca diğer kullanıcıların bilgileri de görüntüleniyor. Bunun varsayılan olarak gizli olması gerekmez mi?kill 0ın ilginç kullanımı:kill 0kullanarak bir komutu belirli bir süre çalıştırıp ardından sonlandıran bir betik paylaşılıyor.