İçeriğe atla

Mikro çekirdek

Sırasıyla monolitik ve mikro çekirdek tabanlı işletim sistemlerinin yapısı

Bilgisayar biliminde, bir mikro çekirdek (İngilizcemicrokernel), bir işletim sistemini uygulamak için gereken mekanizmaları minimuma yakın sağlayan işletim sistemi çekirdeği türüdür. Ana çekirdek sadece birimler arası iletişim ve süreçleri sıralama işlerini yapar. Bellek yönetimi, kayıt ortamı yönetimi, sürücüler ve ağ ile ilgili çok sayıda sürec birbirleriyle iletişim kurarak haberleşir. Bu sayede; parçalardan oluşan yapı ve tasarımın sadeleştirilmesi, bir parçadaki hatanın diğer parçaları etkilememesi ve çalışma anında işletim sisteminin güncelleştirilebilmesi mümkün olabilmektedir.

Mikro çekirdek, çekirdek modu olarak adlandırılan en ayrıcalıklı düzeyde çalışan tek yazılım olabilir. Aygıt sürücüleri, dosya sistemleri gibi geleneksel işletim sistemi işlevleri mikro çekirdeğin kendisinden kaldırılır ve bunun yerine kullanıcı alanında (İngilizceuser space) çalışır.

Kaynak kodu boyutu açısından, mikro çekirdekler genellikle monolitik çekirdeklerden daha küçüktür. Örneğin MINIX 3 mikro çekirdeğinde yalnızca yaklaşık 12.000 satır kod bulunur.[1]

Giriş

Erken işletim sistemi çekirdekleri, bilgisayar belleği sınırlı olduğu için oldukça küçüktü. Bilgisayarların kapasitesi arttıkça, çekirdeğin kontrol etmesi gereken cihazların sayısı da arttı. Unix'in ilk tarihi boyunca, çeşitli aygıt sürücüleri ve dosya sistemi uygulamaları içermelerine rağmen, çekirdekler genellikle küçüktü. Adres alanları 16 bit'ten 32 bit'e yükseldiğinde, çekirdek tasarımı artık donanım mimarisi tarafından kısıtlanmadı ve çekirdekler büyümeye başladı.

Unix'in Berkeley Yazılım Dağıtımı (BSD), daha büyük çekirdekler çağını başlattı. İşlemci, diskler ve yazıcılardan oluşan temel bir sistemi çalıştırmanın yanı sıra BSD, eksiksiz bir TCP/IP ağ sistemi ve mevcut programların ağ üzerinde 'görünmez bir şekilde' çalışmasına izin veren bir "sanal" cihaz ekledi. Bu büyüme uzun yıllar devam etti ve milyonlarca satır kaynak koduna sahip çekirdeklerle sonuçlandı. Bu büyümenin bir sonucu olarak, çekirdekler hatalara eğilimliydi ve bakımı giderek zorlaştı.

Mikro çekirdek, çekirdeklerin bu büyümesini ve bunun sonucunda ortaya çıkan zorlukları ele almak için tasarlandı. Teoride, mikro çekirdek tasarımı, kullanıcı alanı hizmetlerine bölünmesi nedeniyle kodun daha kolay yönetilmesine izin verir. Bu ayrıca, çekirdek modunda çalışan kod miktarının azalmasından kaynaklanan artan güvenlik ve kararlılık sağlar. Örneğin, bir ağ hizmeti arabellek taşması (İngilizcebuffer overflow) nedeniyle çökerse, yalnızca ağ hizmetinin belleği bozularak sistemin geri kalanı çalışmaya devam eder.

Süreçler arası iletişim

Süreçler arası iletişim (İngilizceinter-process communication), ayrı süreçlerin genellikle ileti göndererek birbirleriyle iletişim kurmasını sağlayan bir mekanizmadır. Süreçler arası iletişim, işletim sisteminin, sistemdeki diğer uygulamalar tarafından kullanılan ve süreçler arası iletişim aracılığıyla çağrılan sunucu adı verilen daha küçük uygulamalardan oluşturulmasına izin verir. Çevresel donanım desteğinin çoğu veya tamamı, aygıt sürücüleri, ağ protokol yığınları, dosya sistemleri, grafikler vb. için sunucularla bu şekilde gerçekleştirilir.

