İçeriğe atla

XNU

XNU
Geliştirici(ler)Apple
Kaynak türüAçık kaynak
LisansApple Public Source License
Çekirdek türüMelez çekirdek
İlk Yayınlanma
  • Aralık 1996
Platform desteğiIA-32, x86-64, ARM
Programlama diliC, C++

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.[1] 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.

NextStep işletim sistemi için NeXT tarafından geliştirilen XNU, Carnegie Mellon Üniversitesi'nde geliştirilen Mach çekirdeğinin 2.5 sürümünü 4.3BSD bileşenleri ve Driver Kit adlı sürücüleri yazmak için bir Objective-C API'si ile birleştiren karma bir çekirdekti.[2]

Apple, NeXT'yi satın almasının ardından, Mach bileşeni OSF'den OSFMK 7.3'e yükseltildi, BSD bileşenleri FreeBSD projesinden alınan kodla yükseltildi ve Sürücü Kiti, G/Ç Kiti adı verilen sürücüleri yazmak için bir C++ API ile değiştirildi.[3]

Çekirdek tasarımı

XNU

XNU hem monolitik çekirdeklerin hem de mikro çekirdeklerin özelliklerini içeren, her iki teknolojiden en iyi şekilde yararlanmaya çalışan melez bir çekirdektir; mikrokernellerin mesajlaşma yeteneği daha büyük modülerlik sağlar ve işletim sisteminin daha büyük bölümleri hafıza korumasından yararlanabilir.[4]

2007 itibarıyla, XNU hem bir işlemci, hem de simetrik çoklu işlem (SMP) modelleri olan ARM, IA-32 ve x86-64 işlemciler üzerinde çalışmaktadır.[5] PowerPC desteği, sürüm 10'dan itibaren kaldırılmıştır (Mac OS X Snow Leopard).

Mach

XNU çekirdeğinin temeli, ağır modifiye (melez) bir OSFMK 7.3 çekirdeğidir. Bu nedenle, bir işletim sisteminin çekirdeğini, ayrı bir süreç olarak çalıştırmak mümkündür; bu da büyük bir esneklik sağlar (Mach çekirdeğinin üzerinde paralel birkaç işletim sistemini çalıştırabilir).[6] Ancak çekirdek / kullanıcı modu bağlam anahtarı ve çekirdeklerin adres alanları ile hizmet çağrı merkezleri arasındaki eşleme veya kopyalama mesajından kaynaklanan zamana bağlı çekirdek / kullanıcı modu nedeniyle genelde performansı düşürür. Mac OS X ile tasarımcılar bazı görevleri hızlandırmaya çalıştılar ve böylece BSD işlevselliği Mach ile çekirdeğe yerleştirildi.[7] Sonuç, ağır bir şekilde değiştirilmiş (melez) OSFMK 7.3 çekirdeğidir; Apple, OSFMK 7.3 lisanslıdır, OSFMK 7.3, OSF'den bir mikrokerneldir. OSFMK 7.3, University of Utah Mach 4 çekirdeği ve orijinal Carnegie Mellon University Mach 3.0 mikro çekirdeğinden çıkarılan birçok Mach 3.0 varyantından geçerli kodun uygulanabilir kodunu içerir.

BSD

XNU grafiği

Çekirdekteki Berkeley Software Distribution (BSD) bölümü POSIX uygulama programlama arayüzü (API, BSD sistem çağrıları), Mach görevlerinin üstündeki Unix işlem modeli, temel güvenlik ilkeleri, kullanıcı ve grup kimlikleri, izinler, ağ protokolleri, sanal dosya sistemi kodu (bir dosya sistemi bağımsız günlük kaydı katmanı dahil), HFS / HFS Plus, Ağ Dosya Sistemi (NFS) istemcisi ve sunucusu, şifreleme çerçevesi, UNIX Sistem V işlemler arası iletişim (IPC), denetim alt sistemi, zorunlu erişim kontrolü ve bazı kilitleme ilkelleri gibi birkaç yerel dosya sistemidir.[8] XNU'da bulunan BSD kodu FreeBSD çekirdeğinden geldi. Birçoğu önemli ölçüde değiştirilmiş olsa da, Apple ile FreeBSD Projesi arasında hala kod paylaşımı gerçekleşiyor.

K32/K64

XNU, Mac OS X Snow Leopard, v10.6 (Darwin sürüm 10) ve daha sonraki sistemde iki çeşittir; 32 bitlik bir sürüm olan K32 ve 64 bitlik bir sürüm olan K64. K32, kullanıcı arazisinde 64 bitlik uygulamaları çalıştırabilir. Mac OS X 10.6'da yeni olan şey, 64-bit çekirdek alanında XNU'yu çalıştırma yeteneğiydi. K32, Mac Pro ve Xserve modelleri dışındaki tüm makinelerde kullanıldığında 10.6 Server için varsayılan çekirdekti ve 2008'den itibaren ve 64 bit uygulamaları çalıştırabiliyordu.[9] K64, K32'ye kıyasla birkaç avantaja sahiptir:

  • Bellek haritası 32-bit çekirdek alanının orantısız olarak geniş bir alanını tüketirken 32 GB'den fazla RAM yönetebilir.
  • Önbellek arabellek boyutları, 32-bit çekirdek alanının izin verdiğinden daha büyük olabilir, bu da g / Ç performansını potansiyel olarak artıracaktır.
  • Çekirdek, çok büyük doğrudan bellek erişimi (DMA) arabelleklerine sahip olsa bile 64-bit alanındaki tüm aygıtları eşleyebildiği için, yüksek performanslı ağ aygıtlarını veya çoklu grafik işlemci birimlerini (GPU) kullanırken performans artar.

6 ve 4'ü basılı tutarken önyükleme yapmak, 64-bit çekirdeği destekleyen makinelerde K64'i önyüklemeye zorlar. [11] K64 32-bit uygulamaları çalıştıracak, ancak 32-bit çekirdek uzantılarını (KEXT) çalıştırmayacaktır, böylece yükleyebilmek için bunlar K64'e taşınmalıdır.[10]

I/O Kit

I/O Kit Embedded C ++ tabanlı C ++ alt kümesiyle yazılmış aygıt sürücüsü çerçevesidir. Nesne yönelimli tasarımını kullanarak, aygıt sürücülerinin daha az zaman ve kodla yazılmasına yardımcı olan, herhangi bir sürücüler sınıfında ortak olan özellikler çerçevede sağlanmaktadır. G / Ç Seti, çok dişli, simetrik çok işlemcili (SMP) güvenlidir ve çalışırken aygıtlara otomatik, dinamik aygıt yapılandırmasına olanak tanır.[11]

Çoğu sürücü, kullanıcı alanından çalıştırılacak şekilde yazılabilir; bu da sistemin kararlılığını daha da geliştirir. Bir kullanıcı alanı sürücüsü çökerse, çekirdeği çökertmez. Bununla birlikte, bir çekirdek-alan sürücüsü çökerse çekirdeği çöker. Çekirdek alanı sürücülerine örnek olarak disk adaptörü ve ağ adaptörü sürücüleri, grafik sürücüleri, Evrensel Seri Veri Yolu (USB) ve IEEE 1394 FireWire ana bilgisayar denetleyicileri için sürücüler ve VirtualBox, Mac için Parallels Desktop ve VMware Fusion gibi sanal makine yazılımı için sürücüler bulunur.[12]

Paylaşılan kaynakları koruma

Çok işlemcili makinelerde güvenle çalıştırmak için, paylaşılan kaynaklara (dosyalar, veri yapıları vb.) Erişim dizileri veya işlemler aynı anda aynı kaynağı değiştirmeye çalışmaması için serileştirilmelidir. Atomik işlemler, spinlock'lar, kritik bölümler, karşılıklı dışlamalar ("muteksler") ve dizgelerin seri hale getirilmesi eş zamanlı erişimi önlemek için kullanılabilecek tüm yöntemlerdir. Linux ve FreeBSD'nin son sürümlerinde olduğu gibi, XNU, Mac OS X 10.4 ve Darwin 8.0 itibarıyla çok işlemcili sistemlerde daha yüksek performans elde etmek için ince taneli mutex modeli kullanmaktadır.

