XNU - XNU

XNU
XNU Kernel Graphic.svg
XNU çekirdeği
geliştirici Apple Inc.
Yazılmış C , C++
işletim sistemi ailesi Unix benzeri , Unix
çalışma durumu Akım
Kaynak modeli Açık kaynak
İlk sürüm Aralık 1996 ; 24 yıl önce ( 1996-12 )
depo Bunu Vikiveri'de düzenleyin
Uygun İngilizce, diğerleri
Platformlar Güncel: x86-64 , 64-bit ARM , 32-bit ARM (32-bit ARM desteği kapalı kaynaklıdır)
Tarihsel: PowerPC (32-bit ve 64-bit), IA-32
çekirdek türü hibrit
Lisans Apple Genel Kaynak Lisansı 2.0
Öncesinde Mach , Nukernel
Resmi internet sitesi açık kaynak .apple .com /kaynak /xnu

XNU bilgisayar işletim sistemi (OS) çekirdek geliştirilen Apple Inc. , Mac OS X (şimdi kullanılmak üzere Aralık 1996 yılından bu yana MacOS ) işletim sistemi gibi serbest özgür ve açık kaynak yazılımların bir parçası olarak Darwin'in olan OS, temeli Apple TV Yazılım , iOS , iPadOS , watchos ve tvOS işletim sistemleri. XNU , X is Not Unix'in kısaltmasıdır .

Aslen 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ünden türetilmiş , kendisi 4.3BSD'nin soyundan gelen ve 4.3BSD çekirdeğinin büyük kısmını ve bir uygulama programlamasını içeren hibrit bir çekirdekti. Driver Kit adlı sürücüleri yazmak için Objective-C'deki arabirim (API) .

Elma NeXT'i almasından sonra, çekirdek türetilen kodu ile güncellendi OSFMK 7.3 osf ve FreeBSD projesi ve Sürücü Kiti ile değiştirildi C ++ G / Ç Kiti adlı sürücüleri yazmak için API.

çekirdek tasarımı

XNU a, melez çekirdek hem özelliklerini içeren monolitik çekirdeklerin ve mikro çekirdek gibi her iki teknolojinin, en iyi şekilde kullanmak için çalışırken, geçen mesaj yarar daha fazla modüler ve işletim sisteminin daha büyük bölümlerini sağlayan mikro çekirdek yeteneğini bellek koruması ve tutma bazı kritik görevler için monolitik çekirdeklerin hızı.

2021 itibariyle XNU , hem tek işlemcili hem de simetrik çoklu işlem (SMP) modelleri olan ARM64 ve x86-64 işlemciler üzerinde çalışır . PowerPC desteği Mac OS X 10.6 sürümünden itibaren kaldırıldı . IA-32 desteği , Mac OS X 10.7 sürümünden itibaren kaldırılmıştır ; 32 bit ARM desteği, iOS 11'deki sürümden itibaren kaldırıldı .

Mach

XNU çekirdeğinin temeli, yoğun biçimde değiştirilmiş (hibrit) bir Open Software Foundation Mach çekirdeğidir ( OSFMK ) 7.3. Bu nedenle, bir işletim sisteminin çekirdeğini ayrı işlemler olarak çalıştırabilir, bu da büyük bir esneklik sağlar (birkaç işletim sistemini Mach çekirdeğinin üzerinde paralel olarak çalıştırabilir), ancak bu genellikle zaman alıcı çekirdek/ kullanıcı modu bağlam anahtarları ve çekirdeğin adres alanları ile hizmet arka plan programlarının adres alanları arasındaki mesajların eşlenmesinden veya kopyalanmasından kaynaklanan ek yük. macOS ile tasarımcılar bazı görevleri kolaylaştırmaya çalıştılar ve bu nedenle Mach ile çekirdeğe BSD işlevleri yerleştirildi. Sonuç, OSF'den bir mikro çekirdek olan, yoğun şekilde değiştirilmiş (hibrit) bir OSFMK 7.3 çekirdeği, Apple lisanslı OSFMK 7.3'tür. OSFMK 7.3, Utah Üniversitesi Mach 4 çekirdeğinden ve orijinal Carnegie Mellon Üniversitesi Mach 3.0 mikro çekirdeğinden çatallanmış birçok Mach 3.0 varyantından geçerli kodu içerir .

BSD