Süreçler arası iletişim (IPC) zaman uyumlu (İngilizcesynchronous) veya zaman uyumsuz (İngilizceasynchronous) olabilir. Zaman uyumsuz IPC, ağ iletişimine benzer: gönderen bir ileti gönderir ve çalışmaya devam eder. Alıcı, mesajın kullanılabilirliğini kontrol eder veya bir bildirim mekanizması aracılığıyla iletiye karşı uyarılır. Zaman uyumsuz IPC, çekirdeğin iletiler için arabellekler ve kuyruklar (İngilizcequeue) tutmasını ve arabellek taşmasıyla ilgilenmesini gerektirir; ayrıca iletilerin çift kopyalanmasını (İngilizcedouble copying) gerektirir (göndericiden çekirdeğe ve çekirdekten alıcıya). Zaman uyumlu IPC'de, birinci taraf (gönderen veya alıcı), diğer taraf IPC'yi gerçekleştirmeye hazır olana kadar engellenir. Ara belleğe alma veya birden çok kopya gerektirmez. Çoğu geliştirici zaman uyumsuz göndermeyi ve zaman uyumlu almayı tercih eder.

Kaynakça

  1. ^ "www:documentation:read-more [Wiki]". wiki.minix3.org. 28 Aralık 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Mayıs 2022. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">İşletim sistemi</span> bilgisayar donanım kaynaklarını yöneten yazılım

İşletim sistemi ya da işletim dizgesi, bir bilgisayarın donanım kaynaklarını yöneten ve uygulama yazılımlarına hizmet sağlayan yazılımların bir bütünüdür. İşletim sistemleri, bilgisayarın donanımı ile uygulama yazılımları arasında bir köprü görevi görerek kullanıcıların sistemle etkileşim kurmasını sağlar. Öne çıkan örnekler arasında Microsoft Windows, macOS, GNU/Linux dağıtımları, Android ve iOS yer alır.

<span class="mw-page-title-main">Unix</span>

UNIX türevi işletim sistemleri çok işlemcili çok pahalı makinelerden tek işlemcili, basit ve çok ucuz ev bilgisayarlarına kadar pek çok cihaz üzerinde çalışabilen esnek ve sağlamlığı çok değişik koşullarda test edilmiş sistemlerdir. Fakat özellikle kararlı yapısı ve çok kullanıcılı-çok görevli yapısıyla çok işlemcili sunucularda adeta standart haline gelmiştir ve özellikle akademik dünyada iş istasyonları üzerinde çok yaygın bir kullanım alanı bulmuştur. UNIX, Interdata 7/32, VAX ve Motorola 68000 arasında hızla yayıldı.

<span class="mw-page-title-main">BSD</span>

BSD, Kaliforniya Üniversitesi, Berkeley'in kaynak kodu dağıtımı olan, AT&T'nin UNIX'i için bir eklentiler zinciridir. Birçok açık kaynak kodlu işletim sistemi projesi, 4.4 BSD-Lite olarak bilinen kaynak kodu dağıtımını temel kabul eder. Ek olarak bunlar, özellikle GNU projesi olmak üzere diğer birçok açık kod projesini de kapsar.

macOS, Macintosh işletim sistemi ailesinin son sürümüdür ve Apple tarafından Macintosh bilgisayarları için tasarlanmış bir işletim sistemidir.

<span class="mw-page-title-main">Aygıt sürücüsü</span> belirli tip cihazları kontrol eden veya çalıştıran bilgisayar programı

Aygıt sürücüsü veya diğer adıyla donanım sürücüsü, işletim sistemlerinde korumalı mod mimarisinde uygulamaların işletim sisteminden bağımsız olarak donanıma erişiminin kısıtlandığı durumlarda donanımla veya işletim sistemi çekirdeği ile haberleşebilmek maksadı ile yazılan kodlardır. Sık ve yaygın olarak, sadece "sürücü" de denir.

<span class="mw-page-title-main">AmigaOS</span> Amiga kişisel bilgisayarının işletim sistemi

