logo

Çekirdek Nedir?

Bilgisayar biliminde, Çekirdek, bir işletim sisteminin çekirdeği veya kalbi olan bir bilgisayar programıdır. Çekirdeği ayrıntılı olarak tartışmadan önce, öncelikle temel yapısını, yani bilgisayardaki işletim sistemini anlayalım.

İşletim sistemi

İşletim sistemi veya işletim sistemi, donanım bileşenleri ile son kullanıcı arasında arayüz görevi gören sistem yazılımıdır. Diğer programların çalışmasını sağlar. İster masaüstü, ister dizüstü bilgisayar, tablet veya akıllı telefon olsun, her bilgisayar sisteminin, cihazın temel işlevlerini sağlayacak bir işletim sistemine sahip olması gerekir. Yaygın olarak kullanılan bazı işletim sistemleri şunlardır: pencereler , Linux , MacOS, Android, iOS vb.

İşletim Sisteminde Çekirdek Nedir?

Çekirdek Nedir?
  • Yukarıda tartışıldığı gibi, Çekirdek bir İşletim Sisteminin (İşletim sistemi) temel parçasıdır; dolayısıyla sistemdeki her şey üzerinde tam kontrole sahiptir. Donanım ve yazılımın her işlemi çekirdek tarafından yönetilir ve yönetilir.
  • Donanım düzeyinde yapılan uygulamalar ile veri işlemleri arasında köprü görevi görür. Bir işletim sisteminin merkezi bileşenidir.
  • İşletim sisteminin her zaman bilgisayar belleğinde bulunan ve yazılım ile donanım bileşenleri arasındaki iletişimi sağlayan kısmıdır.
  • Sistem başlatıldığında (Bootloader'dan sonra) ilk yüklenen bilgisayar programıdır. Yüklendikten sonra kalan başlatmaları yönetir. Ayrıca yazılımdan gelen bellek, çevre birimi ve G/Ç isteklerini de yönetir. Üstelik tüm I/O isteklerini CPU için veri işleme talimatlarına çevirir. Ayrıca diğer görevleri de yönetir bellek yönetimi, görev yönetimi ve disk yönetimi olarak .
  • Bir çekirdek tutulur ve genellikle ayrı bir bellek alanına yüklenir. korunan Çekirdek alanı. Uygulama programlarının veya işletim sisteminin daha az önemli bölümlerinin erişimine karşı korunur.
  • Tarayıcı, kelime işlemci, ses ve video oynatıcı gibi diğer uygulama programları, ayrı bir bellek alanı olarak bilinen ayrı bir bellek alanı kullanır. Kullanıcı alanı.
  • Bu iki ayrı alan sayesinde kullanıcı verileri ve çekirdek verileri birbirine karışmaz, herhangi bir kararsızlık ve yavaşlığa neden olmaz.

Bir Çekirdeğin İşlevleri

Bir işletim sisteminin çekirdeği, çeşitli işlevlerin gerçekleştirilmesinden sorumludur ve sistem üzerinde kontrole sahiptir. Kernel'in bazı temel sorumlulukları aşağıda verilmiştir:

piton __dict__
    Cihaz yönetimi
    Çeşitli eylemleri gerçekleştirmek için işlemler, bilgisayara bağlı fare, klavye vb. çevresel aygıtlara erişim gerektirir. Bu aygıtların aygıt sürücülerini kullanarak kontrol edilmesinden bir çekirdek sorumludur. Burada bir aygıt sürücüsü İşletim sisteminin herhangi bir donanım aygıtıyla iletişim kurmasına yardımcı olan veya olanak tanıyan bir bilgisayar programıdır.
    Bir çekirdek mevcut tüm aygıtların bir listesini tutar ve bu liste zaten biliniyor olabilir, kullanıcı tarafından yapılandırılabilir veya çalışma zamanında işletim sistemi tarafından algılanabilir.Bellek yönetimi
    Çekirdek, bilgisayarın belleğine erişim konusunda tam kontrole sahiptir. Her işlemin çalışması için bir miktar belleğe ihtiyaç vardır ve çekirdek, süreçlerin belleğe güvenli bir şekilde erişmesini sağlar. Belleği tahsis etmek için ilk adım şu şekilde bilinir: sanal adresleme, bu, sayfalama veya segmentasyon yoluyla yapılır. Sanal adresleme süreçlere sanal adres alanları sağlama işlemidir. Bu, uygulamanın birbirine çarpmasını önler.Kaynak yönetimi
    Kernel'in önemli işlevlerinden biri, kaynakların çeşitli süreçler arasında paylaşılmasıdır. Kaynakları, her sürecin kaynağa eşit şekilde erişeceği şekilde paylaşmalıdır.
    Çekirdek ayrıca senkronizasyon için bir yol sağlar ve süreçler arası iletişim (IPC). Süreçler arasında bağlam geçişinden sorumludur.Bilgisayar Kaynaklarına Erişim
    Çekirdek, RAM ve G/Ç aygıtları gibi bilgisayar kaynaklarına erişimden sorumludur. RAM veya Rastgele Erişimli Bellek Hem verileri hem de talimatları içermek için kullanılır. Her programın yürütülebilmesi için belleğe erişmesi gerekir ve çoğunlukla mevcut olandan daha fazla bellek ister. Böyle bir durumda Kernel kendi rolünü oynar ve her işlemin hangi belleği kullanacağına ve gerekli belleğin mevcut olmaması durumunda ne yapılacağına karar verir.
    Çekirdek ayrıca uygulamalardan gelen istekleri klavye, mikrofon, yazıcı vb. gibi G/Ç aygıtlarını kullanmak üzere tahsis eder.

Çekirdek Çeşitleri

Aşağıda verilen temel olarak beş tür Çekirdek vardır:

Çekirdek Nedir?

1. Monolitik Çekirdekler

Monolitik bir çekirdekte, Kullanıcı hizmetlerini ve çekirdek hizmetlerini uygulamak için aynı bellek alanı kullanılır.

Çekirdek Nedir?

Yani bu çekirdek tipinde kullanıcı hizmetleri ve çekirdek hizmetleri için kullanılan farklı bir bellek yoktur.

Aynı bellek alanını kullandığından çekirdeğin boyutu artar ve işletim sisteminin genel boyutu artar.

İşlemlerin yürütülmesi, ayrı kullanıcı ve çekirdek alanı kullanmadığından diğer çekirdek türlerine göre daha hızlıdır.

Örnekler Monolitik Çekirdeklerin Sayısı Unix, Linux, Açık VMS, XTS-400 vb.

Avantajları:

  • Ayrı bir kullanıcı alanı ve çekirdek alanı olmadığından ve daha az yazılıma ihtiyaç duyulduğundan süreçlerin yürütülmesi de daha hızlıdır.
  • Tek bir yazılım olduğu için hem kaynakları hem de derlenmiş formları daha küçüktür.

Dezavantajları:

  • Herhangi bir hizmet herhangi bir hata üretirse tüm sistemin çökmesine neden olabilir.
  • Bu çekirdekler taşınabilir değildir, bu da her yeni mimari için yeniden yazılmaları gerektiği anlamına gelir.
  • Boyutları büyüktür ve dolayısıyla yönetimi zorlaşır.
  • Yeni bir hizmet eklemek için işletim sisteminin tamamının değiştirilmesi gerekir.

2. Mikro çekirdek

Çekirdek Nedir?

Mikro çekirdek aynı zamanda şu şekilde de adlandırılır: MK ve geleneksel çekirdekten veya Monolitik Çekirdekten farklıdır. Bunda, kullanıcı hizmetleri ve çekirdek hizmetleri iki farklı adres alanına uygulanır: kullanıcı alanı ve çekirdek alanı . Her iki hizmet için de farklı alanlar kullandığından mikro çekirdeğin boyutu küçülür ve bu da işletim sisteminin boyutunu azaltır.

Mikro çekirdeklerin yönetimi ve bakımı, monolitik çekirdeklere kıyasla daha kolaydır. Yine de, daha fazla sayıda sistem çağrısı ve içerik değişimi olacaksa, bu durum sistemi yavaşlatarak performansını düşürebilir.

Bu çekirdekler, isteği bir sunucudan diğer sunucuya işlemek için bir mesaj aktarma sistemi kullanır.

Bellek adres alanlarının tanımlanması, IPC (İşlemler Arası İletişim) ve süreç yönetimi gibi yalnızca bazı temel hizmetler mikro çekirdekler tarafından sağlanır. Ağ oluşturma gibi diğer hizmetler Kernel tarafından sağlanmaz ve olarak bilinen bir kullanıcı alanı programı tarafından yönetilir. sunucular .

Döngü türleri için Java

Monolitik çekirdeklerin ana dezavantajlarından biri, çekirdekteki bir hatanın tüm sistemi çökertebilmesi ve mikro çekirdekte giderilebilmesidir. Mikro çekirdekte olduğu gibi, bir çekirdek işlemi çökerse, hataya neden olan hizmetlerin yeniden başlatılmasıyla tüm sistemin çökmesi yine de önlenebilir.

Örnekler Mikroçekirdeğin L4, AmigaOS, Minix, K42 , vesaire.

Avantajları

  • Mikro çekirdekler kolaylıkla yönetilebilir.
  • Tüm işletim sistemini değiştirmeden yeni bir hizmet kolayca eklenebilir.
  • Bir mikro çekirdekte, bir çekirdek işlemi çökerse, tüm sistemin çökmesini önlemek hala mümkündür.

Dezavantajları

  • Arayüzleme için daha fazla yazılım gereksinimi vardır, bu da sistem performansını azaltır.
  • Süreç yönetimi oldukça karmaşıktır.
  • Mesajlaşma hatalarının düzeltilmesi zordur.

3. Hibrit Çekirdek

Çekirdek Nedir?

Hibrit çekirdekler aynı zamanda şu şekilde de bilinir: modüler çekirdekler ve hem Monolitik hem de Mikro çekirdeklerin birleşimidir. Monolitik çekirdeklerin hızından ve mikro çekirdeklerin modülerliğinden yararlanır.

Hibrit çekirdek, monolitik bir çekirdeğin ek özelliklerine sahip bir mikro çekirdeğin genişletilmiş versiyonu olarak anlaşılabilir. Bu çekirdekler, MS Windows'un farklı sürümleri gibi ticari işletim sistemlerinde yaygın olarak kullanılmaktadır.

Mikro çekirdeğe çok benzemekle birlikte, sistemin performansını artırmak için çekirdek alanında bazı ek kodlar da içerir.

Hibrit çekirdekler aşağıdaki gibi bazı hizmetlerin çalıştırılmasına izin verir: çekirdek alanındaki ağ yığını Geleneksel bir mikro çekirdeğe kıyasla performansı düşürmek için, ancak yine de çekirdek kodunun (aygıt sürücüleri gibi) kullanıcı alanındaki sunucular olarak çalıştırılmasına izin verir.

Hibrit Çekirdek örnekleri Windows NT, Netware, BeOS vb.'dir.

Avantajları:

  • Test için yeniden başlatmaya gerek yoktur.
  • Üçüncü taraf teknolojisi hızla entegre edilebilir.

Dezavantajları:

dizi listesi yöntemleri
  • Geçilecek daha fazla arayüzle daha fazla hata olasılığı vardır.
  • Bazı yöneticiler için modüllerin bakımını yapmak, özellikle sembol farklılıkları gibi sorunlarla uğraşırken kafa karıştırıcı bir görev olabilir.

4. Nanoçekirdek

Adından da anlaşılacağı gibi, Nanokernel'de çekirdeğin tam kodu çok küçüktür, bu da donanımın ayrıcalıklı modunda yürütülen kodun çok küçük olduğu anlamına gelir . Burada nano terimi, nanosaniye saat çözünürlüğünü destekleyen bir çekirdeği tanımlar.

Nanoçekirdek örnekleri EROS vb.

Avantajları

  • Çok küçük boyutlarda bile donanım soyutlamaları sağlar.

Dezavantajları

  • Nanoçekirdek sistem hizmetlerinden yoksundur.

5. Ekzoçekirdek

Exokernel hala geliştirilmektedir ve işletim sistemi tasarımına yönelik deneysel bir yaklaşımdır.

Bu çekirdek türü diğer çekirdeklerden şu şekilde farklıdır; kaynak koruması yönetimden ayrı tutulur, bu da uygulamaya özel özelleştirme yapmamıza olanak tanır.

Avantajları:

çay kaşığı boyutu
  • Exokernel tabanlı sistem birden fazla kütüphane işletim sistemini bünyesinde barındırabilir. Her kitaplık, biri üst düzey kullanıcı arayüzü geliştirme için, diğeri ise gerçek zamanlı kontrol için kullanılabilen farklı bir API'yi dışa aktarır. .

Dezavantajları:

  • Dış çekirdeğin tasarımı çok karmaşıktır.

Çekirdek Paniği nedir?

Daha önce de tartıştığımız gibi, bu çekirdek tüm bilgisayar sistemini kontrol ediyor; dolayısıyla çökerse tüm sistemi çökertebilir. MacOS ve Linux'ta bu tür istenmeyen olaya '' Çekirdek Paniği.' Çekirdek Paniğinden kurtulmak için sistemi yeniden başlatmamız gerekiyor.

Genellikle bu çekirdek paniklerine donanım iletişim sorunları neden olur. Bu nedenle, tekrarlanan çekirdek panikleri meydana geliyorsa, daha az gerekli veya gereksiz aygıtların fişini çekmeye çalışın ve sorunun çözülüp çözülmediğini kontrol edin.