Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03304.jsonl.gz/2552

Mac OS X ist komplet anders aufgebaut als OS 9, die grundlegendste Neuerung war der Umstieg auf den Mach-Kernel. Dieser brachte den Mac-Benutzern:
- präemptives Multitasking (Die Vorgänge sind in einer Weise organisiert, die sicherstellt, dass die Ausführung einer Aufgabe jederzeit von einer höheren Instanz unterbrochen werden kann.)
- Speicherschutz ( Benutzerrechte, die den Zugriff regeln)
- beendete allerdings die Kompatibilität mit älteren Applikationen und Systemerweiterungen.
Systemerweiterungen und Treiber für Geräte mussten also für Mac OS X von vollständig neu entwickelt werden. Um den Kernel um Fähigkeiten zu erweitern, führte Apple die Kernel Extensions (Kurz KEXT) ein, mit denen man, ohne den Kernel wie in den meisten Unix-Systemen rekompilieren (neu übersetzen) zu müssen, das Betriebssystem um Kernfunktionalitäten, wie z.B. um ein neues Dateiformat oder einen Gerätetreiber, erweitern kann.
Kernel Extensions unterliegen nicht dem Speicherschutz des Kernels. Damit können die Kernel-Extensions auf alle Endgeräte und auf alle Speicheradressen ungehindert zugreifen. Diese Funktionalität wird benötigt, um Treiber für Geräte zu schreiben. Allerdings hat diese Eigenschaft der KEXTs auch einen entscheidenden Nachteil: Ist ein Fehler in einer Kernel Extension aufgetreten, führt dies unter umständen direkt zu einer Kernel Panic. Applikationen unter Mac OS X genießen kompletten Speicherschutz, sodass eine Applikation nicht den ganzen Mac zum Absturz bringen kann, so wie es noch unter Mac OS 9 der Fall war.
Die Erweiterungen können dynamisch nachgeladen werden, anders als in Mac OS 9 und den meisten anderen Betriebssystemen. Das bedeutet, dass die Unterstützung für ein USB-Gerät erst beim Einstecken nachgeladen wird, um davor nicht unnötig Resourcen zu verbrauchen. Im System findest du Kernel Extensions im Verzeichnis /System/Library/Extensions/ , im Apple System Profiler kannst du dir anzeigen lassen, welche Kernel Extensions auf deinem System geladen wurden und welche nicht benötigt werden.
KEXTs werden, wie fast alles in Mac OS X, als Bundle verpackt, das heißt, dass es sich in Wirklichkeit um einen Ordner handelt, der aber von Finder als eine Datei angezeigt wird. Das hat den Vorteil, dass man alle Resourcen (Bilder, Lokalisierungen etc) und die Binaries
(die ausführbaren Dateien) in einer logischen Einheit zusammenfasst. Die Kernel Extensions können in den Programmiersprachen C oder in C++ implementiert werden, man muss sich allerdings an sehr strenge Vorgaben halten.
basierend auf Originaltext