AmigaOS, Amiga kişisel bilgisayarının işletim sistemidir. Grafik arabirimi olan Workbench, CLI komut satırı arabirimi ile birlikte AmigaDOS ve çoğu Amiga modelinde ROM'da yer alan Kickstart'tan oluşur.

<span class="mw-page-title-main">POSIX</span>

POSIX, UNIX için "taşınabilir işletim sistemi arabirimi".

<span class="mw-page-title-main">Çekirdek (bilgisayar bilimi)</span>

İşletim sistemi çekirdeği, kısaca çekirdek (kernel), işletim sistemindeki her şeyin üzerinde denetimi olan merkezi bileşenidir. Uygulamalar ve donanım seviyesindeki bilgi işlemleri arasında bir köprü görevi görür. Çekirdeğin görevleri sistemin kaynaklarını yönetmeyi de kapsamaktadır. Genellikle çekirdek, işletim sisteminin temel bir elemanı olarak, yazılımın fonksiyonunu yerine getirebilmesi için kontrol etmesi gereken kaynaklar için düşük seviye soyutlama katmanı sağlayabilir. İşletim sistemi görevleri, tasarımları ve uygulanmalarına göre farklı çekirdekler tarafından farklı şekillerde yapılır. Sistem açılırken belleğe yüklenir ve sistem kapatılıncaya kadar ana bellekte kalır.

<span class="mw-page-title-main">QNX</span>

QNX, gömülü sistemler pazarına yönelik Unix benzeri, gerçek zamanlı işletim sistemidir.

Uzak yordam çağrısı (ya da uzak prosedür çağrısı; İngilizce: Remote Procedure Call , bir diğer adres uzayı üzerinde programcı açıkça bu uzaktan etkileşim detayları kodlama olmadan çalıştırmak için bir alt yordam veya prosedürü sağlayan bilgisayar programına izin veren süreçler arası iletişim teknolojisidir. Sunucu üzerindeki servisleri kontrol ettiğimizde karşımıza çıkan RPC, arka plânda birçok şeyi gerçekleştiren bir servistir. RPC, temelde istemci ve sunucu arasında yapılan işlemlerin iletişimi için tasarlandı. Bir işlemin gerçekleşmesi için bir gönderici ve bir de istemci vardır.. Yani programcı, alt prosedür ister çalışan programın yerelinde ister uzağında olsun, temelde aynı kodu yazar. Bu bir tür istemci-sunucu etkileşimidir ve tipik olarak bir istek-yanıt mesaj geçirme sistemi aracılığıyla uygulanır. Nesne yönelimli programlama modelinde, RPC'ler uzaktan yöntem çağırma ile temsil edilir. RPC modeli bir konum şeffaflığı seviyesini ifade eder, yani çağrı prosedürleri yerel ya da uzak olsun büyük ölçüde aynıdır, ancak genellikle aynı değildirler, bu nedenle yerel çağrılar uzak çağrılardan ayırt edilebilir. Uzak çağrılar genellikle yerel çağrılardan çok daha yavaş ve daha az güvenilirdir, bu nedenle bunları ayırt etmek önemlidir.

<span class="mw-page-title-main">Darwin (işletim sistemi)</span>

Darwin, Mac OS'un temelini oluşturan, 2000 yılında Apple tarafından yayınlanan açık kaynak bir işletim sistemidir. Darwin, OS X, iOS, watchOS, iPadOS ve tvOS platformlarının tabanını oluşturur.

<span class="mw-page-title-main">Unix benzeri</span>

Unix benzeri işletim sistemi, resmi bir UNIX markası olmamasına karşın Unix sistemine benzer şekilde çalışan işletim sistemleridir. Unix benzeri bir yazılım, Unix komut ve kabuğuna benzer işlevlere sahiptir. Bu terimin kullanımı için bir standart yoktur ve bir yazılımın veya işletim sisteminin Unix benzeri olarak adlandırılıp adlandırılamayacağı üzerine farklı görüşler vardır.

Bu sayfa işletim sistemi listesidir. Bilgisayar işletim sistemleri teknolojisine, sahibine, lisansına, çalışma durumuna, kullanıma ve birçok diğer özelliklerine göre kategorilere ayrılır. Uygulamada birçok grup ortak olabilir.

Windows Embedded CE 6.0 veya Windows CE 6.0 Microsoft Windows gömülü işletim altıncı büyük sürümüdür. Böyle endüstriyel kontrol ve dijital kameralar gibi tüketici elektroniği cihazlarına kurumsal özel araçlar hedefleyir. Her işlem 32 MB-dan 2 GB-a kadar, sanal adres alanı alır. CE 6.0-da önceki sürümlerinden 32 işlem limitinden, 32.768 süreçlerini destekleyen bir çekirdek bulunmaktadır.

<span class="mw-page-title-main">Windows NT mimarisi</span>

Microsoft tarafından üretilen ve satılan bir işletim sistemi satırı olan Windows NT'nin mimarisi, kullanıcı modu ve çekirdek modu olmak üzere iki ana bileşenden oluşan katmanlı bir tasarımdır. Tek işlemcili ve simetrik çok işlemcili (SMP) tabanlı bilgisayarlarla çalışmak üzere tasarlanmış, önleyici, yeniden gelen bir işletim sistemidir. Giriş/çıkış isteklerini işlemek için, I / O istek paketlerini (IRP'ler) ve zaman uyumsuz G / Ç'yi kullanan paket odaklı G / Ç kullanırlar. Windows XP'den başlayarak, Microsoft Windows'un 64 bit sürümleri hazırlanmaya başladı; Bundan önce, bu işletim sistemleri yalnızca 32-bit sürümlerde mevcuttu.