Kaynakça

  1. ^ "Darwin-xnu: The Darwin Kernel". 15 Aralık 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Aralık 2017. 
  2. ^ "Opensource-Apple / XNU". 24 Eylül 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Aralık 2017. 
  3. ^ "iOS and macOS researcher is seeking people to work on open-source kernel". 15 Aralık 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Aralık 2017. 
  4. ^ "Kernel Architecture Overview". 17 Şubat 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Aralık 2017. 
  5. ^ "Apple open-sourced the kernel of iOS and macOS for ARM processors". 15 Aralık 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Aralık 2017. 
  6. ^ "A Trusted, Scalable, Real-Time Operating System Environment" (PDF). 22 Ağustos 2017 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 15 Aralık 2017. 
  7. ^ "What is Mac OS X?". 19 Nisan 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Aralık 2017. 
  8. ^ "Grand Central Dispatch - FreeBSD port". 15 Aralık 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Aralık 2017. 
  9. ^ "XNU Kernel: Source Code". 15 Aralık 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Aralık 2017. 
  10. ^ "Mach IPC Interface". 21 Mayıs 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Aralık 2017. 
  11. ^ "Introduction to I/O Kit Fundamentals". 15 Aralık 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Aralık 2017. 
  12. ^ "I/O Kit Overview". 3 Ağustos 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Aralık 2017. 

Dış bağlantılar

Ayrıca bakınız

İlgili Araştırma Makaleleri

<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">Yazılım</span> bilgisayarın somut olmayan çalıştırılabilir bileşeni

Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik aygıtların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makine komutlarıdır.

<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.

<span class="mw-page-title-main">Mikro çekirdek</span>

Bilgisayar biliminde, bir mikro çekirdek, 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.

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">Ç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">Mac OS X Snow Leopard</span> Appleın desktop ve sunucu işletim sistemi, Mac OS Xin yedinci ana sürümüdür.

Mac OS X Snow Leopard veya Mac OS X 10.6 Snow Leopard, Apple'ın desktop ve sunucu işletim sistemi, Mac OS X'in yedinci ana sürümüdür. Apple CEO'su Steve Jobs, Snow Leopard'ı WWDC 'da 9 Haziran 2008 tarihinde duyurdu ve Yazılım Mühendisliğinden Sorumlu Kıdemli Başkan Yardımcısı Bertrand Serlet tarafından geliştiricilere özel olarak gösterildi. İlk genel gösteri, Dünya Çapında Pazarlamadan Sorumlu Kıdemli Başkan Yardımcısı Serlet ve Phil Schiller tarafından, WWDC 2009'da sunulmuştur.

<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.

uname

uname (veya unix name) - Unix ve Unix benzeri işletim sistemleri bir yazılım konsol programı olup, sistem hakkında bilgi verir. Geçerli makine ve üzerinde çalışdığı işletim sistemi hakkında isim, sürüm ve diğer ayrıntıları yazdırır. uname sistem çağrısı ve komut PWB / UNIX ile ilk kez ortaya çıktı. Her ikisi de POSIX tarafından belirtilir.

<span class="mw-page-title-main">Mac OS X Tiger</span> Mac OS Xin beşinci büyük sürümü

Mac OS X Tiger, Mac OS X'in, Mac bilgisayarlar için Apple'ın masaüstü ve sunucu işletim sisteminin beşinci büyük sürümüdür. Takma isim olarak yeni sürüme Kaplan ismi verilmiştir. Sürüm Apple Software Update yöntemi ile güncellenmekte. Tiger Mac OS X Pantherin halefi olarak 129.95 dolara 29 Nisan 2005 tarihinde kamuoyuna sunuldu. Yeni özelliklerden bazılarına 64-bit PowerMac G5 için geliştirilmiş destek, Spotlight adlı bir hızlı arama sistemi, Safari web tarayıcısının yeni bir sürümü dahildir.

<span class="mw-page-title-main">Mac OS X 10.0</span>

Mac OS X 10.0 veya Mac OS X Cheetah Apple tarafından üretilmiş ve piyasaya çıkarılmış ilk nesil Mac OS X bilgisayar ve sunucu işletim sistemidir. Sürüme takma isim olarak kedigillerin bir türü olan Çita ismi verildi. 129 dolar fiyat ile 24 Mart 2001'de piyasaya sürüldü.

<span class="mw-page-title-main">Mac OS X Public Beta</span>

Mac OS X Public Beta, Apple Computer Mac OS X Cheetah işletim sisteminin Aqua kullanıcı arayüzüne özelliğine ilk halka açık versiyonu oldu. 29,95$'a satılmıştır.13 Eylül 2000 tarihinde kamuoyuna serbest bırakıldı. Bu, yazılım geliştiriciler ve erken benimseyenlere yaklaşan işletim sisteminin bir önizlemesini test etmek ve nihai yayınlanmasından önce gelecek işletim sistemi için yazılım geliştirmeye izin verdi. ABD sürümünün 1H39 bir yapı numarası ve uluslararası sürümün 2E14 yapı numarası vardır.

Cocoa Touch Apple' tarafından yapılan iOS, Apple Watch için watchOS ve dördüncü nesil Apple TV için tvOS üzerinde çalışan yazılım programlarını oluşturmak için bir UI Kullanıcı arayüzü çerçevedir. macOS üzerinde mevcut değildir. Cocoa Touch iPhone, iPod Touch ve iPad için iOS işletim sisteminin bir soyutlama katmanını sağlar.

<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.

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.

Yazılım mühendisliğinde, bir uyumluluk katmanı, bir ana sistem üzerinde, eski veya yabancı bir sistem için yazılmış ikili dosyaların çalıştırılmasını sağlayan bir arabirimdir. Bu, yabancı sistem çağrılarını, yerel sistem çağrılarına çevirir. Yabancı sisteme yönelik bazı kütüphaneler, ana sistem üzerinde yabancı ikili dosyaları çalıştırmak için yeterli olacaktır genellikle. Donanım uyumluluğu katmanıysa donanım emülasyonu sağlayan araçlardan oluşur.

Carbon, Macintosh bilgisayarları çalıştıran işletim sistemi olan Mac OS X için Apple'ın C tabanlı uygulama programlama arayüzlerinden (API) biridir. Carbon, Mac OS 8 ve Mac OS 9 işletim sistemlerinde çalışan programlar için iyi bir geriye dönük uyumluluk sağlamıştır. Geliştiriciler, “klasik” Mac OS ve Macintosh işletim sistemleri yazılımlarını OS X platformuna taşımak için uygulamayı azami çaba harcayarak çok az bir çaba ile kullanabilirler. OpenStep'te ortaya çıkan tamamen farklı Cocoa API sistemidir.

Bu, macOS bileşenlerinin bir listesidir. Bunlar mevcut Mac işletim sisteminde bulunan özelliklerdir.

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

Çoklu önyükleme(multi-booting), tek bir bilgisayara birden çok işletim sistemi kurma ve hangisinin ön yükleneceğini(booting) seçebilme eylemidir. Çift önyükleme(dual-booting) terimi, özellikle iki işletim sisteminin ortak yapılandırmasını ifade eder. Çoklu önyükleme, özel bir ön yükleyici(booting) gerektirebilir.

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

Bir kernel panic, bir işletim sisteminin çekirdeği tarafından, güvenli bir şekilde kurtarılamadığı veya sistemi çalıştırmaya devam etmenin büyük veri kaybı yaşanabilmesinin yüksek bir riske sahip olacağı dahili bir kritik hata tespit edildiğinde alınan bir güvenlik önlemidir. Terim büyük ölçüde Unix ve Unix benzeri sistemlere özgüdür. Microsoft Windows işletim sistemlerindeki eşdeğeri, genellikle "mavi ekran" olarak adlandırılan bir durdurma hatasıdır.