Berkeley Software Distribution çekirdeğin (BSD) bölümü taşınabilir işletim sistemi arabirimi (sağlamaktadır POSIX ) uygulama programlama arabirimi (API, BSD sistem çağrıları), Unix Mach görevleri, temel güvenlik politikaları, kullanıcı ve grup kimlikleri, izinleri tepesinde süreç modeli, ağ protokol yığını (protokoller), sanal dosya sistemi kodu (bir dosya sisteminden bağımsız günlük kaydı katmanı dahil), Hiyerarşik Dosya Sistemi (HFS, HFS Plus (HFS+)) ve Apple Dosya Sistemi (APFS) gibi çeşitli yerel dosya sistemleri , Ağ Dosya Sistemi (NFS) istemcisi ve sunucusu, kriptografik çerçeve, UNIX System V süreçler arası iletişim (IPC), denetim alt sistemi, zorunlu erişim denetimi ve bazı kilitleme ilkeleri. XNU'da bulunan BSD kodu, en son FreeBSD çekirdeğinden gelen kodla senkronize edilmiştir . Çoğu önemli ölçüde değiştirilmiş olsa da, 2009 itibariyle Apple ve FreeBSD Projesi arasında kod paylaşımı devam ediyor.

K32/K64

Mac OS X Snow Leopard , v10.6'da ( Darwin sürüm 10) XNU, K32 adlı 32 bitlik bir sürüm ve K64 adlı 64 bitlik bir sürüm olmak üzere iki çeşit olarak gelir . K32, kullanıcı alanında 64 bit uygulamaları çalıştırabilir . Mac OS X 10.6'daki yenilikler, XNU'yu 64-bit çekirdek alanında çalıştırma yeteneğiydi . K32, 2008'den itibaren Mac Pro ve Xserve modelleri dışındaki tüm makinelerde kullanıldığında 10.6 Sunucusu için varsayılan çekirdekti ve 64 bit uygulamaları çalıştırabilir. K64, K32'ye kıyasla çeşitli avantajlara sahiptir:

  • 32 GB'den fazla RAM'i yönetebilir, çünkü bellek haritası 32 bit çekirdek alanının orantısız olarak büyük bir alanını tüketir.
  • Önbellek arabellek boyutları, 32 bit çekirdek alanının izin verdiğinden daha büyük olabilir ve potansiyel olarak G/Ç performansını artırır.
  • Yüksek performanslı ağ aygıtları veya birden çok grafik işleme birimi (GPU'lar) kullanıldığında performans artar , çünkü çekirdek, birçoğu çok büyük doğrudan bellek erişimi (DMA) arabelleklerine sahip olsa bile tüm aygıtları 64 bitlik alanda eşleyebilir .

6 ve 4'ü basılı tutarken önyükleme yapmak, makineyi 64 bit çekirdekleri destekleyen makinelerde K64'ü başlatmaya zorlar. K64, 32 bit uygulamaları çalıştıracak ancak 32 bit çekirdek uzantılarını (KEXT'ler) çalıştırmaz, bu nedenle bunların yüklenebilmesi için K64'e taşınması gerekir.

İçinde XNU OS X Mountain Lion sonra sadece, v10.8 ve 64-bit çekirdek sağlar.

G/Ç Kiti

I/O Kit, Embedded C++ tabanlı bir C++ alt kümesinde yazılmış aygıt sürücüsü çerçevesidir . Onun kullanma nesne yönelimli sürücünün herhangi sınıfı aygıt sürücüleri daha kısa sürede ve kod yazılacaktır yardımcı çerçevesinde sunulmaktadır için tasarım, ortak sahiptir. G/Ç Kiti, çok iş parçacıklı, simetrik çok işlemli (SMP) güvenlidir ve çalışırken takılabilir cihazlara ve otomatik, dinamik cihaz yapılandırmasına izin verir.

Kullanıcı alanından çalıştırılmak üzere birçok sürücü yazılabilir , bu da sistemin kararlılığını daha da artırır. Bir kullanıcı alanı sürücüsü çökerse, çekirdeği çökertmez. Ancak, bir çekirdek alanı sürücüsü çökerse, çekirdeği çökertir. Çekirdek alanı sürücülerine örnek olarak disk bağdaştırıcısı ve ağ bağdaştırıcısı sürücüleri, grafik sürücüleri, Evrensel Seri Veri Yolu ( USB ) ve 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ı sürücüleri dahildir .

Ayrıca bakınız

Referanslar

  • Loeper, Keith. "MK++: Yüksek Performanslı, Yüksek Güvenceli Mikro Çekirdek" .

Dış bağlantılar