<span class="mw-page-title-main">XNU</span>

XNU, MacOS işletim sisteminde kullanılmak üzere Aralık 1996'dan beri Apple'da geliştirilen ve Darwin işletim sisteminin bir parçası olarak ücretsiz ve açık kaynaklı yazılım olarak piyasaya sürülen bilgisayar işletim sistemi çekirdeğidir. Ayrıca, iOS, tvOS ve watchOS işletim sistemlerinin çekirdeği olarak da kullanılır. XNU, "X Not Unix"'in bir kısaltmasıdır.

Mach, Carnegie Mellon Üniversitesi'nde öncelikle dağıtık hesaplama ve paralel hesaplama bilgi işlem olmak üzere işletim sistemi araştırmalarını desteklemek için geliştirilen bir işletim sistemi çekirdeğidir. Mach bir mikrokernelin en eski örneklerinden biri olarak sıklıkla bahsedilir. Bununla birlikte, Mach'ın tüm versiyonları mikrokernel değildir. MacOS'un temel aldığı NextStep ve OpenStep, hepsi de daha önce bir mikro çekirdek olmayan Mach içeren XNU işletim sistemi çekirdeğini büyük bir bileşen olarak içerir. Mach türevleri, GNU Hurd ve Apple'ın işletim sistemleri macOS, iOS, tvOS ve watchOS'daki modern işletim sistemi çekirdeklerinin temelini oluşturmaktadır.

<span class="mw-page-title-main">Phantom OS</span>

Phantom OS, çoğunlukla Rus programcılar tarafından yapılan bir işletim sistemidir. Kalıcı sanal bellek kavramına dayalıdır ve bir sanal makine, yönetilen kod ve bayt kodları kullanır. Unix benzeri sistemlerin klasik kavramlarına dayanmayan birkaç işletim sisteminden biridir. Öncelikli hedefi hem işletim sisteminde hem de uygulama yazılımında aynı anda basitlik ve etkinlik sağlamaktır. GNU Kısıtlı Genel Kamu Lisansı (LGPL) altında yayınlanan ücretsiz ve açık kaynaklı bir yazılımdır (FOSS).

<span class="mw-page-title-main">Minix 3</span>

Minix 3, Unix benzeri bir küçük bir işletim sistemidir. BSD-3-Lisansı altında yayınlanır ve önceki sürümler olan Minix 1 ve 2'nin devamı niteliğinde bir projedir.

<span class="mw-page-title-main">HelenOS</span>

HelenOS çok sunuculu bir mikro çekirdek tasarımı temelli bir işletim sistemidir. HelenOS'un kaynak kodu C dilinde yazılmıştır ve BSD-3-Clause lisansı altında yayınlanmıştır.