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 , 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.
Geliştirici(ler) | Carnegie Mellon Üniversitesi |
---|---|
Çekirdek türü | |
İlk Yayınlanma |
|
Son kararlı sürümü | 3.0 / 1994 | )
Carnegie Mellon'daki proje 1985-1994 yılları arasında gerçek bir mikro çekirdek olan Mach 3.0 ile bitti. Mach, UNIX'in BSD sürümünde çekirdeğin yerine geçecek şekilde geliştirildi, dolayısıyla etrafında yeni bir işletim sistemi tasarlanmasına gerek yoktu. Mach ve türevleri bir dizi ticari işletim sistemi içinde var olmasına rağmen Mach üzerinde deneysel araştırma sona ermiş gibi görünüyor. Mach sanal bellek yönetim sistemi de 4.4BSD'de BSD geliştiricileri tarafından 'de (Bilgisayar Sistemleri Araştırma Grubu) kabul edildi ve FreeBSD gibi modern BSD kaynaklı Unix sistemlerinde görünüyor.
Mach, Carnegie Mellon'un Accent çekirdeğinin mantıksal ardılıdır. Mach projesindeki lider geliştirici Richard Rashid, 1991'den beri Microsoft'da Microsoft Research bölümünde çeşitli üst düzey görevlerde çalışıyor. Orijinal Mach geliştiricilerinden Avie Tevanian, daha önce, Mart 2006'ya kadar Apple'ın baş Yazılım Teknolojisi Sorumlusu olan NeXT'de yazılım başında idi.
Yeni kavramlar
Unix gaydaları, etkileşimli küçük programlardan keyfi karmaşık çözümler üretmek için kullanılabilecek bir kavramsal sistem sundu. Daha küçük olmakla birlikte, bu programların programlanması ve bakımı kolaydı, programlamayı ve hata ayıklamayı basitleştiren iyi tanımlanmış arayüzlere sahipti. Bu nitelikler, küçük boyut ve hatasız performansın son derece önemli olduğu aygıt sürücüleri için daha da değerlidir. Çekirdek kendisini küçük etkileşimli programlarla aynı temelde modellemek için güçlü bir istek vardı.
İşletim sisteminin temeli Rochester Üniversitesi'nde geliştirilen Aleph çekirdeğiydi. Bu, aslında Paylaşılan Bellek uygulaması olan limanlar kavramını getirdi. Aleph'te, çekirdek bellek ve limanlar da dahil olmak üzere donanıma erişim sağlamak için azaltılmışken, port sistemini kullanan geleneksel programlar cihaz sürücülerinden kullanıcı programlarına kadar tüm davranışları uyguluyordu. Bu konsept çekirdeğin boyutunu büyük ölçüde azalttı, kullanıcıların farklı sürücüleri yalnızca onları yükleyerek ve çalışma zamanında birbirine bağlayarak deney yapmalarını sağladı. Bu, aksi halde makinenin yeniden başlatılmasını gerektiren yeni işletim sistemi kodunu geliştirirken oluşan sorunları büyük ölçüde azaltıyordu. Küçük bir çekirdeğin ve harici sürücülerin genel konsepti bir mikrokernel olarak anıldı.
Aleph, Data General Eclipse mini bilgisayarlarda uygulandı ve sıkıca bağlıydı. Programlar arasında kopyalanması gereken önemli bir performans masrafı gerektirdiği için bu makine idealden çok uzaktı. Ayrıca oldukça pahalıydı. Bununla birlikte, Aleph temel sistemin sağlam olduğunu kanıtladı ve bellekleri erken bir Ethernet arabirimi üzerinden kopyalayarak bilgisayar kümesi göstermeye devam etti. Bu kavram, Aleyn'i PERQ iş istasyonuna adapte eden Carnegie-Mellon'da toplandı ve "on-copy-on-write" kullanılarak gerçekleştirildi. Bağlantı noktası başarılıydı, ancak sonuçta ortaya çıkan Accent çekirdeği, mevcut yazılımı çalıştırmadığı için pratik kullanım açısından sınırlıydı. Dahası, Accent, Aleph'in Eclipse'e bağlı olduğu gibi PERQ'ya da sıkıca bağlıydı.
Bu zamana dek yeni nesil merkezi işlemciler (CPU) 32-bit adres alanlarını ve isteğe bağlı olarak bir bellek yönetim birimini (MMU) destekleyen pazara sunuluyordu. MMU, çeşitli programlar tarafından hangi bellek sayfalarının kullanıldığını takip ederek bir sanal bellek (VM) sistemini uygulamak için gereken talimatları ele aldı. Bu, VM tarafından kullanılan yazma mekanizması üzerindeki kopyayı kullanarak, bağlantı noktası kavramına yeni bir çözüm önerdi. Programlar arasında veri kopyalamak yerine, gönderilmesi gereken tek şey, MMU'ya aynı belleğe erişim sağlamak için talimat vermek için gereken veriydi. Bu sistem, işlemler arası iletişim sistemini dramatik olarak daha yüksek performans ile uygulayacaktı.
Gelişim
Mach, başlangıçta mevcut 4.2BSD çekirdeğine yazılan ek kod olarak barındırıldı ve ekibe tamamlanmadan çok önce sistem üzerinde çalışmasına izin verdi. İş, zaten işlevsel olan Accent IPC / port sistemiyle başlamış ve OS, görevler, ipliklerin ve sanal belleğin diğer önemli bölümlerine geçmiştir. Bölümler tamamlandığında, BSD sisteminin çeşitli kısımları Mach çağrısı için yeniden yazılmış ve bu süreçte 4.3BSD'de bir değişiklik yapılmıştır.
1986'ya gelindiğinde, sistem DEC VAX'de kendi başlarına çalışabilme noktasına kadar tamamlandı. Pratik değeri az da olsa yaparak bir mikrokernel yapmak hedefi gerçekleştirildi. Kısa süre IBM PC / RT'de ve Sun Microsystems 68030 tabanlı iş istasyonlarında sistemin taşınabilirliğini kanıtlayan sürümler izledi. 1987 yılına gelindiğinde, Mach, çok işlemcili sistemlerde çalışabilme yeteneğini test eden Encore Multimax ve Sequent Balance makineleri içeriyordu. O yıl bir Halka Açık Release 1 yapıldı ve Release 2 gelecek yıl izledi.
Bu süre boyunca "gerçek" bir mikrokernel sözü henüz teslim edilmedi. Bu erken Mach sürümleri, çekirdekte 4.3BSD'nin çoğunluğunu, yani POE Sunucusu olarak bilinen bir sistemi içeriyordu ve sonuçta aslında dayandığı UNIX'den daha büyük bir çekirdek çıktı. Bununla birlikte, bu düşünce, UNIX katmanını çekirdeğin dışına taşımak, daha kolay üzerinde çalışılabilecek ve tamamen değiştirilebilen kullanıcı alanına taşınmaktı. Maalesef performansın büyük bir problem olduğu ortaya çıktı ve bu sorunu çözmek için bir takım mimari değişiklikler yapıldı. Unwisony UNIX lisanslama sorunları da araştırmacıları mahvediyordu, bu nedenle lisanssız UNIX benzeri bir sistem ortamı sağlama çabası Mach'ın daha da geliştirilmesine devam etti.
Ortaya çıkan Mach 3, 1990 yılında serbest bırakıldı ve yoğun ilgi yarattı. Küçük bir ekip Mach'i inşa etmiş ve onu eski stil çekirdeği için ciddi sorunlara neden olan karmaşık çok işlemcili sistemler de dahil olmak üzere bir dizi platforma taşıdı. Bu durum, bir takım şirketlerin değişen donanım platformlarını düşündüğü ticaret pazarında büyük ilgi yarattı. Mevcut sistem Mach üzerinde çalıştırılacak olursa, altındaki platformun değiştirilmesi kolay olurdu.
Açık Yazılım Vakfı (OSF), Mach 2.5'in gelecekteki OSF / 1 sürümlerine ev sahipliği yapacaklarını ve Mach 3'ü araştırdığında, Mach, görünürlük konusunda büyük bir artış gördü. Mach 2.5, NeXTSTEP sistemi ve çok sayıda çok işlemcili satıcılar için de seçildi. Mach 3, IBM'in Workplace OS'leri ve Apple tarafından klasik Mac OS'un çapraz platform versiyonunu oluşturma çabaları da dahil olmak üzere, mikrokernel için diğer işletim sistemleri parçalarının taşınması için çok sayıda çaba gösterdi.
Mach
Bu deneysel çekirdeklerle Mach arasındaki en büyük değişiklik, Accent ileti geçişi kavramları üzerinde mevcut 4.2BSD çekirdeğinin bir sürümünü yeniden uygulamaya koyma kararıydı. Böyle bir çekirdek mevcut BSD yazılımıyla ikili olarak uyumlu olacak ve sistem yararlı bir deney platformu olmasına rağmen günlük kullanım için hemen yararlı olacaktır. Ek olarak yeni çekirdek, çoklu işlemci mimarilerini (mesajlaşma sistemi) desteklemek için baştan tasarlanacak, hatta heterojen kümelerin oluşturulmasına izin verecekti. Sistemi mümkün olduğunca çabuk bir hale getirmek için, sistem mevcut BSD koduyla başlayarak ve süreçlerarası iletişim temelli (IPC tabanlı) programlar olarak biraz uygulayarak uygulanacaktır. Böylece Mach, mevcut UNIX sistemlerine benzer bir monolitik sistem olarak başlayacak ve zamanla mikrokernel konseptine doğru daha fazla gelişecektir.
Mach, büyük ölçüde UNIX tabanlı, son derece taşınabilir bir Accent oluşturmak için çaba harcamaya başladı. Sonuç jenerik kavramların kısa bir listesiydi:
- bir "görev", "iş parçacıkları" nın çalışmasına olanak tanıyan bir dizi sistem kaynağından oluşan bir nesnes
- bir "iş parçacığı", tek bir yürütme birimidir, bir görev bağlamında bulunur ve görev kaynaklarını paylaşır
- bir "port", görevler arasındaki iletişim için korunan bir mesaj sırasıdır; görevlerin kendi gönderme hakları vardır ve her limana hak edinirler
- "Mesajlar", yazılan veri nesnelerinin koleksiyonlarıdır, yalnızca portlara gönderilebilir.
Mach, Accent'in IPC konseptleri üzerine geliştirildi, ancak sistemin doğasında UNIX benzeri bir yapıya kavuştu; UNIX programlarını çok az veya hiç değiştirmeden bile çalıştırabiliyordu. Bunu yapmak için Mach, bir iki yönlü IPC'nin uç noktalarını temsil eden bir bağlantı noktası kavramını başlattı. Ports, UNIX altında dosyalar gibi güvenlik ve haklara sahipti ve UNIX benzeri bir koruma modelinin uygulanmasına izin veriyordu. Buna ek olarak, Mach, kullanıcı alanı programlarının donanım ile etkileşim kurma gibi şeyleri işlemesine izin vermek için herhangi bir programın yalnızca normalde işletim sistemine verilen ayrıcalıkları ele almasına izin verdi.
Mach ve UNIX gibi işletim sistemi yine birincil olarak bir araç koleksiyonu haline gelir. UNIX'de olduğu gibi, Mach da donanımla uğraşmak için bir sürücü kavramını tutar. Bu nedenle, mevcut donanım için tüm sürücüler mikro çekirdek içine dahil edilmelidir. Donanımsal Soyutlama Katmanı veya ekokernellere dayanan diğer mimariler sürücüleri mikrokernelden çıkarabilir.
UNIX ile temel fark, dosyalarla işleyen araçların yerine, herhangi bir "görev" i gerçekleştirebilmesidir. Daha fazla işletim sistemi kodu çekirdekten ve kullanıcı alanına taşınarak çok daha küçük bir çekirdeğe ve mikrokernel teriminin yükselmesine neden oldu. Geleneksel sistemlerin aksine, Mach altında bir süreç veya "görev", bir takım iş parçacıklarından oluşabilir. Modern sistemlerde bu yaygın olsa da, görevler ve konuları bu şekilde tanımlayan ilk sistem Mach'tir. Çekirdek işi aslında işletim sisteminden "yardımcı programları" korumaya ve donanıma erişimi zamanlamaya indirgendi.
Limanların varlığı ve IPC kullanımı belki Mach ve geleneksel çekirdekler arasındaki en temel farktır. UNIX altında çekirdeği çağırmak, sistem çağrısı veya tuzak olarak bilinen bir işlemi içerir. Program, verileri hafızadaki iyi bilinen bir yere yerleştirmek için bir kitaplık kullanıyor ve daha sonra bir hata, bir hata türü neden oluyor. Sistem ilk başlatıldığında çekirdek tüm arızaların "işleyicisi" olarak ayarlanır, bu nedenle program bir arızaya neden olduğunda çekirdek devralır, iletilen bilgiyi inceler ve talimatları yerine getirir.
Mach altında, bunun yerine IPC sistemi kullanıldı. Sistem işlevselliğini çağırmak için, bir program çekirdeğe bir porta erişim isteyip o porta mesaj göndermek için IPC sistemini kullanır. Mesajlar, diğer çekirdeklerde olduğu gibi sistem çağrıları tarafından tetiklenmesine rağmen, Mach altında gerçek talebi işleyen tüm çekirdeklerin çoğu başka bir programa kalmıştı.
Konu ve eşzamanlılık desteği IPC mekanizmalarıyla iletilen mesajdan yararlanıyordu, çünkü görevler şimdi mesaj işleme sırasında Mach'ın donması ve dondurulamayacağı birden çok kod iş parçacıklarından oluşuyordu. Bu, sistemin birçok Mach işlemcisinde olduğu gibi paylaşılan belleği kullanarak birden çok işlemciye dağıtılmasını veya gerekirse iletiyi başka bir işlemciye kopyalamak için kod ekleyerek sistemin dağıtılmasına izin verdi. Geleneksel bir çekirdekte bunu uygulamak zordur; sistem, farklı programların aynı bellekte farklı işlemcilerden yazmaya çalışmadığından emin olmalıdır. Bununla birlikte, Mach bağlantı noktaları, hafıza erişimi süreci, bunu iyi tanımlanmış ve uygulanması kolaylaştırıyor ve bu sistemde birinci sınıf bir vatandaş haline geldi.
IPC sistemi başlangıçta performans sorunları yaşadı, bu nedenle etkiyi en aza indirmek için birkaç strateji geliştirildi. Öncülü Accent gibi Mach, mesajı bir programdan diğerine fiziksel olarak geçirmek için tek bir paylaşımlı bellek mekanizması kullandı. İletiyi fiziksel olarak kopyalamak çok yavaş olur, bu nedenle Mach bir verinin bir programdan diğerine çabucak eşleştirmek için makinenin bellek yönetim birimine (MMU) güvenir. Yalnızca veriler yazılıyorsa, fiziksel kopyalanması gerekir, "yazma sırasında kopyalama" adı verilen bir işlemdir.
Sistemin oluşturduğu birçok programdan birinin çökmesini önlemek için, mesajların çekirdek tarafından geçerliliği de kontrol edildi. Limanlar, UNIX dosya sistemi kavramlarına kasten modellendi. Bu, kullanıcının var olan dosya sistemi gezinme kavramlarını kullanarak bağlantı noktalarını bulmasını ve dosya sisteminde olduğu gibi hak ve izinleri atamasına izin verdi.
Performans sorunları
Mach orijinalde klasik monolitik UNIX'in yerini alması amaçlandı ve bu nedenle birçok fikir içeriyordu. Örneğin, Mach, UNIX dosya sisteminde desenli bir izin ve güvenlik sistemi kullandı. Çekirdek, diğer işletim sistemi sunucularına ve yazılımlara göre ayrıcalıklı olduğundan, sisteme zarar verebilecek komutları hatalı veya kötü amaçlı programlar göndermek mümkündür ve bu nedenle çekirdek her iletiyi geçerlilik için kontrol etmiştir. Ek olarak, işletim sistemi işlevselliğinin birçoğu kullanıcı uzayı programlarında yer almaktı, bu nedenle çekirdek bu programları, örneğin donanım üzerinde çalışmak için ek ayrıcalıklar tanımak için bir yol olması gerektiği anlamına geliyordu.
Mach'ın daha ezoterik özelliklerinden bazıları aynı IPC mekanizmasına dayanıyordu. Örneğin, Mach çok işlemcili makineleri kolaylıkla destekleyebildi. Geleneksel bir çekirdekte, farklı işlemciler üzerinde çalışan programlar çekirdeği aynı anda arayabildikçe, onu yeniden giren veya kesilebilir kılmak için kapsamlı çalışmalar yapılmalıdır. Mach altında, işletim sisteminin bitleri, başka herhangi bir programda olduğu gibi herhangi bir işlemcide çalıştırılabilen sunucularda izole edilir. Teorik olarak Mach çekirdeği yeniden girilebilir olmalıydı, pratikte bu bir sorun değil, çünkü yanıt süreleri o kadar hızlı ki sırasıyla bekleyip hizmet edebiliyor. Mach, sadece programları değil, aynı zamanda 1980'lerin sonunda ve 1990'ların başında yoğun bir gelişme alanı olan ağ üzerinden mesajları iletecek bir sunucu içeriyordu. Hemen hemen tüm görevler için IPC kullanımı ciddi bir performans etkisine sahip olduğu ortaya çıktı. 1997 donanımındaki benchmarklar, Mach 3.0 tabanlı UNIX tek sunucu uygulamalarının yerel UNIX'ten% 50 daha yavaş olduğunu gösterdi.
Araştırmalar, bu performans vuruşunun büyük çoğunluğunun bir ölçütle% 73'ünün IPC'nin yükünden kaynaklandığını gösterdi. Bu, işletim sistemini sağlayan tek bir büyük sunucuya sahip bir sistem üzerinde ölçüldü; işletim sisteminin daha küçük sunuculara indirilmesi sorunu daha da kötüye götürecekti. Sunucular topluluğunun hedefinin mümkün olmadığı anlaşıldı.
Mach ve Mach benzeri mikro çekirdeklerin performansını artırmak için birçok girişimde bulunuldu, ancak 1990'ların ortalarından itibaren yoğun ilgi çoktan öldü. IPC tabanlı bir işletim sistemi kavramı ölü gibi göründü, fikrin kendisi de hatalıydı. Aslında, performans sorunlarının kesin doğası üzerine daha fazla çalışma, bir takım ilginç gerçekleri ortaya çıkardı. Birincisi, IPC'nin kendisi değildi: desteklemek için ihtiyaç duyulan bellek eşleştirmesiyle ilgili bir miktar yük vardı, ancak bu, görüşme yapmak için yalnızca küçük bir süre kaldı. Geriye kalan, zamanın% 80'i harcanmıştı, mesajlar çekirdeğin ek görevleri nedeniyle gerçekleşiyordu. Bunların başında, liman hakları kontrolü ve mesaj geçerliliği oldu. 486DX-50'de standart olarak UNIX sistem çağrısı tamamlanması ortalama 21μs (mikrosaniye) alırken, Mach IPC ile eşdeğer işlem 114μs ortalaması aldı. Bunun sadece 18μs'si donanım ile ilgili idi; Geri kalanı, mesaj üzerinde çeşitli rutinleri çalıştıran Mach çekirdeğiydi. Hiçbir şey yapmayan bir sistem çağrısı altında, BSD altında tam bir gidiş-dönüş yaklaşık 40μs gerektirirken, bir kullanıcı-alanı Mach sisteminde ise hemen hemen 500μs alacaktır.
Mach ilk kez 2.x sürümlerinde ciddi olarak kullanıldığında, performans geleneksel monolitik işletim sistemlerinden daha düşük, belki de% 25 gibi daha yüksekti. Bu maliyet, özellikle endişe verici olarak düşünülmedi, çünkü sistem ayrıca çoklu işlemci desteği ve kolay taşınabilirlikli idi. Birçoğu, bunun beklenen ve kabul edilebilir bir ödeme maliyeti olduğunu düşünüyordu. Mach 3 işletim sisteminin çoğunu kullanıcı alanına taşımaya çalışırken yük daha da yükseldi: MIPS R3000'de Mach ve Ultrix arasındaki benchmarklar bazı iş yüklerinde% 67 gibi büyük bir performans vuruşu gösterdi.
Örneğin, sistem saatinin alınması, sistem saatini tutan kullanıcı alanı sunucusuna yapılan bir IPC çağrısını içerir. Arayan ilk olarak çekirdek içine kapanıp, bir bağlam anahtarı ve bellek eşlemesine neden olur. Çekirdek daha sonra arayanın erişim haklarına sahip olduğunu ve mesajın geçerli olduğunu kontrol eder. Varsa, kullanıcı alanı sunucusundaki aramayı tamamlamak için başka bir bağlam anahtarı ve bellek eşlemesi var. Ardından, toplam dört içerik anahtarı ve bellek eşlemesi ve artı iki ileti doğrulaması ekleyerek sonuçları döndürmek için işlem tekrarlanmalıdır. Bu yük daha çok sunuculardan geçen kod yollarının olduğu daha karmaşık hizmetler ile hızla oluşur.
Performans sorunlarının tek kaynağı bu değildi. Bir diğeri, fiziksel hafıza azalıp sayfalama yapılması durumunda hafızayı düzgün bir şekilde kullanmaya çalışmanın problemleri üzerine odaklandı. Geleneksel monolitik işletim sistemlerinde yazarlar, çekirdeğin hangi kısmının hangi kişilere çağrıldığının doğrudan tecrübesine sahipti; bu da, daha önce kullanılacak kodu çağırma kodundan kaçınmak için çağrı cihazlarını ince ayarlamalarını sağladı. Mach altında bu mümkün olmadı, çünkü çekirdek işletim sisteminin neye ait olduğunu bilmiyordu. Bunun yerine, performans sorunlarına eklenen tek bir boyutta uyan tek bir çözüm kullanmaları gerekiyordu. Mach 3, daha iyi uzmanlık için kullanıcı alanı çağrı cihazlarına dayanan basit bir çağrı cihazı sağlayarak bu soruna hitap etmeye çalıştı. Ama bu çok az etkiye sahip olduğu ortaya çıktı. Pratikte, sahip olduğu tüm avantajlar, onu aramak için gereken pahalı IPC tarafından silinmişti.
Diğer performans sorunları, Mach'ın çoklu işleme sistemlere olan desteği ile ilgiliydi. 1980'lerin ortalarından 1990'lı yılların başına kadar, emtia işlemcileri yılda yaklaşık% 60 oranında performans göstermiş, ancak hafıza erişim hızı yılda yalnızca% 7 oranında büyümüştür. Bu, belleğe erişmenin maliyetinin bu dönemde muazzam bir biçimde büyüdüğü anlamına gelir ve Mach, programlar arasında bellek haritalamaya dayandığı için, herhangi bir "cache miss", IPC çağrılarını yavaşlatır.
Mach yaklaşımının avantajlarından bağımsız olarak, bu tür gerçek dünya performans vuruşları kabul edilemezdi. Diğer takımlar aynı sonuçları bulduklarında, erken Mach heyecanı hızla kayboldu. Kısa bir süre sonra, kalkınma topluluğunda birkaçı, bir işletim sisteminin temeli olarak IPC'yi kullanma konseptinin tamamının hatalı olduğu sonucuna varmış görünüyordu.
Potansiyel çözümler
Mach 3 sistemleri için IPC yükü önemli bir sorundur. Bununla birlikte, çoklu sunucu işletim sistemi kavramı hala umut vericidir, ancak yine de biraz araştırma gerektirmektedir. Geliştiricilerin, sunucudan sunucuya çağrı yapılmayan modüllere kod ayırmak için dikkatli olmaları gerekir. Örneğin, ağ kodunun çoğunluğu tek bir sunucuya yerleştirilir, böylece normal ağ görevleri için IPC'yi en aza indirir.
Çoğu geliştirici, işletim sistemi işlevselliğini sağlayan tek bir büyük sunucunun orijinal POE konseptini sıkıştı. Geliştirmeyi kolaylaştırmak için, işletim sistemi sunucusunun kullanıcı alanında veya çekirdek alanında çalışmasına izin verdiler. Bu, kullanıcı alanlarında gelişmelerine, orijinal Mach fikrinin tüm avantajlarına sahip olmalarına ve ardından daha iyi bir performans elde etmek için hata ayıklanmış sunucuyu çekirdek alanına taşıdıklarına izin verdi. Ardından Lite, MkLinux, OSF / 1 (Digital Unix) ve NeXTSTEP / OPENSTEP / macOS gibi co-location olarak bilinen bu yöntemi kullanarak çeşitli işletim sistemleri kuruldu. mikrokerneli, sunucuları yerleşik mekanizmaları kullanarak çekirdek alanına yükseltmek için bunu temel sistemin bir özelliği yaptı.
Mach 4, bu kez daha radikal bir yükseltme seti ile bu sorunları çözmeye çalıştı. Özellikle, program kodunun genellikle yazılabilir olmadığı, dolayısıyla yazma sırasında kopyalama nedeniyle potansiyel isabetlerin düşük olduğu bulundu. Bu nedenle, IPC için programlar arasında hafızayı haritalamak değil, bunun yerine kullanılan program kodunu programın yerel alanına geçirmek mantıklıydı. Bu, "mekik" kavramının ortaya çıkmasına neden oldu ve performans düzelmiş gibi görünüyordu, ancak geliştiriciler yarı kullanılabilir bir durumda sistemle ilerlemişti. Mach 4 aynı zamanda çekirdeğin kendisinin bir parçası haline getiren dahili eş konum ilkellerini tanıttı.
1990'ların ortalarından itibaren mikrokernel sistemlerinde yapılan çalışmalar büyük oranda durdu, ancak piyasa genel olarak tüm modern işletim sistemlerinin 1990'lı yıllara dayanan mikrokernel olacağına inandığını belirtti. Mach çekirdeğinin birincil olarak kalan yaygın kullanımı, Apple'ın macOS'udur. OSF / 1'de de kullanılan "XNU" olarak adlandırılan yoğun bir şekilde değiştirilmiş bir hibrid Open Software Foundation Mach Çekirdeği'nin (OSFMK 7.3) üstünde çalışan kardeşi iOS'tur. XNU'da dosya sistemleri, ağ yığınları, işlem ve bellek yönetimi işlevleri çekirdekte uygulanır; ve dosya sistemi, ağ iletişimi ve bazı işlem ve bellek yönetimi işlevleri mesaj geçirmeden ziyade sıradan sistem çağrıları yoluyla kullanıcı modundan çağrılır. XNU Mach mesajları, kullanıcı modu süreçleri arasındaki iletişim için ve bazı istekler için kullanıcı modu kodundan çekirdeğe ve çekirdekten kullanıcı modu sunucularına kullanılır.
İkinci nesil mikro çekirdekler
Daha fazla analiz, IPC performans sorununun göründüğü kadar açık olmadığını göstermiştir. Aynı sistemde çalışan tek bir tarafın BSD'nin altında 20μs, Mach için de 114μs sürdürdü. 114'ün 11 tanesi, BSD'ye benzer bağlam anahtarı yüzünden vardı. Kullanıcı-alanı ve çekirdek alanı arasında mesajın haritalandırılması için MMU tarafından ek 18 bulundu. Bu, geleneksel sistem çağrılarından daha uzun olmakla birlikte yalnızca 29μs'ye kadar artırır, ancak çok fazla değildir.
Gerisi, asıl sorunun büyük kısmı, çekirdeğin liman erişim haklarını kontrol etmek gibi görevleri yerine getirmesi nedeniyle meydana gelmiştir. Bu, önemli bir güvenlik kaygısı gibi görünse de, aslında mantıklıdır. Örneğin, bir cep telefonunu veya robotu çalıştıran tek kullanıcılı bir işletim sistemi, bu özelliklerden hiçbirine ihtiyaç duymayabilir ve Mach'ın seçim ve seçme işletim sisteminin en değerli olacağı bir türden sistemdir. Aynı şekilde Mach, işletim sistemi tarafından bellek taşındığında sorunlara neden oldu, başka bir görev de sistemin birden fazla adres alanına sahip olması durumunda gerçekten mantıklı geliyor. DOS ve eski Mac OS, tüm programlar tarafından paylaşılan tek bir geniş adres alanına sahiptir, bu nedenle bu sistemlerde haritalama hiçbir fayda sağlamaz.
Bu gerçekleştirmeler, sistemin karmaşıklığını daha da düşüren ve kullanıcı alanına neredeyse tüm işlevselliği yerleştiren bir dizi ikinci nesil mikro çekirdeğin ortaya çıkmasına neden oldu. Örneğin, L4 çekirdeği (sürüm 2) yalnızca yedi sistem çağrısını içerir ve 12k bellek kullanır, Mach 3 ise yaklaşık 140 işlev içerir ve yaklaşık 330k bellek kullanır. Bir 486DX'de L4 altında IPC çağrıları -50 aynı sistemde bir UNIX sistem çağrısından daha hızlıdır, sadece 5 μs sürer ve Mach'ın 20 katından daha hızlıdır. Tabii ki bu, L4'ün izin veya güvenlikle uğraşmadığını göz ardı eder; ancak bunu kullanıcı alanı programlarına bırakarak, ihtiyaç duydukları kadar yük kadar veya az yük seçebilirler.
L4'ün potansiyel performans kazançları, kullanıcı-alanı uygulamalarının sıklıkla çekirdek tarafından daha önce desteklenen işlevlerin birçoğunu sunması gerektiği gerçeğine dayanır. Uçtan uca performansı test etmek için, birlikte konumlandırılmış modda MkLinux, kullanıcı alanında çalışan bir L4 portuyla karşılaştırıldı. L4, Mach'ın% 15'ine kıyasla, yaklaşık% 5 ila% 10 ek yük getirdi, çift bağlamlı anahtarlar gerekli görüldüğünde ilginçti. Bu yeni mikro çekirdekler endüstriyi bir bütün olarak yeniden canlandırdı ve sonuç olarak GNU Hurd gibi projeler yeni bir ilgi gördü.
Mach üzerin yazılımlar
Mach ve işletim sistemlerinden türetilmiş işletim sistemi çekirdeklerinin Mach'in türemiş çekirdekli listesi:
Kaynakça
- ^ "Arşivlenmiş kopya". 8 Aralık 2017 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 17 Şubat 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 24 Eylül 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 4 Aralık 2011 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 12 Ağustos 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 15 Ocak 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 15 Ocak 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 15 Ocak 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 15 Ocak 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 21 Mayıs 2017 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ . 15 Ocak 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 15 Ocak 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 15 Ocak 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 14 Ocak 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 18 Eylül 2019 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya" (PDF). 4 Şubat 2017 tarihinde kaynağından (PDF). Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya" (PDF). 14 Ocak 2018 tarihinde kaynağından (PDF). Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya" (PDF). 14 Ocak 2018 tarihinde kaynağından (PDF). Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya" (PDF). 28 Mayıs 2016 tarihinde kaynağından (PDF). Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya" (PDF). 14 Ocak 2018 tarihinde kaynağından (PDF). Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya" (PDF). 18 Eylül 2017 tarihinde kaynağından (PDF). Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 13 Eylül 2016 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 14 Ocak 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 11 Şubat 2021 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya" (PDF). 14 Haziran 2018 tarihinde kaynağından (PDF). Erişim tarihi: 14 Ocak 2018.
- ^ https://users.cs.duke.edu/~chase/cps210-archive/slides/kstruct6.pdf []
- ^ "Arşivlenmiş kopya". 15 Ocak 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya" (PDF). 4 Mart 2016 tarihinde kaynağından (PDF). Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 15 Ocak 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 15 Ocak 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 26 Aralık 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya" (PDF). 22 Ağustos 2017 tarihinde kaynağından (PDF). Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 23 Eylül 2017 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 14 Ocak 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya". 15 Ocak 2018 tarihinde kaynağından . Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya" (PDF). 14 Ocak 2018 tarihinde kaynağından (PDF). Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya" (PDF). 15 Ocak 2018 tarihinde kaynağından (PDF). Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya" (PDF). 14 Ocak 2018 tarihinde kaynağından (PDF). Erişim tarihi: 14 Ocak 2018.
- ^ "Arşivlenmiş kopya" (PDF). 30 Ağustos 2017 tarihinde kaynağından (PDF). Erişim tarihi: 14 Ocak 2018.
Dış bağlantılar
- Sitesi1 Ocak 2018 tarihinde Wayback Machine sitesinde .
Ayrıca bakınız
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Mach Carnegie Mellon Universitesi nde oncelikle dagitik hesaplama ve paralel hesaplama bilgi islem olmak uzere isletim sistemi arastirmalarini desteklemek icin gelistirilen bir isletim sistemi cekirdegidir Mach bir mikrokernelin en eski orneklerinden biri olarak siklikla bahsedilir Bununla birlikte Mach in tum versiyonlari mikrokernel degildir MacOS un temel aldigi NextStep ve hepsi de daha once bir mikro cekirdek olmayan Mach iceren XNU isletim sistemi cekirdegini buyuk bir bilesen olarak icerir Mach turevleri GNU Hurd ve Apple in isletim sistemleri macOS iOS tvOS ve watchOS daki modern isletim sistemi cekirdeklerinin temelini olusturmaktadir MachGelistirici ler Carnegie Mellon UniversitesiCekirdek turuIlk Yayinlanma 1985Son kararli surumu 3 0 1994 30 yil once 1994 Carnegie Mellon daki proje 1985 1994 yillari arasinda gercek bir mikro cekirdek olan Mach 3 0 ile bitti Mach UNIX in BSD surumunde cekirdegin yerine gececek sekilde gelistirildi dolayisiyla etrafinda yeni bir isletim sistemi tasarlanmasina gerek yoktu Mach ve turevleri bir dizi ticari isletim sistemi icinde var olmasina ragmen Mach uzerinde deneysel arastirma sona ermis gibi gorunuyor Mach sanal bellek yonetim sistemi de 4 4BSD de BSD gelistiricileri tarafindan de Bilgisayar Sistemleri Arastirma Grubu kabul edildi ve FreeBSD gibi modern BSD kaynakli Unix sistemlerinde gorunuyor Mach Carnegie Mellon un Accent cekirdeginin mantiksal ardilidir Mach projesindeki lider gelistirici Richard Rashid 1991 den beri Microsoft da Microsoft Research bolumunde cesitli ust duzey gorevlerde calisiyor Orijinal Mach gelistiricilerinden Avie Tevanian daha once Mart 2006 ya kadar Apple in bas Yazilim Teknolojisi Sorumlusu olan NeXT de yazilim basinda idi Yeni kavramlarUnix gaydalari etkilesimli kucuk programlardan keyfi karmasik cozumler uretmek icin kullanilabilecek bir kavramsal sistem sundu Daha kucuk olmakla birlikte bu programlarin programlanmasi ve bakimi kolaydi programlamayi ve hata ayiklamayi basitlestiren iyi tanimlanmis arayuzlere sahipti Bu nitelikler kucuk boyut ve hatasiz performansin son derece onemli oldugu aygit suruculeri icin daha da degerlidir Cekirdek kendisini kucuk etkilesimli programlarla ayni temelde modellemek icin guclu bir istek vardi Isletim sisteminin temeli Rochester Universitesi nde gelistirilen Aleph cekirdegiydi Bu aslinda Paylasilan Bellek uygulamasi olan limanlar kavramini getirdi Aleph te cekirdek bellek ve limanlar da dahil olmak uzere donanima erisim saglamak icin azaltilmisken port sistemini kullanan geleneksel programlar cihaz suruculerinden kullanici programlarina kadar tum davranislari uyguluyordu Bu konsept cekirdegin boyutunu buyuk olcude azaltti kullanicilarin farkli suruculeri yalnizca onlari yukleyerek ve calisma zamaninda birbirine baglayarak deney yapmalarini sagladi Bu aksi halde makinenin yeniden baslatilmasini gerektiren yeni isletim sistemi kodunu gelistirirken olusan sorunlari buyuk olcude azaltiyordu Kucuk bir cekirdegin ve harici suruculerin genel konsepti bir mikrokernel olarak anildi Aleph Data General Eclipse mini bilgisayarlarda uygulandi ve sikica bagliydi Programlar arasinda kopyalanmasi gereken onemli bir performans masrafi gerektirdigi icin bu makine idealden cok uzakti Ayrica oldukca pahaliydi Bununla birlikte Aleph temel sistemin saglam oldugunu kanitladi ve bellekleri erken bir Ethernet arabirimi uzerinden kopyalayarak bilgisayar kumesi gostermeye devam etti Bu kavram Aleyn i PERQ is istasyonuna adapte eden Carnegie Mellon da toplandi ve on copy on write kullanilarak gerceklestirildi Baglanti noktasi basariliydi ancak sonucta ortaya cikan Accent cekirdegi mevcut yazilimi calistirmadigi icin pratik kullanim acisindan sinirliydi Dahasi Accent Aleph in Eclipse e bagli oldugu gibi PERQ ya da sikica bagliydi Bu zamana dek yeni nesil merkezi islemciler CPU 32 bit adres alanlarini ve istege bagli olarak bir bellek yonetim birimini MMU destekleyen pazara sunuluyordu MMU cesitli programlar tarafindan hangi bellek sayfalarinin kullanildigini takip ederek bir sanal bellek VM sistemini uygulamak icin gereken talimatlari ele aldi Bu VM tarafindan kullanilan yazma mekanizmasi uzerindeki kopyayi kullanarak baglanti noktasi kavramina yeni bir cozum onerdi Programlar arasinda veri kopyalamak yerine gonderilmesi gereken tek sey MMU ya ayni bellege erisim saglamak icin talimat vermek icin gereken veriydi Bu sistem islemler arasi iletisim sistemini dramatik olarak daha yuksek performans ile uygulayacakti GelisimMach baslangicta mevcut 4 2BSD cekirdegine yazilan ek kod olarak barindirildi ve ekibe tamamlanmadan cok once sistem uzerinde calismasina izin verdi Is zaten islevsel olan Accent IPC port sistemiyle baslamis ve OS gorevler ipliklerin ve sanal bellegin diger onemli bolumlerine gecmistir Bolumler tamamlandiginda BSD sisteminin cesitli kisimlari Mach cagrisi icin yeniden yazilmis ve bu surecte 4 3BSD de bir degisiklik yapilmistir 1986 ya gelindiginde sistem DEC VAX de kendi baslarina calisabilme noktasina kadar tamamlandi Pratik degeri az da olsa yaparak bir mikrokernel yapmak hedefi gerceklestirildi Kisa sure IBM PC RT de ve Sun Microsystems 68030 tabanli is istasyonlarinda sistemin tasinabilirligini kanitlayan surumler izledi 1987 yilina gelindiginde Mach cok islemcili sistemlerde calisabilme yetenegini test eden Encore Multimax ve Sequent Balance makineleri iceriyordu O yil bir Halka Acik Release 1 yapildi ve Release 2 gelecek yil izledi Bu sure boyunca gercek bir mikrokernel sozu henuz teslim edilmedi Bu erken Mach surumleri cekirdekte 4 3BSD nin cogunlugunu yani POE Sunucusu olarak bilinen bir sistemi iceriyordu ve sonucta aslinda dayandigi UNIX den daha buyuk bir cekirdek cikti Bununla birlikte bu dusunce UNIX katmanini cekirdegin disina tasimak daha kolay uzerinde calisilabilecek ve tamamen degistirilebilen kullanici alanina tasinmakti Maalesef performansin buyuk bir problem oldugu ortaya cikti ve bu sorunu cozmek icin bir takim mimari degisiklikler yapildi Unwisony UNIX lisanslama sorunlari da arastirmacilari mahvediyordu bu nedenle lisanssiz UNIX benzeri bir sistem ortami saglama cabasi Mach in daha da gelistirilmesine devam etti Ortaya cikan Mach 3 1990 yilinda serbest birakildi ve yogun ilgi yaratti Kucuk bir ekip Mach i insa etmis ve onu eski stil cekirdegi icin ciddi sorunlara neden olan karmasik cok islemcili sistemler de dahil olmak uzere bir dizi platforma tasidi Bu durum bir takim sirketlerin degisen donanim platformlarini dusundugu ticaret pazarinda buyuk ilgi yaratti Mevcut sistem Mach uzerinde calistirilacak olursa altindaki platformun degistirilmesi kolay olurdu Acik Yazilim Vakfi OSF Mach 2 5 in gelecekteki OSF 1 surumlerine ev sahipligi yapacaklarini ve Mach 3 u arastirdiginda Mach gorunurluk konusunda buyuk bir artis gordu Mach 2 5 NeXTSTEP sistemi ve cok sayida cok islemcili saticilar icin de secildi Mach 3 IBM in Workplace OS leri ve Apple tarafindan klasik Mac OS un capraz platform versiyonunu olusturma cabalari da dahil olmak uzere mikrokernel icin diger isletim sistemleri parcalarinin tasinmasi icin cok sayida caba gosterdi MachBu deneysel cekirdeklerle Mach arasindaki en buyuk degisiklik Accent ileti gecisi kavramlari uzerinde mevcut 4 2BSD cekirdeginin bir surumunu yeniden uygulamaya koyma karariydi Boyle bir cekirdek mevcut BSD yazilimiyla ikili olarak uyumlu olacak ve sistem yararli bir deney platformu olmasina ragmen gunluk kullanim icin hemen yararli olacaktir Ek olarak yeni cekirdek coklu islemci mimarilerini mesajlasma sistemi desteklemek icin bastan tasarlanacak hatta heterojen kumelerin olusturulmasina izin verecekti Sistemi mumkun oldugunca cabuk bir hale getirmek icin sistem mevcut BSD koduyla baslayarak ve sureclerarasi iletisim temelli IPC tabanli programlar olarak biraz uygulayarak uygulanacaktir Boylece Mach mevcut UNIX sistemlerine benzer bir monolitik sistem olarak baslayacak ve zamanla mikrokernel konseptine dogru daha fazla gelisecektir Mach buyuk olcude UNIX tabanli son derece tasinabilir bir Accent olusturmak icin caba harcamaya basladi Sonuc jenerik kavramlarin kisa bir listesiydi bir gorev is parcaciklari nin calismasina olanak taniyan bir dizi sistem kaynagindan olusan bir nesnes bir is parcacigi tek bir yurutme birimidir bir gorev baglaminda bulunur ve gorev kaynaklarini paylasir bir port gorevler arasindaki iletisim icin korunan bir mesaj sirasidir gorevlerin kendi gonderme haklari vardir ve her limana hak edinirler Mesajlar yazilan veri nesnelerinin koleksiyonlaridir yalnizca portlara gonderilebilir Mach Accent in IPC konseptleri uzerine gelistirildi ancak sistemin dogasinda UNIX benzeri bir yapiya kavustu UNIX programlarini cok az veya hic degistirmeden bile calistirabiliyordu Bunu yapmak icin Mach bir iki yonlu IPC nin uc noktalarini temsil eden bir baglanti noktasi kavramini baslatti Ports UNIX altinda dosyalar gibi guvenlik ve haklara sahipti ve UNIX benzeri bir koruma modelinin uygulanmasina izin veriyordu Buna ek olarak Mach kullanici alani programlarinin donanim ile etkilesim kurma gibi seyleri islemesine izin vermek icin herhangi bir programin yalnizca normalde isletim sistemine verilen ayricaliklari ele almasina izin verdi Mach ve UNIX gibi isletim sistemi yine birincil olarak bir arac koleksiyonu haline gelir UNIX de oldugu gibi Mach da donanimla ugrasmak icin bir surucu kavramini tutar Bu nedenle mevcut donanim icin tum suruculer mikro cekirdek icine dahil edilmelidir Donanimsal Soyutlama Katmani veya ekokernellere dayanan diger mimariler suruculeri mikrokernelden cikarabilir UNIX ile temel fark dosyalarla isleyen araclarin yerine herhangi bir gorev i gerceklestirebilmesidir Daha fazla isletim sistemi kodu cekirdekten ve kullanici alanina tasinarak cok daha kucuk bir cekirdege ve mikrokernel teriminin yukselmesine neden oldu Geleneksel sistemlerin aksine Mach altinda bir surec veya gorev bir takim is parcaciklarindan olusabilir Modern sistemlerde bu yaygin olsa da gorevler ve konulari bu sekilde tanimlayan ilk sistem Mach tir Cekirdek isi aslinda isletim sisteminden yardimci programlari korumaya ve donanima erisimi zamanlamaya indirgendi Limanlarin varligi ve IPC kullanimi belki Mach ve geleneksel cekirdekler arasindaki en temel farktir UNIX altinda cekirdegi cagirmak sistem cagrisi veya tuzak olarak bilinen bir islemi icerir Program verileri hafizadaki iyi bilinen bir yere yerlestirmek icin bir kitaplik kullaniyor ve daha sonra bir hata bir hata turu neden oluyor Sistem ilk baslatildiginda cekirdek tum arizalarin isleyicisi olarak ayarlanir bu nedenle program bir arizaya neden oldugunda cekirdek devralir iletilen bilgiyi inceler ve talimatlari yerine getirir Mach altinda bunun yerine IPC sistemi kullanildi Sistem islevselligini cagirmak icin bir program cekirdege bir porta erisim isteyip o porta mesaj gondermek icin IPC sistemini kullanir Mesajlar diger cekirdeklerde oldugu gibi sistem cagrilari tarafindan tetiklenmesine ragmen Mach altinda gercek talebi isleyen tum cekirdeklerin cogu baska bir programa kalmisti Konu ve eszamanlilik destegi IPC mekanizmalariyla iletilen mesajdan yararlaniyordu cunku gorevler simdi mesaj isleme sirasinda Mach in donmasi ve dondurulamayacagi birden cok kod is parcaciklarindan olusuyordu Bu sistemin bircok Mach islemcisinde oldugu gibi paylasilan bellegi kullanarak birden cok islemciye dagitilmasini veya gerekirse iletiyi baska bir islemciye kopyalamak icin kod ekleyerek sistemin dagitilmasina izin verdi Geleneksel bir cekirdekte bunu uygulamak zordur sistem farkli programlarin ayni bellekte farkli islemcilerden yazmaya calismadigindan emin olmalidir Bununla birlikte Mach baglanti noktalari hafiza erisimi sureci bunu iyi tanimlanmis ve uygulanmasi kolaylastiriyor ve bu sistemde birinci sinif bir vatandas haline geldi IPC sistemi baslangicta performans sorunlari yasadi bu nedenle etkiyi en aza indirmek icin birkac strateji gelistirildi Onculu Accent gibi Mach mesaji bir programdan digerine fiziksel olarak gecirmek icin tek bir paylasimli bellek mekanizmasi kullandi Iletiyi fiziksel olarak kopyalamak cok yavas olur bu nedenle Mach bir verinin bir programdan digerine cabucak eslestirmek icin makinenin bellek yonetim birimine MMU guvenir Yalnizca veriler yaziliyorsa fiziksel kopyalanmasi gerekir yazma sirasinda kopyalama adi verilen bir islemdir Sistemin olusturdugu bircok programdan birinin cokmesini onlemek icin mesajlarin cekirdek tarafindan gecerliligi de kontrol edildi Limanlar UNIX dosya sistemi kavramlarina kasten modellendi Bu kullanicinin var olan dosya sistemi gezinme kavramlarini kullanarak baglanti noktalarini bulmasini ve dosya sisteminde oldugu gibi hak ve izinleri atamasina izin verdi Performans sorunlariMach orijinalde klasik monolitik UNIX in yerini almasi amaclandi ve bu nedenle bircok fikir iceriyordu Ornegin Mach UNIX dosya sisteminde desenli bir izin ve guvenlik sistemi kullandi Cekirdek diger isletim sistemi sunucularina ve yazilimlara gore ayricalikli oldugundan sisteme zarar verebilecek komutlari hatali veya kotu amacli programlar gondermek mumkundur ve bu nedenle cekirdek her iletiyi gecerlilik icin kontrol etmistir Ek olarak isletim sistemi islevselliginin bircogu kullanici uzayi programlarinda yer almakti bu nedenle cekirdek bu programlari ornegin donanim uzerinde calismak icin ek ayricaliklar tanimak icin bir yol olmasi gerektigi anlamina geliyordu Mach in daha ezoterik ozelliklerinden bazilari ayni IPC mekanizmasina dayaniyordu Ornegin Mach cok islemcili makineleri kolaylikla destekleyebildi Geleneksel bir cekirdekte farkli islemciler uzerinde calisan programlar cekirdegi ayni anda arayabildikce onu yeniden giren veya kesilebilir kilmak icin kapsamli calismalar yapilmalidir Mach altinda isletim sisteminin bitleri baska herhangi bir programda oldugu gibi herhangi bir islemcide calistirilabilen sunucularda izole edilir Teorik olarak Mach cekirdegi yeniden girilebilir olmaliydi pratikte bu bir sorun degil cunku yanit sureleri o kadar hizli ki sirasiyla bekleyip hizmet edebiliyor Mach sadece programlari degil ayni zamanda 1980 lerin sonunda ve 1990 larin basinda yogun bir gelisme alani olan ag uzerinden mesajlari iletecek bir sunucu iceriyordu Hemen hemen tum gorevler icin IPC kullanimi ciddi bir performans etkisine sahip oldugu ortaya cikti 1997 donanimindaki benchmarklar Mach 3 0 tabanli UNIX tek sunucu uygulamalarinin yerel UNIX ten 50 daha yavas oldugunu gosterdi Arastirmalar bu performans vurusunun buyuk cogunlugunun bir olcutle 73 unun IPC nin yukunden kaynaklandigini gosterdi Bu isletim sistemini saglayan tek bir buyuk sunucuya sahip bir sistem uzerinde olculdu isletim sisteminin daha kucuk sunuculara indirilmesi sorunu daha da kotuye goturecekti Sunucular toplulugunun hedefinin mumkun olmadigi anlasildi Mach ve Mach benzeri mikro cekirdeklerin performansini artirmak icin bircok girisimde bulunuldu ancak 1990 larin ortalarindan itibaren yogun ilgi coktan oldu IPC tabanli bir isletim sistemi kavrami olu gibi gorundu fikrin kendisi de hataliydi Aslinda performans sorunlarinin kesin dogasi uzerine daha fazla calisma bir takim ilginc gercekleri ortaya cikardi Birincisi IPC nin kendisi degildi desteklemek icin ihtiyac duyulan bellek eslestirmesiyle ilgili bir miktar yuk vardi ancak bu gorusme yapmak icin yalnizca kucuk bir sure kaldi Geriye kalan zamanin 80 i harcanmisti mesajlar cekirdegin ek gorevleri nedeniyle gerceklesiyordu Bunlarin basinda liman haklari kontrolu ve mesaj gecerliligi oldu 486DX 50 de standart olarak UNIX sistem cagrisi tamamlanmasi ortalama 21ms mikrosaniye alirken Mach IPC ile esdeger islem 114ms ortalamasi aldi Bunun sadece 18ms si donanim ile ilgili idi Geri kalani mesaj uzerinde cesitli rutinleri calistiran Mach cekirdegiydi Hicbir sey yapmayan bir sistem cagrisi altinda BSD altinda tam bir gidis donus yaklasik 40ms gerektirirken bir kullanici alani Mach sisteminde ise hemen hemen 500ms alacaktir Mach ilk kez 2 x surumlerinde ciddi olarak kullanildiginda performans geleneksel monolitik isletim sistemlerinden daha dusuk belki de 25 gibi daha yuksekti Bu maliyet ozellikle endise verici olarak dusunulmedi cunku sistem ayrica coklu islemci destegi ve kolay tasinabilirlikli idi Bircogu bunun beklenen ve kabul edilebilir bir odeme maliyeti oldugunu dusunuyordu Mach 3 isletim sisteminin cogunu kullanici alanina tasimaya calisirken yuk daha da yukseldi MIPS R3000 de Mach ve Ultrix arasindaki benchmarklar bazi is yuklerinde 67 gibi buyuk bir performans vurusu gosterdi Ornegin sistem saatinin alinmasi sistem saatini tutan kullanici alani sunucusuna yapilan bir IPC cagrisini icerir Arayan ilk olarak cekirdek icine kapanip bir baglam anahtari ve bellek eslemesine neden olur Cekirdek daha sonra arayanin erisim haklarina sahip oldugunu ve mesajin gecerli oldugunu kontrol eder Varsa kullanici alani sunucusundaki aramayi tamamlamak icin baska bir baglam anahtari ve bellek eslemesi var Ardindan toplam dort icerik anahtari ve bellek eslemesi ve arti iki ileti dogrulamasi ekleyerek sonuclari dondurmek icin islem tekrarlanmalidir Bu yuk daha cok sunuculardan gecen kod yollarinin oldugu daha karmasik hizmetler ile hizla olusur Performans sorunlarinin tek kaynagi bu degildi Bir digeri fiziksel hafiza azalip sayfalama yapilmasi durumunda hafizayi duzgun bir sekilde kullanmaya calismanin problemleri uzerine odaklandi Geleneksel monolitik isletim sistemlerinde yazarlar cekirdegin hangi kisminin hangi kisilere cagrildiginin dogrudan tecrubesine sahipti bu da daha once kullanilacak kodu cagirma kodundan kacinmak icin cagri cihazlarini ince ayarlamalarini sagladi Mach altinda bu mumkun olmadi cunku cekirdek isletim sisteminin neye ait oldugunu bilmiyordu Bunun yerine performans sorunlarina eklenen tek bir boyutta uyan tek bir cozum kullanmalari gerekiyordu Mach 3 daha iyi uzmanlik icin kullanici alani cagri cihazlarina dayanan basit bir cagri cihazi saglayarak bu soruna hitap etmeye calisti Ama bu cok az etkiye sahip oldugu ortaya cikti Pratikte sahip oldugu tum avantajlar onu aramak icin gereken pahali IPC tarafindan silinmisti Diger performans sorunlari Mach in coklu isleme sistemlere olan destegi ile ilgiliydi 1980 lerin ortalarindan 1990 li yillarin basina kadar emtia islemcileri yilda yaklasik 60 oraninda performans gostermis ancak hafiza erisim hizi yilda yalnizca 7 oraninda buyumustur Bu bellege erismenin maliyetinin bu donemde muazzam bir bicimde buyudugu anlamina gelir ve Mach programlar arasinda bellek haritalamaya dayandigi icin herhangi bir cache miss IPC cagrilarini yavaslatir Mach yaklasiminin avantajlarindan bagimsiz olarak bu tur gercek dunya performans vuruslari kabul edilemezdi Diger takimlar ayni sonuclari bulduklarinda erken Mach heyecani hizla kayboldu Kisa bir sure sonra kalkinma toplulugunda birkaci bir isletim sisteminin temeli olarak IPC yi kullanma konseptinin tamaminin hatali oldugu sonucuna varmis gorunuyordu Potansiyel cozumlerMach 3 sistemleri icin IPC yuku onemli bir sorundur Bununla birlikte coklu sunucu isletim sistemi kavrami hala umut vericidir ancak yine de biraz arastirma gerektirmektedir Gelistiricilerin sunucudan sunucuya cagri yapilmayan modullere kod ayirmak icin dikkatli olmalari gerekir Ornegin ag kodunun cogunlugu tek bir sunucuya yerlestirilir boylece normal ag gorevleri icin IPC yi en aza indirir Cogu gelistirici isletim sistemi islevselligini saglayan tek bir buyuk sunucunun orijinal POE konseptini sikisti Gelistirmeyi kolaylastirmak icin isletim sistemi sunucusunun kullanici alaninda veya cekirdek alaninda calismasina izin verdiler Bu kullanici alanlarinda gelismelerine orijinal Mach fikrinin tum avantajlarina sahip olmalarina ve ardindan daha iyi bir performans elde etmek icin hata ayiklanmis sunucuyu cekirdek alanina tasidiklarina izin verdi Ardindan Lite MkLinux OSF 1 Digital Unix ve NeXTSTEP OPENSTEP macOS gibi co location olarak bilinen bu yontemi kullanarak cesitli isletim sistemleri kuruldu mikrokerneli sunuculari yerlesik mekanizmalari kullanarak cekirdek alanina yukseltmek icin bunu temel sistemin bir ozelligi yapti Mach 4 bu kez daha radikal bir yukseltme seti ile bu sorunlari cozmeye calisti Ozellikle program kodunun genellikle yazilabilir olmadigi dolayisiyla yazma sirasinda kopyalama nedeniyle potansiyel isabetlerin dusuk oldugu bulundu Bu nedenle IPC icin programlar arasinda hafizayi haritalamak degil bunun yerine kullanilan program kodunu programin yerel alanina gecirmek mantikliydi Bu mekik kavraminin ortaya cikmasina neden oldu ve performans duzelmis gibi gorunuyordu ancak gelistiriciler yari kullanilabilir bir durumda sistemle ilerlemisti Mach 4 ayni zamanda cekirdegin kendisinin bir parcasi haline getiren dahili es konum ilkellerini tanitti 1990 larin ortalarindan itibaren mikrokernel sistemlerinde yapilan calismalar buyuk oranda durdu ancak piyasa genel olarak tum modern isletim sistemlerinin 1990 li yillara dayanan mikrokernel olacagina inandigini belirtti Mach cekirdeginin birincil olarak kalan yaygin kullanimi Apple in macOS udur OSF 1 de de kullanilan XNU olarak adlandirilan yogun bir sekilde degistirilmis bir hibrid Open Software Foundation Mach Cekirdegi nin OSFMK 7 3 ustunde calisan kardesi iOS tur XNU da dosya sistemleri ag yiginlari islem ve bellek yonetimi islevleri cekirdekte uygulanir ve dosya sistemi ag iletisimi ve bazi islem ve bellek yonetimi islevleri mesaj gecirmeden ziyade siradan sistem cagrilari yoluyla kullanici modundan cagrilir XNU Mach mesajlari kullanici modu surecleri arasindaki iletisim icin ve bazi istekler icin kullanici modu kodundan cekirdege ve cekirdekten kullanici modu sunucularina kullanilir Ikinci nesil mikro cekirdeklerDaha fazla analiz IPC performans sorununun gorundugu kadar acik olmadigini gostermistir Ayni sistemde calisan tek bir tarafin BSD nin altinda 20ms Mach icin de 114ms surdurdu 114 un 11 tanesi BSD ye benzer baglam anahtari yuzunden vardi Kullanici alani ve cekirdek alani arasinda mesajin haritalandirilmasi icin MMU tarafindan ek 18 bulundu Bu geleneksel sistem cagrilarindan daha uzun olmakla birlikte yalnizca 29ms ye kadar artirir ancak cok fazla degildir Gerisi asil sorunun buyuk kismi cekirdegin liman erisim haklarini kontrol etmek gibi gorevleri yerine getirmesi nedeniyle meydana gelmistir Bu onemli bir guvenlik kaygisi gibi gorunse de aslinda mantiklidir Ornegin bir cep telefonunu veya robotu calistiran tek kullanicili bir isletim sistemi bu ozelliklerden hicbirine ihtiyac duymayabilir ve Mach in secim ve secme isletim sisteminin en degerli olacagi bir turden sistemdir Ayni sekilde Mach isletim sistemi tarafindan bellek tasindiginda sorunlara neden oldu baska bir gorev de sistemin birden fazla adres alanina sahip olmasi durumunda gercekten mantikli geliyor DOS ve eski Mac OS tum programlar tarafindan paylasilan tek bir genis adres alanina sahiptir bu nedenle bu sistemlerde haritalama hicbir fayda saglamaz Bu gerceklestirmeler sistemin karmasikligini daha da dusuren ve kullanici alanina neredeyse tum islevselligi yerlestiren bir dizi ikinci nesil mikro cekirdegin ortaya cikmasina neden oldu Ornegin L4 cekirdegi surum 2 yalnizca yedi sistem cagrisini icerir ve 12k bellek kullanir Mach 3 ise yaklasik 140 islev icerir ve yaklasik 330k bellek kullanir Bir 486DX de L4 altinda IPC cagrilari 50 ayni sistemde bir UNIX sistem cagrisindan daha hizlidir sadece 5 ms surer ve Mach in 20 katindan daha hizlidir Tabii ki bu L4 un izin veya guvenlikle ugrasmadigini goz ardi eder ancak bunu kullanici alani programlarina birakarak ihtiyac duyduklari kadar yuk kadar veya az yuk secebilirler L4 un potansiyel performans kazanclari kullanici alani uygulamalarinin siklikla cekirdek tarafindan daha once desteklenen islevlerin bircogunu sunmasi gerektigi gercegine dayanir Uctan uca performansi test etmek icin birlikte konumlandirilmis modda MkLinux kullanici alaninda calisan bir L4 portuyla karsilastirildi L4 Mach in 15 ine kiyasla yaklasik 5 ila 10 ek yuk getirdi cift baglamli anahtarlar gerekli goruldugunde ilgincti Bu yeni mikro cekirdekler endustriyi bir butun olarak yeniden canlandirdi ve sonuc olarak GNU Hurd gibi projeler yeni bir ilgi gordu Mach uzerin yazilimlarMach ve isletim sistemlerinden turetilmis isletim sistemi cekirdeklerinin Mach in turemis cekirdekli listesi GNU Hurd Mach386 NextStep OSF 1 XNU cekirdekli Darwin macOS iOS watchOS ve tvOS sistemlerin temeliKaynakca Arsivlenmis kopya 8 Aralik 2017 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 17 Subat 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 24 Eylul 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 4 Aralik 2011 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 12 Agustos 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 15 Ocak 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 15 Ocak 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 15 Ocak 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 15 Ocak 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 21 Mayis 2017 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 15 Ocak 2018 tarihinde kaynagindan arsivlendi Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 15 Ocak 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 15 Ocak 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 14 Ocak 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 18 Eylul 2019 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya PDF 4 Subat 2017 tarihinde kaynagindan PDF Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya PDF 14 Ocak 2018 tarihinde kaynagindan PDF Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya PDF 14 Ocak 2018 tarihinde kaynagindan PDF Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya PDF 28 Mayis 2016 tarihinde kaynagindan PDF Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya PDF 14 Ocak 2018 tarihinde kaynagindan PDF Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya PDF 18 Eylul 2017 tarihinde kaynagindan PDF Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 13 Eylul 2016 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 14 Ocak 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 11 Subat 2021 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya PDF 14 Haziran 2018 tarihinde kaynagindan PDF Erisim tarihi 14 Ocak 2018 https users cs duke edu chase cps210 archive slides kstruct6 pdf yalin URL Arsivlenmis kopya 15 Ocak 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya PDF 4 Mart 2016 tarihinde kaynagindan PDF Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 15 Ocak 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 15 Ocak 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 26 Aralik 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya PDF 22 Agustos 2017 tarihinde kaynagindan PDF Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 23 Eylul 2017 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 14 Ocak 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya 15 Ocak 2018 tarihinde kaynagindan Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya PDF 14 Ocak 2018 tarihinde kaynagindan PDF Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya PDF 15 Ocak 2018 tarihinde kaynagindan PDF Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya PDF 14 Ocak 2018 tarihinde kaynagindan PDF Erisim tarihi 14 Ocak 2018 Arsivlenmis kopya PDF 30 Agustos 2017 tarihinde kaynagindan PDF Erisim tarihi 14 Ocak 2018 Dis baglantilarSitesi1 Ocak 2018 tarihinde Wayback Machine sitesinde Ayrica bakinizXNU Cekirdek bilgisayar bilimi A UX Digital Unix darwin isletim sistemi