Skip to main content
Dieses Library Item ist für Mac-Computer verfügbar

Was ist eine Systemerweiterung?

Systemerweiterungen sind der moderne Ersatz für Kernel-Erweiterungen (kexts) in macOS. Mit Systemerweiterungen stellt Apple Entwicklern neue Frameworks bereit, um Aufgaben auszuführen, die zuvor kexts vorbehalten waren. Der Hauptvorteil von Systemerweiterungen besteht darin, dass sie im User Space statt im Kernel Space ausgeführt werden und somit die integrierte Sicherheit oder Stabilität von macOS nicht gefährden können. Obwohl kexts weiterhin funktionieren, hat Apple bestimmte Typen als veraltet eingestuft, und Entwickler sollten ihre kexts auf Systemerweiterungen migrieren, sobald entsprechende Frameworks verfügbar sind. Derzeit gibt es drei neue Systemerweiterungs-Frameworks als Ersatz für kexts: kexts, die außerhalb dieser neuen Frameworks arbeiten (z. B. Virtualisierungssoftware), müssen weiterhin kexts verwenden, bis Apple entsprechende Systemerweiterungs-Frameworks anbietet. Systemerweiterungen können auch über ein separates Konfigurationsprofil zugelassen werden. Wenn Sie eine Anwendung verwenden, die noch eine Kernel-Erweiterung nutzt, empfehlen wir Ihnen, sich an Ihre Softwareanbieter zu wenden und sie zur Migration auf Systemerweiterungen zu ermutigen.

Weitere Informationen

Kernel Extensions Overview – Apple Developer Documentation Archive System Extensions – Apple Developer

Was ist eine Kernel-Erweiterung?

Kernel-Erweiterungen, manchmal auch kexts genannt, ermöglichen es Entwicklern, Code dynamisch in den macOS-Kernel zu laden. Sie bieten Zugriff auf interne Kernel-Schnittstellen, die es komplexen Apps ermöglichen, ordnungsgemäß zu funktionieren. Beispiele sind Virtualisierungsanwendungen und Hypervisoren wie Parallels oder VMware Fusion.

Der Unterschied zwischen Kernel-Erweiterungen und Systemerweiterungen

Wenn Sie nicht sicher sind, ob eine Software eine Systemerweiterung oder eine kext verwendet, gibt es mehrere Möglichkeiten, dies herauszufinden:
  • Wenden Sie sich an den Softwarehersteller
  • Führen Sie nach der Installation Ihrer Software den folgenden Befehl aus, um alle aktiven Systemerweiterungen aufzulisten. Wenn keine Systemerweiterungen aufgeführt werden, verwendet die Software wahrscheinlich eine Legacy-kext
systemextensionsctl-list.sh
Hier ist ein Beispiel für die Ausgabe, die Sie sehen könnten, wenn keine Systemerweiterungen installiert sind:
terminal-output.txt
Hier ist ein Beispiel für die Ausgabe, die Sie sehen könnten, wenn eine Systemerweiterung installiert ist:
systemextensionsctl-with-extensions.txt

Ein Systemerweiterungsprofil erstellen

Führen Sie die folgenden Schritte aus, um in Iru Endpoint ein Systemerweiterungsprofil zu erstellen, das die Systemerweiterung(en) einer Anwendung vorab genehmigt. Um dieses Library Item zu Ihrer Iru Endpoint Library hinzuzufügen, folgen Sie den im Artikel Library-Übersicht beschriebenen Schritten.
1

Profil benennen

Geben Sie Ihrem neuen Profil einen aussagekräftigen Namen, z. B. System Extension Allowance.
2

Blueprints auswählen

Wählen Sie die vorgesehenen Blueprints aus.
3

Benutzergenehmigung konfigurieren

Optional: Wenn Sie Allow users to approve system extensions deaktivieren, wird verhindert, dass alle Benutzer auf dem Mac, einschließlich lokaler Administratoren, zusätzliche Systemerweiterungen genehmigen, die nicht über ein Profil genehmigt wurden. Mit dieser Option werden außerdem alle Systemerweiterungen abgelehnt, die ein Benutzer zuvor genehmigt hat.
4

Team ID eingeben

Geben Sie die Team ID ein; dies ist die Kennung in der dritten Spalte der Terminal-Ausgabe, die durch den oben beschriebenen Befehl systemextensionsctl list erzeugt wird.
5

Namen angeben

Geben Sie optional einen Name an, der der Team ID zugeordnet werden soll.
6

Systemerweiterungen konfigurieren

Im Abschnitt System Extensions können Sie optional den Standardwert von Approve all system extensions ändern. Wenn Sie diese Option auf der Standardeinstellung belassen, werden alle Systemerweiterungen der angegebenen Team ID vorab genehmigt. Optional können Sie diese Option auf einen der folgenden Werte setzen:
  • Allow specific system extensions: Ermöglicht es Ihnen, die genaue Bundle-ID der bestimmten Systemerweiterung anzugeben, die Sie genehmigen möchten; verwenden Sie die Bundle-ID, die durch den oben beschriebenen Befehl systemextensionsctl list erzeugt wird. Optional können Sie außerdem konfigurieren, dass eine oder mehrere dieser bestimmten Erweiterungen automatisch durch Admin-Tools wie Iru Endpoint oder ein vom Anbieter bereitgestelltes Paket entfernt werden können.
  • Allow specific system extension types: Ermöglicht es Ihnen, Systemerweiterungstypen eines Entwicklers anzugeben, die vorab genehmigt werden sollen, z. B. Endpoint-Security-Erweiterungen, Treibererweiterungen oder Netzwerkerweiterungen. In unserem Symantec-Beispiel würden wir den Typ Endpoint security extensions genehmigen, da dieser dem Erweiterungstyp entspricht, der durch den oben beschriebenen Befehl systemextensionsctl list erzeugt wird.
7

Weitere Team IDs hinzufügen

Optional können Sie die Schaltfläche Add Team ID wählen, um zusätzliche Systemerweiterungen in einem einzigen Profil zuzulassen.
8

Konfiguration speichern

Wählen Sie Speichern.