Saturday, October 21, 2006

Kernel tipleri

Kernel işletim sisteminin bir parçasıdır. Process scheduling, memory management, thread management gibi management işleri ile uğraşır daha çok. Donanım( hardware ) ile kabuk ( shell ) arasında bağlantı oluşturur. Demek istediğim kullanıcılar direk olarak donanıma erişemezler. sistem çağrılarını kullanırlar. sistem çağrılarını kernele ulaşan fonksyonlar olarak düşünebiliriz.
"Kernel attack" linuxte handle edilemeyen errorleri belirtir. ( %30 ingilizce yazıyorum :) ) bir process te bir hata olduğu zaman eğer bu hata fatal ise kernel attack oluşur.
Günümüzde ki popüler işletim sistemlerine baktığımızda kernel i genel olarak 3 gruba ayırabiliriz ki bu grupların sayısı gerçekte daha fazladır.
1) Monolitik kernel: Tüm kernel kodu tek bir yerde bulunur. Bütün kernel, kernel space de çalışır. Bu kerneller çok yer kaplar ama hızlıdır. Linux gibi işletim sistemlerinde kernele modül eklemek mümkündür ancak bu ekelenen modüllerde kernel space de çalışmaktadır.
2) Mikrokernel: Kernel, kernel space de minumum tutulmuştur. genel olarak process scheduling memory management gibi hayati işleri ele alır. Sisteme modül eklenebilir dışardan. Bu eklenen modüller genel olarak user space te çalışır. Bu yüzden biraz daha yavaş kaçar. Çünkü user space ten OS hizmetleri system call lar aracılığı ile çalıştırılır.
3) Hybrid kernel: Bu da yukardaki iki maddenin karışımıdır. Windows NT nin nasıl bir kernel olduğu meçhuldür :) bu konuda ms de çalışanlarda tam emin değildir. Her nekadar ilk çıktığı sırada mikrokerneldir denildiyse de daha sonraları bu görüş değişti. Şu anda hybrid ve monolitik diyenlere rastlayabilirsiniz....

No comments: