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. 

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

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

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.

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:


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