MacOS'un tarihi biraz daha karışık. Mach'ın bir Unix sistemi kurmanın daha hızlı bir yolu olarak dünyaya atılmasından dolayı 90'ların sonlarında bununla çok ilgilenmiştim.
Çekirdeğin kökeni biraz daha karmaşıktır.
Her şey AT&T'nin işletim sistemlerini bazı üniversitelere ücretsiz dağıtmasıyla başlıyor. Bu Unix, Berkeley'de kapsamlı bir şekilde geliştirildi ve Unix'in BSD varyasyonlarının temeli oldu ve "Hızlı Dosya Sistemi" (UFS) gibi birçok yeni yeniliği birleştirdi, sembolik bağlantılar ve soketler API'sini tanıttı. AT&T kendi yoluna gitti ve aynı zamanda System V'i kurdu.
Bu arada, araştırmalar devam etti ve bazı insanlar BSD'den gelen çalışmaları vakıf olarak kabul ettiler. CMU'da BSD çekirdeği birkaç yeni fikri prototiplemenin temeli olarak kullanıldı: iş parçacığı, sanal bellek sistemini kontrol etmek için bir API (takılabilir "çağrı cihazları" aracılığıyla - kullanıcı seviyesi mmap), bir çekirdek düzeyinde uzaktan işlem çağrı sistemi ve çoğu En önemlisi, bazı çekirdek seviyesindeki işlemlerin kullanıcı alanına taşınması fikridir. Bu Mach çekirdeği oldu.
Mmap'in Mach'dan gelip gelmediğinden ve daha sonra BSD tarafından kabul edilip edilmediğinden veya Mach yalnızca fikre öncülük ettiğinden ve BSD'nin Mach fikirlerine dayanarak kendi mmap'lerini eklediğinden emin değilim.
Her ne kadar Mach çekirdeği bir mikro çekirdek olarak tanımlansa da, 2.5 sürümüne kadar sadece iplik, mmap, mesaj iletme özelliklerini sağlayan ancak monolitik bir çekirdeği kaldıran bir sistemdi, tüm hizmetler çekirdek modunda çalışıyordu.
Bu sırada Rick Rashid (şimdi Microsoft'ta) ve Avie Tevanian (şimdi Apple'da), Unix'i hızlandıracak yeni bir fikir ortaya attı. Buradaki fikir, kullanıcı alanından kopyalanacak verileri dosya sistemini kullanan "sunuculara" aktarmak için mmap sistemi çağrısını kullanmaktı. Bu fikir temelde aynı verilerin kopyalarını yapmaktan kaçınmaya çalışmanın bir çeşitlemesiydi, ancak özellik bir mikro çekirdekten izole edilebilse bile, mikro çekirdeğin bir yararı olarak gösterildi.
Bu VM destekli hızlı Unix sisteminin referansları, NeXT ve FSF'deki insanları Mach için çekirdeklerinin temeli olarak kullanmaya iten şeydi.
NeXT, Mach 2.5 çekirdeğiyle (BSD 4.2 veya 4.3'e dayanarak) gitti ve GNU aslında yıllarca çalışmaya başlamayacaktı. NeXTSTEP işletim sistemlerinin kullandığı şey buydu.
Bu arada CMU'da Mach devam etti ve nihayet 3.0 sürümünde bir mikro çekirdeğin üzerinde çalışan birden fazla sunucunun vizyonunu gerçekleştirdiler. Vahşi doğada hiç kimsenin Mach 3.0'ı AT&T kodunu kullanan ilginç kullanıcı seviyeli sunucular olarak çalıştırabilmesinin farkında değilim.
Bu süre zarfında Jolitz ekibi 386 mimarisine 4.3+ BSD limanı yapmıştı ve DrDobbs'daki taşıma çabalarını yayınladı. 386BSD aktif olarak sürdürülmedi ve NetBSD ekibi 386BSD'yi devam ettirmek ve ilerletmek için bir grup ortaya çıktı. NetBSD grubundaki iç kavgalar ilk bölünmeye neden oldu ve FreeBSD bunun dışında oluştu. O sırada NetBSD, platformlar arası bir BSD'ye odaklanmak istedi ve FreeBSD, x86 platformlarında harika olan bir Unix'e odaklanmak istedi. Biraz sonra, NetBSD diğer anlaşmazlıklar nedeniyle tekrar ayrıldı ve bu da OpenBSD'nin oluşmasına yol açtı.
X86 platformları için BSD 4.3'ün bir çatalı BSDi adlı bir şirketle ticari oldu ve orjinal Berkeley ekibinin çeşitli üyeleri orada çalıştı ve Üniversitede BSD takımıyla iyi ilişkiler kurdu.
AT&T hiç eğlenmedi ve daha sonra Üniversiteye dava açacak şekilde genişletilen AT & T'ye karşı BSDi davası başlattı. Dava, AT & T'nin Berkeley tarafından yeniden yazılmamış özel kodunu kullanarak BSDi hakkındaydı. Bu, BSD'yi gelecekteki Linux işletim sistemine kıyasla geri getirdi.
Sanıklar için işler iyi gözükmese de, bir noktada birisi SystemV'nin BSD lisansı altında büyük BSD kodu kodları eklediğini ve AT&T'nin lisanstaki yükümlülüklerini yerine getirmediğini fark etti. AT&T'nin ürünlerini piyasadan çekmek zorunda kalmayacağı bir uzlaşmaya varıldı ve Üniversite hala AT&T koduna dayanabilecek herhangi bir kodu çıkarmayı kabul etti.
Üniversite daha sonra şifrelenmiş BSD 4.4 ve 4.4 lite'ın iki versiyonunu yayınladı. Kodlanan sürüm önyüklenir ve çalışır, ancak AT&T kodunu içerir. Lite sürümü AT&T’den herhangi bir kod içermiyor, ancak işe yaramadı.
Çeşitli BSD çalışmaları, yeni 4.4 lite sürümünün üstündeki çalışmalarını tekrar yaptı ve aylar içinde bir önyükleme sistemine sahip oldu.
Bu arada, Mach 3.0 mikro çekirdeği, hiçbir kullanıcı ülkesi sunucusu olmadan çok kullanışlı değildi.
İskandinav bir üniversiteden bir öğrenci (inanıyorum ki bu yanlış olabilir sanırım), 4.4 lite sürümüne dayanan tam bir işletim sistemi ile tam bir Mach 3.0 sistemi yaratan ilk kişi oldu, bunun "Lites" olarak adlandırıldığına inanıyorum. Sistem çalıştı, ancak yavaştı.
1992-1996 döneminde ve şimdiye dek BSD zaten birçok Unix sisteminin yanı sıra mmap () sistem çağrısı yaptı. Orada olmayan "mikro çekirdek avantajı" hiçbir zaman meyve vermedi. NeXT hala monolitik bir çekirdeğe sahipti. FSF hala Mach'ı kurmaya çalışıyordu ve BSD koduna dokunmak istemiyordu ya da açık kaynaklı BSD çabalarının herhangi birine katkıda bulunmak istemiyorlardı, kötü tanımlanmış bir çekirdek vizyonunda şarj olmaya devam ediyorlardı ve kendileri için RPC protokollerini boğuyorlardı. çekirdek. Mikro çekirdek kağıt üzerinde harika görünüyordu, ancak üzerinde fazla çalıştığı ortaya çıktı ve her şeyi daha da yavaşlattı.
Bu noktada, Linus vs Andy'nin mikro çekirdeğe karşı monolitik çekirdeğe karşı tartışması vardı ve dünya, tüm bu ekstra döngüleri bir mikro çekirdeğe eklemenin ve hala iyi tasarlanmış bir monolitik çekirdeğin önüne geçmenin imkansız olduğunu fark etmeye başladı. .
Apple henüz NeXTSTEP'i satın almamıştı, aynı zamanda Mach'ı gelecekteki işletim sistemleri için potansiyel bir çekirdek olarak görmeye başlamıştı. Linux'u Mach çekirdeğine taşımak için Open Software Foundation'ı kiraladılar ve bu Grenoble ofislerinden yapıldı, buna "mklinux" denildiğine inanıyorum.
Apple, NeXT'i ellerinde bulundurduklarını satın aldıklarında, nispeten eski bir Unix vakfıydı, 4.2 ya da 4.3 tabanlı bir Unix'ti ve şimdiye kadar, özgür yazılım bile bu sistemlerdeki kutusundan çıkmadı. Unix yığınlarını yükseltmek için Jordan Hubbard'ı FreeBSD'den uzaklaştırdılar. Ekibi, kullanıcı toprağını yükseltmekten sorumluydu ve MacOS kullanıcı alanının BSD'deki en son sürümlere yükseltilmesi şaşırtıcı değil.
Apple, Mach'larını bir noktada 2,5'ten 3,0'a değiştirdi, ancak mikro çekirdeğe yaklaşma ile devam etmemeye karar verdi ve her şeyi süreç içinde tuttu. Apple'ın Lites kullanıp kullanmadığını, iskandinavya korsanını işe alıp almadığını veya 4.4 lite'ı işletim sistemi olarak kabul edip etmediklerini onaylayamadım. Yaptıklarından şüpheleniyorum ama Linux'a çoktan geçtim ve BSD / Mach dünyasını izlemeyi bıraktım.
90'ların sonunda, Apple'daki Avie'nin, bu noktada zaten ünlü olan Linus'u bebeği üzerinde çalışmak için işe almaya çalıştığına dair bir söylenti vardı, ancak Linus, Linux üzerinde çalışmaya devam etmeyi seçti.
Tarihçe bir yana, bu sayfa kullanıcı alanını ve Mach / Unix çekirdeğini açıklar:
http://developer.apple.com/mac/library/documentation/Darwin/Conceptual/KernelProgramming/Architecture/Architecture.html#//apple_ref/doc/uid/TP30000905-CH1g-CACDAEDC
OSX tarihinin bu grafiğini buldum: